Сссылки на авторов комментариев
14.12.2011Голосование
| Тип | Ошибка |
| Состояние | Исправлено |
| Приоритет | Средний |
| Версия | 5.08 |
| Система | * |
| Воспроизводимость | Нет |
| Автор | Seo Dizainer |
| Исполнитель | Блоголётчик |
Решил создать отдельный тикет, чтобы не засорять другие записи.
Я уже писал что у меня на одном блоге ссылки на авторов в комментариях не хотят появляться, после обновления с 6 на 8ку.
Произошло это при обновлении в режиме АВТО.
Твой совет повключать и повыключать их отображение в админке к сожалению не помог.
Есть еще какая либо возможность запустить чтоли по новой скрипты обновления или вручную докачать недостающие файлы с репозитария или работающего блога?
RSS комментарии к этой записи
Рубрики: Ошибки
Комментарии (20) на запись “Сссылки на авторов комментариев”
Оставить комментарий
В корне сайта в файле index.php поменять $debug с false на true, после чего в файле
lib/comments.class.db.php
после строки
$url = $this->data['url'];
поставить для отладки строку
echo "name = '$name', url = '$url'<br>";
Результат например сюда, не знаю что там будет.
чтобы вернуть как было достаточно вернуть $debug
Урл то в базу пишутся, и даже выводятся, в шаблон, но вот почему движок не формирует ссылку непонятно.
Ага и сапе тоже подглючивает вывожу в шаблон через $sapeplugin.links
Тут в коде дебуга в принципе ничего нет:
name = 'Блоголётчик', url = 'http://litepublisher.ru/'
name = 'Infoman', url = 'http://infomanya.ru/'
Notice: Undefined variable: id in /home/seodiz/info/plugins/sape/sape.plugin.php on line 62
Notice: Undefined index: in /home/seodiz/info/plugins/sape/sape.plugin.php on line 62
Warning: Cannot modify header information - headers already sent by (output started at /home/seodiz/info/lib/comments.class.db.php:285) in /home/seodiz/info/lib/urlmap.class.php on line 512
Warning: Cannot modify header information - headers already sent by (output started at /home/seodiz/info/lib/comments.class.db.php:285) in /home/seodiz/info/lib/urlmap.class.php on line 513
Warning: Cannot modify header information - headers already sent by (output started at /home/seodiz/info/lib/comments.class.db.php:285) in /home/seodiz/info/lib/urlmap.class.php on line 514
$m = tcommentmanager::i();
var_dump($m->hidelink, $m->redir, $m->nofollow);
Но я уже дебуг убрал, или надо было с включенным дебугом запускать?
Замени строку в lib/kernel.comments.class.db.php
if ($manager->hidelink || !$manager->checktrust($this->trust)) return $name;
на строку
if ($manager->hidelink) return $name;
кажется в прверки уровня доверия ошибка. Непонятно почему у меня все работает. В следющем релизе вообще удалю уровень доверия - до сих пор никак не использовался и в будущем вряд ли будет
Неа непомогло, я и кеш сбросил и тему перезагрузил после замены строки никакого эффекта.
Кстати а что за тег такой новый в теме по умолчанию в комментатии: $index . и точка вслед за ним, может он влияет, его надо в тему добавлять?
А может влиять что использую в теме прямой вызов $comment.website ?
Хотя нет в теме по умолчанию все тоже самое ссылки не показываются
Не пойму в чем дело, на seodiz.ru все работает как часики тфу-тфу.
По идее т.к. УРЛ выводится я могу и вручную сформировать ссылку в шаблоне темы, главное чтобы в дальнейшем это ни на что не повлияло.
Да и просто неприятно сознавать что сайт работает с ошибками.
А что если перезалить все файлы движка, кроме кеша и папок с настройками с работающего блога не поможет?
Или это где-то в БД что-то сбилось?
Бд ни причем - все в порядке. Когда вставлял echo - то данные получены. Можно продолжить тест
echo "redir to '$url' $rel<br>";
return sprintf('<a %s href="%s/comusers.htm%sid=%d">%s</a>',$rel,
litepublisher::$site->url, litepublisher::$site->q, $this->author, $name);
} else {
echo "must be link '$url' $rel<br>";
return sprintf('<a class="url fn" %s href="%s">%s</a>',
$rel,$url, $name);
}
соответственно в файл lib/comments.class.db.php при $debug = true;
Я признатся тоже не понимаю причину проблем
Заработало!
Спасибо теперь работает, теперь и нофоллов добавляет и меняет на ссылку и обратно.
Дебуг вывел:
must be link 'http://litepublisher.ru/' rel="nofollow"
must be link 'http://infomanya.ru/' rel="nofollow"
Вот кстати тот код который был до замены твоим в этой функции:
return sprintf('<a %s href="%s/comusers.htm%sid=%d">%s</a>',$rel,
litepublisher::$site->url, litepublisher::$site->q, $this->author, $name);
} else {
return sprintf('<a class="url fn" %s href="%s">%s</a>',
$rel,$url, $name);
}
Что теперь убрать из кода эхо и вырубать дебуг и все?
Или это просто тестовый вариант?
При $debug = true используется файл
lib/comments.class.db.php
при false
lib/kernel.comments.class.db.php
надо отредактировать оба, либо дождаться нового релиза. Когда следующий релиз - не знаю, должны накопится изменения. Да, echo, безусловно пудалять - ставил их для отладки
Главное, что мы узнали причину: как я понял kernel.comments.class.db.php не загрузился при обновлении и теперь я буду знать что следующее обновление все исправит.
Было бы классно иметь возможность в админке устанавливать это число, я бы ссылки открывал только после 5-го постоянным комментаторам
$m = tcommentmanager::i();
$m->trustlevel = 5;
$m->save();