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


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

Как создать свой элемент?


Лучший Ответ Cheren-dow , 12 January 2014 - 12:40

Самый хороший способ по моему мнению это взять самый простой элемент от ZOO на пример "текст" и смотря на него начать переписывать его. Просматривая каждый метод что и как устроено. А потом идти все дальше и дальше - начать разбираться с шаблонами создавать какие то параметры. Ну и т.д. Сам так начал разбираться в устройстве элементов.

 

Сделал папку /сайт/www/media/zoo/applications/jbuniversal/elements/jbmyvideo в и 2а файла: jbmyvideo.xml и jbmyvideo.php

Зачем начитать создавать что то если не разбираетесь в устройстве создания? Начните с меньшего - то что написал выше. А иначе вопросов будет только больше при создании. 

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


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

#1 runyugin

runyugin

Отправлено 12 January 2014 - 10:48

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


  • 0

#2 Sliapy

Sliapy

Отправлено 12 January 2014 - 11:19

http://www.yootheme....-custom-element


  • 0
[color=#aa0000]Не забывайте нажимать кнопку "Вопрос Решён" под сообщением, которое решило Вашу проблему.[/color]

#3 runyugin

runyugin

Отправлено 12 January 2014 - 12:32

Сделал папку /сайт/www/media/zoo/applications/jbuniversal/elements/jbmyvideo в и 2а файла: jbmyvideo.xml и jbmyvideo.php

 

в jbmyvideo.xml

<?xml version="1.0" encoding="utf-8"?>

<element type="jbmyvideo" group="JBZoo">
    <name>JBZoo My Video</name>
    <author>I am</author>
    <creationDate>Janvary 2014</creationDate>
    <copyright>FUCK OFF</copyright>
    <authorEmail>runyugin@mail.ru</authorEmail>
    <authorUrl>http://www.johndoe.com</authorUrl>
    <version>1.0.0</version>
    <description>HTML address fields</description>
    <params>
        <param name="default" type="text" default="" label="Default" description="" />
    </params>
    <params group="render">
        <param name="separated_by" type="zoolist" default="Space" label="Separated by" description="CHOOSE_SEPARATOR_REPEATED_ELEMENTS">
            <option name="Space"><![CDATA[separator=[ ]]]></option>
            <option name="Comma"><![CDATA[separator=[, ]]]></option>
            <option name="Hyphen"><![CDATA[separator=[ - ]]]></option>
            <option name="Pipe"><![CDATA[separator=[ | ]]]></option>
            <option name="Break"><![CDATA[separator=[<br />]]]></option>
            <option name="Span"><![CDATA[tag=[<span>%s</span>]]]></option>
            <option name="Paragraph"><![CDATA[tag=[<p>%s</p>]]]></option>
            <option name="Div"><![CDATA[tag=[<div>%s</div>]]]></option>
            <option name="List Item"><![CDATA[tag=[<li>%s</li>]]]></option>
            <option name="Unordered List"><![CDATA[tag=[<li>%s</li>] enclosing_tag=[<ul>%s</ul>]]]></option>
            <option name="Ordered List"><![CDATA[tag=[<li>%s</li>] enclosing_tag=[<ol>%s</ol>]]]></option>
            <option name="Warp Item"><![CDATA[tag=[<article class="item">%s</article>]]]></option>
            <option name="Blank"><![CDATA[tag=[%s]]]></option>
            <option name="UIkit Block"><![CDATA[tag=[<div class="uk-margin">%s</div>]]]></option>
            <option name="UIkit Article"><![CDATA[tag=[<article class="uk-article">%s</article>]]]></option>
            <option name="UIkit List"><![CDATA[tag=[<li>%s</li>] enclosing_tag=[<ul class="uk-list">%s</ul>]]]></option>
            <option name="UIkit List Line"><![CDATA[tag=[<li>%s</li>] enclosing_tag=[<ul class="uk-list uk-list-line">%s</ul>]]]></option>
        </param>
    </params>
</element>

jbmyvideo.php

<?php
/**
* @package   com_zoo
* @author    YOOtheme http://www.yootheme.com
* @copyright Copyright (C) YOOtheme GmbH
* @license   http://www.gnu.org/licenses/gpl.html GNU/GPL
*/

// no direct access
defined('_JEXEC') or die('Restricted access');


/*
   Class: ElementText
       The text element class
*/
class ElementMyVideo extends ElementRepeatable implements iRepeatSubmittable {

    /*
        Function: _hasValue
            Checks if the repeatables element's value is set.

       Parameters:
            $params - render parameter

        Returns:
            Boolean - true, on success
    */
    protected function _hasValue($params = array()) {
        $value = $this->get('value', $this->config->get('default'));
        return !empty($value) || $value === '0';
    }

    /*
        Function: _getSearchData
            Get repeatable elements search data.

        Returns:
            String - Search data
    */
    protected function _getSearchData() {
        return $this->get('value', $this->config->get('default'));
    }

    
    /*
       Function: _edit
           Renders the repeatable edit form field.

       Returns:
           String - html
    */
    protected function _edit() {
        return $this->app->html->_('control.text', $this->getControlName('value'), $this->get('value', $this->config->get('default')), 'size="60" maxlength="255"');
    }


    /*
        Function: _renderSubmission
            Renders the element in submission.

       Parameters:
            $params - AppData submission parameters

        Returns:
            String - html
    */
    public function _renderSubmission($params = array()) {
        return $this->_edit();
    }

}

В редакторе полей тишина... неотобразился


  • 0

#4 Cheren-dow

Cheren-dow

Отправлено 12 January 2014 - 12:40   Лучший Ответ

Самый хороший способ по моему мнению это взять самый простой элемент от ZOO на пример "текст" и смотря на него начать переписывать его. Просматривая каждый метод что и как устроено. А потом идти все дальше и дальше - начать разбираться с шаблонами создавать какие то параметры. Ну и т.д. Сам так начал разбираться в устройстве элементов.

 

Сделал папку /сайт/www/media/zoo/applications/jbuniversal/elements/jbmyvideo в и 2а файла: jbmyvideo.xml и jbmyvideo.php

Зачем начитать создавать что то если не разбираетесь в устройстве создания? Начните с меньшего - то что написал выше. А иначе вопросов будет только больше при создании. 


Сообщение отредактировал Cheren-dow: 12 January 2014 - 12:40

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

#5 runyugin

runyugin

Отправлено 12 January 2014 - 13:38

Так и взял самое простое, елемент text, изменил  наименование и описание jbmyvideo.xml но он даже не отобразился,пов гайду зоо тоже самое


  • 0

#6 SmetDenis

SmetDenis

Отправлено 13 January 2014 - 08:11

Так и взял самое простое, елемент text, изменил  наименование и описание jbmyvideo.xml но он даже не отобразился,пов гайду зоо тоже самое

 

У вас имя класса ElementMyVideo

При этом везде используется именование jbmyvideo

 

Т.е класс нужно называть соответствующим образом ElementJBMyVideo

либо не использовать приставку "jb"

 

PS "jb" - это наша приставка для важных системных имен, чтобы отделить разные части приложения в свое пространство имен.

В вашем случае использовать её не обязательно.


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



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





Click to return to top of page in style!