Новости Joomla

Вышел WT Quick links v.2.4.0 - релиз модуля для Joomla

Вышел WT Quick links v.2.4.0 - релиз модуля для Joomla.Это модуль-конструктор для быстрого создания набора элементов. Это могут быть ссылки на компоненты Joomla, пункт меню или пользовательская ссылка. Есть условия для исключений показа элементов списка. Вы можете создавать собственные макеты вывода модуля, создавая таким образом почти всё, что угодно: от простого списка ссылок до стены фотографий на главную страницу или ссылки-теги для перелинковки категорий интернет-магазина, список FAQ, табы или аккордеоны. Модуль позволяет выводить изображения, адаптивные изображения, видео, адаптивные видео.v.2.4.0. Что нового?Добавлена поддержка новых компонентов. Добавлены новые типы ссылок и исключений для них: - Phoca Download, - Phoca Gallery, - RadicalMart (@radicalmart).Joomla 6. Успешно протестирована работа модуля на Joomla 6-alpha2.РазработчикамПроведён большой рефакторинг кода. Для типов ссылок созданы классы-драйверы. Теперь для того, чтобы добавить новый тип ссылки в модуль достаточно скопировать класс-образец из
modules/mod_wt_quick_links/src/Driver/Collection и наполнить его данными по образцу, а так же добавить необходимые языковые константы в панели администратора Joomla.Модуль бесплатный. Страница расширенияGitHub расширенияJoomla Extensions Directory👩‍💻 Подпишись на @joomlafeed.#joomla #разработка

Свои типы полей в Joomla.Это большая тема, о которой можно говорить очень много

Свои типы полей в Joomla.Это большая тема, о которой можно говорить очень много

👩‍💻 Свои типы полей в Joomla.Это большая тема, о которой можно говорить очень много. Самое главное, что возможности применения ограничиваются только вашей больной фантазией. Вы строите интерфейс своего модуля или плагина и вам нужно подтянуть данные из сторонней системы (список чего-нибудь по какому-нибудь API), чтобы сохранить выбранный id в Joomla. Или сделать какую-то проверку и в зависимости от неё показать то или иное сообщение пользователю. Для этого подойдут свои пользовательские типы полей. Интерфейс Joomla по большей части описан в XML-файлах. У каждого из них свои параметры. Некоторые не описаны в документации (manual.joomla.org), поэтому самым любопытным будет полезно заглянуть в собственно файлы фреймворка по пути

libraries/src/Form/FormField.php, а так же в
libraries/src/Form/Fields. У каждого класса поля перечислены его специфические свойства, которые можно описывать в XML. А в своём типе поля вы можете устанавливать эти значения программно. В моём модуле WT Quick links под капотом происходят изменения. Теперь для работы (в админке) ему нужен вспомогательный плагин. А в самом модуле нам бы проверить, а не выключен ли он? В Joomla есть тип поля Note - заметка. Его можно использовать для вывода примечаний.

<field type="note"     name="your_note_for_user"     label="Заголовок примечания"     title="Альтернативный способ для заголовка"     description="Текст примечания"     class="col-12 alert alert-info"     heading="h1"     close="true"/>
heading - указывать уровень заголовка.
close - позволяет закрыть это примечание. В классе поля
libraries/src/Form/Field/NoteField.php описана логика вывода. И в принципе оно нам подходит для нашей задачи. Но оно будет выводить сообщение всегда, а нам нужно только тогда, когда плагин отключён.Поэтому берём и создаём свой класс поля, который мы унаследуем от
NoteField. Это значит, что у нас в руках будет весь инструментарий стандартного поля
Note + то, что мы сами добавим. В XML-манифест добавляем наше поле
<field type="systempluginstatus"      name="systempluginstatus"     addfieldprefix="Joomla\Module\Wtquicklinks\Site\Fields"/>
-
type - имя файла и класса,-
addfieldprefix - указываем namespace к нашему классу, может быть любой нам нужный-
name - нельзя полю без имени...Это означает, что Joomla будет использовать класс поля из файла
modules/mod_wt_quick_links/src/Fields/SystempluginstatusField.php.А в классе поля будет написано следующее:
<?php// namespace для атрибута addfieldprefixnamespace Joomla\Module\Wtquicklinks\Site\Fields;// нельзя напрямую обращаться к этому файлуdefined('_JEXEC') or die;// подключаем родительский класс для переопределенияuse Joomla\CMS\Form\Field\NoteField;use Joomla\CMS\Language\Text;use Joomla\CMS\Plugin\PluginHelper;// имя класса и имя файла точь-в-точьclass SystempluginstatusField extends NoteField{     protected $type = 'Systempluginstatus';     protected function getLabel()          {               // если плагин не включён               if(PluginHelper::isEnabled('system','wtquicklinks')) {                    // меняем свойства родительского класса                    $this->class = 'alert alert-danger w-100';                    $this->element['label'] = '⚠️ А-а-а-а!';                    $this->element['description'] = 'Плагин не включён!!';                    // и просто рендерим его с нашими свойствами                    return parent::getLabel();               }          // А иначе всё хорошо, скрываем поле из виду.          $this->parentclass = 'd-none';          return '';     }}
Просто и удобно. И людям приятно, что о них позаботились и рассказали почему что-то не работает.@webtolkru#joomla #php #webdev #разработка

Обновлена информация в Плане развития Joomla

👩‍💻 Обновлена информация в Плане развития Joomla.Здесь собрана информация о датах релизов, описаны принципы версионирования, указаны ответственные за релизы, а так же даты окончания поддержки релизов. Опираясь на эту информацию вы можете планировать развитие ваших интернет-проектов.👩‍💻 Что нового?⛔️ Joomla 4.Дата окончания исправления ошибок безопасности в версии 4.x - 14 октября 2025г. ⚠️ После этой даты Joomla 4 прекратит получать какие-либо обновления, в том числе безопасности - вообще. Рекомендуем обновить ваши сайты до актуальной Joomla 5.✅ Joomla 5.- Дата окончания исправления ошибок в версии 5.x - 13 октября 2026г.- Дата окончания исправления ошибок безопасности в версии 5.x - 12 октября 2027 года.- Текущая актуальная (на момент написания заметки) версия - 5.3.1.- Опубликовано расписание выхода релизов Joomla 5.4. Стабильный релиз ожидается 14 октября 2025 года.✅ Joomla 6.- Дата окончания исправления ошибок в версии 6.x - 17 октября 2028г.- Дата окончания исправления ошибок безопасности в версии 6.x - 16 октября 2029г.- Опубликовано расписание выхода релизов Joomla 6.0. Стабильный релиз ожидается 14 октября 2025 года.- Для разработчиков уже доступна Joomla 6.0.0-alpha1.✅ Joomla! Framework.Обновлена информация о Joomla! Framework - полноценном PHP-фреймворке для разработки. Он в версиях 1.х и 2.х был самостоятельным параллельным проектом, однако начиная с версии Joomla 4.0 стал её основой. Добавлена информация о Joomla! Framework 3.x, который вышел 6 октября 2023 года. Его можно использовать в тех случаях, когда вам в проекте не нужна CMS Joomla целиком.Подробнее на сайте Joomla-сообщества Joomlaportal.ru#joomla #community

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

olejenya

  • Захожу иногда
  • 218
  • 3 / 0
Component+Ajax+json
« : 18.09.2013, 15:53:18 »
Привет всем. Помогите разобраться в структуре и как что правильно подключить.
У меня есть страница категорий из нее я передаю ID товара
Спойлер
[свернуть]
Почитав про компоненты и AJAX я в контролере добавил  код каторый мне надо для записи в сесию и вывода сообщений .
Спойлер
[свернуть]
и собственно сам скрипт которым я хотел это реализовать.
Спойлер
[свернуть]
Но вот когда я проверяю запрос у фаербаге, то вкладка JSON не появляеться и страница пустая ниче не передаеться.Что я не так делаю ?Куда рыть дальше?
*

SmokerMan

  • Гуру
  • 5291
  • 720 / 26
Re: Component+Ajax+json
« Ответ #1 : 18.09.2013, 16:39:43 »
1. Зачем сессию стартовать не понятно, она и так стартуется при инициализации приложения.
2. В конце метода контроллера должен быть die(json_encode($json));
3. Из ссылки убрать '&format=raw'
4. Не надо ни на какие вкладки смотреть, надо смотреть ответ, который приходит на запрос. Вкладка консоль.

*

olejenya

  • Захожу иногда
  • 218
  • 3 / 0
Re: Component+Ajax+json
« Ответ #2 : 18.09.2013, 17:07:56 »
1. Зачем сессию стартовать не понятно, она и так стартуется при инициализации приложения.
2. В конце метода контроллера должен быть die(json_encode($json));
3. Из ссылки убрать '&format=raw'
4. Не надо ни на какие вкладки смотреть, надо смотреть ответ, который приходит на запрос. Вкладка консоль.


Спасибо.
1.убрал.
2.заменил.
3.Убрал
4.Ответа не было.Поменял конструкцию на такую
Спойлер
[свернуть]
То сечас записывает в сесию переменные.Вопрос как мне вывести сообщения, типа что товар уже добавлен или успешно добавлен?
-----
пытаюсь написать правильные условия .

-------------
спасибо за подсказки.Все кажеться работает.Особо не тестил.но AJAX отправляет сообщения проверок возвращает, в сесию записываться.Вот код.Мб что то Неправильно и надо подредактировать?
Спойлер
[свернуть]
Хочу сразу спросить за такую же реализацию токо в модуле?Как в нем обновить?Там уже сразу будет выводиться сесия.Так как сообщения и проверка берет на себя компонент .Дайте ссылочку полезную)
« Последнее редактирование: 18.09.2013, 18:08:58 от olejenya »
*

Aleks.Denezh

  • Живу я здесь
  • 3404
  • 428 / 4
Re: Component+Ajax+json
« Ответ #3 : 18.09.2013, 19:52:07 »
у вас неправильна логика, вы должны отдавать не строку а JSON
например
Код: php
public function add() {
  if ((!in_array($_POST['product_id'], $_SESSION['ids'])) && (count($_SESSION['ids'])<= 3) )
    $this->showJSON(true, 'Tovar bul uspeshno dobavlen');
  } else {
         if (!in_array($_POST['product_id'], $_SESSION['ids'])) {
              $this->showJSON(false,'Limit tovarov dlya sravneniya ravno 4');
            }else {
               $this->showJSON(false, 'Etot tovar bul dobavlen ranie');
            }           
      }
}

public function showJSON($result, $message=''){
echo json_encode(array('result'=>$result, 'message'=>$message));
exit;
}

и JavaScript
Код: javascript
function addToCompare(product_id) {
$.getJson('index.php?option=com_compare&task=add&product_id=' + product_id, function(json){
if(json.result){
//выполняем что то если действия успешны
}
else{
//выполняем что то если действия неудачны
}
alert(json.message)
});
}
*

olejenya

  • Захожу иногда
  • 218
  • 3 / 0
Re: Component+Ajax+json
« Ответ #4 : 18.09.2013, 22:32:00 »
у вас неправильна логика, вы должны отдавать не строку а JSON
например
Код: php
public function add() {
  if ((!in_array($_POST['product_id'], $_SESSION['ids'])) && (count($_SESSION['ids'])<= 3) )
    $this->showJSON(true, 'Tovar bul uspeshno dobavlen');
  } else {
         if (!in_array($_POST['product_id'], $_SESSION['ids'])) {
              $this->showJSON(false,'Limit tovarov dlya sravneniya ravno 4');
            }else {
               $this->showJSON(false, 'Etot tovar bul dobavlen ranie');
            }           
      }
}

public function showJSON($result, $message=''){
echo json_encode(array('result'=>$result, 'message'=>$message));
exit;
}

и JavaScript
Код: javascript
function addToCompare(product_id) {
$.getJson('index.php?option=com_compare&task=add&product_id=' + product_id, function(json){
if(json.result){
//выполняем что то если действия успешны
}
else{
//выполняем что то если действия неудачны
}
alert(json.message)
});
}
Спасибо большое.Это как раз то что я и хотел изначально.Но не понимал как джейсон задействовать.Сейчас буду пробовать.И можно сразу вопрос.Если мне кроме меседжа надо вывести например тайтл, как это сделать?
*

Aleks.Denezh

  • Живу я здесь
  • 3404
  • 428 / 4
Re: Component+Ajax+json
« Ответ #5 : 18.09.2013, 22:55:45 »
Спасибо большое.Это как раз то что я и хотел изначально.Но не понимал как джейсон задействовать.Сейчас буду пробовать.И можно сразу вопрос.Если мне кроме меседжа надо вывести например тайтл, как это сделать?
всего лишь добавляете новую переменную, например:
Код: php
public function showJSON($result, $message='', $title=''){
echo json_encode(array('result'=>$result, 'message'=>$message, 'title'=>$title));
exit;
}
тоесть по сути вам надо сформировать асоциированный массив который вы прогоните через json_encode b отдадите (просто ради интереса в строке браузера введите
yoursite.com/index.php?option=com_compare&task=add&product_id=1 и посмотрите что там выводит )

а дальше в скрипте $.getJson('index.php?option=com_compare&task=add&product_id=' + product_id, function(json){alert(json.tille})
тоесть json точка и ключ из массива который вы отдали скриптом )
*

olejenya

  • Захожу иногда
  • 218
  • 3 / 0
Re: Component+Ajax+json
« Ответ #6 : 18.09.2013, 22:59:01 »
Спасибо.2 дня гуглил, сегодня решил написать на форуме и вот оно счастье))А то я принимаю HTML, а без json_encode передает весь HTML.Но теперь как бы все ясно, ща буду переписывать и вникать, что бы отложилось в макушке))
*

Aleks.Denezh

  • Живу я здесь
  • 3404
  • 428 / 4
Re: Component+Ajax+json
« Ответ #7 : 18.09.2013, 23:02:15 »
Спасибо.2 дня гуглил, сегодня решил написать на форуме и вот оно счастье))А то я принимаю HTML, а без json_encode передает весь HTML.Но теперь как бы все ясно, ща буду переписывать и вникать, что бы отложилось в макушке))
незачто, вы там про модуль спрашивали выше вроде, так что бы из модуля AJAX послать вам нужно будет к компоненту стучаться (точно так же как и из компонента) либо в плагин!
*

olejenya

  • Захожу иногда
  • 218
  • 3 / 0
Re: Component+Ajax+json
« Ответ #8 : 18.09.2013, 23:23:13 »
незачто, вы там про модуль спрашивали выше вроде, так что бы из модуля AJAX послать вам нужно будет к компоненту стучаться (точно так же как и из компонента) либо в плагин!
Нет мне не из модуля послать.А наобороть в модуль и без перезагрузки обновлять.Если выводить те самые продукты из сесии.
Ваш скрипт показывает ошибку, а мой категорчески не хочет выводить JASON, но в ответах он есть.
Ваша ошибка в скрипте
ypeError: jQuery.getJson is not a function

-------
все работает.Еще раз спасибо.Вопрос.Я теперь  в шаблоне могу из сесии спокойно вытягивать все что мне надо?Это правильно?Тему не закрываю))Еще есть моудль и вывод самого щаблона в котором надо будет удлять из сесии и обновлять или скрывать ID.
« Последнее редактирование: 18.09.2013, 23:35:15 от olejenya »
*

Aleks.Denezh

  • Живу я здесь
  • 3404
  • 428 / 4
Re: Component+Ajax+json
« Ответ #9 : 19.09.2013, 00:29:55 »
все работает.Еще раз спасибо.Вопрос.Я теперь  в шаблоне могу из сесии спокойно вытягивать все что мне надо?Это правильно?Тему не закрываю))Еще есть моудль и вывод самого щаблона в котором надо будет удлять из сесии и обновлять или скрывать ID.
Да вы можете вытягивать из сессии данные где вам угодно )
а модуль вам не обязательно же весь обновлять, допустим у вас есть строка в модуле:
<div class="cart-info">В вашей корзине товаров: <strong>10</strong> на сумму <span>2000</span>руб.</div>
никто же вам не мешает в json сформировать данные в виде строки array('message'=>'lala', 'result'=>$result, 'module'=>'<strong>11</strong> на сумму <span>2200</span>руб.')
а дальше как получите данные банально:
$('.cart-info').html(json.module);
*

olejenya

  • Захожу иногда
  • 218
  • 3 / 0
Re: Component+Ajax+json
« Ответ #10 : 20.09.2013, 16:59:54 »
Столкнулся с такой проблемой как вывод картинки в модуль.Притом я пытаюсь передать путь к картинки.Но что то ничего не получается.Помогите пожалуйста))
понял сам свои ошибки))
« Последнее редактирование: 20.09.2013, 18:04:09 от olejenya »
*

olejenya

  • Захожу иногда
  • 218
  • 3 / 0
Re: Component+Ajax+json
« Ответ #11 : 24.09.2013, 23:20:22 »
Привет Istaan .Спасибо за помощь с компонентом и модулем все работает.Теперь вот хочу обратно побаловаться аяксом и решением проблемы как быстрый просмотр.
1.Пытался сделать штатными средствами Joomla.Возвращает в айфрейме и все скрипты почему то перестают работать.В плагинах фенсибокс все тоже.
2.Решил сделать это через компонент.Но мне надо возвращать много инфы и плюс постройка через условия выводы циклы.и как потом все запихнуть в переменную и вывести?Мб это и Неправильно?
Вопрос можно по такой методики как с джейсоном только вывести уже в штмл?
То есть я сделаю разметку, по вывожу все что мне надо и при аяксе возвращаю на страницу категорий этот штмл в виде быстрого просмотра?И сразу вопрос.Как быть со скриптами?Их при аяксе надо как то обновлять?
3.Потом решил попытаться вывести через плагин.Создал поагин, в нем файлик AJAX.В скрипте указал путь  к файлику.Проверил выводит ли штмл.Все вывело.Потом когда попытался через PHP выводить.ТО все пустая страница.Как праильно надо ?Посоветуйте))
*

b2z

  • Глобальный модератор
  • 7284
  • 778 / 0
  • Разраблю понемногу
Re: Component+Ajax+json
« Ответ #12 : 25.09.2013, 22:41:12 »
olejenya - создайте отдельную тему, не надо все в одной спрашивать.
*

olejenya

  • Захожу иногда
  • 218
  • 3 / 0
Re: Component+Ajax+json
« Ответ #13 : 25.09.2013, 23:03:39 »
olejenya - создайте отдельную тему, не надо все в одной спрашивать.
Та я уже их по на создавал и нигде ответа нет((Даже у вас на блоге запись сделал))
*

b2z

  • Глобальный модератор
  • 7284
  • 778 / 0
  • Разраблю понемногу
Re: Component+Ajax+json
« Ответ #14 : 25.09.2013, 23:11:29 »
Ну значит никто не знает ответа, а кто знает еще не прочитал тему.
*

olejenya

  • Захожу иногда
  • 218
  • 3 / 0
Re: Component+Ajax+json
« Ответ #15 : 03.02.2015, 22:01:52 »
Привет еще раз, появилась проблема с возвратом контента.
В общем думал все работает норм.Но когда в описание вставляешь картинку, то при обработке аяксом, выдает ошибку :
Путь не найден "
и возвращает картинку
<img src="images/joomla_black.gif" alt="" />
Понтяно, что путь не найден из за index.php/en/ , почему обращение идет к картинке вот именно с таким путем??И как сделать правильно и нормально

Код
jQuery.ajax({
url: 'index.php?action=test',
type: 'get',
data: 'product_id=' + product_id,
success: function (data) {
                    jQuery('#quick_view_popup').html(data);
}
сам плагин

public function onAfterRender(){
if (!defined('DS')) define('DS', DIRECTORY_SEPARATOR);

$input = JFactory::getApplication()->input;
if($input->getCmd('action')!== 'test'){
return;
}
$region = $input->getInt('product_id', 0);
if ($region) {
                  код возвращает, вывожу переменуую контента
               }
}

*

Aleks.Denezh

  • Живу я здесь
  • 3404
  • 428 / 4
Re: Component+Ajax+json
« Ответ #16 : 04.02.2015, 00:34:42 »
<img src="<?php echo JUri::base(); ?>images/joomla_black.gif" alt="" />
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Как закрыть страницу сайт/index.php/component/users/?view=registration?

Автор alentero

Ответов: 6
Просмотров: 10509
Последний ответ 07.11.2015, 00:02:16
от Vol^T
Создание поиска c json ответом

Автор OmniWizard

Ответов: 8
Просмотров: 1424
Последний ответ 16.12.2013, 21:09:35
от OmniWizard
Красивая подсказка с помощью hasTip + AJAX

Автор Aeliot

Ответов: 7
Просмотров: 1389
Последний ответ 07.11.2013, 16:43:15
от Aeliot
Использование AJAX в Joomla 2.5/3.0

Автор platonische

Ответов: 2
Просмотров: 5331
Последний ответ 28.05.2013, 01:27:50
от platonische
AJAX и Joomla

Автор skyer

Ответов: 31
Просмотров: 7036
Последний ответ 22.11.2011, 01:08:43
от skyer