ChatGPT批量写原创文章软件

关于discuzloop的信息

php discuz的定时任务是什么原理怎么实现的?求高手解答php中定时计划任务的实现原理:当 PHP 脚本正常地运行 NORMAL 状态时,连接为有效。当远程客户端中断连接时,ABORTED 状态的标记将会被打开。

本文目录一览:

  • 1、php discuz的定时任务是什么原理怎么实现的?求高手解答
  • 2、discuz教程:如何去掉论坛右下角的新短消息提醒
  • 3、discuz3.4首页如何调用帖子最后回复内容
  • 4、discuz的loop标签取到的数据可以排序吗?怎么排序
  • 5、discuz会员如何显示以下形式!最好有详细的代码或者思路!

php discuz的定时任务是什么原理怎么实现的?求高手解答

php中定时计划任务的实现原理:

当 PHP 脚本正常地运行 NORMAL 状态时,连接为有效。当远程客户端中断连接时,ABORTED 状态的标记将会被打开。远程客户端连接的中断通常是由用户点击 STOP 按钮导致的。当连接时间超过 PHP 的时限时,TIMEOUT 状态的标记将被打开。

示例代码:

?php

ignore_user_abort(true);set_time_limit(0);

date_default_timezone_set('PRC'); // 切换到中国的时间

$run_time = strtotime('+1 day'); // 定时任务第一次执行的时间是明天的这个时候

$interval = 3600*12; // 每12个小时执行一次

if(!file_exists(dirname(__FILE__).'/cron-run')) exit(); // 在目录下存放一个cron-run文件,如果这个文件不存在,说明已经在执行过程中了,该任务就不能再激活,执行第二次,否则这个文件被多次访问的话,服务器就要崩溃掉了

do {

if(!file_exists(dirname(__FILE__).'/cron-switch')) break; // 如果不存在cron-switch这个文件,就停止执行,这是一个开关的作用

$gmt_time = microtime(true); // 当前的运行时间,精确到0.0001秒

$loop = isset($loop) $loop ? $loop : $run_time - $gmt_time; // 这里处理是为了确定还要等多久才开始第一次执行任务,$loop就是要等多久才执行的时间间隔

$loop = $loop 0 ? $loop : 0;

if(!$loop) break; // 如果循环的间隔为零,则停止

sleep($loop);

// ...

// 执行某些代码

// ...

@unlink(dirname(__FILE__).'/cron-run'); // 这里就是通过删除cron-run来告诉程序,这个定时任务已经在执行过程中,不能再执行一个新的同样的任务

$loop = $interval;

} while(true);

关于discuzloop的信息 第1张

discuz教程:如何去掉论坛右下角的新短消息提醒

如何去掉论坛右下角的新短消息提醒

打开\template\default\common\footer.htm文件,然后找到137-150行的代码删除即可

   

script type="text/javascript"

        var h5n = new Html5notification();

        if(h5n.issupport()) {

                !--{if $_G[member][newpm]  $_GET[do] != 'pm'}--

                h5n.shownotification('pm', '$_G[siteurl]home.php?mod=spacedo=pm', '!--{avatar($_G[uid],small,true)}--', '{lang newpm_subject}', '{lang newpm_notice_info}');

                !--{/if}--

                !--{if $_G[member][newprompt]  $_GET[do] != 'notice'}--

                                !--{loop $_G['member']['category_num'] $key $val}--

                                        !--{eval $noticetitle = lang('template', 'notice_'.$key);}--

                                        h5n.shownotification('notice_$key', '$_G[siteurl]home.php?mod=spacedo=noticeview=$key', '!--{avatar($_G[uid],small,true)}--', '$noticetitle ($val)', '{lang newnotice_notice_info}');

                                !--{/loop}--

                !--{/if}--

        }

        /script

discuz3.4首页如何调用帖子最后回复内容

但是$post[]和$_G[forum_thread][]区别在于后者是全局变量,也就是调用的整个帖子的作者,即楼主,如果调用对应楼层的,那么就是loop循环中使用$post[author]。

discuz的loop标签取到的数据可以排序吗?怎么排序

可以排序啊!

举例,这样一段调用代码:

[loop]

lia href="{url}" title="{title}"{target}em{currentorder}/em{title}/a/li

[/loop]

方法1、重写代码,将上面的代码写为:

[index=1]

lia href="{url}" title="{title}"{target}em{currentorder}/em{title}/a/li

[/index]

[index=2]

lia href="{url}" title="{title}"{target}em{currentorder}/em{title}/a/li

[/index]

[loop]

lia href="{url}" title="{title}"{target}em{currentorder}/em{title}/a/li

[/loop]

index=1的意思就是取到的数据第一个,放在第一位。以此类推。

方法2、不需要重写代码,在diy模式下编辑该模块的数据,设置数据ID就可以了。

欢迎交流

discuz会员如何显示以下形式!最好有详细的代码或者思路!

后台里 门户 » 模块模板 建立一个 会员调用的模版 思路是这样的。

你可以使用[loop]...[/loop]标签来循环显示模块中的数据;如果要在模板中多处循环可以使用[loop1]...[/loop1]的方式扩展(只能扩展1-9个)

你可以使用[order=N]...[/order]标签来替代默认loop中的第N个位置数据的展示,你可以使用[order1=N]...[/order1]的方式来扩展(对应[loop1])

显示全部提示...

你可以使用[index=N]...[/index]的方式来指定第N条数据的展示方式,由该语法指定的数据不再在loop循环中出现,可以通过[index1]...[/index1]的方式来扩展(只能扩展1-9个)以实现同一条数据多处展示

你可以使用可生成缩略图的图片标签/可指定打开方式的链接,并在生成模块时指定缩略图大小/链接打开方式

某些模块(如静态模块)内容是由数据源生成的,不需要对应模板

字段项(如:{title})只在[loop]、[order]、[index]标签内生效

你可以使用[loop]...[/loop]标签来循环显示模块中的数据;如果要在模板中多处循环可以使用[loop1]...[/loop1]的方式扩展(只能扩展1-9个)

你可以使用[order=N]...[/order]标签来替代默认loop中的第N个位置数据的展示,你可以使用[order1=N]...[/order1]的方式来扩展(对应[loop1])

显示全部提示...

你可以使用[index=N]...[/index]的方式来指定第N条数据的展示方式,由该语法指定的数据不再在loop循环中出现,可以通过[index1]...[/index1]的方式来扩展(只能扩展1-9个)以实现同一条数据多处展示

你可以使用可生成缩略图的图片标签/可指定打开方式的链接,并在生成模块时指定缩略图大小/链接打开方式

某些模块(如静态模块)内容是由数据源生成的,不需要对应模板

字段项(如:{title})只在[loop]、[order]、[index]标签内生效

相关文章