Tìm kiếm nhanh

[News] Đưa ngôi sao ( Rating ) ra trang chủ ( và trang chuyên mục )

Thảo luận trong 'Hỗ trợ giao diện, block' đăng bởi anhyeuviolet, 07/07/2016 02:05.

  • anhyeuviolet

    anhyeuviolet Kenny Nguyen

    Áp dụng cho: NukeViet 4.0.29

    Module: News.

    Các file can thiệp :

    + CSS: news.css

    + PHP: theme.php, viewcat.php, main.php

    + TPL: viewcat_main_right.tpl, viewcat_page.tpl

    Các chế độ sẽ hiển thị: Danh sách, mới(cũ) lên trên; Chuyên mục,tin khác nằm bên phải.

    Các chế độ hiển thị khác thì can thiệp tương tự.

    Quy tắc vàng: Luôn luôn sao lưu !

     

    Cách làm:

     

    CSS:

    Thêm vào cuối news.css code sau :

    .rating-box {
        color: #f0c808;
        line-height: 1;
        position: relative;
        white-space: nowrap;
        display: inline-block;
    }
    .rating-box span {
        display: block;
        position: absolute;
        top: 0;
        left: 0;
        bottom: 0;
        z-index: 1;
        overflow: hidden;
        line-height: 1;
    }

    Code này sẽ hiện ngôi sao màu vàng đẹp rạng rỡ và đúng vị trí.

    Bạn có thể sửa #f0c808 thành mã màu mà bạn mong muốn.

     

    PHP:

    Với theme.php:

     

    01/ Tìm

    viewcat_page_new($array_catpage, $array_cat_other, $generate_page)

    Tìm khá lâu bên dưới dòng đó, khoảng 180-185 :

        $a = 0;
        foreach ($array_catpage as $array_row_i) {
    

    thêm code này vào dưới:

     

    		$rating_width = 0;
    		if(!empty($array_row_i['numberrating'])){
    			$rating_width = $array_row_i['numberrating']/5 * 100;
    		}
    		$xtpl->assign( 'RATING_WIDTH', $rating_width );
    

    Khi đó ta có:

        foreach ($array_catpage as $array_row_i) {
    		$rating_width = 0;
    		if(!empty($array_row_i['numberrating'])){
    			$rating_width = $array_row_i['numberrating']/5 * 100;
    		}
    		$xtpl->assign( 'RATING_WIDTH', $rating_width );
    
            $newday = $array_row_i['publtime'] + (86400 * $array_row_i['newday']);
            $array_row_i['publtime'] = nv_date('d/m/Y h:i:s A', $array_row_i['publtime']);
            $array_row_i['listcatid'] = explode(',', $array_row_i['listcatid']);
            $num_cat = sizeof($array_row_i['listcatid']);
    

    Vậy là xong phần Xem tin theo danh sách của bước này.

     

    02/ Tìm

    function viewsubcat_main($viewcat, $array_cat)
    

    Tìm đoạn này bên dưới dòng đó:

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

    Thêm vào bên dưới:

    					$rating_width = 0;
    					if(!empty($array_row_i['numberrating'])){
    						$rating_width = $array_row_i['numberrating']/5 * 100;
    					}
    					$xtpl->assign( 'RATING_WIDTH', $rating_width );
    

    Khi đó ta có:

                    if ($a == 1) {
                        if ($newday >= NV_CURRENTTIME) {
                            $xtpl->parse('main.listcat.newday');
                        }
                        $xtpl->assign('CONTENT', $array_row_i);
    					$rating_width = 0;
    					if(!empty($array_row_i['numberrating'])){
    						$rating_width = $array_row_i['numberrating']/5 * 100;
    					}
    					$xtpl->assign( 'RATING_WIDTH', $rating_width );
                        if ($array_row_i['imghome'] != "") {
    

    Vậy là xong phần theme.php.

     

    Với main.php:

    Tìm :

        } elseif ($viewcat == 'viewcat_page_new' or $viewcat == 'viewcat_page_old') {
    

     

    Tìm dòng bên dưới nó, khoảng 81 là :

                $array_catpage[] = $item;
    

    Thêm vào bên trên nó

    			$item['numberrating'] = ( $item['click_rating'] > 0 ) ? round( $item['total_rating'] / $item['click_rating'], 1 ) : 0;
    

    Khi đó ta có :

                $item['newday'] = $global_array_cat[$item['catid']]['newday'];
                $item['link'] = $global_array_cat[$item['catid']]['link'] . '/' . $item['alias'] . '-' . $item['id'] . $global_config['rewrite_exturl'];
    			$item['numberrating'] = ( $item['click_rating'] > 0 ) ? round( $item['total_rating'] / $item['click_rating'], 1 ) : 0;
                $array_catpage[] = $item;
                $end_publtime = $item['publtime'];
    

    Làm tiếp với :

        } elseif ($viewcat == 'viewcat_main_left' or $viewcat == 'viewcat_main_right' or $viewcat == 'viewcat_main_bottom') {
    

    Tìm bên dưới của nó:

     

    					$array_cat[$key]['content'][] = $item;
    

    Thêm vào trên nó:

    					$item['numberrating'] = ( $item['click_rating'] > 0 ) ? round( $item['total_rating'] / $item['click_rating'], 1 ) : 0;
    

    Khi đó ta có:

    $item['newday'] = $array_cat_i['newday'];
    $item['link'] = $array_cat_i['link'] . '/' . $item['alias'] . '-' . $item['id'] . $global_config['rewrite_exturl'];
    $item['numberrating'] = ( $item['click_rating'] > 0 ) ? round( $item['total_rating'] / $item['click_rating'], 1 ) : 0;
    $array_cat[$key]['content'][] = $item;
    

    Xong phần main.php.

     

    Với viewcat.php:

     

    Tìm:

        if ($viewcat == 'viewcat_page_new' or $viewcat == 'viewcat_page_old' or $set_view_page) {
    

    Thêm vào bên trên:

    			$array_catpage[] = $item;
    

    Đoạn code sau:

    			$item['numberrating'] = ( $item['click_rating'] > 0 ) ? round( $item['total_rating'] / $item['click_rating'], 1 ) : 0;
    

    Khi đó ta có:

     

    $item['newday'] = $global_array_cat[$catid]['newday'];
    $item['link'] = $global_array_cat[$catid]['link'] . '/' . $item['alias'] . '-' . $item['id'] . $global_config['rewrite_exturl'];
    $item['numberrating'] = ( $item['click_rating'] > 0 ) ? round( $item['total_rating'] / $item['click_rating'], 1 ) : 0;
    $array_catpage[] = $item;
    $end_publtime = $item['publtime'];
    

    Tìm:

     

        } elseif ($viewcat == 'viewcat_main_left' or $viewcat == 'viewcat_main_right' or $viewcat == 'viewcat_main_bottom') {
    

    Thêm vào bên trên:

     

    $array_catcontent[] = $item;
    

    Đoạn code này:

    $item['numberrating'] = ( $item['click_rating'] > 0 ) ? round( $item['total_rating'] / $item['click_rating'], 1 ) : 0;
    

    Ta sẽ có:

     

    	$item['newday'] = $global_array_cat[$catid]['newday'];
    	$item['link'] = $global_array_cat[$catid]['link'] . '/' . $item['alias'] . '-' . $item['id'] . $global_config['rewrite_exturl'];
    	$item['numberrating'] = ( $item['click_rating'] > 0 ) ? round( $item['total_rating'] / $item['click_rating'], 1 ) : 0;
    	$array_catcontent[] = $item;
    }
    unset($sql, $result);
    

    Xong phần viewcat.php.

    Xong phần PHP.

     

    TPL:

    Mở viewcat_main_right.tpl, tìm

    </h3>

    Thêm vào bên dưới:

     

     

    					<p>
    						<span class="rating-box">
    							<i class="fa fa-star-o" aria-hidden="true"></i>
    							<i class="fa fa-star-o" aria-hidden="true"></i>
    							<i class="fa fa-star-o" aria-hidden="true"></i>
    							<i class="fa fa-star-o" aria-hidden="true"></i>
    							<i class="fa fa-star-o" aria-hidden="true"></i>
    							<span style="width:{RATING_WIDTH}%;">
    								<i class="fa fa-star" aria-hidden="true"></i>
    								<i class="fa fa-star" aria-hidden="true"></i>
    								<i class="fa fa-star" aria-hidden="true"></i>
    								<i class="fa fa-star" aria-hidden="true"></i>
    								<i class="fa fa-star" aria-hidden="true"></i>
    							</span>
    						</span>
    						<em class="text-muted">({CONTENT.click_rating} {LANG.rating_count})</em>
    					</p>
    

     

    Xong viewcat_main_right.tpl

     

    02/ Mở viewcat_page.tpl:

    Làm y như bên trên.

     

    Khi đó trang chủ/Các chuyên mục nếu cấu hình như bên trên sẽ hiện số sao và số lượt đánh giá của mỗi tin.

    Bạn có thể tải về các File được nhắc tới trong bài viết này để tham khảo ở phần đính kèm.

     

     

    Tệp đính kèm:

  • hoanglongvnpt

    hoanglongvnpt Nguyễn Tất Thắng

    Hướng dẫn luôn cho module shop thì tốt quá. Thank bạn!frown

     
    NamSon thích điều này.
  • NamSon

    NamSon Trần Nam Sơn

    quất cái Module Shop nữa đi a frown

     
  • anhyeuviolet

    anhyeuviolet Kenny Nguyen

    Shops thì một hai hôm nữa mình làm.

    Hiện trong Website thôi chứ hiện trên google phê lắm.

     
  • hoanglongvnpt

    hoanglongvnpt Nguyễn Tất Thắng

    frownanhyeuviolet quá nhiệt tình với anh em ha...

     
  • anhyeuviolet

    anhyeuviolet Kenny Nguyen

    Em mà rảnh thì em siêng lắm anh ! :D

     
  • duongnguyen

    duongnguyen Duong Nguyen

    Kenney cái này áp dụng cho shop và photo thì tuyệt!

     
  • anhyeuviolet

    anhyeuviolet Kenny Nguyen

    Có bài hd cho shops rồi ạ.

    Photos thì mình sẽ lưu ý.

     
  • duongnguyen

    duongnguyen Duong Nguyen

    Sao trên 4rum này mình không tìm thấy nhỉ?

     
  • anhyeuviolet

    anhyeuviolet Kenny Nguyen

     

    https://www.nuke.vn/forum/threads/shops-hien-thi-ngoi-sao-rating-o-chi-tiet-san-pham-192.html

     
  • duongnguyen

    duongnguyen Duong Nguyen

    Cám ơn bạn, link của bạn là rating chi tiết sản phẩm, ý mình là rating SP ra ngoài trang chủ ấy (Tức là khi click chuột nào menu shop sẽ hiện ra trang SP có rating luôn)

     
  • anhyeuviolet

    anhyeuviolet Kenny Nguyen

     

    Cái đó dùng chung CSS và HTML.

    Chỉ cần mở theme.php điều chỉnh cho phù hợp với cấu hình trang chủ nữa là được rồi :D

     
  • duongnguyen

    duongnguyen Duong Nguyen

    Chèn code vào main_procate.tpl thì ok nhưng chẳng biết thêm code như thế nào cho theme.php

    Chẳng hiểu sao sau khi code ra trang chủ Shop thấy SP nào cũng gắn 5 sao vàng khè .

     
  • duongnguyen

    duongnguyen Duong Nguyen

    Mình thêm sau đoạn  $xtpl->assign('TITLE', $data_row_i['title']); là

    $rating_width = $data_content['rating_value']/5 * 100;
    $xtpl->assign( 'RATING_TOTAL', $data_content['rating_total'] );
    $xtpl->assign( 'RATING_WIDTH', $rating_width );

    Ra trang chủ shop thấy như ý nhưng hệ thống báo lỗi ngay dòng mình vừa thêm:

    Thông báo từ Hệ thống

    Nên chú ý Nên chú ý: Undefined index: rating_value in file /modules/shops/theme.php on line 413

    Nên chú ý Nên chú ý: Undefined index: rating_total in file /modules/shops/theme.php on line 414

     

     
  • quoctiepkt

    quoctiepkt Quoc Tiep

    cái này hiển thị trên google không anhyeuviolet

     
  • anhyeuviolet

    anhyeuviolet Kenny Nguyen

    Không bạn ạ !

    Muốn hiện Google thì cần vài yếu tố khác, đại khái như phải là một sản phẩm ( Product type ).

     
  • duongnguyen

    duongnguyen Duong Nguyen

    anhyeuviolet giúp mình một tẹo đi, sửa lỗi ntn vậy?

     
  • anhyeuviolet

    anhyeuviolet Kenny Nguyen

     

    Bạn bị lỗi gì ấy ?

     
  • duongnguyen

    duongnguyen Duong Nguyen

    Mình nói bên trên, thôi để mình copy xuống:

    Mình thêm sau đoạn  $xtpl->assign('TITLE', $data_row_i['title']); là

    $rating_width = $data_content['rating_value']/5 * 100;
    $xtpl->assign( 'RATING_TOTAL', $data_content['rating_total'] );
    $xtpl->assign( 'RATING_WIDTH', $rating_width );

    Ra trang chủ shop thấy như ý nhưng hệ thống báo lỗi ngay dòng mình vừa thêm:

    Thông báo từ Hệ thống

    Nên chú ý Nên chú ý: Undefined index: rating_value in file /modules/shops/theme.php on line 413

    Nên chú ý Nên chú ý: Undefined index: rating_total in file /modules/shops/theme.php on line 414

     
  • anhyeuviolet

    anhyeuviolet Kenny Nguyen

     

    Shops đem qua bài kia dùm mình nhé.

    Mình sẽ cập nhật hd bên đó luôn.

     

Chia sẻ trang này

Bạn đã không sử dụng Site, Bấm vào đây để duy trì trạng thái đăng nhập. Thời gian chờ: 60 giây