Hallo, ich will ein Modul schreiben, womit ich meinen CMS Seiten ein Bild mit hinzufügen kann. Dazu möchte ich im Backend in der Verwaltung der CMS Seiten eine Dateiupload hinzufügen.
Erst habe ich die oxcontents Tabelle um ein Feld erweitert (oxpic)
Dann habe ich mit meinen Modul die Block erweitert mit folgenden Code:
<tr>
<td class="edittext">
Datei
</td>
<td class="edittext">
<input type="text" class="editinput" size="42" name="editval[oxcontents__oxpic]" value="[{$edit->oxcontents__oxpic->value}]">
</td>
</tr>
<tr>
<td class="edittext">
Upload
</td>
<td class="edittext" colspan="2">
<input class="editinput" name="myfile[CICO@oxcontents__oxpic]" type="file" size="26" >
</td>
</tr>
Das Feld zum Upload wird mir angezeigt. Jedoch wird leider kein Bild hochgeladen bzw in die Datenbank eingetragen.
Die Dateien sollen in den [I]out/pictures/master/category/icon/[/I] abgespeichert werden. Dafür verwende ich ja das [I]CICO[/I], oder verstehe ich das falsch ?
Kann mir jemand sagen wo der Fehler liegt?
Hey, danke es hilft.
Aber wie passe ich die <form> an ohne die coredatein von oxid direkt zu bearbeiten.
Die <form> befindet sich leider außerhalb des Blockes.
Danke
das geht eher nicht.
Da musst du das ganze Template austauschen.
Okay 
Kannst du mir einen kleinen Tipp geben, wie ich ein ganzes template überschreiben kann ?
Ich habe es nun so probiert, jedoch tut sich da leider nichts 
'extend' => array(
/* Controllers */
'content_main' => 'sm_landingpage_picture/controllers/admin/sm_landingpage_picture_content_main',
/*Templates*/
'content_main' => 'sm_landingpage_picture/content_main',
),
'files' => array(
/* CONTROLLERS */
'sm_landingpage_picture_content_main' => 'sm_landingpage_picture/controllers/admin/sm_landingpage_picture_content_main.php',
),
'templates' => array(
'content_main.tpl' => 'sm_landingpage_picture/views/admin/tpl/content_main.tpl'
),
Du musst die render() Methode in der content_main Klasse erweitern:
public function render() {
parent::render();
return "custom_content_main.tpl";
}
dein metadata.php extend wird übrigens nicht funktionieren, es ist ein ungültiges Array. Man kann innerhalb eines Moduls die Klasse also nur ein mal überladen.