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

$model->setState('filter.category_id', $params->get('catid', array()));


Теперь, чтобы сделать фильтр наоборот - исключающий, ниже добавляем:

$model->setState('filter.category_id.include', false);

У меня после обновления Жумлы до версии 3.2 фид блога категории потерял вменяемый вид: ссылка на материал стала черт знает какая, категория показывалась только текущая, игнорировав потомки и пропали даты материалов. Заглянул в libraries/legacy/view/categoryfeed.php , а там какие-то нововведенные "глупости". Пришлось ковырять до полного исцеления. Вот моя поправленная версия этого класса, кому надо:

На случай, когда админка Жумлы недоступна, например, по причине того, что мы наворотили в коде, чтобы включить отображение ошибок, следует отредактировать всего один параметр в конфигурационном файле (configuration.php):

$error_reporting = '6135';


Это все равно, что выставить E_ALL & ~E_NOTICE для вывода всех ошибок PHP, кроме замечаний (Notices).

Компонент K2 под Жумлу с некоторых пор оснащен бессменным неприятным багом: при автогенерации мета-тегов description и og:description берется весь HTML-код материала, обрезается и впихивается в мета-раздел страницы. При этом зачастую в метатегах обнаруживаются куски некорректно обрезанного HTML. Чтобы очистить метатеги от остатков HTML-кода открываем файл /components/com_k2/views/item/ view.html.php , находим строчку (примерно 373):

$metaDescItem = preg_replace("#{(.*?)}(.*?){/(.*?)}#s", '', $item->introtext.' '.$item->fulltext);

и меняем на:

$metaDescItem = preg_replace("#{(.*?)}(.*?){/(.*?)}#s", '', strip_tags($item->introtext.' '.$item->fulltext));

joomla рассылка А вы в курсе, что фреймворк от Joomla очень удобно использовать для быстрого решения небольших задач? Разработчики Жумлы проповедуют подход MVC, однако для простых приложений, например, как в данном случае - автоматизация подготовки выпуска - вполне можно обойтись одним-двумя файлами, задействовав лишь удобный механизм работы с базой данных, который предоставляет Joomla.

Открываем в любимом редакторе (мой - Geany) components\com_content\router.php и вносим небольшие изменения:

В функции ContentBuildRoute(&$query) меняем строку 27

$advanced    = $params->get('sef_advanced_link', 0);

на

$advanced    = $params->get('sef_advanced_link', 1);


В функции ContentParseRoute($segments) меняем строку 208

$advanced    = $params->get('sef_advanced_link', 0);

на

$advanced    = $params->get('sef_advanced_link', 1);


Закомментируем строки 228-232:

/*
if (strpos($segments[0], ':') === false) {
$vars['view'] = 'article';
$vars['id'] = (int)$segments[0];
return $vars;
}*/


И все.

Для начала, если посмотреть на строки 27 и 208, то видно, что в компоненте используется параметр sef_advanced_link , которому по-умолчанию присваивается значение 0. Этот параметр нигде в админке не встречается - можно сделать вывод, что создатели Жумлы все это предусмотрели, но не успели оттестировать, и потому не включили в релиз. По этой причине, данный параметр всегда указывает, что опция скрытия ID в URL всегда выключена. Мы ее включили принудительно. Кстати, если по уму, то стоило просто добавить этот параметр в administrator\components\com_content\config.xml и он бы попал в админку.

От строк 228-232 зависит появится ли ошибка при открытии категории без ID в URL. Тесты показали, что если эти строки оставить как есть (не комментировать), то страницы статей грузятся без проблем, а вот страницы категорий вызывают возникновение ошибки 404. Так что решение в этом случае - закомментировать от греха подальше.

Бесплатный плагин для защиты сайтов, построенных на различных версиях Joomla (1.5, 1.7, 2.5, 3.0) от атак и инъекций - jHackGuard

Справляется с SQL-инъекциями, удаленными вставками URL/File, удаленным исполнением кода и атаками XSS! Ведет логи.

Несмотря на то, что установка плагина простая и не требует дополнительной конфигурации, этот аддон предусматривает также и тонкую настройку.

Плагин успешно используется самими разработчиками для защиты сайтов их клиентов на протяжении последних нескольких лет.

Поставил его себе на сайт на всякий пожарный.

Наверх