NAVIGATION
This shows you the differences between two versions of the page.
deutsch:ersetzer_rts:frontend_render:show_article_cp [2010/01/16 11:29] Knut Heermann (flip-flop) |
deutsch:ersetzer_rts:frontend_render:show_article_cp [2018/06/03 18:09] (current) |
||
---|---|---|---|
Line 4: | Line 4: | ||
- | Tag: **{SHOW_ARTICLE_CP} <-> {SHOW_CP}** | ||
- | |||
- | Forum: [[http://forum.phpwcms.org/viewtopic.php?f=8&t=17082|{SHOW_ARTICLE_CP} <-> {SHOW_CP}]] | ||
Gibt die CPs der Artikel die sich in der aktiven Struktur befinden an der Stelle **{SHOW_ARTICLE_CP}** im Template aus. (Nur im Artikel Listen-Modus verfügbar). | Gibt die CPs der Artikel die sich in der aktiven Struktur befinden an der Stelle **{SHOW_ARTICLE_CP}** im Template aus. (Nur im Artikel Listen-Modus verfügbar). | ||
Line 14: | Line 11: | ||
Es werden nur die CPs der Artikel in der aktuellen Ebene ausgegeben. | Es werden nur die CPs der Artikel in der aktuellen Ebene ausgegeben. | ||
+ | \\ | ||
+ | |||
+ | ---- | ||
+ | ---- | ||
+ | |||
+ | Docu: -- \\ | ||
+ | Forum: [[http://forum.phpwcms.org/viewtopic.php?f=8&t=17082|{SHOW_ARTICLE_CP} <-> {SHOW_CP}]] | ||
+ | |||
+ | |||
+ | **Autor:** K.Heermann (flip-flop) http://planmatrix.de / O.Georgi http://phpwcms.de \\ | ||
+ | **CMS Version:** >= 1.3 \\ | ||
+ | **Version:** V1.0 \\ | ||
+ | Update: V1.1: Wechseln des Sortierkriteriums //(17.01.2010)// | ||
+ | |||
+ | |||
+ | |||
+ | Tag: **{SHOW_ARTICLE_CP} <-> {SHOW_CP}** | ||
+ | |||
+ | Dateiname: **rt_show_article_cp.php** \\ | ||
+ | Verzeichnis: ** template/inc_script/frontend_render/ ** | ||
+ | |||
+ | **Bedingung:** -> [[http://www.phpwcms-docu.de/config_dateien.phtml|/config/phpwcms/conf.inc.php]] \\ | ||
+ | |||
+ | * ##$phpwcms['allow_ext_render'] = 1;## | ||
+ | |||
+ | |||
+ | ---- | ||
+ | ---- | ||
+ | |||
+ | |||
+ | |||
\\ | \\ | ||
Line 32: | Line 60: | ||
TAG: **{SHOW_ARTICLE_CP}** um den RT zu aktivieren und den Ort der Ausgabe in der Vorlage zu bestimmen. | TAG: **{SHOW_ARTICLE_CP}** um den RT zu aktivieren und den Ort der Ausgabe in der Vorlage zu bestimmen. | ||
- | TAG: **[X]{SHOW_CP}** im Kommentarfeld des anzuzeigenden CPs. Wobei **[X]** das Sortierkriterium ist, z.B. **A{SHOW_CP}** ....**B{SHOW_CP}** .... **C{SHOW_CP}** .... | + | TAG: **[X]{SHOW_CP}** im Kommentarfeld des anzuzeigenden CPs. |
+ | |||
+ | Wobei **[X]** das Sortierkriterium ist, z.B. **A{SHOW_CP}** ....**B{SHOW_CP}** .... **C{SHOW_CP}** .... | ||
+ | |||
+ | |||
+ | :!: Platziere diesen Tag als ersten Eintrag in das Kommentarfeld wenn eine korrekte Sortierung verlangt wird :!: | ||
- | <note tip> | ||
- | Platziere diesen Tag als ersten Eintrag in das Kommentarfeld wenn eine korrekte Sortierung verlangt wird ! | ||
- | </note> | ||
Und -> CP Status: [x] sichtbar (Oder ändere im Skript "acontent_visible" für die Darstellung unsichtbarer CPs). | Und -> CP Status: [x] sichtbar (Oder ändere im Skript "acontent_visible" für die Darstellung unsichtbarer CPs). | ||
Line 51: | Line 81: | ||
\\ | \\ | ||
+ | ===== Code V1.0: ===== | ||
+ | |||
+ | |||
+ | Location: **template/inc_script/frontend_render/rt_show_article_cp.php** | ||
- | Location: **/template/inc_script/frontend_render/rt_show_article_cp.php** | ||
<code php|h {SHOW_ARTICLE_CP} - {SHOW_CP} |h> | <code php|h {SHOW_ARTICLE_CP} - {SHOW_CP} |h> | ||
<?php | <?php | ||
Line 113: | Line 146: | ||
$sql .= 'AND acontent_aid IN ('.implode(',', $article).') '; | $sql .= 'AND acontent_aid IN ('.implode(',', $article).') '; | ||
$sql .= "AND acontent_comment LIKE '%{SHOW_CP}%' "; | $sql .= "AND acontent_comment LIKE '%{SHOW_CP}%' "; | ||
- | $sql .= "ORDER BY acontent_comment"; //, article_aid, acontent_sorting | + | // SORTING ORDER: sort by comment = "acontent_comment" | sort by id = "article_aid" | sort by structure = "acontent_sorting" |
+ | $sql .= "ORDER BY acontent_comment"; // acontent_comment, article_aid, acontent_sorting | ||
$result = _dbQuery($sql); | $result = _dbQuery($sql); | ||
Line 139: | Line 173: | ||
</code> | </code> | ||
- | \\ | + | ~~UP~~ |
- | ===== Wechseln des Sortierkriteriums ===== | + | ====== Update v1.1: Wechseln des Sortierkriteriums ====== |
Die Sortierung durch den Kommentar kann abgeschaltet und die Sortierung wie in der Struktur vorgegeben eingeschaltet werden: In der Datei \\ | Die Sortierung durch den Kommentar kann abgeschaltet und die Sortierung wie in der Struktur vorgegeben eingeschaltet werden: In der Datei \\ | ||
"template/inc_script/frontend_render/rt_show_article_cp.php" \\ | "template/inc_script/frontend_render/rt_show_article_cp.php" \\ | ||
- | etwa bei Zeile 60 \\ | + | etwa ab Zeile 48 \\ |
von | von | ||
- | <code php> $sql .= "ORDER BY acontent_comment"; // acontent_comment, article_aid, acontent_sorting</code> | + | <code php> |
+ | // CUSTOM INPUT ============================================== | ||
+ | // sort order: [true|false] [by comment field | by structure] | ||
+ | $sort_by_comment = true; | ||
+ | // =========================================================== | ||
+ | </code> | ||
nach | nach | ||
- | <code php> $sql .= "ORDER BY acontent_sorting"; // acontent_comment, article_aid, acontent_sorting</code> | + | <code php> |
- | geändert wird. | + | // CUSTOM INPUT ============================================== |
+ | // sort order: [true|false] [by comment field | by structure] | ||
+ | $sort_by_comment = false; | ||
+ | // =========================================================== | ||
+ | </code> | ||
+ | geändert wird. | ||
+ | |||
+ | \\ | ||
+ | |||
+ | ===== Code V1.1 ===== | ||
+ | |||
+ | Location: **template/inc_script/frontend_render/rt_show_article_cp.php** | ||
+ | |||
+ | <code php|h rt_show_article_cp.php |h> | ||
+ | <?php | ||
+ | // ************************************************************************** | ||
+ | // 24.04.08 Show CP from an article in list mode (V 1.0) | ||
+ | // 17.01.10 Show CP from an article in list mode (V 1.1) | ||
+ | // Knut Heermann (flip-flop) http://planmatrix.de | ||
+ | // 25.04.08 Edit by Oliver Georgi | ||
+ | // 26.04.08 KH: Output in only active site level doesn´t run | ||
+ | // 26.04.08 OG: Optimized source and add manual sorting e.g. | ||
+ | // A{SHOW_CP} B{SHOW_CP} C{SHOW_CP} .... | ||
+ | // 17.01.09 KH: Sort order switch $sort_by_comment | ||
+ | // sort order: [true|false] [by comment field | by structure] | ||
+ | // | ||
+ | // http://forum.phpwcms.org/viewtopic.php?p=102704#p102704 | ||
+ | // http://forum.phpwcms.org/viewtopic.php?p=102798#p102798 | ||
+ | // | ||
+ | // TAG: {SHOW_ARTICLE_CP} for activating in your template | ||
+ | // TAG: [X]{SHOW_CP} in the comment field of the displayed CP | ||
+ | // Where [X] is the sort criterion e.g. A{SHOW_CP} B{SHOW_CP} .... | ||
+ | // Places this tag first in comment field!!! | ||
+ | // | ||
+ | // Condition: CP status: [x] visible (Or change "acontent_visible") | ||
+ | // Location: Put it into the file e.g.: | ||
+ | // /template/inc_script/frontend_render/rt_show_article_cp.php | ||
+ | // Switch in conf.inc.php: $phpwcms['allow_ext_render'] = 1; | ||
+ | // ************************************************************************** | ||
+ | // ---------------------------------------------------------------- | ||
+ | // obligate check for phpwcms constants | ||
+ | if (!defined('PHPWCMS_ROOT')) { | ||
+ | die("You Cannot Access This Script Directly, Have a Nice Day."); | ||
+ | } | ||
+ | // ---------------------------------------------------------------- | ||
+ | |||
+ | // Nur ausfuehren wenn der Listenmodus eingeschaltet ist | ||
+ | // Only run if list mode is true | ||
+ | if( $content['list_mode'] == true && strpos($content["all"], '{SHOW_ARTICLE_CP}') !== false ) { | ||
+ | |||
+ | $content["all"] = str_replace('{SHOW_ARTICLE_CP}','<div class="show_article_cp">'.my_article_count_cp().'</div>', $content["all"]); | ||
+ | |||
+ | } else { | ||
+ | |||
+ | $content["all"] = str_replace('{SHOW_ARTICLE_CP}', '', $content["all"]); | ||
+ | |||
+ | } | ||
+ | |||
+ | function my_article_count_cp() { | ||
+ | |||
+ | |||
+ | // CUSTOM INPUT ============================================== | ||
+ | // sort order: [true|false] [by comment field | by structure] | ||
+ | $sort_by_comment = true; | ||
+ | // =========================================================== | ||
+ | |||
+ | |||
+ | // Artikel der aktuellen Seitenebene holen | ||
+ | // get current listed article IDs | ||
+ | $article = array(); | ||
+ | foreach($GLOBALS['content']['articles'] as $value) { | ||
+ | // $article[$value['article_sort']] = $value['article_id']; | ||
+ | $article[] = $value['article_id']; | ||
+ | } | ||
+ | |||
+ | |||
+ | if(count($article)) { | ||
+ | |||
+ | // Artikel in der DB suchen und CP-ID bereitstellen | ||
+ | // Search for the article and make the CP-ID available | ||
+ | $sql = "SELECT acontent_id, acontent_aid "; | ||
+ | $sql .= "FROM ".DB_PREPEND."phpwcms_articlecontent "; | ||
+ | $sql .= "WHERE acontent_visible=1 AND acontent_trash=0 "; | ||
+ | $sql .= 'AND acontent_aid IN ('.implode(',', $article).') '; | ||
+ | $sql .= "AND acontent_comment LIKE '%{SHOW_CP}%' "; | ||
+ | // SORTING ORDER: sort by comment = "acontent_comment" | sort by id = "article_aid" | sort by structure = "acontent_sorting" | ||
+ | $sql .= ($sort_by_comment) | ||
+ | ? "ORDER BY acontent_comment" | ||
+ | : "ORDER BY acontent_sorting"; //,acontent_comment, article_aid, acontent_sorting | ||
+ | |||
+ | $result = _dbQuery($sql); | ||
+ | |||
+ | if(isset($result[0]['acontent_id'])) { // Any result available? | ||
+ | |||
+ | // CP-ID String fuer SHOW_CONTENT bereitstellen | ||
+ | // Create CP-IDs string for SHOW_CONTENT | ||
+ | $cp_my_id_str = ''; | ||
+ | |||
+ | if ($sort_by_comment) { // sort by comment? | ||
+ | |||
+ | foreach($result as $value) { | ||
+ | $cp_my_id_str .= ','.$value['acontent_id']; | ||
+ | } | ||
+ | |||
+ | } | ||
+ | else { // sort by structure | ||
+ | |||
+ | foreach($article as $value1) { // The article sort order by structure | ||
+ | |||
+ | foreach($result as $value2) { // CP sort order by structure | ||
+ | |||
+ | if ($value2['acontent_aid'] == $value1) // CP in article? | ||
+ | |||
+ | $cp_my_id_str .= ','.$value2['acontent_id']; | ||
+ | } | ||
+ | |||
+ | } | ||
+ | |||
+ | } | ||
+ | |||
+ | |||
+ | // Ausgabe der betroffenen CPs mit SHOW_CONTENT | ||
+ | // Make the encountered CPs available with SHOW_CONTENT | ||
+ | return showSelectedContent('CP'.$cp_my_id_str); | ||
+ | } | ||
+ | } | ||
+ | return ''; | ||
+ | } | ||
+ | |||
+ | ?> | ||
+ | </code> | ||
+ | |||
+ | ~~UP~~ | ||
+ | \\ | ||
+ | |||
+ | ===== Für Programmierer: ===== | ||
+ | |||
+ | |||
+ | |||
+ | **Die Basisroutine um die IDs aller Artikel einer Kategorie zu bestimmen:** | ||
+ | <code php> | ||
+ | $article = array(); | ||
+ | |||
+ | foreach($GLOBALS['content']['articles'] as $value) { | ||
+ | $article[] = $value['article_id']; | ||
+ | } | ||
+ | |||
+ | if(count($article)) { | ||
+ | ........ | ||
+ | |||
+ | </code> | ||
+ | \\ | ||
+ | |||
+ | **Die ID des aktuellen Artikels:** | ||
+ | <code php> | ||
+ | $GLOBALS['aktion'][1]; | ||
+ | </code> | ||
+ | \\ | ||
+ | Wenn die IDs der CPs eines Artikels verlangt werden, müssen diese aus der DB ausgelesen werden. CP-IDs werden nicht in der übergeordneten Hierarchie, in diesem Fall den Artikeln, festgehalten. \\ | ||
+ | Die Routine dazu ist im RT abgebildet. | ||
+ | |||
+ | Interessant hierzu ist der eingebaute TAG {SHOW_CONTENT:....} bzw. die Funktion | ||
+ | <code php>function showSelectedContent($param='') { ...</code> | ||
+ | in %%''/include/inc_front/ext.func.inc.php''%%. | ||