我正在创建一个自定义组件,但我无法让我的工具栏工作。
view.html.php:
protected function addToolbar() {
JToolBarHelper::title( JText::_('COM_CYCLIST_TITLE_CATEGORIES'), 'generic.png' );
$bar = & JToolBar::getInstance('toolbar');
$bar->appendButton( 'Link', 'new', 'JTOOLBAR_NEW', '/administrator/index.php?option=com_project&view=project&layout=edit');
JToolbarHelper::addNew( 'project.add');
JToolBarHelper::editList('project.edit');
JToolBarHelper::deleteList('', 'projects.delete');
// $bar->appendButton( 'Link', 'custom', 'Custom', '../index.php?option=com_mycomponent&format=raw' );
}
Controller project.php:
<?php
// No direct access.
defined('_JEXEC') or die;
jimport('joomla.application.component.controlleradmin');
class ProjectControllerProject extends JControllerForm {
public function __construct() {
parent::__construct();
}
}
?>
我提供的工具栏按钮的任务并不重要。当我按下te键时,它会打开组件网址,但会显示404.当我在新标签页中复制/粘贴网址时,将显示概述。
http://localhostproject/administrator/index.php?option=com_project&view=projects
我错过了什么?
答案 0 :(得分:0)
尝试将addToolbar函数更改为此
protected function addToolbar() {
JToolBarHelper::title( JText::_('COM_CYCLIST_TITLE_CATEGORIES'), 'generic.png' );
$app = JFactory::getApplication();
// Run in backend
if ($app->isAdmin() === true)
{
$bar = JToolBar::getInstance('toolbar');
$url = JRoute::_('index.php?option=com_project&view=project&layout=edit');
$bar->appendButton( 'Link', 'new', 'JTOOLBAR_NEW', $url);
}
JToolbarHelper::addNew( 'project.add');
JToolBarHelper::editList('project.edit');
JToolBarHelper::deleteList('', 'projects.delete');
//$bar->appendButton( 'Link', 'custom', 'Custom', '../index.php?option=com_mycomponent&format=raw' );
}
很可能你的网址不正确,所以你得到404错误。如果您使用JRoute,它将为您修复网址,如果您使用的是sef网址。 $ app-&gt; isAdmin()用于检查您是否处于管理员模式。
答案 1 :(得分:0)
似乎url与弹出窗口不正确。您应该为Urls使用joomla方法或从index.php开始。如果我正确的话,下面的代码将适合你 -
$bar->appendButton( 'Link', 'new', 'JTOOLBAR_NEW', Juri::base(true) . '/index.php?option=com_project&view=project&layout=edit');
OR
$bar->appendButton( 'Link', 'new', 'JTOOLBAR_NEW', 'index.php?option=com_project&view=project&layout=edit');