@sonic schrieb:
Du Registriest zur Laufzeit auf ein Event den Pfad zu Deinem Plugin/Theme-Pfad und hast dort wieder die gleiche Struktur, wie im Theme und überschreibst dort wahlweise Dateien/Blöcke
Lese Dich mal durch die Doku - oder kauf Daniels Buch
Danke für den Tipp, immerhin wird das plugin jetzt hochgeladen und installiert, allerdings funktioniert ansonsten auch nichts.
Das Buch habe ich ja schon länger hier, aber auch an dieser Stelle finde ich die Beschreibungen der Vorgehensweise wieder sehr lückenhaft. Für mich ist auf den entsprechenden Seiten 139 bis 145 absolut unklar wie der Zusammenhang ist zwischen dem ersten plugin und dem zweiten, wie welche Ordner und Dateien wo angelegt werden müssen.
Habe versucht, alles so gut wie möglich einzuhalten, aber irgendwo muss ich noch was falsch machen…
Ich habe also nun das theme-Verzeichnis, das ich im Einsatz habe (wie soll das denn eigentlich später gehen wenn das plugin bei anderen installiert wird (?), nochmal in mein plugin kopiert in den Ordner Resources/Themes/Frontend/meintheme/
Dann habe ich in meinem plugin meine public static function getSubscribedEvents()…
erweitert um:
'Enlight_Controller_Front_StartDispatch' => 'onGetControllerPath',
Meine onGetControllerPath sieht dann so aus:
public function onGetControllerPath (\Enlight_Controller_EventArgs $args)
{
$this->container->get('Template')->addTemplateDir (
$this->getPath() . '/Resources/Views/'
);
return $this->getPath() . '/Controllers/Frontend/meinplugin.php';
}
So, dann wird es im Buch total verwirrend.
Was ist mit dem Verzeichnis „Resources/Views/“ - muss ich das auch noch in meinem plugin anlegen? Und da muss da dann diese index.tpl rein?
{extends file='parent:frontend/index/index.tpl'}
{block name="frontend_index_content"}
{/block}
Was ist mit dem Verzeichnis „/Controllers/Frontend/“ - muss ich das auch noch in meinem plugin anlegen und meine plugin-php-Datei dort auch nochmal ablegen?
Dann war ja immer noch die Frage nach der Installations-Funktion:
public function install(InstallContext $context)
{
// NAMEN DES AKTIVEN THEMES ERMITTELN
$connection = $this->container->get('dbal_connection');
$theme_used_id_prep = "SELECT template_id FROM s_core_shops";
$theme_used_id = $connection->query($theme_used_id_prep);
$theme_used_name_prep = "SELECT template FROM s_core_templates WHERE id = '$theme_used_id'";
$theme_used_name = $connection->query($theme_used_name_prep);
$dstfile = "media/image/.00customized_pics";
mkdir(dirname($dstfile), 0777, true);
return true;
}
Okay, die Ermittlung des aktiven themes brauche ich ja nun gar nicht mehr, aber ist es möglich dieses Verzeichnis, das ich zwingend brauche, in dieser Form anzulegen? Eine Fehlermeldung gibt es diesbezüglich nicht, aber angelegt wird halt auch nichts. Zugriffsrechte sind vorhanden.