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

Konstantin124

  • Осваиваюсь на форуме
  • 34
  • 1 / 0
Joomla 3.2.1 - не работает.

Система:
Спойлер
[свернуть]

В материале показывает сегодняшнюю дату:
Спойлер
[свернуть]

В JoomGallery, кстати, вовсе не работает:
Спойлер
[свернуть]
*

yunoshev

  • Завсегдатай
  • 1255
  • 178 / 1
@Konstantin124
Насчет Joomla 3.2 написано, что дорабатывается, а про поддержку JoomGallery упоминания вовсе не было. На данный момент добавлена поддержка для Zoo & MosetsTree
*

ast

  • Захожу иногда
  • 61
  • 6 / 0
Буду благодарен если появится поддержка форума Kunena 2.хх и 3.хх.
В качестве подсказки: в Kunena в файле /administrator/components/com_kunena/libraries/view.html явно задаются Last-Modified и Expires в самом начале файла.

В Kunena 3.xx этот файл перенесен по пути  libraries/kunena/view.php

*

yunoshev

  • Завсегдатай
  • 1255
  • 178 / 1
@ast
Хорошо.
*

ast

  • Захожу иногда
  • 61
  • 6 / 0
Сделал по примеру плагин для Kunena, написал запросы.. Для отдельного топика работает, а для категории топиков - нет. :-(
Путём отладки выяснил, что не передаётся id с помощью
Код
$id = $this->jinput->get('id', 0, 'int');
Научите как определить как называется переменная для id в компоненте?

Результаты того, что написал - во вложении (upd. 03.03.14 полная версия плагина выложена ниже в другом сообщении).

p.s. Кстати, по какой-то причине не отображаются страницы для VirtueMart с включенным плагином. Поэтому у себя я пока убрал часть, которая относится к VirtueMart.
« Последнее редактирование: 03.03.2014, 00:54:37 от ast »
*

yunoshev

  • Завсегдатай
  • 1255
  • 178 / 1
@ast
Чтобы самому сделать, нужно выключить режим SEF и анализировать параметры в ссылках.
Возможно, у вас другая версия VirtueMart, в которой нет тех таблиц БД, что используются в моем варианте магазина. Укажите свою версию магазина, возможно, путем добавления номера версии к файлу плагина можно будет придумать разделение версий для избежания глюков в работе.


PS: Заняться в ближайшие дни доработкой плагина для форума Kunena пока не могу в связи с ситуацией в стране.
« Последнее редактирование: 03.03.2014, 00:12:54 от yunoshev »
*

ast

  • Захожу иногда
  • 61
  • 6 / 0
Чтобы самому сделать, нужно выключить режим SEF и анализировать параметры в ссылках.
Спасибо за инструкцию! Полностью допилил плагин для Kunena 2.xx/3.xx.
Инструкция по установке:
Для Kunena 2.xx закомментировать следующие строки в районе 50 строки в файле /administrator/components/com_kunena/libraries/view.php (то есть в начале каждой строки добавить //) :
Код
		JResponse::setHeader( 'Expires', 'Mon, 1 Jan 2001 00:00:00 GMT', true );
JResponse::setHeader( 'Last-Modified', gmdate("D, d M Y H:i:s"). ' GMT', true );
JResponse::setHeader( 'Cache-Control', 'no-store, must-revalidate, post-check=0, pre-check=0', true );

Для Kunena 3.xx закомментировать эти же строки в файле /libraries/kunena/view.php
Распаковать и положить прилагаемый файлик в папку плагинов lm_any. Для Joomla 2.5 этот файлик кладём в /plugins/system/lm_any/plugins/
« Последнее редактирование: 04.03.2014, 15:47:53 от ast »
*

ast

  • Захожу иногда
  • 61
  • 6 / 0
Возможно, у вас другая версия VirtueMart, в которой нет тех таблиц БД, что используются в моем варианте магазина. Укажите свою версию магазина, возможно, путем добавления номера версии к файлу плагина можно будет придумать разделение версий для избежания глюков в работе.
Версия VM 2.0.26d. Таблички со столбцами, которые используются в запросах, есть. Попробую пошагово поотключать разные строки, чтобы выяснить где проблема.
*

ast

  • Захожу иногда
  • 61
  • 6 / 0
Разобрался. В прилагаемом плагине com_virtuemart.plugin.php объявляемый класс назывался lm_com_yvcommodity, который был уже объявлен в com_yvcommodity.plugin.php. Поэтому возникало исключение и страницы VirtueMart'а не отображались. Помимо этого, мне кажется неправильным, что дата модификации раздела извлекается только на основе изменений шапки раздела (то есть дата модификации будет изменена только при редактировании названия раздела, описания раздела или метатегов раздела). Поэтому я изменил логику таким образом, что если изменялись товары в категории, то дата изменения будет последней и относительно таких изменений тоже. В самом деле, ведь если товар продан и при просмотре категории он не отображается, значит содержимое категории изменилось.
Плюс убрал проверку полей на пустые значения - в VM2 эти поля в таблицах заявлены как NOT NULL.
Обновленный плагин во вложении.
*

yunoshev

  • Завсегдатай
  • 1255
  • 178 / 1
@ast
Спасибо, молодец! Саму логику для VM в плагине я не переписывал, а просто постарался вынести в свой класс, но видно не все проверил -- буду внимательней. Плюсую в карму и постараюсь выложить обновления на сервер.
*

St@lker

  • Захожу иногда
  • 79
  • 0 / 0
@yunoshev, ты еще не разбирался с работой плагина под 3.2.2? У меня на рабочем проекте стоит ... могу помочь с тестированием. Спасибо!

Кстати под 2.5 с последним JS все работает как нужно.
*

master-smeta

  • Захожу иногда
  • 278
  • 9 / 0
у меня тоже на рабочем проекте 3.2.2 стоит. все работает нормально (с костылем, про который я на первой странице писал)
Частный вебмастер topwebsite.ru
Разработка и поддержка сайтов
*

St@lker

  • Захожу иногда
  • 79
  • 0 / 0
у меня тоже на рабочем проекте 3.2.2 стоит. все работает нормально (с костылем, про который я на первой странице писал)
Но если я правильно понял, то у тебя тоже есть проблема с "304 Not Modified не найден!" даже с внесением остыля?
*

master-smeta

  • Захожу иногда
  • 278
  • 9 / 0
Но если я правильно понял, то у тебя тоже есть проблема с "304 Not Modified не найден!" даже с внесением остыля?
Нет, сейчас у меня все работает отлично
Частный вебмастер topwebsite.ru
Разработка и поддержка сайтов
*

St@lker

  • Захожу иногда
  • 79
  • 0 / 0
Нет, сейчас у меня все работает отлично

423 строка: if ($this->response->cachable)
429 строка: //$this->setHeader('Last-Modified', gmdate('D, d M Y H:i:s'). ' GMT', true);

Больше никаких правок с кодом не происходило. Версия Joomla - 3.2.2. Может были еще какие-то правки? Для чистоты эксперимента, завтра поставлю плагин с этими правками на другую 3.2.2.
*

master-smeta

  • Захожу иногда
  • 278
  • 9 / 0
423 строка: if ($this->response->cachable)
429 строка: //$this->setHeader('Last-Modified', gmdate('D, d M Y H:i:s'). ' GMT', true);

Больше никаких правок с кодом не происходило. Версия Joomla - 3.2.2. Может были еще какие-то правки? Для чистоты эксперимента, завтра поставлю плагин с этими правками на другую 3.2.2.
У меня только так работает. Если "костыль" убрать, то ничего не работает...
Может у Вас в настройках кэширование включено?
Частный вебмастер topwebsite.ru
Разработка и поддержка сайтов
*

Taatshi

  • Глобальный модератор
  • 4993
  • 466 / 1
  • Верстаем и немножко кодим. Обращайтесь ;)
Хорошо бы поправить

Код
Strict Standards: Only variables should be assigned by reference in Y:\home\alsystemnew\www\plugins\system\lm_any\lm_any.php on line 84

И под JoomGallery хотелось бы - очень распространенный компонент.
*

yunoshev

  • Завсегдатай
  • 1255
  • 178 / 1
@ast
Проверил я правки плагина для VirtueMart и почти все для страницы категории переписал, т.к.:
  • если открывается категория без товаров, то выдает текущую дату, а не дату изменения категории
  • не забывайте, что страницы открываются поисковиками, а следовательно им отдается ровно столько товаров, сколько задано в настройках магазина, плюс надо учитывать сортировку -- все это я постарался учесть в запросе и алгоритме
  • берется сперва дата модификации категории, поом в цикле сравнивается с датами модификации товаров ОДНОЙ (первой) страницы

@Taatshi
Исправил в соответствии со стандартами (упустил как-то).

@ALL
Обновление с VirtueMart & Kunena выложил на сервер обновлений - проверьте.
Еще на прошлой неделе купил другой хостинг, чтобы поставить J!3.2, но пока нет времени ничего развернуть, т.к. дома с субботы почти не бываю... извините, ждите...
*

ast

  • Захожу иногда
  • 61
  • 6 / 0
@ast
Проверил я правки плагина для VirtueMart и почти все для страницы категории переписал, т.к.:
  • если открывается категория без товаров, то выдает текущую дату, а не дату изменения категории
  • не забывайте, что страницы открываются поисковиками, а следовательно им отдается ровно столько товаров, сколько задано в настройках магазина, плюс надо учитывать сортировку -- все это я постарался учесть в запросе и алгоритме
  • берется сперва дата модификации категории, поом в цикле сравнивается с датами модификации товаров ОДНОЙ (первой) страницы
очень хорошо! Мне логика, которую я предложил в самом начале немного смутила. Сейчас намного лучше, чем было. Только с запросом в последней версии перебор: LEFT JOIN сама по себе операция не быстрая, особенно, если их встречается несколько в запросе. На нескольких тысячах товаров будет работать не ахти. Я подправил запрос: убрал из запроса лишние таблицы (цены и названия), обошёлся только одним LEFT JOIN. Скорость запроса стала быстрее в 5 раз. Вариант с подправленным запросом во вложении.

upd.Нашлись несколько нюансов, которые потребовали чуть-чуть подправить логику. Плагин будет выложен ниже.
« Последнее редактирование: 06.03.2014, 16:58:05 от ast »
*

ast

  • Захожу иногда
  • 61
  • 6 / 0
Приношу всем извинения. Не проверил последний вариант для VM2.0. Неправильно работают обе версии: и та, которая выложена в дистрибутиве с lm_any, и та, что в предыдущем посте.
Сейчас сделаю исправление.
*

yunoshev

  • Завсегдатай
  • 1255
  • 178 / 1
@ast
Вариант без LEFT не дает нужную выборку, возвращает пустой результат запроса, если для категории нет товаров, а должен возвращать хотя бы данные категории. Поэтому рекомендую оставить так, как сейчас у меня в дистрибутиве. Проверьте сами.
*

ast

  • Захожу иногда
  • 61
  • 6 / 0
@ast
Вариант без LEFT не дает нужную выборку, возвращает пустой результат запроса, если для категории нет товаров, а должен возвращать хотя бы данные категории. Поэтому рекомендую оставить так, как сейчас у меня в дистрибутиве. Проверьте сами.

LEFT обязательно нужен, про это спору нет. Вот вариант запроса, который у меня получился:
Код
		$q  = "SELECT c.modified_on as `modified`, c.created_on as `created`, p.modified_on AS `p_modified`, p.created_on AS `p_created` ";
$q .= "FROM #__virtuemart_categories AS c LEFT JOIN #__virtuemart_product_categories USING (virtuemart_category_id) ";
$q .= "JOIN #__virtuemart_products AS p USING (virtuemart_product_id) ";
$q .= "WHERE c.virtuemart_category_id = ".$cat_id." ORDER BY ".VmConfig::get ('browse_orderby_field')." ".VmConfig::get('prd_brws_orderby_dir', 'ASC')." LIMIT ". $pagination->limit;

К сожалению, в дальнейшей обработке есть неточности, пока подправить не успеваю. Одна из проблем связана с тем, что если в выборке из первой страницы товаров попались товары, у которых не было изменений, то дата создания этих товаров затрёт любую более позднюю дату, которая уже была найдена. Также надо проверить, что корректно будут отрабатываться записи со значением даты товаров NULL для тех категорий, где нет товаров.
« Последнее редактирование: 06.03.2014, 17:48:57 от ast »
*

yunoshev

  • Завсегдатай
  • 1255
  • 178 / 1
@ast
В алгоритме далее это проверяется, я потратил вчера пару часов на моделирование разных ситуаций и показа отладочной информации.
*

ast

  • Захожу иногда
  • 61
  • 6 / 0
@ast
В алгоритме далее это проверяется, я потратил вчера пару часов на моделирование разных ситуаций и показа отладочной информации.
Да, алгоритм, безупречный - прошу прощения. Передал ему список из ID товаров, которые размещены только на первой странице категории - отработал как надо.
Сделал вывод, что выбираются не те товары. Есть подозрения, что из-за сортировки. Как вывести или записать в бд чтобы проверить значения функций VmConfig::get ('browse_orderby_field'), VmConfig::get('prd_brws_orderby_dir', 'ASC'), $pagination->limit не знаю :-(
*

rollinman

  • Новичок
  • 13
  • 0 / 0
Здравствуйте господа! Во первых спасибо огромнейшее за то что разработали данный плагин. Молодцы. Если принимаете пожертвования то я готов их сделать!
Только вот простите меня за бестактность, но не могли бы вы дать мне пошаговые инструкции по тому как данный плагин подключить к VirtueMart. Я не слишком то в ладах с php кодами...
*

yunoshev

  • Завсегдатай
  • 1255
  • 178 / 1
Здравствуйте господа! Во первых спасибо огромнейшее за то что разработали данный плагин. Молодцы. Если принимаете пожертвования то я готов их сделать!
Только вот простите меня за бестактность, но не могли бы вы дать мне пошаговые инструкции по тому как данный плагин подключить к VirtueMart. Я не слишком то в ладах с php кодами...
Вам нужно его только установить и включить.
*

rollinman

  • Новичок
  • 13
  • 0 / 0
Вам нужно его только установить и включить.
СПАСИБО  ^-^
*

ChaosHead

  • Гуру
  • 5081
  • 440 / 13
Работает, спасибо, но на главной VirtueMart и в разделе блога k2 отдаёт
Last-Modified   Thu, 01 Jan 1970 03:00:00 +0300 GMT
Нужна какая-то защита от дурака, что если он не может корректно определить дату, то лучше пусть ничего не отдаёт.
*

yunoshev

  • Завсегдатай
  • 1255
  • 178 / 1
@ChaosHead
Какой тип меню Вы выставляете в качестве главной VirtueMart?
Что касается К2, возможно, у Вас на странице блога попадаются статьи без модификации. А вообще, там есть несколько вариантов отображения блога и запрос получается очень запутанным, много разных параметров, которые то учитываются, то нет даже в самом скрипте модели блога.
Не спорю, что мой вариант может быть не совершенным, о чем в комментариях кода плагина для К2 я написал.

Насчет "защиты" подумаю.
*

ChaosHead

  • Гуру
  • 5081
  • 440 / 13
Главная страница VirtueMart - Главная. У меня только категории там отображаются.
Да я в общем то понимаю, почему оно так происходит, естественно не всегда возможно вытащить эти даты, если там нет материалов. Я то себе напишу проверку на 1970 год. Но мой пост это предложение, т.к. плагин очень нужный и полезный. А главное уже практически рабочий.
Я вижу два варианта решения, либо вот такую "защиту от дурака", либо возможность отключать плагин по id пункта меню.
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

JL NO DOUBLES - плагин борьбы с дублями

Автор zikkuratvk

Ответов: 270
Просмотров: 30446
Последний ответ 15.01.2019, 23:34:57
от Beer
last-modified и if-modified-since для Joomla 1.5/2.5

Автор Antosha

Ответов: 365
Просмотров: 63524
Последний ответ 18.02.2017, 06:48:11
от User82
плагин Advanced Google analytics код не в том месте

Автор DeniTornado

Ответов: 0
Просмотров: 458
Последний ответ 04.01.2017, 14:01:35
от DeniTornado
Перемещение контента на Joomla

Автор Impulse design

Ответов: 0
Просмотров: 311
Последний ответ 30.11.2016, 12:24:41
от Impulse design
Автоматическое заполнение мета данных в Joomla 3 - Плагин jautometa

Автор 1-F7

Ответов: 0
Просмотров: 779
Последний ответ 01.08.2016, 09:44:58
от 1-F7