2013-05-09 1 views
0

Мой следующий код основан на 1.Get текущего URL 2.Go через массив и проверить, если в значении URL = дорожить в массиве сделать это:В шаблоне page_list получить атрибут изображения concrete5

$on_this_link = "http://$_SERVER[HTTP_HOST]$_SERVER[REQUEST_URI]"; 
foreach ($city_array as $sandwich) { 
    if (strpos($on_this_link, $sandwich) == true) { 
     $sandwich = trim($sandwich, '/'); 
     $city  = $sandwich; 
     if ($city == 'newyork') { 
      foreach ($category_array as $double_sandwich) { 
       if (strpos($on_this_link, $double_sandwich) == true) { 
        $double_sandwich = trim($double_sandwich, '/'); 
        $category_is = $double_sandwich; 
        Loader::model('page_list'); 
        $nh = Loader::helper('navigation');     
        $pl = new PageList(); 
        $pl->filterByAttribute('city', '%' . $city . '%', 'like'); 
        $pl->filterByAttribute('category','%'.$category_is.'%','like');     
        $pl->sortByDisplayOrder(); 
        $pagelist = $pl->get(); 
        foreach ($pagelist as $p) { 
        echo '<li> <a href="' . $nh->getLinkToCollection($p) . '">' .htmlspecialchars($p->getCollectionName()) . '</a> </li>'; 
         ?> 
       } 
      } 
    } 
} 

Поэтому он покажет мне только страницы с одинаковым атрибутом с URL-адресом . Каждая из этих страниц имеет атрибут изображения, который я хочу показать. Как передать этот атрибут изображения?

ответ

1

Заканчивать комментарии в шаблоне просмотра списка блоков Страницы: https://github.com/concrete5/concrete5/blob/master/web/concrete/blocks/page_list/view.php#L33

Вы можете получить изображение атрибутов, поставив некоторый код, как это внутри foreach ($pagelist as $p) цикла:

$img = $p->getAttribute('example_image_attribute_handle'); 
    if ($img) { 
     //you could output the original image at its full size like so: 
     echo '<img src="' . $img->getRelativePath() . '" width="' . $img->getAttribute('width') . '" height="' . $img->getAttribute('height') . '" alt="" />'; 

     //or you could reduce the size of the original and output that like so: 
     $thumb = Loader::helper('image')->getThumbnail($img, 200, 100, false); //<--200 is width, 100 is height, and false is for cropping (change to true if you want to crop the image instead of resize proportionally) 
     echo '<img src="' . $thumb->src . '" width="' . $thumb->width . '" height="' . $thumb->height . '" alt="" />'; 
    } 
0

Thx но я это сделал уже по-другому! Я не использовал

Loader :: model ('page_list');

Вместо этого я использовал:

$blockType = BlockType::getByHandle('page_list'); 

И жёстко блок!

$th = Loader::helper('text'); 
$ih = Loader::helper('image'); 
$page_current = Page::getCurrentPage(); 
$page_2 = $page_current->getCollectionHandle(); 

$ IMG = $ PAGE-> GetAttribute ('продукт'); $ thumb = $ ih-> getThumbnail ($ img, 240,150, false);

И после того, как я изменил немного мой код выше:

$on_this_link = "http://$_SERVER[HTTP_HOST]$_SERVER[REQUEST_URI]"; 
    foreach ($city_array as $sandwich) { 
     if (strpos($on_this_link, $sandwich) == true) { 
      $sandwich = trim($sandwich, '/'); 
      $city  = $sandwich; 
      if ($city == 'newyork') { 
      foreach ($category_array as $double_sandwich) { 
      if (strpos($on_this_link, $double_sandwich) == true) { 
      $double_sandwich = trim($double_sandwich, '/'); 
      $category_is = $double_sandwich; 
      $city_att = $page->getAttribute('city', '%' . $city . '%', 'like'); 
      $sub_cat_att = $page->getAttribute('category','%'.$category_is.'%','like'); ?>    
      <?php if($city == $city_att && $category_is == $sub_cat_att){ ?><li><img src="<?php echo $thumb->src ?>" width="<?php echo $thumb->width ?>" height="<?php echo $thumb->height ?>" alt="" /> 
    <h3> <?php echo $title ?></h3> 
    <div class="product_description"> 
    <?php echo $description ?> 
    </div> 
    <a href="<?php echo $url ?>" target="<?php echo $target ?>">Read More... </a> 
    </li> <?php } ?> <?php 
        } 
       } 
    } 

Так что все это работает, но до сих пор ТНХ для отзовитесь! Адаптация

Смежные вопросы