Hook zum Aufrufen einer Datei
Hook zum Aufrufen einer Datei
Moin Moin,
die Doku wird ja gerade überarbeitet, aber bis dahin brauche ich nochmal Support beim Thema Hooks.
Das Projekt arbeitet mit WE 8.0.6.0.
Was ich herausgefunden habe, ich habe die Examples und kann diese in den custom Folder legen und sie werden ausgeführt.
Wenn ich das richtig gesehen habe, geht es nicht mehr die Hooks umzubenennen und in dem Template eines Dokuments zu referenzieren?
Zumindest sucht die Class in der Verzeichnisstruktur nur nach den "Event-Hooks"?
Was ich möchte, ist eigentlich garnicht so wild, beim Speichern möchte ich die ID des gespeicherten Dokuments als Parameter an eine URL hängen und diese URL aufrufen.
Hat da jemand ein Beispiel? Bin in der objektorientierten PHP Entwicklung leider absolut nicht drin.
Gruß
Finn
die Doku wird ja gerade überarbeitet, aber bis dahin brauche ich nochmal Support beim Thema Hooks.
Das Projekt arbeitet mit WE 8.0.6.0.
Was ich herausgefunden habe, ich habe die Examples und kann diese in den custom Folder legen und sie werden ausgeführt.
Wenn ich das richtig gesehen habe, geht es nicht mehr die Hooks umzubenennen und in dem Template eines Dokuments zu referenzieren?
Zumindest sucht die Class in der Verzeichnisstruktur nur nach den "Event-Hooks"?
Was ich möchte, ist eigentlich garnicht so wild, beim Speichern möchte ich die ID des gespeicherten Dokuments als Parameter an eine URL hängen und diese URL aufrufen.
Hat da jemand ein Beispiel? Bin in der objektorientierten PHP Entwicklung leider absolut nicht drin.
Gruß
Finn
-
- webEdition Partner
- Beiträge: 1825
- Registriert: Di 7. Mär 2006, 16:50
- Wohnort: Wien
- Kontaktdaten:
Re: Hook zum Aufrufen einer Datei
Hallo Finn,
Liebe Grüße,
Sascha
Interessant! Der Ansatz ist mir neu. Wir verwenden Hooks aber auch "erst" seit wE7.
Wo soll diese URL aufgerufen werden? Im Frontend, oder im Backend?
Liebe Grüße,
Sascha
Re: Hook zum Aufrufen einer Datei
schaut mal in die BeispielHooks, da wird eigentlich schnell klar wie das Hook-Konstruktur funktioniert.
Dann einfach mit z.b. Curl einen http Aufruf machen und die gewünschten Parameter dran hängen.
Im Hook kann "normales" php geschrieben werden.
Dann einfach mit z.b. Curl einen http Aufruf machen und die gewünschten Parameter dran hängen.
Im Hook kann "normales" php geschrieben werden.
webEdition Partner - https://www.blickfang-media.com
Ehemals im Vorstand des webEdition e.V.
Ehemals im Vorstand des webEdition e.V.
Re: Hook zum Aufrufen einer Datei
Der Hook soll im Backend beim Veröffentlichen eines Dokuments aufgerufen werden, soweit habe ich es auch geschafft. Der Punkt an dem ich nicht weiter komme ist folgender:
Ich brauche in dem Moment die ID des veröffentlichten Dokuments. Den Rest bekomme ich dann wieder hin
Ich brauche in dem Moment die ID des veröffentlichten Dokuments. Den Rest bekomme ich dann wieder hin
Re: Hook zum Aufrufen einer Datei
in der we 8 müsste das in etwa so aussehen:
Code: Alles auswählen
function weCustomHook_save($param) {
$hookHandler = $param['hookHandler'];
$obj = $param[0];
$docId = $obj->ID;
$obj->getElement('feldname'); // irgendein anderes Feld aus dem Dokument
}
webEdition Partner - https://www.blickfang-media.com
Ehemals im Vorstand des webEdition e.V.
Ehemals im Vorstand des webEdition e.V.
Re: Hook zum Aufrufen einer Datei
@Timo: schreib das doch gleich in die neue Doku, dann wird schneller weiterentwickelt...
Re: Hook zum Aufrufen einer Datei
Moin Timo,biwaMedia hat geschrieben: ↑Mi 5. Mai 2021, 13:19 in der we 8 müsste das in etwa so aussehen:Code: Alles auswählen
function weCustomHook_save($param) { $hookHandler = $param['hookHandler']; $obj = $param[0]; $docId = $obj->ID; $obj->getElement('feldname'); // irgendein anderes Feld aus dem Dokument }
danke für die Hilfe!
Das ist, was ich gebraucht habe!
Re: Hook zum Aufrufen einer Datei
Hallo Finn,
ich habe das Beispiel hier gefunden, hast du dieses Beispiel evtl auch in die WE9 Version übertragen?
Ich habe in dem Post schon beschrieben, was ich möchte, aber ich komm nicht richtig weiter.
Ich habe ein Select Feld auf der Seite, wo ich gerne alle Kategorien zum Dokument auswählen möchte.
Wenn ich das Feld ausgebe, sind alle IDs mit Komma drinnen, so wie die Kategorien im jeweiligen Dokument gespeichert werden.
Ich würde nun gerne mit dem prePublish Hook gerne den Wert der Variable $pagecats in die Category und temp_category schreiben.
Ein altes Beispiel für WE8 gibts auch im Forum unter
Wenn ich vielleicht dein Beispiel von WE8 und WE9 vergleichen könnte, dann würd ich vielleicht die Lösung finden.
Würde sehr helfen und danke schon im Voraus.
Matze
ich habe das Beispiel hier gefunden, hast du dieses Beispiel evtl auch in die WE9 Version übertragen?
Ich habe in dem Post
Code: Alles auswählen
https://forum.webedition.org/viewtopic.php?t=42284
Ich habe ein Select Feld auf der Seite, wo ich gerne alle Kategorien zum Dokument auswählen möchte.
Wenn ich das Feld ausgebe, sind alle IDs mit Komma drinnen, so wie die Kategorien im jeweiligen Dokument gespeichert werden.
Ich würde nun gerne mit dem prePublish Hook gerne den Wert der Variable $pagecats in die Category und temp_category schreiben.
Ein altes Beispiel für WE8 gibts auch im Forum unter
Code: Alles auswählen
https://forum.webedition.org/viewtopic.php?f=23&t=42001#p104160
Würde sehr helfen und danke schon im Voraus.
Matze
Re: Hook zum Aufrufen einer Datei
was ist denn der Sinn darin die Kategorien noch einmal auf der Bearbeiten Seite anzuzeigen?
Klar kann man das einfach in einen Hook übertragen, aber wenn es einen Sinn ergibt, kann das auch direkt in WE rein. Liegt es daran, das man die Kategorien einschränken will, also nur wenige anbieten, oder was ist der Gedanke?
Klar kann man das einfach in einen Hook übertragen, aber wenn es einen Sinn ergibt, kann das auch direkt in WE rein. Liegt es daran, das man die Kategorien einschränken will, also nur wenige anbieten, oder was ist der Gedanke?
webEdition-Kern-Entwickler
Re: Hook zum Aufrufen einer Datei
Vielleicht sollte man dann hier nach einer anderen Lösung suchen....EIGENSCHAFTEN TAB sehr zeitraubend ist
Entweder per autocomplete+Auswahl, oder man definiert in der Vorlage die möglichen Kategorien, dann würde ja idr. ein Multi-Select reichen. Ich nutze Kategorien nicht, sonst wäre mir das sicher auch schon mal aufgefallen - wäre das jemand einen FR wert? Wer will das betreuen und die Idee entwickeln?
webEdition-Kern-Entwickler
Re: Hook zum Aufrufen einer Datei
Hallo,
danke dass sich nochmals einige an dem Thema interessieren.
Mein Gedankengang wäre der, dass Redakteure schneller über ein Selectfeld auf der Bearbeiten Seite eine Mehrfach Auswahl treffen können. Da die Variable genau die Kategorien ID mit Beitrich ausgibt, könnte diese beim Speichern schnell und einfach in die Kategorien übertragen werden.
Natürlich ist dies bei sehr vielen Kategorien vielleicht nicht die Beste Lösung, aber effizienter als des zig-malige Auswählen einzelner Kategorien.
Zum Thema Hooks habe ich leider noch keine (für mich brauchbare Hilfe gefunden, was aber an mir liegt) Ich bin ja auch kein PHP Programmierer. Aber ich denke, ein paar Anwender Beispiele, welche die Möglichkeiten von Hooks auch an Programmier Leihen erklären, würde vielen Administratoren von WE Seiten helfen.
Grüße und frohe Feiertage
Matze
danke dass sich nochmals einige an dem Thema interessieren.
Mein Gedankengang wäre der, dass Redakteure schneller über ein Selectfeld auf der Bearbeiten Seite eine Mehrfach Auswahl treffen können. Da die Variable genau die Kategorien ID mit Beitrich ausgibt, könnte diese beim Speichern schnell und einfach in die Kategorien übertragen werden.
Natürlich ist dies bei sehr vielen Kategorien vielleicht nicht die Beste Lösung, aber effizienter als des zig-malige Auswählen einzelner Kategorien.
Zum Thema Hooks habe ich leider noch keine (für mich brauchbare Hilfe gefunden, was aber an mir liegt) Ich bin ja auch kein PHP Programmierer. Aber ich denke, ein paar Anwender Beispiele, welche die Möglichkeiten von Hooks auch an Programmier Leihen erklären, würde vielen Administratoren von WE Seiten helfen.
Grüße und frohe Feiertage
Matze
Re: Hook zum Aufrufen einer Datei
Das ist hier genau das Problem. Das sind schon erweiterte Einsprungpunkte - wenn man hier was einbaut sollte man SEHR genau wissen was man tut und sich auch etwas mit den Interna von WE auskennen.Aber ich denke, ein paar Anwender Beispiele, welche die Möglichkeiten von Hooks auch an Programmier Leihen erklären, würde vielen Administratoren von WE Seiten helfen.
Das kann man schon angehen. Der Sinn kann jetzt aber nicht sein, deshalb die Eigenschaften auf die Bearbeitenseite zu verschieben, sondern mehr zu überlegen wie man das verbessern kann. Generell kann es ja 100te Kategorien geben, die auch verschachtelt sind. Wenn man das vereinfachen will, könnte man bspw. auf der Vorlage Kategorien definieren die dann nur noch als Select vorliegen - aber ich würde darum bitten, das du das als Vorschlag unter den Features mit dem Rest der Community diskutierst, das dabei ein sinnvoller FR rauskommt.Mein Gedankengang wäre der, dass Redakteure schneller über ein Selectfeld auf der Bearbeiten Seite eine Mehrfach Auswahl treffen können.
webEdition-Kern-Entwickler
Re: Hook zum Aufrufen einer Datei
Also um WE generell weiterzubringen, wäre es gut, wenn daran diskutiert wird. Um dir wenigstens mal schnell zu helfen, kannst du den Hook benutzen:
Das wäre jetzt mal auf die Schnelle der Hook, den du als "we_hook_preSave.class.php" unter webEdition/custom/hook/ speichern solltest.
Code: Alles auswählen
<?php
declare(strict_types=1);
/**
* if hook execution is enabled this function will be executed
* when saving a document, template, object or class
* The array $param has all information about the respective document.
*
* IMPORTANT!
* Copy this file to the custom/hooks folder when doing any changes
* Files in the sample_hooks folder are not executed and are not update-safe and will be overwritten by the next webEdition update
*
*/
class we_hook_preSave extends we_hook_base{
/** @var bool */
protected $resave;
/** @var we_document_base */
protected $object;
/**
*
* @param we_hook_handler $handler
* @param array{resave:bool,obj:we_document_base} $params
*/
public function __construct(we_hook_handler $handler, array $params){
parent::__construct($handler, $params);
$this->resave = param['resave'];
$this->object = $params['obj'];
}
public function execute(): bool{
if($this->resave){//rebuild brauch nix gemacht zu werden
return true;
}
switch(get_class($this->object)){
case 'we_webEditionDocument':
if($this->object->TemplateID === 1){
$new_categories = $this->object->getElementS('doccats'); //Die Kategorien aus dem Select sind in der Var doccats
$this->object->temp_category = $new_categories;
$this->object->Category = $new_categories;
}
}
return true;
}
}
webEdition-Kern-Entwickler
Re: Hook zum Aufrufen einer Datei
Danke für die schnelle Hilfe.
Ich werde es ausprobieren.
Wenn es klappt, dann darf ich hoffentlich eine kleine Spende an die webEdition Leute machen, oder?
Ansonsten darf ich mich hoffentlich nochmals melden.
Greets und Frohe Feiertage.
Matze
Ich werde es ausprobieren.
Wenn es klappt, dann darf ich hoffentlich eine kleine Spende an die webEdition Leute machen, oder?
Ansonsten darf ich mich hoffentlich nochmals melden.
Greets und Frohe Feiertage.
Matze
Wer ist online?
Mitglieder in diesem Forum: 0 Mitglieder und 0 Gäste