Joomla模块学习之后台mod

    技术2022-05-20  49

    Joomla模块学习之后台mod_quickicon模块

    快速图标启动模块

    后台管理模块效果图

     

     

    原理:

    后台mod_quickicon模块通过在后台配置相应的信息. 返回某些组件通过icon快速启动功能 

     

    配置界面:

     

     

    mod_quickicon模块结构图:

     

     

    关键代码

    (mod_quickicon.php代码) <div id="cpanel"> <?php $link = 'index.php?option=com_content&task=add'; quickiconButton( $link, 'icon-48-article-add.png', JText::_( 'Add New Article' ) ); $link = 'index.php?option=com_content'; quickiconButton( $link, 'icon-48-article.png', JText::_( 'Article Manager' ) ); $link = 'index.php?option=com_frontpage'; quickiconButton( $link, 'icon-48-frontpage.png', JText::_( 'Frontpage Manager' ) ); $link = 'index.php?option=com_sections&scope=content'; quickiconButton( $link, 'icon-48-section.png', JText::_( 'Section Manager' ) ); $link = 'index.php?option=com_categories§ion=com_content'; quickiconButton( $link, 'icon-48-category.png', JText::_( 'Category Manager' ) ); $link = 'index.php?option=com_media'; quickiconButton( $link, 'icon-48-media.png', JText::_( 'Media Manager' ) ); // Get the current JUser object $user = &JFactory::getUser(); //判断当前用户所属的用户组是否可以访问菜单组件 if ( $user->get('gid') > 23 ) { $link = 'index.php?option=com_menus'; quickiconButton( $link, 'icon-48-menumgr.png', JText::_( 'Menu Manager' ) ); } //判断当前用户所属的用户组是否可以访问语言组件 if ( $user->get('gid') > 24 ) { $link = 'index.php?option=com_languages&client=0'; quickiconButton( $link, 'icon-48-language.png', JText::_( 'Language Manager' ) ); } //判断当前用户所属的用户组是否可以访问用户组件 if ( $user->get('gid') > 23 ) { $link = 'index.php?option=com_users'; quickiconButton( $link, 'icon-48-user.png', JText::_( 'User Manager' ) ); } //判断当前用户所属的用户组是否可以访问配置组件 if ( $user->get('gid') > 24 ) { $link = 'index.php?option=com_config'; quickiconButton( $link, 'icon-48-config.png', JText::_( 'Global Configuration' ) ); } ?> </div>

    (mod_quickicon.php代码) <?php function quickiconButton( $link, $image, $text ) { global $mainframe; $lang =& JFactory::getLanguage(); $template = $mainframe->getTemplate(); ?> <div style="float:<?php echo ($lang->isRTL()) ? 'right' : 'left'; ?>;"> <div class="icon"> //组件链接 <a href="<?php echo $link; ?>"> //返回组件图标 <?php echo JHTML::_('image.site', $image, '/templates/'. $template .'/images/header/', NULL, NULL, $text ); ?> <span><?php echo $text; ?></span></a> </div> </div> <?php } ?>

    (JHTMLImage代码) function site( $file, $folder='/images/M_images/', $altFile=NULL, $altFolder='/images/M_images/', $alt=NULL, $attribs = null, $asTag = 1) { static $paths; global $mainframe; if (!$paths) { $paths = array(); } //将数组参数转为字符串 if (is_array( $attribs )) { $attribs = JArrayHelper::toString( $attribs ); } $cur_template = $mainframe->getTemplate(); //不为空则使用 $altFile和$altFolder if ( $altFile ) { // $param allows for an alternative file to be used $src = $altFolder . $altFile; } else if ( $altFile == -1 ) //$altFile -1 不使用图片 { // Comes from an image list param field with 'Do not use' selected return ''; } else { //优先使用images目录下图片,如果images目录下存在图片,则$folder目录忽略 $path = JPATH_SITE .'/templates/'. $cur_template .'/images/'. $file; if (!isset( $paths[$path] )) { if ( file_exists( JPATH_SITE .'/templates/'. $cur_template .'/images/'. $file ) ) { $paths[$path] = 'templates/'. $cur_template .'/images/'. $file; } else { // outputs only path to image $paths[$path] = $folder . $file; } } $src = $paths[$path]; } if (substr($src, 0, 1 ) == "/") { $src = substr_replace($src, '', 0, 1); } // Prepend the base path $src = JURI::base(true).'/'.$src; // outputs actual html <img> tag if ($asTag) { return '<img src="'. $src .'" mce_src="'. $src .'" alt="'. html_entity_decode( $alt ) .'" '.$attribs.' />'; } return $src; }

     


    最新回复(0)