Новости Joomla

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

effrit

  • Легенда
  • 10132
  • 1118 / 13
  • effrit.com
Всем кривет!
На забугорном форуме товарищ задал интересный вопрос: хочет, чтобы по нажатию кнопки в админке модуля устанавливались демо данные (для этого модуля).
Что-то я такого не встречал нигде, даже интересно стало, как такое можно сделать.
Автоматический пост-инсталл не предлагать!  ;)
*

KKAAZZOO

  • Живу я здесь
  • 2288
  • 118 / 9
Так ведь это уже реализовано на уровне движка, для всех расширений. Например устнавливаешь Joomla без демо данных, в админке появляется модуль Sample Data c кнопочкой, нажимаешь и все, демо данные установлены. Наверное стоит в доки заглянуть.
*

Aleks.Denezh

  • Живу я здесь
  • 3406
  • 428 / 4
На забугорном форуме товарищ задал интересный вопрос: хочет, чтобы по нажатию кнопки в админке модуля устанавливались демо данные (для этого модуля).
Легкотня  ;) я для возможности динамичной смены параметров в модуле реализовал плагином такое же действие как в Joomla при смене категории (для перезагрузки доп полей в зависимости от категории), в этот момент можно легко навесить вписывание в базу параметров модуля и перезагрузку его... если интересно то поделюсь решением )
*

effrit

  • Легенда
  • 10132
  • 1118 / 13
  • effrit.com
хм. так это получается надо плагин делать отдельный. это может и правильно, но для единичного модуля - не изящно как-то.
я когда гуглил нашел только в платном шабе такую кнопку. но там фиг знает, как реализовано, не покупать же шаб, чтобы проверить ).
т.е идея с плагином понятна, но если каждый так будет делать, то получим ворох плагинов только для того, чтобы ставить демоданные для разных расширений, что как-то не айс (ну так, чисто теоретические экстраполяции  ;D).
для фоки видел отдельно демоданные ставились, как самостоятельное расширение. что тоже на изврат похоже, но для компонента вполне вариант, т.к. лишняя защита от дурака.
а вот для плагина или модуля хотелось бы лайтового встроенного решения все же.
объявляется конкурс на самого умного!  ;D
*

Aleks.Denezh

  • Живу я здесь
  • 3406
  • 428 / 4
хм. так это получается надо плагин делать отдельный. это может и правильно, но для единичного модуля - не изящно как-то.
Простите, а вы что собираетесь сделать 100500 модулей?)
И да, плагин один, модуль будет любой перегружать таким способом, а в плагине можно банально сделать backcall какой нить, что бы вызывать определенный метод из хелпера модуля, в итоге плагин будет один, а модулей на этот плагин можно навесить 100500..
*

effrit

  • Легенда
  • 10132
  • 1118 / 13
  • effrit.com
я к тому, что это фреймворк уже какой-то получается ).
ну ок, ежели проще нельзя, то поделись с ближними примером, пожалуйста. ).
*

robert

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

Aleks.Denezh

  • Живу я здесь
  • 3406
  • 428 / 4
я к тому, что это фреймворк уже какой-то получается ).
Joomla же и есть фреймворк...

Все очень просто на самом деле )
1. нужно создать поле кастомное поле для модуля вот с таким содержимым:
Спойлер
[свернуть]
По сути это и даёт нам перегружать форму

Ну и такой плагинчик:
Спойлер
[свернуть]
*

Aleks.Denezh

  • Живу я здесь
  • 3406
  • 428 / 4
Не совсем понял. Модуль - это вывод определенных данных из компонента. Как у него могут быть свои демо-данные?
Имеется ввиду админка же, демо данные имеются ввиду скорее всего для параметров модуля..
хотя тут тоже нифига не понятно, почему нельзя сделать значения по умолчанию в полях то? или что то там специфичное?
*

robert

  • Живу я здесь
  • 4974
  • 457 / 20
Имеется ввиду админка же, демо данные имеются ввиду скорее всего для параметров модуля..
А, понял. В принципе можно и без плагина: просто засунуть демо-данные в getInput() кнопки
Код
<?php
defined( '_JEXEC' ) or die;

use Joomla\CMS\Factory;
use Joomla\CMS\Form\FormField;

class JFormFieldSetDefault extends FormField
{
    protected $type = 'setDefault';

    protected function getInput()
    {
        Factory::getDocument()->addScriptDeclaration(
            'function setDefault(){
                document.getElementById("id1").value = "value1";
document.getElementById("id2").value = "value2";
                Joomla.submitbutton("module.apply");
            }'
        );

return '<button class="btn" onclick="setDefault();">Заполнить демо данными</button>';
    }
}
Не будь паразитом, сделай что-нибудь самостоятельно!
*

effrit

  • Легенда
  • 10132
  • 1118 / 13
  • effrit.com
ы. я только хотел написать, что можно же js-ом заполнить поля тогда.  ;D
программисты всегда быстрее  >:(  ;D

вот этот вариант наиболее близок к массам. всем спасибы и плюсы.

*

effrit

  • Легенда
  • 10132
  • 1118 / 13
  • effrit.com
только почему-то в таком варианте выкидывает в список модулей при нажатии на кнопку.
но если заменить кнопку на span то поля заполняются и перезагрузки не происходит, что, в целом, задачу решает.
сохраниться можно и самому.
*

robert

  • Живу я здесь
  • 4974
  • 457 / 20
Код
document.getElementById("jform_params_label").value = "value1";
document.getElementById("jform_params_button_text").value = "value2";
Так у меня работает.
Не будь паразитом, сделай что-нибудь самостоятельно!
*

effrit

  • Легенда
  • 10132
  • 1118 / 13
  • effrit.com
понял почему. если не находит поля, то получаем js ошибку и далее не срабатывает код, назначающий кнопке поведение.
Joomla.submitbutton("module.apply");
если прописать существующие поля то все работает  *DRINK*
*

robert

  • Живу я здесь
  • 4974
  • 457 / 20
Не будь паразитом, сделай что-нибудь самостоятельно!
*

Aleks.Denezh

  • Живу я здесь
  • 3406
  • 428 / 4
Но всё же надо спрашивать у товарища с забугорного форума что он пытается сделать...
Ибо как бы зачем забивать что то скриптами если можно дефолтными значениями какими то всё заполнить в полях XML файла!
либо там что то слишком специфичное, и простым JS фиг заполнишь, либо он не понимает что хочет!
*

effrit

  • Легенда
  • 10132
  • 1118 / 13
  • effrit.com
да не, смысл в том, чтобы получить инструментарий.
дальше уже каждый для себя решает, что с ним делать.  ;)
например, можно не одну, а три две кнопки сделать. с разными вариантами демоданных.
я напишу про простой вариант, а на сложный ссылку дам, если он программер - разберется, если нет - то пусть js юзает ).
ток забугор повис насмерть чего-то.  ;D
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Прописать условие для сохранения данных в БД

Автор semen1707

Ответов: 0
Просмотров: 316
Последний ответ 14.04.2021, 00:59:44
от semen1707
Модель для представления, которое показывает списки данных разных типов

Автор borro

Ответов: 27
Просмотров: 899
Последний ответ 06.05.2020, 11:57:12
от Septdir
Связать две таблицы с БД для дальнейшего вывода данных с них

Автор golinejj

Ответов: 16
Просмотров: 763
Последний ответ 06.02.2020, 15:40:58
от golinejj
Редактирование данных в связанных таблицах

Автор NetFix

Ответов: 1
Просмотров: 591
Последний ответ 19.03.2019, 11:07:10
от platonische
Вывод данных из нескольких одинаковых таблиц

Автор Outpost

Ответов: 6
Просмотров: 631
Последний ответ 11.02.2019, 14:42:55
от passer