沉默小子g
沉默小子g
3228 29 0

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 ''; }

接着再打开/templates/default/ios_home.php,在46行(空行)处粘贴下面代码
if(count($articledb) == $options['home_shownum']){
echo '

';
}
然后你访问论坛就应该可以在首页下面看到“下一页”链接了,不过你会发现点击下一页后显示的页面头像无法显示,这是才是SAE版和VPS版的区别
你需要把刚才上传的/templates/default/ios_indexpage.php文件打开,把21行的
',$article['author'],'
替换成
',$article['author'],'
再打开/templates/default/indexpage.php,把21-23行的
echo '',$article['author'],'';
}else{
echo '',$article['author'],'';
替换成
echo '',$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添加上了分页功能`(∩_∩)′

0

See Also

Nearby


Discussion (29)

沉默小子g
沉默小子g 2013-04-08 04:18

另外,@ego008 求教那个文件是判断用户浏览器的?

0
沉默小子g
沉默小子g 2013-04-08 05:37

好吧,我找到了,在根目录下的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);
只要给这里添加就好了

0
jat001
jat001 2013-04-08 05:40

@沉默小子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);

0
沉默小子g
沉默小子g 2013-04-08 08:35

我发现即使输入的文字和图片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

0
ego008
ego008 2013-04-08 09:57

@沉默小子g css img display:block

0
沉默小子g
沉默小子g 2013-04-08 10:15

@ego008 你是说修改/static/default/style.css文件,把img { border: none; }修改吗?
我改为img { display:block }
依旧不行,见下图

0
沉默小子g
沉默小子g 2013-04-08 10:15

另外,我对css一窍不通,希望你能说明白一点儿,谢谢了

0
ego008
ego008 2013-04-08 10:24

同行

同行测试:在chrome 上修改css

0
沉默小子g
沉默小子g 2013-04-08 10:25


同行测试:在chrome 上修改css

0
沉默小子g
沉默小子g 2013-04-08 10:26

肿么不显示图片?

0
沉默小子g
沉默小子g 2013-04-08 10:26


%20%20%3Ca%20href= 同行测试

0
沉默小子g
沉默小子g 2013-04-08 10:27

依旧不在同一行

你看看

0
ego008
ego008 2013-04-08 10:27

.topic-content img
.commont-content img

0
沉默小子g
沉默小子g 2013-04-08 10:27

0
沉默小子g
沉默小子g 2013-04-08 10:28

而且,多个图片时会匹配出错

0
沉默小子g
沉默小子g 2013-04-08 10:31

.commont-content img的本来就是display:block

0
沉默小子g
沉默小子g 2013-04-08 10:37

@ego008 把那个改成display:inline 可以显示到同一行了,不过对多个图片的匹配依旧有问题

0
ego008
ego008 2013-04-08 10:37

默认是display:block
删除这个属性。

刚才发现一个问题,chrome 自动给img 标签添加一个display:block 的style

0
ego008
ego008 2013-04-08 10:38

多个相同的图片是有问题,我看看正则能不能修好这个bug

0
沉默小子g
沉默小子g 2013-04-08 10:40

@ego008 连续发多个图片链接,之间用多个空格连接甚至用中文连接,都会有问题http://ww4.sinaimg.cn/large/a74ecc4cjw1e3ie5egis8j.jpg

0
ego008
ego008 2013-04-08 11:41

14楼应该是全角空格问题

英文有空格分隔,中文没有。

0
沉默小子g
沉默小子g 2013-04-08 12:03

0
沉默小子g
沉默小子g 2013-04-08 12:04

0
沉默小子g
沉默小子g 2013-04-08 12:04

0
沉默小子g
沉默小子g 2013-04-08 12:05

@ego008 无论是全角还是半角,都一样

0
ego008
ego008 2013-04-08 12:56

本地测试正常

0
沉默小子g
沉默小子g 2013-04-08 14:22

@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
但是当我不用数组,只用字符串时却可以正常显示图片,能否帮忙看看是那块儿的问题,感激不尽

0
沉默小子g
沉默小子g 2013-04-08 14:23

即当我添加
$expression ="/ @呲牙 /";
$reexpression ="呲牙";
$text=preg_replace($expression,'<img src="'.$options['base_url'].'/static/expression/'.$reexpression.'.gif" /> ',$text);
时输入at呲牙,可以正常显示图片,哪怕连续输入多个表情也可以,但一改成数组,就出问题了

0
ego008
ego008 2013-04-09 00:38

@沉默小子g 提供一个参考函数,另开帖方便搜索 https://www.youbbs.org/t/957

0
Login Topics