1

在大多数情况下,我有一个简单的组件遵循 hello world 教程,除了我在工具栏和列表本身(绿色/红色小圆圈)中添加了发布/取消发布图标之外,一切正常。

工具栏图标工作,他们可以改变状态没问题,但小图标没有,这是我的代码:

视图.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);
  }
}
?>
4

2 回答 2

1

在 A LOT FREKIN HEADACHE 和浪费时间之后,我想通了,应该是:

<?php echo JHtml::_('jgrid.published', $item->published, $i, 'objects.',true); ?>

对象在哪里是列表中我的视图/控制器/模型的名称。

于 2012-08-23T20:13:27.230 回答
-1

我认为您应该在数据库中有一个状态字段来存储状态

state   tinyint(3)

比尝试使用:

 echo JHtml::_('grid.sort',  'JSTATUS', 'a.state', $listDirn, $listOrder);
于 2012-08-20T12:29:58.463 回答