Jump to content


Photo
- - - - -

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


Best Answer SmetDenis , 01 December 2015 - 12:14

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


  • This topic is locked This topic is locked
4 replies to this topic

#1 fiction13

fiction13
  • JBZoo User (rus)
  • User rate: 272.5
  • posts: 604
  • topics: 23

Posted 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
  • JBZoo User (rus)
  • User rate: 95.7
  • posts: 5060
  • topics: 31

Posted 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 можно только после сохранения материала.

 

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


Edited by Cheren-dow, 30 November 2015 - 15:42.

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

#3 fiction13

fiction13
  • Topic Starter
  • JBZoo User (rus)
  • User rate: 272.5
  • posts: 604
  • topics: 23

Posted 01 December 2015 - 11:33

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

 

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


  • 0

#4 SmetDenis

SmetDenis
  • Administrators
  • User rate: 139.4
  • posts: 16232
  • topics: 200

Posted 01 December 2015 - 12:14   Best Answer

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



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


#5 fiction13

fiction13
  • Topic Starter
  • JBZoo User (rus)
  • User rate: 272.5
  • posts: 604
  • topics: 23

Posted 01 December 2015 - 12:34

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


  • 1




Click to return to top of page in style!