在使用JUpgrade成功将joomla1.5的网站升级为Joomla2.5的网站后,发现Joomla Update这个菜单项居然消失了。经过查找资料,解决了这个问题。

如图,你可以看到并没有出现Joomla Updete这个菜单项。

出现这个问题的原因是:

自从JOOMLA2.5.4之后,Joomla核心的升级已经从以往的扩展管理->安装->升级 改变为一个单独的组件 Joomla Update.但是现在并没有出现这个组件的选项,说明数据库中可能存在记录丢失的问题。

官方的解决方案是:

登陆PHPMyadmin,在数据库中执行下面的命令:

UPDATE #__menu
SET component_id =
  (SELECT extension_id FROM #__extensions WHERE name = "com_joomlaupdate")
WHERE title = "com_joomlaupdate"

正常情况下应该会提示有一条记录更新。但是在我的情况下,并没有出现,反而出现没有记录改变。经过检查,发现我们的extension表中根本就没有com_joomlaupdate这个组件。

另外的一个解决方案是在扩展管理中使用发现(DIscover)功能,理想情况下,应该会出现joomlaupdate这个组件的,然后点击安装就行了。可是,在我的情况下,我试了很多次,还是没有效果。缓存也清空了。依然没有效果。

另外的一个方法是执行下面的SQL语句:

INSERT INTO `#__menu` (`menutype`, `title`, `alias`, `note`, `path`, `link`, `type`, `published`, `parent_id`, `level`, `component_id`, `ordering`, `checked_out`, `checked_out_time`, `browserNav`, `access`, `img`, `template_style_id`, `params`, `lft`, `rgt`, `home`, `language`, `client_id`) 
VALUES ('menu', 'com_joomlaupdate', 'Joomla! Update', '', 'Joomla! Update', 'index.php?option=com_joomlaupdate', 'component', 0, 1, 1, (SELECT extension_id FROM #__extensions WHERE `name` = 'com_joomlaupdate'), 0, 0, '0000-00-00 00:00:00', 0, 0, 'class:joomlaupdate', 0, '', 41, 42, 0, '*', 1);

注意将#改成你自己的数据库前缀。如果不清楚,你可以前往你的网站的全局配置中找到。

上面的SQL语句的功能就是在menu表中添加一条记录。仅此而已。

这种情况的适用范围就是你可以在你的扩展管理中找到joomlaupdate这个组件,但是在菜单中找不到。而我的情况正是这样。因此,问题得到解决。

执行SQL语句

刷新查看效果

 

 

 

作者: 樱木花道

Joomla程序员,从J1.5到J4.x始终都在做Joomla相关开发定制工作,有超过10年行业经验,国内Joomla扩展开发商ZMAX团队的核心成员

作者网站:ZMAX程序人

评论 (0)

  • 最新在前
  • 最佳在前