{Giúp với} Cắt ngắn tiêu đề bài viết.

Thảo luận trong 'Hướng dẫn - Hỏi đáp' bắt đầu bởi thaibao3, 29/1/12.

  1. thaibao3

    thaibao3 Rất tích cực

    Bài viết:
    30
    Likes :
    17
    Mình dùng module latesnews để hiện các chủ đề mới ra trang chủ, có những bài viết có chủ đề quá dài, mình muốn cắt ngắn để nó trên một dòng. bạn nào biết chỉ giúp.
     
  2. TomyTran

    TomyTran Marketing & Founder Staff Member

    Bài viết:
    1,073
    Likes :
    666
    trong tmpl/default.php bạn tìm kiếm:

    <?php echo $item->text; ?></a>

    và thay thế bằng:

    <?php echo ( (JString::strlen( $item->text ) < 22 ) ? $item->text : JString::substr( $item->text, 0, 21 ) . " ..." ); ?></a>

    với số 22 là độ dài ký tự, 21 = 22 - 1 và bạn có thể tùy biến tiếp, xem demo: http://thekymoihotel.com

    Ngoài ra, bạn cũng có thể sử dụng hàm explode và implode với dấu cách để xử lý chúng.
     
    thaibao3 thích bài này.
  3. thaibao3

    thaibao3 Rất tích cực

    Bài viết:
    30
    Likes :
    17
    Hàm này cắt không đẹp, nó đếm đủ ký tự là cắt, mình tìm được hàm cut_string trên mạng nhưng không biết chèn vào đâu:
    Mã:
    <?php function cut_string($str,$len,$more){
    if ($str=="" || $str==NULL) return $str;
    if (is_array($str)) return $str;
    $str = trim($str);
    if (strlen($str) <= $len) return $str;
    $str = substr($str,0,$len);
    if ($str != "") {
    if (!substr_count($str," ")) {
    if ($more) $str .= " ...";
    return $str;
    }
    while(strlen($str) && ($str[strlen($str)-1] != " ")) {
    $str = substr($str,0,-1);
    }
    $str = substr($str,0,-1);
    if ($more) $str .= " ...";
    }
    return $str;
    }
    ?>
    Hàm này cắt đẹp hơn.
     
  4. TomyTran

    TomyTran Marketing & Founder Staff Member

    Bài viết:
    1,073
    Likes :
    666
    Cứ cho vào trong file mà có sử dụng nó là tiện nhất, trước sau lệnh gọi không quan trọng, bạn kiểm tra xem $more là cái nữa nhé.

    Nói chung có nhiều cách xử lý vd như mình gợi ý ở trên có thể sử dụng implode, explode nếu site bạn sử dụng tiếng Việt UTF-8, còn trang demo mình làm cũng mấy năm trước rồi mà lại sử dụng tiếng anh nên mình chỉ sử dụng giải pháp trên là tối ưu rồi.
     
  5. thaibao3

    thaibao3 Rất tích cực

    Bài viết:
    30
    Likes :
    17
    Mình chèn được hàm cut_string rồi, bạn có thể hướng dẫn mình làm tooltip cho module lates_news được không?
    Ý mình là đã cắt ngắn tiêu đề, khi rê chuột vào thì hiện đầy đủ tiêu đề.
     
  6. TomyTran

    TomyTran Marketing & Founder Staff Member

    Bài viết:
    1,073
    Likes :
    666
    Khởi động hàm ToolTip một lần duy nhất:
    PHP:
    JHTML::_('behavior.tooltip');
    Câu lệnh PHP sử dụng ToolTip:
    PHP:
    echo JHTML::tooltip('This is the tooltip text',
    'Tooltip title',
    'tooltip.png',
    '',
    'http://www.joomla.org');
    HOẶC câu lệnh HTML sử dụng ToolTip:
    HTML:
    <span class="editlinktip hasTip" title="Tooltip title::This is the tooltip text" >
    <a href="http://www.joomla.org">
    <img src="tooltip.png" border="0" alt="Tooltip"/>
    </a>
    </span>

    Hình ảnh demo cho câu lệnh trên:

    [​IMG]
     
    thaibao3 thích bài này.
  7. thaibao3

    thaibao3 Rất tích cực

    Bài viết:
    30
    Likes :
    17
    Mình có cài Tooltip này vào:
    Mã:
    http://extensions.joomla.org/extensions/news-display/content-elements/tooltips/17548
    . Liêu có phải gỡ ra không nhỉ?nó có đụng độ nhau không?
     
  8. TomyTran

    TomyTran Marketing & Founder Staff Member

    Bài viết:
    1,073
    Likes :
    666
    Cách tốt nhất để kiểm tra là cứ thử cài rồi xem nó có báo lỗi không, hy vọng là không !!!
     
  9. miaki0512

    miaki0512 Rất tích cực

    Bài viết:
    47
    Likes :
    18
    Chả hiều j, Mình ngu quá
    Nhưng mình thì dùng cách đơn giản lắm với trường hợp title quá dài như vậy,
    Viết thêm 3 dòng lệnh css cho nó.
    white-space:nowrap;
    text-overflow: ellipsis;
    overflow: hidden;
    Cách này áp dụng css 3. Rất đơn giản dễ hiểu,
    Nhưng ko hiệu quả như mấy cách kia, Mình gà xài vậy thôi
     
  10. TomyTran

    TomyTran Marketing & Founder Staff Member

    Bài viết:
    1,073
    Likes :
    666
    CSS là bạn dùng lớp để che mắt thôi, còn PHP kia là cắt đi phần thừa, chỉ có điều CSS mình chỉ biết qua qua ko hiểu ellipsis có nghĩa như thế nào, nói chung mỗi người một phương pháp tùy cơ ứng biến theo trường hợp của bạn sao cho hiệu quả nhất đối với bạn cho dù đó có thể chưa phải là phương pháp tuyệt vời nhất mà các chuyên gia sử dụng.
     
comments powered by Disqus

Chia sẻ trang này