Thi Ẩm Lâu

Phiên bản đầy đủ: Phiên bản cho mobile
Bạn đang xem phiên bản rút gọn. Bạn có thể xem bản đầy đủ.
Trang: 1 2 3 4 5 6
À lão đổi sang file generate RSS này đi, có output thêm author nữa đấy.
(19-04-2011, 11:39 PM)hvn Đã viết: [ -> ]À lão đổi sang file generate RSS này đi, có output thêm author nữa đấy.

À, cái kia bọn nó đưa cũng chưa chuẩn. Tớ setup thử 1 cái forum để test thì thấy vẫn không có tên tác giả. Phải mò trong code của nó tìm mãi mới ra câu lệnh SQL ở dòng 112 thiếu trường username :

Lão dò đến dòng đó, thay cái này :

Mã:
$query = $db->simple_select("posts", "subject, dateline, message, edittime, tid, fid, pid", "visible='1' ".$forumlist, array('order_by' => 'dateline', 'order_dir' => 'desc', 'limit' => $post_limit));


bằng cái này :

Mã:
$query = $db->simple_select("posts", "subject, dateline, username, message, edittime, tid, fid, pid", "visible='1' ".$forumlist, array('order_by' => 'dateline', 'order_dir' => 'desc', 'limit' => $post_limit));


Nó sẽ ra cái như thế này :

http://gycoder.uni.cc/g/forum/syndication2.php?limit=15


Sau đó thì phải sửa lại file tal_rss_autoupdate.php vì lúc trước chưa có giá trị author.

Lão tìm dòng 75, thay đoạn này :

Mã:
        array_push($result, array(
            'key'=>$k,
            'title'=>$item['title'],
            'link'=>switchURL($item['link']),
            'pubdate'=>$item['pubDate'],
            'snipped'=>quote($content, 50, 12),
            'content'=>$content
        ));

bằng đoạn này :

Mã:
        array_push($result, array(
            'key'=>$k,
            'title'=>$item['title'],
            'link'=>switchURL($item['link']),
            'pubdate'=>$item['pubDate'],
            'author'=>$item['dc:creator'],
            'snipped'=>quote($content, 50, 12),
            'content'=>$content
        ));

Cuối cùng là mở file tal.php tìm các dòng 19, 42 để thêm câu lệnh viết tên tác giả post ở các hàm display và viewEntry :

Mã:
$output.='<span class="author">'.$data[$i]->author.'</span><br />';


Nó sẽ ra như thế này :

http://gycoder.uni.cc/m/tal.php
Đây lão lấy cái này cho nhanh khỏi sửa mất công.
Cái schedule task dễ dùng mà lão Hớ.

Đầu tiên là phải copy file auto_rss_autoupdate.php vào thư mục inc/tasks, sau đó :

- vào Tools & Maintenance/Task Manager
- chọn tab Add New Task
- nhập TitleShort Description
- tại mục Task File, chọn tên file auto_rss_autoupdate.php trong dropdown list. Danh sách này tự nó tìm trong inc/tasks.
- Tại Time: Minutes, đặt 5 cho 5 phút.
- các fields Time: Hours, Days of Month đặt vào ký hiệu *
- các mục chọn bên dưới cứ để mặc định Every....
- Enable Logging? chọn No cũng được.
- Task enabled? thì chọn Yes.

Cuối cùng save lại cho nó chạy.

Lưu ý là khi đưa auto_rss_autoupdate.php vào thư mục inc/tasks thì phải chỉnh lại đường dẫn đến nơi đặt file cache_tal_lastpost.txt
Ok hết rồi! mà file syndication2.php lão gửi trong TAMmFollower.rar vẫn chưa sửa thêm cái username đấy nhé! Làm mình tưởng làm sai gì! big green

Có sửa lại 2 dòng trong file tal_rss_autoupdate.php để chạy được trong task schedule
Mã PHP:
$file 'cache_tal_lastpost.txt';

require_once 
'rss_php.php'

Thành

Mã PHP:
$file MYBB_ROOT.'mobile/cache_tal_lastpost.txt';

require_once 
MYBB_ROOT.'mobile/rss_php.php'

Cái Task Schedule hình như phải nhập: 0,5,10,15,20,25,30,35,40... mới có tác dụng. Vì thế mình để * luôn cho mỗi phút một lần. Chừng nào nặng quá thì giảm bớt! laughing
Lão có chỉnh nhầm chỗ nào không mà nãy tôi thấy forum thỉnh thoảng báo lỗi "quá nhiều truy vấn". Có khi cứ để 5 hay 3 phút update 1 lần thôi chứ không mỗi khi có ai mở trang nào nó lại kiểm tra task time rồi update 1 phát mà chẳng hề có nội dung nào mới cả.

Còn một thiếu sót nữa ở hàm viewEntry, file tal.php, đoạn kiểm tra điều kiện biến $key :

Mã:
if($key>0 && $key<=$total){
    for($i=0; $i<$total; $i++){
        if($data[$i]->key == ($key-1)){
            $entry = $data[$i];
            break;
        }
    }
  }

Ban đầu tôi tính $key từ 0, nên điều kiện để là $key < $total, nhưng sau đó tôi lại tính $key từ 1, nên điều kiện phải là $key<=$total, quên chưa sửa lại ở bản gửi lão. Để thế sẽ không thấy được toàn văn bài post cuối cùng.

Ví dụ :

http://thiamlau.com/forum/mobile/?view=30

$key = 30 trả về not found mặc dù thực sự có 30 entries.

Thằng mybb có cái biến MYBB_ROOT tiện thật happy
Đã chỉnh lại big green

Thời gian cập nhật sẽ là mỗi 5 phút 1 lần!

Mọi người có thể vào từ 64_64 Phiên bản mobile (bên dưới banner Thi Ẩm Lâu) hoặc truy cập trực tiếp địa chỉ:
http://thiamlau.com/forum/mobile
(20-04-2011, 06:13 PM)hothiethoa Đã viết: [ -> ]Đã chỉnh lại big green

Thời gian cập nhật sẽ là mỗi 5 phút 1 lần!

Mọi người có thể vào từ 64_64 Phiên bản mobile (bên dưới banner Thi Ẩm Lâu) hoặc truy cập trực tiếp địa chỉ:
http://thiamlau.com/forum/mobile

Ổn rồi đấy lão ạ happy Để từ từ tớ tranh thủ nghiên cứu phần login và post bài xem sao.
Lão Hớ rảnh thì vào đây test thử cái :

http://gycoder.uni.cc/g/forum/mobile/

Chức năng giới hạn, chỉ có thể đăng nhập và reply vào topic có sẵn.

Các nick để test : alice, bob, victor cùng có pass là 123456.

Bản này tớ thiết kế lại với ý tưởng làm phẳng cấu trúc forum, không quan tâm đến các khái niệm forum/category/box, chỉ còn các post và thread. Newest Posts cho phép xem 30 post mới nhất trong toàn forum, Browse Threads liệt kê 50 chủ đề có bài mới gần nhất.

Vì có thể can thiệp luôn vào db nên không dùng cache nữa.
Hay lắm rồi bác!
Nếu không dùng cache nữa thì không cần phải đặt task schedule cho nó nữa à? Query trực tiếp từ database luôn?
Trang: 1 2 3 4 5 6