0

私の次のコードは、1.Get current URL 2.Go through array に基づいており、url 値 = to 配列内の値であるかどうかを確認します。

$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と同じ属性を持つページのみが表示されます。この各ページには、表示したい画像属性があります。この画像属性を渡すにはどうすればよいですか??

4

2 に答える 2

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="" />';
    }
于 2013-05-10T15:45:21.010 に答える
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('product'); $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
                    }
                }   
    }

それで、すべてが機能していますが、それでも応答していただきありがとうございます!感謝する

于 2013-05-10T18:43:38.483 に答える