2012-10-10 40 views
5

Tôi cố gắng để thêm một phong cách tùy chỉnh cho mỗi mục trong danh sách trong Joomla! Ngành nghề Danh sách sản lượng mà mang lại cho tôi html saujoomla danh sách loại override để thêm id cho mỗi mục trong danh sách

<div class="blog"> 
    <div class="cat-children">  
    <ul> 
     <li class="first"> 
     <span class="item-title"><a href="/hyt-hand-held-license-free">HYT</a> 
     </span> 
     </li> 
     <li></li> 
    </ul> 
    </div> 
</div> 

Tôi nghĩ rằng những gì tôi cần làm là thêm nội dung nào đó như:

<li id="myID<?php echo $this->item->catid; ?> "> 

Sự cố là tôi không thể tìm thấy tệp nào cần ghi đè. Tôi đã xem /templates/mytemplate/html/com_content/category/ cũng như /components/com_content/views/category/tmpl nhưng không có tệp nào có vẻ có danh sách không có thứ tự trong đó có liên quan đến cat-chidren.

Vì vậy, câu hỏi đầu tiên của tôi là tôi nên chỉnh sửa tệp nào? Và thứ hai của tôi là cú pháp tốt nhất của this->item->[correct'Method'?] (là phương pháp đúng thuật ngữ hoặc biến, tôi hơi run rẩy về điều này!) Để sử dụng để mỗi mục danh sách sẽ có id="myID[nameofarticle/subcatagory]"

Trả lời

1

Bạn sẽ thấy mèo con trong /components/com_content/views/category/tmpl/default.php

Các ul là trong một subtemplate tải, loadTemplate ('trẻ em'); ?>, Tức là

/components/com_content/views/category/tmpl/default_children.php

Nếu bạn muốn thay đổi lớp li bạn có thể dính vào một cái gì đó như thế này tại dòng 26 (của override của bạn không tập tin lõi - nhưng tốt để chỉ kiểm tra trên một tập tin lõi)

<?php $class = ' class="cmyId' . $this->escape($child->title) . '"';?>

Điều đó sẽ làm cho mỗi li xuất hiện như

vì vậy, đây

<li<?php echo $class; ?>> 
    <?php $class = ''; ?> 

trở này

<?php $class = ' class="cmyId' . $this->escape($child->title) . '"';?> 
    <li<?php echo $class; ?>> 
    <?php //$class = ''; ?> 

đã thử nghiệm nó trên một cài đặt 2.5.

+2

Tuyệt vời. Làm việc như một say mê trên cả hai tính. :) sửa đổi mã của bạn một chút và thay thế con-> tiêu đề với con-> bí danh và bây giờ nó thậm chí còn tốt hơn như tôi có lớp hyphenated duy nhất thay vì một chia một. cảm ơn nhiều!! – happilyUnStuck

+0

Tuyệt vời - không nghĩ đến việc sử dụng bí danh cho điều này. tốt hơn nhiều. – Trev

0

Bạn nên ghi đè lên một số tệp được lưu trữ trong các thành phần/com_content/views/ Tùy thuộc vào danh sách bạn muốn chỉnh sửa, bạn nên tìm trong các thư mục: - bài viết - loại - loại - đặc trưng Trong mỗi thư mục này bạn sẽ thấy thư mục con được gọi là 'tmpl', bên trong có tệp 'default.php'. Đó là những gì bạn đang tìm kiếm.

Nếu bạn muốn ghi đè tệp, hãy nhớ thực hành tốt nhất là đặt các tệp thay thế trong thư mục mẫu của bạn, tạo đường dẫn tương tự như đường dẫn tệp gốc (ví dụ: thư mục bài viết: mẫu/YOURTEMPLATEFOLDER /html/com_content/article/default.php - KHÔNG cần thư mục tmpl, cũng không phải thư mục lượt xem).

Một cách khác và, theo ý kiến ​​của tôi, cách dễ dàng hơn có thể đặt các mẫu khác nhau cho từng danh mục và sau đó gán cho từng kiểu danh sách bạn thích. Hoặc, thậm chí dễ dàng hơn, bạn chỉ cần chỉnh sửa tệp index.php của bạn trong thư mục của mẫu để nó lặp lại một bản định kiểu CSS cụ thể tùy thuộc vào $ catId.

0

Như mã HTML của bạn cho thấy bạn đang sử dụng xem Blog chuyên mục, mỗi trường hợp bài viết trong chuyên mục đã được đưa ra bởi tập tin blog_children.php, vì nó cho thấy /components/com_content/views/category/tmpl/blog.php

<?php echo $this->loadTemplate('children'); ?> 

Vì vậy /components/com_content/views/category/tmpl/blog_children.php là tệp bạn cần chỉnh sửa hoặc ghi đè trong thư mục html mẫu.

Sau đó, bạn có thể áp dụng kiểu tùy chỉnh thêm id hoặc lớp cho mỗi bài viết có $ child-> id.

Các vấn đề liên quan