Обрезанные алиасы в AdsManager

Одним из наиболее распространенных компонентов объявлений для CMS Joomla является Adsmanager. Удобный, простой и функциональный. Но, после того, как добавлено объявление, с фронтэнда можно заметить, что ссылки у объявлений обрезаны. В административной части сайта и в базе данных поле для редактирования алиаса отсутствует. Так как же исправить алиасы в AdsManager?

Как это работает?

Как оказалось, разработчики «позаботились» о своих пользователях и ограничили длину ссылок в самом коде компонента. Возможно они решили, что длинные ссылки будут не слишком красивые, или вредно для поисковых систем, но, факт в том что ссылки обрезаются, остается фактом.

Если Вам не нравится это «безобразие» и Вы хотите избавиться от этого, то откройте файл /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. Здесь необходимо обратить внимание на следующую строку:

$result = JString::substr($result,0,30);

Именно из-за этой функции получаются обрезанные алиасы в AdsManger. Как видно, длина алиаса объявления задана всего 30 символов. Вам достаточно вместо значения 30 указать своё, больше или меньше, зависит от того, чего Вы хотите добиться. Если Вы хотите, чтобы алиасы никак не обрезались, просто закомментируйте эту строку и тогда объявления в AdsManager будут иметь алиасы как есть.

Важно помнить то, что это считается правкой ядра компонента, поэтому при последующем обновлении компонента все внесенные изменения будут потеряны. Потому не забудьте внести правки после обновления компонента.

Комментарии

Здесь еще никто не оставлял комментарии.

Добавить комментарий