Обрезанные алиасы в AdsManager
Наиболее популярным компонентм доски объявлений для CMS Joomla! является AdsManager, относительно удобный, однозначно простой и функциональный. Я как-то давно установил этот скрипт на один из своих проектов: Икша. На днях занялся обновлением и обнаружил, что...
адреса страниц объявлений (url) обрезаются, «автоматом» до 30-и символов.
В административной Панели управления сайта и в базе данных поля для редактирования алиаса отсутствуют. Исправляем алиасы в AdsManager непосредственно в коде компонента.
Как оказалось, разработчики ограничили длину ссылок в коде компонента. Возможно (и логично), длинные ссылки выглядят не слишком красиво и вредно seo?.. уже не важно.
Открываем файл по адресу:
/components/com_adsmanager/router.php
и находим следующий код:
function getAdsmanagerRouteContent($id) { $db =JFactory::getDBO(); $sql = "SELECT ad_headline FROM #__adsmanager_ads WHERE id = ".(int)$id; $db->setQuery($sql); $result = $db->loadResult(); $result= TTools::stringURLSafe($result); $result = JString::substr($result,0,30); return $result; }
Данная функция формирует адрес объявления в AdsManager. Ограничение на длину алиаса в AdsManger прописано в строке:
$result = JString::substr($result,0,30);
Длина алиаса объявления задана в 30 символов. Вместо значения 30 указываем свое, большее или меньшее, зависит от задач. Если алиасы обрезать вовсе не нужно, просто закомментируем эту строку кода.
Стоит учесть, что при последующем обновлении компонента все внесенные изменения будут потеряны, ядро «перепропишется» в исходный вид. Потому я и записал это «мероприятия», дабы не забыть в будущем. А то, через месяц-три — и не вспомнить, где искать правку.
Для комментирования материалов регистрация на сайте не нужна. Правила публикации: наличие здравого смысла. Комментарии проходят премодерацию и публикуются только после проверки администратором.