Новости Joomla

Вышли релизы безопасности Joomla 6.1.4 и Joomla 5.4.9

Релиз безопасности Joomla 6.1.4 и Joomla 5.4.9

Проект Joomla! рад сообщить о выходе Joomla 6.1.4 и Joomla 5.4.9. Это релизы безопасности и исправления ошибок для серий 5.x и 6.x.

JoomShift - компонент переноса контента между Joomla сайтами.

‍ JoomShift - компонент переноса контента между Joomla сайтами.

JoomShift - компонент переноса контента между Joomla сайтами.Он позволяет экспортировать модули, меню, материалы, категории, пользовательские поля и пользователей в виде переносимых JSON/ZIP-файлов, а затем импортировать их в любую другую установку Joomla.

Возможности компонента:- Модули — полная настройка, назначение пунктов меню, позиционирование и содержимое SP Page Builder.
-Меню — иерархия родительских/дочерних элементов, типы элементов, ссылки, уровни доступа и параметры. Отсутствующие типы меню создаются автоматически, а элементы, указывающие на неустановленные компоненты, пропускаются с предупреждением.
-Статьи и категории — контент, метаданные, изображения и иерархия категорий.
-Пользовательские поля — группы полей, определения, ограничения по категориям и значения (включая поля с несколькими значениями) — экспортируются и автоматически создаются заново на целевом сайте.
-Пользователи — данные профиля, назначения групп и хэши паролей, чтобы учетные записи работали сразу после импорта.
-Кросс-версииJoomla - компонент адаптируется к различиям в схеме базы данных между версиями Joomla.
-Создан для крупных сайтов — постраничные списки (20/50/100/250строк) и автоматический пакетный экспорт для сайтов с более чем 500 элементами, поэтому он продолжает работать на обычном хостинге.
-Опция перезаписи — обновляет совпадающие элементы при повторном импорте вместо создания дубликатов.
-Drag-n-drop импорт с подробным отчетом о том, что было импортировано, обновлено или пропущено, и почему.

На момент написания заметки для скачивания необходима регистрация/логин на сайте разработчика.

-Joomla Extensions Directory-Страница расширения#joomla#расширения

Модуль joomLab JS Ajax Cart позволит организовать в Вашем интернет-магазине на компоненте JoomShopping удобную AJAX корзину с возможностью добавлять товары и изменять их количество без перезагрузки страницы.

Модуль joomLab JS Ajax Cart позволит организовать в Вашем интернет-магазине на компоненте JoomShopping удобную AJAX корзину с возможностью добавлять товары и изменять их количество без перезагрузки страницы.

Кроме этого, в состав пакета установки входит плагин, который позволяет выводить атрибуты товара в список всех товаров, менять эти атрибуты и добавлять товар в корзину из списка товаров. Если атрибутов много, то их можно выводить в всплывающем (модальном окне).

В модуле предусмотрено 2 макета дизайна для Bootstrap и UIkit и максимальная кастомизация для переопределения макетов в шаблон.Демо расширенияСтраница расширения

Видео в Telegram

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

platonische

  • Давно я тут
  • 523
  • 2 / 1
  • Парусные экспедиции vk.com/tc670
Хочу реализовать следующее в своем компоненте:

Журнал операций - чтоб иметь четкую картину кто когда и чего делал.
Например: есть таблица №1 и все виды для работы с ней.
при создании элемента в Т1 надо чтоб запрос как текст попал в Т(log)
Структура для Т(log) создана

Подскажите куда копать? Или отговорите...
*

AlekVolsk

  • Гуру
  • 6913
  • 416 / 4
самое простое: переопределить все методы создания/сохранения/публикации/удаления/прочих_действий элементов в модели и перед вызовом родителя делать запись в лог через JLog либо организовать собственный лог (запись в отдельную таблицу компонента, просмотр и управление - только в админке и только суперюзером)
*

platonische

  • Давно я тут
  • 523
  • 2 / 1
  • Парусные экспедиции vk.com/tc670
Блин по переопределению чет сражу не понимаю. Подкиньте ссылочку на изучение, кто богат.
*

robert

  • Живу я здесь
  • 4974
  • 457 / 20
Спойлер
[свернуть]
Функция test() в классе Test2 переопределена.
Не будь паразитом, сделай что-нибудь самостоятельно!
*

platonische

  • Давно я тут
  • 523
  • 2 / 1
  • Парусные экспедиции vk.com/tc670
А список названий какой у функций
save? или как?
*

platonische

  • Давно я тут
  • 523
  • 2 / 1
  • Парусные экспедиции vk.com/tc670
И еще вопрос. А как достать переменные данной записи внутри метода?
*

platonische

  • Давно я тут
  • 523
  • 2 / 1
  • Парусные экспедиции vk.com/tc670
По переопределению save получилось
Спойлер
[свернуть]
Подскажите какие еще есть функции полезные для работы и как они называются по англ и входные выходные данные. (можно ссылку)
Полезные например: после сохранения есть что-то, а то в момент сохранения может не быть id. Может еще какие заморочки есть?
*

robert

  • Живу я здесь
  • 4974
  • 457 / 20
По переопределению save получилось
Спойлер
[свернуть]
Что получилось? По приведенному коду не вижу.
Полезные например: после сохранения есть что-то, а то в момент сохранения может не быть id. Может еще какие заморочки есть?
Переведите.
Не будь паразитом, сделай что-нибудь самостоятельно!
*

platonische

  • Давно я тут
  • 523
  • 2 / 1
  • Парусные экспедиции vk.com/tc670
Что получилось? По приведенному коду не вижу.Переведите.
Получилось то что достал данные $data и могу их пользовать. По поводу переведите: не могу достать id элемента который только что создается.
Для добавления нового элемента как лучше достать данные?
*

robert

  • Живу я здесь
  • 4974
  • 457 / 20
не могу достать id элемента который только что создается.
В переопределенном методе save() сразу после успешной
Код: php-brief
$table->store()
делайте
Код: php-brief
$id=$table->id;
Не будь паразитом, сделай что-нибудь самостоятельно!
*

platonische

  • Давно я тут
  • 523
  • 2 / 1
  • Парусные экспедиции vk.com/tc670
... сразу после успешной
вот эт оне понимаю. Что это значит?
И попутно вопрос как мне положить переформированные данные в другую таблицу?
*

robert

  • Живу я здесь
  • 4974
  • 457 / 20
не могу достать id элемента который только что создается.
Посмотрел JModelAdmin::save(), можно сделать проще: в переопределенном методе save() после успешного сохранения
Код: php-brief
$id=$this->getState($this->getName().'.id');
На этом бесплатные ответы закончились.
Не будь паразитом, сделай что-нибудь самостоятельно!
*

platonische

  • Давно я тут
  • 523
  • 2 / 1
  • Парусные экспедиции vk.com/tc670
На этом бесплатные ответы закончились.
Спасибо и на этом. Дали бы ссылки на то как писать в другой table и все прочее - я готов разбираться, можно без прямых подсказок. Тем не менее спасибо!
*

robert

  • Живу я здесь
  • 4974
  • 457 / 20
Спасибо и на этом. Дали бы ссылки на то как писать в другой table и все прочее - я готов разбираться, можно без прямых подсказок. Тем не менее спасибо!
Не знаю такой ссылки - сам учусь, разбирая код.
Не будь паразитом, сделай что-нибудь самостоятельно!
*

dmitry_stas

  • Легенда
  • 13151
  • 1234 / 8
Не знаю такой ссылки - сам учусь, разбирая код.
platonische, это на самом деле так. нет ничего лучше в изучении чего то, чем изучение работы его исходников. имхо вы без этого не продвинетесь дальше, сколько бы умных книжек вы не прочли.
Тут дарят бакс просто за регистрацию! Успей получить!
Все советы на форуме раздаю бесплатно, то есть даром. Индивидуально бесплатно консультирую только по вопросам стоимости индивидуальных консультаций
*

platonische

  • Давно я тут
  • 523
  • 2 / 1
  • Парусные экспедиции vk.com/tc670
Подскажите в каком стандартном компоненте есть запись в две таблице?
*

b2z

  • Глобальный модератор
  • 7288
  • 778 / 0
  • Разраблю понемногу
А в чём проблема с записью в две таблицы?

Код: php
public function save($data)
{
    if (!parent::save($data))
    {
       return false;
    }

    $id = $this->getState($this->getName(). '.id');
    $this->updateSecondTable($id, $data);
}

private function updateSecondTable($id, $data)
{
     // здесь пишите во вторую таблицу
}
*

platonische

  • Давно я тут
  • 523
  • 2 / 1
  • Парусные экспедиции vk.com/tc670
Честно признаться. Я действительно немного знаю и достаточно тяжеловато.
Затык заключается не в ток как передать переменные другой функции, а в том куда передать?

Ведь все же есть готовое и можно наверное во вторую таблицу методом save записать данные или надо городить что-то вот такое?:
Спойлер
[свернуть]

Читаю код родительского метода из файла libraries\legacy\model\admin.php буду разбираться как его заставить table сменить... пока решение в лоб - скопировать его и присвоить нужное значение $table
*

platonische

  • Давно я тут
  • 523
  • 2 / 1
  • Парусные экспедиции vk.com/tc670
Что выходит:
в моделе добавил getLogTable
Спойлер
[свернуть]

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

И вторая функция сохранения вот ту прошу помочь. Все работает но не все понимаю
Спойлер
[свернуть]
*

platonische

  • Давно я тут
  • 523
  • 2 / 1
  • Парусные экспедиции vk.com/tc670
Ещё вопрос: А куда можно вынести функцию function updateSecondTable($data) чтоб пользоваться ей из всех моделей, что есть в компоненте?
*

platonische

  • Давно я тут
  • 523
  • 2 / 1
  • Парусные экспедиции vk.com/tc670
Возник вопрос.

Сохранение во вторую таблицу работает отлично.

второе сохранение срабатывает после первого сохранения и вываливает в адресную строку id не элемента а id из второго сохранения (id таблицы log) как побороть?
*

platonische

  • Давно я тут
  • 523
  • 2 / 1
  • Парусные экспедиции vk.com/tc670
Ответ на пред пост
Спойлер
[свернуть]
Из второго сохранения надо убрать эту строку.
*

b2z

  • Глобальный модератор
  • 7288
  • 778 / 0
  • Разраблю понемногу
*

platonische

  • Давно я тут
  • 523
  • 2 / 1
  • Парусные экспедиции vk.com/tc670
А зачем Вам проверка  if ($this->associationsContext && JLanguageAssociations::isEnabled())?
Я не знаю - взял родительский метод под копирку.
Подскажите какие операции здесь лишние? cleanCache нужен ли и все что в catch ?
*

b2z

  • Глобальный модератор
  • 7288
  • 778 / 0
  • Разраблю понемногу
*

platonische

  • Давно я тут
  • 523
  • 2 / 1
  • Парусные экспедиции vk.com/tc670
Продолжаю задавать вопросы.
1. Подскажите куда засунуть функцию чтоб был к ней доступ из каждой модели?
2. Подскажите как переопределить publish и delete функции? Точнее как внутри них запустить функцию save? Суть в том что мне надо при изменении статуса published делать запись во второй таблице и соответственно вызывать методы сохранения новой записи... не выходит у меня это.
Ну и еще переопределить их где лучше? в модели или контроллере?
*

Aleks.Denezh

  • Живу я здесь
  • 3401
  • 428 / 4
1. Подскажите куда засунуть функцию чтоб был к ней доступ из каждой модели?
Никуда не засовывать, любой метод в любой модели можно дергать из другой модели!
Код: php
$model = JModelLegacy::getInstance( $name = 'List', $prefix = 'TestModel' ); //то есть имя класса модели TestModelList
echo $model->getTest();// вызываем метод getTest() в модели!

2. Подскажите как переопределить publish и delete функции? Точнее как внутри них запустить функцию save? Суть в том что мне надо при изменении статуса published делать запись во второй таблице и соответственно вызывать методы сохранения новой записи... не выходит у меня это.
Ну и еще переопределить их где лучше? в модели или контроллере?
2. переопределить просто
Код: php
public function publish( &$pks, $value = 1 ){
if ( parent::publish( $pks, $value ) ) {
//тут ваш код
}
}
Только зачем вам вызывать внутри них метод save для изменения данных?
Получаете нужную таблицу через
$table = $this->getTable('table_name'); //вместо table_name имя вашей таблицы
$table->load(10); // загружаете запись с id=10
$table->text = 'lalala'; //меняете значение в поле text на lalal
$table->save(); // сохраняете данные!
« Последнее редактирование: 14.03.2016, 21:11:11 от Istaan »
*

platonische

  • Давно я тут
  • 523
  • 2 / 1
  • Парусные экспедиции vk.com/tc670
Никуда не засовывать, любой метод в любой модели можно дергать из другой модели!
2. переопределить просто
Код: php
public function publish( &$pks, $value = 1 ){
if ( parent::publish( $pks, $value ) ) {
//тут ваш код
}
}
Только зачем вам вызывать внутри них метод save для изменения данных?
Получаете нужную таблицу через
$table = $this->getTable('table_name'); //вместо table_name имя вашей таблицы
$table->load(10); // загружаете запись с id=10
$table->text = 'lalala'; //меняете значение в поле text на lalal
$table->save(); // сохраняете данные!
По первому вопросу спасибо испробую!
По второму немного поясню: Вот сменили значение published а в таблице Log надо СОЗДАТЬ запись, тут вопрос еще один всплывает, когда берешь внутри модели somethingS то это класс JModelList а метод сохранения у меня лежит в методе SOMETHING а он расширяет класс JModelAdmin и чего-то у меня не катит функция вызванная из другого метода
*

Aleks.Denezh

  • Живу я здесь
  • 3401
  • 428 / 4
По первому вопросу спасибо испробую!
Я там выше код дополнил как модель дергать!

По второму немного поясню: Вот сменили значение published а в таблице Log надо СОЗДАТЬ запись
а вы пробовали хоть немножко документацию читать?!
Повторю код:
Код: php
$table = $this->getTable('table_name'); //вместо table_name имя вашей таблицы
$table->load(10); // загружаете запись с id=10
$table->text = 'lalala'; //меняете значение в поле text на lalal
$table->save(); // сохраняете данные!
Вот так вы отредактируете старую запись!

Код: php
$table = $this->getTable('table_name'); //вместо table_name имя вашей таблицы
$table->text = 'lalala'; //меняете значение в поле text на lalal
$table->save(); // сохраняете данные!
Вот так вы создадите новую запись!

Вам не нужно вызывать метод SAVE ибо он без контроллера, без переданных данных в $_POST, токена и установки состояний работать не будет!
И в конечном результате метод save делает сохранение в таблицу с помощью класса JTable!


тут вопрос еще один всплывает, когда берешь внутри модели somethingS то это класс JModelList а метод сохранения у меня лежит в методе SOMETHING а он расширяет класс JModelAdmin и чего-то у меня не катит функция вызванная из другого метода
Потому что вы 99.999% неправильно вызываете модель!
Если вызываете не так:
Код: php
$model = JModelLegacy::getInstance( $name = 'List', $prefix = 'TestModel' ); //то есть имя класса модели TestModelList
echo $model->getTest();// вызываем метод getTest() в модели!
а просто проинклудив, то неудивительно что у вас не работает!
Но и работать не будет! Вам надо сделать как я написал выше! через $table (класс JTable)
*

platonische

  • Давно я тут
  • 523
  • 2 / 1
  • Парусные экспедиции vk.com/tc670
Понял! Шагаем дальше. Спасибо!
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

[РЕШЕНО] Дублирование при создании

Автор platonische

Ответов: 7
Просмотров: 1725
Последний ответ 12.02.2021, 11:24:26
от platonische
Обработка AJAX в компоненте Joomla!3

Автор balancer

Ответов: 33
Просмотров: 13827
Последний ответ 23.07.2020, 07:45:53
от Dolphin4ik_1
Пагинатор в нестандартном компоненте

Автор sesil

Ответов: 8
Просмотров: 1714
Последний ответ 04.09.2019, 11:24:30
от sesil
Не видится файлы языкового пакета в созданном компоненте

Автор khachatur86

Ответов: 0
Просмотров: 2376
Последний ответ 30.03.2019, 23:35:26
от khachatur86
Стандартная система рейтингов в custom компоненте

Автор platonische

Ответов: 1
Просмотров: 1270
Последний ответ 12.02.2019, 16:55:03
от platonische