master.less speichern

Hooks ermöglichen Ihnen die Ausführung beliebigen PHP-Codes während des Speicherns, Parkens, Veröffentlichens und Löschens jeglicher Inhaltstypen in webEdition.
dipser
Member
Beiträge: 35
Registriert: Mi 4. Sep 2013, 22:04
Wohnort: Soltau
Kontaktdaten:

master.less speichern

Beitragvon dipser » Mo 9. Jun 2014, 01:16

Hi,

hat jemand eine Idee, warum hierbei das Dokument ausgetauscht im Editor wird? Und speichern tut es auch nur sporadisch.

weCustomHook_save:

Code: Alles auswählen

...
if ($param[0]->Extension=='.less' && $param[0]->parseFile==0) {
	$mainID = 11;
	$docMain = new we_webEditionDocument();
	$docMain->initByID($mainID);
	$docMain->we_save();
	$docMain->we_publish(); // << Ist das überhaupt nötig?
}
...
Grüße, dipser

Benutzeravatar
blickfang
webEdition Partner
webEdition Partner
Beiträge: 812
Registriert: Mo 15. Dez 2003, 16:00
Kontaktdaten:

Re: master.less speichern

Beitragvon blickfang » Fr 13. Jun 2014, 16:30

es gibt beim publish evtl. das Problem, dass Du eine endlosschleife baust, da der pubslish hook ja immer bei pubslish aufgerufen wird. Ich glaube man kann dem we_publish() noch was mitgeben, dass dies eben nicht passiert, hab das aber leider gerade nicht griffbereit...
webEdition Partner - https://www.blickfang-media.com
Ehemals im Vorstand des webEdition e.V.

dipser
Member
Beiträge: 35
Registriert: Mi 4. Sep 2013, 22:04
Wohnort: Soltau
Kontaktdaten:

Re: master.less speichern

Beitragvon dipser » So 15. Jun 2014, 15:36

Nein es entsteht keine Endlosschleife, sonst würde das PHP-Programm ja eine Weile lang laufen.

AndreasWitt

Re: master.less speichern

Beitragvon AndreasWitt » Do 29. Jan 2015, 18:00

... das mit der Endlosschleife solltest du noch einmal prüfen:

Code: Alles auswählen

/*
* we_save() kann die beiden Parameter $resave und $skipHook verarbeiten
* durch das $skipHook=true wird eine Endlosschleife verhindert
*/
$savedObj->we_save(false, true);
Außerdem kannst du den Aufruf we_save() sparen, wenn du we_publsih() ausführst.

Grüße, Andreas

ThomasGoebe

Re: master.less speichern

Beitragvon ThomasGoebe » Do 29. Jan 2015, 19:16

AndreasWitt hat geschrieben: Außerdem kannst du den Aufruf we_save() sparen, wenn du we_publsih() ausführst.
sicher? Je nach Bereich (Objekt / Dokument / LESS) setzt we_publish nur das Veröffentlichungsdatum. Zumindest bei Objekten ist das m.E. so.

mokraemer
Senior Member
Beiträge: 3619
Registriert: So 8. Aug 2010, 01:23
Wohnort: Mainz

Re: master.less speichern

Beitragvon mokraemer » Fr 30. Jan 2015, 12:30

vermutlich, weil du die DB connection mit der auch WE arbeitet und dort das Dokument erwartet manipulierst.
Du kannst dir das aber durchaus sparen, da WE ja einen eingebauten less Parser besitzt.
webEdition-Kern-Entwickler

ThomasGoebe

Re: master.less speichern

Beitragvon ThomasGoebe » Fr 30. Jan 2015, 12:54

Hallo Marc,

nein, den Hook kann man sich nicht sparen. Ich setze das so auch ein. Da es keine echte include Möglichkeit bei den less Dateien gibt, bei der die Hauptdatei gespeichert wird, wenn eine per @import '#WE:ID#'; eingebundene Datei gespeichert wird, muss man das per Hook lösen.

Andernfalls musst Du bei jeder Änderung in einer importierten less Datei die Hauptdatei(en) ebenfalls speichern, was extrem nervig ist und damit den Vorteil der Aufteilung in verschiedene Dateien widerlegt.

ThomasGoebe

Re: master.less speichern

Beitragvon ThomasGoebe » Fr 30. Jan 2015, 13:02

Hallo dipser,

ich nutze übrigens we_textDocument statt we_webEditionDocument.
Hier einmal mein save Hook für less Dateien, vielleicht hilft Dir das weiter:

Code: Alles auswählen

function weCustomHook_save($param) {
		
		$hookHandler=$param['hookHandler'];
		$resave=$param['resave'];
		$obj=$param[0];

		switch(get_class($obj)) {
			// beim Speichern von Less Dateien im Ordner /system/css/include auch die masterdateien styles.less / lightbox.less etc. speichern
			case 'we_textDocument':
                       // ich pruefe zusaetzlich noch das Verzeichnis der Dateien ab
			if (($obj->ParentID == 161) && ($obj->Extension == '.less') && ($obj->parseFile == false)) {
				$aMasterIDs = array(4,135);
				foreach($aMasterIDs as $iID) {
					$masterfile = new we_textDocument();
					$masterfile->initByID($iID);
					$masterfile->we_save(false, true);
				}
			}
		break;
		}

	}

mokraemer
Senior Member
Beiträge: 3619
Registriert: So 8. Aug 2010, 01:23
Wohnort: Mainz

Re: master.less speichern

Beitragvon mokraemer » Fr 30. Jan 2015, 18:37

wenn man so oft Änderungen macht, muß man (aktuell) noch die Hauptdatei ebenfalls speichern. Das erledigt sich mit 6.5.
webEdition-Kern-Entwickler

ThomasGoebe

Re: master.less speichern

Beitragvon ThomasGoebe » Fr 30. Jan 2015, 18:46

mokraemer hat geschrieben:wenn man so oft Änderungen macht, muß man (aktuell) noch die Hauptdatei ebenfalls speichern.
Und genau dafür gibt es den Hook.
mokraemer hat geschrieben:Das erledigt sich mit 6.5.
Inwiefern (Bugbase ID dazu reicht mir) ?

mokraemer
Senior Member
Beiträge: 3619
Registriert: So 8. Aug 2010, 01:23
Wohnort: Mainz

Re: master.less speichern

Beitragvon mokraemer » Fr 30. Jan 2015, 19:56

#8240
webEdition-Kern-Entwickler

dipser
Member
Beiträge: 35
Registriert: Mi 4. Sep 2013, 22:04
Wohnort: Soltau
Kontaktdaten:

Re: master.less speichern

Beitragvon dipser » Fr 13. Feb 2015, 00:38

Bombe! Danke ThomasGoebe. Das muss ich morgen gleich einmal testen.

Ich hatte das Thema aus den Augen verloren und jetzt immer alles in die master.less geschrieben und erst später ausgelagert.


Zurück zu „Hooks“

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 4 Gäste