Welcome, Guest. Please login or register.
Did you miss your activation email?
May 26, 2012, 08:48:18 PM

Login with username, password and session length
Search:     Advanced search
Interested in joining the WebsiteBaker team?
For more Information read here or on our new website.
155553 Posts in 21715 Topics by 7737 Members
Latest Member: gx-world
* Home Help Search Login Register
Pages: [1]   Go Down
Print
Author Topic: Eigene Variablen und Konstanten in WSB  (Read 241 times)
Yetiie

Offline Offline

Posts: 254


« on: October 06, 2011, 01:14:06 PM »

Na, dann frag ich mal:

Dieses Poting geht auf diesen Thread zurück:
http://www.websitebaker2.org/forum/index.php/topic,21837.msg151910.html
Und da es dort OT wäre starte ich hier die neue Anfrage.

Was mich interessieren würde ist, welche Möglichkeiten es gibt, in WSB allgemeingültige Variablen zu definieren, auf die man von allen Prozessen aus Zugriff hat (also auslesen und Verändern kann).

Quote
Stefek, Zitat frei bzw. inhaltlich formuliert:
Es kann sein, dass man im Moment (oder auch später immer wieder) an komplizierteren Lösungsansätzen arbeitet, weil man nicht weißt, welche Ansätze es dazu sonst noch gibt.

Dieser Thread soll daher dem Austausch an Techniken zur Definition eigener übergreifender Variablen und ihrer Anwendung in WSB:

Wo und wie ist das möglich:
Config.php?
Info.php (im Template)?

In welchem Zusammenhang setzt Ihr so etwas ein?
Was steuer Ihr damit?

Freue mich auf einen allgemeinen Austausch.
Und Stefek hatte ja mit dem "Zaunpfahl" gewunken und seine Bereitschaft erklärt, auch ein wenig aus seiner "Trickkiste" zu berichten.


--------
PS: Mich selbst würde außerdem eine Technik interessieren, wie ich mit Droplets Variablen auf einer Seite setzen kann, quasi als Schalter (z.B. Menu hier nicht anzeigen oder Link in der Hilfsnavi hier nicht ausgeben ...). Bisher speicher ich solche Schalterinformation en in COOKIE[] ab und setzt den Schalter (also den Veränderten Wert) auf der jeweiligen Seite mit ph in Code2. (Bitte nicht Lachen: Aber als NICHT-Dev ist mir bisher keine andere Lösung eingefallen und ... es mag nicht elegant sein, aber es funktioniert.)
Logged
Stefek
WebsiteBaker Org e.V.

Offline Offline

Posts: 4884



« Reply #1 on: October 06, 2011, 01:27:30 PM »

Hallo,

warum?

Gib ein konkretes Beispiel an, wo Du das brauchst.

Programmierung ist zur Lösung von Problemen.
Das Lösen des Problems ist das Ziel.
Definiere das Ziel, das Du tatsächlich erreichen willst.

Darauf hat sich auch mein (dürftig interpretiertes) Zitat bezogen.

Gruß,
Stefek
« Last Edit: October 06, 2011, 02:05:32 PM by Stefek » Logged

"In a time of universal deceit, telling the truth becomes a revolutionary act."
- George Orwell, Nineteen eighty-four (1984)
jacobi22
Betatester
*
Offline Offline

Posts: 1376


WWW
« Reply #2 on: October 06, 2011, 01:50:19 PM »

eigentlich ist die config.php genau dazu da, ich persönlich halte es aber so, das WB WB ist und mein Kram auch mein Kram bleibt, heißt: was ich einzubinden habe, läuft über das Template oder über die Module selbst. Den Fall, das ich etwas global über mehrere Templates benötige und es dann nicht über ein Modul einbinden konnte, hatte ich noch nicht.
Ansonsten ist das wohl Ansichtssache, der eine macht es so, der andere eben anders. Wichtig ist, das der Spaß funktioniert und den Rest nicht vermurkst. Rest hat Stefek schon geschrieben: ein Ziel setzen und schauen, wie man das am besten erreichen kann. Wege dahin gibt es immer viele
Logged

LG Uwe

Wer sagt, Reichtum ist alles, hat nie ein Kind lächeln gesehen.
NorHei
Forum administrator
*****
Offline Offline

Posts: 485



WWW
« Reply #3 on: October 06, 2011, 05:35:01 PM »

Vermutlich wird Werner mich gleich schlagen.

Also erst mal die Antwort auch die Frage wo kann ich überall Globale Werte speichern.

1. In Konstanten , Konstanten sind immer Global verfügbar.
define("MEINE_KONSTANTE","meinwert");
http://php.net/manual/de/language.constants.php

2. In Superglobalen $GLOBALS Array: $GLOBALS['deinevariable']=deinwert
http://de2.php.net/manual/de/reserved.variables.globals.php

3. in der aktuellen Session mit $_SESSION['deinevariable']=deinwert, die bleibt dann sogar Seitenübergreifend vorhanden.

4. einfach im Droplet eine globale Variable definieren.
global $deinevar;

Am besten mal hier Lesen:
http://www.php.net/manual/de/language.variables.scope.php

Diese Varianten haben alle den Nachteil das Sie dan ohne hinn schon vollen Namensraum bei WB noch mehr vollpacken. Weswegen Werner mich auch schlagen wird wink
Wenn Du so etwas machst gib deinen Variablen bitte wirklich einmalige Namen, damit diese nicht mit den vielen vielen schon vorhandenen kollidieren. z.B. für ein Hilfemodul könnte man nehmen $mod_hlp_uebergabewert.

5.Ich vermute aber die weitaus bessere Methode währe alles rchtig in ein Snipit zu Programmieren, und im Droplet und im Code Modul sind dann nur noch die Funktionsaufrufe. Die können dann auch Statische Variablen enthalten, die zwischen den Aufrufen Ihre Werte nicht vergessen.
http://www.php.net/manual/de/language.variables.scope.php (...ich weiß, also 2x lesen wink )

Das ist dann sozusagen die Vorstufe zu Objekten, womit wir zur letzten Möglichkeit kommen.  
6. Einfach wink  eine Klasse bauen und In ein Snipit packen.

------------------------
Nachtrag :

Bezüglich der Variablenname wurde ich grade darauf hingewiesen das unterstriche nicht gewünscht sind . besser die Sogenannte "camelCaps" Schreibweise.
Also der erste Buchstabe klein und jedes neue Wort mit einem Großbuchstaben beginnen .
« Last Edit: October 06, 2011, 07:05:31 PM by NorHei » Logged

It is easier to change the specification to fit the program than vice versa.
mr-fan

Offline Offline

Posts: 1556


WWW
« Reply #4 on: October 07, 2011, 07:52:08 AM »

Quote
quasi als Schalter (z.B. Menu hier nicht anzeigen oder Link in der Hilfsnavi hier nicht ausgeben ...)

 huh

Welche Konstante würde dir hier fehlen?

jede Seite hat eine PAGE_ID.....

a) bei festen Seiten die kein Menü brauchen nehme man eine if Abfrage

        wenn PAGE_ID == 123 dann echo ""; oder showmenu2() ....

b) wenn Menü nur bei einigen wenigen Seiten angezeigt werden soll einfach

         -> Das menu direkt in das Droplet einbauen siehe z.B.
              http://www.websitebakers.com/pages/droplets/official-library/navigation/childpages.php
         
das hier solltest du uns noch genauer erklären " Link in der Hilfsnavi hier nicht ausgeben"

1.) Wo ist hier?
2.) Hilfsnavi == normales Menü oder?
3.) du meinst eine Unterseite/Menülink soll auf einer/mehreren bestimmten Seiten _nicht_ ausgegeben werden - was  für einen Sinn macht das Links in einem Hilfsnavi nicht anzuzeigen und dann wieder schon?

Gruß mr-fan
Logged

 
Pages: [1]   Go Up
Print
Jump to:  

Powered by MySQL Powered by PHP Powered by SMF 1.1.16 | SMF © 2011, Simple Machines Valid XHTML 1.0! Valid CSS!