登录 注册

登录

问题 新手开发hello world组件,无法显示数据

更多
2011年01月27日 13:22 - 2011年01月27日 16:34 #1 作者: qiuzhifeng


我按照组件开发入门的方法,开发了hello World组件的后台管理文件,但是无法显示数据,情况见附件。
数据库我已经写入相关数据了,具体见附件。



各个文件的代码如下:
第一个是:admin.hello.php
<?php
   /*
   Hello world组件的管理员入口文件hello.php
   */
   defined('_JEXEC') or die ('Restricted access');
   require_once(JPATH_COMPONENT.DS.'controller.php');
 
   if($controller=JRequest::getWord('controller'))
   {
       $path=JPATH_COMPONENT.DS.'controllers'.DS.$controller.'.php';
	   if(file_exists($path)){
	      require_once $path;
	   }
	   else{
	       $controller='';
	   }
	}
 
   $classname='HellosController'.$controller;
	$controller=new $classname();
 
	$controller->execute(JRequest::getVar('task'));
   $controller->redirect();
?>

第二个是:controller.php
<?php
   /*
   Hello world组件后台的controller
   */
   defined('_JEXEC') or die ('Restricted access');
   jimport('joomla.application.component.controller');
 
   class HellosController extends JController
   {
        function display()
		{
		      parent::display();
		}
   }   
?>

第三个是models文件夹里面的hellos.php:
<?php
   /*
   Hello world组件后台的模型hellos.php
   */
   defined('_JEXEC') or die ();
   jimport('joomla.application.component.model');
   class HellosModelHellos extends JModel
   {
        var $_data;
		function _buildQuery()
		{
		    $query=' SELECT * FROM #_hello';
			return $query;
		}
 
		function getData()
		{
		    if(empty($this->_data))
			{
			    $query=$this->_buildQuery();
				$this->_data=$this->_getList($query);
			}
			return $this->_data;
		}
   }
?>

第四个是:view.html.php
<?php
  //hello组件的后台管理视图文件view.html.php
  defined('_JEXEC') or die();
  jimport('joomla.application.component.view');
 
  class HellosViewHellos extends JView
  {
      function display($tpl=null)
	  {
	      JToolBarHelper::title( JText::_('Hello Manager'),'generic.png');
		  JToolBarHelper::deleteList();
		  JToolBarHelper::editListX();
		  JToolBarHelper::addNewX();
 
		  $items=& $this->get('Data');
		  $this->assignRef('items',$items);
		  parent::display($tpl);
	  }
  }
?>

第五个是:default.php
<?php
  //hello组件的后台管理模板文件default.php
  defined('_JEXEC') or die ('Restricted access');
?>
<form action="index.php" method="post" name="adminForm">
<div id="editcell">
   <table class="adminlist">
   <thead>
   <tr>
   <th width="5">
   <?php echo JText::_('ID'); ?>
   </th>
   <th>
   <?php echo JText::_('Greeting'); ?>
   </th>
   </tr>
   </thead>
   <?php
    $k=0;
	for($i=0,$n=count($this->items);$i<$n;$i++)
	{
	$row=& $this->items[$i];
	?>
	<tr class="<?php echo "row$k"; ?>">
	<td>
	<?php echo $row->id;?>
	</td>
	<td>
	<?php echo $row->greeting;?>
	</td>
	</tr>
	<?php
	  $k=1-$k;
	}
	?>
	</table>
</div>	
<input type="hidden" name="option" value="com_hello" />
<input type="hidden" name="task" value="" />
<input type="hidden" name="boxchecked" value="0" />
<input type="hidden" name="controller" value="hello" />
</form>


各个文件所在的文件夹如下(见附件截图):

最后修改: 2011年01月27日 16:34 由 Joomla之门.

登录 或者   注册一个会员帐号 来参与讨论