NAVIGATION
This shows you the differences between two versions of the page.
|
deutsch:ersetzer_rts:frontend_render:show_article_cp [2009/04/25 08:05] 127.0.0.1 external edit |
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 an der Stelle **{SHOW_ARTICLE_CP}** in der aktiven Struktur aus. Die Ausgabe der Artikel befindet sich im Listen-Modus. | + | |
| Wenn ein CP ausgegeben werden soll wird der Tag **{SHOW_CP}** in das CP Kommentarfeld eingefügt. | Wenn ein CP ausgegeben werden soll wird der Tag **{SHOW_CP}** in das CP Kommentarfeld eingefügt. | ||
| 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 | + | 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}** .... | Wobei **[X]** das Sortierkriterium ist, z.B. **A{SHOW_CP}** ....**B{SHOW_CP}** .... **C{SHOW_CP}** .... | ||
| - | <note tip> | ||
| - | Platziere diesen Tag als ersten Eintrag in das Kommentarfeld wenn eine korrekte Sortierung verlangt wird ! | ||
| - | </not> | ||
| - | Und -> CP Status: [x] sichtbar (Oder ändere im Skript "acontent_visible"). | + | :!: Platziere diesen Tag als ersten Eintrag in das Kommentarfeld wenn eine korrekte Sortierung verlangt wird :!: |
| + | |||
| + | |||
| + | Und -> CP Status: [x] sichtbar (Oder ändere im Skript "acontent_visible" für die Darstellung unsichtbarer CPs). | ||
| Line 53: | 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 115: | 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 140: | Line 172: | ||
| ?> | ?> | ||
| </code> | </code> | ||
| + | |||
| + | ~~UP~~ | ||
| + | |||
| + | ====== 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 \\ | ||
| + | "template/inc_script/frontend_render/rt_show_article_cp.php" \\ | ||
| + | etwa ab Zeile 48 \\ | ||
| + | von | ||
| + | <code php> | ||
| + | // CUSTOM INPUT ============================================== | ||
| + | // sort order: [true|false] [by comment field | by structure] | ||
| + | $sort_by_comment = true; | ||
| + | // =========================================================== | ||
| + | </code> | ||
| + | nach | ||
| + | <code php> | ||
| + | // 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''%%. | ||
| + | |||