Я пытаюсь иметь Поле тега в моем пользовательском компоненте 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
1º Я добавил это:
$this->_observers = new JObserverUpdater($this); JObserverMapper::attachAllObservers($this);
На мой:
admin / tables / projectinfo.php (я не знаю, что ему делать) http://prntscr.com/jf84sb
Код: http://prntscr.com/jf8ac2
2º Тогда: 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. ????
3º https://docs.joomla.org/J3.x:Using_Tags_in_an_Extension#Add_a_tag_field_to_edit_screens Я думаю, это нормально: D
4º 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
ти