Demo

Probiere ClanSphere aus und teste daran herum. Demo


Antworten: 12
Seite [1]
flanker_fan


Beginner




Beiträge: 5
# Thema - 29.05.2012 um 11:20 Uhr
Hallo erstmal *mein erstes posting* !

Ich versuche mich gerade am Template welches Modul-Überschriftsgrafiken enthält.

Wenn das entsprechende Modul jeoch nicht aktiv ist und/oder keinen Content liefert, möchte ich alle dazugehörigen Designelemente ausblenden. Es müsste somit möglich sein, um das relevante Div noch eine Abfrage zu legen, welche erst abfragt, ob das Modul einen Inhalt liefert.

Bisher habe ich leider noch keinen Hinweis gefunden.

Vielleicht gehört das Thema auch besser in den Template-Thread...

*danke*

Gruss, Jürgen
Inaktiv
Deaktiviert

Supporter
Supporter



Beiträge: 1287
# Antwort: 1 - 29.05.2012 um 13:18 Uhr
Hallo Jürgen,

Hast du schonmal überlegt, dass in das entsprechende Template einzubinden? Also die Abfrage.

So mache ich das meist, wenn ich ein Design anpasse.


Inaktiv
|
Fr33z3m4n ClanSphere Team


Medal of Honor




Herkunft: Hamm
Beiträge: 11094
# Antwort: 2 - 29.05.2012 um 13:21 Uhr
Es kommt immer darauf an, was du in dem Fall unter Inhalt verstehst.
Wenn man keinen Zugriff auf das Modul hat, kommt eine dementsprechend Fehlermeldung vom System.

Sollten keine Daten im Modul vorhanden sein, so wird aber zumindestens die Grundstruktur der Tabelle angezeigt.
So gesehen, gibt es kein Modul, was wirklich keine Ausgabe erzeugt

Könntest du daher dein Vorhaben etwas mehr erklären ?


------------------
mfg
Patrick "Fr33z3m4n" Jaskulski

Antoine de Saint-Exupéry: Wenn Du ein Schiff bauen willst, so trommle nicht Männer zusammen, um Holz zu beschaffen, Aufgaben zu verteilen, sondern lehre die Männer die Sehnsucht nach dem endlosen weiten Meer.

Inaktiv
|
flanker_fan
Thread-Ersteller


Beginner




Beiträge: 5
# Antwort: 3 - 29.05.2012 um 15:47 Uhr
Nicht das ich das jetzt durcheinander haue.... Mit Template meine ich die index.html.

Beispiel:

Geburtstage der User.....
Wenn am aktuellen Tag kein User geb. hat, soll der ganze Block, samt der Überschriften-Grafik nicht erscheinen.

Derzeit erscheint die Grafik mit der Ausschrift, dass nichts anliegt (sinngemäß).
Es soll dann aber alles ausgeblendet werden.

Es handelt sich um ein DIV welches die Grafik und den Modul-Platzhalter beinhaltet.
Das DIV müsste sozusagen noch durch eine Abfrage, oder was auch immer die Software hergibt, eingeschlossen werden.

Sieht die Software diese Möglichkeit vor?

Die Rechte an sich lassen sich anders abfragen, soweit ich bereits in einem anderem Thread gelesen habe. Dabei ging es um die Shoutbox, glaube ich.

Ist das als Erklärung ausreichend?


 
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
1. / 2. / ... 
 
{if users:navbirth nicht leer:}
<
div>
<
img src="pfad/zum/png" title="" alt="">
{
users:navbirth}
</
div>
{endif;}

... 
oder Abfrage eines Rückgabecodes.... so etwas in der Art?!


Zuletzt editiert von flanker_fan am 29.05.2012 um 15:53 Uhr (2x Editiert)
Inaktiv
|
sgraewe ClanSphere Team

Supporter
Supporter




Beiträge: 6116
# Antwort: 4 - 29.05.2012 um 16:19 Uhr
Warum packst du nicht einfach den kompletten Container in zum Modul gehörige navlist?

Dann musste nur noch aus der navlist.php den eintrag löschen, das er anzeigt das keine neuen einträge vorhanden sind.
Dann ist die komplette box weg wenn nichts neues da ist.


Inaktiv
|
flanker_fan
Thread-Ersteller


Beginner




Beiträge: 5
# Antwort: 5 - 29.05.2012 um 17:02 Uhr
sorry, "stehe irgendwie auf dem Schlauch" ....

navlist.php kann ich nicht finden.

Vermutlich fehlt mir noch das grundlegende Verständnis zur App.



Edit:

OK, in einigen Modulen hab ich die Datei gefunden. Möchte nicht besserwisserisch wirken, aber sollte es nicht Ziel sein, den core so zu belassen. Schon wegen der Updatefähigkeit?! Ausserdem gibt es doch genau dafür templates. Ziel ist es doch ebenso code + layout zu trennen.

Achso, was mache ich, wenn es die Datei navlist.php nicht gibt? Sucht er dynamisch danach? Kann die angelegt werden? Wird dann eine Alternative verwendet?

Edit:

Hab jetzt das Prinzip der Platzhalter verstanden.... Ich suche im Beispiel oben eine navbirth.php im Modul 'users'.
Bez. genereller Updates könnte ich die Datei unter einen anderen Namen kopieren und den Platzhalter dahingehend modifizieren. Trotzdem bleibt die Vermengung von Code und Layout.... Es sei denn, ich bekomme noch heraus, wie man eigene Subtemplates erstellt und diese einbindet ohne die Grundprinzipien der Software zu verletzten

.... Ich arbeite mich noch ein ....


Zuletzt editiert von flanker_fan am 29.05.2012 um 18:22 Uhr (4x Editiert)
Inaktiv
|
Fr33z3m4n ClanSphere Team


Medal of Honor




Herkunft: Hamm
Beiträge: 11094
# Antwort: 6 - 29.05.2012 um 20:16 Uhr
Hab jetzt das Prinzip der Platzhalter verstanden.... Ich suche im Beispiel oben eine navbirth.php im Modul 'users'.
Bez. genereller Updates könnte ich die Datei unter einen anderen Namen kopieren und den Platzhalter dahingehend modifizieren. Trotzdem bleibt die Vermengung von Code und Layout.... Es sei denn, ich bekomme noch heraus, wie man eigene Subtemplates erstellt und diese einbindet ohne die Grundprinzipien der Software zu verletzten

.... Ich arbeite mich noch ein ....

Zu der Zeit, als die Template-engine erstellt wurde, war das die bessere lösung. Heute sind wir dagegen schlauer und wissen, dass sowas anders geregelt werden sollte.

Wobei sowas wie du gerne haben möchtest, ist eine außergewöhnliche Methode Weil einen wechselten Content die Besucher doch eher verwirrt, als alles andere.
Für solche Vorgehensweise müsstest du eine erweiterte Template-Engine haben.
Wenn nun aber auch ein Update im Subtemplate von uns kommen würde, wäre deine Änderung nun auch weg. Also wie man dreht und wendet, bei einem Update kann immer etwas überschrieben werden, was man geändert hat.

Zu einer Lösung:
1. Du könntest in der PHP Datei abfragen, ob deine SQL Abfrage mindestens einen Datensatz enthält, wenn ja, lässt du cs_subtemplate ausgeben. ansonsten garnichts.

2. Du fragst auch ab, ob die SQL Datensätze abwirst, aber übergibst einen boolean wert ans Template, und arbeitest dort mit {if:xxx} {stop:xxxx} etc.


------------------
mfg
Patrick "Fr33z3m4n" Jaskulski

Antoine de Saint-Exupéry: Wenn Du ein Schiff bauen willst, so trommle nicht Männer zusammen, um Holz zu beschaffen, Aufgaben zu verteilen, sondern lehre die Männer die Sehnsucht nach dem endlosen weiten Meer.

Inaktiv
|
flanker_fan
Thread-Ersteller


Beginner




Beiträge: 5
# Antwort: 7 - 30.05.2012 um 10:30 Uhr
Erstmal vielen Dank, Patrick.
Zu Punkt 2 von Dir.... Das mit dem if bzw. stop, ist das irgendwo dokumentiert?

Die weiteren Ausführungen habe ich erstmal so zur Kenntnis genommen.

Es gäbe noch die Möglichkeit, das Modul zu kopieren, die Änderungen durchzuführen und als separates Modul zu sichern. Somit könnte man es mit einer Beschreibung der Modifikationen dieses auch anderen Usern zur Verfügung stellen.

Sicherlich OFFTOPIC ..... es besteht doch die Möglichkeit, über das Backend neue Module zu erstellen.... zumindest die Grundstruktur. Schon einmal darüber nachgedacht, in der Modulverwaltung eine Möglichkeit des Sicherns von Modulen einzubauen? Es werden dann alle relevanten files als ZIP gepackt und z.B. als Download angeboten. Einschl. evtl. SQL Dumps (Tabellenstruktur)


Inaktiv
|
Deaktiviert

Supporter
Supporter



Beiträge: 1287
# Antwort: 8 - 30.05.2012 um 10:36 Uhr
Das ist ansich natürlich möglich, hat aber noch keiner ansich gemacht. Da Clansphere, abgesehen von Bugfixes und Secruity Lücken, nicht mehr weiterentwickelt wird.

Allerdings was hindert dich vor der 2ten Version, die Patrick hatte und ich dir ebenso vorgeschlagen hatte? Sie ist die vermutlich optimaliste und mit am wenigsten Aufwand verbundene.


Inaktiv
|
flanker_fan
Thread-Ersteller


Beginner




Beiträge: 5
# Antwort: 9 - 30.05.2012 um 10:51 Uhr
Achso, die App wird nicht weiterentwickelt?! OK, das ändert die Sache etwas....
Wird es ne Alternative geben? Habt Ihr was Anderes vor?

Zu Punkt 2:

Ich hatte Deinen Hinweis gelesen. So etwas in der Art hatte ich auch erwartet .... das im Template abzufragen. Das war meine Intension beim Erstellen des Threads.... Die Frage ist nur ob/wie und wo das dokumentiert ist....


Inaktiv
|
sgraewe ClanSphere Team

Supporter
Supporter




Beiträge: 6116
# Antwort: 10 - 30.05.2012 um 11:00 Uhr
Zur Alternative kannste die letztens news lesen


Inaktiv
|
Fr33z3m4n ClanSphere Team


Medal of Honor




Herkunft: Hamm
Beiträge: 11094
# Antwort: 11 - 30.05.2012 um 16:28 Uhr
Nein, so richtig dokumentiert ist es leider nicht.
wiki ist damalig leider eingeschlafen.

Aber, in der jweiligen php Datei des Modules, was du in deinem Template nutzen willst, musst du folgendenes abfragen

 
1.
2.
3.
4.
1. / 2. / ... 
 $data['if']['result'] = false;
if(!empty(
$sql_return)) {
$data['if']['result'] = true;
}

im besagtem Template der PHP Datei machst du dann
{if:result}
xxxx htmlcode xxxx
{stop:result}


Bsp.:an der navlist.php vom Wars Modul
http://svn.csphere.eu/trunk/mods/wars/navlist.php

 
1.
2.
3.
1. / 2. / ... 
 $cs_wars cs_sql_select(__FILE__,$from,$select,$where,$order,0,$cs_option['max_navlist']);

if (!empty(
$cs_wars)) {

ersetzen durch
 
1.
2.
3.
4.
5.
1. / 2. / ... 
 $cs_wars cs_sql_select(__FILE__,$from,$select,$where,$order,0,$cs_option['max_navlist']);
$data['if']['result'] = false;
if (!empty(
$cs_wars)) {
$data['if']['result'] = true;
der oben besagte Code wurde hier eingefügt.

in der navlist.tpl vom Wars Modul, machst du nun am Anfang und Ende die besagten Platzhalter hin.

ClanSphere/cSphere:
Der Nachfolger von ClanSphere ist derzeit "cSphere". Release-Termin steht noch nicht fest.
Weitere Informationen: http://www.csphere.eu/index/news/list (Kategorie: Entwicklung). Alle Headlines mit cSphere.


------------------
mfg
Patrick "Fr33z3m4n" Jaskulski

Antoine de Saint-Exupéry: Wenn Du ein Schiff bauen willst, so trommle nicht Männer zusammen, um Holz zu beschaffen, Aufgaben zu verteilen, sondern lehre die Männer die Sehnsucht nach dem endlosen weiten Meer.

Inaktiv
|
flanker_fan
Thread-Ersteller


Beginner




Beiträge: 5
# Antwort: 12 - 30.05.2012 um 17:24 Uhr
Herzlichen Dank erstmal!


Inaktiv
|
Antworten: 12
Seite [1]


Sie müssen sich registrieren, um zu antworten.