Content Parts paginieren

Beinhaltet ein Artikel mehrere Contentparts, können diese in einzelne Blöcke zusammengefasst werden. Dazu wird eine kleine Navigation bereitgestellt um durch diese Blöcke navigieren zu können.

Dazu wird im Artikelkopf der Schalter [x] Content Parts paginieren aktiviert.


Frontendausgabe (Darstellung mit beiden Navigationsarten)


Backend

Originalansicht: Bitte auf das Bild klicken.



Docu:
Forum: Textpagination fehlerhaft (item prefix/suffix?)

Autor: K.Heermann (flip-flop) http://planmatrix.de 2012/01/28
CMS Version: >= V1.3x
Version: V1.0
Update:

Bedingung:




Artikelvorlagen:

Welche Vorlagen ein Artikel verwendet wird im Bereich Vorlagen: bestimmt. Hier gibt es ein Feld für Artikellisting: und Artikeldetail:
Die Vorlagen für diese beiden Ausgabezustände befinden sich in den Verzeichnissen template/inc_cntpart/articlesummary/list/.. und template/inc_cntpart/articlesummary/article/..

Für das CP paginieren ist erst einmal die Vorlage für Artikeldetail: gefragt.
Ein Artikel kann mehrere unterschiedliche CPs beherbergen, deren Ausgabereihenfolge durch die CPs zueinander bestimmt wird. Durch einfaches Verschieben kann die Reihenfolge geändert werden.

Fast jeder CP hat wiederum eine eigene Vorlage in template/inc_cntpart/..

Sollten in den einzelnen Verzeichnissen keine Basisvorlagen vorhanden sein, befindet sich diese im Verzeichnis template/inc_default/.. Die hier angelegten Vorlagen können einfach in das entsprechende Verzeichnis nach template/inc_cntpart/.. kopiert werden und tauchen danach in der Vorlagenauswahlliste des Artikels bzw. CPs auf.

Vorlage "Standard":

Die wahrscheinlich meist genutzte Variante ist die Vorlagenauswahl “Standard”. In diesem Fall wird i.d.R. autom. die Vorlage aus dem Verzeichnis template/inc_default/.. verwendet.
Diese Vorlagen können angepasst werden. Allerdings ist dabei zu beachten, dass diese Vorlagen beim nächsten CMS-Update überschrieben werden können wenn systembedingt Änderungen in die Vorlage einfließen. Daher sollte von der veränderten Vorlagen im Verzeichnis template/inc_default/.. immer eine Sicherheitskopie angelegt werden. z.B. VorlagenName.tmpl_save.

Im Artikelkopf haben wir nun die Möglichkeit CPs zu paginieren ([x] Content Parts paginieren). Das ist hilfreich, wenn mehrere CPs blockweise dargestellt werden sollen.
Dazu ist in der Vorlageneinstellung Artikeldetail: “Standard” folgendes zu beachten:

Für den ersten Block wird die Vorlage template/inc_default/article_summary.tmpl verwendet, für alle weiteren Blöcke die Vorlage template/inc_default/article_summary_paginate.tmpl.
Diese beiden Vorlagen müssen also aufeinander abgestimmt werden, da sie in dem meisten Fällen identisch sind. Am einfachsten ist es, den Inhalt von article_summary.tmpl nach article_summary_paginate.tmpl zu kopieren.


Vorlagen bestimmen:

Die bessere Methode ist allerdings das Kopieren der Datei template/inc_default/article_summary.tmpl in das Verzeichnis template/inc_cntpart/articlesummary/article/..
Jetzt muss natürlich im Artikel in der Vorlageneinstellung Artikeldetail: dieses Template ausgewählt werden.

Das Verzeichnis template/inc_cntpart/articlesummary/article/paginate/.. sollte in diesem Fall keine Datei mit dem Namen article_summary.tmpl (bzw. Namensgleichheit mit dem ausgewählten Artikeltemplate) enthalten, sonst taucht der selbe Effekt auf wie vorher beschrieben. Das Template in template/inc_cntpart/articlesummary/article/paginate/.. würde für alle Blöcke nach dem ersten Block verwendet. Das ist nur für ganz spezielle Fälle sinnvoll.

Einstellungen in den CPs:

Um die CPs zu animieren sich in Blöcke aufzuteilen muss in jedem CP die entsprechende Einstellung getroffen werden. Dazu dient das Eingabefeld Abschnitt[_]. Hier wird nun die entsprechende Nummer eingetragen. Alle CPs die in einem Block stehen sollen, bekommen eine identische Nummer.
Die Nummer des Abschnitts hat mit der Nummernausgabe der NAVI im Frontend nichts zu tun. Im Frontend werden die CP-Blöcke autom. ab 1 hochgezählt. Für die Reihenfolge ist die Position der CP-Blöcke im Backend verantwortlich.

NAVI-Arten:

Dazu kann auch ein Abschnittstitel (Paginierung) verwendet werden. In diesem Fall müssen alle CPs eines Blocks identische Abschnittstitel beinhalten.
Der Abschnittstitel wird im Frontend alternativ als Navigation ausgegeben.

Man sollte sich allerdings für eine Art der Navigation entscheiden,

  • [CP_PAGINATE_PREV] - {CP_PAGINATE} - [CP_PAGINATE_NEXT]

oder

  • [CP_PAGINATE_MENU] - {CP_PAGINATE_MENU} - [/CP_PAGINATE_MENU]

Werden beide Navigationen gleichzeitig verwendet, sollte peinlichst darauf geachtet werden, dass in allen CPs auch ein Abschnittstitel eingetragen ist, der zum jeweiligen Block gehört. Ist dies nicht der Fall, gibt es Brüche in der Nummern-Navigation. Z.B. [1] [2] [4] [5] [8]

Template und CSS:

Beispielvorlage:

Datei: template/inc_cntpart/articlesummary/article/default_temp.tmpl

default_temp.tmpl

<!-- Livedate: {LIVEDATE:d.m.Y H:i:s lang=EN} / Killdate: {KILLDATE:d.m.Y H:i:s lang=EN} -->
[TITLE]<h1>{TITLE}</h1>
[/TITLE][SUB]<h2>{SUB}</h2>
[/SUB][SUMMARY][IMAGE]<span style="float:left;margin:2px 10px 5px 0;">{IMAGE}[CAPTION]<br />
{CAPTION}[COPYRIGHT] <span class="copyright">{COPYRIGHT}</span>[/COPYRIGHT][/CAPTION]</span>
[/IMAGE]{SUMMARY}[/SUMMARY]
<!--CP_PAGINATE_START//-->
<div class="cpPagination">
[CP_PAGINATE_PREV]<a href="{CP_PAGINATE_PREV}" class="cpPaginationPrev">&laquo; Previous</a>[/CP_PAGINATE_PREV]
[CP_PAGINATE]{CP_PAGINATE}[/CP_PAGINATE]
[CP_PAGINATE_NEXT]<a href="{CP_PAGINATE_NEXT}" class="cpPaginationNext">Next &raquo;</a>[/CP_PAGINATE_NEXT]
[CP_PAGINATE_MENU]
    <!-- when no item prefix/suffix/... is given the default will be used (ul/li) -->
    <!-- with parameter: [ CP_PAGINATE_MENU : item_prefix|item_suffix|active_class|hide_active ] -->
    {CP_PAGINATE_MENU}
[/CP_PAGINATE_MENU]
</div>
<!--CP_PAGINATE_END//-->
 
<!--
    Livedate: {LIVEDATE:d.m.Y H:i:s lang=EN} / Killdate: {KILLDATE:d.m.Y H:i:s lang=EN} [IMAGE]
 
    Image ID   {IMAGE_ID}
    Image Hash {IMAGE_HASH}
    cmsImage   <img src="img/cmsimage.php/100x100/{IMAGE_ID}.jpg" alt="" border="0" />
 
    Thumbnail  {THUMB_NAME}
    Relative   {THUMB_REL}
    Absolute   {THUMB_ABS}
    WxH        {THUMB_WIDTH}px x {THUMB_HEIGHT}px[ZOOMIMAGE]
 
    Zoomimage  {IMAGE_NAME}
    Relative   {IMAGE_REL}
    Absolute   {IMAGE_ABS}
    WxH        {IMAGE_WIDTH}px x {IMAGE_HEIGHT}px
    [/ZOOMIMAGE][/IMAGE]
//-->


CSS:

----

div.cpPagination {
    margin: 10px 0 10px 0;
    text-align: right;
}
a.cpPaginate, a.cpPaginateActive, a.cpPaginationPrev, a.cpPaginationNext {
    padding: 0px 3px 1px 3px;
    background-color: #FFFFFF;
    color: #BBBBBB;
    text-decoration: none;
    font-weight: bold;
    border: 1px solid #CBCBCB;
}
a.cpPaginateActive {
    background-color: #CBCBCB;
    color: #FFFFFF;
    border: 1px inset #CBCBCB;
}
 
a.cpPaginationPrev:hover, a.cpPaginationNext:hover, a.cpPaginate:hover {
    background-color: #DDDDDD;
    color: #666666;
    border: 1px inset #CBCBCB;
}
 
ul.cpmenu {
 
}
 
.cpmenu a {
    line-height:18px;
    padding-left:2px;
    padding-right:2px;
    color: blue;
    background-color: #eee;
    border: 1px solid #ccc;
}
.cpmenu a.active {
    background-color: #BFF4FF;
    border: 1px solid #ccc;
}
.cpmenu a:hover {
    text-decoration: none;
    color: red;
    background-color: #FFF04F;
    border: 1px solid #ccc;
}


deutsch/phpwcms-system/artikel/vorlagen/contentparts-paginieren.txt · Last modified: 2018/06/03 18:08 (external edit)
www.planmatrix.de www.chimeric.de Creative Commons License Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0