Textpattern Tips & Tricks
Hier eine lose Zsammenstellung einiger Tips und Tricks, die ich gesammelt
habe. Teilweise sind diese schon etwas älter.
Anleitung Hicks Live Preview Comments
Jon Hicks von Hicks Design hat eine sehr elegante Lösung gefunden, das
etwas simple Kommentarfeld in Textpattern mit einer Funktion zu versehen, die
den Kommentar in Echtzeit widergibt. Wie das aussieht kann man auf soapbar.de,
deep-resonance.org und Hicks Seite testen. Einfach einen Kommentar eingeben.
Unterhalb dem Kommentarfeld wird der Kommentar dargestellt. Mit allen Änderungen.
Um das Live Preview Comment zu implementieren muß man in
a) die comment.php einige Zeilen einfügen
b) in das form comment_form etwas einfügen
c) in den Sourcecode der startseite einige Zeilen hinzufügen
d) zwei classen (odd, even) im CSS Stylesheet anlegen
e) ein Javascript einbinden
zu a)
Die gesamte Anleitung dazu findet man auf
Hicks
Seite
Wer sich da nicht durchkämpfen will, kann auch den Code aus dieser ->
comment.txt nehmen. Dies ist die originale Textpattern RC1 comment.php,
einzig die Änderungen
fürs Live Preview sind darin enthalten. Um die eigenen comment.php nicht
zu verlieren, kopiert man einfach den Code der comment.php.txt in die originale
comment.php ganz oben hinein und kommentiert dann mit /* orig. code..*/ den
originalen Code aus. Es passiert nichts. Im schlimmsten Falle bekommt man einen
Errror. Klappts nicht, löscht man den kopierten Code wieder und entkommentiert
den originalen Code.
zu b)
Das form comment_form ist im Grunde der HTML Code für die Kommentarausgabe.
Dort muß
<txp:comment_name_input />
durch :
<input type="text" id="name" name="name" tabindex="1"
onkeyup="ReloadNameDiv();" value="<?php echo $aname; ?>"
ersetzt werden. Der Sinn ist der folgende: hat schon mal ein User einen Kommentar
abgegeben sind womöglich (sofern er Remember angekreuzt hat) sein Namen
etc. in einem Cookie gespeichert worden. Diese Angabe wird hier eingesetzt.
c)
In den Quelltext der ersten Seite muß nun noch diese Zeile hinzugefügt
weden. Am Besten direkt nach dem <body> tag.
<?php
$aname = $_COOKIE['txp_name'];
?>
Diese Zeile liest das Cookie aus, das u. U. auf dem Rechner des Users existiert.
Weiterhin fügt man diese Zeilen:
<txp:if_individual_article>
<div class="odd">preview :<a href="#" id="NameDisplay">
<?php echo $aname; ?></a> on <?php $today=date("d.m.y");
print "$today"; ?>:
<div id="TextDisplay"></div>
</div>
</txp:if_individual_article>
unterhalb des TXP Artikel tags im Quellquode ein.
Hier mal als Beispiel mein Code, der die gesamte Ausgabe aller Artikel nebst
des Preview regelt. Mehr ist das nicht!
<div class="containerTxt">
<div style="margin-bottom:8px"> </div>
<txp:article form="txt_full_ob" limit="10" />
<txp:if_individual_article>
<div class="odd">Vorschau :<a href="#" id="NameDisplay">
<?php echo $aname; ?></a> on <?php $today=date("d.m.y");
print "$today"; ?>:
<div id="TextDisplay"></div>
</div>
</div>
</txp:if_individual_article>
</div>
d)
die classes odd und even regeln die Ausgabe der geschriebenen Kommentar. odd
ist der 1., 3., 5. etc. Kommentar, even, der 2., 4., 6., ... Kommentar. Im Stylesheet
die beiden classes anlegen.
e)
Das wichtigste ist die Javascript Datei. Diese muß in den headbereich
des Quellcodes der Startseite eingefügt werden.
<script type="text/javascript" src="/js/livePreview.js"></script>
Das entsprechende Javascript gits ->
hier.
UP
Wenn im Admin-Bereich von TXP Emailempfang bei Comments eingestellt
wurde, wird der Namen des Senders angezeigt wenn man in der comments.php
in der letzten Funktion diese Zeile:
mail($email, "[$sitename]
comment received: $Title", $out,
durch diese Zeile ersetzt:
mail($email, ”$cname [$sitename] comment received: $Title”,
$out,
TXP Forum Eintrag dazu
hier
UP
Das 'Comment Form' ist fest in PHP codiert. Das heißt, man kann es nicht
einfach so stylen, wie man will - außer man nimmt die Änderung
in der comment.php selbst vor. Als Beispiel: die Überschrift 'Comment'
wird automatisch in <h3> ausgegeben. Das ändert man in der o. g.
Datei in
Zeile 28 wo $out = n.'<h3... steht.
Weitere stylings sind über das TXP tag comment_form möglich.
Wieder ein Beispiel von Jason
hier
UP
Will man das gesamte Styling der Preview Seite eines Comments der
eigenen Seite anpassen, kopiert man den gesamten neuen
XHTML Codes inkl. CSS Angaben in der
comment.php zwischen Zeile
221-235 ein. Ein gutes Beispiel gab mal wieder Jason
hier
WICHTIG: die Variablen $h3 und
$discuss müssen in den neuen XHTML Code übernommen werden, da sie den Comment beinhalten.
UP
Dazu siehe
hier den
Eintrag ins TXP Forum. TXP zielt derzeit jedoch nicht auf XHTML.
1.1 Validierbarkeit.
UP
Das Format der Datumsausgabe kann in der Datei
include/txp_prefs.php verändert
werden. Siehe Funktion: function dateformats (..).
UP
Wer zum TXP blog noch statische Seiten hat, kann diesen Referrer in diese
Seiten kopieren:
<?php
include_once('/pfadzu/textpattern/config.php');
include_once('/pfadzu/textpattern/lib/txplib_misc.php');
include_once('/pfadzu/textpattern/lib/txplib_db.php');
include_once('/pfadzu/textpattern/publish/log.php');
logit();
?>
UP
...via Plugin: spc_section_alias von ST. Champion. Alles dazu im
Forum
UP
Von Max Ziebell stammt diese Anleitung:
- open publish.php
- search for function plugins()
- find the line: $tmpf = tempnam ('/tmp','plugins');
- change it to: $tmpf = tempnam (txpath.’/tmp’,’plugins’);
- go to your textpattern folder containing publish.php
- create a subdir called “tmp”
- set the rights on “tmp” via chmod or FTP to 777 (all
checkboxes)
Thread im
Forum
UP
txp:article_custom doesn’t respect override_form
You can use article_custom to output articles by date:
<txp:article_custom month="11-03" />
Forum
UP
Für TXP 1.18a gibt es ein Plugin, dass Artikel nach Jahr, Monat, Tag filtert.
Hilfreich für ein Archiv:
Forum
UP
a) Einen Artikel auf der Startseite anreißen und auf einer anderen
Seite in voller Länge zur Verügung stellen, kann man in dem
man der article section, die archive page zuweist, und auf dieser
das TXP tag <txp:body
/> verwendet.
Auf der Startseite verwendet man das tag <txp:excerpt />
.
UP
b) Alle Artikel auf der Startseite anreißen und auf einer anderen
Seite in voller Länge zur Verügung stellen:
Man legt eine neue section sowie eine dazugehörige page an. Man
legt ein
form namens 'anreisser' an, das mindestens
das TXP tag
<txp:excerpt
/> und ein
<txp:permlink><txp:title
/ ><txp:permlink> enthalten
muß. Dann legt man
ein weiteres form namens 'komplett' an,
dass mindestens das TXP tag
<txp:body /> enthalten
muß. Auf der Startseite platziert man ein
<txp:article
form="anreisser" limit="10" />. Auf der der neuen
page platziert
man
ein
<txp:article form="komplett" />.
Der neuen section weist man unter presentation/section zu, 'NICHT auf der Startseite
angezeigt' zu werden zu. Damit hat man Excerpts auf der Startseite und eine Extraseite
mit dem kompletten Artikel.
UP
Anreißer für die neuesten/letzten Artikel anzeigen:
Forum
UP
Komplizierterer workaround für eine TOC Liste oder excerpts und komplette
Artikel auf ein und derselben Seite:
<txp:article form="workaround" limit="1" />
<txp:if_article_list>
<txp:article_custom form="abc" limit="15" section="xyz" excerpted="n" sortby="Posted" sortdir="desc" />
</txp:if_article_list>
<txp:if_individual_article>
<txp:article form="default" />
</txp:if_individual_article>
siehe unbedingt (!) dazu:
Forum und
Hier
UP
Siehe
Forum
Siehe
Forum und
dieses Posting im
Forum
Ich habe 2 Bookmarklets ausprobiert. Das folgende Script trägt
einen Link direkt im Linkverzeichnis von TXP ein. Nachteil des Scripts
ist, dass sich die zu linkende Seite in eine weiße Seite ändert.
Wurde ja auch schon um Forum erwähnt. Dennoch hier das Javascript:
javascript:(window.open('http://sitename.de/textpattern/index.php?
event=link&step=edit&link=Add&bm=1&linkname='+escape
(document.title)
+'&url='+escape(window.location.href),'
_blank','width=400,height=490,
status=yes,resizable=yes,scrollbars=yes'))
Das 2. Script ist etwas eleganter
und stammt von Doug. Es übernimmt einen markierten Text sowie den dazugehörigen
Link direkt in das write Feld. Sehr arbeitserleichternd:
javascript:d=document;w=window;t='';
if(d.selection){t=d.selection.createRange().text}else
if(d.getSelection){t=d.getSelection()}else
if(w.getSelection){t=w.getSelection();}
if(t){t=t+'\n\nQuote from: '}void(w.open
('http://sitename.de?&Body='+escape(t)+escape
(location.href)+'&Title='+escape(document.title),'_blank',''))
Beide Scripte müssen als Favourit in den Browserfavouriten vorliegen.
Da ich meist mit Opera unterwegs bin, ist das da kein Problem. Man trägt
das Script in die Adresszeile eines Favouriten ein. Bei anderen Browsern
trägt man das Script (nur eins!) in eine HTML Seite ein und bookmarkt diese
dann.
WICHTIG: Bookmarklets funktionieren nur wenn man bei TXP auch eingeloggt
ist.
Ein Script für Version 1.19 von Scencer als auch eine weiterführende Anleitung,
wie man eine seperate Linkliste schnell und effizient erstellen kann findet
sich in
diesem
Thread im Forum.
UP
TXP setzt Artikel automatisch in <p> tags, excerpts allerdings nicht.
Das führt meist zu Stylingproblemen (zB:die Headline klebt bei
Excerpts am Text). Es gibt diverse Lösungen für dieses Problem.
1) Einmal kann man in den 'forms' für Artikel
bzw. Excerpts mit <div> arbeiten, die den Abstand nach oben/unten
durch ein margin regeln.
2) Das p tag verschwindet, wenn man Textile nicht verwendet. Siehe
'Advanced options' links neben dem Write Feld.
Allerdings ist es eine mühselige Arbeit bei jedem Artikel Textile auszuknipsen.
3) Eine PHP Lösung von Kursor ist diese im
Forum. Mit Vorsicht zu genießen.
Unbedingt rückgängig machen, wenn man ein TXP Update macht.
UP