18 Tháng 5, 2016 Tác giả: Thịnh Nguyễn Chuyên mục: Thủ thuật NukeViet

Tạo cách trình bày tin mới nhất lên trên và tin khác nằm dưới

Do có 1 anh hỏi mình về vấn đề làm sao để tạo được chuyên mục tin dạng như hình demo sau thì bữa nay mình sẽ thực hiện hướng dẫn để các bạn có thể thực hiện được theo một cách dễ dàng nhất. Cách này cũng không có gì khó, chủ yếu can thiệp một chút vào php với một số quy luật nhất định cùng với cách sắp xếp thẻ html sao cho hợp lý là ra kết quả như mong muốn.

main-right-top-hot

Mình thực hiện trên mã nguồn mở NukeViet vì thế bạn nào dùng NukeViet dễ hiểu hơn chút vì code cũng thoáng hơn chứ ko rối rắm đóng mở thẻ php.

Lưu ý: ở đây là mình copy file theme.php của module news sang thư mục news của themes thay vì ở trong module vì vấn đề sau này có nâng cấp nó cũng không tèo luôn file theme.php này. Sau đó thì mình chỉ tiến hành sửa file theme.php trong thư mục news của theme đang dùng mà thôi vì nó ưu tiên trước nếu không có nó mới quay về theme.php của module

Đầu tiên bạn cần tìm tới function:


function viewsubcat_main($viewcat, $array_cat)

Bạn kéo xuống dòng 379 có nội dung là “$a = 0;” bạn thêm vào sau nó thẻ biến sau


$_first = true;

Tiếp đến bạn tìm tới dòng


$xtpl->assign('OTHER', $array_row_i);
if ($module_config[$module_name]['showtooltip']) {
    $xtpl->parse('main.listcat.related.loop.tooltip');
}
$xtpl->parse('main.listcat.related.loop');

Bạn thay nó bằng đoạn mã sau


if ($_first) {
  $_first = false;

  $xtpl -> assign('OTHER', $array_row_i);

  if ($array_row_i['imghome'] != "") {
   $xtpl->assign('OTHER_HOMEIMG', $array_row_i['imghome']);
   $xtpl->assign('OTHER_HOMEIMGALT', ! empty($array_row_i['homeimgalt']) ? $array_row_i['homeimgalt'] :    $array_row_i['title']);
  }
}
else
{
  $xtpl -> assign('OTHER_LIST', $array_row_i);

  if ($module_config[$module_name]['showtooltip']) {
   $xtpl->parse('main.listcat.related.loop.tooltip');
  }
 $xtpl->parse('main.listcat.related.loop');
}

Ỹ nghĩa của việc thay kia đó là mình điều kiện cho biến $_first nếu tồn tại thì thực hiện tạo ảnh thumbnail cho tin đầu tiên trong danh sách tin bên trái của main-right và gán nó sang biến khác để thực hiện hiển thị và ngược lại là các tin tiếp theo hiển thị như bình thường trừ tin vừa kiểm tra ra để không bị lặp lại.

Tiếp theo bạn cần tiến hành thay thế các thẻ html sao cho đúng thì nó mới thực hiện hiển thị

Bạn mở file viewcat_main_right.tpl và tìm tới thẻ “<div class=”col-md-8″>”

Thêm vào dưới thẻ đó mã lệnh sau


<div class="feature-1">
<a class="thumbs img_80_45" href="{OTHER.link}" title="{OTHER.title}">
  <img src="{OTHER_HOMEIMG}" alt="{OTHER_HOMEIMGALT}" width="{IMGWIDTH}" />
</a>
<a href="{OTHER.link}" title="{OTHER.title}">
  {OTHER.title}
</a>
</div>

Tiếp đến bạn tìm tới


<a class="show h4" href="{OTHER.link}" title="{OTHER.title}" <!-- BEGIN: tooltip -->data-content="{OTHER.hometext}" data-img="{OTHER.imghome}" data-rel="tooltip" data-placement="{TOOLTIP_POSITION}"<!-- END: tooltip -->>{OTHER.title}</a>

Thay bằng mã lệnh sau


<a href="{OTHER_LIST.link}" title="{OTHER_LIST.title}" <!-- BEGIN: tooltip -->data-content="{OTHER_LIST.hometext}" data-img="{OTHER_LIST.imghome}" data-rel="tooltip" data-placement="{TOOLTIP_POSITION}"<!-- END: tooltip -->>{OTHER_LIST.title}</a>

Mọi thắc mắc các bạn có thể để lại bình luận để mọi người có thể theo dõi và cùng chia sẻ hướng giải quyết

Tác giả: Thịnh Nguyễn

Chuyên gia chia sẻ kiến thức về lập trình, thiết kế web và tối ưu hệ thống server.

Chia sẻ bài viết này:

6 bình luận

  • Mạnh Huy

    31/10/2016 lúc 17:14

    Em cám ơn anh em làm được rồi, tuy nhiên tại sao ảnh hiển thị lại không đầy đủ hoặc qua mờ vậy?
    Xin anh chỉ giúp
    Tiện đây em nếu được cho e xin block hiển thị tin theo groups các tin hiển thị theo chiều ngang được không ạ?

  • Mạnh Huy

    31/10/2016 lúc 09:19

    Các tin ở bên phải thì tin đầu tiên có hình và tiêu đề, còn các tin sau đó thì không hiển thị ạ. Anh xem lại dùm được không ạ

    • Thịnh Nguyễn

      31/10/2016 lúc 11:09

      mình kiểm tra rồi, hoàn toàn bình thường, vì code này mình làm site tin tức theo báo tuổi trẻ. Bạn cần xem thiết lập chuyên mục hiển thị bao nhiêu tin nhé, đặt lại cho phù hợp

  • Mạnh Huy

    30/10/2016 lúc 21:42

    Anh ơi, bài viết rất hay. Tin dầu tiên có ra hình và tiêu đề. Tuy nhiên các tin liên quan ở dưới thì không hiển thị ạ
    anh kiểm tra dùm em ạ
    em cám ơn

    • Thịnh Nguyễn

      31/10/2016 lúc 08:18

      bài này là mình làm hướng dãn tin mới có hình còn tin khác không có hình, tối mình cập nhật bài khác có hình hết cho bạn

Để lại bình luận của bạn

Địa chỉ email của bạn sẽ không được công bố rộng rãi. Các trường bắt buộc được đánh dấu *

Bài viết liên quan

Hương dẫn cấu hình SMTP gửi mail ở localhost trong NukeViet

SMTP không còn xa lạ với chúng ta và đặc biệt là những bạn chuyên sử dụng tính năng SMTP của Google dành cho website của bạn. Nhưng nếu như bạn sử dụng trên hosting và vps thì việc gửi mail thông qua SMTP của Google cũng khá đơn giản đó là việc bạn chỉ […]

Xem chi tiết →

Hướng dẫn thiết lập ngôn ngữ mặc định cho website nukeviet

Xin chào các bạn hôm nay Thịnh hướng dẫn các bạn cách chọn ngôn ngữ làm ngôn ngữ mặc định trong NukeViet. Tính năng này thì ít ai để ý tới vì thế mà bạn không biết hoặc một vài lý do nào đó. Nhưng không sao, ở bài viết này mình sẽ hướng dẫn […]

Xem chi tiết →

Cách hiển thị các lỗi còn sót khi lập trình trên nền tảng mã nguồn mởi NukeViet

Trong quá trình lập trình phát triển module, block và theme sử dụng mã nguồn mở NukeViet bạn sẽ gặp phải trường hợp không hiển thị các lỗi hết 100% mà nó thành trang trắng. Chính vì thế bạn phải đi mày mò tìm xem bạn code có đúng không và debug xem còn lỗi không. […]

Xem chi tiết →