CustomField für statische Seiten?

Hier können Probleme und alles andere in Deutscher Sprache gelöst werden.
mot2001
Regular
Posts: 9
Joined: Wed Sep 27, 2006 11:31 am
Location: Berlin, Germany
Contact:

Re: CustomField für statische Seiten?

Post by mot2001 »

Hi Stephan,

ich habe jetzt in dem Entrie-Template von Carl eine Moeglichkeit gefunden die erste Eintrags Seite zu identifizieren und dann dort ueber den Eintrag einen Text zu plazieren.
Wenn ich verhindern moechte, dass der Text ueber beiden Eintraegen der zuerst erscheinenden Eintragsseite eingebunden ist, muesste ich auch den juengsten Eintrag identifizieren koennen. Aber wie:

hier meine derzeitige Variante in der 'entrie.tpl':
{if not $footer_prev_page}<div><b>Startpage Text</b></div>{/if}


Ergebnis hier: http://www.ethioworld.net/categories/1-Serendipity

Mir schwebt sowas wie

{if $entrie_first_entry}<div><b>Startpage Text</b></div>{/if}

vor. Oder muss man hier eine Abfrage des Timestamps machen?
Micha
-------
Marx macht mobil bei Arbeit, Sport und Spiel
stm999999999
Regular
Posts: 1531
Joined: Tue Mar 07, 2006 11:25 pm
Location: Berlin, Germany
Contact:

Re: CustomField für statische Seiten?

Post by stm999999999 »

hier meine derzeitige Variante in der 'entrie.tpl':
{if not $footer_prev_page}<div><b>Startpage Text</b></div>{/if}
Hey, sieht wirklich elegant gelöst aus!
Mir schwebt sowas wie

{if $entrie_first_entry}<div><b>Startpage Text</b></div>{/if}

vor. Oder muss man hier eine Abfrage des Timestamps machen?
Um Gottes Willen, NEIN! Falls Du mal mit dauerhaften Einträgen arbeiten solltes oder so, das kann nur schief gehen.

Du wirst irgendwo in der entries.tpl sowas hier haben:

Code: Select all

<div class="serendipity_Entry_Date">
    {foreach from=$entries item="dategroup"}


        {foreach from=$dategroup.entries item="entry"}
Da kann man wohl diesen Schleifen Namen geben und dann abfragen, ob es der jeweils erste Schleifendurchlauf ist.

Aber es sollte viel einfacher gehen:

Mache Deinen Code von oben einfach VOR diese Schleifen, dann wird er halt einmal ausgegeben, bevor irgendein Eintrag ausgegeben wird!
Ciao, Stephan
mot2001
Regular
Posts: 9
Joined: Wed Sep 27, 2006 11:31 am
Location: Berlin, Germany
Contact:

Re: CustomField für statische Seiten?

Post by mot2001 »

Du wirst irgendwo in der entries.tpl sowas hier haben:

Code: Select all

<div class="serendipity_Entry_Date">
    {foreach from=$entries item="dategroup"}


        {foreach from=$dategroup.entries item="entry"}
Da kann man wohl diesen Schleifen Namen geben und dann abfragen, ob es der jeweils erste Schleifendurchlauf ist.

Aber es sollte viel einfacher gehen:

Mache Deinen Code von oben einfach VOR diese Schleifen, dann wird er halt einmal ausgegeben, bevor irgendein Eintrag ausgegeben wird!
Wow!!! es funktioniert und ich bin erleichtert. Vielen Dank!

Hat Falk denn schon etwas zu der StatiPage-Template-Verknuepfung gesagt?
Micha
-------
Marx macht mobil bei Arbeit, Sport und Spiel
stm999999999
Regular
Posts: 1531
Joined: Tue Mar 07, 2006 11:25 pm
Location: Berlin, Germany
Contact:

Re: CustomField für statische Seiten?

Post by stm999999999 »

stm999999999 wrote:
Inzwischen liegt da eine 3.36.4BETA(!), die dann auch wirklich allen neuen Code von mir enthält (glaube ich) Vorher ging das mit den Verknüpfen nur in eine Richtung!
Hallo Falk,

in der Beta4 ist ja u.a. der Code fürs Erzeugen der neuen Tabelle drin, danke dafür. Ich selber nutzte gerade eine Version des Plugins, die komplett alle Änderungen der letzten Monate am offiziellen Versions-Ast übernommen hat - und es funktioniert alles wunderbar.

Nun will ich diesen Code endlich mal veröffentlichen und habe mir deswegen Deine beta4 nochmal genauer angeguckt.

Wie gesagt, den Code für die Tabelle habe ich übernommen.

Ansonsten finden sich aber noch drei Abweichungen zu meinem working-code:

1) Ist es wichtig das hier zu schreiben ...

Code: Select all

image varchar(255) not null default '') {UTF_8}";
... anstelle von ...

Code: Select all

image varchar(255) not null default '')";
2) in

Code: Select all

    function getRSSCategories()
    {
        $res = serendipity_fetchCategories($serendipity['authorid']);
        $ret[0] = NONE;
		if (is_array($res)) {
            foreach ($res as $value) {
                $ret[$value['categoryid']] = $value['category_name'];
            }
        }
        return $ret;
    }
ist mir das if (is_array($res)) {}- neu. Das sollte ich wohl übernehmen? Obwohl es bei mir bislang auch ohne ging - wofür ist das?



3) abseits von der category-Geschichte ist in Deiner Version einiges, was mir nichts sagt, rund um

Code: Select all

WHERE name LIKE \'serendipity_event_guestbook%version\'';
Ich nehme mal an, dieser Code (der ja auch bislang nicht in der Spartacus-Version drin ist) ist nachwievor nicht zur offiziellen Veröffentlichung bestimmt, ich sollte ihn also nicht übernehmen, richtig?
Ciao, Stephan
falk
Regular
Posts: 512
Joined: Tue Sep 27, 2005 10:16 am
Location: DD
Contact:

Re: CustomField für statische Seiten?

Post by falk »

stm999999999 wrote:
1) Ist es wichtig das hier zu schreiben ...

Code: Select all

image varchar(255) not null default '') {UTF_8}";
... anstelle von ...

Code: Select all

image varchar(255) not null default '')";
Das {UTF_8} müsste rein theoretisch dafür sein, wenn du mit UTF8 arbeitest. Da wird bei jeder Abfrage der Datenbank mitgegeben, das man mit UTF8 arbeitet. Oder anders ausgedrückt: Die Datenbank bekommt den Befehl, die Daten als UTF8-Daten zu behandeln, damit keine wunderschönen Sonderzeichen entstehen. Ich würde ja den Weg bevorzugen, es ganz am Anfang einmal zu sagen (per SET CHARSET UTF8 oder so), doch dazu ist der S9y-DB-Layer nicht ausgelegt.
stm999999999 wrote: 2) in

Code: Select all

    function getRSSCategories()
    {
        $res = serendipity_fetchCategories($serendipity['authorid']);
        $ret[0] = NONE;
		if (is_array($res)) {
            foreach ($res as $value) {
                $ret[$value['categoryid']] = $value['category_name'];
            }
        }
        return $ret;
    }
ist mir das if (is_array($res)) {}- neu. Das sollte ich wohl übernehmen? Obwohl es bei mir bislang auch ohne ging - wofür ist das?
Das ist, um eine Fehlermeldung zu unterdrücken, wenn keine RSS-Feeds für den Autoren vorhanden sind. Ich glaube dieser Hinweis kam mal von Robert Lender. (Mal im Forum suchen oder meinen bei mir lokal liegenden privaten E-Mails ;-)).
stm999999999 wrote:
3) abseits von der category-Geschichte ist in Deiner Version einiges, was mir nichts sagt, rund um

Code: Select all

WHERE name LIKE \'serendipity_event_guestbook%version\'';
Ich nehme mal an, dieser Code (der ja auch bislang nicht in der Spartacus-Version drin ist) ist nachwievor nicht zur offiziellen Veröffentlichung bestimmt, ich sollte ihn also nicht übernehmen, richtig?
Das dürfte der Teil mit den externen Plugins sein. Also wo man Gästebuch usw. als eigenen Navigationspunkt aufnehmen kann.

Ich hoffe helfen gekonnt zu haben.

Tschau,

Falk

PS: Danke fürs Weiterentwickeln.
stm999999999
Regular
Posts: 1531
Joined: Tue Mar 07, 2006 11:25 pm
Location: Berlin, Germany
Contact:

Re: CustomField für statische Seiten?

Post by stm999999999 »

Das {UTF_8} müsste rein theoretisch dafür sein, wenn du mit UTF8 arbeitest. Da wird bei jeder Abfrage der Datenbank mitgegeben, das man mit UTF8 arbeitet. Oder anders ausgedrückt: Die Datenbank bekommt den Befehl, die Daten als UTF8-Daten zu behandeln, damit keine wunderschönen Sonderzeichen entstehen. Ich würde ja den Weg bevorzugen, es ganz am Anfang einmal zu sagen (per SET CHARSET UTF8 oder so), doch dazu ist der S9y-DB-Layer nicht ausgelegt.
hm, aber wenn das konkrete Blog garnicht mit UTF8 arbeitet?
Das ist, um eine Fehlermeldung zu unterdrücken, wenn keine RSS-Feeds für den Autoren vorhanden sind. Ich glaube dieser Hinweis kam mal von Robert Lender. (Mal im Forum suchen oder meinen bei mir lokal liegenden privaten E-Mails ;-)).
ok, dann übernehme ich es einfach.
Das dürfte der Teil mit den externen Plugins sein. Also wo man Gästebuch usw. als eigenen Navigationspunkt aufnehmen kann.
das in Deinen betas sieht aber wie gesagt anders aus, als das was in der offiziellen Version drin ist - mir scheint, Du hast da irgendwas im Rahmen von guestbook V2 neu geschrieben, was aber noch beta ist - ich denke, ich werde das mal lieber draussenlassen, auch schon um nicht verschiedene Funktions-Patches zu vermischen. Vielleicht kannst Du dann ja hinterher nochmal einen Blick drauf werfen, ob Du das noch/schon offiziell machen willst.
Ich hoffe helfen gekonnt zu haben.

Tschau,

Falk

PS: Danke fürs Weiterentwickeln.
no problem - purer Eigennutz! :D
Ciao, Stephan
stm999999999
Regular
Posts: 1531
Joined: Tue Mar 07, 2006 11:25 pm
Location: Berlin, Germany
Contact:

Post by stm999999999 »

falk wrote:Die Diffs die ich mir mache sehen anders aus (die sind mit + und -). Aber wenn ich mir das so ansehen, gibt es auch die < und > Variante. Das muss ich mir nochmal genauer ansehen. Vielleicht doch wieder eine Option zu wenig mitgegeben ;-).
Sag mal, hast Du die Patches nun eigentlich problemlos einspielen können, oder hast Du das per Hand allers verändert?

Weil Garvin hat gerade massiv Probleme meine Patches einzuspielen, allerdings weniger wegen dem komischen Format, sondern wohl irgendwas mit anderen Fehlermeldungen. Vielleicht kannste Dir das ja mal angucken und sagen, ob das auch Deine Probleme waren und ob Du ggf. eine Lösung weißt:

http://board.s9y.org/viewtopic.php?t=9939&start=30

im übrigen ist natürlich auch jeder andere hier eingeladen, sich diese Patch-Sache mal anzugucken :lol:
Ciao, Stephan
falk
Regular
Posts: 512
Joined: Tue Sep 27, 2005 10:16 am
Location: DD
Contact:

Post by falk »

stm999999999 wrote:hm, aber wenn das konkrete Blog garnicht mit UTF8 arbeitet?
Wenn deine Modifikationen auch andere Nutzer nutzen sollen, dann musst du schon drauf achten, kompatiebel zu sein. Das ist ja das schöne am programmieren. 80% sind Fehler abfangen.
stm999999999 wrote:das in Deinen betas sieht aber wie gesagt anders aus, als das was in der offiziellen Version drin ist - mir scheint, Du hast da irgendwas im Rahmen von guestbook V2 neu geschrieben, was aber noch beta ist - ich denke, ich werde das mal lieber draussenlassen, auch schon um nicht verschiedene Funktions-Patches zu vermischen. Vielleicht kannst Du dann ja hinterher nochmal einen Blick drauf werfen, ob Du das noch/schon offiziell machen willst.
Asche auf mein Haupt, ich weiß aus dem Kopf nicht was ich da gemacht habe. Aber deine Vermutung könnte stimmen. Aber wenn deine Version mit den Staticpages in Spartacus gepatcht werden soll, kann das sowieso raus.
stm999999999 wrote:Sag mal, hast Du die Patches nun eigentlich problemlos einspielen können, oder hast Du das per Hand allers verändert?

Weil Garvin hat gerade massiv Probleme meine Patches einzuspielen, allerdings weniger wegen dem komischen Format, sondern wohl irgendwas mit anderen Fehlermeldungen. Vielleicht kannste Dir das ja mal angucken und sagen, ob das auch Deine Probleme waren und ob Du ggf. eine Lösung weißt
Die Probleme hatte ich auch, darum habe ich es per Hand gemacht. Zeilennummern standen ja da. Ging schneller als nach einer halben Stunde nochmal drei Stunden für die Fehleranalyse dranzuhängen. Das Format ansich ist irgendwie "nicht richtig".
stm999999999
Regular
Posts: 1531
Joined: Tue Mar 07, 2006 11:25 pm
Location: Berlin, Germany
Contact:

Post by stm999999999 »

falk wrote:
stm999999999 wrote:hm, aber wenn das konkrete Blog garnicht mit UTF8 arbeitet?
Wenn deine Modifikationen auch andere Nutzer nutzen sollen, dann musst du schon drauf achten, kompatiebel zu sein. Das ist ja das schöne am programmieren. 80% sind Fehler abfangen.
Du hast mich mißverstanden: Ich meinte nicht, daß mein Blog ja nicht auf UTF-8 laufen würde (es läuft nämlich mit UTF-8 und das ohne Probleme ohne diesen Zusatz!), sondern ob dieses erzwungene (so verstehe ich das) UTF-8 bei Blogs die eben kein UTF-8 nutzen, nicht zu Problemen führt!?

Und mir ist so ein erzwungenes UTF-8 halt noch sonst nirgends im s9y-code aufgefallen.
Ciao, Stephan
garvinhicking
Core Developer
Posts: 30022
Joined: Tue Sep 16, 2003 9:45 pm
Location: Cologne, Germany
Contact:

Post by garvinhicking »

Hi!

{UTF_8} wird nur auf Blogs die UTf-8 nutzen substituiert.

Grüße,
Garvin
# Garvin Hicking (s9y Developer)
# Did I help you? Consider making me happy: http://wishes.garv.in/
# or use my PayPal account "paypal {at} supergarv (dot) de"
# My "other" hobby: http://flickr.garv.in/
stm999999999
Regular
Posts: 1531
Joined: Tue Mar 07, 2006 11:25 pm
Location: Berlin, Germany
Contact:

Post by stm999999999 »

Aha - dann werde ich es brav übernehmen :-)



Wobei: ich habe ja wirklich keine Ahnung von diesem Datenbank/utf-8-Zeugs, daher eine vielleicht naive Frage:

Warum heißt es beispielssweise in

Code: Select all

                   markup int(1) default '1',
                    pagetitle varchar(255) not null default '',
                    permalink varchar(255) not null default '',
                    is_startpage int(1) default '0',
                    show_childpages int(1) not null default '0',
                    content text,
                    pre_content text,
                    headline varchar(255) not null default '',
                    filename varchar(255) not null default '',
                    pass varchar(255) not null default '',
                    timestamp int(10) {UNSIGNED} default null,
                    authorid int(11) default '0',
                    pageorder int(4) default '0',
                    articletype int(4) default '0',
                    shownavi int(4) default '1',
                    showonnavi int(4) default '1',
                    publishstatus int(4) default '1',
                    language varchar(10) default '') {UTF_8}");
manchmal {UTF_8} bei varchar-Feldern und manchmal nicht?
Ciao, Stephan
falk
Regular
Posts: 512
Joined: Tue Sep 27, 2005 10:16 am
Location: DD
Contact:

Post by falk »

Wenn es wie in deinem Beispiel ganz hinten steht, wird die ganze Tabelle (wenn nötig) als UTF8-Tabelle angelegt. Das {UTF8} hinter varchar ist nur nötig, wenn nachträglich Felder in eine existierende Tabelle eingefügt werden. Ich hatte schon das tolle Ergebnis, in einer Tabelle zwei Charsets zu haben. Fantastisch, wenn man da Probleme mit der Zeichensatzdarstellung bekommt.
stm999999999
Regular
Posts: 1531
Joined: Tue Mar 07, 2006 11:25 pm
Location: Berlin, Germany
Contact:

Post by stm999999999 »

Nebenbei:

Ich habe in der config.php meines Templates noch zwei smarty-Funktionen eingebaut, die für die Verlinkung zu den Kategorien auf den statischen Seiten notwendig sind.

So sieht der Aufruf in den Template-Dateien aus:

Code: Select all

<a href="{$serendipityArchiveURL}/P1.html">{$CONST.ARTICLE_OVERVIEW}</a><br />

<a href="{$serendipityBaseURL}{getCategoryLinkByID cid=$staticpage_rss_category_id}
erstere gibt den Pfad zu der Archiv-Seite, weil ich ja als Startpage eine statische Seite verwende. das zweite gibt den category-Link für eine Kategorie-ID.

Der passende Code ist bislang wie gesagt in meiner config.php, aber beides ist essentiell für die ganze static--page/category-Verlinkung und kann deshalb nicht in einer template-Datei verbleiben.

Ich hatte nun aber keinen Erfolg, das einfach in die plugin_event-Dateien reinzuschreiben - da wurden die smarty-Definitionen einfach nicht gefunden! :-(

Deshalb sehe ich momentan keinen besseren Platz als die functions_smarty.inc-old.php - und schließlich sind diese Funktionen ja auch universeller einsetzbar.

Vielleicht hat ja noch jemand eine Idee, wie das in die Plugin-Dateien reinkann?

und hier mal zum angucken, der Code um den es geht:

Code: Select all

/**
 * Smarty Function: Returns the s9y-URL for a given category-id
 *
 * @access public
 * @data   array       Smarty parameter input array:
 *                          cid: id of the category
 * @param   object  Smarty object
 * @return string       The URL of the category - must be added to {$serendipityBaseURL} for a full URL
 */
function smarty_getCategoryLinkByID ($data, &$smarty) {

	$cat = serendipity_fetchCategoryInfo($data['cid']);
	$result=serendipity_getPermalink($cat,'category');
  return $result;
} ;

/**
 * Smarty Function: Get the URL to the archiv-path
 *
 * @access public
 * @return  string      The archive-path
 */
function getArchiveURL() {
	global $serendipity;
	$uriArguments = $serendipity['uriArguments'];
	return serendipity_rewriteURL(implode('/', $uriArguments));
};



$serendipity['smarty']->assign('serendipityArchiveURL', getArchiveURL());

$serendipity['smarty']->register_function('getCategoryLinkByID', 'smarty_getCategoryLinkByID');
Ciao, Stephan
garvinhicking
Core Developer
Posts: 30022
Joined: Tue Sep 16, 2003 9:45 pm
Location: Cologne, Germany
Contact:

Post by garvinhicking »

Hi!

In der neuen Staticpage-Plugin version werden ja bereits custom smarty functions für das darstellen von staticpages registriert. Da kannst Du doch deine Funktion recht einfach auch einbauen?

Grüße,
Garvin
# Garvin Hicking (s9y Developer)
# Did I help you? Consider making me happy: http://wishes.garv.in/
# or use my PayPal account "paypal {at} supergarv (dot) de"
# My "other" hobby: http://flickr.garv.in/
stm999999999
Regular
Posts: 1531
Joined: Tue Mar 07, 2006 11:25 pm
Location: Berlin, Germany
Contact:

Post by stm999999999 »

Schau ich mir mal an. Aber schon mal vorweg: Was ich dort definiere, das kann ich dann auch in Templates für (Category)-Archiv-Seiten benutzen? Also außerhalb der statischen Seiten!?
Ciao, Stephan
Post Reply