ok, dann gehts auch direkt los:
1. Modul erstellen
im “modules”-Ordner eine neuen Unterordner anlegen => "[I]oxarticle[/I]"
und da drin eine [I]oxarticle_ext.php[/I] mit folgendem Inhalt anlegen:
<?php
class oxarticle_ext extends oxarticle_ext_parent
{
public function getPicTitle( $sIndex = 1)
{
return $this->{"oxarticles__oxpictitle".$sIndex}->value;
}
}
2. im Backend
Modul eintragen:
oxarticle => oxarticle/oxarticle_ext
falls die oxarticle bereits überladen wird, dann einfach &oxarticle/oxarticle_ext an die bestehende Zeile anhängen
Unter Service => Tools den SQL Code ausführen:
ALTER TABLE `oxarticles`
ADD `OXPICTITLE1` VARCHAR( 255 ) NOT NULL AFTER `OXPIC1` ,
ADD `OXPICTITLE1_1` VARCHAR( 255 ) NOT NULL AFTER `OXPICTITLE1` ,
ADD `OXPICTITLE1_2` VARCHAR( 255 ) NOT NULL AFTER `OXPICTITLE1_1` ,
ADD `OXPICTITLE1_3` VARCHAR( 255 ) NOT NULL AFTER `OXPICTITLE1_2`,
ADD `OXPICTITLE2` VARCHAR( 255 ) NOT NULL AFTER `OXPIC2` ,
ADD `OXPICTITLE2_1` VARCHAR( 255 ) NOT NULL AFTER `OXPICTITLE2` ,
ADD `OXPICTITLE2_2` VARCHAR( 255 ) NOT NULL AFTER `OXPICTITLE2_1` ,
ADD `OXPICTITLE2_3` VARCHAR( 255 ) NOT NULL AFTER `OXPICTITLE2_2`,
ADD `OXPICTITLE3` VARCHAR( 255 ) NOT NULL AFTER `OXPIC3` ,
ADD `OXPICTITLE3_1` VARCHAR( 255 ) NOT NULL AFTER `OXPICTITLE3` ,
ADD `OXPICTITLE3_2` VARCHAR( 255 ) NOT NULL AFTER `OXPICTITLE3_1` ,
ADD `OXPICTITLE3_3` VARCHAR( 255 ) NOT NULL AFTER `OXPICTITLE3_2`,
ADD `OXPICTITLE4` VARCHAR( 255 ) NOT NULL AFTER `OXPIC4` ,
ADD `OXPICTITLE4_1` VARCHAR( 255 ) NOT NULL AFTER `OXPICTITLE4` ,
ADD `OXPICTITLE4_2` VARCHAR( 255 ) NOT NULL AFTER `OXPICTITLE4_1` ,
ADD `OXPICTITLE4_3` VARCHAR( 255 ) NOT NULL AFTER `OXPICTITLE4_2`,
ADD `OXPICTITLE5` VARCHAR( 255 ) NOT NULL AFTER `OXPIC5` ,
ADD `OXPICTITLE5_1` VARCHAR( 255 ) NOT NULL AFTER `OXPICTITLE5` ,
ADD `OXPICTITLE5_2` VARCHAR( 255 ) NOT NULL AFTER `OXPICTITLE5_1` ,
ADD `OXPICTITLE5_3` VARCHAR( 255 ) NOT NULL AFTER `OXPICTITLE5_2`,
ADD `OXPICTITLE6` VARCHAR( 255 ) NOT NULL AFTER `OXPIC6` ,
ADD `OXPICTITLE6_1` VARCHAR( 255 ) NOT NULL AFTER `OXPICTITLE6` ,
ADD `OXPICTITLE6_2` VARCHAR( 255 ) NOT NULL AFTER `OXPICTITLE6_1` ,
ADD `OXPICTITLE6_3` VARCHAR( 255 ) NOT NULL AFTER `OXPICTITLE6_2`,
ADD `OXPICTITLE7` VARCHAR( 255 ) NOT NULL AFTER `OXPIC7` ,
ADD `OXPICTITLE7_1` VARCHAR( 255 ) NOT NULL AFTER `OXPICTITLE7` ,
ADD `OXPICTITLE7_2` VARCHAR( 255 ) NOT NULL AFTER `OXPICTITLE7_1` ,
ADD `OXPICTITLE7_3` VARCHAR( 255 ) NOT NULL AFTER `OXPICTITLE7_2`
Views updaten
3. Admin Template
out/admin/tpl/article_pictures.tpl Zeile ~125 rum so ergänzen: (Magenta= neu)
<td class="edittext">
<input class="editinput" name="myfile[M[{$iIndex}]@oxarticles__oxpic[{$iIndex}]]" type="file">
<input class="editinput" name="editval[oxarticles__oxpictitle[{$iIndex}]]" type="text" value="[{ $edit->getPicTitle($iIndex) }]">
</td>
und damit bei kleiner Bildschirmauflösung die “Löschen” und “Vorschau” texte nicht so komisch umbrechen habe ich sie als Titel gemacht:
<a href... ><span class="ico"></span><span class="float: left;>">[{ oxmultilang ident="GENERAL_DELETE" }]</span></a>
...
...
<a href... ><span class="ico"></span><span class="float: left;>">[{ oxmultilang ident="ARTICLE_PICTURES_PREVIEW" }]</span></a>
wird zu
<a href.... ><span class="ico" title="[{ oxmultilang ident="GENERAL_DELETE" }]"></span></a>
....
....
<a href... ><span class="ico" title="[{ oxmultilang ident="ARTICLE_PICTURES_PREVIEW" }]"></span></a>
4. Frontend Template
Im Frontend bekommt man die Titel mit der Funktion getPicTitle( x ) wobei x für die Bildnummer steht.
Würde man jetzt die Titel bei “other pictures” auf der Produktdetailseite einbauen wollen, wäre das in [I]out/azure/tpl/page/details/inc/morepics.tpl[/I] folgende Zeile innerhalb der foreach-Schleife (Zeilen 6 bis 13)
[{$oPictureProduct->getPicTitle($iPicNr) }]
dann nur noch das Magiczoomplus configurieren, dass er sich den Titel aus irgendeinem Attribut holt oder die CSS anpassen und das wars auch schon.