NAVIGATION
This shows you the differences between two versions of the page.
|
english:phpwcms_replacer_rts:frontend_render:show_article_cp [2010/01/16 11:21] Knut Heermann (flip-flop) |
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 131: | Line 159: | ||
| </code> | </code> | ||
| - | \\ | + | ~~UP~~ |
| - | ===== Changing the sorting criterion ===== | + | |
| - | You can turn off the sort order by the comment, and turn on sorting as defined in the structural by changing in \\ | + | ====== 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" \\ | "template/inc_script/frontend_render/rt_show_article_cp.php" \\ | ||
| - | around line 60 \\ | + | around line 48 \\ |
| from | from | ||
| - | <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> | ||
| to | to | ||
| - | <code php> $sql .= "ORDER BY acontent_sorting"; // acontent_comment, article_aid, acontent_sorting</code> | + | <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''%%. | ||