$edit nicht gesetzt

Gesperrt
kummer
Beiträge: 2423
Registriert: Do 6. Mai 2004, 09:17
Wohnort: Bern, Schweiz
Kontaktdaten:

$edit nicht gesetzt

Beitrag von kummer »

hallo zusammen

ich bin verschiedentlich darauf aufmerksam gemacht worden, dass in einigen installationen im editierbereich in den modulen $edit nicht gesetzt sei. das führt dann bei einigen modulen natürlich zu problemen.

nun zu meiner frage: handelt es sich dabei eventuell um einen bug? ist die variable $edit in der 4.4.5 generell nicht mehr verfügbar oder handelt es sich um ein installationsproblem?

bei dieser gelegenheit (wenn das erlaubt ist) eine anmerkung für die entwicklung in zukunft. aus meiner sicht wäre es besser, wenn 'variablen' deren wert sich während der ausführung des scriptes nicht ändern sollten, nicht als variablen sondern als konstanten definiert würden. dann bestünde nicht die gefahr, dass sie durch ein modul überschrieben werden.

mfg,
andreas
aitsu.org :: schnell - flexibel - komfortabel :: Version 2.2.0 (since June 22, 2011) (jetzt mit dual license GPL/kommerziell)
emergence
Beiträge: 10653
Registriert: Mo 28. Jul 2003, 12:49
Wohnort: Austria
Kontaktdaten:

Beitrag von emergence »

ich hab das ganze mal als bug gemeldet, der im cvs_head auch schon behoben ist...

in die 4.4.x serie ist dieser aber nie hineingekommen....

das läßt sich an sich ganz einfach beheben...
includes/include.con_editcontent.php

findet sich am ende der datei in einer foreach schleife

Code: Alles auswählen

$edit = "true";
diese zeile muss nur am beginn dieser datei gestellt werden...

ansonsten ist es so das $edit erst dann true ist wenn ein content-typ
gefunden wurde... was natürlich schlecht ist wenn man keinen verwendet...
*** make your own tools (wishlist :: thx)
kummer
Beiträge: 2423
Registriert: Do 6. Mai 2004, 09:17
Wohnort: Bern, Schweiz
Kontaktdaten:

Beitrag von kummer »

siehst du denn eine möglichkeit fest zu stellen, dass man sich im editiermodus im backend befindet?

zurzeit verwende ich folgende, etwas umständliche prüfung:

Code: Alles auswählen

if (($contenido && empty($this->get['contenido']) && $changeview =='edit') || ($contenido && !empty($this->get['contenido']) && $this->get['contenido'] == $contenido  && $changeview == 'edit')) {
aitsu.org :: schnell - flexibel - komfortabel :: Version 2.2.0 (since June 22, 2011) (jetzt mit dual license GPL/kommerziell)
emergence
Beiträge: 10653
Registriert: Mo 28. Jul 2003, 12:49
Wohnort: Austria
Kontaktdaten:

Beitrag von emergence »

mit obriger änderung ist an sich nur eine überprüfung der variable $edit notwendig...

da hat man nun zeitweise aber das problem das &edit=1 ja bei der urlzeile ergänzt werden könnte... dann würde man die buttons für das bearbeiten sehen, was nicht so schön ist...
das läßt sich aber ziemlich elegant abfangen sodas wirklich nur

Code: Alles auswählen

if ($edit) {

}
funktioniert ohne beieinflussung eines get oder post wertes...

man braucht nur in der front_content.php

nach

Code: Alles auswählen

	/* Mark submenuitem 'Preview' */
	if ($contenido) {
		$markscript = markSubMenuItem(4, true);
	}
diese zeile ergänzen...

Code: Alles auswählen

	unset($edit); // disable editmode
okay etwas abgeschweift... ich tippe mal darauf das du diese änderung bei kunden zeitweise nicht vornehmen kannst und dennoch wissen willst ob du dich im edit modus befindest...

ja da gibts ne möglichkeit...

Code: Alles auswählen

     if (!isset($a_content)) {
     }
diese variable besser gesagt der array steht nur im edit modus zur verfügung...

wie auch immer es gibt keinerlei möglichkeit festzustellen ob du dich im vorschaumodus (vom backend aus)befindest... zumindestens wüsste ich keine möglichkeit...

ich verwende ne ähnliche konstruktion für einer meiner kommerziellen module... und da ist mir an sich noch nichts aufgefallen was bei 4.4.x - CVS_HEAD nicht laufen würde...
*** make your own tools (wishlist :: thx)
timo
Beiträge: 6284
Registriert: Do 15. Mai 2003, 18:32
Wohnort: Da findet ihr mich nie!
Kontaktdaten:

Beitrag von timo »

muß ich da noch etwas in die 4.5er-Serie einbauen?
emergence
Beiträge: 10653
Registriert: Mo 28. Jul 2003, 12:49
Wohnort: Austria
Kontaktdaten:

Beitrag von emergence »

ähm nur das wenn du willst

in der front_content.php

nach

Code: Alles auswählen

   /* Mark submenuitem 'Preview' */ 
   if ($contenido) { 
      $markscript = markSubMenuItem(4, true); 
   } 
diese zeile ergänzen...

Code: Alles auswählen

   unset($edit); // disable editmode


warum und weshalb -> siehe obriges posting
*** make your own tools (wishlist :: thx)
timo
Beiträge: 6284
Registriert: Do 15. Mai 2003, 18:32
Wohnort: Da findet ihr mich nie!
Kontaktdaten:

Beitrag von timo »

ok hab ich eingebaut
könnte man daher schließen, oder?
emergence
Beiträge: 10653
Registriert: Mo 28. Jul 2003, 12:49
Wohnort: Austria
Kontaktdaten:

Beitrag von emergence »

yep!
*** make your own tools (wishlist :: thx)
Gesperrt