+11.38
Рейтинг
33.21
Сила

Николай

Nofollow для всех, кроме Администратора [Решено]

Друзья, требуется ваша помощь. Недавно решил попробовать Livestreet. До этого делал не сложные сайты и разбираюсь в HTML гораздо лучше, чем в PHP.

Установил ЛайвСтрит, закрыл ссылки тегом nofollow, но вот беда, хочу убрать nofollow для админских постов. Пересмотрел много сообщений на данном форуме. Наткнулся на пост В топку noindex

В комментариях к нему один из участников предлагает следующее решение проблемы:
Text.class.php
168 строка добавьте
if (BLOG_URL_NO_INDEX && !$this->oUserCurrent->isAdministrator()) {

и топики созданные админом не будут проходить через MakeNoindex.

Попробовал так сделать. Не выходит. Думаю потому, что ответ уже устарел, ведь дан он был в 2009 году. Возможно сейчас эту строку нужно добавлять в другое место. Проблема в том, что я не знаю, куда именно. Поэтому решил задать вопрос снова: подскажите, как можно убрать nofollow из постов Администратора?

Моя версия LiveStreet — 0.5.1

РЕШЕНИЕ ДАННОЙ ЗАДАЧИ
Благодарность beauty_free и ort за то, что отозвались и помогли в решении проблемы.

Итак, в файле Text.class.php (/engine/modules/text.Text.class.php) находим строку (у меня строка 79)
if (Config::Get('view.noindex') and isset($this->oJevix->tagsRules['a'])) {
    $this->oJevix->cfgSetTagParamDefault('a','rel','nofollow',true);
}

Заменяем на
$oUserCurrent = $this->User_GetUserCurrent();
if (Config::Get('view.noindex') and isset($this->oJevix->tagsRules['a']) and (!$oUserCurrent or !$oUserCurrent->isAdministrator())) {
    $this->oJevix->cfgSetTagParamDefault('a','rel','nofollow',true);
}

Результат: ссылки с администраторских постов становятся do-follow. (В уже созданных постах ничего не изменится, нужно пересохранять старые посты)

Новое в LiveStreet 1.0 для разработчиков

Для разработчиков плагинов и шаблонов в LiveStreet 1.0 есть некоторые изменения.
Постараюсь их все собрать в одном месте.
Изменений, на самом деле, не так много.

Список:
  1. Модуль GEO, теперь в своих плагинах с помощью него можно делать географические привязки различных объектов
  2. Модуль Subscribe, организация подписок пользователей на различные события и рассылка по ним. Например, через него реализован механизм подписки на комментарии к топикам
  3. js вынесены за пределы шаблона в библиотеки, теперь в шаблонах достаточно только переопределить необходимый функционал
  4. Механизм валидации данных, подробнее — livestreet.ru/blog/dev_documentation/10221.html
  5. Возможность в тулбар добавлять свои элементы через стандартных механизм блоков
  6. Консоль для автоматической генерации каркаса плагина
  7. Переопределять настройки редактора стало проще, теперь они находятся в ls.settings
  8. Класс Object переименован в LsObject, позволит избежать проблем с некоторыми IDE и подключить автоподстановку методов
  9. Доработан модуль Image, теперь для сохранения изображения на другой сервер, достаточно переопределить методы SaveFile() и RemoveFile()
  10. Каптча вынесена в блочный хук {hookb run=«popup_registration_captcha»}, что позволит ее переопределить
  11. Возможность делать всплывающие подсказки через poshytip или infobox.js (с погрузкой данных через ajax)
  12. Появился модуль Tools, сейчас в нем только один метод — формирование облака тегов
  13. Шаблоны блоков перенесены в отдельный каталог /blocks/
  14. При ручном определении сеттеров в сущностях теперь следует возвращать данные как return $this->_getDataOne('blog_id'); — это позволит избежать проблемы с Notice ошибками
  15. Прямой эфир теперь автоматически группирует вкладки, если их много, в выпадающий список
  16. Смена приоритетов при загрузке блоков — теперь блоки из конфига загружаются после блоков, объявленных в коде экшенов, соответственно блоки из конфига имеют более высокий приоритет. Это позволит применять правила к блокам после окончательного определения экшена/евента, которые можно переопределить в ходе выполнения логики экшена/хуков.
  17. Возможность делать именованные евенты и управлять блоками из конфига о их именам. Например для евента на основе регулярно выражения можно задать имя и его использовать в правилах блоков. Если имя не задать, то оно автоматически определится как имя метода евента.
  18. Теперь все текстовки плагинов помещаются в пространство 'plugin.name', например, Get_Lang('plugin.page.admin_title');


Если есть вопросы, то отвечу более подробно.

Установка Livestreet с нуля (Debian): nginx + mysql + php-fpm + apc + memcached + sphinx

Возможно, этот гайд даже кому-нибудь понадобится.

0) Итак, у нас имеется свежепоставленный Debian с настроенным ssh-доступом и юзер с правами, достаточными для работы sudo.
Здесь и далее "#" в начале команды означает, что ее необходимо запускать с правами root-пользователя (например, с помощью sudo)
1) Пакеты будем ставить из репозитория dotdeb, поэтому для начала добавим его в sources.list:
# nano /etc/apt/sources.list

дописываем в конец файла
deb http://packages.dotdeb.org stable all

Далее импортируем ключ dotdeb'а:
wget http://www.dotdeb.org/dotdeb.gpg -O - -q | sudo apt-key add -

Обновляем список пакетов
# apt-get update

Читать дальше →

Seo настройки сайтов на LS

Что-то так мало инфы на сайте по этому поводу, я решил по-немногу собирать все в этом топике.

Тайтлы


Как я вижу нормальную работу с тайтлами:

1. Главная имеет тайтлы с ключами
2. На внутренних в тайтле выводим название статьи + рубрика + название сайта(не обязательно). Причем, если название сайта и выводить, то только краткое и оно не должно повторять тайтл главной. Или же вообще выводить исключительно в тайтле название статьи(топика) + возможность указывать тайтлы отдельно.

Как сейчас по дефолту — название сайта = тайтлу и это название лепится везде на всех страницах.
Читать дальше →

Перегенерация постов из source

Всем привет!

Есть молодой сайт на livestreet 0.5.1, который интенсивно наполняется и не менее интенсивно пилится.

На данный момент опубликовано чуть более 1300 постов (часть — стандартные топики, часть — другого, самописного типа). И на днях были произведены кое-какие изменения с тегами в jevix (из коробки все режется отлично — аж параноик во мне ликует, но пришлось кое-что добавить). Теперь имеем следующее.

В source-текстах (которые сохранены редактором) все теги расставлены как надо, все на месте. При ручной перепубликации jevix теперь нужные теги оставляет — все отлично. Но переопубликовать 1300 топиков вручную… Это требует уйму времени. Потому и ищется автоматическое решение.

Из-за весьма специфичного вопроса (а может и сложности и вариантов формулировок) ответ не нагуглился. Писать свой велосипед — последний из вариантов. Потому и хотел бы спросить — есть ли встроенные функции/решения для автоматической повторной генерации «финальных» текстов из source-текстов?

Боремся за место на диске

На выходных досмотрелся что движок не удаляет загруженные на сервер оригиналы картинок в фотосетах, аватарках пользователя и аватарках блогов. Учитывая что по умолчанию для фотосета выставлено 6Мб на картинку и 30 картинок для загрузки это будет 6 х 30 = 180Мб на один фотосет это конечно ничто для хостинга в 3Тб, но для 2Гб хостинга это всего 11 фотосетов, ужос!!!
Попробовал поставить плагин пылесос, думал он поможет, но увы там этого не реализовано.
Пришлось лезть в исходники. Вобщем вот что получилось (для LS 0.5.1) (Для лентяев скачать готовое):

Читать дальше →

Рекомендация к использованию: Наследование шаблонов

На примере будущего jQuery-шаблона для ПриветСочи.ру решил выложить мини-инструкцию использования наследования шаблонов, сильно сокращающий количество часто повторяющегося Smarty-кода.

Коротко о файлах в примере (ссылка на архив внизу):

  • topic.prototype.tpl — прототип топика, содержащий всю повторяющуюся разметку. Использованы вложенные конструкции типа
    {block name=...}
  • topic_link.tpl, topic_photoset.tpl, topic_question.tpl, topic_topic.tpl — файлы, наследующие и заменяющие/дописывающие некоторые блоки прототипа топика (topic.prototype.tpl)
  • topic.social.tpl — включение с кодом кнопочек публикации в разные соц-сети.


Коротко о содержании файлов:

Посмотрев файлы примера, не сложно заметить, что файлы topic_*.tpl содержат:
  1. в начале каждого файла наличиствует код
    {extends file=topic.prototype.tpl}
  2. минимум специфической разметки, обрамленной в конструкции
    {block name=... флаг}
    — это замены и дополнения блоков. Флаг может либо отсутствовать (что означает полную замену содержимого блока), либо принимать принимать значения:
    • append — дописывает в конец содержимое блока к наследуемому блоку.
    • prepend — дописывает в начало содержимое блока к наследуемому блоку.
    • hide — скрывает блок (насколько я понял, если добавить в блок прототипа, то по умолчанию блок будет скрыт).
    • nocache — запрещает кеширование содержания блока (а это вообще актуально для LS?).


Документация


ZIP-архив с примером

Фикс безопасности в LiveStreet 0.5.1

В LiveStreet 0.5.1 в js библиотеке prettyPhoto обнаружена уязвимость XSS.

Варианты исправления:


Настоятельно требуем выполнить обновление.