|
Как-то понадобился компонент для Joomla, что выводит список всех материалов, написанных конкретным пользователем. Подходящий был обнаружен на joomlaforum, написал его SmokerMan, за что ему спасибо. К сожалению он требовал небольшой доработки - ссылки на материалы, им генерируемые были несколько неполными. Выглядели они примерно так: http://example.com/component/content/article/58 (при включенном htaccess и SEO), когда истинный адрес статьи http://example.com/component/content/article/4-category-name/58-article-name или же вообще другой (если статья определена в каком-либо меню Joomla. Для того чтобы ссылки выглядели нормально пришлось внести несколько исправлений (возможно SmokerMan включит их в официальную версию)
- В файле models/usercontent.php заменить строчки:
$query = ' SELECT a.*, s.title as sectiontitle, c.title as cattitle, ' .
' u.name AS author, u.usertype, g.name AS groups, u.email as author_email '.
' FROM #__content AS a ' .
' LEFT JOIN #__sections AS s ON s.id = a.sectionid' .
' LEFT JOIN #__categories AS c ON c.id = a.catid' .
' LEFT JOIN #__users AS u ON u.id = a.created_by' .
' LEFT JOIN #__groups AS g ON a.access = g.id'.
$where.
$orderby;
на
$query = ' SELECT a.*, s.title as sectiontitle, c.title as cattitle, ' .
' u.name AS author, u.usertype, g.name AS groups, u.email as author_email, '.
' CASE WHEN CHAR_LENGTH(a.alias) THEN CONCAT_WS(":", a.id, a.alias) ELSE a.id END as slug, '.
' CASE WHEN CHAR_LENGTH(c.alias) THEN CONCAT_WS(":", c.id, c.alias) ELSE c.id END as catslug '.
' FROM #__content AS a ' .
' LEFT JOIN #__sections AS s ON s.id = a.sectionid' .
' LEFT JOIN #__categories AS c ON c.id = a.catid' .
' LEFT JOIN #__users AS u ON u.id = a.created_by' .
' LEFT JOIN #__groups AS g ON a.access = g.id'.
$where.
$orderby;
- В файле views/usercontent/view.html.php: заменить
JRoute::_(ContentHelperRoute::getArticleRoute($item->id, $item->catid, $item->sectionid));
на
JRoute::_(ContentHelperRoute::getArticleRoute($item->slug, $item->catslug, $item->sectionid));
во всех местах где это встречается (на всякий случай;)
Как оно получилось можете посмотреть на примере Codesex'а: вот список статей, написанных мной, как видите выглядит он вполне замечательно и ссылки красивые. И статьи просто отличные, да.
|