URL-String im Edit-Modus

Gesperrt
anfimus
Beiträge: 4
Registriert: Sa 13. Dez 2003, 20:33
Kontaktdaten:

URL-String im Edit-Modus

Beitrag von anfimus »

Hallo!

Gibt es eine Möglichkeit, dass der Query-String (Also das, was in der URL hinter dem Fragezeichen steht) wieder mit gesendet wird, wenn ich im Editor auf "Speichern" klicke?
Die Lösung, nach dem Speichern immer nochmal auf "Editor" zu klicken ist ja nicht wirklich sauber...

Oder gibt es zumindest eine Variable, in der gespeichert wird, ob grad der Edit-Modus aktiv ist oder nicht? Ich hab mal irgendwo $perm aufgeschnappt, aber das hat nicht funktioniert :-(

Gruß

anfimus
emergence
Beiträge: 10653
Registriert: Mo 28. Jul 2003, 12:49
Wohnort: Austria
Kontaktdaten:

Beitrag von emergence »

wieso müsste man nochmal auf editor klicken nach dem speichern ?
ich versteh den sinn der aktion nicht ganz.
anfimus
Beiträge: 4
Registriert: Sa 13. Dez 2003, 20:33
Kontaktdaten:

Beitrag von anfimus »

Im Moment lese ich mangels besserer Alternativen den Query-String aus und schaue nach, ob er den String "action=con_editart" enthält. Das ist für mich das Zeichen, dass die Seite im Editiermodus angezeigt wird. Außerdem verwende ich den Query-String, mangels ähnlich unkomplizierter Alternativen, um einen Flag zu setzen, ob eine bestimmte Sektion meiner Seite angezeigt wird oder nicht.
Wenn man nun auf speicher klickt ruft er die komplette Seite ohne Query-String auf und somit gehen mir diese beiden Informationen verloren.
Dass letzteres im Editiermodus nicht geht ist noch zu verschmerzen, aber ich bräuchte auf jeden Fall eine zuverlässige Methode um herauszufinden, ob sich die Seite grad im Editiermodus befindet :-(

Vielen Dank!

Gruß

anfimus
PickPay
Beiträge: 164
Registriert: Di 2. Dez 2003, 19:38
Wohnort: Zürich
Kontaktdaten:

Beitrag von PickPay »

Wenn du auf Speichern klickst wird wohl kein Querystring (GET) gesendet, sondern die Daten werden direkt per POST an den Webserver gesendet, prüfen also:

Code: Alles auswählen

 if ($HTTP_POST_VARS['action']=='con_editart') {
  echo "Ich bin im Editiermodus";
 }
So in etwa wäre der Ansatz, ich habe es allerdings nicht getestet.

Eine weitere und in der Tat bessere Möglichkeit wäre folgenden Code in ein beliebiges Modul einzubauen:

Code: Alles auswählen

 if ("CMS_HEAD[99999]"!="") {
  echo "Ich bin im Editiermodus";
 }
Im Editiermodus werden alle vorhandenen CMS_HEAD mit Daten, wie dem Button zum Editieren etc. gespeichert. Du musst einfach eine astronomisch hohe Zahl als Index verwenden, die sicher nie in einem andern Modul verwendet wird.
emergence
Beiträge: 10653
Registriert: Mo 28. Jul 2003, 12:49
Wohnort: Austria
Kontaktdaten:

Beitrag von emergence »

an sich müsste es reichen die variable $edit abzufragen ob sie gesetzt ist...
anfimus
Beiträge: 4
Registriert: Sa 13. Dez 2003, 20:33
Kontaktdaten:

Beitrag von anfimus »

Lieber PickPay,

vielen Dank, die Idee mit dem Get wird auf jeden Fall für die Flag weiter verfolgt.

Lieber emergence,

danke, für die trockene, kurze und präzise, darüber hinaus funktionierende Antwort :-) Allerdings bringt uns das mal wieder zu der in diesem Forum wiederholt gestellten und anscheinend noch nicht beantworteten Frage, welche Variablen es noch gibt, die einem wie $idcat, $lang oder eben $edit das Leben so unglaublich erleichtern, weil sie einem was über Contenido verraten :-)
Ich könnte mir denken, dass das ein paar mehr sind, aber vielleicht hilft es nicht nur mir, wenn ein paar alte Contenido Hasen an dieser Stelle einfach mal ein paar von diesen Variablen posten, die sie schonmal gebraucht haben...

Vielen vielen Dank!

Gruß

Anfimus
emergence
Beiträge: 10653
Registriert: Mo 28. Jul 2003, 12:49
Wohnort: Austria
Kontaktdaten:

Beitrag von emergence »

welche variablen es noch gibt ? also 'ne richtige liste hab da auch nicht...
aber um näher auf deine frage einzugehen... für mich die intressantesten

im backend beim editieren (variablen die nur dort zur verfügung stehen)
$edit (wird bei con_type|code verwendet um die editier buttons einzelner CMS_ elemente anzuzeigen)
$contenido (sollte im normalfall nur im backend gesetzt sein, speichert die sessid)
$a_content (array -> der den content der einzelnen container module enthält)
alle variablen die in der contenido/include/config.php enthalten sind

im backend beim konfigurieren der container module
$cnumber (enthält die nummer des containers)

client spezifische:
siehe function rereadclients

in backend und frontend:
$cfg (array -> alle variablen die in cfg_sql.inc.php definiert sind (tabellen bezeichnung aus der datenbank) -> die ist sogar immens wichtig für db abfragen
$client (aktuelle client id)
$lang (aktuelle sprach id)

frontend:
$sid_1_1 ($sessid -> die erste ziffer steht für den client, die zweite für die sprache)

$changelang $changeclient (wenn diese gesetzt wird kann man sprache und client ändern)

aber achtung es ist nicht gesagt das diese variablen in jeder version von contenido zu verfügung stehen werden, da wie gesagt diese variablen nicht weiter definiert sind...
ob sie wirklich 100% jetzt genau dort zur verfügung stehen wie ich das geschrieben habe, kann ich aber nicht sagen...
vielleicht macht ja jemand mal 'ne vollständige liste (zur not mal in der api raussuchen und zuordnen)

die api ist eigentlich sehr brauchbar um herauszufinden wo funktionen definiert sind...

ach ja ebenso sehr intressant die docs zu backend und frontend
PickPay
Beiträge: 164
Registriert: Di 2. Dez 2003, 19:38
Wohnort: Zürich
Kontaktdaten:

Beitrag von PickPay »

Führe mal folgenden Code inerhalb eines Moduls aus:

Code: Alles auswählen

<?PHP

 echo "<pre>";
 var_dump($GLOBALS);
 echo "</pre>";


?>
Du erhälst eine sehr Umfangreiche Ausgabe mit allen gesetzten Variablen inkl. Inhalt von Array und derren Unterarrays und...also will sagen, alle Variablen werden rekursiv abgesucht.

Wie gesagt, ist sehr umfangreich und benötigt einige Zeit, bis man alles durchgesehen hat, hilft aber um noch weitere Variablen zu finden.
Gesperrt