OpenSEF для JOOMLA – сделай свой сайт доступным пользователю!
Сегодня поговорим о компоненте OpenSEF для Joomla 1.0.x Как следует из названия, он призван сделать ссылки на сайт приятными на глаз (SEF=ЧПУ). Решается эта задача очень неплохо.
Вы можете прописывать ссылки сами, задавать произвольные имя и связывать их со ссылками материалов и компонентов Вашего сайта. Можно этот процесс автоматизировать, система работает стабильно и с киррилическими символами тоже.
Огромный плюс: создание карты сайта в XML-формате (что с ней дальше делать, я расскажу позже), генерация meta-тегов, пожбор описаний и много-много всего прочего!
Однако за всё необходимо платить. Компонент OpenSEF немного подгружает сервер. Объективно сайт начинает грузится медленнее, а на нестабильных хостинг-площадках время загрузки может увеличится в 10 раз!
Не всё так страшно, ибо есть лекарство! Качайте дистрибутив с подправленными вызовами данных и лишней загрузки не будет!
А для тех, кто уже установил OpenSEF раньше, приведу схему для исправления:
открываем файл components/com_sef/sef.php
Ищем
1 2 3 4 5 6 7 8 9 10 11 | if ($sefSite->id == null) $sefSite->id = -1; $query = "SELECT * FROM #__opensef_sef WHERE published = '1'" . "\nAND valid = '1'" . "\nAND (direction IS NULL OR direction = '' OR direction = 'o')" . "\nAND (site_id IS NULL " . ($sefSite->id ? ' OR site_id = ' . $sefSite->id : '') . ')' . "\nORDER BY site_id DESC, published DESC, valid DESC, LENGTH(direction) DESC"; $database->setQuery( $query ); if ($database->loadResult()) { $opensef_aliases = $database->loadObjectList(); }<!--formatted--> |
и заменяем на это:
1 2 3 4 5 6 7 8 9 10 11 12 | if ($sefSite->id == null) $sefSite->id = -1; $query = "SELECT * FROM #__opensef_sef WHERE published = '1'" . "\nAND valid = '1'" . "\nAND (direction IS NULL OR direction = '' OR direction = 'o')" . "\nAND (site_id IS NULL " . ($sefSite->id ? ' OR site_id = ' . $sefSite->id : '') . ')' . "\nAND (external='{$_SERVER['REQUEST_URI']}'" . "\nORDER BY site_id DESC, published DESC, valid DESC, LENGTH(direction) DESC"; $database->setQuery( $query ); if ($database->loadResult()) { $opensef_aliases = $database->loadObjectList(); }<!--formatted--> |
Скачать подкорректированный инсталлятор компонента OpenSEF можно здесь. Удачи!
