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


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

Обработка плагинами input возможно?


Лучший Ответ CB9TOIIIA , 05 September 2016 - 13:45

В общем пашет 100%

			public function hasValue($params = array()) {
				$value = $this->get('value');
				return !empty($value);
			}

			public function render($params = array()) {
				$value = $this->get('value');
				$result = $this->app->zoo->triggerContentPlugins($value, array('item_id' => $this->_item->id), 'com_zoo.element.textarea');
				return $result;
			}

Magic

Перейти к сообщению


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

#1 CB9TOIIIA

CB9TOIIIA

Отправлено 05 September 2016 - 08:40

Всем привет! Пробую создать элемент опроса:
 
Есть плагин и конструкция:

{advpoll id="12" view_result="0" position="center"}

Написал элемент - на основе text:

	protected function _hasValue($params = array()) {
		dump($this->get('value'),0,'value');
		dump($this->_item->id,0,'$this->_item->id');
		echo $this->app->zoo->triggerContentPlugins($this->get('value'), array('item_id' => $this->_item->id), 'com_zoo.element.text');
	}

0_a750c_4dcf769c_orig.png
 
P.S. Плагин код:
 
 

Spoiler

 
Но не выводит. Как можно пофиксить?


Сообщение отредактировал CB9TOIIIA: 05 September 2016 - 08:42

  • 0

#2 fiction13

fiction13

Отправлено 05 September 2016 - 08:56

Я ничего не понял, но на листинге кода функция _hasValue. Так и задумано?


  • 1

#3 CB9TOIIIA

CB9TOIIIA

Отправлено 05 September 2016 - 08:58

Я ничего не понял, но на листинге кода функция _hasValue. Так и задумано?

 

В общем есть опрос - есть плагин к нему - по конструкции вида выше вставляет опрос. Хочу сделать удобное поле (элемент).

 

Да - думаю так задумано, а что нельзя так? или надо только render исп.?


  • 0

#4 fiction13

fiction13

Отправлено 05 September 2016 - 09:01

Да - думаю так задумано, а что нельзя так? или надо только render исп.?

Ну как сказать, просто функция _hasValue несет только 1 назначение: элемент показывается, если она возвращает true и не показывается, если она возвращает false.


  • 2

#5 CB9TOIIIA

CB9TOIIIA

Отправлено 05 September 2016 - 09:36

Ну как сказать, просто функция _hasValue несет только 1 назначение: элемент показывается, если она возвращает true и не показывается, если она возвращает false.

 

Например так:

	public function hasValue($params = array()) {
		if (!empty($this->get('value'))) {
			return true;
		}
		else {
			return false;
		}
	}

	public function render($params = array()) {

		$params  = $this->app->data->create($params);
		$value = $this->get('value');
		$result = $this->app->zoo->triggerContentPlugins($value, array('item_id' => $this->_item->id), 'com_zoo.element.');
		dump($result,0,'$result');
		return $this->app->element->applySeparators($params->get('separated_by'), $value);

	}

Тоже что-то не пашет:

 

0_a750d_4c1991a_orig.png

  • 0

#6 MOKEV

MOKEV

Отправлено 05 September 2016 - 09:52

А может так:

	public function hasValue($params = array()) {
                $value = $this->get('value');
		return !empty($value);
	}

  • 0

#7 CB9TOIIIA

CB9TOIIIA

Отправлено 05 September 2016 - 09:55

 

А может так:

	public function hasValue($params = array()) {
                $value = $this->get('value');
		return !empty($value);
	}

 

не

	public function hasValue($params = array()) {
		$value = $this->get('value');
		return !empty($value);
	}

	public function render($params = array()) {

		$value = $this->get('value');
		$result = $this->app->zoo->triggerContentPlugins($value, array('item_id' => $this->_item->id), 'com_zoo.element.');
		dump($value,0,'$value');
		dump($result,0,'$result');

	}
0_a750e_fece3fa9_orig.png

  • 0

#8 CB9TOIIIA

CB9TOIIIA

Отправлено 05 September 2016 - 10:01

	public function hasValue($params = array()) {
		$value = $this->get('value');
		$result = $this->app->zoo->triggerContentPlugins($value, array('item_id' => $this->_item->id), 'com_zoo.element.');
		if (!empty($result)) {
			return $result;
		}
		else {
			echo "Что-то не так...";
		}
	}

0_a750f_5f4036f3_orig.png

  • 0

#9 SmetDenis

SmetDenis

Отправлено 05 September 2016 - 10:14

Верно, это нужно делать в render();

 

А элемент вообще запускает onContentPrepare и туда передаются переменные, текст элемента? Верно все обрабатывает?

По ощущениям, что дело именно в нем, а не элементе.

 

Если сделать так, то вернется ли результат в элемент?

function onContentPrepare($context, &$article, &$params, $page = 0) {
     return '1111';
}

  • 0
JBZoo v4.0 и новый чудный мир Open Source GPL
Отключайте проверку лицензий как можно скорее!



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


#10 CB9TOIIIA

CB9TOIIIA

Отправлено 05 September 2016 - 10:23

Вообще если использовать textarea - там галка обрабатывать плагинами - все пашет на ура.

 

Просто думаю слишком жирно для вставки id опроса - целую textarea.

	function onContentPrepare($context, &$article, &$params, $page = 0) {
		return '1111';
}

ничего


  • 0




Click to return to top of page in style!