#133322 gửi bởi xuanluc73
Ngày 28 Tháng 01 2013 , 06:04
Hiện tại mình đưa thành công chúc mừng sinh nhật thành viên từ diễn đàn phpbb phiên bản 3.0.10 trở lên ra trang chủ sử dụng nukeviet và chúc mùng sinh nhật thành viên của Nukeviet.
Điều kiện sử dụng đối với thành viên trên diễn đàn phpbb:
- Tích hợp thành công, cấu hình sử dụng thành viên của diễn đàn phpbb.
- Tiếp đầu tố của các bảng cơ sở dữ liệu được bắt đầu phpbb_ (nếu cài mặc định diễn đàn phpbb) Nếu dùng tiếp đầu tố khác thì sửa lại trong câu truy vấn dữ liệu trong đoạn code dưới đây.
- Ở đây mình đang chèn vào block thống kê của module statistics, các bạn chèn block khác vui lòng xem kỹ cấu trúc code để chèn cho đúng.
- Hạn chế: Đang lấy ngày sinh của toàn bộ thành viên, chưa loại các thành viên đã ban nick, chưa lấy chỉ thị màu của thành viên vì đang bận chút. sẽ hoàn thiện sau vậy

Bắt đầu nhé.
Bạn tìm block của modules này theo đường dẫn: modules/statistics/blocks/global.counter.php

1, Nếu lấy thành viên diễn đàn phpbb thì tìm đoạn code

Mã: Chọn hết
if ( $guests and $guests != $count_online )
{
$xtpl->assign( 'COUNT_GUESTS', $guests );
$xtpl->parse( 'main.guests' );
}

Thêm xuống phía dưới
Mã: Chọn hết
}

Đoạn code này
Mã: Chọn hết
$now = getdate();
$today = sprintf('%2d-%2d-', $now['mday'], $now['mon']);
$day = sprintf('%2d-%2d-%2d', $now['mday'], $now['mon'],$now['year']);
$sql = "SELECT `user_id`, `username`, `user_birthday` FROM `phpbb_users` WHERE (`user_birthday`!=0 OR `user_birthday`!='') AND LEFT(`user_birthday`,6) = '". $today ."' ORDER BY `user_id` ";
$query = $db->sql_query( $sql );
while ( $row = $db->sql_fetchrow( $query ) )
{
$year_today = sprintf('%2d-%2d-%2d', $now['mday'], $now['mon'],$now['year']);
$date_user = $row['user_birthday'];
if ($row['user_birthday']>=1)
{
$xtpl->assign( 'hr', '<hr />');
$xtpl->assign( 'loichuc', 'Chúc mừng sinh nhật:');
$xtpl->assign( 'birthday', $date_user);
$xtpl->assign( 'username', $row['username']);
}
else
{
$xtpl->assign( 'loichuc', '');
}
$xtpl->parse( 'main.bithday.loopbirth' );
$xtpl->parse( 'main.bithday' );
}

lưu ý tiếp đầu tố của mình là phpbb_users => phpbb_ là tiếp đầu tố của bảng users
lưu lại và mở tiếp file theo đường dẫn: themes/default/blocks/global.counter.tpl => nếu sử dụng themes default
tìm đoạn:
Mã: Chọn hết
<p>
<span><img src="{IMG_PATH}images/online/hits.png" width="16" height="16" alt="{LANG.hits}" />{LANG.hits} : <strong>{COUNT_ALL}</strong></span>
</p>


và thêm đoạn code này xuống phía dưới:
Mã: Chọn hết
<p class="item">
{hr}
<span style="color:red;font-weight:bold;padding-top:5px;">{loichuc}</span>
<!-- BEGIN: bithday -->
<span><!-- BEGIN: loopbirth --><strong>{username}</strong> ({birthday}), <!-- END: loopbirth --></span>
<!-- END: bithday --></p>


Như vậy là đã xong rồi đó.
==========================================================

2, Nếu muốn đưa thống kê toàn bộ thành viên diễn đàn ra trang chủ các bạn làm tiếp nhé

Thêm đoạn code này lên trên đoạn code vừa hướng dẫn thêm code ở trên đoạn code này"
Mã: Chọn hết
$result = mysql_query("SELECT * FROM phpbb_users where group_id <> 1 and group_id <> 6");
$num_rows = mysql_num_rows($result);
$xtpl->assign( 'TOTALMEM', $num_rows );


lưu lại và mở tiếp file theo đường dẫn: themes/default/blocks/global.counter.tpl => nếu sử dụng themes default. Thêm lên trên đoạn code chúc mừng sinh nhật vừa thêm ở trên đoạn code này

Mã: Chọn hết
<hr/>
<p class="item">
<span><img src="{IMG_PATH}images/online/users.png" width="16" height="16" alt="{LANG.total_user}" />{LANG.total_user} : <strong>{TOTALMEM}</strong> Thành viên</span>
</p>


tải file ảnh này về hoặc các bạn tự tạo ảnh khác cho phù hợp và up lên thư mục themes/default/images/
http://truongtoc.vn/themes/default/imag ... /users.png

===========================================================

3, Nếu lấy thành viên của Nukeviet các bạn làm theo hướng dẫn sau

mở file theo đường dẫn: modules/statistics/blocks/global.counter.php

tìm đoạn code
Mã: Chọn hết
if ( $guests and $guests != $count_online )
{
$xtpl->assign( 'COUNT_GUESTS', $guests );
$xtpl->parse( 'main.guests' );
}

Và thêm đoạn cde này phía sau
Mã: Chọn hết
$date = nv_date( 'd-m', NV_CURRENTTIME );
$year = nv_date( 'Y', NV_CURRENTTIME );
$sql = "SELECT `userid`, `username`, `birthday` FROM `" .NV_USERS_GLOBALTABLE."`WHERE `birthday`!=0 ORDER BY `userid` ";
$query = $db->sql_query( $sql );
while ( $row = $db->sql_fetchrow( $query ) )
{
$row['birth'] = nv_date( 'd-m', $row['birthday'] );
if ($date==$row['birth'])
{
$xtpl->assign( 'hr', '<hr />');
$xtpl->assign( 'loichuc', 'Chúc mừng sinh nhật:');
$xtpl->assign( 'birthday',$row['birth']);
$xtpl->assign( 'username', $row['username']);
}
else
{
$xtpl->assign( 'loichuc', '');
}
$xtpl->parse( 'main.bithday.loopbirth' );
$xtpl->parse( 'main.bithday' );
}


lưu lại và mở tiếp file theo đường dẫn: themes/default/blocks/global.counter.tpl => nếu sử dụng themes default
tìm đoạn:
Mã: Chọn hết
<p>
<span><img src="{IMG_PATH}images/online/hits.png" width="16" height="16" alt="{LANG.hits}" />{LANG.hits} : <strong>{COUNT_ALL}</strong></span>
</p>


và thêm đoạn code này xuống phía dưới:
Mã: Chọn hết
<p class="item">
{hr}
<span style="color:red;font-weight:bold;padding-top:5px;">{loichuc}</span>
<!-- BEGIN: bithday -->
<span><!-- BEGIN: loopbirth --><strong>{username}</strong> ({birthday}), <!-- END: loopbirth --></span>
<!-- END: bithday --></p>


Như vậy là đã xong rồi đó

Bạn nào chưa làm được, hoặc phát hiện thấy lỗi nhờ báo lại cho mình nhé. Cảm ơn


=> Góp ý nhẹ nhàng nhé. vui lòng đừng ném đá! và thanks nếu thấy có ích

Demoonline
http://www.hotruong.net
http://www.truongtoc.net
Hệ thống mạng thông tin tư liệu gia phả Họ Trương Việt nam.