[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.

  • Fortresssnl

    Fortresssnl xzusafmewnazxwpGP zvusafmegmqhc3dGP

    Á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:

  • Yamahayuv

    Yamahayuv zwusalmeltfqdxdGP zzusafme2ntkdkxGP

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

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

    Pouringoff xwusaymehndhxsaGP zvusafmegmdqzhkGP

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

     
  • Fortresssnl

    Fortresssnl xzusafmewnazxwpGP zvusafmegmqhc3dGP

    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.

     
  • Yamahayuv

    Yamahayuv zwusalmeltfqdxdGP zzusafme2ntkdkxGP

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

     
  • Fortresssnl

    Fortresssnl xzusafmewnazxwpGP zvusafmegmqhc3dGP

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

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

     
  • Fortresssnl

    Fortresssnl xzusafmewnazxwpGP zvusafmegmqhc3dGP

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

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

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

     
  • Fortresssnl

    Fortresssnl xzusafmewnazxwpGP zvusafmegmqhc3dGP

     

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

     
  • 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)

     
  • Fortresssnl

    Fortresssnl xzusafmewnazxwpGP zvusafmegmqhc3dGP

     

    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

     
  • 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è .

     
  • 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

     

     
  • HeatherMal

    HeatherMal HeatherMalPE HeatherMalPE

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

     
  • Fortresssnl

    Fortresssnl xzusafmewnazxwpGP zvusafmegmqhc3dGP

    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 ).

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

     
  • Fortresssnl

    Fortresssnl xzusafmewnazxwpGP zvusafmegmqhc3dGP

     

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

     
  • 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

     
  • Fortresssnl

    Fortresssnl xzusafmewnazxwpGP zvusafmegmqhc3dGP

     

    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