• 注册
  • 发动态
  • 发帖子
  • 发视频
  • 发红包
  • 暂没有数据

  • 推荐
  • 视频
  • 关注
  • 瓷器
  • 字画
  • 玉石
  • 钱币
  • 铜器
  • 木器
  • 紫砂
  • 杂项
  • [ls_fbk]
  • 查看全文
  • 查看作者
  • 宫论项目开发记录

    记录2023年项目进度周期。

  • 3
  • 260
  • 0
  • 2.37w
  • 学藏官方心乐小可鸭鸭

    请登录之后再进行评论

    登录
  • 0
    咸鱼梦想lv.2实名用户
    2023年12月04日开发记录
    1、朋友圈内容输出前会主动通过get_post_meta获取like字段,如果存在并且当前用户处于数组名单中,则会创建一个link_text的变量,输出【<i class="fa fa-heart" aria-hidden="true" /></i> 取消】。如果不存在则也会创建link_text变量,删除【<i class="fa fa-heart-o" aria-hidden="true" /></i> 赞】经过这样的处理,用户点击more更多的时候,会自动根据是否已点赞过,显示不同的图标和文字。
    2、xc_like_comment_more事件优化,通过该事件显示或隐藏moments_more组件时,会率先执行【 $('.moments_more .like_comment').hide();】事件,将所有已打开的评论点赞元素进行隐藏处理,然后在根据执行类别对当前朋友圈的like_comment进行显示或隐藏处理。避免用户同时打开多个朋友圈点赞评论元素框,需要一个个手动关闭。
    3、社交消息默认配置组新增两个消息类型:1、朋友圈点赞通知【moments_like】,默认不开启APP通知。2、朋友圈艾特通知【moments_aite】,默认开启APP通知。注:点赞和aite之所以要单独创建一个朋友圈类型,是为了做分类处理。计划新增提供消息查看入口,专门用于朋友圈用户互动消息查看,如果使用传统的like和aite标签,无法做筛查处理。
    4、xc_add_tips社交互动通知事件优化,新增【moments_aite和moments_like】两个类型消息的处理。moments_aite华为到social交互消息类型,moments_like划分到like消息类型,自动在对应的消息类型中进行计数+1处理。同时moments_like和moments_aite的消息正文会通过switch单独定义。内容格式为【用户昵称:+content】
    5、notice_list用户消息数组字段增消息类型:moments,收到朋友圈相关消息(aite、点赞、回复)都会在这个数组分类中进行计数+1。此处计数不影响原有的消息数组结构,仍会在对应的消息类型完成计数处理。只是单独划分一个朋友圈消息类型,用于后续朋友圈消息通知查看处理。
    6、notice-follow-like.php(关注点赞消息通知页面),已适配moments_like消息类型,通过get_results获取数据库消息信息时会装载朋友圈点赞提醒。notice-item.php(交互提醒消息)也已适配moments_aite消息类型,数据库能正常返回朋友圈艾特信息。注:这两个页面打开也会自动清除(朋友圈点赞、朋友圈艾特)未读状态。
    7、新增朋友圈消息通知页面【im/notice/moments.php】,页面唯一标识:notice_moments。这个页面即将会展示用户朋友圈相关消息通知,包括不限于(朋友圈点赞=moments_like、朋友圈艾特=moments_aite、朋友圈回复=moments_comment)。用户可以通过这个也页面来获取自己朋友圈的交互信息。短代码地址:【[xc_link type=global]/im/notice/moments.php】
    8、新增分页函数:xc_moments_notice_consult($offset = 0, $number = 10)需要传递两个变量,offset偏移量(用于分页处理),number是返回结果数量。如果用户未登录则返回false,如果用户已登录则通过wpdb构建一个查询语句,返回xc_notice数据表与用户相关的互动消息。注:返回结果会封装成html,以便前端直接插入结果。
    9、朋友圈消息通知分页函数优化,如果有返回结果(非false)那么将创建一个UPDATE语句,将当前用户未读消息['moments_like', 'moments_aite', 'moments_comment']三个类型(status)标记为已读状态。实现查询成自动将对应的消息全部标记为已读。最后不管有没有结果返回,都会读取当前用户通知数组【notice_list】字段,并将朋友圈的通知未读计数重置为0。
    10、朋友圈点赞成功回调钩子:xc_moments_like_ok_hook,现在会创建一条sql语句来查询用户之前是否已点赞过当前朋友圈内容,构建sql语句为:【user_id=当前用户、post_id=朋友圈编号、notice_type=moments_like】。如果存在点赞记录则会跳过xc_add_tips执行请求,避免用户取消点赞后再点赞重复触发。
    11、朋友圈消息构建用户交互信息时,不在通过用户元字段的方式来获取用户信息。改为通过缓存对象【xc_get_avatar】来一键获取(用户昵称、等级、头像、认证图标)信息,减少执行get_user_meta函数处理次数,并间接做到刷新用户资料缓存的更新处理。注:输出用户昵称头像等信息,全站都采用缓存对象来处理,可以极大提高性能和查询速度。
    12、朋友圈消息通知【notice_moments】页面新增infinite滚动下拉监听,当页面发生滚动(底部间距500像素)后触发ajax,携带参数【type:notice_moments_api、page=页数】到宫论统一分页接口。为了避免出现重复请求,会在发送请求前检测xc_notice_moments_loading变量是否为false,如果为true则直接拦截。当分页接口有响应数据返回后,会根据结果将xc_notice_moments_loading变量改为false或true。
    13、朋友圈消息通知分页查询接口【notice_moments_api】封装完毕,将通过xc_moments_notice_consult查询分页数据。如果查询到结果则会构建HTML信息,然后返回给前端页面【状态码:code=0】。前端会将内容插入到notice_moments_list容器后面,并将xc_notice_moments_loading标记为false,以便继续触发分页请求。同时会通过attr将page页数进行计数+1处理,以便后续的ajax返回的是正确的页数。如果没有结果,则返回【状态码:code=1】,并通过xc_empty_page插入【没有更多内容】到notice_moments_list容器后面。并最后将xc_notice_moments_loading标记为true,阻止后续ajax所有请求。
    14、朋友圈设置页新增status_mark角标提醒,如果是用户自己查看朋友圈设置,会读取notice_list消息数组字段,若['unread']['moments']朋友圈未读消息大于0,则会在右上角显示一个铃铛(fa-bell-o)图标,并且有红色角标圆圈提醒。点击铃铛可以直接进入朋友圈消息通知页面【notice_moments】。注:考虑到管理员可以查看用户的朋友圈设置,因此有个过滤。只有用户本人查看朋友圈的时候才会显示铃铛。
    15、进入朋友圈通知消息页面会检查(status_mark moments)元素是否存在,如果存在会主动通过hide()进行隐藏处理。这样用户通过朋友圈设置页进入消息通知页面时,如果存在角标会被自动清理。并且现在角标会显示实际未读数量,其样式(仅限朋友圈角标)也做了进一步调整,width宽度和height高度移除,采用自适应数字。PADDING左右间距调整为0.7vw。上下间距调整为0.5vw。
  • 0
    心乐lv.2实名用户
    2023年12月02日开发记录
    1、朋友圈内容区域新增一个box(moments_more_)。通过点击朋友圈内有右下角触发的一个边框样式。该容器具备两个按钮控件(1、点赞对应图标fa-heart-o。2、评论对应图标fa-comments-o)。样式风格仿微信朋友圈,通过css绘制了一个简单的抖动动画0.3秒。初次加载时会有个画面过渡。用户通过这个容器可以对朋友圈进行评论点赞等操作。
    2、右下角控件图标高度调整到20px以便适配新增的moments_more_弹出组件。点赞评论容器图标同时做出进一步优化:1、fa图标通过margin-right向左扩充1vw间距,避免图标和文字挨着太紧。2、边框容器设置为4像素,并且将布局变更为flex。3、like和comment的向左间距做24px调整,以便两个菜单有足够的间距。4、点赞增加一个伪类after,用于创建一个竖向虚线放置到容器中间位置来隔开两个图标。
    3、未避免容器样式出现命名冲突,moments_more_变更为为:like_comment,同时在其元素上新增两个自定义属性:author_id(朋友圈作者)、post_id(朋友圈编号)。当内置事件需要后端业务处理时,可以通过this上下文对象来获取对应的自定义属性。同时增加一个子类名:like_comment_朋友圈编号。方便处理隐藏和显示元素。
    4、新增一个事件xc_like_comment_more用于控制评论点赞的空间的展示和隐藏,首先like_comment现在默认是通过display:none进行隐藏处理的,当用户点击xc_like_comment_more事件时 会通过this上下文对象来获取到朋友圈的编号。然后通过post_id检测控件是否处于打开状态,如果处于打开则通过jquery的hide进行隐藏处理。如果未打开则通过show进行显示处理。
    5、xc_like_comment_more事件进一步优化处理,为了防止用户通过已显示的【菜单图标】直接触发隐藏事件,事件内部会通过event.target来获取点击位置,如果点击的元素不在 ".like_comment" 区域内,则才会执行显示/隐藏逻辑。相当于阻止事件的冒泡行为,让其只能通过右下角固定图标来显示或关闭,不干涉菜单图标的原生onclick。
    6、新增朋友圈点赞事件xc_moments_like,需要传递this上下文对象。通closest捕获moments_more父级类型,在使用attr来提取到post_id属性。从而完成对朋友圈编号的锁定处理。这个点赞事件,会触发一个ajax请求,请求的参数包含【type值为:xc_moments_like和post_id朋友圈编号】。后端将根据相应的参数,发起点赞获取取消点赞的请求。
    7、新增朋友圈点赞钩子:xc_moments_like_hook($post_id)。post_id是朋友圈编号参数,该钩子集检测(拦截非法请求操作)、点赞数组名单增删处理、回调(更新缓存查询清理动作)。钩子采用标准的result数组结构返回,code为状态码:1代表执行失败,msg代表失败原因。code=0代表执行请求成功。注:朋友圈点赞和取消点赞执行成功都会返回code=0
    8、朋友圈点赞拦截事件封装完毕,现在在处理点赞请求前会进行以下检测【1、如果用户未登录则直接拒绝并提示登录后重试。2、通过get_post_type获取文章自定义类型,如果不是朋友圈则拦截并提示。3、通过get_post_status获取朋友圈文章状态,如果被删除(回收站),则拦截并提示错误。4、通过xc_is_blacklist检测双方关系,如果对方拉黑了你或者你拉黑了对方 都会拒绝请求】
    9、新增朋友圈文章自定义元字段:like(数组形式),当朋友圈内容被点赞或取消点赞会通过这个数组进行增删处理操作。查询用户是否点赞也可以通过数组查询来进行,如果存在名单则代表已点赞。注:点赞钩子请求会通过检测like数组来处理用户行为,如果用户在名单中,则本次请求是CUT(取消点赞),如果不在名单则请求是ADD(增加名单)。
    10、新增朋友圈点赞回调钩子事件:xc_moments_like_ok_hook(),需要传递三个变量属性($author_id,点赞或取消点赞的用户。$post_id,朋友圈的文章编号。$action,用户操作类型(ADD=代表点赞、cut代表取消点赞))。注:这个钩子是用于复杂业务回调,比如websocket、消息通知、交互行为。为了保证业务不被阻塞、大概率会采用异步进程来执行请求。
    11、朋友圈点赞事件返回结构优化:【点赞成功或取消点赞】code返回code=0,msg返回【ADD或CUT】,前端可以直接根据msg返回内容来判定请求结果是点赞成功还是取消点赞成功。注:钩子返回事件是在xc_moments_like_ok_hook事件完成之后,如果回调钩子是同步执行,那么可能会造成阻塞情况。需要做优化处理!
    12、朋友圈点赞回调钩子现在会通过xc_add_tips来触发【APP+站内信】的消息通知,消息类型为like。为了防止重复通知或错误通知,有两个拦截判断。1、回调动作【action】必须是ADD点赞行为。2、会通过wpdb创建一条查询语句,检测xc_notice数据表是否有【user_id=触发用户、post_id=当前朋友圈编号、type=like】的记录,如果有则跳过。没有则触发。避免用户取消点赞后然后重新点赞会触发通知。
    13、IM消息通知栏优化【notice-item.php=@我的、notice-comment.php=回复、notice-follow-like.php=关注点赞】三个页面涉及link链接的处理,全部通过数据表的link字段来处理。如果没有记录则默认不可点击。有记录的话就使用do_shortcode进行解析,然后在执行页面跳转。
    14、redis对象缓存(用户元字段和文章元字段)优化处理,通过xc_get_post_meta_callback_cache和xc_get_user_meta_callback_cache接管查询时,如果存在redis对象缓存,无论结果是否是序列化字符串,都会通过array封装结果。避免部分结果因为数组类型被强制返回字符串。注:返回结构体后面需要抽空优化下,应该对结果做识别处理!
    15、前端新增回调钩子:xc_hook_moments_like(post_id, action),post_id=朋友圈编号/文章最新状态 action[add=点赞成功 cut=取消点赞]。当后端返回结果为code=0,则会触发这个钩子。页面如果需要有交互行为,通过这个回调钩子来完成即可。因为点赞和评论展示组件目前还没有写好,所以先预留一个钩子。后续页面回调直接通过这个预留钩子来完成即可。

  • 0
    咸鱼梦想lv.2实名用户
    2023年12月01日开发记录
    1、朋友圈文章限流开关,拦截事件封装完毕。【1、检测用户是否登录、未登录将拦截处理。2、检测用户是否为管理员,如果均不是拦截处理。3、检测文章是否存在,不存在则拦截处理。4、检测文章是否属于自定义类型:moments如果不是拦截处理。4、通过get_post_status获取文章的状态,如果是trash则表明文章处于回收站,拦截处理。当所有拦截检测都符合条件,将通过update_post_meta更新朋友圈元字段(limit_views)。
    2、后端成功处理文章限流操作后会返回code状态码,前端将根据code来执行不同的业务逻辑操作。code=1代表拒绝,会通过xc_msg提示错误信息。并将switch标记为false(限流选项卡关闭)。code=0代表设置成功,根据power变量属性值来执行不同的提示信息(文章已被限流/已取消限流)。
    3、在读取朋友圈内容数据时,如果当前用户具备前台管理员权限,那么将通过get_post_meta读取limit_views元字段并赋值到limit_tips,如果返回的值等于ON说明该文章已被限流,那么将会在【删除控件:垃圾桶图标】后面追加显示文字*已被限流*。用于提醒管理员。注:发布者和其它用户都不会显示(仅管理员可见),限流提示文字有特定class类名:limit_views,已将其颜色设置为深红色。
    4、前端新增回调钩子:xc_hook_limit_views_power(post_id, power)post_id=朋友圈编号/文章最新状态 power[on=设置限流off=取消限流],当朋友圈文章进行限流操作后前端将触发这个回调钩子。钩子会执行以下页面交互。【如果是限流请求,会写入limit_views元素内容到moments_delete区域,如果是取消限流则移除limit_views元素】注:为了防止重复写入,会在执行前检测limit_views元素是否存在。
    5、朋友圈内容权限编辑操作(评论开关、访问权限、限流行为)如果后端返回异常(code=1)即:代表执行失败,按照正常的业务逻辑,此时除了需要提示错误还需要重置用户的选择,之前是通过情况【checked】来处理,并不是还原选择。目前已重构这一块的处理逻辑,现在会通过jquery获取朋友圈容器的attr自定义属性,通过filter和prop来完成还原操作。注:限流没有自定义属性,是通过监听limit_views元素是否存在来进行还原操作。
    6、朋友圈文章编辑页面【moments_edit】功能设计完毕,允许用户和管理员执行以下操作。1、删除朋友圈内容(回收站),管理员操作会有消息通知下发给作者。2、设置文章内容的访问权限(会自动清理缓存查询)。3、文章开启评论或关闭评论。4、管理员可以对朋友圈文章执行限流操作,被限流的文章只有作者和粉丝可见。注:以上行为操作都有预留钩子,变更业务逻辑通过绑定钩子来完成即可!
    7、朋友圈设置页面(setting_moments.php)新增一个box容器(moments_limit)显示一个switch选项卡开关,仅限管理员可见。可以对当前用户的朋友圈进行全局限流操作,一旦对方被限流,内容将不会再广场显示(只有对方朋友圈或粉丝自己朋友圈才能刷到)。为了防止操作错对象,会在开关选项卡名称处显示当前用户UID。
    8、朋友圈设置页面(setting_moments)新增change监听,当管理员执行限流switch选项操作时触发。将创建一个ajax后端请求,携带参数【type:moments_limit、power:on或off(限流或取消)、author_id被操作的用户(通过自定义属性来获取)】。后端将根据业务处理逻辑,返回标砖的code状态码。
    9、文章限流和朋友圈限流涉及到switch状态监听优化处理,只有指定的box容器元素存在时才会触发对应的监听事件,避免发布者查看文章或者自己朋友圈设置时,因为box容器不存在造成页面出现死亡圈圈现象。注:凡是涉及权限显示的change监听处理,必须先检测其元素的length是否大于0。
    10、新增朋友圈限流钩子事件:xc_moments_limit_hook($author_id, $power)。author_id是被操作的用户,power是开启或关闭限流限制。该钩子集检测(拦截非法请求操作)、限流状态变更、回调(更新缓存查询清理动作)。钩子采用标准的result数组结构返回,code为状态码:1代表执行失败,msg代表失败原因。code=0代表执行请求成功。
    11、新增option全局字段(moments_limit)数组形式,存储已被限流的朋友圈名单。朋友圈广场大厅需要过滤这个朋友圈的名单,被限流的用户只有自己朋友圈和粉丝朋友圈可以见到,其发布的内容会永远被过滤在公共平台展示。这个字段的增删处理通过【xc_moments_limit_hook】钩子来完成。注:也就是管理员从用户资料入口,进入对方朋友圈设置。然后进行开启或关闭处理。
    12、朋友圈限流钩子封装完毕,钩子首先会检测当前用户是否具备操作权限,如果没有前台管理级别权限将返回code=1,并提示无权操作。然后会对输入参数验证和过滤处理,确保执行的内容是安全可靠的。最后会读取moments_limit配置信息,如果读取失败则创建空数组。然后根据请求(on或off)执行增删处理。最后通过update_option更新moments_limit配置信息。
    13、朋友圈文章限流和朋友圈全局限流都会触发缓存清理,通过clean_redis_key异步进程请求来清理朋友圈公共查询缓存,清理键值:【moments_0:*】。同时朋友圈设置页面,会通过读取moments_limit数组信息,如果被操作的用户存在名单之中,则会在switch表单输出【checked="checked"】,其样式显示开启限流开关。
    14、朋友圈内容分页查询接口xc_moments_consult重构查询语法(公共内容查询部分)1、过滤名单包括(moments_limit被管理员限流名单和moments_close已主动关闭的朋友圈名单)两个名单会去重处理。2、如果文章存在自定义元字段limit_views,并且值等于on则主动过滤处理(该类型的文章属于已被管理员限流操作)。注:公共查询会主动过滤被管理员限流的朋友圈名单和被限流的单篇文章。
  • 查看全文
  • 查看作者
  • 文章测试

    江西·萍乡
  • 4
  • 52
  • 0
  • 1.43w
  • 咸鱼梦想小可鸭鸭心乐学藏官方

    请登录之后再进行评论

    登录
  • 0
    咸鱼梦想lv.2实名用户
    内容测试出
  • 0
    咸鱼梦想lv.2实名用户
    很美美品相如何?
  • 0
    咸鱼梦想lv.2实名用户
    这是什么朝代的?
  • 查看全文
  • 查看作者
  • 鉴定师入驻协议

    欢迎使用宫论APP鉴定师入驻申请功能,本协议主要阐述您申请成为相关领域鉴定师的相关的权利和义务,请您务必仔细阅读。一、概述 1、本协议内容包括协议正文及所有宫论已经发布或将来可能发布的关于鉴定师入驻。所有规则为本协议不可分割的一部分,与协议正文具有同...
  • 学藏官方 学藏官方
  • 2
  • 52
  • 95
  • 官网公告
  • 03-20 09:21 电脑端
  • 查看全文
  • 查看作者
  • 宫论藏品寄售协议

    欢迎使用宫论APP藏品寄售申请功能,本协议主要阐述您作为藏品持宝人相关的权利和义务,请您务必仔细阅读。一、概述 1、本协议内容包括协议正文及所有宫论已经发布或将来可能发布的关于藏品回收的规则。所有规则为本协议不可分割的一部分,与协议正文具有同等法律效...
  • 学藏官方 学藏官方
  • 1
  • 1
  • 303
  • 官网公告
  • 03-17 08:58 电脑端
  • 查看全文
  • 查看作者
  • 藏品回收申请协议

    欢迎使用宫论APP藏品回收功能,本协议主要阐述您作为藏品持宝人相关的权利和义务,请您务必仔细阅读。一、概述 1、本协议内容包括协议正文及所有宫论已经发布或将来可能发布的关于藏品回收的规则。所有规则为本协议不可分割的一部分,与协议正文具有同等法律效力。...
  • 学藏官方 学藏官方
  • 1
  • 1
  • 251
  • 官网公告
  • 03-13 09:29 电脑端
  • 查看全文
  • 查看作者
  • 宫论藏品鉴定协议

    欢迎使用宫论APP鉴赏功能,本协议主要阐述您作为藏品持宝人相关的权利和义务,请您务必仔细阅读。一、概述 1、本协议内容包括协议正文及所有宫论已经发布或将来可能发布的各类规则。所有规则为本协议不可分割的一部分,与协议正文具有同等法律效力。 2...
  • 学藏官方 学藏官方
  • 1
  • 0
  • 222
  • 官网公告
  • 03-11 15:17 电脑端
  • 查看全文
  • 查看作者
  • 淘货发布协议

    淘货发布协议在宫论APP为了能够约束好每个卖家发布商品,也制定了统一的商品发布规范,如果各位也想要开淘宝店铺,那就需要好好去了解一下宫论APP商品的发布规范。第一章 概述第一条【适用范围】适用于在宫论APP发布商品的卖家。第二条【效力级别】本规范已有规定的,适...
  • 学藏官方 学藏官方
  • 2
  • 0
  • 252
  • 官网公告
  • 03-09 15:33 电脑端
  • 查看全文
  • 查看作者
  • 宫论提现协议

    宫论提现协议 《宫论钱包提现协议》(以下简称“本协议”)适用于所有在宫论平台进行提现的用户(以下或称“您”)。本协议被视为《宫论用户服务条款》的补充协议,是其不可分割的组成部分,与其构成统一整体。本协议与《宫论用户服务条款》内容存在冲突的,以本协议为...
  • 学藏官方 学藏官方
  • 2
  • 0
  • 261
  • 官网公告
  • 03-09 11:44 电脑端
  • 查看全文
  • 查看作者
  • 消费者保障服务协议

    本协议由您与济南谋佐科技有限公司共同缔结,本协议具有合同效力。本协议中协议双方合称协议方,济南谋佐科技公司在本协议中亦称为“宫论”。一、协议内容及生效1、本协议内容包括协议正文及所有宫论已经发布或后续发布的相关的规则与协议。前述规则与协议为本协议不可分割的组成...
  • 学藏官方 学藏官方
  • 2
  • 0
  • 220
  • 官网公告
  • 02-25 20:27 电脑端
  • 查看全文
  • 查看作者
  • 店铺保证金协议

    一、什么是店铺保证金?店铺保证金是如果涉及理赔、违规处罚等情况时,可利用店铺保证金进行支付;如没有前述情况,店铺保证金可全额退回的一种机制。二、为什么要缴纳店铺保证金?(1)重点强调-店铺无违规情况认证有效期内且缴纳店铺保证金后下个整点,可搜索到店铺,若未缴纳...
  • 学藏官方 学藏官方
  • 1
  • 0
  • 215
  • 官网公告
  • 02-25 20:20 电脑端
  • 查看全文
  • 查看作者
  • 宫论特殊类目经营资质

    尊敬的宫论商家:为了保障宫论类目健康、提升交易体验、维护商家及买家利益,现对于以下类目入驻认证需提供对应资质:类目店铺类型需要资质陨石骨牙-骨石企业/个人①与平台店铺认证主体信息一致的水野生保护动物经营利用许可证及副本(如许可证上未列举所有可经营物种明细的需额...
  • 学藏官方 学藏官方
  • 1
  • 0
  • 76
  • 官网公告
  • 02-25 20:16 电脑端
  • 单栏布局 列表样式:矩状 侧栏位置: