Форум русской поддержки Joomla!® CMS
03.12.2016, 08:41:58 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
   
   Начало   Поиск Joomla 3.0 FAQ Joomla 2.5 FAQ Joomla 1.5 FAQ Правила форума Новости Joomla Реклама Войти Регистрация Помощь  
Страниц: [1]   Вниз
  Добавить закладку  |  Печать  
Автор

Не работает Custom element

 (Прочитано 777 раз)
0 Пользователей и 1 Гость смотрят эту тему.
olejan
Захожу иногда
**

Репутация: +0/-0
Offline Offline

Сообщений: 24


« : 20.04.2014, 18:52:09 »

Приветствую!

Использую компонент Zoo для каталога на сайте. Создал свой элемент используя код (нашел в интернете)

Файл - price.php

Код:
<?php
// no direct access
defined('_JEXEC') or die('Restricted access');
// register ElementRepeatable class
App::getInstance('zoo')->loader->register('ElementRepeatable', 'elements:repeatable/repeatable.php');
class ElementPrice extends ElementRepeatable implements iRepeatSubmittable {
     
    protected function _hasValue($params = array()) {
        $value = $this->get('value');
        return $this->_containsEmail($value);
    }
    public function getText() {
        $text = $this->get('value', '');
        return empty($text)? $this->get('value', '') : $text;
    }
     
    protected function _edit(){
        return $this->_editForm();
    }
    public function _renderSubmission($params = array()) {
        return $this->_editForm($params->get('trusted_mode'));
    }
    protected function _editForm($trusted_mode = true) {
        if ($layout = $this->getLayout('edit.php')) {
            return $this->renderLayout($layout,
                array('trusted_mode' => $trusted_mode
                )
            );
        }
    }
    public function _validateSubmission($value, $params) {
        $values    = $value;
        $validator = $this->app->validator->create('string', array('required' => false));
        $value      = $validator->clean($values->get('value'));
        $country   = $validator->clean($values->get('country'));
        $state      = $validator->clean($values->get('state'));
        return compact( 'value', 'country', 'state');
    }
}

Файл edit.php

Код:
<?php
// no direct access
defined('_JEXEC') or die('Restricted access');
?>
<div>
    <?php echo $this->app->html->_('control.text', $this->getControlName('value'), $this->get('value'), 'size="60" title="'.JText::_('value').'" placeholder="'.JText::_('Size').'"'); ?>       
             
    <?php echo $this->app->html->_('control.text', $this->getControlName('country'), $this->get('country'), 'size="60" title="'.JText::_('country').'" placeholder="'.JText::_('Comment').'"'); ?>
             
    <?php echo $this->app->html->_('control.text', $this->getControlName('state'), $this->get('state'), 'size="60" title="'.JText::_('state').'" placeholder="'.JText::_('Price').'"'); ?>
         
</div>

Но при таком виде вообще не работает. А если убрать из файла price.php return $this->_containsEmail($value); и поставить return compact( 'value', 'country', 'state'); то выводить первые значения элементов, а остальные два нет. Я не особо силен в коде, прошу если кто может подсказать решение как исправить, буду очень благодарен)
Записан
ameli90
Осваиваюсь на форуме
***

Репутация: +1/-0
Offline Offline

Сообщений: 34


« Ответ #1 : 07.09.2015, 00:43:29 »

Для начала: _containsEmail() в классе не реализован... собственно потому и "не работает", ошибки включите, чтобы видеть где FatalError.
Записан
Страниц: [1]   Вверх
  Добавить закладку  |  Печать  
 
Перейти в:  

Powered by SMF 1.1.21 | SMF © 2006, Simple Machines

Joomlaforum.ru is not affiliated with or endorsed by the Joomla! Project or Open Source Matters.
The Joomla! name and logo is used under a limited license granted by Open Source Matters
the trademark holder in the United States and other countries.

LiveInternet