Использование тегов в справке расширения Joomla - PullRequest
0 голосов
/ 08 мая 2018

Я пытаюсь иметь Поле тега в моем пользовательском компоненте joomla , но я просто не могу это сделать !,

Я следовал этому руководству https://docs.joomla.org/J3.x:Using_Tags_in_an_Extension#Creating_the_record, но все равно не смог этого сделать, может кто-нибудь попытается объяснить немного подробнее об этом.

Спасибо за всю входящую помощь (я в отчаянии :)) Я пытался, но у меня было много ошибок, и я новичок в Joomla, я просто хочу поле тега в моем пользовательском компоненте.

EDIT

Итак, я начал здесь, потому что не понял всего остального https://docs.joomla.org/J3.x:Using_Tags_in_an_Extension#Modify_your_component.27s_table_class_.28or_classes_if_you_have_multiple_tables.29

Я добавил это:

$this->_observers = new JObserverUpdater($this); JObserverMapper::attachAllObservers($this);

На мой: admin / tables / projectinfo.php (я не знаю, что ему делать) http://prntscr.com/jf84sb

Код: http://prntscr.com/jf8ac2

Тогда: https://docs.joomla.org/J3.x:Using_Tags_in_an_Extension#Add_tags_to_the_getItem.28.29_method_of_the_model У меня не было этого, потому что это для Joomla 3.1.4. ????

https://docs.joomla.org/J3.x:Using_Tags_in_an_Extension#Add_a_tag_field_to_edit_screens Я думаю, это нормально: D

https://docs.joomla.org/J3.x:Using_Tags_in_an_Extension#Prepare_the_view Я ничего не понял, просто Ctrl-P для:

админ \ вид \ projectinfo \ view.html.php

и поместите это здесь:

/**
 * @package     Joomla.Administrator
 * @subpackage  com_projectinfo
 *
 * @copyright   Copyright (C) 2005 - 2018 Open Source Matters, Inc. All rights reserved.
 * @license     GNU General Public License version 2 or later; see LICENSE.txt
 */

// No direct access to this file
defined('_JEXEC') or die('Restricted access');

/**
 * ProjectInfo View
 *
 * @since  0.0.1
 */
class ProjectInfoViewProjectInfo extends JViewLegacy
{
    /**
     * View form
     *
     * @var         form
     */
    protected $form = null;

    /**
     * Display the PROJECTINFO view
     *
     * @param   string  $tpl  The name of the template file to parse; automatically searches through the template paths.
     *
     * @return  void
     */
    public function display($tpl = null)
    {
    /*THIS LINE*/ $item->tags = new JHelperTags;
    $item->tags->getItemTags('com_projectinfo.projectinfo' , $this->item->id);/*THIS LINE*/
        JHtml::_('jquery.framework');
        $document = JFactory::getDocument();
        $document->addScript(JURI::root() . "/administrator/components/com_projectinfo"
                                          . "/models/fields/js/catch.js");
        // Get the Data
        $this->form = $this->get('Form');
        $this->item = $this->get('Item');
        $this->script = $this->get('Script');
        // Check for errors.
        if (count($errors = $this->get('Errors')))
        {
            JError::raiseError(500, implode('<br />', $errors));

            return false;
        }


        // Set the toolbar
        $this->addToolBar();

        // Display the template
        parent::display($tpl);

        // Set the document
        $this->setDocument();

        $this->item->tagLayout = new JLayoutFile('joomla.content.tags');
        echo $this->item->tagLayout->render($this->item->tags->itemTags);

    }

    /**
     * Add the page title and toolbar.
     *
     * @return  void
     *
     * @since   1.6
     */
    protected function addToolBar()
    {
        $input = JFactory::getApplication()->input;

        // Hide Joomla Administrator Main menu
        $input->set('hidemainmenu', true);

        $isNew = ($this->item->id == 0);

        if ($isNew)
        {
            $title = JText::_('COM_PROJECTINFO_MANAGER_PROJECTINFO_NEW');
        }
        else
        {
            $title = JText::_('COM_PROJECTINFO_MANAGER_PROJECTINFO_EDIT');
        }

        JToolBarHelper::title($title, 'projectinfo');
        JToolBarHelper::save('projectinfo.save');
        JToolBarHelper::cancel(
            'projectinfo.cancel',
            $isNew ? 'JTOOLBAR_CANCEL' : 'JTOOLBAR_CLOSE'
        );
    }
    /**
     * Method to set up the document properties
     *
     * @return void
     */
    protected function setDocument() 
    {
        $isNew = ($this->item->id < 1);
        $document = JFactory::getDocument();
        $document->setTitle($isNew ? JText::_('COM_PROJECTINFO_PROJECTINFO_CREATING') :
                JText::_('COM_PROJECTINFO_PROJECTINFO_EDITING'));
        $document->addScript(JURI::root() . $this->script);
        JText::script('COM_PROJECTINFO_PROJECTINFO_ERROR_UNACCEPTABLE');
    }

}

После этого я был так растерян, и у меня было много ошибок, последняя была такая:

Предупреждение. Создание объекта по умолчанию из пустого значения в C: \ xampp \ htdocs \ Joomla_3.8.7-Stable-Full_Package \ administrator \ components \ com_projectinfo \ views \ projectinfo \ view.html.php в строке 35

Примечание: неопределенное свойство: ProjectInfoViewProjectInfo :: $ item в C: \ xampp \ htdocs \ Joomla_3.8.7-Stable-Full_Package \ administrator \ components \ com_projectinfo \ views \ projectinfo \ view.html.php в строке 36

Примечание. Попытка получить свойство 'id' не-объекта в C: \ xampp \ htdocs \ Joomla_3.8.7-Stable-Full_Package \ administrator \ components \ com_projectinfo \ views \ projectinfo \ view.html.php в строке 36

ти

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...