SAE版给首页添加分页功能
@ego008 一直不把SAE版升级到1.04,导致首页没有分页,用起来比较蛋疼,今天看了一下1.04的代码,发现要要移植到SAE版上还是比较简单的。我说一下方法吧 1.04在.htaccess里添加了一句 RewriteRule ^page/([0-9]+)$ indexpage.php?page=$1 [L] 所以我们得修改网站根目录的config.yaml文件,添加一行
- rewrite: if( path ~ "^page/([0-9]+)$" ) goto "indexpage.php?page=$1" 然后把https://github.com/cmxz/youbbs/blob/master/indexpage.php 里面的代码复制粘贴成php文件【注意要保存成utf-8编码】,然后上传到网站根目录。 再把https://github.com/cmxz/youbbs/blob/master/templates/default/indexpage.php 和https://github.com/cmxz/youbbs/blob/master/templates/default/ios_indexpage.php 这两个保存成php文件上传到论坛/templates/default/目录下(这两个文件待会儿还要改一些内容) 然后打开/templates/default/home.php文件,在第49行(是一个空行)处粘贴下面代码 if(count($articledb) == $options['home_shownum']){ echo '<div class="pagination">'; echo '<a href="/page/2" class="float-right">下一页 »</a>'; echo '<div class="c"></div> </div>'; }
接着再打开/templates/default/ios_home.php,在46行(空行)处粘贴下面代码 if(count($articledb) == $options['home_shownum']){
echo '<div class="pagination">';
echo '<a href="/page/2" class="float-right">下一页 &raquo;</a>';
echo '<div class="c"></div>
</div>';
}
然后你访问论坛就应该可以在首页下面看到“下一页”链接了,不过你会发现点击下一页后显示的页面头像无法显示,这是才是SAE版和VPS版的区别 你需要把刚才上传的/templates/default/ios_indexpage.php文件打开,把21行的 <img src="/avatar/mini/',$article['uavatar'],'.png" alt="',$article['author'],'" /> 替换成 <img src="',$options['base_avatar_url'],'/',$article['uavatar'],'.jpg!mini" alt="',$article['author'],'" /> 再打开/templates/default/indexpage.php,把21-23行的 echo '<img src="/avatar/normal/',$article['uavatar'],'.png" alt="',$article['author'],'" />'; }else{
echo '<img src="/static/grey.gif" data-original="/avatar/normal/',$article['uavatar'],'.png" alt="',$article['author'],'" />';
替换成 echo '<img src="',$options['base_avatar_url'],'/',$article['uavatar'],'.jpg!normal" alt="',$article['author'],'" />'; }else{
echo '<img src="/static/grey.gif" data-original="',$options['base_avatar_url'],'/',$article['uavatar'],'.jpg!normal" alt="',$article['author']
至此,你就给youbbs1.0.3添加上了分页功能`(∩_∩)′
好吧,我找到了,在根目录下的common.php文件里有一句 $is_mobie = preg_match('/(iPod|iPhone|Android|SymbianOS|Windows Phone OS|iOS|WAP|ucweb|Opera Mini|BlackBerry|webOS|UCWEB|Blazer|PSP)/i', $user_agent); 只要给这里添加就好了
@沉默小子g common.php $user_agent = strtolower($_SERVER['HTTP_USER_AGENT']); if($user_agent){
$is_spider = preg_match('/(bot|crawl|spider|slurp|sohu-search|lycos|robozilla|google)/i', $user_agent);
$is_mobie = preg_match('/(iPod|iPhone|Android|Opera Mini|BlackBerry|webOS|UCWEB|Blazer|PSP)/i', $user_agent);
我发现即使输入的文字和图片url在一行(之间没有换行),但显示出来后图片和文字之间总是有换行的。我看了common.php文件里的set_content函数是格式化内容的,其中 $text = preg_replace($img_re, '<img src="'.$options['base_url'].'/static/grey2.gif" data-original="\1" alt="" />', $text); 函数是用来替换图片的 而且使用了lazy load插件来延迟加载图片,但我还是不知道该修改什么才能使得图文之间不自动换行,只有当用户输入回车后才换行@ego008
默认是display:block 删除这个属性。
刚才发现一个问题,chrome 自动给img 标签添加一个display:block 的style
@ego008 问一个关于php函数的问题吧 我想在论坛添加几个简单的表情功能,思路是在set_content函数里使用preg_replace函数替换特定字符为图片,代码如下(我用的是at+表情名,而且禁止注册用户里有表情名,且这个处理函数是在at用户的前面以确保$text里面的at字符在匹配用户前都变成了图片链接) $expression =array("/@呲牙/","/@鄙视/","/@折磨/");
$reexpression =array("呲牙","鄙视","折磨");
ksort($expression);
ksort($reexpression);
$text=preg_replace($expression,'<img src="'.$options['base_url'].'/static/expression/'.$reexpression.'.gif" /> ',$text);
以上代码在实际测试时替换成的图片url都是/static/expression/Array.gif 但是当我不用数组,只用字符串时却可以正常显示图片,能否帮忙看看是那块儿的问题,感激不尽