获取Magento中包含标签的媒体库图像列表

时间:2016-05-18 17:02:55

标签: php magento magento-1.7 magento-1.9

我创建了一个可配置的产品,并添加了一些带有不同标签的图像。我如何才能在media.phtml文件的前端进入包含标签的图像: mylabel ,当我按下这些图像以获得更多视图的功能时?我有一个代码,但我不知道为什么只显示第一张图片,而不是全部。

enter image description here

<RelativeLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:paddingBottom="@dimen/activity_vertical_margin"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    tools:context=".MainActivity">

<TextView
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:text="SABORES EXISTENTES"
    android:id="@+id/textViewNovoSabor"
    android:textAlignment="center"
    android:textColor="#0501e5" />

<LinearLayout
    android:orientation="vertical"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:layout_gravity="center_horizontal"
    tools:context=".MainActivity"
    android:id="@+id/rowsContainerControleSabor"
    android:layout_below="@+id/textViewNovoSabor"
    style="@android:style/Widget.Holo.Light.EditText">

    <ListView
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:id="@+id/listView" />


</LinearLayout>

<LinearLayout
    android:layout_width="match_parent"
    android:layout_height="100dp"
    android:orientation="vertical"
    android:layout_below="@id/rowsContainerControleSabor">
    <Button
        android:id="@+id/btnAddNewItem"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:background="@drawable/transparent_background"
        android:paddingLeft="5dp"
        android:text="Adicionar sabor"
        android:textColor="@android:color/darker_gray"
        android:height="20dp"
        android:layout_below="@+id/rowsContainerControleSabor"
        />
</LinearLayout>



</RelativeLayout>

1 个答案:

答案 0 :(得分:2)

我还没有对此进行过测试,但是在这里打破你的代码示例是我的想法:

$prodimg = Mage::getModel('catalog/product')->load($_product->getId())

这很好,但只有当你需要检索$_product中已经不存在的属性时才这样做,否则你只是将数据库查询加倍。

->getMediaGalleryImages()

根据Mage_Catalog_Model_Product::getMediaGalleryImages(),这会返回Varien_Data_Collection

->getItemByColumnValue('label','mylabel')

根据Varien_Data_Collection::getItemByColumnValue只返回符合条件的集合中的单个项目。

相反,您可能希望将->getItemsByColumnValue()与相同的参数一起使用:

$productImages = Mage::getModel('catalog/product')
    ->load($_product->getId())
    ->getMediaGalleryImages()
    ->getItemsByColumnValue('label', 'mylabel');

从这里开始,你应该能够循环返回的数组并输出你已经输出:

/** @var array $productImages */
foreach ($productImages as $productImage) { /** @var Varien_Object $productImage */
    $image = $this->helper('catalog/image')
        ->init($_product, 'image', $productImage->getFile());
    echo "<img src='" . $image . "' class='img-responsive' />";
}