Re: Hook zum Aufrufen einer Datei
Verfasst: Mi 28. Dez 2022, 00:48
Ich denke der Ansatz ist af jeden Fall einen FR wert, die Kategorien sind sehr mächtig, aber z.T. von der Usability nicht mehr zeitgemäß.
Das Forum für die webEdition-Community
https://forum.webedition.org/
Code: Alles auswählen
Warning
Error message: Illegal string offset 'resave'
Script name: webEdition/custom/hook/we_hook_preSave.class.php
Line number: 29
Backtrace:
#0 we_base_errorHandler::errorHandler called at [webEdition/custom/hook/we_hook_preSave.class.php:29]
#1 we_hook_preSave->__construct called at [webEdition/we/classes/hook/we_hook_handler.class.php:60]
#2 we_hook_handler->__construct called at [webEdition/we/classes/document/we_document_textContent.class.php:173]
#3 we_document_textContent->we_save called at [webEdition/we/classes/document/we_document_webEdition.class.php:578]
#4 we_document_webEdition->we_save called at [webEdition/we/classes/editor/we_editor_functions.class.php:601]
#5 we_editor_functions::saveDocument called at [webEdition/we_cmd.php:177]
#6 findInclude called at [webEdition/we_cmd.php:418]
Request:
[we_cmd] => Array
(
[0] => save_document
[1] => 45c18fc937482de8f097689585341bd3
[2] => 0
[3] => 1
[4] => 0
[5] => W1sicHVibGlzaFdoZW5TYXZlIl1d
[6] =>
)
[we_transaction] => 45c18fc937482de8f097689585341bd3
[we_fac3dae91ef03ebfbc36583fdd852950_select] => Array
(
[doccats#multiple] => Array
(
[0] => 3
[1] => 2
[2] => 4
)
)
[we_fac3dae91ef03ebfbc36583fdd852950_txt] => Array
(
[myue] =>
[leer] =>
)
[we_complete_request] => 1
Code: Alles auswählen
Error type:
Warning
Error message:
Use of undefined constant param - assumed 'param' (this will throw an Error in a future version of PHP)
Script name:
webEdition/custom/hook/we_hook_preSave.class.php
Line number:
29
Code: Alles auswählen
Illegal string offset 'resave'
Code: Alles auswählen
Undefined constant param assumed 'param'
Code: Alles auswählen
- $this->resave = param['resave'];
+ $this->resave = $params['resave'];
Code: Alles auswählen
<?php
declare(strict_types=1);
class we_hook_preSave extends we_hook_base{
protected $resave;
protected $object;
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':
$new_categories = $this->object->getElements('doccats'); // Die ausgewählten Kategorien liegen in doccats
$this->object->temp_category = $new_categories;
$this->object->Category = $new_categories;
$static = "123456";
$this->object->newstatic = $static;
$newleer = $this->object->getElements('myue');
$this->object->leer = $newleer;
}
return true;
}
}
Code: Alles auswählen
Kategorien gewählt/alle anzeigen:<br>
<we:listview type="category" order="Title" desc="false" >
<we:ifFound>
<we:select name="doccats" multiple="true" class="my-select-big" style="height: 500px!important;">
<we:repeat>
<option value='<we:field name="we_id"/>'><we:field name="we_title"/></option>
</we:repeat>
</we:select>
</we:ifFound>
</we:listview>
<hr>
Variable doccats ausgeben = <we:var type="document" name="doccats" />
<hr>
KatIDs des Dokuments: <we:category field="ID" multiple="true" /> <br>
KatTitle des Dokuments: <we:category field="Title" multiple="true" /><br>
<hr>
myue = <we:input type="text" name="myue" /> <br>
leer = <we:input type="text" name="leer" /> <br>
new-static = <we:input type="text" name="newstatic" />
Eben deshalb frage ich hier ja um Hilfe und ich dachte dafür ist dieses Forum da.Wenn man Hooks einsetzt, sollte man sich ansich auch etwas mit PHP/WE intern auskennen. Das ist eben eine interne Schnittstelle.
Im Grunde ja, nur sollten Hooks von ehesten von Leuten verwendet werden, die php verstehen und sich auch etwas mit den internas von WE auskennen.Eben deshalb frage ich hier ja um Hilfe und ich dachte dafür ist dieses Forum da.