我在大多数情况下都有一个简单的组件跟随hello world教程,除了我在工具栏和列表本身(绿色/红色小圆圈)中添加了一个发布/取消发布图标之外,一切正常。
工具栏图标工作,他们可以改变状态没问题,但小图标没有,这是我的代码:
view.html.php:
protected function addToolBar()
{
JToolBarHelper::title(JText::_('COM_MADS_MANAGER_OBJECTS'));
JToolBarHelper::publishList($task = 'objects.publish', $alt = 'Publish');
JToolBarHelper::unpublishList($task = 'objects.unpublish', $alt = 'Unpublish');
JToolBarHelper::deleteListX('', 'objects.delete');
JToolBarHelper::editListX('object.edit');
JToolBarHelper::addNewX('object.add');
}
tmpl>体:
<?php
// No direct access to this file
defined('_JEXEC') or die;
?>
<?php foreach($this->items as $i => $item): ?>
<tr class="row<?php echo $i % 2; ?>">
<td><?php echo $item->id; ?></td>
<td><?php echo JHtml::_('grid.id', $i, $item->id); ?></td>
<td><a href="<?php echo JRoute::_('index.php?option=com_mads&task=object.edit&id=' . $item->id); ?>"><?php echo $item->title; ?></a></td>
<td><?php echo $item->description; ?></td>
<td align="center"><?php $published = JHTML::_('grid.published', $item, $i); echo $published;?></td>
</tr>
<?php endforeach; ?>
我正在使用内置的发布/取消发布功能,并没有创建我自己的。
表格
<?php
// No direct access to this file
defined('_JEXEC') or die;
jimport('joomla.database.table');
class MAdsTableObjects extends JTable
{
var $id = null;
var $title = null;
var $description = null;
var $published = 0;
function __construct(&$db)
{
parent::__construct('#__mads_objects', 'id', $db);
}
}
?>
答案 0 :(得分:1)
我在很多FREKIN HEADACHE和浪费时间之后想出来的,它应该是:
<?php echo JHtml::_('jgrid.published', $item->published, $i, 'objects.',true); ?>
其中对象。是我的列表的视图/控制器/模型的名称。
答案 1 :(得分:-1)
我认为你应该在db中有一个状态字段来存储状态
state tinyint(3)
尝试使用:
echo JHtml::_('grid.sort', 'JSTATUS', 'a.state', $listDirn, $listOrder);