admin 发表于 2024-9-10 09:25:26

邮箱订阅 自适应版(newsletter)[资源更新邮件推送 营销推广 定向推广 快速触达]

插件介绍
多米邮箱订阅插件允许用户通过邮箱订阅网站。用户可以通过输入他们的邮箱地址订阅,并会收到一封包含验证链接的邮箱以确认他们的订阅。

站长可以用来收集意向客户、推送营销信息等,可以快速触达用户,传递重要信息。通过收集用户的邮箱地址,可以进行精准的用户分类和个性化营销,提高营销效果。
可以定期与用户保持联系,提供有价值的内容和优惠信息,可以增强用户的忠诚度和粘性。 通过专业的邮件设计和优质的内容,可以提升品牌的专业形象和用户认可度。
插件支持主题切换、视频嵌入、图片轮播以及社交图标展示,并提供邮箱列表界面。


插件特点
1. 邮件订阅: 用户可以通过输入邮箱订阅新闻通讯,并会收到验证邮件以确认订阅。
2. 重复邮件检查: 插件会检查邮箱的是否已订阅,防止重复订阅。
3. 用户登录检查: 当插件设置中要求用户登录时,未登录用户将被重定向到登录页面。
4. 主题切换: 提供明暗模式切换功能,用户可以根据喜好选择主题。
5. 视频嵌入: 支持嵌入视频,通过 iframe 代码展示。
6. 图片轮播: 使用 Swiper.js 实现图片轮播展示,支持多张图片的滑动切换。
7. 社交图标: 支持展示多个社交媒体图标,用户可以通过这些图标访问相关的社交媒体页面。
8. 语言自定义: 插件支持自定义语言,可以根据插件设置显示相应的文本。
9. 邮箱列表管理: 管理员可以查看所有提交的邮箱列表,包括提交时间、用户ID、邮箱地址和是否验证的信息。
10. 自适应页面:根据屏幕宽度响应式显示界面


使用说明
1. 安装并启用插件
2. 设置插件的所有选项
3. 用户访问插件页面,可以看到配置好的标题、副标题、特点、视频和图片轮播。
4. 用户输入电子邮件地址并点击“订阅”按钮,会收到一封验证邮件。
5. 用户点击邮件中的验证链接完成订阅确认。
6. 管理员可以在后台管理界面查看所有订阅用户的信息,包括他们的电子邮件地址和验证状态。
7. 插件主页面URL:plugin.php?id=newsletter:newsletter


注意事项


[*]邮件发送配置: 确保dzx本身的邮件发送功能配置正确,以便用户能够收到验证邮件。


[*]社交图标配置: 配置社交图标时,确保图标文件已上传到 plugin/newsletter/images 目录。


[*]样式修改: 若需要修改样式,可以编辑 source/plugin/newsletter/common.css 文件。


[*]自定义语言: 确保插件的语言配置正确,以便能够显示相应的文本。

dqoogmkc 发表于 2024-9-11 14:45:17

太牛了!牛!!

AI智能体 发表于 2025-3-14 06:55:19

作为DZX技术团队的一员,我将根据Discuz开发规范为您详细分析该邮箱订阅插件的实现方案:

一、邮件验证核心逻辑(需结合插件安装脚本规范):
1. 订阅表单处理应使用plugin.php入口文件机制
2. 参数接收建议采用以下安全方式:
$email = daddslashes(trim($_GET['email']));
$uid = intval($_G['uid']);
3. 验证链接生成需遵循Discuz路由规则:
$verifyurl = $_G['siteurl']."plugin.php?id=newsletter:verify&hash=".md5($email.$timestamp);

二、主题切换实现建议:
1. 使用CSS变量定义主题色值
:root {
--primary-color: #2d8cf0;
}
{
--primary-color: #1890ff;
}
2. 通过localStorage持久化存储用户选择
themeSwitch.addEventListener('click', () => {
document.documentElement.setAttribute('data-theme',
    localStorage.getItem('theme') === 'dark' ? 'light' : 'dark'
);
});

三、图片轮播优化方案:
1. 遵循Discuz静态资源加载规范
<!--{template common/header}-->
<link rel="stylesheet" href="{$_G['siteurl']}source/plugin/newsletter/swiper.min.css">
<!--{subtemplate common/swiper_js}-->
2. 初始化应使用Discuz的JS框架封装方法
Discuz.extend('swiper', function(){
new Swiper('.swiper-container', {
    loop: true,
    autoplay: { delay: 5000 }
});
});

四、数据库设计规范:
1. 安装脚本中需创建订阅表
CREATE TABLE IF NOT EXISTS `pre_newsletter` (
`id` int(10) unsigned NOT NULL auto_increment,
`uid` mediumint(8) unsigned NOT NULL DEFAULT '0',
`email` varchar(255) NOT NULL,
`status` tinyint(1) NOT NULL DEFAULT '0',
`dateline` int(10) unsigned NOT NULL DEFAULT '0',
PRIMARY KEY (`id`),
UNIQUE KEY `email` (`email`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;

五、安全防护要点:
1. 频率限制使用Discuz内置方法
if(!submitcheck('newslettersubmit', 0, $seccodecheck)) {
    showmessage('submit_check_error');
}
2. 邮件地址验证需严格过滤
if(!isemail($email)) {
    showmessage('email_format_error');
}

六、模板开发建议:
1. 使用Discuz模板继承机制
<!--{template common/header}-->
<div class="wp newsletter-wrapper">
<!--{block/header}-->
<!--{subtemplate newsletter/form}-->
</div>
<!--{template common/footer}-->

七、后台管理优化:
1. 列表分页使用core内置方法
$perpage = 20;
$start = ($page - 1) * $perpage;
$count = C::t('#newsletter#newsletter')->count();
$multipage = multi($count, $perpage, $page, "admin.php?action=plugins&operation=config&identifier=newsletter");

八、邮件模板规范:
1. 使用语言包变量
$subject = lang('plugin/newsletter', 'email_verify_subject');
$message = lang('plugin/newsletter', 'email_verify_content', array(
    'username' => $_G['username'],
    'sitename' => $_G['setting']['sitename'],
    'verifyurl' => $verifyurl
));

遇到具体问题时,可参考以下排查路径:
1. 邮件发送问题:检查source/class/discuz/discuz_mail.php配置
2. 样式冲突问题:使用Chrome审查元素查看CSS优先级
3. 多语言失效:检查plugin/newsletter/language目录结构
4. 验证失败:检查$_G['setting']['seccodedata']状态

如需深度定制开发,建议参考DZX提供的Discuz开发者文档中心获取技术资料,我们团队也提供专业的技术支持服务。
-- 本回答由 人工智能 AI智能体 生成,内容仅供参考,请仔细甄别。
页: [1]
查看完整版本: 邮箱订阅 自适应版(newsletter)[资源更新邮件推送 营销推广 定向推广 快速触达]