Wahl von Templates

Liebe alle

Scheint nicht so einfach zu sein mit den verschiedenen Templates, wenn ich die Mails so sehe. Versuche meine Site für Mobile Devices fit zu machen. Brauche dazu verschiedene Templates. Normalerweise weist

spip.php?article85 auf das Template article.html und ruft Seite 85 auf;

spip.php?x_article85 auf das Template x_article.html und ruft Seite 85 auf.

Bei mir geht das nicht. Ich hab im sommaire.html und rubrique.html fond=article im INCLURE definiert. Wird das nicht umschifft? Wie kann ich das Problem der verschiedenen Templates, die aus einem Link aufgerufen werden, lösen? Vielleicht weiss jemand einen Ansatz, den ich probieren kann ... z.B. mit #ENV ?? Habe spip 2.0 und eine viersprachige Site.

Schöne Grüsse und a nice weekend

Nicholas

Es gibt seit längerem ein iPhone Template, das "out of the box" funktioniert. Musst Du testen, bei mir hat es ein bischen gehakt und ich habe mich entschieden, etwas viel einfacheres zu machen.

http://www.spip-contrib.net/Squelette-iSPIP

Wenn Du etwas eigenes baust, kannst Du auch ein gemeinsames Template fürs Mobiltelefon und den PC-Webbrowser nutzen, das spart die Browserweiche.

Leider kenne ich noch kein spezielles Android Template, das sollte sich aber auf Basis von ZPIP (!) leicht machen lassen.

grusz, klaus++

admin@lampenwerk.ch wrote:

Liebe alle

Scheint nicht so einfach zu sein mit den verschiedenen Templates, wenn ich die Mails so sehe. Versuche meine Site für Mobile Devices fit zu machen. Brauche dazu verschiedene Templates. Normalerweise weist

spip.php?article85 auf das Template article.html und ruft Seite 85 auf;

spip.php?x_article85 auf das Template x_article.html und ruft Seite 85 auf.

Bei mir geht das nicht. Ich hab im sommaire.html und rubrique.html fond=article im INCLURE definiert. Wird das nicht umschifft? Wie kann ich das Problem der verschiedenen Templates, die aus einem Link aufgerufen werden, lösen? Vielleicht weiss jemand einen Ansatz, den ich probieren kann ... z.B. mit #ENV ?? Habe spip 2.0 und eine viersprachige Site.

Schöne Grüsse und a nice weekend

Nicholas

_______________________________________________
Spip-de@rezo.net - http://listes.rezo.net/mailman/listinfo/spip-de

Lieber Klaus

Danke für die Information ... ich hab mir die Lösung angesehen, ist ne elegante Sache, aber bloss für iPhones?

Es gibt seit längerem ein iPhone Template, das "out of the box" funktioniert. Musst Du testen, bei mir hat es ein bischen gehakt und ich habe mich entschieden, etwas viel einfacheres zu machen.

Ich hab aus dem pmwiki Universum ein Skript plus Funktion, das alle Geräte (nicht nur iPhones) erkennt und ein php wahr/falsch produziert, das man verwenden kann. Das klappt tadellos und ist nicht das Problem.

Wenn Du etwas eigenes baust, kannst Du auch ein gemeinsames Template fürs Mobiltelefon und den PC-Webbrowser nutzen, das spart die Browserweiche.

Genau!! Das wollte ich ursprünglich auch, ist klar die einfachste Lösung.

Aber dann kommt die nächste Weiche: Wie kann ich in einem Template eine Weiche für verschiedene .css files machen (damit ich das Layout für Mobile anpassen kann)? Ich muss ja eine Variable übergeben oder so was. Und php ist ja gesperrt im spip.

Da ich das nicht kann, habe ich gedacht, ich rufe von PC und Mobile andere Templates auf (article.html und m_article.html). Das klappt aber nicht. Weshalb weiss ich nicht.

Deine Lösung ist eindeutig besser, aber wie übergebe ich einen Variablenwert aus dem Link-Ziel (z.B. spip.php?article255&mobile=yes), damit ich im Template den Wechsel von

<link rel="stylesheet" type="text/css" href="#CHEMIN{stuff/basics.css}" />

zu

<link rel="stylesheet" type="text/css" href="#CHEMIN{stuff/mobil.css}" />

hinkriege? Vielleicht mit #URL_PAGE oder so?

Naja, ich hoffe doch, Du bist schon im Wochenende, ich muss jetzt jedenfalls anfangen zu Kochen. Ausserdem ist mir gestern im Zug das Touchscreen-Händi geklaut worden (echt!!) ... deshalb also dingend ists nich.

Danke vielmals ... Einen schönen Feierabend wünscht

Nicholas

Hallo Nicholas,

ich mag SPIP, weil sich die meisten Dinge einfacher als mit PHP/SQL
machen lassen. Wenn Du es willst/brauchst, kannst Du aber jederzeit PHP
verwenden:

1. in den HTML-Templates selber
Einfach <?php //Dein Code echo "Hello world"; ?> einfügen
Das bezahlst Du mit dem Verlust der beschleunigten und
ressourcenschonenden Auslieferung Deiner Seiten per Cache.
Dafür wird der Code bei jeder Auslieferung der Seite ausgeführt. Ist
z.B. für Login-Seiten geeignet.

2. in mes_fonctions.php
Dieser Code wird beim Generieren der Seiten für den Cache ausgeführt,
also z.B. immer wenn Du auf "Seite aus dem Cache" löschen klickst. Das
ist meistens der richtige Ort.

3. in mes_options.php
Dieser Code wird bei jedem Aufruf von spip.php ausgeführt, also "immer".

4. in Deinen Plugins
http://programmer.spip.org/spip.php?page=recherche&lang=en&recherche=plugin

Du kannst in SPIP-Templates jede selbstgeschriebene Funktion (z.B. aus
mes_fonctions.php) und jede PHP-Funktion als Filter verwenden. Das sieht
so aus:
[(#TITRE|meinfilter)]
Deine Funktion muß den Wert von #TITRE als Parameter entgegennehmen und
das Ergebnis der Bearbeitung per "return $meinevariable;" zurückgeben.
Du kannst auch mehrere Filter bzw. Funktionen hintereinadnderschalten:
[(#TITRE|strtoupper |meinfilter1)]. Dabei werden die Filter von links
nach rechts abgearbeitet.

Aber dann kommt die nächste Weiche: Wie kann ich in einem Template eine Weiche für verschiedene .css files machen (damit ich das Layout für Mobile anpassen kann)? Ich muss ja eine Variable übergeben oder so was.

s.o. + s.u.

Und php ist ja gesperrt im spip.

Das gilt nur den Inhalt der Datenbank, also die Eingabe per
Redaktionssystem. Da sind dann auch alle anderen aktiven Inhalte
gesperrt (Du darfst mit CSS-Code Schabernack treiben :wink: ). Man kann
diese Sicherheitsprüfung abschalten. Das will man aber nicht.

Da ich das nicht kann, habe ich gedacht, ich rufe von PC und Mobile andere Templates auf (article.html und m_article.html). Das klappt aber nicht. Weshalb weiss ich nicht.

Wahrscheinlich ein Syntaxfehler. Auch bei SPIP verbringt man Zeit mit
dem Studium der Doku, wenn man die erweiterten Features nutzen will. Am
besten fragen. spip-de@rezo.net ist OK für den Einstieg, wenn Du direkt
mit den wichtigsten Entwicklern sprechen möchtest, kannst Du neben den
französischen auch die englische Liste (spip-en@rezo.net) nutzen.

Deine Lösung ist eindeutig besser, aber wie übergebe ich einen Variablenwert aus dem Link-Ziel (z.B. spip.php?article255&mobile=yes), damit ich im Template den Wechsel von

#ENV{mobile}
siehe:
http://www.spip.net/@
http://www.spip.net/@?lang=en
von dort kommst Du z.B. zu dieser genaueren Erläuterung von #ENV
http://www.spip.net/en_article4905.html

<link rel="stylesheet" type="text/css"
href="#CHEMIN{stuff/basics.css}" />

Wenn Du so etwas vorhast, kannst Du Dir das Leben leicht machen:
Du fügst den Code für das eine oder andere CSS nur unter einer Bedingung
  ein.

- Als Schleife, die Templates bestimmten Inhalten zuordnet:
z.B. <BOUCLE_nur_Artikel_einer_bestimmten_rubrik(ARTICLES){id_rubrique=5}>

- Mit sioui / sinon unter bestimmten Bedingungen d.h. wenn der Wert
einer Variablen oder Datenfeldes passt.
http://programmer.spip.org/Testing-filters

Viel Spaß,
klaus++

Lieber Klaus

vielen Dank für die Hilfe. Ich habs jetzt geschafft.

1. in den HTML-Templates selber
Einfach <?php //Dein Code echo "Hello world"; ?> einfügen
Das bezahlst Du mit dem Verlust der beschleunigten und
ressourcenschonenden Auslieferung Deiner Seiten per Cache.
Dafür wird der Code bei jeder Auslieferung der Seite ausgeführt. Ist
z.B. für Login-Seiten geeignet.

Ja, aber bei mir handelt es sich um eine kleine Weiche, also vielleicht 50 Zeichen Code, das ist nicht die Riesenrechnerei. Wenn alles perfekt läuft (muss noch das stylesheet Gebastel machen, aber das ist überschaubar) ...

2. in mes_fonctions.php
Dieser Code wird beim Generieren der Seiten für den Cache ausgeführt,
also z.B. immer wenn Du auf "Seite aus dem Cache" löschen klickst. Das
ist meistens der richtige Ort.

... schreib ichs hier rein.

3. in mes_options.php
Dieser Code wird bei jedem Aufruf von spip.php ausgeführt, also "immer".

Alternativ hier.

4. in Deinen Plugins
http://programmer.spip.org/spip.php?page=recherche&lang=en&recherche=plugin

Du kannst in SPIP-Templates jede selbstgeschriebene Funktion (z.B. aus
mes_fonctions.php) und jede PHP-Funktion als Filter verwenden. Das sieht
so aus:
[(#TITRE|meinfilter)]
Deine Funktion muß den Wert von #TITRE als Parameter entgegennehmen und
das Ergebnis der Bearbeitung per "return $meinevariable;" zurückgeben.
Du kannst auch mehrere Filter bzw. Funktionen hintereinadnderschalten:
[(#TITRE|strtoupper |meinfilter1)]. Dabei werden die Filter von links
nach rechts abgearbeitet.

Meine Weiche ist ja eine generelle und nicht in einzelnen Feldern aktiv. Aber gut zu wissen!

Aber dann kommt die nächste Weiche: Wie kann ich in einem Template eine Weiche für verschiedene .css files machen (damit ich das Layout für Mobile anpassen kann)? Ich muss ja eine Variable übergeben oder so was.

s.o. + s.u.

Und php ist ja gesperrt im spip.

Das gilt nur den Inhalt der Datenbank, also die Eingabe per
Redaktionssystem. Da sind dann auch alle anderen aktiven Inhalte
gesperrt (Du darfst mit CSS-Code Schabernack treiben :wink: ). Man kann
diese Sicherheitsprüfung abschalten. Das will man aber nicht.

Nee,nee, das wäre schlecht!

Da ich das nicht kann, habe ich gedacht, ich rufe von PC und Mobile andere Templates auf (article.html und m_article.html). Das klappt aber nicht. Weshalb weiss ich nicht.

Wahrscheinlich ein Syntaxfehler.

Habe alles überprüft und tatsächlich verlorene } usw. gefunden ... wahrscheinlich abflachende Konzentration ...

... habe festgestellt, dass Zeichensatz eine Rolle spielt (habe auf UTF-8 gewechselt, dann gings).

Auch bei SPIP verbringt man Zeit mit

dem Studium der Doku, wenn man die erweiterten Features nutzen will.

Genau, ist für Nichtprogrammierer wie mich ne steile Lernkurve, normalerweise macht das Patrick, aber der ist irgendwie verschwunden ... Keine Ahnung wo der steckt ... geht nicht ans Mail, Telefon, ... ich mach mir Sorgen.

Am

besten fragen. spip-de@rezo.net ist OK für den Einstieg, wenn Du direkt
mit den wichtigsten Entwicklern sprechen möchtest, kannst Du neben den
französischen auch die englische Liste (spip-en@rezo.net) nutzen.

Danke!

#ENV{mobile}
siehe:
http://www.spip.net/@
http://www.spip.net/@?lang=en
von dort kommst Du z.B. zu dieser genaueren Erläuterung von #ENV
http://www.spip.net/en_article4905.html

Hab ich durchstudiert, wäre wohl auch gegangen ...

Wenn Du so etwas vorhast, kannst Du Dir das Leben leicht machen:
Du fügst den Code für das eine oder andere CSS nur unter einer Bedingung
ein.

Ganz genau!! Das hab ich jetzt getan, und jetzt läufts!!!

- Mit sioui / sinon unter bestimmten Bedingungen d.h. wenn der Wert
einer Variablen oder Datenfeldes passt.
http://programmer.spip.org/Testing-filters

Verwende ich in Layoutweichen, wenn z.B. die Home anders aussieht wie der Rest.

Viel Spaß,
klaus++

Ebensoviel, heissen Dank und noch einen schönen Sonntag!

Gruss, Nicholas