Новости Joomla

SW JProjects v.2.5.0 - компонент каталога цифровых проектов на Joomla

SW JProjects v.2.5.0 - компонент каталога цифровых проектов на Joomla

👩‍💻 SW JProjects v.2.5.0 - компонент каталога цифровых проектов на Joomla.Компонент - менеджер цифровых проектов для Joomla! CMS. Компонент обеспечивает создание каталога цифровых проектов и предоставляет возможность скачивания, в том числе с использованием лицензионных ключей.👩‍💻 v.2.5.0. Что нового?Схемы структур данных для серверов обновлений. Теперь с SW JProjects вы может создавать сервер обновлений не только для расширений Joomla, но и свои собственные. Например, вам нужно, чтобы структура данных сервера обновлений была другая и формат должен быть, например, не XML, а JSON. Формирование структуры данных для сервера обновлений расширений Joomla вынесено в отдельный плагин. Вы можете создать свой собственный плагин и реализовать в нём нужную вам структуру данных, добавив или наоборот исключив отображаемые данные. Сервер обновлений в компоненте по-прежнему отображает информацию о списке проектов и их версиях, о конкретном проекте и его changelog.Можно выбрать схему данных сервера обновлений глобально для всего компонента, выбрать другую схему данных для категории проектов, а так же выбрать схему в каждом проекте.

Разработчикам в качестве образца можно посмотреть плагин схемы данных для Joomla в составе компонента или же плагин-образец JSON-схемы на GitHub.
Группа плагинов swjprojects. Для нужд компонента создана группа плагинов swjprojects. В частности, в этой группе находится плагин структуры данных Joomla расширений для сервера обновлений.Изменение языковых констант. Изменены некоторые языковые константы в панели администратора. Если вы делали переопределение констант - переопределите их снова.👩‍💻 Joomla 6. Внесены изменения для корректной установки и работы компонента на Joomla 6. Компонент успешно протестирован на Joomla 6-beta2.Минимальная версия Joomla - 5. Подняты минимальные системные требования: Joomla 5.0.0 и PHP 8.1.
- Страница расширения👉 Плагин-образец кастомной JSON-схемы данных для сервера обновлений на GitHub.- GitHub расширения- Документация на GitHub- Joomla Extensions Directory#joomla #расширения

Как триггерить события для плагинов на манер Joomla 5+?В Joomla 6 должны удалить метод...

Как триггерить события для плагинов на манер Joomla 5+?В Joomla 6 должны удалить метод...

👩‍💻 Как триггерить события для плагинов на манер Joomla 5+?В Joomla 6 должны удалить метод triggerEvent(), с помощью которого раньше вызывались события для плагинов. Теперь чтобы в своём коде вызвать событие для плагина и получить от него результаты нужно:- создать объект класса события- передать в него параметры

use Joomla\CMS\Event\AbstractEvent;use Joomla\CMS\Factory;use Joomla\CMS\Plugin\PluginHelper;// Грузим плагины нужных группPluginHelper::importPlugin('system');// Создаём объект события$event = AbstractEvent::create('onAfterInitUniverse', [    'subject' => $this,    'data'    => $data, // какие-то данные    'article' => $article, // ещё материал вдовесок    'product' => $product, // и товаров подвезли]);// Триггерим событиеFactory::getApplication()->getDispatcher()->dispatch(    $event->getName(), // Тут можно строку передать 'onAfterInitUniverse'    $event);// Получаем результаты// В случае с AbstractEvent это может быть не 'result',// а что-то ещё - куда сами отдадите данные.// 2-й аргумент - значение по умолчанию, // если не получены результаты$results = $event->getArgument('result', []);
Плюсы такого подхода - вам не нужно запоминать порядок аргументов и проверять их наличие. Если вы написали свой класс события, то в плагине можно получать аргументы с помощью методов $event->getArticle(), $event->getData(), $event->getProduct() и подобными - реализуете сами под свои нужды. Если такой класс события написали, то создаёте экземпляр своего класса события и укажите его явно в аргументе eventClass
use Joomla\Component\MyComponent\Administrator\Event\MyCoolEvent;$event = MyCoolEvent::create('onAfterInitUniverse', [    'subject'    => $this,    'eventClass' => MyCoolEvent::class, // ваш класс события    'data'       => $data, // какие-то данные    'article'    => $article, // ещё материал вдовесок    'product'    => $product, // и товаров подвезли]);
Ожидаемо, что класс вашего события будет расширять AbsractEvent или другие классы событий Joomla.🙁 Есть неприятный нюанс - нельзя просто так вызывать событие и ничего не передать в аргументы. Аргумент subject обязательный. Но если вы всё-таки не хотите туда ничего передавать - передайте туда пустой stdClass или объект Joomla\registry\Registry.
@joomlafeed#joomla #php #webdev

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

platonische

  • Давно я тут
  • 523
  • 2 / 1
  • Парусные экспедиции vk.com/tc670
Re: Написание компонента для Joomla 1.6
« Ответ #90 : 13.03.2012, 23:46:18 »
Все-таки про FrontEnd можно чуть подробнее? Не всё понятно.
1. Про вывод форм
Как лучше?
Код
jimport('joomla.application.component.modeladmin') и JModelAdmin
или
Код
jimport( 'joomla.application.component.modelform' ); и JModelForm
первый вариант у меня не заработал. по второму форма вывелась.

2. Как произвести добавление в базу из FrontEnd? В админке понятно там есть table а здесь как? самому запрос писать или есть какие стандарнтые средства?

3. Чем пользоваться вместо кнопок управления из админке в морде? Как создать кнопки сохранить и отмены? Потрошу com_content на эту тему но не выходит каменный цветок.

« Последнее редактирование: 13.03.2012, 23:56:24 от platonische »
*

platonische

  • Давно я тут
  • 523
  • 2 / 1
  • Парусные экспедиции vk.com/tc670
Re: Написание компонента для Joomla 1.6
« Ответ #91 : 15.03.2012, 20:53:12 »
to frisian +1 за контент
to bzzik Thanks и +1 за отзывчивость
Спасибо большое. Вот теперь могу двигаться дальше. С сонфиг файлом я пока погожу, конкретный компонент должен даже от гостя принимать данные. Единственное нужно будет капчу поставить.
*

platonische

  • Давно я тут
  • 523
  • 2 / 1
  • Парусные экспедиции vk.com/tc670
Re: Написание компонента для Joomla 1.6
« Ответ #92 : 15.03.2012, 21:24:48 »
frisian а ты это для FrontEnd писал? Что-то ничего не получается... если сделать так как ты писал то
Код
Fatal error: Call to a member function getKeyName() on a non-object in /var/www/libraries/joomla/application/component/modeladmin.php on line 801 
Такое чувство что это все к админке относится. Видимо надо Как советовал bzzik писать и выкладывать на суд код. Этим и займусь.
*

platonische

  • Давно я тут
  • 523
  • 2 / 1
  • Парусные экспедиции vk.com/tc670
Re: Написание компонента для Joomla 1.6
« Ответ #93 : 17.03.2012, 21:06:11 »
to frisian Мдя...
Сейчас буду разбираться. Форму я написал но по твоему примеру а по helloword там оказывается есть частично редактирование записей через FrontEnd. Вообще кроме http://docs.joomla.org ничего стоящего нет походу. Надежда на форумы только т.е. на вас.

Написал я, как сказал выше, по примеру helloword (updheloworld) http://docs.joomla.org/Developing_a_Model-View-Controller_(MVC)_Component_for_Joomla!2.5_-_Part_18

Собственно вопрос ещё возник: как добавить валидацию на форму FrontEnd. Или по твоему примеру если исполнить и валидация запашет по тому же принципу как в BackEnd?

А твою реализацию пробую...
*

platonische

  • Давно я тут
  • 523
  • 2 / 1
  • Парусные экспедиции vk.com/tc670
Re: Написание компонента для Joomla 1.6
« Ответ #94 : 17.03.2012, 21:41:10 »
Собственно реализую твой код. Вот вывожу всё что делаю, а вы уж будьте добры поправьте.
Вид отвечающий за вывод формы в FrontEnd - form, Имя компонента Kayak, вид редактирования в BackEnd - person.
Создал site/models/form.php
Спойлер
[свернуть]

Скопировал с backend и немного отредактировал site/models/forms/personform.xml
Спойлер
[свернуть]

Создал site/controllers/form.php
Спойлер
[свернуть]

Далее создаю site/views/form/view.html.php чего сюда? я поставил это
Спойлер
[свернуть]

Создал /site/views/form/tmpl/edit.php чего сюда писать незнаю точно... Написал это
Спойлер
[свернуть]

Собственно всё. результат: Форму вижу. При сохранении Edit not permitted

Результат всё-таки есть какой-то. Сейчас навешу еще валидацию из Back End проверю её
*

platonische

  • Давно я тут
  • 523
  • 2 / 1
  • Парусные экспедиции vk.com/tc670
Re: Написание компонента для Joomla 1.6
« Ответ #95 : 18.03.2012, 09:55:56 »
Цитировать
'ВАШ_КОМПОНЕНТ.edit.ВИД_ФОРМЫ.data'
что-то не внимательно я подошел к делу.
Цитировать
можете в ней подрубить заголовки, ключевики ...
Жаргонным языком J! пока не владею ;-) поясни чего это значит.

В целом после исправления результат тотже
*

platonische

  • Давно я тут
  • 523
  • 2 / 1
  • Парусные экспедиции vk.com/tc670
Re: Написание компонента для Joomla 1.6
« Ответ #96 : 18.03.2012, 12:55:19 »
Собственно... Попробую, но мне надо и от гостя принимать данные. Я думал config для этого не нужен... Но я сделаю и отпишусь
*

platonische

  • Давно я тут
  • 523
  • 2 / 1
  • Парусные экспедиции vk.com/tc670
Re: Написание компонента для Joomla 1.6
« Ответ #97 : 18.03.2012, 16:10:05 »
Цитировать
попробуйте все таки создать конфиг:
Результат тотже.

Зашел админом на сайт форма ошибки не выдаёт а переходит после submit на эту же страницу, запись не добавляется...
*

platonische

  • Давно я тут
  • 523
  • 2 / 1
  • Парусные экспедиции vk.com/tc670
Re: Написание компонента для Joomla 1.6
« Ответ #98 : 18.03.2012, 16:48:11 »
И попутный вопрос... после добавления config.xml должны ли в закладке permissions появиться правила? У меня просто вышли группы но без правил... назначать ничего нельзя, там просто нет ничего.
*

platonische

  • Давно я тут
  • 523
  • 2 / 1
  • Парусные экспедиции vk.com/tc670
Re: Написание компонента для Joomla 1.6
« Ответ #99 : 18.03.2012, 19:59:54 »
Ошибка по твоей реализации была в том, что task=form.edit, я исправил на form.save всё заработало.
добавил в XML формы адрес к rules заработала валидация на стороне сервера. Закинул как в BACKEND валидацию на стороне клиента, но она не заработала... Либо каких библиотек не хватает... Но одно точно - надо навесить на кнопки выполнение скриптов вручную, совырну опять com_content там есть в form.edit подобное. Позже отпишу.

Прошу всех написать если я что-то неправильно сделал или неправильно выразился. Сейчас для меня всё важно.
*

platonische

  • Давно я тут
  • 523
  • 2 / 1
  • Парусные экспедиции vk.com/tc670
Re: Написание компонента для Joomla 1.6
« Ответ #100 : 18.03.2012, 23:57:00 »
Код
<field
                name="rules"
                type="rules"
                label="JCONFIG_PERMISSIONS_LABEL"
                class="inputbox"
                validate="rules"
                filter="rules"
                component="com_shop" - тут вставить имя вашего компонента ))
                section="component"/>
это я исправил

Цитировать
это вы ошиблись с таском а не я ) я вроде не писал шаблон )
Собственно ты прав... Ты не писал. Извиняюсь.

Про валидацию...: Опишу своё, вместе с твоими предложениями позже.
Спасибо.
*

b2z

  • Глобальный модератор
  • 7287
  • 778 / 0
  • Разраблю понемногу
Re: Написание компонента для Joomla 1.6
« Ответ #101 : 19.03.2012, 14:38:02 »
Кстати к вопросу о валидации - у меня так и не получилось настроить её на стороне Joomla (сервера). Я имею ввиду валидацию validate-[custom]
*

platonische

  • Давно я тут
  • 523
  • 2 / 1
  • Парусные экспедиции vk.com/tc670
Re: Написание компонента для Joomla 1.6
« Ответ #102 : 19.03.2012, 19:50:12 »
Собственно вот что у меня по валидации вышло.

1. http://docs.joomla.org/Developing_a_Model-View-Controller_%28MVC%29_Component_for_Joomla!2.5_-_Part_11 Отсюда делал для back end и все работате.

2. Для Front End я скопировал форму admin/models/form/anyform.xml в site/.../... вот содержимое моей формы
Спойлер
[свернуть]

в теге <form> путь к правилам валидации со стороны сервера. У меня там только phone
содержимое /admin/models/rules/phone.php
Спойлер
[свернуть]
правило берет цифры + - ( ) и пробелы. Надо дописывать правило но пока оно такое.

Собственно все больше ничего не надо js даже не участвуют
*

platonische

  • Давно я тут
  • 523
  • 2 / 1
  • Парусные экспедиции vk.com/tc670
Re: Написание компонента для Joomla 1.6
« Ответ #103 : 19.03.2012, 19:58:06 »
Валидация на стороне клиента тоже вышла. Основа опять же по ссылке из поста выше на http://docs.joomla.org. Там все сделано для BAckEnd. Что сделал я чтобы запустить это в морде.
в модель добавил
Код
	public function getScript() 
{
return 'administrator/components/com_kayak/models/forms/personform.js';
}

в вью
Код
		$this->script = $this->get('Script');

$document = JFactory::getDocument();
$document->addScript(JURI::root(). $this->script);
$document->addScript(JURI::root(). "/administrator/components/com_kayak"
                                  . "/views/person/submitbutton.js");
Написав код увидел что добавил 2 скрипта в одно место 2 способами... Наука блин...

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

Тут 2 кнопки. На одной навешено js для клиентской части на другой только серверная валидация.

Собственно и всё. Всё пашет.
*

platonische

  • Давно я тут
  • 523
  • 2 / 1
  • Парусные экспедиции vk.com/tc670
Re: Написание компонента для Joomla 1.6
« Ответ #104 : 19.03.2012, 21:25:47 »
Вопрос такой появился
есть форма см выше
в ней поле
Код
	<field
name="way_id"
type="kayakway"
label="COM_KAYAK_PERSON_WAY_LABEL"
description="COM_KAYAK_PERSON_WAY_DESC"
class="inputbox"
size="1"
required="true"
default="">
</field>

Приходит на страницу лайаута $id как мне его в этот лист по умолчанию поставить? Можно ли как-то в форме XML написать это или надо уже в лайауте ковырять, а возможно и пересобирать select.genericlist?
*

platonische

  • Давно я тут
  • 523
  • 2 / 1
  • Парусные экспедиции vk.com/tc670
Re: Написание компонента для Joomla 1.6
« Ответ #105 : 19.03.2012, 22:50:20 »
Получить список с динамически измененным полем default
$this->form->getInput('name', null, $default);
*

b2z

  • Глобальный модератор
  • 7287
  • 778 / 0
  • Разраблю понемногу
Re: Написание компонента для Joomla 1.6
« Ответ #106 : 20.03.2012, 11:03:52 »
код бы увидеть как пробовали её сделать! )
Да, выложу, что я пытаюсь сделать чуток попожже.
*

platonische

  • Давно я тут
  • 523
  • 2 / 1
  • Парусные экспедиции vk.com/tc670
Re: Написание компонента для Joomla 1.6
« Ответ #107 : 20.03.2012, 22:23:50 »
Да, выложу, что я пытаюсь сделать чуток попожже.
Я выше привел ссылку на docs там всё коротко и ясно про валидацию, код весь присутствует... Или вы чего другое делаете? Если другое то показывайте... Посмотрим...

Вопрос: Как переопределить вывод при добавление записи?
Есть: Item successfully submitted.
Хочу: Thank you for your add.
*

b2z

  • Глобальный модератор
  • 7287
  • 778 / 0
  • Разраблю понемногу
Re: Написание компонента для Joomla 1.6
« Ответ #108 : 21.03.2012, 11:35:17 »
Я выше привел ссылку на docs там всё коротко и ясно про валидацию, код весь присутствует... Или вы чего другое делаете? Если другое то показывайте... Посмотрим...
Да я давно делал, надо будет ещё раз все внимательно почитать и проверить. Может и заработает =)

Вопрос: Как переопределить вывод при добавление записи?
Есть: Item successfully submitted.
Хочу: Thank you for your add.
Ну за это обчыно отвечает контроллер. Типа если save ok, то редирект + показ сообщения.
*

platonische

  • Давно я тут
  • 523
  • 2 / 1
  • Парусные экспедиции vk.com/tc670
Re: Написание компонента для Joomla 1.6
« Ответ #109 : 21.03.2012, 20:22:11 »
через $this->setMessage(''); не получилось
видимо не хватает знаний.
я сделал так:
Код
	public function Save(){
$app = JFactory::getApplication();
$app->enqueueMessage(JText::_('COM_KAYAK_YOUR_ORDER_WAS_ADDED'));
parent::save();
}
в контроллере запись добавилась
*

b2z

  • Глобальный модератор
  • 7287
  • 778 / 0
  • Разраблю понемногу
Re: Написание компонента для Joomla 1.6
« Ответ #110 : 22.03.2012, 00:10:20 »
Как это не получилось? Быть такого не может, код же проще простого:

Код: php
if ( parent::save() ) {
$this->setMessage(JText::_('COM_KAYAK_YOUR_ORDER_WAS_ADDED'));
} else {
$this->setMessage(JText::_('COM_KAYAK_ERROR_SAVE_FAILED'), 'error');
}
*

Extalionez

  • Осваиваюсь на форуме
  • 36
  • 5 / 0
Re: Написание компонента для Joomla 1.6
« Ответ #111 : 23.03.2012, 21:23:59 »
Влом всё читать было, но может кто поможет?
Тут http://docs.joomla.org/Developing_a_Model-View-Controller_%28MVC%29_Component_for_Joomla!2.5_-_Part_12 написано как добавить категорию к материалу, но почему-то разработчики считают что материал может содержать только одну категорию. Возник естественный вопрос - 'как?', ответ на который пришёл довольно быстро -
Правилный - вместо catid поля сделать таблицу с двумя полами id и catid (many-to-many). В этом случае будет труднее сделать сохранение выбранных категорий.
Вот уж действительно я не смог понять как это реализовать.Не поможете? Желательно чтобы было как например в zoo

Желательно чтобы это решение было для Joomla 2.5
« Последнее редактирование: 24.03.2012, 19:05:32 от Extalionez »
*

platonische

  • Давно я тут
  • 523
  • 2 / 1
  • Парусные экспедиции vk.com/tc670
Re: Написание компонента для Joomla 1.6
« Ответ #112 : 24.03.2012, 19:55:07 »
ещё не делал такого, но предстоит делать (только не для статей, а для другого компонента)
Для того, чтобы заработало надо:
1. Сохранить категории в виде id1, id2, id3 в поле cat_id (не знаю есть ли стандартное решение в формах)
2. При выводе статей научить Joomla разбирать cat_id по-новому.

По первому пункту скорее положительный ответ. (видел подобное в компоненте раздачи прав пользователям, когда несколько групп ему назначаешь - смотри)

Также можно не id1, id2, id3 хранить в поле, а serialize($array)  на этот вопрос может гуру ответят какой метод предпочтительнее и функциональнее.
*

Extalionez

  • Осваиваюсь на форуме
  • 36
  • 5 / 0
Re: Написание компонента для Joomla 1.6
« Ответ #113 : 24.03.2012, 22:32:56 »
ладно - спрошу тоже самое что мне надо, но несколько иначе...
как изменить этот http://docs.joomla.org/Developing_a_Model-View-Controller_%28MVC%29_Component_for_Joomla!2.5_-_Part_18 пример, чтобы на административной странице редактирования 'материала' отображались и сохранялись данные ещё и из другой таблицы, а не только #__helloworld. Например из #__helloworld_cat.
А вообще это должно примерно так выглядеть
id  |  article_ad | cat_id | ordering
----------------------------------
1   |   2           |  8       |    1
----------------------------------
2   |   2           |  12      |    1
----------------------------------
3   |   2           |  45      |    1

Я думаю что даже не обязательно использовать категории Joomla, а можно и свою таблицу с категориями создать

Проблема в том, что надо как-то получать названия категорий из одной базы(описания категорий), формировать список уже выбранных категорий из другой базы(чуть выше), и отображать это на странице редактирования материала, которая получает данные из третьей базы(название материала и т.п.). Так ещё потом и сохранить это по-умному.
Так вот... может кто-нить тут писануть велосипедик, способный провернуть это. Думаю это многим будет полезно.
« Последнее редактирование: 24.03.2012, 22:45:38 от Extalionez »
*

platonische

  • Давно я тут
  • 523
  • 2 / 1
  • Парусные экспедиции vk.com/tc670
Re: Написание компонента для Joomla 1.6
« Ответ #114 : 25.03.2012, 12:54:31 »
Я буквально недавно стал изучать писанину под 1.6 (правда был опыт под 1.0 и 1.5).
Все что вы спрашивали решается созданием собственных полей для формы, именно ваши новые типы полей будут лазить по другим таблицам и брать из них id и вставлять значение в например cat_id

Вот мой пример:
вот оно поле в формах
Код
	<field
name="way_id"
type="kayakway"
label="COM_KAYAK_PERSON_WAY_LABEL"
description="COM_KAYAK_PERSON_WAY_DESC"
class="inputbox"
size="1"
required="true"
default="">
</field>
вот оно поле kayakway.php из папки /models/fields:
Код
<?php
defined('_JEXEC') or die;
jimport('joomla.form.helper');
JFormHelper::loadFieldClass('list');
 
/**
 * Kayak Way Form Field class for the Kayak component
 */
class JFormFieldKayakWay extends JFormFieldList
{
/**
* The field type.
*
* @var string
*/
protected $type = 'KayakWay';
 
/**
* Method to get a list of options for a list input.
*
* @return array An array of JHtml options.
*/
protected function getOptions()
{
$db = JFactory::getDBO();
$query = $db->getQuery(true);
$query->select('id, way, count_day, start_date');
$query->from('#__kayak_way');
$date_now = date("Y-m-d");
$query->where('published = 1 and start_date > \''.$date_now.'\'');
$query->order('start_date');
$db->setQuery((string)$query);
$messages = $db->loadObjectList();
$options = array();
//$options[] = JHtml::_('select.option', 0, 'COM_KAYAK_KAYAK_SELECT_WAY');
if ($messages)
{
foreach($messages as $message)
{
$options[] = JHtml::_('select.option', $message->id, $message->way
. ' ('.$message->count_day. ' : '
.$message->start_date .')'
);

}
}
$options = array_merge(parent::getOptions(), $options);
return $options;
}
}

Цитировать
Нельзя! как вы собираетесь выбирать все материалы текущей категории?
Спасибо! Получил ответ. А по типу id1, id2, id3 в J! стандартное решение не подскажите?
*

platonische

  • Давно я тут
  • 523
  • 2 / 1
  • Парусные экспедиции vk.com/tc670
Re: Написание компонента для Joomla 1.6
« Ответ #115 : 25.03.2012, 12:57:41 »
А когда надо названия подтянуть из другой таблицы это делается в моделе в самом запросе sql через join
*

Extalionez

  • Осваиваюсь на форуме
  • 36
  • 5 / 0
Re: Написание компонента для Joomla 1.6
« Ответ #116 : 25.03.2012, 13:53:52 »
А когда надо названия подтянуть из другой таблицы это делается в моделе в самом запросе sql через join
У меня голова спеклась пока я пытался это через join провернуть. Не подскажите как это сделать? Буду вечно благодарен.
*

platonische

  • Давно я тут
  • 523
  • 2 / 1
  • Парусные экспедиции vk.com/tc670
Re: Написание компонента для Joomla 1.6
« Ответ #117 : 25.03.2012, 16:28:00 »
Цитата: Extalionez
Буду вечно благодарен.
Вот пример моего кода из модели, где подобным образом берется название маршрута по ИДишнику маршрута
Код
protected function getListQuery()
{
// Create a new query object.
$db = JFactory::getDBO();
$query = $db->getQuery(true);
// Select some fields
$query->select($this->getState(
'list.select',
'a.*, '.
'sum(b.seats) AS counts, '.
'b.way_id')
);
$query->from('`#__kayak_way` AS a');
$query->leftJoin('`#__kayak_person` AS b on b.way_id = a.id and b.published = 1');
$query->group('a.id');
$orderCol = $this->state->get('list.ordering');
$orderDirn = $this->state->get('list.direction');
$query->order($db->getEscaped($orderCol.' '.$orderDirn));
return $query;
}
Запрос ещё и суммирует поле которое мне надо - Вам это можно выкинуть
*

platonische

  • Давно я тут
  • 523
  • 2 / 1
  • Парусные экспедиции vk.com/tc670
Re: Написание компонента для Joomla 1.6
« Ответ #118 : 30.03.2012, 22:06:49 »
Продолжая тему...

Понадобилось мне ввести "сложный" параметр в компонент, и я не знаю как его реализовать. Подскажите направление. Из http://docs.joomla.org/Developing_a_Model-View-Controller_%28MVC%29_Component_for_Joomla!2.5_-_Part_13 понятно как делать параметры вообще. не совсем понятен их вывод и формирование а именно
Код
// Load the JSON string
$params = new JRegistry;
                                // loadJSON is @deprecated    12.1  Use loadString passing JSON as the format instead.
//$params->loadString($this->item->params, 'JSON');
                                $params->loadJSON($this->msg->params);
$this->msg->params = $params;
 
// Merge global params with item params
$params = clone $this->getState('params');
$params->merge($this->msg->params);
$this->msg->params = $params;

Собственно сделать мне надо вот что:
Есть 2 параметра 1-номер телефона, 2-какой телефон использовать?
Суть: компонент занимается сбором заказов на тур. Есть телефон главного менеджера, каждому маршруту можно (параметром) изменить телефон менеджера. Телефон нужен для уведомления менеджера по СМС о поступлении заказа на "ЕГО" маршрут. В глобале также должен отрабатываться вариант отключения частных случаев и использование только глобального.
Собственно вот они параметры... Как их завязать?
*

platonische

  • Давно я тут
  • 523
  • 2 / 1
  • Парусные экспедиции vk.com/tc670
Re: Написание компонента для Joomla 1.6
« Ответ #119 : 31.03.2012, 00:20:02 »
про php array_merge() почитал, думаю у Joomla примерно тоже (если есть отклонения то возможно пока не для меня)
Как работает понял: Берутся глобальные параметры и на них накатываются индивидуальные, всё это по соответствующим ключам в массиве.
Примерно как выходить из положения примерно понятно: либо логику пересматривать, либо ковыряться в каждых параметрах напрямую и формировать из них по моим правилам новые списки параметров... ЖУТЬ...
Но
Код
$params = new JRegistry;
                                // loadJSON is @deprecated    12.1  Use loadString passing JSON as the format instead.
//$params->loadString($this->item->params, 'JSON');
                                $params->loadJSON($this->msg->params);
Меня смущает вот это... Как проверить что данные пришли? Такое чувство что их нет.

и ещё вопрос
в моделе есть вот такое
Код
	public function getTable( $type = 'Person', $prefix = 'KayakTable', $config = array() )
{
return JTable::getInstance( $type, $prefix, $config );
}
Все понятно. Берем
Код
$table = $this->getTable();
$table->load($id);
Получили данные строки в $table

Можно ли вызвать другой TABLE вот так?
Код
$table = $this->getTable($type = "Kayak");

Ну и попутно еще... Почему в моделе не работает вот это?
Код
public function save($data){
if(parent::save($data)){

$table = $this->getTable($type = "Kayak");
$table->load($data['way_id']);

$params = new JRegistry;
//$params->loadString($this->item->params, 'JSON');
                $params->loadJSON($table->params);
$p = $params;
$params = clone $this->getState('params');
$params->merge($p);
$phone = $params->get('way_manager_phone');

$message = $data['phone'].", ".$data['name'].", ".$data['seats']." мест, на ".$data['start_date'];

$this->sendSMS($phone = $phone, $message = $message);


return true;
}
return false;
}
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Документация по созданию модуля для Joomla 2.5 и Joomla 3.x

Автор b2z

Ответов: 1
Просмотров: 2284
Последний ответ 29.07.2015, 09:40:30
от b2z
Создание компонента MVC

Автор borodatych

Ответов: 36
Просмотров: 4476
Последний ответ 13.04.2015, 08:17:30
от flyingspook
Подскажите как сделать русификацию компонента)

Автор stardel

Ответов: 4
Просмотров: 6943
Последний ответ 08.04.2015, 09:08:00
от oxotnikkz
JPluginHelper::importPlugin('content') в Joomla 1.7

Автор Dutch

Ответов: 2
Просмотров: 4750
Последний ответ 30.03.2015, 14:22:51
от twins717
Документация по созданию компонента для Joomla 2.5

Автор Sulpher

Ответов: 74
Просмотров: 57240
Последний ответ 17.11.2014, 13:43:07
от limon142