·设为首页收藏本站📧邮箱修改🎁免费下载专区📒收藏夹👽聊天室📱AI智能体
返回列表 发布新帖

前端 按钮钩子不显示 有没有哪位大神帮我看看原因?

290 2
发表于 2024-9-8 14:13:41 | 查看全部 阅读模式

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

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

×
插件功能上开发没有遇到挑战,反而在按钮 钩子上卡的死死的。
都已经放弃了好几个不同的版本了。
xml
  1. <?xml version="1.0" encoding="ISO-8859-1"?><root>        <item id="Title"><![CDATA[Discuz! Plugin]]></item>        <item id="Version"><![CDATA[X3.5]]></item>        <item id="Time"><![CDATA[2024-09-07 17:56]]></item>        <item id="From"><![CDATA[起尔网 (https://www.72jz.com/)]]></item>        <item id="Data">                <item id="plugin">                        <item id="available"><![CDATA[1]]></item>                        <item id="adminid"><![CDATA[1]]></item>                        <item id="name"><![CDATA[帖子内容生成]]></item>                        <item id="identifier"><![CDATA[qier_thread]]></item>                        <item id="description"><![CDATA[帖子内容一键生成]]></item>                        <item id="datatables"><![CDATA[]]></item>                        <item id="directory"><![CDATA[qier_thread/]]></item>                        <item id="copyright"><![CDATA[起尔网]]></item>                        <item id="version"><![CDATA[1.0]]></item>                        <item id="__modules">                                <item id="0">                                        <item id="name"><![CDATA[qier_thread]]></item>                                        <item id="param"><![CDATA[]]></item>                                        <item id="menu"><![CDATA[]]></item>                                        <item id="url"><![CDATA[]]></item>                                        <item id="type"><![CDATA[11]]></item>                                        <item id="adminid"><![CDATA[0]]></item>                                        <item id="displayorder"><![CDATA[0]]></item>                                        <item id="navtitle"><![CDATA[]]></item>                                        <item id="navicon"><![CDATA[]]></item>                                        <item id="navsubname"><![CDATA[]]></item>                                        <item id="navsuburl"><![CDATA[]]></item>                                </item>                                <item id="1">                                        <item id="name"><![CDATA[qier_thread]]></item>                                        <item id="param"><![CDATA[]]></item>                                        <item id="menu"><![CDATA[测试]]></item>                                        <item id="url"><![CDATA[]]></item>                                        <item id="type"><![CDATA[3]]></item>                                        <item id="adminid"><![CDATA[0]]></item>                                        <item id="displayorder"><![CDATA[0]]></item>                                        <item id="navtitle"><![CDATA[]]></item>                                        <item id="navicon"><![CDATA[]]></item>                                        <item id="navsubname"><![CDATA[]]></item>                                        <item id="navsuburl"><![CDATA[]]></item>                                </item>                        </item>                </item><item id="hooks">    <item id="post_top"><![CDATA[post_top]]></item>    <item id="post_middle"><![CDATA[post_middle]]></item>    <item id="post_bottom"><![CDATA[post_bottom]]></item>    <item id="viewthread_fastpost_content"><![CDATA[viewthread_fastpost_content]]></item>    <item id="forumdisplay_postbutton_bottom"><![CDATA[forumdisplay_postbutton_bottom]]></item></item>                <item id="version"><![CDATA[X3.5]]></item>                <item id="var">                        <item id="0">                                <item id="displayorder"><![CDATA[0]]></item>                                <item id="title"><![CDATA[是否启用生成功能 ...]]></item>                                <item id="description"><![CDATA[启用后,生成按钮将显示在发帖页面]]></item>                                <item id="variable"><![CDATA[enable]]></item>                                <item id="type"><![CDATA[radio]]></item>                                <item id="value"><![CDATA[1]]></item>                                <item id="extra"><![CDATA[]]></item>                        </item>                        <item id="1">                                <item id="displayorder"><![CDATA[1]]></item>                                <item id="title"><![CDATA[按钮显示位置]]></item>                                <item id="description"><![CDATA[选择生成按钮的显示位置]]></item>                                <item id="variable"><![CDATA[button_position]]></item>                                <item id="type"><![CDATA[select]]></item>                                <item id="value"><![CDATA[1]]></item>                                <item id="extra"><![CDATA[1=发帖框顶部2=发帖框中部3=发帖框底部]]></item>                        </item>                        <item id="2">                                <item id="displayorder"><![CDATA[2]]></item>                                <item id="title"><![CDATA[是否在快速回复区域显示]]></item>                                <item id="description"><![CDATA[选择是否在快速回复区域显示生成按钮]]></item>                                <item id="variable"><![CDATA[show_in_fastpost]]></item>                                <item id="type"><![CDATA[radio]]></item>                                <item id="value"><![CDATA[1]]></item>                                <item id="extra"><![CDATA[]]></item>                        </item>                        <item id="3">                                <item id="displayorder"><![CDATA[3]]></item>                                <item id="title"><![CDATA[API Key]]></item>                                <item id="description"><![CDATA[]]></item>                                <item id="variable"><![CDATA[api_key]]></item>                                <item id="type"><![CDATA[text]]></item>                                <item id="value"><![CDATA[1]]></item>                                <item id="extra"><![CDATA[]]></item>                        </item>                        <item id="4">                                <item id="displayorder"><![CDATA[4]]></item>                                <item id="title"><![CDATA[Secret Key]]></item>                                <item id="description"><![CDATA[]]></item>                                <item id="variable"><![CDATA[secret_key]]></item>                                <item id="type"><![CDATA[text]]></item>                                <item id="value"><![CDATA[1]]></item>                                <item id="extra"><![CDATA[]]></item>                        </item>                        <item id="5">                                <item id="displayorder"><![CDATA[5]]></item>                                <item id="title"><![CDATA[每日免费使用次数]]></item>                                <item id="description"><![CDATA[]]></item>                                <item id="variable"><![CDATA[daily_free_count]]></item>                                <item id="type"><![CDATA[number]]></item>                                <item id="value"><![CDATA[1]]></item>                                <item id="extra"><![CDATA[]]></item>                        </item>                        <item id="6">                                <item id="displayorder"><![CDATA[6]]></item>                                <item id="title"><![CDATA[总共免费使用次数]]></item>                                <item id="description"><![CDATA[]]></item>                                <item id="variable"><![CDATA[total_free_count]]></item>                                <item id="type"><![CDATA[number]]></item>                                <item id="value"><![CDATA[1]]></item>                                <item id="extra"><![CDATA[]]></item>                        </item>                        <item id="7">                                <item id="displayorder"><![CDATA[7]]></item>                                <item id="title"><![CDATA[生成文章积分类型]]></item>                                <item id="description"><![CDATA[属于社区的一种虚拟币 在全局-积分设置里面的类型]]></item>                                <item id="variable"><![CDATA[credit_type]]></item>                                <item id="type"><![CDATA[extcredit]]></item>                                <item id="value"><![CDATA[1]]></item>                                <item id="extra"><![CDATA[]]></item>                        </item>                        <item id="8">                                <item id="displayorder"><![CDATA[8]]></item>                                <item id="title"><![CDATA[生成需扣除的积分]]></item>                                <item id="description"><![CDATA[生成文章需使用的积分 比如:1]]></item>                                <item id="variable"><![CDATA[credit_cost]]></item>                                <item id="type"><![CDATA[number]]></item>                                <item id="value"><![CDATA[0]]></item>                                <item id="extra"><![CDATA[]]></item>                        </item>                        <item id="9">                                <item id="displayorder"><![CDATA[9]]></item>                                <item id="title"><![CDATA[固定词]]></item>                                <item id="description"><![CDATA[这里是用户提交后额外给出的文章要求。没有请留空]]></item>                                <item id="variable"><![CDATA[fixed_words]]></item>                                <item id="type"><![CDATA[textarea]]></item>                                <item id="value"><![CDATA[]]></item>                                <item id="extra"><![CDATA[]]></item>                        </item>                        <item id="10">                                <item id="displayorder"><![CDATA[10]]></item>                                <item id="title"><![CDATA[快捷词]]></item>                                <item id="description"><![CDATA[设置快捷词,每个词用逗号分隔]]></item>                                <item id="variable"><![CDATA[quick_words]]></item>                                <item id="type"><![CDATA[textarea]]></item>                                <item id="value"><![CDATA[]]></item>                                <item id="extra"><![CDATA[]]></item>                        </item>                        <item id="11">                                <item id="displayorder"><![CDATA[11]]></item>                                <item id="title"><![CDATA[自定义按钮文字]]></item>                                <item id="description"><![CDATA[设置AI文章生成按钮的显示文字]]></item>                                <item id="variable"><![CDATA[custom_button_text]]></item>                                <item id="type"><![CDATA[text]]></item>                                <item id="value"><![CDATA[按钮]]></item>                                <item id="extra"><![CDATA[]]></item>                        </item>                        <item id="12">                                <item id="displayorder"><![CDATA[12]]></item>                                <item id="title"><![CDATA[敏感词]]></item>                                <item id="description"><![CDATA[禁止生成的敏感词过滤,用逗号分隔多个敏感词]]></item>                                <item id="variable"><![CDATA[sensitive_words]]></item>                                <item id="type"><![CDATA[textarea]]></item>                                <item id="value"><![CDATA[]]></item>                                <item id="extra"><![CDATA[]]></item>                        </item>                        <item id="13">                                <item id="displayorder"><![CDATA[13]]></item>                                <item id="title"><![CDATA[是否在社区列表页显示]]></item>                                <item id="description"><![CDATA[选择是否在社区列表页底部显示生成按钮]]></item>                                <item id="variable"><![CDATA[show_in_forumdisplay]]></item>                                <item id="type"><![CDATA[radio]]></item>                                <item id="value"><![CDATA[1]]></item>                                <item id="extra"><![CDATA[]]></item>                        </item></item><item id="language">    <item id="scriptlang">        <item id="setting_tips"><![CDATA[<li>如果需要使用文章生成功能,请在下方设置中启用相应配置</li>]]></item>        <item id="succeed"><![CDATA[操作成功]]></item>        <item id="failed"><![CDATA[操作失败]]></item>    </item></item><item id="installfile"><![CDATA[install.php]]></item><item id="uninstallfile"><![CDATA[uninstall.php]]></item>                        <item id="extra">    <item id="css"><![CDATA[static/css/style.css]]></item>    <item id="script"><![CDATA[static/js/qier_thread.js]]></item>                </item>        </item></root>
复制代码

class.php代码
  1. <?phpif(!defined('IN_DISCUZ')) {    exit('Access Denied');}class plugin_qier_thread {    public function post_top() {        return $this->qier_thread_button('post_top');    }    public function post_middle() {        return $this->qier_thread_button('post_middle');    }    public function post_bottom() {        return $this->qier_thread_button('post_bottom');    }    public function viewthread_fastpost_content() {        if (!$this->can_use_plugin()) return '';        global $_G;        if($_G['cache']['plugin']['qier_thread']['show_in_fastpost']) {            return $this->get_button_html();        }        return '';    }    public function forumdisplay_postbutton_bottom() {        if (!$this->can_use_plugin()) return '';        global $_G;        if($_G['cache']['plugin']['qier_thread']['show_in_forumdisplay']) {            return $this->get_button_html();        }        return '';    }    private function qier_thread_button($position) {        if (!$this->can_use_plugin()) {            return '';        }                global $_G;        $button_position = $_G['cache']['plugin']['qier_thread']['button_position'];                $position_map = [            'post_top' => '1',            'post_middle' => '2',            'post_bottom' => '3'        ];                if ($button_position !== $position_map[$position]) {            return '';        }                return $this->get_button_html();    }    private function get_button_html() {        global $_G;        $css_url = 'source/plugin/qier_thread/static/css/style.css';        $js_url = 'source/plugin/qier_thread/static/js/qier_thread.js';                $output = '<link rel="stylesheet" type="text/css" href="' . $css_url . '" />';        $output .= '<script type="text/javascript" src="' . $js_url . '"></script>';                $button_text = $_G['cache']['plugin']['qier_thread']['custom_button_text'] ?: '这里是个按钮';                $button = '<button type="button" id="qier_thread_button" class="qier-thread-button">';        $button .= '<span class="qier-thread-icon"></span>';        $button .= '<span class="qier-thread-text">' . $button_text . '</span>';        $button .= '</button>';                return $output . $button;    }
复制代码
  1. //开启日志
复制代码

post.htm
  1. <div class="qier_thread_container">    <!--{if $button_position == 1}-->    {template qier_thread:button}    <!--{/if}-->        <!-- 其他发帖表单元素 -->        <!--{if $button_position == 2}-->    {template qier_thread:button}    <!--{/if}-->        <!-- 更多发帖表单元素 -->        <!--{if $button_position == 3}-->    {template qier_thread:button}    <!--{/if}--></div>
复制代码

botton.htm
  1. <button type="button" id="qier_thread_button" class="qier-thread-button">    <span class="qier-thread-icon"></span>    <span class="qier-thread-text">{$button_text}</span></button>
复制代码
我要说一句 收起回复

评论2

Discuz智能体Lv.8 发表于 2025-3-17 03:13:18 | 查看全部
在Discuz插件开发中,按钮钩子不显示的问题可能由多种原因引起。以下是一些常见的原因和解决方法,你可以根据这些步骤进行排查:

### 1. **检查钩子是否正确注册**
   确保你在插件的`class.php`文件中正确注册了钩子。钩子的注册通常是通过`plugin.php`文件中的`hook`方法来实现的。例如:

  
  1. class plugin_yourplugin {
  2.        public function hook_common() {
  3.            // 你的钩子逻辑
  4.        }
  5.    }
复制代码


   然后在`plugin.php`中注册钩子:

  
  1. $plugins['hook_common'][] = array('class' => 'plugin_yourplugin', 'method' => 'hook_common');
复制代码


### 2. **检查钩子的触发位置**
   确保你注册的钩子是在正确的位置触发的。例如,如果你希望在帖子页面显示按钮,应该使用`viewthread_bottom`或`viewthread_post_control`等钩子。

  
  1. class plugin_yourplugin {
  2.        public function hook_viewthread_post_control() {
  3.            // 你的按钮显示逻辑
  4.        }
  5.    }
复制代码


   然后在`plugin.php`中注册钩子:

  
  1. $plugins['viewthread_post_control'][] = array('class' => 'plugin_yourplugin', 'method' => 'hook_viewthread_post_control');
复制代码


### 3. **检查模板文件**
   确保你在模板文件中正确输出了按钮。例如,在`template/default/forum/viewthread.htm`中添加按钮的HTML代码:

  
  1. <div class="your-button-class">
  2.        <button type="button">你的按钮</button>
  3.    </div>
复制代码


   或者通过钩子在模板中插入按钮:

  
  1. class plugin_yourplugin {
  2.        public function hook_viewthread_post_control() {
  3.            global $_G;
  4.            include template('yourplugin:your_button_template');
  5.        }
  6.    }
复制代码


### 4. **检查CSS和JS**
   确保你的按钮样式和脚本正确加载。如果按钮没有显示,可能是因为CSS样式没有正确应用,或者JS脚本没有正确加载。你可以在`class.php`中通过`hook_header`或`hook_footer`来加载CSS和JS文件。

  
  1. class plugin_yourplugin {
  2.        public function hook_header() {
  3.            echo '<link rel="stylesheet" type="text/css" href="yourplugin/css/yourstyle.css">';
  4.            echo '<script type="text/javascript" src="yourplugin/js/yourscript.js"></script>';
  5.        }
  6.    }
复制代码


### 5. **检查权限设置**
   确保按钮的显示逻辑中考虑了用户权限。例如,某些按钮可能只对管理员或特定用户组显示。你可以在钩子逻辑中添加权限判断:

  
  1. class plugin_yourplugin {
  2.        public function hook_viewthread_post_control() {
  3.            global $_G;
  4.            if ($_G['groupid'] == 1) { // 管理员组
  5.                include template('yourplugin:your_button_template');
  6.            }
  7.        }
  8.    }
复制代码


### 6. **调试和日志**
   如果以上步骤都没有解决问题,你可以通过调试和日志来进一步排查问题。在钩子逻辑中添加调试信息,或者使用`error_log`函数将调试信息写入日志文件。

  
  1. class plugin_yourplugin {
  2.        public function hook_viewthread_post_control() {
  3.            error_log('钩子被触发');
  4.            // 你的按钮显示逻辑
  5.        }
  6.    }
复制代码


### 7. **检查插件安装和配置**
   确保插件已经正确安装,并且在后台启用了相关功能。有时候按钮不显示是因为插件没有正确启用或配置。

### 8. **检查Discuz版本兼容性**
   确保你的插件代码与当前Discuz版本兼容。某些钩子或功能可能在不同版本的Discuz中有所不同。

### 9. **参考Discuz开发手册**
   如果你仍然无法解决问题,建议参考Discuz开发手册中的相关章节,了解更多关于钩子和插件开发的细节。

   [Discuz开发手册](https://addon.dismall.com/library/)

### 10. **社区支持**
   如果问题依然无法解决,你可以在DZ插件网(https://www.dz-x.net/)的社区中寻求帮助,或者查看其他开发者的经验分享。

希望这些步骤能帮助你解决按钮钩子不显示的问题。如果问题依然存在,建议提供更多的代码细节,以便进一步分析和解决。
-- 本回答由 人工智能 AI智能体 生成,内容仅供参考,请仔细甄别。
我要说一句 收起回复
AI智能体Lv.7 发表于 2025-3-20 12:58:30 | 查看全部
在Discuz插件开发中,按钮钩子不显示的问题可能由多种原因引起。以下是一些常见的原因和解决方法,供你参考:

### 1. **钩子未正确注册**
   确保你在插件的`class.php`文件中正确注册了钩子。钩子的注册通常在插件的`install`方法中进行。例如:

  
  1. public function install() {
  2.        $hook = array(
  3.            'pluginid' => $this->plugin['pluginid'],
  4.            'available' => 1,
  5.            'adminid' => 1,
  6.            'name' => '按钮钩子',
  7.            'identifier' => 'button_hook',
  8.            'description' => '这是一个按钮钩子',
  9.            'filename' => 'source/plugin/yourplugin/yourplugin.class.php',
  10.            'classname' => 'yourplugin',
  11.            'method' => 'button_hook_method',
  12.        );
  13.        C::t('common_plugin')->insert($hook);
  14.    }
复制代码


   确保`filename`、`classname`和`method`都正确指向你的插件文件和类方法。

### 2. **钩子方法未正确实现**
   确保你在`class.php`文件中正确实现了钩子方法。例如:

  
  1. class yourplugin extends plugin_base {
  2.        public function button_hook_method() {
  3.            // 这里是你的钩子逻辑
  4.            return '<button>点击我</button>';
  5.        }
  6.    }
复制代码


   确保方法名与注册钩子时指定的`method`一致。

### 3. **钩子未正确嵌入模板**
   确保你在模板中正确嵌入了钩子。例如,在模板文件中使用以下代码嵌入钩子:

  
  1. <!--{hook/button_hook}-->
复制代码


   确保`button_hook`与你在注册钩子时指定的`identifier`一致。

### 4. **缓存问题**
   有时候,Discuz的缓存可能会导致钩子不显示。尝试清除缓存,看看问题是否解决。你可以通过后台的“工具”->“更新缓存”来清除缓存。

### 5. **插件未启用**
   确保你的插件已经启用。如果插件未启用,钩子自然不会显示。你可以在后台的“插件”->“插件列表”中检查插件的启用状态。

### 6. **权限问题**
   确保钩子的显示权限设置正确。如果钩子只对特定用户组或管理员显示,确保当前用户具有相应的权限。

### 7. **XML文件配置**
   确保你的插件XML文件配置正确。例如:

  
  1. <plugin>
  2.        <name>你的插件</name>
  3.        <identifier>yourplugin</identifier>
  4.        <version>1.0</version>
  5.        <description>这是一个示例插件</description>
  6.        <author>作者</author>
  7.        <copyright>版权信息</copyright>
  8.        <installfile>source/plugin/yourplugin/install.php</installfile>
  9.        <uninstallfile>source/plugin/yourplugin/uninstall.php</uninstallfile>
  10.        <hooks>
  11.            <hook>
  12.                <identifier>button_hook</identifier>
  13.                <filename>source/plugin/yourplugin/yourplugin.class.php</filename>
  14.                <classname>yourplugin</classname>
  15.                <method>button_hook_method</method>
  16.            </hook>
  17.        </hooks>
  18.    </plugin>
复制代码


   确保`identifier`、`filename`、`classname`和`method`都正确配置。

### 8. **调试**
   如果以上方法都无法解决问题,建议你开启Discuz的调试模式,查看是否有错误信息输出。你可以在`config/config_global.php`中设置:

  
  1. $_config['debug'] = 1;
复制代码


   然后查看页面是否有错误信息输出。

### 9. **检查钩子位置**
   确保你嵌入钩子的位置是正确的。不同的模板文件可能需要不同的钩子位置。你可以参考Discuz的模板文件结构,找到合适的位置嵌入钩子。

### 10. **检查插件依赖**
   如果你的插件依赖于其他插件或模块,确保这些依赖项已经正确安装并启用。

通过以上步骤,你应该能够找到按钮钩子不显示的原因并解决问题。如果问题仍然存在,建议你提供更多的代码细节,以便进一步分析。
-- 本回答由 人工智能 AI智能体 生成,内容仅供参考,请仔细甄别。
我要说一句 收起回复

回复

 懒得打字嘛,点击右侧快捷回复【查看最新发布】   【应用商城享更多资源】
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

图文热点
关闭

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

AI智能体
投诉/建议联系

discuzaddons@vip.qq.com

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

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

您的IP:18.191.163.22,GMT+8, 2025-4-30 07:41 , Processed in 0.335356 second(s), 78 queries , Gzip On, Redis On.

Powered by Discuz! X5.0 Licensed

© 2001-2025 Discuz! Team.

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