bludit/bl-plugins/robots/plugin.php
Guillaume 59a6440fd8
Use comma for implode robots meta tag
According to http://www.robotstxt.org/meta.html and https://www.webmasterworld.com/forum93/669.htm using only a space between the values probably isn't the proper syntax and could ignore all values (perhaps that explains why Google ignored my `noindex nofollow noarchive`).
2019-02-13 16:28:22 +01:00

67 lines
1.2 KiB
PHP

<?php
class pluginRobots extends Plugin {
public function init()
{
$this->dbFields = array(
'robotstxt'=>'User-agent: *'.PHP_EOL.'Allow: /'
);
}
public function form()
{
$html = '<div class="alert alert-primary" role="alert">';
$html .= $this->description();
$html .= '</div>';
$html .= '<div>';
$html .= '<label>'.DOMAIN.'/robots.txt</label>';
$html .= '<textarea name="robotstxt" id="jsrobotstxt">'.$this->getValue('robotstxt').'</textarea>';
$html .= '</div>';
return $html;
}
public function siteHead()
{
global $WHERE_AM_I;
$html = PHP_EOL.'<!-- Robots plugin -->'.PHP_EOL;
if ($WHERE_AM_I=='page') {
global $page;
$robots = array();
if ($page->noindex()) {
$robots['noindex'] = 'noindex';
}
if ($page->nofollow()) {
$robots['nofollow'] = 'nofollow';
}
if ($page->noarchive()) {
$robots['noarchive'] = 'noarchive';
}
if (!empty($robots)) {
$robots = implode(',', $robots);
$html .= '<meta name="robots" content="'.$robots.'">'.PHP_EOL;
}
}
return $html;
}
public function beforeAll()
{
$webhook = 'robots.txt';
if ($this->webhook($webhook)) {
header('Content-type: text/plain');
echo $this->getValue('robotstxt');
exit(0);
}
}
}