2012-03-08 36 views
6

Tôi muốn làm cho hình ảnh giới thiệu bài viết Joomla hoạt động như đọc nhiều hơn và liên kết tiêu đề. Vì vậy, người dùng nhấp vào hình ảnh và bài viết tải.Hình ảnh giới thiệu Joomla khi đọc thêm liên kết

Tôi không phải là một chuyên gia PHP nhưng có lẽ đây là đoạn code liên kết readmore:

<a href="<?php echo $this->item->readmore_link; ?>" class="button<?php echo $this->item->params->get('pageclass_sfx'); ?>"> 
     <?php if ($this->item->readmore_register) : 
      echo JText::_('Register to read more...'); 
     elseif ($readmore = $this->item->params->get('readmore')) : 
      echo $readmore; 
     else : 
       echo JText::_("Read Article"); 
     endif; ?></a> 

Đây là những gì tôi muốn làm với tất cả các hình ảnh giới thiệu trên trang web joomla của tôi. Cảm ơn!

+1

Hình ảnh giới thiệu nào?Bạn đang đặt một hình ảnh trong khu vực nội dung phía trên dòng đọc nhiều hơn? –

Trả lời

6

Chỉ cần giải quyết!

cách suy nghĩ của bạn đã giúp tôi. Cảm ơn bạn!

đây là mã của tôi:

 <a href="<?php echo JRoute::_(ContentHelperRoute::getArticleRoute($this->item->slug, $this->item->catid)); ?>"> 

    <?php 
     $images = json_decode($item->images); 
     if (isset($images->image_intro) and !empty($images->image_intro)) { 
      $imgfloat = (empty($images->float_intro)) ? $params->get('float_intro') : $images->float_intro; 
      $class = (htmlspecialchars($imgfloat) != 'none') ? ' class="size-auto align-'.htmlspecialchars($imgfloat).'"' : ' class="size-auto"'; 
      $title = ($images->image_intro_caption) ? ' title="'.htmlspecialchars($images->image_intro_caption).'"' : ''; 
      echo '<img'.$class.$title.' src="'.htmlspecialchars($images->image_intro).'" alt="'.htmlspecialchars($images->image_intro_alt).'" />'; 
     } 

     echo $this->item->introtext; 

    ?> 

    </a> 
1

Vì vậy, hãy để tôi bắt đầu bằng cách giải thích mã mà bạn đã đăng ở trên. Toàn bộ khối mã tạo ra một liên kết: có một loạt các câu lệnh nếu được xác định dựa trên một số cài đặt. Ví dụ: nếu bạn đã đặt mọi người cần đăng ký để đọc thêm, liên kết sẽ thông báo "Đăng ký để đọc thêm ..."

Phần mà chúng tôi quan tâm ở đây, tuy nhiên, vì chúng tôi muốn để biến hình ảnh thành liên kết, là URL mà chúng tôi muốn hình ảnh liên kết đến. Đây là đúng trong dòng đầu tiên:

<a href="<?php echo $this->item->readmore_link; ?>" 

vì vậy chúng tôi biết rằng URL được cung cấp tự động nhờ vào $item->item->readmore_link và tất cả các mã này đang làm được lặp lại nó vào HTML.

Tất cả những gì còn lại là chỉnh sửa mẫu Joomla của trang mà bạn có hình ảnh của bạn (có thể là cùng một tệp bạn đã lấy mã này). Có vẻ như đây sẽ là một phần của vòng lặp PHP lớn hơn, vòng lặp này sẽ lặp đi lặp lại qua tất cả các bài đăng. Một nơi nào đó ở trên nơi bạn tìm thấy mã này, phải là mã cho hình ảnh giới thiệu đi kèm với bài đăng đó.

Tôi không chắc nó trông như thế nào, nó có thể là <img src="<? stuff here; ?> /> hoặc có thể được tạo động. Hãy đọc tiếp. Nếu bạn vẫn không chắc chắn nơi để tìm thấy nó ở cuối, chỉnh sửa bài viết của bạn với mã đầy đủ của các mẫu, nơi bạn đã nhận ở trên snipping từ. Bất kể những gì có vẻ như, nó được gọi là <WHATEVER IMAGE CODE YOU FOUND ABOVE> trong các bước sau đây:

Bạn phải quấn hình ảnh đó với "một" thẻ để nó trông giống như sau:

<a href="<?php echo $this->item->readmore_link; ?>"> <WHATEVER IMAGE CODE YOU FOUND ABOVE> </a> 

Đó nên làm đi. Hãy cho tôi biết nếu bạn gặp bất kỳ sự cố nào, tôi sẽ vui lòng làm cho bài đăng của tôi cụ thể hơn nếu bạn có thể cung cấp thông tin chi tiết hơn, nhưng tôi đã cố gắng giải thích nó đủ để bạn có thể tìm ra một cặp vợ chồng cố gắng.

+0

Ý tưởng của bạn là tốt, nhưng không có mã hình ảnh giới thiệu trong bài viết chuẩn của Joomla. Chúng tôi sẽ cần thêm thông tin để biết vị trí của anh ấy. –

+0

Tôi không có một nền tảng Joomla, chỉ có một nền tảng PHP, nhưng tôi đã nghĩ rằng có thể anh ấy đang sử dụng một mẫu hoặc chủ đề hoặc một thứ gì đó cho phép anh ấy tải lên một hình ảnh. Nó sẽ được tạo thông qua trình trợ giúp hoặc thủ công với URL động. Tôi đoán rất có thể nó sẽ là một cái gì đó giống như một ' />' nhưng một trong hai cách giải pháp của tôi nên làm việc cho anh ta. Bạn nói đúng rằng điều duy nhất làm cho câu hỏi này trở nên khó khăn là việc thiếu cung cấp thông tin chi tiết. – swiecki

+0

Tôi đã tìm ra câu trả lời của bạn. Nếu anh ấy sử dụng phần mở rộng để cho phép hình ảnh bài viết thì sẽ có mã hình ảnh cụ thể. Nếu anh ta chỉ cần đặt một hình ảnh trong bản tóm tắt bài viết, sau đó nó sẽ mất một số phép thuật regex để làm cho nó hoạt động. –

1

Như bạn đã nói bạn không phải là chuyên gia về PHP, có vẻ như đặt cược tốt nhất của bạn sẽ là sử dụng phần mở rộng Joomla có chức năng tương tự với những gì bạn muốn.

Tôi tin rằng mod_minifrontpage sẽ hoạt động cho những gì bạn cần. Nó cho phép bạn hiển thị một danh sách các bài viết, và nó tạo ra các hình thu nhỏ cho những bài viết dựa trên hình ảnh đầu tiên được tham chiếu.

1

Có hình ảnh giới thiệu bài viết trong J, vì 1.7.5 và bây giờ trong mới nhất 2.5.3 những gì bạn cần là thay đổi giá trị mặc định cho component_content,

bạn có thể làm điều đó 2 cách, chỉnh sửa quan điểm trong yourinstall/components/com_content/views/

hoặc sử dụng ghi đè mẫu, trước hết bạn cần biết nếu mẫu của bạn đang sử dụng ghi đè khác nếu bạn chỉnh sửa chế độ xem thành phần trong chính thành phần, bạn sẽ không thấy thay đổi.

để xác minh này, hãy vào SITE_NAME/templates/TEMPLATE_NAME/thư mục html và kiểm tra xem có tên thư mục com_content,

nếu đó là trường hợp so với mẫu của bạn đang sử dụng ghi đè và bất kỳ sửa đổi nên được thực hiện trough không thông qua thành phần

nay đến mã thực tế

đây là trong thành phần \ com_content \ xem \ đặc trưng \ tmpl \ default_item.php (quan điểm này tôi DEFAULT FrontPage ĐIỀU)

<?php if (isset($images->image_intro) and !empty($images->image_intro)) : ?> 
    <?php $imgfloat = (empty($images->float_intro)) ? $params->get('float_intro') : $images->float_intro; ?> 

    <div class="img-intro-<?php echo htmlspecialchars($imgfloat); ?>"> 
    <img 
     <?php if ($images->image_intro_caption): 
      echo 'class="caption"'.' title="' .htmlspecialchars($images->image_intro_caption) .'"'; 
     endif; ?> 
     src="<?php echo htmlspecialchars($images->image_intro); ?>" alt="<?php echo htmlspecialchars($images->image_intro_alt); ?>"/> 
    </div> 
<?php endif; ?> 

tất cả các bạn sẽ cần phải làm là quấn một yếu tố xung quanh thẻ IMG với liên kết readmore như thế này

<a href="<?php echo $this->item->readmore_link; ?>"> 

<img 
     <?php if ($images->image_intro_caption): 
      echo 'class="caption"'.' title="' .htmlspecialchars($images->image_intro_caption) .'"'; 
     endif; ?> 
     src="<?php echo htmlspecialchars($images->image_intro); ?>" alt="<?php echo htmlspecialchars($images->image_intro_alt); ?>"/> 



</a> 

đừng quên rằng nếu có mẫu ghi đè cho com_content bạn wold cần phải chỉnh sửa tính năng/default_item.php bên trong nó

2

cho Joomla 2.5:

trong override của bạn cho _item.php (Vị trí: yourtemplate \ html \ mod_articles_news \ item.php) nơi dòng sau:

<?php if ($params->get('image')) : ?> 
    <?php $images = json_decode($item->images); ?> 
    <?php if (isset($images->image_intro) and !empty($images->image_intro)) : ?> 
     <a href="<?php echo $item->link;?>"><img src="<?php echo htmlspecialchars($images->image_intro); ?>" alt="<?php echo htmlspecialchars($images->image_intro_alt); ?>"/></a> 
    <?php endif; ?> 
<?php endif; ?> 

nơi nó ở đó, nơi bạn muốn nó xuất hiện Ví dụ sau:

<?php echo $item->beforeDisplayContent; ?> 

Hình ảnh giới thiệu của bạn đã trở thành liên kết ngay bây giờ. phần thiết lập, đảm bảo rằng nếu người xem sử dụng Internet Explorer, nó sẽ không hiển thị một hộp chữ thập đỏ nhỏ.

Chỉ để biết thông tin: trong blog_item.php bạn có thể tìm thấy mã ví dụ về cách hiển thị trong bài viết. Tại đây bạn cũng có thể tìm thấy mã cho imagefloat, v.v.

<?php if (isset($images->image_intro) and !empty($images->image_intro)) : ?> 
<?php $imgfloat = (empty($images->float_intro)) ? $params->get('float_intro') : $images->float_intro; ?> 
<div class="img-intro-<?php echo htmlspecialchars($imgfloat); ?>"> 
<img 
    <?php if ($images->image_intro_caption): 
     echo 'class="caption"'.' title="' .htmlspecialchars($images->image_intro_caption) .'"'; 
    endif; ?> 
    src="<?php echo htmlspecialchars($images->image_intro); ?>" alt="<?php echo htmlspecialchars($images->image_intro_alt); ?>"/> 
</div> 
<?php endif; ?> 
1

Trong Joomla 3.1, bố cục intro_image đã được chuyển đến thư mục bố trí/joomla/content. Trong trường hợp của tôi, nó được gọi là từ com_content/views/category/tmpl/blog_item.php như vậy:

<?php echo JLayoutHelper::render('joomla.content.intro_image', $this->item); ?> 

tôi chuyển tập tin đó để tôi Mẫu/html/com_content/category/blog_item.php và sau đó quấn gọi để JLayoutHelper như vậy:

<?php $link = JRoute::_(ContentHelperRoute::getArticleRoute($this->item->slug, $this->item->catid)); ?> 
<a href="<?php echo $link; ?>"> 
<?php echo JLayoutHelper::render('joomla.content.intro_image', $this->item); ?> 
</a> 
0

Nếu bạn đã cài đặt trên Cổng Joomla 3.1, ghi đè đang ở trong một vị trí khác. Bạn sẽ muốn điều hướng đến các plugins/system/gantry/ghi đè/3.0/2.5/com_content/category/blog_item.php và bọc hình ảnh giới thiệu với mã liên kết đọc nhiều hơn.

<?php $link = JRoute::_(ContentHelperRoute::getArticleRoute($this->item->slug, $this->item->catid)); ?> 
<a href="<?php echo $link; ?>"><img 
     <?php if ($images->image_intro_caption): 
      echo 'class="caption"'.' title="' .htmlspecialchars($images->image_intro_caption) .'"'; 
     endif; ?> 
     src="<?php echo htmlspecialchars($images->image_intro); ?>" alt="<?php echo htmlspecialchars($images->image_intro_alt); ?>"/></a> 
Các vấn đề liên quan