Проблема с robot.txt создаваемом моделью "SEO параметры"
Между строк зачем то добавляется пустая строка. Так нельзя! Категорически! Между директивой User-agent и последующим Allow/Disallow пустых строк быть не должно. Зачем вообще модель сама что то дописывает? Надо это убрать.
Ваш вопрос не совсем понятен, надо посмотреть и сравнить текст в админке и то что потом записывается в файл robots.txt, у себя мы это воспроизвести не можем, текст попадает в файл в том же виде как он заносится в админке в модели SEO.
На всякий случай проверьте у себя модель SEO и ее метод update(), именно он перезаписывает файл robots.txt
Чтобы точно решить проблему замените код метода update() в модели SEO на такой
public function update() { parent :: update(); $file = $this -> registry -> getSetting("IncludePath")."robots.txt"; $text = $this -> getValue("robots"); file_put_contents($file, $text); return $this; }
Ниже метод update. Я его не ковырял, так и было. Не могу сказать, из какой это версии, я обновлял систему несколько раз по верх.
Вот зачем там nl2br? Вот он и пишет лишний перенос.
parent :: update(); $file = $this -> registry -> getSetting("IncludePath")."robots.txt"; $text = $this -> getValue("robots"); $text = preg_split("/(\\r)*(\\n)*<br(\s\/)?>(\\r)*(\\n)*/", nl2br($text)); @unlink($file); if($handle = @fopen($file, "wt")) { @chmod($file, 0777); foreach($text as $string) fwrite($handle, $string."\r\n"); fclose($handle); } return $this;
Убрал nl2br, не помогло. Не очень я понимаю логики разбиения строки на массив.
Прикрутил код предложенный выше, всё норм, больше лишних строк не пишит