Differences

This shows you the differences between two versions of the page.

english:phpwcms_replacer_rts:frontend_render:show_article_cp [2009/04/25 08:06]
127.0.0.1 external edit
english:phpwcms_replacer_rts:frontend_render:show_article_cp [2018/06/03 18:09] (current)
Line 1: Line 1:
{{indexmenu_n>500}} {{indexmenu_n>500}}
 +
===== SHOW_ARTICLE_CP ===== ===== SHOW_ARTICLE_CP =====
Line 5: Line 6:
Tag: **{SHOW_ARTICLE_CP} <-> {SHOW_CP}** Tag: **{SHOW_ARTICLE_CP} <-> {SHOW_CP}**
-Forum: [[http://forum.phpwcms.org/viewtopic.php?f=8&t=17082|{SHOW_ARTICLE_CP} <-> {SHOW_CP}]] 
-Display CPs from articles in listing-mode at the place {SHOW_ARTICLE_CP} in your active structure. +DisplayS CPs OF articles in listing-mode where you are placing {SHOW_ARTICLE_CP} in your active structure. 
-If you want to show a CP you only must write {SHOW_CP} in the CP comment field.+If you want to show a CP you only have to place {SHOW_CP} into the CP comment field.
A wrapper //**<div class="show_article_cp">**OUTPUT**</div>**// is added for a better non text output. \\ A wrapper //**<div class="show_article_cp">**OUTPUT**</div>**// is added for a better non text output. \\
-Please create the //class **.show_article_cp**// in your favor css file if you want.\\  +Please do create the //class **.show_article_cp**// in your favorite css file if you want.\\  
-If the tag has no output (e.g. in an other structure level) so we haven´t any crappy formatting splits.+In case the tag has no output (e.g. in another structure level) we will not produce any crappy formatting splits this way.
Line 27: Line 27:
</code> </code>
-TAG: **{SHOW_ARTICLE_CP}** for activating/placing this rt in your template+TAG: **{SHOW_ARTICLE_CP}** for activating/placing this RT within your template
TAG: **[X]{SHOW_CP}** in the comment field of the displayed CP TAG: **[X]{SHOW_CP}** in the comment field of the displayed CP
Line 33: Line 33:
Where **[X]** is the sort criterion e.g. **A{SHOW_CP} .... B{SHOW_CP} .... C{SHOW_CP} ....** Where **[X]** is the sort criterion e.g. **A{SHOW_CP} .... B{SHOW_CP} .... C{SHOW_CP} ....**
-Place this tag first in comment field for correctly sorting (If you need)!!!+:!: Place this tag at first in comment field for correct sorting (If you need) :!:
And -> CP status: [x] visible (Or change "acontent_visible" in script). And -> CP status: [x] visible (Or change "acontent_visible" in script).
 +
 +\\
---- ----
---- ----
 +
 +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: Changing the sorting criterion //(17.01.2010)//
 +
 + 
 +
 +Tag: **{SHOW_ARTICLE_CP} <-> {SHOW_CP}**
 +
 +Filename: **rt_show_article_cp.php** \\
 +Filder:  ** template/inc_script/frontend_render/ **
 +
 +**Condition:**  -> [[http://www.phpwcms-docu.de/conf_inc_php_en.phtml|/config/phpwcms/conf.inc.php]] \\
 +  * $phpwcms['allow_ext_render']  = 1;
 +
 +
 +----
 +----
 +
\\ \\
 +===== 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 104: Line 132:
      $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 129: Line 158:
?> ?>
</code> </code>
 +
 +~~UP~~
 +
 +====== Update v1.1: Changing the sorting criterion ======
 +
 +You can turn off the sort order via the comment, and turn on sorting as defined in the structure by changing in  \\
 +"template/inc_script/frontend_render/rt_show_article_cp.php" \\
 +around line 48 \\
 +from
 +<code php>
 +// CUSTOM INPUT ==============================================
 +// sort order: [true|false] [by comment field | by structure]
 +  $sort_by_comment = true;
 +// ===========================================================
 +</code>
 +to
 +<code php>
 +// CUSTOM INPUT ==============================================
 +// sort order: [true|false] [by comment field | by structure]
 +  $sort_by_comment = false;
 +// ===========================================================
 +</code>
 +
 +
 +\\
 +
 +==== 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~~
 +\\
 +
 +===== For programmers: =====
 + 
 +
 +<note tip>
 + 
 +**The basic routine to determine the IDs of all items in a category:**
 +<code php>
 +   $article = array();
 +  
 +   foreach($GLOBALS['content']['articles'] as $value) {
 +      $article[] = $value['article_id'];
 +   }
 +
 +   if(count($article)) {
 +      ........
 +
 +</code>
 +\\
 +
 +**The ID of the current article:**
 +<code php>
 +$GLOBALS['aktion'][1];
 +</code>
 +\\
 +If the IDs of the CPs of an article are required, they must be read from the DB. CP-IDs are not held in the parent hierarchy, in this case the articles. \\
 +The routine for this is shown in the RT.
 +
 +Interesting for this is the inserted tag {SHOW_CONTENT:....} and/or the function
 +<code php>function showSelectedContent($param='') { ...</code>
 +in %%''/include/inc_front/ext.func.inc.php''%%.
 +
english/phpwcms_replacer_rts/frontend_render/show_article_cp.1240639570.txt.gz · 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