2011-04-27 105 views
1

我在Joomla中创建了一个日历模块。我的主文件被命名为jom_cal。现在从管理员端我在左侧面板中显示日历。此外我想要做的是 - 当用户点击日历中的日期时,我想打开一个灯箱,它将显示从数据库到灯箱的一些记录列表。我创建了一个灯箱,我们只需要传递我们希望在灯箱中显示的页面的URL。现在我的问题是我应该在哪里编写代码来从数据库获取记录并在Lightbox中显示,就像在模块中一样,我认为只有一个与模块名称相同的主文件。有什么办法,我可以创建一个单独的文件,其中将包含从我的数据库显示记录的代码,然后如何访问此文件(即将访问此文件的URL是什么)。如何访问joomla中的模块

请以适当的方式指导我。

感谢 - 阿图尔

回答

0

如果你想保持处事的Joomla方式,您将需要一个组件来帮你做这个范围内。定义模块(Joomla定义)用于在页面加载中呈现/显示数据,因此任何要显示的数据都必须在页面加载时从数据库或任何其他源中提取。当然,在Joomla 1.5中,没有安全的URL访问模块文件。

可能的解决方案

  1. 使用辅助部件。
  2. 如果在页面加载时从数据库中提取所有数据并将其存储在页面上的隐藏元素中,则在点击时在灯箱中显示是可行的,然后执行此操作。我个人不会这么做,原因很多。

你的模块似乎想要做很多。一些事情来澄清寿。谁创建了数据库,从哪里开始显示记录?它是另一个组件吗?如果是的话,那么该组件可能会获得该数据的菜单,可能是阿贾克斯调用等。

+0

@ Dr. Stonyhills - 谢谢你的回复。我现在所做的是我创建了一个文件,而不是mod_cal文件,这是该模块的邮件文件。下面是我的新文件中的代码 - <?php define('_JEXEC',1); define('JPATH_BASE',dirname(dirname(dirname(__ FILE__)))); define('DS',DIRECTORY_SEPARATOR); require_once(JPATH_BASE.DS.'includes'.DS.'defines.php'); require_once(JPATH_BASE.DS.'includes'.DS.'defines.php'); require_once(JPATH_BASE.DS.'includes'.DS.'framework.php'); require_once(JPATH_BASE.DS.'includes'.DS.'framework.php'); //只包含辛迪加函数一次 require_once(dirname(__ FILE __)。DS.'helper.php'); $ users = modHelloWorldHelper :: getListing(); print_r($ hello); – Atul 2011-04-27 10:07:43

+0

我正在尝试直接运行此文件时出现“数据库错误:无法连接到数据库:无法连接到MySQL”的错误。它没有穿过Joomla。 你能给我推荐一些东西吗? – Atul 2011-04-27 10:09:23

0

您正在尝试使模块执行组件的工作。组件允许您定义一种内容类型,以及检索和显示内容的各种方法。模块只是一种显示网站主要组件区域以外的内容的方式。为了实现这个功能,您需要编写一个组件,模块将简单地访问组件控制的一些数据。

http://docs.joomla.org/Developing_a_Model-View-Controller_Component_-_Part_1

也可能看起来在的Joomla扩展目录。我可以考虑几个非常先进的日历扩展程序,它们可能会满足您的需求,或者至少可以轻松修改以满足您的需求。

http://extensions.joomla.org/extensions/calendars-a-events

0

你应该创建一个组件,像其他人已经回答了。一旦创建了记录列表布局,在记录列表页面的链接中添加format = raw以仅显示组件输出而不显示周围的模板html。还需要在记录列表页面的视图目录的根目录中添加view.raw.php。

不知道你是如何创建灯箱。我通常使用mootools模式框,它执行ajax帖子来获取页面内容并显示在Lightbox中。