Модуль Effect Content для Joomla
Joomla 3 Joomla 4Модуль Effect Content — это модуль, который позволит Вам вывести список категорий или материалов в виде компактных блоков с различными красивыми эффектами при наведении.
Использование этого модуля позволит Вам избежать утомительной верстки и организации контента категорий и материалов Joomla. После добавления новых категорий или материалов, не придется в очередной раз редактировать шаблон сайта, добавляя вручную необходимый контент.
В случае обновления модуля на более новую версию, всегда сбрасывайте кеш браузера. Модуль продолжает развиваться и возможны изменения оформления и скриптов. Перед обновлением всегда делайте резервную копию CSS-стилей модуля, если Вы их изменяли.
Дополнительная информация
- Позволяет выводить материалы и категории Joomla в виде стилизованных блоков;
- Имеется встроенная поддержка категорий и продуктов компонента Joomshopping;
- Имеется встроенная поддержка категорий и записей компонента K2;
- Имеется встроенная поддержка категорий и объявлений AdsManager;
- Используются только родные router от соответствующих компонентов;
- Имеется возможность вывода только определенных по ID материалов, записей, продуктов, объявлений;
- Отсутствуют копирайты и вшитые скрытые ссылки;
- Модуль абсолютно бесплатен, разрабатывается и обновляется исключительно на личном энтузиазме и пожеланиях пользователей.
Модуль тестировался на следующих версиях компонентов:
- Joomla 4.2.9
- Joomla 3.6.5
- Joomla 3.7.2
- Joomla 3.8.3
- Joomla 3.9.11
- JoomShopping 5.1.2
- JoomShopping 4.13.0
- JoomShopping 4.18.3
- K2 2.7.0
- K2 2.8.0
- AdsManager 3.1.7
- AdsManager 3.1.11
- Корректно работает с новым роутером Joomla
0.4.1:
— Добавлена поддержка Joomla 4 и JoomShopping 5
— Удалена поддержка K2 (разработчики еще не выпустили версию компонента под Joomla 4)
— Удалена поддержка AdsManager (разработчики отказались от поддержки и обновления компонента)
0.3.7:
— Фикс прозрачности фонов.
0.3.6:
— Добавлена возможность задания альтернативных макетов (layout);
— Исправлена проблема с отключением десятичных знаков в цене;
— Добавлен параметр выбора цвета фона;
— Добавлен параметр выбора цвета фона при наведении;
— Добавлен параметр выбора прозрачности фона при наведении;
— Добавлен параметр выбора цвета заголовка;
— Добавлен параметр выбора цвета фона заголовка;
— Добавлен параметр выбора цвета описания;
— Добавлен параметр выбора цвета фона описания;
— Добавлен параметр выбора цвета цены;
— Добавлен параметр выбора цвета фона цены;
— Добавлен параметр выбора цвета кнопки;
— Добавлен параметр выбора цвета кнопки при наведении;
— Добавлен параметр выбора цвета текста кнопки;
— Добавлен параметр выбора цвета текста кнопки при наведении;
— Добавлены параметры настроек отображения для планшетов;
— Добавлены параметры настроек отображения для мобильных устройств.
— Добавлена возможность центрирования блоков в случае, если они не занимают всю ширину.
0.3.4:
Добавлена возможность выбора, откуда брать описание: краткое описание, полный текст, meta-description (функция доступна только для материалов Joomla);
Исправлена функция динамического контента, теперь вместо $_REQUEST используется встроенный JRequest::getVar;
Добавлена функция исключения из выборки активного материала, товара или записи;
Добавлена возможность отображать дату публикации;
Добавлена возможность сортировки в случайном порядке;
Добавлена возможность делить элементы на страницы — псевдопагинация.
0.3.1:
Добавлена возможность выбора отображаемой миниатюры для материалов и категорий Joomla: первое из описания или из параметров;
Добавлена функция динамического контента (тестируется)
Добавлена возможность задать изображение, которое будет отображаться в случае, если изображение элемента отсутствует;
Добавлена возможность задать текст в начале и в конце модуля;
Исправлена ошибка Fatal error: Class ‘ContentHelperRoute’ not found
Частичная правка дизайна
0.2.3:
Добавлена поддержка компонента AdsManager.
0.2.0:
Добавлен параметр, позволяющий сделать ссылку на весь блок, либо только на кнопку «Подробнее».
0.1.1:
Настройки модуля структурированы;
Настройки модуля дополнены описаниями и пояснениями.
0.1.0:
Модуль переименован;
Добавлена поддержка компонента Joomshopping;
Добавлена поддержка компонента K2;
Добавлен перечень параметров для настройки отображения товаров и категорий Joomshopping;
Добавлен перечень параметров для настройки отображения записей и категорий K2.
0.0.22:
Добавлен дополнительный стиль эффектов, для тех, кому необходимо отображать заголовки до момента анимации.
0.0.21:
Изменена логика взаимодействия параметров количества колонок и ширины блока элемента.
Добавлены такие параметры, как длина заголовка, окончание краткого описания, а также возможность скрыть или отобразить кнопку «Подробнее».
0.0.20:
Добавлена возможность выбора количества колонок для отображения.
0.0.12:
Добавлена возможность сортировки отображаемых элементов;
Добавлена возможность выбора максимального количества отображаемых элементов.
- Фильтр по категориям или меткам
- Объединение динамики выборки
- Если у Вас установлена программа блокировки рекламы AdGuard. Отключите его при добавлении изображений в настройках модуля. По непонятным причинам в некоторых случаях он может блокировать медиабиблиотеку Joomla.
- Для корректной работы пагинации необходима подключенная библиотека jQuery.
- Для работы модуля необходима версия PHP не ниже 5.6
- Возможна проблема вывода изображения из контента в качестве миниатюры. Для этого убедитесь, что вставленное в текст изображение не содержит внутри ссылки ненужных дополнительных ссылок и таймштампов.
Я бы еще добавил галку "Избранное" - дабы можно было отбирать для вывода только фаворитов. J3
Спасибо!
Перепроверил на своих демо и тестовых сайтах, везде корректно работает снятие материала с публикации - он перестает где-либо отображаться, в том числе и в этом модуле. Там в самой выборке учтен этот момент:
->where($db->quoteName('state') . '=1')
Нужно смотреть конкретно Ваш вариант отдельно.
Касательно избранного, никогда не пользовался им, потому даже не подумал о таком моменте. В качестве альтернативы Вы можете использовать тип списка "Материалы Joomla по ID" и просто перечислить все id материалов, которые у Вас в избранном. Понимаю - малость не удобно:)
Если возможно, то добавьте настройки для заголовка и текста описания. Это связано с уменьшением размера блока и количеством знаков заголовка и текста.
Разворачиваемое подробное описание материала не форматируется в соответствии с тем, как это определено в самом материале. В частности не получается вставить кнопку с нужным переходом по заданному URL
Опишите проблему подробнее. Что значит "разворачиваемое подробное описание"? Страница, которая открывается при клике на блок - это конечная страница материала Joomla (другого компонента, который используете) и модуль никак на нее не влияет. Если же речь всё же идет о кратком описании внутри конкретного блока модуля, то там не применяется никакое форматирован, весь html удаляется и содержимое обрезается по заданной длине. Модуль нигде не отображает подробное описание материала.
Модуль всплывающего окна у Вас выводится скорей всего из-за того, что это шорткод, который потом преобразуется в соответствующее содержимое, Вы можете точно также создать в отдельном модуле создать нужную Вам кнопку и добавить ее в содержимое материала.
Вопрос: Можно ли сделать так, чтобы при загрузке описания из интро сохранялось указанное форматирование?
Например:
У меня в интро:
1
2
3
А модуль выводит - 1 2 3.
Как то можно поправить?
Т.к. краткое описание, выводимое в модуле, может иметь фиксированную длину (т.е. общая длина обрезается по заданному количеству символов), то соответственно все html-теги перед этим очищаются, ибо незакрытые (обрезанные) теги будут ломать всю структуру htlm-документа.
А т.к. html полностью очищается, то соответственно и форматирование никак не сохранить. По крайней мере стандартного функционала нет, только исправлять код модуля.
Вы можете в файле /modules/mod_effect_content/tmpl/default.php примерно в 650-ой строке в блоке "Готовим описание" удалить соответствующие методы в зависимости от того, какое именно описание Вы выводите.
Например для краткого описания intortext замените в 650-ой строке код:
$description = mb_substr(strip_tags($id->introtext), 0, $params->get('symbol_count')) . $params->get('end_symbol');
На следующий
$description = $id->introtext;
$description = mb_substr(strip_tags($id->introtext), 29, $params->get('symbol_count'));
На следующее:
preg_match("#::introtext::(.*?)::/introtext::#i", $id->introtext, $matches);
$description = $matches[1];
Использование маски обусловлено спецификой БД. При классической базе делаем:
$description = mb_substr(preg_replace ('/style=[^>]*/', '', $id->introtext),0,171);
У меня заработало. Форматирование сохраняется в полном объеме.
Совместную обработку из разных баз пока не делал.
Допустим в одной записи в кратком описании у Вас будет <div>текст...</div> который уложится в 170 символов, и всё будет хорошо, а во второй записи тоже самое займет к примеру 180 символов, но т.к. Вы отрезаете mb_substr, то во второй записи не будет одного закрывающего тега и вся разметка дальше будет ломаться.
Именно поэтому я использую strip_tags для очистки тегов, т.к. я, Вы и еще кто-то может и знает как корректно вставить текст и помнит о том, что нужно уложиться в этот размер, а кто-то другой не знает об этом и просто вставляет на своём сайте из вордовского документа через встроенный редактор tinyMCE копипастом, и у него будет всё очень печально.
Попробовал разместить файлы правок в папку html шаблона, но что-то не "тянет", пока не разобрался.
Не плохо (бы) дать возможность настройки позиции h2 на блоке (верх, середина, низ) в случае отключения описания категории.
Из css стоит убрать font-family (Georgia это круто :)).
Впрочем, мелочи. Странно, что такая "полезность" не появилась давно.
Не совсем понял про перенос правок в шаблон. Создаете каталог /templates/ШАБЛОН/html/mod_effect_content/ и помещаете в него копию файла default.php вносите любые правки, они будут применяться. Если же речь о переносе файлов стилей, то да, тут уже придется изменить ссылку на их подключение в начале этого файла, просто измените путь до своего исправленного файла и готово.
По остальным замечаниям приму к сведению. Спасибо за Ваш отзыв.
НО! Со всеми плясками так и не добился вывода миниатюр изображений.
Joomla! 3.9.23 PHP 7.3 библиотека jQuery включена.
В чем может быть моя ошибка?
Есть один баг - кнопка Подробнее на всех блоках ближе к нижнему краю, а в первом блоке ближе к середине. Как исправить? Было бы лучше чтобы все были ближе к середине
http://jm3.79225328505.pjqom.spectrum.myjino.ru/
А, и еще, в стиле 9, при наведении желтоватый фон, который никак не редактируется, кроме как в коде. Я у себя его подправил в файле /modules/mod_effect_content/css/effects.css убрал строку background-color для стиля 9
И да, хорошо бы и простой стиль - без эффектов, но с заголовком и кратким описанием. Тогда модуль будет абсолютно универсальным.
Автору еще раз спасибо!
Спасибо за Ваш отзыв и то, что указали на недочеты. Постараюсь в будущем исправить и дополнить модуль.
По поводу желтого фона, упустил этот момент, потому его можно убрать только через файл стилей.
Что касаемо кнопки "Подробнее". Она имеет отступ в зависимости от высоты содержимого описания блока, у Вас в первом блоке 4 строки, а в последующих по 5. Вы можете либо уменьшить/увеличить количество выводимых символов для описания, чтобы в каждом блоке было одинаковое количество строк. Либо могу предложить в файл /modules/mod_effect_content/css/effects.css добавить следующие стили:
.style9 .readmore {
position: absolute;
left: 50%;
bottom: 20%;
transform: translate(-50%, 0);
transition: all 0.2s linear;
}
.style9:hover .readmore {
bottom: 10px;
}
Где bottom это отступ кнопки снизу блока.
В будущем постараюсь исправить эту проблему и сделать немного иначе.
Если отрыть файл /modules/mod_effect_content/helper.php то можно увидеть все запросы, которые формируют данные. Данные материалов берутся из таблицы #__content, соответственно если Helix blog option не хранит данные в этой таблице, то придется достроить соответственно запрос на получение данных. В файле /modules/mod_effect_content/tmpl/default.php в этом случае придется переделать код под разбор данного параметра.
Это всё в теории.
Если Вы не работаете с PHP кодом, то тут только к кому-нибудь обращаться за помощью в доработке, т.к. я никогда не использовал Helix, не знаю и не видел как он хранит данные, потому здесь я особо помочь не могу, нужно смотреть и разбираться.
Вы конечно же можете выслать бекап Вашего сайта мне на info@blog-about.ru я попробую посмотреть, но ничего не обещаю по причине большой загруженности.
На примере 2-го стиля.
Откройте файл /modules/mod_effect_content/tmpl/default.php
Найдите в строках 719-723 вывод заголовка элемента <h2></h2> и переместите этот блок кода заголовка строкой ниже к 747-ой строке и вставьте перед строкой <?php if ($params->get('link_all') == '1') { ?>
В этом случае заголовок всегда будет отображаться и даже если навести курсор на блок, то он так и останется поверх всего. Если же хотите, чтобы при наведении курсора заголовок перекрывался, то его нужно перенести наоборот, выше, сразу над строкой <div class="mask">
После этого откройте файл /modules/mod_effect_content/css/effects.css и закомментируйте или удалите стили трансформации в соответствующем:
.style2 h2 {
/* transform: translateY(-100px); */
transition: all 0.2s ease-in-out;
}
Соответственно, если у Вас стиль 1, то .style1 h2, если стиль 3, то .style3 h2 и т.д.
В Стиле 1 вообще не работает, комментировал строку /*transform: translateY(-100px);*/
из всего блока кода
.style1 h2 {
opacity: 0;
-webkit-transform: translateY(-100px);
-moz-transform: translateY(-100px);
-o-transform: translateY(-100px);
-ms-transform: translateY(-100px);
/*transform: translateY(-100px);
-webkit-transition: all 0.2s ease-in-out;
-moz-transition: all 0.2s ease-in-out;
-o-transition: all 0.2s ease-in-out;
-ms-transition: all 0.2s ease-in-out;
transition: all 0.2s ease-in-out;
}
Warning : constant(): Couldn't find constant JPATH_ in /home/h143691/data/www/site.ru/libraries/src/Installer/Adapter/ModuleAdapter.php on line 214 {"success":true,"message":null,"messages":{"message":["\u0423\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0430 \u043c\u043e\u0434\u0443\u043b\u044f \u0443\u0441\u043f\u0435\u0448\u043d\u043e \u0437\u0430\u0432\u0435\u0440\u0448\u0435\u043d\u0430."]},"data":{"redirect":"\/administrator\/index.php?option=com_installer&view=install"}}
Спасибо за современный красивый модуль! С адаптивкой все нормально, единственная проблема - не подгружаются ЧПУ категорий, что, естественно, очень плохо сказывается на СЕО, http://magiclife.su/
Смотрел и в базе данных, и в скриптах. Поскажите, пожалуйста, как можно прописать нужные ссылки?
Откуда берется кириллица не могу понять - ни в материале, ни в меню, ни в БД ее нет. Кеш много раз вычищен.
Здравствуйте!
Извините за задержку - были технические проблемы.
К сожалению, залить архив с почты сайта не получилось, поэтому высылаю расшар с адреса pc-rat@yandex.ru
Есть у меня такая привычка - переопределять все... вот и данный модуль решил переопределить, но не тут то было.
1. В файле: mod_effect_content.php строку:
require(JModuleHelper::getLayoutPath('mod_effect_content', 'default'));
заменил на:
require JModuleHelper::getLayoutPath('mod_effect_content', $params->get('layout', 'default'));
2. Добавил в файл: mod_effect_content.xml строку:
в админке появилась возможность выбора альтернативного макета, но вот на сайте модуль перестает отображаться, появляется ошибка:
Warning: Invalid argument supplied for foreach() in ***/temlates/name_temlates/mod_effect_content/default-user.php on line 178
в данной строке: foreach ($list as $id) {
Скажите пожалуйста, как можно это побороть? Спасибо!
К сожалению сейчас совсем нет времени разбираться и искать проблему.
Могу посоветовать следующее.
require JModuleHelper::getLayoutPath('mod_effect_content', $params->get('mylayout', 'default'));
Указать другой параметр, отличный от layout, например mylayout
И соответственно в XML добавить параметр:
<field name="mylayout" type="list" label="MOD_EFFECT_CONTENT_DINAMIC_LAYOUT" description="MOD_EFFECT_CONTENT_DINAMIC_LAYOUT_DESC" default="0">
<option value="default">default</option>
<option value="default-user">default-user</option>
</field>
Принцип действия будет тот же что и с layout.
Откройте файл /modules/mod_effect_content/tmpl/default.php и найдите строку (примерно 407-ая):
$price = number_format($id->product_price, $decimal_count, $decimal_symbol, $thousand_separator) . ' ' . $id->currency_code;
Замените в $decimal_count на 0, у Вас должно получиться следующим образом:
$price = number_format($id->product_price, 0, $decimal_symbol, $thousand_separator) . ' ' . $id->currency_code;
Здесь 0 указывает количество знаков после запятой.
Не хватает адаптивности, конечно. Очень не хватает.
Да и 10-ый дизайн, простой, с выведенным заголовком и минимумом анимации, тоже очень пригодился бы. ))
Вижу, обновление планируется давно, но все никак не случится. Пусть у вас наконец появится на это время. :)
Удачи с развитием модуля. Очень он симпатичный у вас получился.
А самого простого стиля для 99% сайтов - картинка и текст не сделал.
Спасибо за труды.
Изначально на всех сайтах использовался модуль Mod News GK5 Pro, который делает то, что Вам нужно, но потом попросили эффекты и анимацию, потом еще раз, и еще, в итоге и был создан этот модуль для удовлетворения именно этих потребностей, не ожидал, что понадобится обычный стиль.
В будущем обновлении модуль будет полностью настраиваемым, с возможностью самостоятельно задавать и стили и анимации и эффекты.
Модуль классный, всё жду, когда автор добавит адаптивность)) Спасибо, что добавили возможность брать описание из Description.
А несколько таких модулей как сделать? Чтобы на одной странице - один, на другой странице - другой с другими картинками соответственно, на третьей - третий.
Спасибо!
Вы можете использовать неограниченное количество таких модулей, как и любой другой.
Приношу извинения за задержку адаптивности. Очень сильно не хватает времени на развитие модулей. Планируется очень много обновлений как модулей, так и самого сайта, плюс новые модули и статьи. Адаптивность планирую добавить вместе с поддержкой Joomla 4.
так, у меня не сделаны пунктми меню, значит он так будет висеть на всех страницах?
Приношу свои извинения.
На данный момент Вы можете комбинировать настройки следующим образом.
1 - Указать "Количество колонок" = 0 и задать "Ширину одного блока" = 300 (например), в таком случае модуль будет пытаться разместить столько блоков в строку, сколько влезет, например ширина блока 300, а ширина страницы 1500, тогда модуль уместит 5 блоков.
2 - Указать "Количество колонок" = 5 (например), а в настройках отображения указать "Ширину миниатюры" = 0 и "Высоту миниатюры" = 0, в таком случае независимо от ширины страницы модуль будет растягивать или сужать блоки.
Поправьте если не понял вопрос.
Остальные правки к сожалению пока что только через файл CSS.
Как и любой другой модуль - просто устанавливаете новую версию и всё. Все файлы заменятся автоматически. Соответственно если Вы изменяли какие-либо файлы, то сохраните их, и после установки новой версии повторите изменения (не заменяйте новые файлы старыми, произведите именно редактирование).
вот строка:
protected function header($string, $replace = true, $code = null)
{
$string = str_replace(chr(0), '', $string);
947 header($string, $replace, $code);
joomla 3.6
k2( сатериалы из к2)
шаблон стандарт
Если нет возможности повысить, сообщите, подскажу как исправить код.
Да, на данный момент оптимизации нет. Сейчас ведется доработка в этом направлении, а также возможность полной кастомизации модуля самостоятельно.
К сожалению ввиду малого количества свободного времени, работа идет медленно.
@media screen and (-webkit-min-device-pixel-ratio: 0) and (max-width: 767px) {
.list_contents .row_cols .view{width: 100% !important;}
}
Однако выдает ошибку о не существующей таблице и в модуле ничего нельзя сделать.
Ошибка 1146 Table '_______#adsmanager__categories' doesn't exist
Будьте добры немного подробнее о проблеме. Какая версия модуля используется, версия Joomla и версия AdsManager? Также сообщите, где отображается эта ошибка - в настройках модуля или на лицевой стороне сайта?
У себя по крайней мере никакой проблемы не наблюдаю, вот скрин настроек модуля http://joxi.ru/8AnbPOaCjNwOkA а вот как выглядит на лицевой http://joxi.ru/l2ZxJEKcwlB41r (естественно у меня нет наполнения, это стандартные данные).
буду очень благодарен за ответ.