Cách hiển thị các mục được gắn thẻ trong bố cục blog danh mục


8

Tôi muốn tạo một mục menu cho một thẻ hiển thị các bài viết như trong bố cục blog danh mục. Tôi đã thử với các loại mục menu này: "Danh sách nhỏ gọn của các mục được gắn thẻ", "Danh sách tất cả các thẻ" và "Các mục được gắn thẻ" nhưng không gặp may.

Theo các tài liệu chính thức của thẻ nội dung , dường như là có thể.

Khi bạn có thẻ và một số mục được gắn thẻ, bạn có thể hiển thị chúng ở giao diện người dùng theo nhiều cách.

Theo mặc định Joomla! sẽ hiển thị các thẻ được nhúng trong mỗi mục đã được gắn thẻ. Bạn có thể tắt màn hình này bằng cách thay đổi các tham số. Bạn có thể điều khiển vị trí của màn hình này với các phần ghi đè bố cục và bố cục thay thế và bạn có thể tạo kiểu cho màn hình bằng css của mình.

Bạn có thể tạo một liên kết menu hiển thị danh sách các thẻ, với các liên kết đến các mục được gắn thẻ cho mỗi thẻ.

> Bạn có thể tạo một liên kết menu hiển thị danh sách các mục được gắn thẻ cho một thẻ nhất định và hiển thị dưới dạng danh sách hoặc kiểu blog.

Bạn có thể sử dụng một trong các mô-đun thẻ. Các thẻ phổ biến sẽ hiển thị danh sách được liên kết của các thẻ có các mục được gắn thẻ nhiều nhất. Thẻ tương tự sẽ hiển thị danh sách các mục có bộ thẻ tương tự với mục hiện được hiển thị (lưu ý rằng mô-đun này không hiển thị trên các trang không hiển thị các mục nội dung).

Câu trả lời:


8

Vì vấn đề này dường như đã được hỏi nhiều lần và vẫn chưa có câu trả lời tốt cho vấn đề đó, tôi muốn thử cung cấp giải pháp của tôi từ phía ghi đè mẫu. Các bước khá phức tạp nhưng nó phải dễ dàng.

Lưu ý: Tôi đang sử dụng Joomla 3.4.4 và protostar mẫu trong khi tạo hướng dẫn này

Đầu tiên, sao chép tập tin này:

[root]/components/com_tags/views/tag/tmpl/default.php
[root]/components/com_tags/views/tag/tmpl/default.xml
[root]/components/com_tags/views/tag/tmpl/default_items.php

đến

[root]/templates/your_template_name/html/com_tags/tag/default.php
[root]/templates/your_template_name/html/com_tags/tag/default.xml
[root]/templates/your_template_name/html/com_tags/tag/default_items.php

thay thế tên tệp thành một cái gì đó bạn thích, ví dụ 'Tagblog', vì vậy nó sẽ trở thành:

[root]/templates/your_template_name/html/com_tags/tag/taggedblog.php
[root]/templates/your_template_name/html/com_tags/tag/taggedblog.xml
[root]/templates/your_template_name/html/com_tags/tag/taggedblog_items.php

Mở tệp [root] /temsheet/your_template_name/html/com_tags/tag/taggedblog.xml ở đầu tệp bạn sẽ thấy mã này:

<layout title="com_tags_tag_view_default_title" option="com_tags_tag_view_default_option">

thay đổi nó thành

<layout title="Tagged Blog" option="taggedblog">

Tại thời điểm này, bạn sẽ thấy một loại mục menu mới có tên là Tagged Blog khi tạo một mục menu mới từ trình quản lý menu của bạn. Xem hình ảnh này dưới đây

Mục menu mới được gắn thẻ

Bây giờ, Mở tệp [root] /temsheet/your_template_name/html/com_tags/tag/taggedblog_items.php

tại dòng 62 xóa mã này:

<ul class="category list-striped">

và nó </ul>đóng thẻ ở dòng 90

sau đó, vẫn trên cùng một tệp, xóa các mã này bắt đầu ở dòng 64:

<?php if ($item->core_state == 0) : ?>
                <li class="system-unpublished cat-list-row<?php echo $i % 2; ?>">
            <?php else: ?>
                <li class="cat-list-row<?php echo $i % 2; ?> clearfix" >

<?php endif; ?>ở dòng 70 và thẻ đóng </li>ở dòng 85

Tiếp theo, thêm <div class="span5">64 dòng sau mã <?php foreach ($items as $i => $item) : ?>và thêm đóng </div>trước<?php endforeach; ?>

Tiếp theo, dòng arround 77 trước khi mã <?php if ($this->params->get('tag_list_show_item_description', 1)) : ?>thêm mã này:

<?php
    $db = JFactory::getDBO();
    $query = $db->getQuery(true);
    $query->select('introtext')->from('#__content')->where('id=' . (int)$item->content_item_id);
    $db->setQuery($query);
    //displaying the intro image
    $images  = json_decode($item->core_images);
    if(!empty($images->image_intro)) {
        echo '<img src="'.$images->image_intro.'">';
    }
    //displaying the intro text
    $introtext = $db->loadResult();
    echo $introtext;

    ?>

Tại thời điểm này, hình ảnh introtext và intro nên được hiển thị trên trang web.

Bây giờ, hãy mở tệp [root] /temsheet/your_template_name/html/com_tags/tag/taggedblog.php , xung quanh dòng 51 bạn sẽ thấy mã này <?php echo $this->loadTemplate('items'); ?>, thay đổi dòng đó thành:

<div class="row"><?php echo $this->loadTemplate('items'); ?></div>

Đó là tất cả.

Bây giờ hãy thử tạo một mục menu với loại Blog được gắn thẻ từ trình quản lý menu j Joomla của bạn và xem kết quả.

Để làm cho mọi thứ dễ dàng hơn, tôi đã tải lên các tệp ở trên tại đây . Chúc vui vẻ!


2
Tôi không thể tin rằng tính năng này chưa được thực hiện.
Alfredo Osorio

2

Điều này hiện không thể. Gần nhất bạn có thể nhận được là Tagged Item. Có một bài viết trong Diễn đàn Joomla về cách thêm phần đọc thêm. http://forum.j Joomla.org/viewtopic.php?f=708&t=838191

Đây cũng là hiện yêu cầu trên ideas.joomla.org tại http://ideas.joomla.org/forums/84261-joomla-idea-pool/category/12057-content?query=category%20blog%20tagged%20items . Bạn có thể đi và bỏ phiếu cho nó được bao gồm.


0

Vào tháng 3 năm 2019, đây dường như vẫn là một vấn đề .... Một cách tiếp cận khác có thể là sử dụng chuyển hướng của máy chủ web (Apache / ngnix / IIS / etc) để bắt các liên kết "tiêu chuẩn" và chuyển hướng chúng đến các liên kết của riêng bạn. Nhược điểm (như tôi thấy chúng) là: - truy cập vào các tệp cấu hình có liên quan cho máy chủ web (đối với Apache, điều này có thể được thực hiện trong mỗi thư mục .htaccess, miễn là mod_rewrite được bật) - bạn có số lượng quản lý được các thẻ để cho phép bạn tạo một mục menu đích cho mỗi mục (nếu bạn có 200 thẻ, bạn có thể tạo các mục menu cho từng mục, nhưng ai sẽ làm phiền?) Các quy tắc viết lại của Apache mà tôi đang sử dụng là:

RewriteBase /
ReWriteRule ^component/tags/tag/([^\.]+).html$ /$1-articles [L,R=301]

Vì vậy, đối với mỗi thẻ, tôi có một bài viết đích ở định dạng tôi muốn truy cập bởi một mục menu có tên thẻ và -articles (ví dụ: tag1-article). Chắc chắn, đó là một cách giải quyết, nhưng tôi đã nhận được kết quả mà tôi muốn, tôi có thể đáp ứng hai "điều kiện" (truy cập cấu hình Apache và không có nhiều thẻ) ở trên.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.