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