У меня есть простой элемент "текстовое поле", есть и его ID.
Как мне подставить данные в этот элемент автоматически, например, ID материала ($item->id), чтоб при создании нового материала это поле заполнялось самостоятельно?
Отправлено 10 February 2016 - 22:32
У меня есть простой элемент "текстовое поле", есть и его ID.
Как мне подставить данные в этот элемент автоматически, например, ID материала ($item->id), чтоб при создании нового материала это поле заполнялось самостоятельно?
Отправлено 11 February 2016 - 00:21
На сколько я понимаю, то ID материала не существует до тех пор, пока вы его не создали. То есть придется подставлять не существующее значение..
Выход вижу только в написании простенького элемента, который будет может быть даже не редактируемым, но будет подхватывать ID материала после его создания... но при этом его опять же - надо будет пересохранять что ли...
Сообщение отредактировал Ёшкин Кот: 11 February 2016 - 00:22
Отправлено 11 February 2016 - 11:24
Вопрос не с том, как именно ID подставить, а в том, как подставить значение внутрь элемента текста?
Отправлено 11 February 2016 - 12:01
Если это только в админке нужно
то проще всего яваскриптом сделать
если нужно чтобы при импорте и подаче с фронта - тогда только плагин
мне тоже сильно нужно, никак не могу заставить работать плагин
http://forum.jbzoo.c...ateriala-event/
Отправлено 11 February 2016 - 12:41
Вопрос не с том, как именно ID подставить, а в том, как подставить значение внутрь элемента текста?
Я делал через API
В общем у дискуса есть ограничение по API, думал обходить его записью ID (ветки комментариев) в поле, но потом отказался - т.к. по API все равно проседал, но код 100% рабочий.
$element = $item->getElement('4b120e6e-a0b0-4373-8601-4e36b521da56'); // element id получаем так $linktodisqussiteend = 'b10e17026e364442aef61f1d7d9e2b0e'; //тут например Ваш ID статьи $data = $element->data(); // получаем данные //echo "<pre>"; //print_r($data); //echo "</pre>"; $element->bindData(array(array('value' => $linktodisqussiteend))); $this->app->table->item->save($item);
Все это советую обернуть в проверку на empty в поле.
ну как-то так... тестово.
$element = $item->getElement('cb86f1fe-c933-439b-ac40-7730d8b749b5'); $data = $element->data(); // получаем данные if (empty($data[0]['value'])) { $element->bindData(array(array('value' => $linktodisqussiteend))); $this->app->table->item->save($item); } else { }
JBZoo чат / Разработка Joomla расширений и т.д.! / Рекомендую хостинг Joomla
Joomla расширение для Яндекс Турбо и Яндекс Дзен - помощь в настройке
Отправлено 11 February 2016 - 13:37
Спасибо, сейчас попробую
Отправлено 11 February 2016 - 14:32
Вариант с php не подходит, т.к. подразумевает динамическое подставление значения при рендере шаблона, а мне нужно в админке во время создания заказа явно указывать значение в поле.
На JS я сделал скрипт и все отлично работает, поле индексируется и по нему можно искать, осталось придумать как 13-ти значное число миллисекунд преобразовать во что-то более "читаемое"
Отправлено 11 February 2016 - 19:17
Приложил в этом топике http://forum.jbzoo.c...ateriala-event/ рабочий вариант плагина на PHP.
Он меняет имя материала при сохранении.
Посмотрите пожалуйста, возможно подойдет.
— Есть два типа людей: Кто еще не делает бекапы и кто уже делает бекапы.
Отправлено 11 February 2016 - 20:15
Fuck yeah! Получилось. Спасибо большое alexmixaylov за плагин и Вам, Денис, за доработку.
Мой ленивый клиент, который в упор отказывался вписывать артикул вручную сейчас доволен.
Теперь у меня после сохранения материала в текстовое поле элемента "text" сохраняется ID материала. Это текстовое поле я использую как элемент поиска и теперь у меня живой поиск, который AJAX Live Search умеет искать по названию и артикулу в одном поле и показывать ништяковые "подсказки" с картинкой, названием, ценой и артикулом.