Artikel-Template auf Rubrik beschränken

Hallo,

der Betreff sagt es schon. Ich möchte gern ein Artikel-Template für
bestimmte Rubriken verwenden, da sie sich im Aufbau deutlich
unterscheiden (werden/sollen). Gibt es dafür einen guten Weg?

Dank & Gruß,
Peter

PS
Gibt es eigentlich Ideen ein deutsches oder englisches Spipcontrib zu
betreiben. Ich würde die Chancen für gut einschätzen, dass eine solche
Seite gut besucht wäre.

Am 13.02.2006 22:01 schrieb Peter Reimer:

Hallo,

der Betreff sagt es schon. Ich möchte gern ein Artikel-Template für
bestimmte Rubriken verwenden, da sie sich im Aufbau deutlich
unterscheiden (werden/sollen). Gibt es dafür einen guten Weg?

Hallo Peter,

der Mechanismus, der in diesem Artikel für Rubriken vorgestellt wird:
http://www.spip.net/de_article2559.html

funktioniert auch für Artikel:

article.html -> allgemeines Skelett für Artikel
article-4.html -> Skelett für Artikel der Rubrik 4 (und deren Unterrubriken)

und eigentlich (aber selbst noch nicht genutzt, daher nur "theoretisch",
während die ersten beiden Varianten schon häufiger im Einsatz sind)

article=4.html -> Skelett nur für Artikel der Rubrik 4

viele Grüße
Heiko

--
Heiko Jansen, Bochum, Germany
e.mail[1]: heiko.jansen@rub.de
e.mail[2]: heiko@schaustall.de
web: http://www.heiko-jansen.de
ENCRYPT YOUR E-MAILS! VERSCHLÜSSELT EURE MAILS!
PGP-Key auf Anfrage oder auf der Webseite

Hallo Peter!

der Betreff sagt es schon. Ich möchte gern ein Artikel-Template für
bestimmte Rubriken verwenden, da sie sich im Aufbau deutlich
unterscheiden (werden/sollen). Gibt es dafür einen guten Weg?

Das ist extrem einfach:
Du hast z.B. eine Ordnerstruktur
root
rub1 rub94

article-1.html sind templates, die unter Rubrik 1 angewählt werden
article-94.html unter Rub2 article=94.html nur innerhalb der Rub94.

Der Mechanismus ist so einfach wie genial, es gilt auch für die <INCLURE> oder Formulartemplates u.s.w. Also man kann was includieren, abhängig wo man im Dateibaum steht. Vielleicht unterscheidet sich ja nicht das ganze Template.

Gibt es eigentlich Ideen ein deutsches oder englisches Spipcontrib zu
betreiben. Ich würde die Chancen für gut einschätzen, dass eine solche
Seite gut besucht wäre.

Die spip-conrib ist ja mehrsprachig. Auf jeden Fall gibt's englische contribs.

Es steht niemandem etwas im Weg, deutsche Übersetuzungen zu erstellen, oder auch neue Inhalte zu erfassen. Meist ist es halt eine Zeitfrage, ob man dazu kommt...

viele Grüsse
Patrick

Nachtrag:
Vermutlich hast Du die Artikel ja im Ordner squelettes.
Vermutlich ist es ein Bug. Aber die Templates werden nicht gefunden, wenn *nur" artikle-xy in diesem Ordner besteht, d.h. es wird dann das Standardtemplate angezeigt. Sobald man aber ein article.html in squelettes erstellt geht's wieder. War mit spip 1.82e immer noch so.

Hallo.

article-1.html sind templates, die unter Rubrik 1 angewählt werden
article-94.html unter Rub2
article=94.html nur innerhalb der Rub94.

OK, danke dafür, hat auch soweit alles sehr gut funktioniert. Gibt es
denn eigentlich auche irgendeine Möglichkeit, ein Template nur für
_einen_ Artikel zu verwenden? Man könnte den Artikel in eine eigene
Rubrik legen und dann ein Template für die Rubrik, was ich allerdings
ziemlich "dirty" finde.

Nachtrag:
Vermutlich hast Du die Artikel ja im Ordner squelettes.
Vermutlich ist es ein Bug. Aber die Templates werden nicht gefunden,
wenn *nur" artikle-xy in diesem Ordner besteht, d.h. es wird dann das
Standardtemplate angezeigt. Sobald man aber ein article.html in
squelettes erstellt geht's wieder. War mit spip 1.82e immer noch so.

Seltsames verhalten. Ich habe eine article.html in article-xx.html
umbenannt und mich dann gewundert, warum immer das Template aus dist/
genommen wird. Nennt man article.html in dist/ dann um, gibts einen
Fehler...

Dank & Gruß,
Peter

>Man könnte den Artikel in eine eigene
>Rubrik legen und dann ein Template für die Rubrik, was ich allerdings
>ziemlich "dirty" finde.

Das ist eine Möglichkeit.
Ein Trick wäre ev. wenn Du eine andere Sprache verwendest. Da kannst Du ja auch je eigene Templates haben..

Es ist nicht abwägig für etwas spezielles, einen anderen Namen zu verwenden, wenn's ein spezielles Formular ist .o.ä.
Du kannst es dann mit spezartikel.php (fond: spezartikel.html analog, article.php) aufrufen.
Wenn man extrem viele article-xy hat, da reichen schon 10. wird es eh etwas unübersichtlich...(nach einem halben Jahr hat man keine Ahnung mehr, was was war....

Gruss
Patrick

Hallo Peter,
es muss in Deinem Template-Ordner ein Skelett mit der Bezeichnung article.html bzw. rubrique.html geben, damit article-xx.html aktiviert wird. Anderenfalls wird article.html aus dem Installationsverzeichnis oder aus -dist verwendet.

Du gehst also folgendermassen vor:
1. Anlegen von article.html und rubrique.html in Deinem Template-Ordner (z.B. in /squelettes/) Das können Kopien der Dateien in /dist/ sein.
2. Anlegen von article-nn.html und rubrique-nn.html für die Rubrik nn, ihre Artikel und Unterrubriken im Template-Ordner.

Noch ein Tip: Wenn Du mit Dreamweaver o.ä. arbeitest, kannst Du während der Entwicklung die *.html Templates ruhig im Installationsverzeichnis speichern. Die Ablage in /squelettes/ o.ä. ist nur erforderlich, wenn Du mehrere Layout-Sets verwendest oder die Site übersichtlich halten möchtest.

Grusz, klaus++

Peter Reimer schrieb:

Hallo.

article-1.html sind templates, die unter Rubrik 1 angewählt werden
article-94.html unter Rub2 article=94.html nur innerhalb der Rub94.
    
OK, danke dafür, hat auch soweit alles sehr gut funktioniert. Gibt es
denn eigentlich auche irgendeine Möglichkeit, ein Template nur für
_einen_ Artikel zu verwenden? Man könnte den Artikel in eine eigene
Rubrik legen und dann ein Template für die Rubrik, was ich allerdings
ziemlich "dirty" finde.

Nachtrag:
Vermutlich hast Du die Artikel ja im Ordner squelettes.
Vermutlich ist es ein Bug. Aber die Templates werden nicht gefunden,
wenn *nur" artikle-xy in diesem Ordner besteht, d.h. es wird dann das
Standardtemplate angezeigt. Sobald man aber ein article.html in squelettes erstellt geht's wieder. War mit spip 1.82e immer noch so.
    
Seltsames verhalten. Ich habe eine article.html in article-xx.html
umbenannt und mich dann gewundert, warum immer das Template aus dist/
genommen wird. Nennt man article.html in dist/ dann um, gibts einen
Fehler...

Dank & Gruß,
Peter

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

Na da legst Du doch ein Pärchen meinartikel.html / meinartikel.php3 an und schreibst diesen Code in die HTML-Datei:

<BOUCLE_artikel(ARTICLES){id_article=nn}>
#TITRE etc.
</BOUCLE_artikel>
wobei nn die Nummer Deines Artikels ist.

Grusz, klaus++

OK, danke dafür, hat auch soweit alles sehr gut funktioniert. Gibt es
denn eigentlich auche irgendeine Möglichkeit, ein Template nur für
_einen_ Artikel zu verwenden? Man könnte den Artikel in eine eigene
Rubrik legen und dann ein Template für die Rubrik, was ich allerdings
ziemlich "dirty" finde.
  

Ich war der Meinung, dass man bei einem hochgeladenen Bild od. als Dok, die Bildgrösse angeben kann, die im Artikel angezeigt dann wird (wenn man z.B. mit <emb> arbeitet, ich glaube so war es). .
Beim 1.82 kann cih nirgends eine gewünschte Grösse angeben, weder als Bild noch Dokument.

Jetzt schau ich nach einer Lösung eines Filters:
http://www.spip-contrib.net/Controler-la-taille-des-images
klappt "natürlich" auch grad nicht mit SPIP 1.82.

Gruss
Patrick .

Ich hab etwa auf dem Wikini gestöbert, aber keine einfache Lösung gesehen.

Gibt es dennnun eine Möglichkeit diese #ENV-Variable vom php aus zu setzen?
Ich hab mit HTTP_GET_VARS['var'] = "value" o.ä. probiert.
Es ging leider nicht (o.k. man kann tausend Fehler machen:-).

KLaus hat auch was von Cookies erwähnt. Der Ansatz hierfür ist mir nicht klar. Die Site muss auch ohne Cookie mit den korrekten Parametern (Farben, Footern, individurellen Artikeln) funkioneren.
Mir ist der Cookie-Mechanismus eh völlig unklar :slight_smile:

beste Grüsse
Patrick

P.S.
Es geht mir immer noch drum, auf diese Art meine Abweichungen in den Skeletten zu steuern.

Bsp: (immer noch)
http://www.protecplaya.com/spip1.82d/article.php3?id_article=129

Lieber Patrick,
der Artikel, auf den Du Dich beziehst beschreibt einen Workaround für eine alte SPIP-Version. Inzwischen kann die Standardversion von SPIP Bildgrößen ändern:

Der Filter ||reduire_image| ist jetzt in der Lage, Bilder innerhalb eines Textes verkleinern, und kann damit auf den SPIP-Tag |#TEXTE| angewendet werden. Geändert wurde auch sein Verhalten: Wenn man den Wert 0 als Angabe für horizontale oder vertikale Maße macht, wird der Wert proportional zur Änderung der anderen Seitenkante berechnet. So reduziert der Code |[(#LOGO_ARTICLE||reduire_image{60,0})]| die Breite des Logos auf maximal 60 Pixel und berechnet die Höhe proportional zur Änderung der Breite, so daß die Seitenverhältnisse beibehalten werden.

Quelle: http://www.spip.net/de_article3178.html

Grusz, klaus++

<cid:part1.05060508.09030400@klaus-meier.de>

Patrick Ogay schrieb:

Ich war der Meinung, dass man bei einem hochgeladenen Bild od. als Dok, die Bildgrösse angeben kann, die im Artikel angezeigt dann wird (wenn man z.B. mit <emb> arbeitet, ich glaube so war es). .
Beim 1.82 kann cih nirgends eine gewünschte Grösse angeben, weder als Bild noch Dokument.

Jetzt schau ich nach einer Lösung eines Filters:
http://www.spip-contrib.net/Controler-la-taille-des-images
klappt "natürlich" auch grad nicht mit SPIP 1.82.

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

Hallo Patrick,
versuche es doch mal mit
$_GET['var'] = 'DeinVariableninhalt';
HTTP_GET_VARS wird als obsolet angesehen und funktioniert nicht mehr mit allen PHP-Versionen.
Grusz,
klaus++

Patrick Ogay schrieb:

Ich hab etwa auf dem Wikini gestöbert, aber keine einfache Lösung gesehen.

Gibt es dennnun eine Möglichkeit diese #ENV-Variable vom php aus zu setzen?
Ich hab mit HTTP_GET_VARS['var'] = "value" o.ä. probiert.
Es ging leider nicht (o.k. man kann tausend Fehler machen:-).

KLaus hat auch was von Cookies erwähnt. Der Ansatz hierfür ist mir nicht klar. Die Site muss auch ohne Cookie mit den korrekten Parametern (Farben, Footern, individurellen Artikeln) funkioneren.
Mir ist der Cookie-Mechanismus eh völlig unklar :slight_smile:

beste Grüsse
Patrick

P.S.
Es geht mir immer noch drum, auf diese Art meine Abweichungen in den Skeletten zu steuern.

Bsp: (immer noch)
http://www.protecplaya.com/spip1.82d/article.php3?id_article=129

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

danke für den Tipp
>$_GET['var'] = 'DeinVariableninhalt';
>HTTP_GET_VARS wird als obsolet ang

Beides geht, aber innerhalb des Artikels ist es schon zu spät :frowning:
Ich vermute, dass SPIP ganz zu Beginn, die URL abcheckt, und das Enviroment zuordnet.

in "mes_fonctions.php" könnte es ev. noch gehen,
muss auch nochmals testen ob's für <INCLURE> nicht doch geht.
Mal schauen, ob mich das weiterbringt.

Gruss
Patrick

Mit #ENV kann man zwar Environnment-Varablen wie Path-Info auslesen, doch wird das früher ausgelesen, als dass im Artikel das Environment könnte assigned werden.
Ein Filter half nicht direkt weiter, weil der Filter auch zuerst aufgelöst wird, bevor man die Environment-Variable im Artikel zuweist.

Trick:
Ein Dummy-Filter mit Parametern am Anfang aufrufen und dann die Environment-Vars erstellen.
Das funktioniert, wenn die Filter in der Sequenz abgearbeitet werden, was ich schwer hoffe!

cu
Pat

#Filter: Environment-Variable zuweisen

function SetURLVars($texte,$var,$default){
# Muss vor dem anderen Filter aufgerufen werden
   echo("1)$texte/$var/$default-");
   $_GET["$var"]= $default;
   echo("@|".$_GET["$var"]."|@");
   return($texte);
}

function GetURLVars($texte,$var,$default)
# #ENV evaluates at the very beginning.
# Variables can be assigened with SetURLVars
#------------------------------------------
# p.ogay / 2006. Feb. 21
{
   echo("2)$texte/$var/$default-"."#|".$_GET["$var"]."|#");
   if ($texte==$default){
     if ($_GET["$var"]) return $_GET["$var"];
     else return($default);
   }
   else return($texte);
}

Hallo Patrick,
danke für die Hinweise - mir ist noch nicht ganz klar, wann das Problem auftritt, für das Du eine Lösung entwickelt hast.

Möchtest Du die Art der Anzeige eines Artikels in Abhängigkeit von seinem Inhalt steuern?
Könntest Du ein Beispeil für den SPIP-Code geben, der durch Deinen Filter möglich wird? In Deiner Mail beschreibts Du den Code des Filters, wi ich ihn anwende erschließt sich mir nicht direkt.

Grusz von klaus++

Patrick Ogay schrieb:

Mit #ENV kann man zwar Environnment-Varablen wie Path-Info auslesen, doch wird das früher ausgelesen, als dass im Artikel das Environment könnte assigned werden.
Ein Filter half nicht direkt weiter, weil der Filter auch zuerst aufgelöst wird, bevor man die Environment-Variable im Artikel zuweist.

Trick:
Ein Dummy-Filter mit Parametern am Anfang aufrufen und dann die Environment-Vars erstellen.
Das funktioniert, wenn die Filter in der Sequenz abgearbeitet werden, was ich schwer hoffe!

cu
Pat

#Filter: Environment-Variable zuweisen

function SetURLVars($texte,$var,$default){
# Muss vor dem anderen Filter aufgerufen werden
   echo("1)$texte/$var/$default-");
   $_GET["$var"]= $default;
   echo("@|".$_GET["$var"]."|@");
   return($texte);
}

function GetURLVars($texte,$var,$default)
# #ENV evaluates at the very beginning.
# Variables can be assigened with SetURLVars
#------------------------------------------
# p.ogay / 2006. Feb. 21
{
   echo("2)$texte/$var/$default-"."#|".$_GET["$var"]."|#");
   if ($texte==$default){
     if ($_GET["$var"]) return $_GET["$var"];
     else return($default);
   }
   else return($texte);
}
_______________________________________________
Spip-de@rezo.net - http://listes.rezo.net/mailman/listinfo/spip-de

Hallo Klaus und Liste
>danke für die Hinweise - mir ist noch nicht ganz klar, wann das Problem auftritt,
>für das Du eine Lösung entwickelt hast.
>Möchtest Du die Art der Anzeige eines Artikels in Abhängigkeit von seinem Inhalt steuern?
>Könntest Du ein Beispeil für den SPIP-Code geben, der durch Deinen Filter möglich wird? In Deiner Mail >beschreibts Du den Code des Filters, wi ich ihn anwende erschließt sich mir nicht direkt.

Es klappt - man könnte so auch ganz "normale" Globals verwenden.

Also ich habe unterschiedliche Subsites, die sich z.B. auf Grund des Footer-Inhaltes und andere Daten unterscheiden. Da braucht es die gleichen Boucles, jeweils mit anderen Schlüsseln z.B. Diving. (Name der Sub-Site)

An einem zentralen Ort am Anfang der Templates, können diese Werte nun initialisiert werden:
Man kann es jetzt sicher nochmals verbessern und verschönern. Im <INCLURE> hab ich zur Zeit eine Selektion, die durch die globale Variable $SelSite gesteuert wird.. Den Filter kann man natürlich nicht ins inclure nehmen, ansonsten hat man ja keinen kontextabhängigen und eindeutigen Wert mehr.
Auf jeden Fall kann ich jetzt mit einer einzigen Variablen, das richtige Layout assignen. D.h. ich kann eine template.html rumkopieren, ohne das Template als solches anpassen zu müssen.
http://protecsardinia.com.jovinus-meta.net/spip1.82d/rubrique.php3?id_rubrique=84 (Gelb mit richtigem Footer)

<?php
$SelSite=[(#CHARSET|SetURLVars{selsite,Sard})]; /* intern: $_GET["$var"]= $default; */
# Zuweisung anderer Werte, z.B. Navi-Parameter (in Arbeit)
?>
<INCLURE (parmstyles.php3)>

Der Boucle sieht dann so aus:
Den #ENV-Wert könnte man so immer noch über die URL übersteuern.

<BOUCLE_article_footer(ARTICLES)
{titre==(#ENV{selsite,default}|GetURLVars{selsite,default})} {titre_mot=mainfooter}>
#TEXTE
</BOUCLE_article_footer>

Wenn nun alle Templates identisch sind, erspart mir das einiges an Arbeit.
Die Navi ist z.B. identisch, setzt einfach auf einer andere Rubrik auf.
Ich kann jetzt jeden <BOUCLE> "fernsteuern".

Ich hoffe, der Nutzen ist ersichtlich :slight_smile:
Gruss
Patrick

-----
#mes_foncions.php3
function SetURLVars($texte,$var,$default){
# Sets Global Variable, which can be used in GetURLVars
  $_GET["$var"]= $default;
  # echo("2)$texte/$var/$default-"."@|".$_GET["$var"]."|@");
  return($_GET["$var"]);
}

function GetURLVars($texte,$var,$default)
# #ENV evaluates at the very beginning.
# Filter to evaluate *actual* URL
# values from SetURLVars
#------------------------------------------
# P.Ogay / 2006. Feb. 21
{
  # echo("2)$texte/$var/$default-"."#|".$_GET["$var"]."|#");
  if ($texte==$default){
    if ($_GET["$var"]) return $_GET["$var"];
    else return($default);
  }
  else return($texte);
}

ich tue mich schwer mit der neuen Agenda.
Eigntlich möchte ich nur einen ganz kleinen Kalender, nicht einen "Outlook".

Die Beispiele bin ich mal durchgegangen:
z.B.
http://www.protecplaya.com/spip1.82d/page.php3?fond=agenda_jour
Was ich aber möchte, ist eine "quadratische" Monatsdarstellung in der rechten Side Bar, von oben nach unten.

Ich glaube, ich muss auf die altbewährten Agenden in SPIP-Contrib zurückgreifen,
od. gibt es eine einfache Möglichkeit?

Gruss
Patrick

Ich hab grad die "Mini-Agenda" ausprobiert.

Ich fahre SPIP 1.82g.
das #DATE_REDAC, das verwendet wird ist leer, ich hab noch nicht rausgefunden, was an der Datumlogik anders ist, resp. was für ein Datum man verwenden muss.

Gruss
Patrick

Hallo Patrick,
von welcher Mini-Agenda sprichst Du? Kannst Du den URL angeben?
Wenn Du #DATE_REDAC für den Kalender verwenden willst, musst Du alle Vorkommnisse von #DATE in agenda*.html nach #DATE_REDAC ändern.
Grusz, klaus++

Patrick Ogay schrieb:

Ich hab grad die "Mini-Agenda" ausprobiert.

Ich fahre SPIP 1.82g.
das #DATE_REDAC, das verwendet wird ist leer, ich hab noch nicht rausgefunden, was an der Datumlogik anders ist, resp. was für ein Datum man verwenden muss.

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

Hoi Klaus!

>Wenn Du #DATE_REDAC für den Kalender verwenden willst, musst Du alle Vorkommnisse von #DATE in >agenda*.html nach #DATE_REDAC ändern.
>Grusz, klaus++

Das Problem ist, dass im SPIP 1.82g (zumindest in meiner Installation) #DATE_REDAC (date_redac) durchgängig blank ist. (kann sein, dass das bei 1.83 nicht mehr der Fall ist).
Ich habe die Datenbank gecheckt: #DATE (date) beinhaltet, wie es aussieht, das Datum, dass man im Artikel mutiert auch in die Zukunft.
Die Agenda scheint nach meinen Anpassungen korrekt zu funkionieren

viele Grüsse
Patrick

p.s.
Was ich an SPIP etwas schade finde:
*Es wäre einfach, bei der Dokumentation ein Artikel-Forum zu haben, wo man Fehler korrigieren könnte
  (SPIP-Contrib ist o.k.)
*Es wäre als Entwickler einfach, die neuen Features z.B. in einenm Wiki zu beschreiben, mit ein paar Beispielen.
  wie ich das, z.B. für mich mache:
  http://www.ddy.ch/pm/laden/pm.wiki/Products/SpipTricks [*]

Man muss klar sehen, dass man als Entwickler immer im Zeitdruck ist. Der Feedback sollte einem deshalb so einfach als möglich gemacht werden.

[*] Ich finde das Spikini von der Struktur sehr sehr unpraktisch.