Новости Joomla

Как вызвать событие только для указанной (одной или более) группы плагинов в Joomla 5Системные...

Как вызвать событие только для указанной (одной или более) группы плагинов в Joomla 5Системные плагины в Joomla срабатывают всегда, но большое их количество может негативно сказаться на скорости работы Приложения. А во-вторых ошибка в системном плагине, добавляющем кнопку в тулбар может обрушить механизм регистрации / авторизации пользователя. Поэтому для лучшего быстродействия и надёжности работы системы плагины в Joomla разделены на группы. Каждая группа срабатывает только в определённом месте и в определённый момент времени. Небольшой пост-шпаргалка для Joomla-разработчиков от участника нашего сообщества Виталия Некрасова (@vitalik_a) подскажет как в своём коде сделать то, что написано в заголовке поста 😎Читать пост на Хабре#joomla #php #разработка #webdev

Обновление модуля WT Quick links v.2.3

Обновление модуля WT Quick links v.2.3

Обновление модуля WT Quick links v.2.3.0Модуль позволяет создавать быстрые наборы элементов: ссылки на различные сущности на сайте Joomla: категории материалов, Virtuemart, JoomShopping, пункт меню или пользовательскую ссылку. Есть условия для исключений показа элементов списка.Вы можете создавать собственные макеты вывода модуля, создавая таким образом почти всё, что угодно: от простого списка ссылок до стены фотографий на главную страницу или ссылки-теги для перелинковки категорий интернет-магазина. Модуль позволяет выводить изображения, адаптивные изображения, видео, адаптивные видео. Также это могут быть не только ссылки, но и список вопросов FAQ, элементы Bootstrap Tabs, Accordion и т.д.v.2.3.0 Что нового?- Собственные макеты для ссылокТеперь для каждой ссылки можно указать собственный макет из папки

/tmpl/sublayout/. Для использования модуля в этом режиме, необходимо выбрать макет модуля -
default-sublayouts или создать собственный вариант этого макета. - Обработка плагинами контентаСодержимое поля Дополнительный текст для ссылки теперь обрабатывается плагинами контента.- Поле примечанияДобавлено поле примечания для ссылки. Это удобно ориентации в большой форме.- Рефакторинг кодаПроведена чистка и улучшения кода.
Страница расширенияGitHub#расширения #virtuemart #JoomShopping

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

shurakana

  • Давно я тут
  • 792
  • 50 / 6
AJAX поиск для сайта
« : 09.09.2014, 20:38:34 »
Всем привет! ;D
Сделал AJAX поиск со сменой раскладки клавиатуры, и вот, хочу поделиться!

Версия JoomShopping 4.6.0 - но в принципе должно работать и на других версиях. Пробуем - отписываемся..

Часть HTML и CSS и JS
В index.php шаблона в самый конец head вставляем:
Спойлер
[свернуть]

Дальше, в нужное место добавляем HTML
Спойлер
[свернуть]

Прописываем CSS стили и подправляем пути к картинкам, ну или вставляем свои..
Качаем картинки shurakana.myjino.ru/css/img/del_icn.png и shurakana.myjino.ru/css/img/aja_lo.gif
Спойлер
[свернуть]


Часть PHP
В папку \components\com_jshopping\controllers\ добавляем файл с названием poisk.php со следующим содержимым:
Спойлер
[свернуть]
Если кто то хочет выводить изображения, раскомментируте строки с img.
HTML с формой поиска можно вынести в отдельный модуль.

Вот в принципе и все. Жду мнений..))

Демо смотреть здесь http://shurakana.myjino.ru/shop/radar-detectory

Все изменения из обсуждения внесены в мануал!
Изменения не затрагивают "ядра" Joomla и JoomShopping можно спокойно обновляться.
« Последнее редактирование: 11.09.2014, 18:59:21 от shurakana »
Эта подпись отображается внизу каждого Моего сообщения. Я также могу использовать BB код и смайлы.
*

dmitry_stas

  • Легенда
  • 13151
  • 1234 / 8
Re: AJAX поиск для сайта
« Ответ #1 : 09.09.2014, 23:42:47 »
иначе примерно через полгодика-годик, здесь начнется нытье, что автор м***к

:) к бабке не ходи :)

В папку \components\com_jshopping\controllers\ добавляем файл с названием poisk.php со следующим содержимым:

не постиг мысль:
Цитировать
$lang->get('name')."` AS name ... AND `name_en-GB` LIKE
откуда взялось тут вдруг это? :)

в файл \components\com_jshopping\lib\functions.php
почему тут? почему не в том же контроллере? зачем ненужный хак?
Тут дарят бакс просто за регистрацию! Успей получить!
Все советы на форуме раздаю бесплатно, то есть даром. Индивидуально бесплатно консультирую только по вопросам стоимости индивидуальных консультаций
*

shurakana

  • Давно я тут
  • 792
  • 50 / 6
Re: AJAX поиск для сайта
« Ответ #2 : 10.09.2014, 01:28:40 »
может не увидела...
Нет, все что было увидели, ничего не скрывал..)

не постиг мысль...откуда взялось тут вдруг это? :)
http://joomlaforum.ru/index.php/topic,298800.msg1483323.html#msg1483323 - я тонкости хорошо запоминаю..) Еще раз спасибо кстати..

почему тут? почему не в том же контроллере? зачем ненужный хак?
В той же теме ток ниже - "Теперь не получается вызвать функцию. Создал я компонент по всем канонам значит, а он мне пишет Call to undefined function translit();
Функцию translit создавал как и внутри функции okey так и снаружи, все равно Call to undefined."

Ну и я как понятливый человек сделал как УЖЕ ПОЛУЧАЛОСЬ.. ;)
« Последнее редактирование: 10.09.2014, 01:31:50 от shurakana »
Эта подпись отображается внизу каждого Моего сообщения. Я также могу использовать BB код и смайлы.
*

dmitry_stas

  • Легенда
  • 13151
  • 1234 / 8
Re: AJAX поиск для сайта
« Ответ #3 : 10.09.2014, 10:13:31 »
я тонкости хорошо запоминаю..

как то получается, что тонкости хорошо, а общее - плохо :) откуда взялось en-GB? что содержит $lang->get('name')? что получится с запросом, если $lang->get('name') = name_ru-RU ?

Call to undefined function translit()

видимо потому что в php, в отличии например от java, обращение к методам/свойствам класса из этого же класса осуществляется через self или $this, в зависимости от того, статический или не статический метод вызывается.
Тут дарят бакс просто за регистрацию! Успей получить!
Все советы на форуме раздаю бесплатно, то есть даром. Индивидуально бесплатно консультирую только по вопросам стоимости индивидуальных консультаций
*

shurakana

  • Давно я тут
  • 792
  • 50 / 6
Re: AJAX поиск для сайта
« Ответ #4 : 10.09.2014, 16:34:28 »
$lang->get('name') содержит - name_en-GB..
У меня все таблицы на английском, я не добавлял язык для фронтенда, видимо поэтому. Поправил наверху.

Про self и this прочитал, сделано.
« Последнее редактирование: 10.09.2014, 17:41:25 от shurakana »
Эта подпись отображается внизу каждого Моего сообщения. Я также могу использовать BB код и смайлы.
*

shurakana

  • Давно я тут
  • 792
  • 50 / 6
Re: AJAX поиск для сайта
« Ответ #5 : 10.09.2014, 19:14:22 »
Кстати, после переноса функции "раскладки" в poisk.php можно спокойно обновляться..)
Но что делать с ошибкой 500 Internal Server Error?
Посмотрел возможные причины, не то..
Все проверил еще раз, даже поля в MySQL привел к одинаковому виду..
Это баг что ли какой то.. :(
Эта подпись отображается внизу каждого Моего сообщения. Я также могу использовать BB код и смайлы.
*

dmitry_stas

  • Легенда
  • 13151
  • 1234 / 8
Re: AJAX поиск для сайта
« Ответ #6 : 10.09.2014, 20:52:37 »
Так же необходимо проверить что у вас выдает echo $lang->get('name'); если name_ru-RU, то все в порядке, а если en-GB, то вам необходимо заменить язык в запросе SELECT.

т.е. вместо того, чтобы написать
Код
AND `".$lang->get('name')."` LIKE
мы все таки упорно пишем name_ru-RU, а потом мужественно преодолеваем эту проблему? :)

Но что делать с ошибкой 500 Internal Server Error?

ошибку бы видеть...
Тут дарят бакс просто за регистрацию! Успей получить!
Все советы на форуме раздаю бесплатно, то есть даром. Индивидуально бесплатно консультирую только по вопросам стоимости индивидуальных консультаций
*

shurakana

  • Давно я тут
  • 792
  • 50 / 6
Re: AJAX поиск для сайта
« Ответ #7 : 10.09.2014, 21:12:41 »
мы все таки упорно пишем name_ru-RU, а потом мужественно преодолеваем эту проблему? :)
Ахах, я термас..)

ошибку бы видеть...
При запросе "радар" выводит категорию "радар-детекторы", при "видео" выводит "видеорегистраторы", а вот при запросе "Электро", "электроника" и пр.. в консоли ошибка 500 Internal Server Error.. т.е. даже ничего не найдено не выводит, а просто ошибку..
Эта подпись отображается внизу каждого Моего сообщения. Я также могу использовать BB код и смайлы.
*

dmitry_stas

  • Легенда
  • 13151
  • 1234 / 8
Re: AJAX поиск для сайта
« Ответ #8 : 10.09.2014, 21:20:02 »
консоль с 500 Internal Server Error я видел. теперь бы ошибку :) видимо выключен показ ошибок.
Тут дарят бакс просто за регистрацию! Успей получить!
Все советы на форуме раздаю бесплатно, то есть даром. Индивидуально бесплатно консультирую только по вопросам стоимости индивидуальных консультаций
*

shurakana

  • Давно я тут
  • 792
  • 50 / 6
Re: AJAX поиск для сайта
« Ответ #9 : 10.09.2014, 21:26:39 »
Ошибка в букве "Э"- когда вводишь "лектроника", "лектро" и пр. все работает..
пробовал и категорию назвать лэктроника проблема осталась..
Че за шутки?))

Ошибки включены, точку с запятой не поставишь выводит - "Parse error: syntax error, unexpected '}', expecting ',' or ';' in X:\home\localhost..." на сервере также..
« Последнее редактирование: 10.09.2014, 21:42:25 от shurakana »
Эта подпись отображается внизу каждого Моего сообщения. Я также могу использовать BB код и смайлы.
*

dmitry_stas

  • Легенда
  • 13151
  • 1234 / 8
Re: AJAX поиск для сайта
« Ответ #10 : 10.09.2014, 21:41:59 »
косая черта - необходимо экранирование. видимо с этим проблема.
Тут дарят бакс просто за регистрацию! Успей получить!
Все советы на форуме раздаю бесплатно, то есть даром. Индивидуально бесплатно консультирую только по вопросам стоимости индивидуальных консультаций
*

shurakana

  • Давно я тут
  • 792
  • 50 / 6
Re: AJAX поиск для сайта
« Ответ #11 : 10.09.2014, 22:23:08 »
Ц, как их экранировать то... 100+ статей прочел про экранировку, везде одно и тоже...

Э, заработало, а ' не хочет работать, я уже и в двойные кавычки перевел, и слеш убрал, ну не хотят вместе работать, как только не пробовал.. Неужели отдельно делать?

Ну вот почему у меня каждый какашка нетонущая всплывает, а...
« Последнее редактирование: 10.09.2014, 22:31:04 от shurakana »
Эта подпись отображается внизу каждого Моего сообщения. Я также могу использовать BB код и смайлы.
*

shurakana

  • Давно я тут
  • 792
  • 50 / 6
Re: AJAX поиск для сайта
« Ответ #12 : 11.09.2014, 16:49:43 »
Дело оказывается не в функции '\''=>'э' и 'э'=>'\'', а вообще в самом коде экранировать надо...))
Я функцию раскладки удалил, проблема с ' осталась все равно. Как я психовал вчера..))

в SELECT'е надо было экранировать - вместо '%$search_cat_lay[0]%' так \"%$search_cat_lay[0]%\"

И еще один вопрос, как применить функцию фильтрации опасных символов? в Joomla ведь есть такая?
Эта подпись отображается внизу каждого Моего сообщения. Я также могу использовать BB код и смайлы.
*

dmitry_stas

  • Легенда
  • 13151
  • 1234 / 8
Re: AJAX поиск для сайта
« Ответ #13 : 11.09.2014, 17:00:15 »
что именно имеется в виду?
Тут дарят бакс просто за регистрацию! Успей получить!
Все советы на форуме раздаю бесплатно, то есть даром. Индивидуально бесплатно консультирую только по вопросам стоимости индивидуальных консультаций
*

shurakana

  • Давно я тут
  • 792
  • 50 / 6
Re: AJAX поиск для сайта
« Ответ #14 : 11.09.2014, 17:05:30 »
что именно имеется в виду?
Защита от sql инъекций и пр..? Может еще какие то методы есть..

чтобы к $_POST['search'] применить..
« Последнее редактирование: 11.09.2014, 17:10:48 от shurakana »
Эта подпись отображается внизу каждого Моего сообщения. Я также могу использовать BB код и смайлы.
*

dmitry_stas

  • Легенда
  • 13151
  • 1234 / 8
Re: AJAX поиск для сайта
« Ответ #15 : 11.09.2014, 17:18:09 »
JFactory::getApplication()->input->get('search')
Тут дарят бакс просто за регистрацию! Успей получить!
Все советы на форуме раздаю бесплатно, то есть даром. Индивидуально бесплатно консультирую только по вопросам стоимости индивидуальных консультаций
*

shurakana

  • Давно я тут
  • 792
  • 50 / 6
Re: AJAX поиск для сайта
« Ответ #16 : 11.09.2014, 17:49:26 »
Я так понял что в JFactory::getApplication()->input->get('search') содержится текст поиска, как его вывести то для проверки?
Получается что дальше везде в коде надо заменить $_POST['search'] на "чтото", так ведь?

Я думаю это типа $clean = mysql_real_escape_string($_POST['search']);

Ничего не нашел почитать, не пишут про это..

« Последнее редактирование: 11.09.2014, 17:52:47 от shurakana »
Эта подпись отображается внизу каждого Моего сообщения. Я также могу использовать BB код и смайлы.
*

shurakana

  • Давно я тут
  • 792
  • 50 / 6
Re: AJAX поиск для сайта
« Ответ #17 : 11.09.2014, 18:21:40 »
Так же хотел сделать транслит с русского на английский, типа чтобы искал например 'самсунг' = samsung, 'стингер' = stinger... Но слишком много моментов, типа "айфон" = aifon, придется делать исключение в коде "ай" = i, блю = "blue" и т.д.

Может есть готовые такие вещи, или может есть человек который на 1000% знает английский который может знать особенность таких моментов или еще что нить в это духе?

Т.е. в словах где используется ф как ph идут гласные, или i читается как ай в словах где следующая буква С, d.. что то типа..
Эта подпись отображается внизу каждого Моего сообщения. Я также могу использовать BB код и смайлы.
*

shurakana

  • Давно я тут
  • 792
  • 50 / 6
Re: AJAX поиск для сайта
« Ответ #18 : 11.09.2014, 18:57:46 »
Исправил url: "http://localhost/im/shop/poisk/okey" на url: "<?php echo JURI::base();?>shop/poisk/okey",

А echo SEFLink('index.php?option=com_jshopping&controller - не работает в index.php шаблона. И плюс если добавлен суффикс к url то уже работать не будет... Как то можно автоматизировать это дело?
Эта подпись отображается внизу каждого Моего сообщения. Я также могу использовать BB код и смайлы.
*

dmitry_stas

  • Легенда
  • 13151
  • 1234 / 8
Re: AJAX поиск для сайта
« Ответ #19 : 11.09.2014, 20:37:28 »
Получается что дальше везде в коде надо заменить $_POST['search'] на "чтото", так ведь?

я и написал, на что заменить

Т.е. в словах где используется ф как ph идут гласные, или i читается как ай в словах где следующая буква С, d.. что то типа..

думаю, это не поддается описанию математически, либо слишком сложно.

Исправил url: "http://localhost/im/shop/poisk/okey" на url: "<?php echo JURI::base();?>shop/poisk/okey",

что правда особо это ничего не поменяло в плане универсальности, потому что привязка к пункту меню shop у вас все равно осталась.

А echo SEFLink('index.php?option=com_jshopping&controller - не работает в index.php шаблона

SEFLink все равно где работать. Просто что в шаблоне файл, в котором она описана, еще видимо не подгружен
Тут дарят бакс просто за регистрацию! Успей получить!
Все советы на форуме раздаю бесплатно, то есть даром. Индивидуально бесплатно консультирую только по вопросам стоимости индивидуальных консультаций
*

shurakana

  • Давно я тут
  • 792
  • 50 / 6
Re: AJAX поиск для сайта
« Ответ #20 : 18.09.2014, 17:26:41 »
я и написал, на что заменить
Спасибо, это получается каждый раз в 4-х местах "функция очистки" будет вызываться, или как? А нельзя 1 раз почистить и потом везде использовать? Как то так..

думаю, это не поддается описанию математически, либо слишком сложно.
^-^ ну я уж так, может есть какой нибудь тут физик ядерщик..))


SEFLink все равно где работать. Просто что в шаблоне файл, в котором она описана, еще видимо не подгружен

<?php print SEFLink('index.php?option=com_jshopping&controller=search&task=okey', 1);?> в index.php шаблона пишет ошибку Call to undefined function SEFLink();
Но так происходит только на главной, на странице shop уже работает..
Пытался вставлять всякие $jshopConfig = JSFactory::getConfig(); тоже самое, только JSFactory not found

Можно как то сделать чтобы на главной определялся компонент?
Эта подпись отображается внизу каждого Моего сообщения. Я также могу использовать BB код и смайлы.
*

dmitry_stas

  • Легенда
  • 13151
  • 1234 / 8
Re: AJAX поиск для сайта
« Ответ #21 : 18.09.2014, 19:34:58 »
А нельзя 1 раз почистить и потом везде использовать?

а что, переменные в php уже отменили? или сделать
Код: php
$search = JFactory::getApplication()->input->get('search');
а потом там где надо эту переменную $search использовать, какие то высшие силы мешают? :)

ну я уж так, может есть какой нибудь тут физик ядерщик..

ну может и есть...

Можно как то сделать чтобы на главной определялся компонент?

ну я ж говорю, надо подгрузить файл, в котором определены нужные функции. посмотрите как это сделано в модулях. ведь модули тоже могут быть выведены не на страницах компонента, так ведь? но тем не менее
Код: php
$jshopConfig = JSFactory::getConfig();
в них прекрасно работает. разберетесь, почему?  ;)
Тут дарят бакс просто за регистрацию! Успей получить!
Все советы на форуме раздаю бесплатно, то есть даром. Индивидуально бесплатно консультирую только по вопросам стоимости индивидуальных консультаций
*

shurakana

  • Давно я тут
  • 792
  • 50 / 6
Re: AJAX поиск для сайта
« Ответ #22 : 18.09.2014, 20:41:20 »
а потом там где надо эту переменную $search использовать, какие то высшие силы мешают? :)
Воу, чет тупанул длина смутила наверн..))

разберетесь, почему?  ;)
Спасибо за наводку - require_once (JPATH_SITE.'/components/com_jshopping/lib/factory.php'); и seflink заработал...
Я конечно почитал что require_once 1 раз делает запрос.. Но, это на производительность никак не повлияет?)

Вот теперь я понял смысл слов:
Просто что в шаблоне файл, в котором она описана, еще видимо не подгружен..
;D
Эта подпись отображается внизу каждого Моего сообщения. Я также могу использовать BB код и смайлы.
*

dmitry_stas

  • Легенда
  • 13151
  • 1234 / 8
Re: AJAX поиск для сайта
« Ответ #23 : 18.09.2014, 21:34:35 »
Я конечно почитал что require_once 1 раз делает запрос.. Но, это на производительность никак не повлияет?)

ну во-первых, а варианты? а во-вторых, можно проверить: включить профайлер в Joomla и посмотреть расход памяти без require и с ним, а также вывести microtime(true) до и после require и посмотреть время выполнения этой команды.
Тут дарят бакс просто за регистрацию! Успей получить!
Все советы на форуме раздаю бесплатно, то есть даром. Индивидуально бесплатно консультирую только по вопросам стоимости индивидуальных консультаций
*

shurakana

  • Давно я тут
  • 792
  • 50 / 6
Re: AJAX поиск для сайта
« Ответ #24 : 18.09.2014, 21:44:00 »
ну во-первых, а варианты?

Я уже проверил, что при удалении в модуле, модуль продолжает работать... ;D
т.е. подключаем 1, отключаем несколько других..)))
Эта подпись отображается внизу каждого Моего сообщения. Я также могу использовать BB код и смайлы.
*

shurakana

  • Давно я тут
  • 792
  • 50 / 6
Re: AJAX поиск для сайта
« Ответ #25 : 23.09.2014, 11:15:36 »
Тут такая мысль пришла, на счет безопасности. По идее вообще любой input надо же защищать и chekbox и radio и т.д.? Т.е. любая информация которая отсылается на сервер должна фильтроваться, так ведь?
Эта подпись отображается внизу каждого Моего сообщения. Я также могу использовать BB код и смайлы.
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Мы починили поиск для JoomShopping

Автор Dimidrol-Pruper

Ответов: 101
Просмотров: 33204
Последний ответ 24.06.2024, 14:20:58
от kit2m2
Поиск заказа по номеру телефона клиента

Автор Shiffer

Ответов: 19
Просмотров: 2940
Последний ответ 07.12.2021, 19:43:38
от anatol81n
Поиск в заказах по полю комментарий? Реализация?

Автор aLLex177

Ответов: 15
Просмотров: 1700
Последний ответ 16.02.2021, 13:57:58
от dss
AJAX пагинация товара

Автор ExJTMaster

Ответов: 10
Просмотров: 3729
Последний ответ 12.10.2020, 16:20:18
от sivers
Усовершенствованый фильтр 3.4.0(ajax)

Автор seetvael

Ответов: 252
Просмотров: 42198
Последний ответ 06.08.2020, 14:57:19
от goga_pgasovav