2011-07-18 62 views
5

我在Joomla写了一个自定义组件!它从XML提要中提取内容并将其存储在Joomla数据库中。我希望管理员URL(/ administrator/index?option = com_mycomp)每天晚上通过cron运行一次以运行组件。但我无法弄清楚如何使这项工作,因为该组件是一个管理员任务,你必须登录才能运行它。如何使用cron作业在joomla中运行管理任务?

我该怎么办?我尝试在URL中包含我的用户/密码(http:admin:[email protected]/joomla/administrator ....),但它不起作用。无论如何还有其他方式发送登录凭证,或以其他方式来执行此操作吗?

+0

你或者需要编写一个php scfip来登录并执行它,或者只需将它作为一个带有硬编码密码或HTTP_REFERER检查的前端组件 – jdog

+0

您是否找到解决此问题的解决方案?我也在开发一个组件,每天至少运行一次以便与db同步。你找到解决方法吗? – 2011-10-10 22:39:46

回答

2

只要把你的脚本组件的管理员目录像

/administrator/components/com_yourcomponent/cron.yourcomponent.php 

这是怎么FeedGator处理后台任务[听起来非常相似,你想要做的事。] ...你也可以在每一个评论你的组件

========== [更新] ============

写一个前端控制器我创建this ultra-simple installable component可能也可以用于这个目的。它允许将一个前端菜单项分配给一个php页面(包括建议的路线)。所以你:

  1. 安装该组件
  2. 创建新的菜单项,(可能需要使用一个'hidden' menu)选择“显示”视图选项,并输入脚本通过cron来运行“文件,包括”像路径/ yourcron.php
  3. 呼叫 '页' 在cron或测试使用:yourjoomlasite.com/index.php?option=com_show或yourjoomlasite.com/your-menu-alias
3

我知道这线程很旧,但这是我处理类似任务的方式。

“诀窍”是将您创建的自定义PHP代码嵌入到Joomla网站的文章中。

我通过使用JUMI扩展实现了这一点,该扩展允许自定义PHP代码存储在Joomla存储库中,并根据需要嵌入到文章中。

然后,创建一个CRON任务,为包含要运行的代码的页面激活适当的URL。

+0

轮到我问这个非常古老的答案了!您能否请告知您用来运行文章的命令。 – Mark

+0

查看我更新的答案,类似于Jumi,但您可以准确定义您想要调用的URL在Joomla中 – idea34

1

即使您的组件仅与Joomla中的管理员打交道,大多数玉米网站仍在前端工作。 因此,无论你在管理员的cron代码让它到前端&,让你的cronurl变得像index.php?option = com_yourcomponent & task = cronjob。 使用此URL来设置使用cPanel的cron。

但是,此解决方案不需要查看admin是否已记录日志。