当一个网站开发项目准备交付时,客户通常要求一个定制的内置帮助系统,以便他们知道如何在开发团队缺席的情况下通过大量的菜单项和网页进行导航,以维护和管理内容/网站。通过使用 Joomla 的管理员菜单模块,实现这样的内置帮助系统变得更加容易。
使用 Joomla 的管理员菜单模块,有几种实现内置帮助的方法。让我们集中修改内置菜单模块,以满足客户的需求(即,帮助)。如果你分析 Joomla 后端管理的“帮助”菜单项,所有如“Joomla 扩展”和“Joomla 翻译”等菜单项都被归类在“有用 Joomla 链接”菜单项下,除了指向核心 Joomla 帮助、“官方支持论坛”和指向主要文档的“文档 Wiki”的菜单项。这些归类在“有用 Joomla 链接”菜单项下的所有菜单项及其子菜单项都可以修改,以实现内置的定制帮助,因为这些菜单项更多地针对开发人员、设计师和网站管理员,而不是内容管理员。
在后台,菜单的显示是通过模块 管理员菜单 实现的,而这个模块的文件位于 \administrator\modules\mod_menu。因此,定制管理员菜单涉及修改此模块的文件。要编辑的文件是位于 \administrator\modules\mod_menu\tmpl 目录中的 default_enabled.php(如代码 1.1 中所示的原代码)。更改函数 JTEXT 和 JMenuNode 的参数(用于创建菜单项“有用 Joomla 链接”及其子菜单项)如代码 1.2 所示。这些更改是语言字符串关键字(例如,MOD_MENU_HELP_EXTENSIONS)用于 JTEXT,以及相应的链接('https://extensions.joomla.net.cn')用于 JMenuNode。
对于修改文件 default_enabled.php,建议您按照http://docs.joomla.org/How_to_override_the_output_from_the_Joomla!_core 中提供的方法覆盖Joomla核心的输出,因为您正在更改一个核心Joomla文件。请注意,后端(管理员)的覆盖效果与前端(网站)相同。
... ... $menu->addChild( new JMenuNode(JText::_('MOD_MENU_HELP_LINKS'), '#', 'class:weblinks'), true ); $menu->addChild( new JMenuNode(JText::_('MOD_MENU_HELP_EXTENSIONS'), 'https://extensions.joomla.net.cn', 'class:help-jed', false, '_blank') ); $menu->addChild( new JMenuNode(JText::_('MOD_MENU_HELP_TRANSLATIONS'), 'https://community.joomla.net.cn/translations.html', 'class:help-trans', false, '_blank') ); $menu->addChild( new JMenuNode(JText::_('MOD_MENU_HELP_RESOURCES'), 'http://resources.joomla.org', 'class:help-jrd', false, '_blank') ); $menu->addChild( new JMenuNode(JText::_('MOD_MENU_HELP_COMMUNITY'), 'https://community.joomla.net.cn', 'class:help-community', false, '_blank') ); $menu->addChild( new JMenuNode(JText::_('MOD_MENU_HELP_SECURITY'), 'https://developer.joomla.net.cn/security.html', 'class:help-security', false, '_blank') ); $menu->addChild( new JMenuNode(JText::_('MOD_MENU_HELP_DEVELOPER'), 'https://developer.joomla.net.cn', 'class:help-dev', false, '_blank') ); $menu->addChild( new JMenuNode(JText::_('MOD_MENU_HELP_SHOP'), 'http://shop.joomla.org', 'class:help-shop', false, '_blank') ); ... ...
|
代码1.1 - 文件default_enabled.php中的原始代码
... ... $menu->addChild( new JMenuNode(JText::_('MOD_MENU_HELP_MYHELP'), '#', 'class:weblinks'), true ); $menu->addChild( new JMenuNode(JText::_('MOD_MENU_HELP_MYHELP_TOPIC1'), JText::_('MOD_MENU_HELP_MYHELP_TOPIC1_URL'), 'class:help-jed', false, '_blank') ); $menu->addChild( new JMenuNode(JText::_('MOD_MENU_HELP_MYHELP_TOPIC2'), JText::_('MOD_MENU_HELP_MYHELP_TOPIC2_URL'), 'class:help-trans', false, '_blank') ); $menu->addChild( new JMenuNode(JText::_('MOD_MENU_HELP_MYHELP_TOPIC3'), JText::_('MOD_MENU_HELP_MYHELP_TOPIC3_URL'), false, '_blank') ); $menu->addChild( new JMenuNode(JText::_('MOD_MENU_HELP_MYHELP_TOPIC4'), JText::_('MOD_MENU_HELP_MYHELP_TOPIC4_URL'), 'class:help-community', false, '_blank') ); $menu->addChild( new JMenuNode(JText::_('MOD_MENU_HELP_MYHELP_TOPIC5'), JText::_('MOD_MENU_HELP_MYHELP_TOPIC5_URL'), 'class:help-security', false, '_blank') ); $menu->addChild( new JMenuNode(JText::_('MOD_MENU_HELP_MYHELP_TOPIC6'), JText::_('MOD_MENU_HELP_MYHELP_TOPIC6_URL'), 'class:help-dev', false, '_blank') ); $menu->addChild( new JMenuNode(JText::_('MOD_MENU_HELP_MYHELP_TOPIC7'), JText::_('MOD_MENU_HELP_MYHELP_TOPIC7_URL'), 'class:help-shop', false, '_blank') ); ... ...
|
代码1.2 - 文件default_enabled.php中的修改代码
请注意,引入的语言字符串是新的,并不属于核心Joomla。为了使代码灵活,通过引入函数JTEXT以及新的语言字符串,菜单项链接的URL也被参数化。接下来,这些新的语言字符串需要添加到位于目录\administrator\language\en-GB中的文件en-GB.mod_menu.ini。
但是等等!有可能会在Joomla的将来版本中覆盖此文件。因此,必须遵循http://docs.joomla.org/International_Enhancements_for_Version_1.6#Language_String_Overrides. 中推荐的覆盖语言字符串的流程。因此,不要将这些新的语言字符串添加到文件en-GB.mod_menu.ini中,而是将这些新的语言字符串添加到位于目录\administrator\language\overrides中的文件en-GB.override.ini(如代码2.1所示)。
... ... MOD_MENU_HELP_MYHELP="My Help" MOD_MENU_HELP_MYHELP_TOPIC1="My Help Topic 1" MOD_MENU_HELP_MYHELP_TOPIC2="My Help Topic 2" MOD_MENU_HELP_MYHELP_TOPIC3="My Help Topic 3" MOD_MENU_HELP_MYHELP_TOPIC4="My Help Topic 4" MOD_MENU_HELP_MYHELP_TOPIC5="My Help Topic 5" MOD_MENU_HELP_MYHELP_TOPIC6="My Help Topic 6" MOD_MENU_HELP_MYHELP_TOPIC7="My Help Topic 7" MOD_MENU_HELP_MYHELP_TOPIC1_URL="http://mydomain.com/help_topic_1" MOD_MENU_HELP_MYHELP_TOPIC2_URL="http://mydomain.com/help_topic_2" MOD_MENU_HELP_MYHELP_TOPIC3_URL="http://mydomain.com/help_topic_3" MOD_MENU_HELP_MYHELP_TOPIC4_URL="http://mydomain.com/help_topic_4" MOD_MENU_HELP_MYHELP_TOPIC5_URL="http://mydomain.com/help_topic_5" MOD_MENU_HELP_MYHELP_TOPIC6_URL="http://mydomain.com/help_topic_6" MOD_MENU_HELP_MYHELP_TOPIC7_URL="http://mydomain.com/help_topic_7"
|
代码2.1 - 文件en-GB.override.ini中的新语言字符串
恭喜!您已实现了内置自定义帮助。
在上面的示例中,使用了默认语言en-GB(英语 - 英国)。对于其他语言,请使用相应的语言代码(例如,fr-FR,法语 - 法国)。
如果想要少于七个帮助菜单项,则只保留所需的addChild函数的数量,并删除其余部分。另一方面,如果想要超过七个帮助菜单项,则添加所需数量的额外addChild函数。在此过程中,请确保相应地调整语言字符串。
在Joomla社区杂志上发表的一些文章代表了作者对特定主题的个人观点或经验,可能不与Joomla项目的官方立场一致。
评论