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

有没有公共淘帖功能 New

204 2
发表于 2024-1-11 16:57:48 | 查看全部 阅读模式

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

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

×
就是站长创建如,美女,风景,帅哥 ,吃喝玩乐,挂羊头,5个淘帖专辑,所有人都可以通过帖子添加到这些专辑里面。










我知道答案 回答被采纳将会获得1 贡献 已有1人回答
我要说一句 收起回复

评论2

拾光Lv.8 发表于 2024-1-11 16:58:09 | 查看全部
没公共淘帖感觉这个功能没啥用,无利可图基本没啥人发淘帖,个人也就心情好发1~2个,估计像番茄小说社区,这样子才能玩得动这个 功能
我要说一句 收起回复
AI智能体Lv.7 发表于 2025-3-20 00:38:56 | 查看全部
要实现站长创建淘帖专辑,并允许所有用户将帖子添加到这些专辑的功能,可以通过以下步骤来实现:

### 1. 创建淘帖专辑
站长可以通过后台创建淘帖专辑。具体步骤如下:
- 登录Discuz后台,进入“门户” -> “淘专辑管理”。
- 点击“添加淘专辑”,填写专辑名称(如“美女”、“风景”、“帅哥”等),并设置专辑的封面、描述等信息。
- 保存后,这些专辑就会在前台显示。

### 2. 允许用户添加帖子到专辑
默认情况下,Discuz的淘帖功能是允许用户创建自己的专辑,并将帖子添加到自己的专辑中。如果要实现所有用户都可以将帖子添加到站长创建的专辑中,可以通过以下方式实现:

#### 方法一:修改权限设置
- 进入后台,找到“用户” -> “用户组” -> “编辑用户组”。
- 在“论坛相关” -> “淘专辑相关权限”中,设置“允许添加帖子到淘专辑”为“是”。
- 这样,用户就可以将帖子添加到任何公开的淘专辑中,包括站长创建的专辑。

#### 方法二:自定义插件
如果默认功能无法满足需求,可以通过开发自定义插件来实现更复杂的功能。以下是一个简单的插件开发思路:

1. **创建插件**:
   - 在`source/plugin/`目录下创建一个新的插件目录,例如`common_taotie`。
   - 创建`plugin.xml`文件,定义插件的基本信息。

2. **添加钩子**:
   - 在帖子页面添加一个“添加到淘专辑”的按钮,用户点击后可以选择站长创建的专辑。
   - 使用Discuz的钩子机制,在帖子页面嵌入自定义的HTML和JavaScript代码。

3. **处理提交**:
   - 当用户选择专辑并提交时,通过AJAX将帖子ID和专辑ID提交到后台。
   - 在后台处理逻辑,将帖子添加到指定的专辑中。

4. **权限控制**:
   - 在插件中实现权限控制,确保只有登录用户才能将帖子添加到专辑中。

### 3. 示例代码
以下是一个简单的插件示例代码:

#### `plugin.xml`
  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <root>
  3.     <item id="common_taotie">
  4.         <name>公共淘帖功能</name>
  5.         <version>1.0</version>
  6.         <description>允许用户将帖子添加到站长创建的淘专辑中</description>
  7.         <author>DZ-X</author>
  8.         <url>https://www.dz-x.net</url>
  9.         <install>install.php</install>
  10.         <uninstall>uninstall.php</uninstall>
  11.         <upgrade>upgrade.php</upgrade>
  12.     </item>
  13. </root>
复制代码


#### `source/plugin/common_taotie/hook.class.php`
  1. <?php
  2. if (!defined('IN_DISCUZ')) {
  3.     exit('Access Denied');
  4. }

  5. class plugin_common_taotie {
  6.     public function viewthread_postbottom_output() {
  7.         global $_G;
  8.         $taotie_albums = C::t('#common_taotie#common_taotie_albums')->fetch_all();
  9.         $html = '<div class="taotie-add-to-album">';
  10.         $html .= '<select id="taotie-album-select">';
  11.         foreach ($taotie_albums as $album) {
  12.             $html .= '<option value="' . $album['id'] . '">' . $album['name'] . '</option>';
  13.         }
  14.         $html .= '</select>';
  15.         $html .= '<button onclick="addToAlbum(' . $_G['tid'] . ')">添加到专辑</button>';
  16.         $html .= '</div>';
  17.         return $html;
  18.     }
  19. }

  20. class plugin_common_taotie_forum extends plugin_common_taotie {
  21. }
复制代码


#### `source/plugin/common_taotie/template/taotie.js`
  1. function addToAlbum(tid) {
  2.     var albumId = document.getElementById('taotie-album-select').value;
  3.     var xhr = new XMLHttpRequest();
  4.     xhr.open('POST', 'plugin.php?id=common_taotie:add_to_album', true);
  5.     xhr.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
  6.     xhr.onload = function() {
  7.         if (xhr.status === 200) {
  8.             alert('帖子已成功添加到专辑!');
  9.         } else {
  10.             alert('添加失败,请重试。');
  11.         }
  12.     };
  13.     xhr.send('tid=' + tid + '&album_id=' + albumId);
  14. }
复制代码


#### `source/plugin/common_taotie/add_to_album.php`
  1. <?php
  2. if (!defined('IN_DISCUZ')) {
  3.     exit('Access Denied');
  4. }

  5. $tid = intval($_POST['tid']);
  6. $album_id = intval($_POST['album_id']);

  7. if ($tid && $album_id) {
  8.     C::t('#common_taotie#common_taotie_posts')->insert(array(
  9.         'tid' => $tid,
  10.         'album_id' => $album_id,
  11.         'dateline' => TIMESTAMP,
  12.     ));
  13.     echo json_encode(array('success' => true));
  14. } else {
  15.     echo json_encode(array('success' => false));
  16. }
复制代码


### 4. 数据库表
你还需要创建相应的数据库表来存储专辑和帖子的关系:

  1. CREATE TABLE `pre_common_taotie_albums` (
  2.     `id` INT(10) UNSIGNED NOT NULL AUTO_INCREMENT,
  3.     `name` VARCHAR(255) NOT NULL,
  4.     `description` TEXT,
  5.     PRIMARY KEY (`id`)
  6. ) ENGINE=MyISAM;

  7. CREATE TABLE `pre_common_taotie_posts` (
  8.     `id` INT(10) UNSIGNED NOT NULL AUTO_INCREMENT,
  9.     `tid` INT(10) UNSIGNED NOT NULL,
  10.     `album_id` INT(10) UNSIGNED NOT NULL,
  11.     `dateline` INT(10) UNSIGNED NOT NULL,
  12.     PRIMARY KEY (`id`)
  13. ) ENGINE=MyISAM;
复制代码


### 5. 安装和卸载脚本
你还需要编写插件的安装和卸载脚本,以便在启用或禁用插件时自动创建或删除数据库表。

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

  5. $sql = <<<EOF
  6. CREATE TABLE IF NOT EXISTS `pre_common_taotie_albums` (
  7.     `id` INT(10) UNSIGNED NOT NULL AUTO_INCREMENT,
  8.     `name` VARCHAR(255) NOT NULL,
  9.     `description` TEXT,
  10.     PRIMARY KEY (`id`)
  11. ) ENGINE=MyISAM;

  12. CREATE TABLE IF NOT EXISTS `pre_common_taotie_posts` (
  13.     `id` INT(10) UNSIGNED NOT NULL AUTO_INCREMENT,
  14.     `tid` INT(10) UNSIGNED NOT NULL,
  15.     `album_id` INT(10) UNSIGNED NOT NULL,
  16.     `dateline` INT(10) UNSIGNED NOT NULL,
  17.     PRIMARY KEY (`id`)
  18. ) ENGINE=MyISAM;
  19. EOF;

  20. runquery($sql);

  21. $finish = TRUE;
复制代码


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

  5. $sql = <<<EOF
  6. DROP TABLE IF EXISTS `pre_common_taotie_albums`;
  7. DROP TABLE IF EXISTS `pre_common_taotie_posts`;
  8. EOF;

  9. runquery($sql);

  10. $finish = TRUE;
复制代码


### 总结
通过以上步骤,你可以实现站长创建淘帖专辑,并允许所有用户将帖子添加到这些专辑的功能。如果需要更复杂的功能,可以进一步扩展插件的功能。
-- 本回答由 人工智能 AI智能体 生成,内容仅供参考,请仔细甄别。
我要说一句 收起回复

回复

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

本版积分规则

图文热点
关闭

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

AI智能体
投诉/建议联系

discuzaddons@vip.qq.com

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

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

您的IP:18.191.187.74,GMT+8, 2025-4-28 19:47 , Processed in 0.397787 second(s), 89 queries , Gzip On, Redis On.

Powered by Discuz! X5.0 Licensed

© 2001-2025 Discuz! Team.

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