繁体   English   中英

Joomla组件开发:保存,应用和取消工具栏按钮不起作用

[英]Joomla component development: Save, apply and cancel toolbar buttons not working

我正在学习“学习Joomla!1.5扩展开发”一书中有关组件开发的课程。 我完全按照本章中的说明进行操作,创建了一个称为“旋转木马”的组件。 我仅创建了Admin后端,并且能够查看用于创建新条目或编辑现有条目的表单,但是无法保存或应用更改。 单击“保存”,“应用”和“取消”按钮仅会将我带到“管理员索引”页面,而对数据库没有任何更改。 但是,如果我使用SQL直接在数据库中添加条目,则可以在管理界面中正确查看它们的列表。

我在Windows XP上使用Joomla 1.5.20,PHP 5.2.3和MySQL 5.0.41。 您可以从此处下载“ com_carousel”文件夹的zip文件(我在“ administrator / components”文件夹中)。 我还正确地在数据库中注册了该组件,以便可以在后端的“组件”菜单下看到它。 这是用于创建表“ jos_carousel”的SQL:

CREATE TABLE `jos_carousel` (
`id` INT( 11 ) UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY ,
`title` VARCHAR( 255 ) NOT NULL ,
`description` TEXT NOT NULL ,
`published` TINYINT( 1 ) UNSIGNED NOT NULL DEFAULT '0'
) ENGINE = innodb;

请帮忙。

Rgds,西蒙

我花了一些时间调试您的扩展程序,发现您遇到奇怪行为的原因。 您没有将$ option变量传递给编辑表单。 因此,提交表单时,Joomla现在不应该加载哪个组件来处理请求,这就是为什么它仅呈现主管理页面。

解决此问题的最简单方法是将“ com_carousel”手动添加到编辑表单(admin.carousel.html.php中的editCarousel()函数)的隐藏字段中。

更换

<input type="hidden" name="option" value="<?php echo $option; ?>" />

<input type="hidden" name="option" value="com_carousel" />

如果您确实想使用$ option变量,则需要从admin.carousel.php文件中传递它。

仍然有些东西不起作用(主要是发布/取消发布),但本书稍后将对此进行介绍。 学习Joomla完成后! 扩展开发,最好的选择是阅读Mastering Joomla...。 我将要读完它,对我来说,它是宝贵的资源。

祝您Joomla一切顺利! 扩展:)

不知道这是否是问题,但是在主开关中,您使用一个参数调用saveCarousel:

case "apply"://NOT WORKING!
    case "save"://NOT WORKING!
        saveCarousel($option);
        break;

在函数定义中,它具有两个参数:

function saveCarousel($option, $task)

尝试将$ task变量添加到开关内部的函数调用中,并让我们知道是否更改了任何内容...

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM