Перейти к содержимому


Фотография
- - - - -

Ajax в элементе при подаче


Лучший Ответ SmetDenis , 01 December 2015 - 12:14

Похоже что иначе не получится.
Из id создается объект материала, который потом создает элемент, который что-то выполняет.
"анонимный" элемент без материла создать штатными средствами не получится и скорее всего этот чревато ошибками выполнения этого элемента. + все выполненное в нем негде не сохранится. Перейти к сообщению


  • Закрытая тема Тема закрыта
Сообщений в теме: 4

#1 fiction13

fiction13

Отправлено 29 November 2015 - 19:56

Добрый день.
 
Возможно ли при подаче выполнить ajax запрос штатными средствами (без POST обращения к другому файлу)?
 
Объясню подробнее.
 
В элементе функция, которая выполняется по ajax запросу. Ссылку для ajax запроса получаем вот так
$link = $this->app->link(array(
    'task' => 'callelement',
    'format' => 'raw',
    'item_id' => $this->_item->id,
    'element' => $this->identifier
), false);
Но при подаче у нас нет еще итема, соответственно нет Item Id, соответственно по ссылке - 404 ошибка (по коду функции callelement все так и есть). Может есть какие-то обходные пути?
 
Понимаю, что вопрос довольно специфичный, но это поможет мне переработать некоторые элементы и опубликовать их в маркетплейсе.
  • 0

#2 Cheren-dow

Cheren-dow

Отправлено 30 November 2015 - 15:41

Может есть какие-то обходные пути?

Попробуйте воспользоваться системными событиями  Zoo. Наглядный пример можно увидеть в элементе категории

\media\zoo\elements\itemcategory\itemcategory.php 

в методе validateSubmission вызывается событие после сохранения материала

$this->app->event->dispatcher->connect('submission:saved', array($this, 'aftersubmissionsave')); 

где уже вы сможете получить id материала. Возможно вам придется переписывать логику работы вашего элемента, но получить id можно только после сохранения материала.

 

Речь, случайно идет не о загрузки изображений? Может быть стоит их загружать в какую ту папку,а после сохранения, в событие переименовать и перенести в нужное место?


Сообщение отредактировал Cheren-dow: 30 November 2015 - 15:42

  • 1
Изображение
 

#3 fiction13

fiction13

Отправлено 01 December 2015 - 11:33

Про триггеры я совершенно забыл, спасибо, это решит другую мою проблему. Но вопрос на самом деле был не об этом.

 

Вопрос был про ajax при подаче. Если более нет предположений, как это сделать без обращения к стороннему файлу, тогда можете закрыть тему.


  • 0

#4 SmetDenis

SmetDenis

Отправлено 01 December 2015 - 12:14   Лучший Ответ

Похоже что иначе не получится.
Из id создается объект материала, который потом создает элемент, который что-то выполняет.
"анонимный" элемент без материла создать штатными средствами не получится и скорее всего этот чревато ошибками выполнения этого элемента. + все выполненное в нем негде не сохранится.
  • 0
JBZoo v4.0 и новый чудный мир Open Source GPL
Отключайте проверку лицензий как можно скорее!



— Есть два типа людей: Кто еще не делает бекапы и кто уже делает бекапы.


#5 fiction13

fiction13

Отправлено 01 December 2015 - 12:34

Благодарю за ответ. Значит я мыслю в верном направлении. Спасибо.


  • 1




Click to return to top of page in style!