Новости Joomla

Вышел компонент интернет-магазина HikaShop 6.1.0.Один из известных компонентов магазина для Joomla

Вышел компонент интернет-магазина HikaShop 6.1.0.Один из известных компонентов магазина для Joomla

👩‍💻 Вышел компонент интернет-магазина HikaShop 6.1.0.Один из известных компонентов магазина для Joomla.v.6.1.0 Что нового?Модуль корзины. Отображение корзины в виде offcanvas-элемента.Кнопка выхода в панели управления пользователя. Что тут сказать, просто добавили. Отправка писем только для заказов, оплаченных определёнными способами. Это удобно для рассылки сообщений, привязанных к региону или провайдеру (например, инструкции по банковскому переводу только для заказов, оплаченных банковским переводом).Листинг выплат по партнерской системе. В разделе управления партнёрскими программами появилось новое подменю «Выплаты», в котором перечислены выплаты партнёрам (упрощённое отслеживание и сверка). Добавлены настройки, благодаря которым можно определить категории товаров, на которые начисляется партнёрская комиссия с продаж.Список комплектов товаров. Система комплектов позволяет отслеживать остатки товаров, продаваемых в комплекте.Подробнее в блоге Hikashop.Поскольку мы не сообщали ранее о Hikashop 6.0, то вкратце скажем, что он вышел в июне 2025г. В новой версии было:- 13 исправлений ошибок- 17 улучшений. В частности:- - Hikashop теперь проверяет UserAgent пользователя перед добавлением товара в корзину, чтобы отсечь ботов. Ведь компонент хранит корзины в базе данных.- - улучшен роутинг компонента, позволяющий использовать в названии товара даже слеши.- - улучшения фильтра товаров - ускорение загрузки категорий/брендов/характеристик.- 4 новых функции:- - добавлена поддержка Joomla 6.0.- - Улучшена возможность адаптации форм HikaShop на фронтенде к шаблонам, не использующим стандартные классы Joomla.- - Плагин внутреннего баланса: возможность исключить уцененные товары из начисленных баллов.- - Теперь можно выбирать склады для вариантов товаров.Подробнее в Changelog Hikashop.Также при работе с Hikashop стоит учитывать, что один и тот же код поддерживает версии Joomla от 3.х до 5.х, а в таблице сравнения версий заявлена и Joomla 2.5. Беглый просмотр кода показал, что компонент как был, так и остался старым и для совместимости с Joomla 4+ просто добавлен плагин.@joomlafeed#joomla #расширения #hikashop

На сколько актуально делать сайт в 2025 году? Битва с нейросетями и выбор CMSНовый выпуск подкаста...

На сколько актуально делать сайт в 2025 году? Битва с нейросетями и выбор CMSНовый выпуск подкаста...

На сколько актуально делать сайт в 2025 году? Битва с нейросетями и выбор CMSНовый выпуск подкаста "Просто о Digital"Гость:🎙 Владимир Сергеенко ( https://t.me/aixman ) • Интернет-маркетолог с 14-летним опытом• Соавтор книги «Нетворкинг»• Спикер конференции Ассоциации директоров по развитиюВедущий:💻 Игорь Филипенко ( https://t.me/igorleee )• Программист и предприниматель с 16-летним опытом в digital• Основатель подкаста "Просто о Digital"• Специалист по автоматизации бизнес-процессовВ этом выпуске вы узнаете:🔥 Актуальность сайтов в эпоху нейросетей• Актуален ли сайт сейчас и будет ли актуален в будущем?• Зачем нужен сайт? Есть ли иные инструменты привлечения клиентов?🤖 Нейросети vs Поисковики vs Сайты• Почему нейросети не заменят сайты в B2B-сегменте• Как Google и Яндекс меняют алгоритмы из-за AI-конкуренции📊 Сайт как центр вселенной вашего трафика• Почему без сайта вы сливаете 40% маркетингового бюджета впустую?🛡 Безопасность и Joomla 6.0• Как отфильтровать 99% ботов и сэкономить на трафике• Почему Joomla теперь обходит WordPress в безопасности и скорости⚖️ Выбор платформы: битва CMS• WordPress: 50% рынка но 80% уязвимостей• Joomla: профессиональная CMS для сложных проектов• Drupal: почему его похоронили в 2023 году• Tilda: когда конструктор выгоднее CMSПриятного просмотра/прослушивания!RSS: https://cloud.mave.digital/61930Mave: https://igorfilipenko.mave.digitalЯндекс Музыка: https://music.yandex.ru/album/35840190Telegram Mave: https://t.me/mavestreambot/app?startapp=igorfilipenkoApple Podcasts: https://podcasts.apple.com/us/podcast/просто-о-digital-и-бизнесе/id1801903450ВКонтакте: https://vk.com/podcasts-12488584Youtube: https://www.youtube.com/playlist?list=PLfR6jTpnkohDDco32xZ-KyMyWi_S5Xdy2=========================Видео-формат подкаста:Rutube: https://rutube.ru/video/b5762754f9d3e0dc382f32f3034be0a2/Youtube: https://youtu.be/nu1XF2jNbxY#подкаст #podcast

0 Пользователей и 1 Гость просматривают эту тему.
  • 8 Ответов
  • 7034 Просмотров
*

ak1976

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

Может еще кому пригодится.
Настройки (количество сообщений на страницу, количество вкладок с номерами) берутся из аналогичных настроек при постраничной структуре отображения. За количество сообщений берется количество сообщений верхнего уровня.

Для этого понадобились следующие исправления. В указанных файлах нужно заменить фукнции которые приведены под спойлерами.

Файл components\com_jcomments\model\jcomments.php
Спойлер
[свернуть]

Файл components\com_jcomments\jcomments.ajax.php
Спойлер
[свернуть]

Файл components\com_jcomments\jcomments.php
Спойлер
[свернуть]

и файл components\com_jcomments\tpl\default\tpl_tree.php
Спойлер
[свернуть]

Все исправленные файлы во вложении. Архив нужно распаковать в каталоге componetns. JComents версии 2.2.0.2

P.S. Исправления и архив обновлены до последней актуальной версии 24.11.2011

[вложение удалено Администратором]
« Последнее редактирование: 24.11.2011, 04:09:00 от ak1976 »
*

smart

  • Администратор
  • 6478
  • 1318 / 15
  • Хочешь сделать хорошо — сделай!
Во-первых, вы испортили функцию подсчета количества комментариев для объекта, и она будет "врать", считая только комментарии первого уровня. Это мягко говоря неправильно. Да и зачем, там есть параметр $filter, через который можно легко и быстро добавить нужное условие (только там, где это требуется - при вычислении номера страницы).

Во-вторых, есть сомнения в производительности при более-менее "ветвистом" обсуждении (т.е. допустим когда речь идет о 5-7 уровнях комментариев) - поле path и было заведено для разбивки на страницы, но производительность я не измерял. Изначально планировалась динамическая загрузка дерева, по частям.

В-третьих надо проверить, будет ли работать функция навигации к комментарию по ссылке. Т.е. при оригинальной постраничной навигации если в URL присутствует идентификатор комментария, то будет активизирована нужная страница и будет осуществлен переход к комментарию. Сходу не уверен, сработает ли это в описанной модификации.

А в целом, да, интересно. А посмотрю что в результате получилось более детально вечером.
« Последнее редактирование: 22.11.2011, 17:29:51 от smart »
*

ak1976

  • Новичок
  • 3
  • 0 / 0
Во-первых, вы испортили функцию подсчета количества комментариев для объекта, и она будет "врать", считая только комментарии первого уровня. Это мягко говоря неправильно. Да и зачем, там есть параметр $filter, через который можно легко и быстро добавить нужное условие (только там, где это требуется - при вычислении номера страницы).
Спасибо за подсказку, вернул getCommentsCount в первоначальный вид и поправил соответствующим образом getCommentsTree
кстати там пришлось закомментировать блок
Код: php
		#if ($canComment == 0) {
# $total = JCommentsModel::getCommentsCount($object_id, $object_group);
# if ($total == 0) {
# return '';
# }
#}

Иначе, для зарегистрированных пользователей (только они у меня могут писать комментарии) не показывался блок навигации. Вместо закомментированного кода вставил
Код: php
		$total = JCommentsModel::getCommentsCount($object_id, $object_group, $config->get('template_view') == 'tree' ? "\nAND level = 0" : "");

Во-вторых, есть сомнения в производительности при более-менее "ветвистом" обсуждении (т.е. допустим когда речь идет о 5-7 уровнях комментариев) - поле path и было заведено для разбивки на страницы, но производительность я не измерял. Изначально планировалась динамическая загрузка дерева, по частям.
Тут я согласен, не совсем красивое решение с "like", но лучшего я в данном случае не придумал. Была мысль добавить в таблицу #__jcomments поле topparent в которое для всех дочерних элементов заносить id предка 0 уровня (т.е. это второй элемент в поле path), тогда по этому полю можно было построить индекс и вопросов с производительностью бы точно не возникло. Но это потребовало бы еще правки файлов jcomments.ajax.php и jcomments.class.php, в части сохранения комментария или написания плагина. Я правильно понимаю, что можно написать плагин на событие onAfterCommentChanged и вставить в него обновление указанного поля?
Для уменьшения количества правок пошел пока по более легкому пути. Проблем пока нет, может быть по тому что комментариев меньше 1000.

Была еще мысль поправить сортировку по убыванию дат. Текущий вариант с исправлением getCommentsList (сортировка по c.parent, c.date DESC) не совсем корректен, т.к. сортирует по дате комментария первого уровня, а хотелось бы чтобы при ответе на комментарий вся ветка "всплывала" на верх. Для этого нужно в таблице #__jcomments нужно поле update_time - обновления ветки. При сохранении комментария будет обновляться update_time у записи начала ветки (ее id мы можем взять из path)

В-третьих надо проверить, будет ли работать функция навигации к комментарию по ссылке. Т.е. при оригинальной постраничной навигации если в URL присутствует идентификатор комментария, то будет активизирована нужная страница и будет осуществлен переход к комментарию. Сходу не уверен, сработает ли это в описанной модификации.
В данной модификации это не работало. Я не знал об этом функционале, спасибо за подсказку. Чтобы все заработало нужно поправить файл components\com_jcomments\jcomments.ajax.php
Спойлер
[свернуть]
и файл components\com_jcomments\jcomments.php
Спойлер
[свернуть]

P.S. хотел добавить вложение с последней версией измененных файлов, но выдалась ошибка, файл с архивом 22 кБ
Код
Папка upload заполнена. Попробуйте файл меньшего размера или свяжитесь с Администратором. 
*

smart

  • Администратор
  • 6478
  • 1318 / 15
  • Хочешь сделать хорошо — сделай!
Спасибо за подсказку, вернул getCommentsCount в первоначальный вид и поправил соответствующим образом getCommentsTree
кстати там пришлось закомментировать блок
не совсем понятно, почему не работало... внесенные  изменения не должны влиять на тот кусок кода. Проверьте на всякий случай еще раз... Бывают конечно исключения, но вообще у меня лишние куски кода редко встречаются.

Тут я согласен, не совсем красивое решение с "like", но лучшего я в данном случае не придумал. Была мысль добавить в таблицу #__jcomments поле topparent в которое для всех дочерних элементов заносить id предка 0 уровня (т.е. это второй элемент в поле path), тогда по этому полю можно было построить индекс и вопросов с производительностью бы точно не возникло. Но это потребовало бы еще правки файлов jcomments.ajax.php и jcomments.class.php, в части сохранения комментария или написания плагина. Я правильно понимаю, что можно написать плагин на событие onAfterCommentChanged и вставить в него обновление указанного поля?
ну это можно обновить по сути одним SQL-запросом, в принципе, действительно, введение некоего поля thread_id, которое бы у всех вложенных комментариев вело на корневой комментарий ветки решило бы проблему с LIKE, и сделало бы ненужным поле path (разве что оставить его для динамической загрузки ветки). Я подумаю, может быть действительно добавлю такое поле.

Была еще мысль поправить сортировку по убыванию дат. Текущий вариант с исправлением getCommentsList (сортировка по c.parent, c.date DESC) не совсем корректен, т.к. сортирует по дате комментария первого уровня, а хотелось бы чтобы при ответе на комментарий вся ветка "всплывала" на верх. Для этого нужно в таблице #__jcomments нужно поле update_time - обновления ветки. При сохранении комментария будет обновляться update_time у записи начала ветки (ее id мы можем взять из path)
если добавить thread_id, то это будет очень просто и быстро

В данной модификации это не работало
P.S. хотел добавить вложение с последней версией измененных файлов, но выдалась ошибка, файл с архивом 22 кБ
Обновите первое сообщение темы, разместив в нем актуальные изменения во всех файлах, и замените приаттаченный файл на более свежий.
*

ak1976

  • Новичок
  • 3
  • 0 / 0
не совсем понятно, почему не работало... внесенные  изменения не должны влиять на тот кусок кода. Проверьте на всякий случай еще раз... Бывают конечно исключения, но вообще у меня лишние куски кода редко встречаются.
Судя по всему, это для оптимизации производительности. Если пользователь не может писать комментарии, вычисляется количество комментариев и если оно равно 0 сразу возвращается пустая строка, без дополнительных запросов. Больше число комментариев (переменная $total) в данной функции нигде не использовалась. А мне она понадобилась, но при наличии прав на написание комментариев переменная $total не вычислялась.
Поправил данный кусок так.
Код: php
$total = JCommentsModel::getCommentsCount($object_id, $object_group, $config->get('template_view') == 'tree' ? "\nAND level = 0" : "");
if ($canComment == 0 && $total == 0) {
return '';
}
это ближе всего к логике оригинала.

ну это можно обновить по сути одним SQL-запросом, в принципе, действительно, введение некоего поля thread_id, которое бы у всех вложенных комментариев вело на корневой комментарий ветки решило бы проблему с LIKE, и сделало бы ненужным поле path (разве что оставить его для динамической загрузки ветки). Я подумаю, может быть действительно добавлю такое поле.
...
если добавить thread_id, то это будет очень просто и быстро
Было бы замечательно внести эти дополнения в компонент. Если нужно, могу сделать все необходимые правки, включая интерфейс админки (дабы сэкономить ваше время, для более актуальных дел). Только наверное, лучше это сделать уже после выхода новой версии.


Обновите первое сообщение темы, разместив в нем актуальные изменения во всех файлах, и замените приаттаченный файл на более свежий.
обновил.
*

smart

  • Администратор
  • 6478
  • 1318 / 15
  • Хочешь сделать хорошо — сделай!
А мне она понадобилась, но при наличии прав на написание комментариев переменная $total не вычислялась.
да, ведь если не делать разбивку на страницы, общее количество не требуется...

Было бы замечательно внести эти дополнения в компонент. Если нужно, могу сделать все необходимые правки, включая интерфейс админки (дабы сэкономить ваше время, для более актуальных дел). Только наверное, лучше это сделать уже после выхода новой версии.
Вполне возможно, что это включим и в текущую версию. Если у меня сегодня появится окошко свободного времени, попробуем реализовать идею с thread_id и посмотрим на производительность. А что касается идеального оттачивания кода - в этом смысла особого нет, ибо я очень сильно переработал компонент и код (в том числе и модели) весьма прилично изменился.

обновил.
угу, спасибо, я посмотрю
*

pasha4ur

  • Захожу иногда
  • 79
  • 0 / 1
Как сделать, чтобы последние комментарии выводились вначале?


Сорри. Обновил. Все работает.
 Пошел делать автору памятник  *DRINK*
« Последнее редактирование: 07.01.2012, 12:10:51 от pasha4ur »
*

Cheb

  • Осваиваюсь на форуме
  • 13
  • 0 / 0
Вот если бы такая доработка была к версии 2.3.0 - цены бы вам не было!
*

jiva242

  • Осваиваюсь на форуме
  • 14
  • 2 / 0
Приветствую.

Столкнулся с идентичной задачей - разбивка на страницы в древовидном шаблоне. Буду рад отблагодарить материально за изготовление такого патча для версии 2.3.0 (Joomla 1.5). Единственное отличие - это сделать ограничение уровня вложенности до пяти ответов, после чего комментарии переставали бы сдвигаться вправо, но отвечать можно было бы.

Можно в личку или в скайп (odin-v-pole-voin)
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Как убрать элемент со страницы?

Автор SpaceRabbit

Ответов: 6
Просмотров: 5933
Последний ответ 01.08.2011, 22:43:27
от Arrovil
Как использовать суффикс класса страницы?

Автор vdenu

Ответов: 2
Просмотров: 2761
Последний ответ 17.02.2011, 00:25:32
от vdenu