【问题标题】:how to publish newly created component on front end in joomla 2.5如何在 joomla 2.5 的前端发布新创建的组件
【发布时间】:2013-10-24 10:33:54
【问题描述】:

我第一次创建了一个新组件。它的后端功能都运行良好。现在我想在前端展示它。我创建了一个新菜单项并选择了这个新组件,但是在我单击带有View not found [name, type, prefix]: tenders, html, tendersView 的菜单错误500 时在前端。 我的站点文件夹结构是:

joomla
  |components
     |com_tenders
        |controller.php
        |tenders.php
        |models
            |tenders.php
        |views
           |tenders
               |view.html.php
               |tmpl
                   |default.php

com_tenders/controller.php

<?php
defined('_JEXEC') or die('Restricted access'); 

jimport('joomla.application.component.controller');

class TendersController extends JController {

      public function display() {

        $input = JFactory::getApplication()->input;
        $input->set('view', $input->getCmd('view', 'Tenders'));
        parent::display();
      }
}
?>

views/tenders/view.html.php

<?php
defined('_JEXEC') or die('Restricted access'); 

jimport('joomla.application.component.view');

class TendersViewTenders extends JView {

    function display($tpl = null) {

    $model =& $this->getModel();
    $msg = $model->getMsg();
    $this->assignRef('msg',$msg );

    parent::display($tpl);

    }
}
?>

models/tenders.php

<?php
defined('_JEXEC') or die('Restricted access');
jimport('joomla.application.component.modelitem');

class TendersModelTenders extends JModelItem {

     public function getMsg() {
           $db =& JFactory::getDBO();
           $query = "SELECT * FROM #__tenders";
           $db->setQuery( $query );
           $msg = $db->loadResult();

           return $msg;
     }
}
?>

如果需要任何说明,请告诉我。

【问题讨论】:

    标签: joomla joomla2.5 frontend joomla-component


    【解决方案1】:

    views/tenders/view.html.php 中将类从 TendersViewTender 重命名为 TendersViewTenders

    您的 com_tenders 文件夹中也需要有 tenders.php 文件。应该是这样的:

    defined( '_JEXEC' ) or die( 'Restricted access' );
    require_once (JPATH_COMPONENT.DS.'controller.php');
    
    $controller = new TendersController( );
    
    $controller->execute( JRequest::getCmd('task'));
    $controller->redirect();
    

    【讨论】:

    • 也重命名您的模型。 To TendersModelTenders
    • 我已经更新了答案,如果有帮助请查看并告诉我。
    • 感谢您的回复先生...我已经有了那个文件。即使我用您的代码更新了我的tenders.php 文件。但再次出现相同的错误“未找到视图 [名称、类型、前缀]:招标、html、招标视图”。
    猜你喜欢
    • 1970-01-01
    • 2012-07-19
    • 1970-01-01
    • 2012-06-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-10-12
    • 1970-01-01
    相关资源
    最近更新 更多