joomla 组件不适用于我的主机帐户

Posted

技术标签:

【中文标题】joomla 组件不适用于我的主机帐户【英文标题】:joomla component does not work on my hosting account 【发布时间】:2011-06-23 21:34:19 【问题描述】:

我开发了一个自定义 joomla 1.5 组件,它在本地运行良好(wamp 服务器,php 5.3.5)并且工具栏功能添加/编辑和删除在我的主机帐户上不起作用(apache,php 5.2.16)

我有两个工具栏,当我点击第二个工具栏时,它会重定向到第一个工具栏

这是我的代码

controller.php

class GalGallerifficController extends JController


/**
 * Method to display the view
 *
 * @access    public
 */
 /**
 * constructor (registers additional tasks to methods)
 * @return void
 */
function __construct()

        parent::__construct();

        // Register Extra tasks
        $this->registerTask( 'add'  , 'edit' );


/**
 * display the edit form
 * @return void
 */
function edit()

        JRequest::setVar( 'view', 'gallery' );
        JRequest::setVar( 'layout', 'form'  );
        JRequest::setVar('hidemainmenu', 1);

        parent::display();

 /**
 * remove record(s)
 * @return void
 */
function remove()

        $model = $this->getModel('gallery');
        if(!$model->delete()) 
            $msg = JText::_( 'Error: One or More Gallery(s) Could not be Deleted' );
         else 
            $msg = JText::_( 'Gallery(s) Deleted' );
        
        $this->setRedirect( 'index.php?option=com_galleriffic', $msg );


和第二个控制器/galleryitems.php

class GalGallerifficControllerGalleryItems extends JController

function __construct()

        parent::__construct();

        // Register Extra tasks
        $this->registerTask( 'add'  , 'edit' );

/**
 * display the edit form
 * @return void
 */
function edit()

        JRequest::setVar( 'view', 'galleryitem' );
        JRequest::setVar( 'layout', 'form'  );
        JRequest::setVar('hidemainmenu', 1);
        parent::display();

 /**
 * remove record(s)
 * @return void
 */
function remove()

    $model = $this->getModel('gallery');
    if(!$model->delete()) 
        $msg = JText::_( 'Error: One or More Gallery(s) Could not be Deleted' );
     else 
        $msg = JText::_( 'Gallery(s) Deleted' );
    

    $this->setRedirect( 'index.php?option=com_galleriffic', $msg );

function display()

    parent::display();


和画廊项目视图

class GalGallerifficViewGalleryItems extends JView

    function display($tpl = null)
    
        JToolBarHelper::title( JText::_( 'Galleriffic Gallery Items' ), 'generic.png' );
        JToolBarHelper::deleteList();
        JToolBarHelper::editListX();
        JToolBarHelper::addNewX();

        // Get data from the model
        $items =& $this->get( 'Data');
        $this->assignRef( 'items', $items );
        parent::display($tpl);
    

任何想法,为什么会发生这种情况?

提前致谢:)

【问题讨论】:

当你说它不起作用时,请你说得更具体一点。您收到任何错误消息吗? 没有错误尼克,它只是重定向到主视图有两个表单(添加画廊,添加项目)当点击添加项目时它会添加画廊表单 【参考方案1】:

我已经解决了这个问题

使用

class GalGallerifficViewGalleryitems

而不是

class GalGallerifficViewGalleryItems

为此,您还需要更改

public function getModel($name = 'galleryitems', $prefix = 'GalGallerifficModel')

    $model = parent::getModel($name, $prefix, array('ignore_request' => true));
    return $model;

在控制器文件中。

【讨论】:

【参考方案2】:

问题是控制器、模型、视图名称...

class GalGallerifficViewGalleryItems

此命名在 wamp 服务器上运行良好,但在上传到主机帐户 (apache) 时却不能 它应该遵循骆驼命名

class GalGallerifficViewGalleryitems

希望对其他开发者有所帮助:)

【讨论】:

以上是关于joomla 组件不适用于我的主机帐户的主要内容,如果未能解决你的问题,请参考以下文章

Joomla 模板模块覆盖不适用于移动模板

Joomla 缺少组件

Joomla - 500 未找到视图 [名称、类型、前缀]

将joomla的CMS功能用于自定义数据库表

Joomla - 在 Joomla 组件中存储数据时出错

我的 Joomla 组件菜单项在哪里?