Differences

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''%%. 
deutsch/ersetzer_rts/frontend_render/show_article_cp.1263637797.txt.gz · Last modified: 2018/06/03 18:07 (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