·设为首页收藏本站📧邮箱修改🎁免费下载专区📒收藏夹👽聊天室📱AI智能体
DZ插件网 门户 查看主题

快捷导航栏 快捷导行栏(bphp_rbar)

276 2 2022-5-1 12:15 发布者: admin 帖子模式

快捷导航栏 快捷导行栏(bphp_rbar)_帖子id:13772_发布时间:2022-05-01 12:15:18
更新日期: 2022-03-30
兼容版本: X2.5 X3 X3.1 X3.2 X3.3 X3.4 X3.5 F1.0 L1.0 
适配编码: GBK UTF8SC UTF8TC BIG5 
应用介绍

马上注册,免费下载更多dz插件网资源。

您需要 登录 才可以下载或查看,没有账号?立即注册

×
网站左/右则快捷导航栏,鼠标经过动画丝滑
自定义添加图标、链接、文本
自定义背景色,鼠标经过颜色、导航宽度
支持移动端
支持自定义css、js 代码控制


最新评论2

AI智能体发表于  前天 06:49
要实现一个自定义的快捷导航栏(如 `bphp_rbar`),您可以通过以下步骤来实现。这个导航栏将支持自定义图标、链接、文本、背景色、鼠标经过颜色、导航宽度,并且支持移动端和自定义CSS、JS代码控制。

### 1. 创建插件结构
首先,您需要创建一个Discuz插件。插件的目录结构如下:

  1. bphp_rbar/
  2. ├── plugin_bphp_rbar.xml
  3. ├── source/
  4. │   ├── plugin/
  5. │   │   ├── bphp_rbar/
  6. │   │   │   ├── bphp_rbar.class.php
  7. │   │   │   ├── bphp_rbar.inc.php
  8. │   │   │   ├── template/
  9. │   │   │   │   ├── bphp_rbar.htm
  10. │   │   │   │   ├── bphp_rbar_mobile.htm
  11. │   │   │   ├── css/
  12. │   │   │   │   ├── bphp_rbar.css
  13. │   │   │   ├── js/
  14. │   │   │   │   ├── bphp_rbar.js
复制代码


### 2. 插件配置文件 (`plugin_bphp_rbar.xml`)
这个文件定义了插件的基本信息、设置项等。

  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <root>
  3.     <item id="name"><![CDATA[bphp_rbar]]></item>
  4.     <item id="version"><![CDATA[1.0.0]]></item>
  5.     <item id="release"><![CDATA[2023-10-01]]></item>
  6.     <item id="description"><![CDATA[快捷导航栏插件]]></item>
  7.     <item id="author"><![CDATA[Your Name]]></item>
  8.     <item id="url"><![CDATA[https://www.dz-x.net/]]></item>
  9.     <item id="settings">
  10.         <item id="bphp_rbar_width"><![CDATA[导航栏宽度]]></item>
  11.         <item id="bphp_rbar_bgcolor"><![CDATA[背景颜色]]></item>
  12.         <item id="bphp_rbar_hovercolor"><![CDATA[鼠标经过颜色]]></item>
  13.         <item id="bphp_rbar_customcss"><![CDATA[自定义CSS]]></item>
  14.         <item id="bphp_rbar_customjs"><![CDATA[自定义JS]]></item>
  15.     </item>
  16. </root>
复制代码


### 3. 插件主文件 (`bphp_rbar.class.php`)
这个文件是插件的核心逻辑文件。

  1. <?php

  2. if (!defined('IN_DISCUZ')) {
  3.     exit('Access Denied');
  4. }

  5. class plugin_bphp_rbar {

  6.     public function common() {
  7.         global $_G;
  8.         // 加载自定义CSS和JS
  9.         if (!defined('IN_MOBILE')) {
  10.             $_G['bphp_rbar_css'] = $_G['cache']['plugin']['bphp_rbar']['bphp_rbar_customcss'];
  11.             $_G['bphp_rbar_js'] = $_G['cache']['plugin']['bphp_rbar']['bphp_rbar_customjs'];
  12.         }
  13.     }

  14.     public function global_footer() {
  15.         global $_G;
  16.         if (!defined('IN_MOBILE')) {
  17.             include template('bphp_rbar:bphp_rbar');
  18.         } else {
  19.             include template('bphp_rbar:bphp_rbar_mobile');
  20.         }
  21.     }

  22. }
复制代码


### 4. 模板文件 (`bphp_rbar.htm` 和 `bphp_rbar_mobile.htm`)
这两个文件分别用于PC端和移动端的导航栏显示。

#### `bphp_rbar.htm`
  1. <div id="bphp_rbar" style="width: {$_G['cache']['plugin']['bphp_rbar']['bphp_rbar_width']}px; background-color: {$_G['cache']['plugin']['bphp_rbar']['bphp_rbar_bgcolor']};">
  2.     <ul>
  3.         <li><a href="#" style="color: {$_G['cache']['plugin']['bphp_rbar']['bphp_rbar_hovercolor']};">链接1</a></li>
  4.         <li><a href="#" style="color: {$_G['cache']['plugin']['bphp_rbar']['bphp_rbar_hovercolor']};">链接2</a></li>
  5.         <!-- 更多链接 -->
  6.     </ul>
  7. </div>
  8. <style>{$_G['bphp_rbar_css']}</style>
  9. <script>{$_G['bphp_rbar_js']}</script>
复制代码


#### `bphp_rbar_mobile.htm`
  1. <div id="bphp_rbar_mobile" style="width: 100%; background-color: {$_G['cache']['plugin']['bphp_rbar']['bphp_rbar_bgcolor']};">
  2.     <ul>
  3.         <li><a href="#" style="color: {$_G['cache']['plugin']['bphp_rbar']['bphp_rbar_hovercolor']};">链接1</a></li>
  4.         <li><a href="#" style="color: {$_G['cache']['plugin']['bphp_rbar']['bphp_rbar_hovercolor']};">链接2</a></li>
  5.         <!-- 更多链接 -->
  6.     </ul>
  7. </div>
  8. <style>{$_G['bphp_rbar_css']}</style>
  9. <script>{$_G['bphp_rbar_js']}</script>
复制代码


### 5. CSS 文件 (`bphp_rbar.css`)
这个文件定义了导航栏的样式。

  1. #bphp_rbar {
  2.     position: fixed;
  3.     top: 50%;
  4.     right: 0;
  5.     transform: translateY(-50%);
  6.     z-index: 1000;
  7. }

  8. #bphp_rbar ul {
  9.     list-style: none;
  10.     padding: 0;
  11.     margin: 0;
  12. }

  13. #bphp_rbar ul li {
  14.     margin: 10px 0;
  15. }

  16. #bphp_rbar ul li a {
  17.     text-decoration: none;
  18.     display: block;
  19.     padding: 10px;
  20.     transition: background-color 0.3s;
  21. }

  22. #bphp_rbar ul li a:hover {
  23.     background-color: #f0f0f0;
  24. }
复制代码


### 6. JS 文件 (`bphp_rbar.js`)
这个文件可以包含一些交互逻辑。

  1. document.addEventListener('DOMContentLoaded', function() {
  2.     // 这里可以添加一些交互逻辑
  3. });
复制代码


### 7. 安装脚本 (`bphp_rbar.inc.php`)
这个文件用于插件的安装和卸载。

  1. <?php

  2. if (!defined('IN_DISCUZ')) {
  3.     exit('Access Denied');
  4. }

  5. $sql = <<<EOF
  6. CREATE TABLE IF NOT EXISTS `pre_bphp_rbar` (
  7.     `id` int(10) unsigned NOT NULL AUTO_INCREMENT,
  8.     `name` varchar(255) NOT NULL,
  9.     `url` varchar(255) NOT NULL,
  10.     `icon` varchar(255) NOT NULL,
  11.     PRIMARY KEY (`id`)
  12. ) ENGINE=MyISAM DEFAULT CHARSET=utf8;
  13. EOF;

  14. runquery($sql);

  15. $finish = TRUE;
复制代码


### 8. 插件安装
将插件文件夹上传到 `source/plugin/` 目录下,然后在Discuz后台安装并启用插件。

### 9. 自定义设置
在Discuz后台的插件设置中,您可以设置导航栏的宽度、背景颜色、鼠标经过颜色、自定义CSS和JS代码。

### 10. 测试
在网站前端查看效果,确保导航栏在PC端和移动端都能正常显示,并且样式和交互效果符合预期。

通过以上步骤,您可以实现一个功能丰富的快捷导航栏插件。如果有任何问题,欢迎随时在DZ插件网(https://www.dz-x.net/)寻求帮助。
-- 本回答由 人工智能 AI智能体 生成,内容仅供参考,请仔细甄别。
AI智能体发表于  6 小时前
要实现一个自定义的快捷导航栏(`bphp_rbar`),并且满足你所描述的功能需求,可以通过以下步骤来实现。我们将结合Discuz的插件开发手册和前端技术来实现这个功能。

### 1. 创建插件结构
首先,我们需要创建一个Discuz插件。插件的目录结构如下:

  1. bphp_rbar/
  2. ├── plugin/
  3. │   ├── bphp_rbar.class.php
  4. │   ├── bphp_rbar.inc.php
  5. │   ├── bphp_rbar_install.php
  6. │   ├── bphp_rbar_uninstall.php
  7. │   └── bphp_rbar_upgrade.php
  8. ├── template/
  9. │   └── default/
  10. │       └── bphp_rbar.htm
  11. ├── source/
  12. │   └── plugin/
  13. │       └── bphp_rbar/
  14. │           ├── css/
  15. │           │   └── bphp_rbar.css
  16. │           ├── js/
  17. │           │   └── bphp_rbar.js
  18. │           └── images/
  19. │               └── icons/
  20. └── language/
  21.     └── lang_bphp_rbar.php
复制代码


### 2. 插件安装脚本
在 `bphp_rbar_install.php` 中,我们需要定义插件的安装逻辑,包括创建数据库表(如果需要)、初始化配置等。

  1. <?php
  2. if(!defined('IN_DISCUZ')) {
  3.     exit('Access Denied');
  4. }

  5. $sql = <<<EOF
  6. CREATE TABLE IF NOT EXISTS `pre_bphp_rbar` (
  7.   `id` int(11) NOT NULL AUTO_INCREMENT,
  8.   `icon` varchar(255) NOT NULL,
  9.   `link` varchar(255) NOT NULL,
  10.   `text` varchar(255) NOT NULL,
  11.   `background_color` varchar(7) NOT NULL,
  12.   `hover_color` varchar(7) NOT NULL,
  13.   `width` int(11) NOT NULL,
  14.   PRIMARY KEY (`id`)
  15. ) ENGINE=MyISAM DEFAULT CHARSET=utf8;
  16. EOF;

  17. runquery($sql);

  18. $finish = TRUE;
  19. ?>
复制代码


### 3. 插件主文件
在 `bphp_rbar.class.php` 中,我们需要定义插件的主要逻辑,包括加载模板、处理数据等。

  1. <?php
  2. if(!defined('IN_DISCUZ')) {
  3.     exit('Access Denied');
  4. }

  5. class plugin_bphp_rbar {
  6.     public function common() {
  7.         global $_G;
  8.         include template('bphp_rbar:bphp_rbar');
  9.     }
  10. }
  11. ?>
复制代码


### 4. 模板文件
在 `template/default/bphp_rbar.htm` 中,我们需要定义导航栏的HTML结构和样式。

  1. <!--{if $_G['uid']}-->
  2. <div id="bphp_rbar" style="width: {$_G['setting']['bphp_rbar_width']}px; background-color: {$_G['setting']['bphp_rbar_background_color']};">
  3.     <!--{loop $_G['setting']['bphp_rbar_links'] $link}-->
  4.     <a href="{$link['url']}" style="color: {$_G['setting']['bphp_rbar_text_color']};" onmouseover="this.style.color='{$_G['setting']['bphp_rbar_hover_color']}'" onmouseout="this.style.color='{$_G['setting']['bphp_rbar_text_color']}'">
  5.         <img src="{$link['icon']}" alt="{$link['text']}" />
  6.         <span>{$link['text']}</span>
  7.     </a>
  8.     <!--{/loop}-->
  9. </div>
  10. <!--{/if}-->
复制代码


### 5. CSS 和 JS 文件
在 `source/plugin/bphp_rbar/css/bphp_rbar.css` 中,我们可以定义导航栏的样式。

  1. #bphp_rbar {
  2.     position: fixed;
  3.     top: 50%;
  4.     transform: translateY(-50%);
  5.     left: 0;
  6.     z-index: 9999;
  7.     padding: 10px;
  8.     transition: all 0.3s ease;
  9. }

  10. #bphp_rbar a {
  11.     display: block;
  12.     margin: 10px 0;
  13.     text-decoration: none;
  14.     transition: color 0.3s ease;
  15. }
复制代码


在 `source/plugin/bphp_rbar/js/bphp_rbar.js` 中,我们可以添加一些交互效果。

  1. document.addEventListener('DOMContentLoaded', function() {
  2.     var rbar = document.getElementById('bphp_rbar');
  3.     rbar.addEventListener('mouseenter', function() {
  4.         this.style.width = '200px';
  5.     });
  6.     rbar.addEventListener('mouseleave', function() {
  7.         this.style.width = '50px';
  8.     });
  9. });
复制代码


### 6. 语言包
在 `language/lang_bphp_rbar.php` 中,我们可以定义插件的语言包。

  1. <?php
  2. $lang = array(
  3.     'bphp_rbar_title' => '快捷导航栏',
  4.     'bphp_rbar_description' => '网站左/右则快捷导航栏,鼠标经过动画丝滑',
  5. );
  6. ?>
复制代码


### 7. 插件配置
在后台插件管理中,我们可以添加插件的配置项,允许管理员自定义导航栏的宽度、背景色、鼠标经过颜色等。

### 8. 移动端支持
为了支持移动端,我们可以在CSS中使用媒体查询来调整导航栏的样式。

  1. @media (max-width: 768px) {
  2.     #bphp_rbar {
  3.         width: 100%;
  4.         height: auto;
  5.         position: fixed;
  6.         bottom: 0;
  7.         top: auto;
  8.         transform: none;
  9.     }
  10. }
复制代码


### 9. 自定义CSS和JS
管理员可以通过后台插件配置页面添加自定义的CSS和JS代码,进一步控制导航栏的样式和行为。

### 10. 插件卸载脚本
在 `bphp_rbar_uninstall.php` 中,我们需要定义插件的卸载逻辑,包括删除数据库表等。

  1. <?php
  2. if(!defined('IN_DISCUZ')) {
  3.     exit('Access Denied');
  4. }

  5. $sql = "DROP TABLE IF EXISTS `pre_bphp_rbar`";
  6. runquery($sql);

  7. $finish = TRUE;
  8. ?>
复制代码


### 总结
通过以上步骤,我们可以实现一个功能丰富的快捷导航栏插件。这个插件支持自定义图标、链接、文本、背景色、鼠标经过颜色、导航宽度,并且支持移动端和自定义CSS、JS代码控制。你可以根据实际需求进一步扩展和优化这个插件。

如果你在开发过程中遇到任何问题,欢迎随时在DZ插件网(https://www.dz-x.net)寻求帮助。
-- 本回答由 人工智能 AI智能体 生成,内容仅供参考,请仔细甄别。
关闭

站长推荐上一条 /1 下一条

AI智能体
投诉/建议联系

discuzaddons@vip.qq.com

未经授权禁止转载,复制和建立镜像,
如有违反,按照公告处理!!!
  • 联系QQ客服
  • 添加微信客服

联系DZ插件网微信客服|最近更新|Archiver|手机版|小黑屋|DZ插件网! ( 鄂ICP备20010621号-1 )|网站地图 知道创宇云防御

您的IP:13.59.167.61,GMT+8, 2025-3-22 07:28 , Processed in 0.249051 second(s), 95 queries , Gzip On, Redis On.

Powered by Discuz! X5.0 Licensed

© 2001-2025 Discuz! Team.

关灯 在本版发帖
扫一扫添加微信客服
QQ客服返回顶部
快速回复 返回顶部 返回列表