Systemvariablen

index.php?id=0,0,0,0,0,0

Systeminterne Linkdarstellung von Kategorie, Artikel, Print.
Diese Darstellung kann aktiv eingesetzt werden als Link oder als Abfrage des Iststatus dienen.

0 = structure ID
1 = article ID
2 = z.B. wenn 1 dann Print
3 = wenn 1 dann zeig(e/t) Kategorie
4 = wenn 1 dann Modus Artikel-Detail
5 = freie Nutzung

Bereitgestellt in: /include/inc_front/content.func.inc.php

$aktion = array(0,0,0,0,1,0);
$aktion = explode(',', $_GET["id"], 6);
$aktion[0] = intval($aktion[0]); //$aktion[0] will be always available  //  structure ID
$aktion[1] = isset($aktion[1]) ? intval($aktion[1]) : 0;                //  article ID
$aktion[2] = isset($aktion[2]) ? intval($aktion[2]) : 0;                //  z.B. wenn 1 dann Print
$aktion[3] = isset($aktion[3]) ? intval($aktion[3]) : 1;                //  wenn 1 dann zeige cat
$aktion[4] = isset($aktion[4]) ? intval($aktion[4]) : 0;                //  Modus article detail (1) sonst article list (0)
$aktion[5] = isset($aktion[5]) ? intval($aktion[5]) : 0;                //  freie Nutzung

Zugriff mit $GLOBALS['aktion']


Beispiele:

Die Kategorie ID:

echo 'Cat-ID: '.$GLOBALS['aktion']['0'];


Die Artikel ID (Ausgabe nur im Artikeldetail):

echo 'Article-ID: '.$GLOBALS['aktion']['1'];


Befinden wir uns in der Kategorieansicht? [1=Ja|0=Nein]

echo 'CatShow: '.$GLOBALS['aktion']['3'];


Befinden wir uns im Artikeldetail? [1=Ja|0=Nein]:

echo 'Detail: '.$GLOBALS['aktion']['4'];


Annahme: Eine Kategorie (ID=7) arbeitet im einfachen Artikelmodus (ID=26) (Anzahl an Top-Artikeln: -1, oder wenn Anzahl an Top-Artikeln: > 1 und Artikelanzahl = 1)

    [0] => 7   // Kategorie-ID
    [1] => 26  // Artikel-ID
    [2] => 0
    [3] => 1   // Kategorieansicht
    [4] => 1   // Artikel-Detailansicht
    [5] => 0

Als Link: index.php?id=7,26,0,1,1,0 oder der direkte Artikellink: index.php?aid=26


Annahme: Eine Kategorie (ID=2) arbeitet im Artikellistenmodus (ID=26,6,5,3) (Anzahl an Top-Artikeln: > 1, Artikelanzahl > 1)

    [0] => 2   // Kategorie-ID
    [1] => 0
    [2] => 0
    [3] => 1   // Kategorieansicht
    [4] => 0
    [5] => 0

Als Link: index.php?id=2,0,0,1,0,0

  • In der Artikel-Detailansicht z.B. im Artikel mit der ID=6:
        [0] => 2   // Kategorie-ID
        [1] => 6   // Artikel-ID
        [2] => 0
        [3] => 0
        [4] => 1   // Artikel-Detailansicht
        [5] => 0

    Als Link: index.php?id=2,6,0,0,1,0 oder der direkte Artikellink: index.php?aid=6





Artikeldaten (Datum):

Alle Datumsangaben in einem Artikel direkt aus den Variablen generiert:

Im Template für den Artikel-Detailmodus:

[PHP]
$aid=$GLOBALS['aktion'][1];
echo 'Artikel-ID: '.$aid.'[BR]';
echo 'Erstellt am: '     .date('d.m.Y H:i:s',$GLOBALS['content']["articles"][$aid]['article_created']) .'[BR]';
echo 'Geändert am: '.date('d.m.Y H:i:s',$GLOBALS['content']["articles"][$aid]['article_date'])    .'[BR]';
echo 'Anzeigen von: '    .date('d.m.Y H:i:s',$GLOBALS['content']["articles"][$aid]['article_livedate']).'[BR]';
echo 'Anzeigen bis: '    .date('d.m.Y H:i:s',$GLOBALS['content']["articles"][$aid]['article_killdate']).'[BR]';
[/PHP]


Im Template für den Artikel-Listenmodus:

[PHP]
$aid={ARTICLEID}; 
echo 'Artikel-ID: '.$aid.'[BR]';
echo 'Erstellt am: '     .date('d.m.Y H:i:s',$GLOBALS['content']["articles"][$aid]['article_created']) .'[BR]';
echo 'Geändert am: '.date('d.m.Y H:i:s',$GLOBALS['content']["articles"][$aid]['article_date'])    .'[BR]';
echo 'Anzeigen von: '    .date('d.m.Y H:i:s',$GLOBALS['content']["articles"][$aid]['article_livedate']).'[BR]';
echo 'Anzeigen bis: '    .date('d.m.Y H:i:s',$GLOBALS['content']["articles"][$aid]['article_killdate']).'[BR]';
[/PHP]


Var Dump (dumpVar)

Die wichtigsten internen Variablen:

Bedingung: $phpwcms['allow_cntPHP_rt'] = 1; //allow PHP replacement tags and includes in content parts


<!-- Var Dump =================== //-->
 
[PHP]
echo '<pre>LEVEL ID</pre>';
dumpVar($GLOBALS['LEVEL_ID']);
echo '<pre>LEVEL KEY</pre>';
dumpVar($GLOBALS['LEVEL_KEY']);
echo '<pre>LEVEL STRUCT</pre>';
dumpVar($GLOBALS['LEVEL_STRUCT']);
 
echo '====================== <br /> ';
 
dumpVar($GLOBALS['content']["articles"]); // Artikel-Struktur
dumpVar($GLOBALS['content']["struct"]);   // Ebenen-Struktur
 
// article list mode: Wenn mwhr als ein Artikel verfuegbar und in der Seitenstruktur -> Kategorie -> Anzahl an Top-Artikeln: > 1
dumpVar($GLOBALS['content']["list_mode"]);   // (true|false)
 
// Anzahl an Top-Artikeln fuer den Artikellistenmodus in der Seitenstruktur -> Kategorie -> Anzahl an Top-Artikeln:
dumpVar($GLOBALS['content']['struct'][$content['cat_id']]['acat_topcount']; // (Zaehler)
 
// Artikeltitel des aktuellen Artikels (Detailmodus)
dumpVar($GLOBALS['content']['article_title']);
 
// Artikel-UnterTitel des aktuellen Artikels (Detailmodus)
dumpVar($GLOBALS['content']['articles'][$GLOBALS['content']['article_id']]['article_subtitle']);
 
[/PHP]
 
<!-- ====================== //-->


Ausgabemöglichkeiten mit der Funktion dumpVar($var); Bsp.:

$_test = array ('22','phpwcms','37');

dumpVar($_test);

Array
(
    [0] => 22
    [1] => phpwcms
    [2] => 37
 
)

HTML Code:

<pre>Array
(
    [0] =&gt; 22
    [1] =&gt; 23
    [2] =&gt; 37
    [3] =&gt; 39
    [4] =&gt; 38
    [5] =&gt; 41
)
</pre>


dumpVar($_test,1);

<!--
Array
(
    [0] => 22
    [1] => phpwcms
    [2] => 37

)
//-->


$_my_dump = dumpVar($_test,2);

Zuweisung der Ausgabe wie dumpVar($_test); an eine Variable.





Artikel-Keyword auslesen

Die Variable $content['all_keywords'] oder $GLOBALS['content']['all_keywords'] wenn in Funktionen verwendet, liefert die Keywords vom gerade anzuzeigenden Artikel.

Bsp.: Die Keywords in ein Array schreiben:

$keywords_array = convertStringToArray($GLOBALS['content']['all_keywords']);


Bsp.: Forum Css eines Artikels ändern

Eine spezielle CSS Formatierung für einen Artikel:

Frage:

“Wenn ich für einen einzigen Artikel ein spezielles css angeben möchte, wo mache ich das? > Zur Erklärung, ich möchte einzelne Artikel mit einem dunklen statt einem hellen Seitenhintergrund haben.”
Antwort:

“Ich würde mit einem speziellen Keyword arbeiten und mittels Frontend Render dann entsprechend darauf reagieren. Keyword “*CSS-dark*” beim Artikel ins entsprechende Feld setzen. Beim Rendering wird darauf geprüft und <body> Tag erhält die entsprechende Klasse. Das kann dann normaler per CSS definiert werden.”

frontend_init

if(strpos($content['all_keywords'], '*CSS-dark*')!== false) {
   $template_default['body']['class'] = 'dark level-';
   $content['all_keywords'] = str_replace('*CSS-dark*', '', $content['all_keywords']);
}
?>

CSS:

body.dark {
  background-color: #666666;
}

Achtung - die Klasse(n) “dark level-” wurde bewußt so gewählt, da immer noch zusätzlich die Level ID mitgegeben wird.




Der neue Tag {LEVELX_ID}

Update 25.06.2009: Revision: r317

Es kann nun direkt die aktuelle Kategorie-ID bezogen auf das Level ausgelesen werden.

test snippet Level-Ids

<div style="font-size:10px;"><br>
 
<b>Old Level-Ids:</b><br>
---------------------------<br>
[PHP] // Old Level-Ids
echo ( (isset($GLOBALS['LEVEL_ID'][1])) ? ( 'Level 1 ID='. $GLOBALS['LEVEL_ID'][1]) :  'no level 1' ) . '<br \/>';
echo ( (isset($GLOBALS['LEVEL_ID'][2])) ? ( 'Level 2 ID='. $GLOBALS['LEVEL_ID'][2]) :  'no level 2' ) . '<br \/>';
echo ( (isset($GLOBALS['LEVEL_ID'][3])) ? ( 'Level 3 ID='. $GLOBALS['LEVEL_ID'][3]) :  'no level 3' ) . '<br \/>';
echo ( (isset($GLOBALS['LEVEL_ID'][4])) ? ( 'Level 4 ID='. $GLOBALS['LEVEL_ID'][4]) :  'no level 4' ) . '<br \/>';
[/PHP]
 
<br>
<b>New Level-Ids (since r317):</b><br>
---------------------------<br>
{LEVEL1_ID:} {LEVEL1_ID} <br>
{LEVEL2_ID:} {LEVEL2_ID} <br>
{LEVEL3_ID:} {LEVEL3_ID} <br>
{LEVEL4_ID:} {LEVEL4_ID} <br>
---------------------------<br>
 
<!-- =================== //-->
</div> <!-- end font-size //-->


FE Ausgabe {LEVCATID}

Aktuelle Nr. der Ebene / Aktueller Kategorie-Alias / Aktuelle Kategorie-ID

Autor: K.Heermann (flip-flop) http://planmatrix.de 2009/05/14
CMS-Version: >= V1.2.7
Tag: {LEVCATID}
Datei: template/inc_script/frontend_render/rt_levcatid.php
Bedingung:/config/phpwcms/conf.inc.php

  • $phpwcms['allow_ext_render'] = 1;

rt_levcatid.php

<?php
 
// ----------------------------------------------------------------
// OBLIGATE CHECK FOR PHPWCMS CONSTANTS
if (!defined('PHPWCMS_ROOT')) {die("You Cannot Access This Script Directly, Have a Nice Day.");}
// ----------------------------------------------------------------
 
// FE Ausgabe {LEVCATID}: Aktuelle Nr. der Ebene / Aktueller Kategorie-Alias / Aktuelle Kategorie-ID
 
function LEV_CAT_ID () {
 
  $level = 0;
  for ($i = 0; $i <= $level; $i++) {  // Wieviele Level sind vorhanden?
    isset($GLOBALS['LEVEL_ID'][$i]) ? $level++ : $level--;
  }
 
  // Aktuellen Kategorie-alias und ID auslesen
  $cat_alias = $GLOBALS['content']["struct"][$GLOBALS['content']["cat_id"]]["acat_alias"];
  $cat_id =    $GLOBALS['content']['cat_id'];
 
// ======= Ende Testsektion
 
return '[LEVEL='.$level.' | CAT='.$cat_alias.' | ID='.$cat_id.']'.LF;
}
 
 
$content['all'] = str_replace('{LEVCATID}',
'<span style="color:green; font-size:10px; font-weight:bold;">'.LEV_CAT_ID().'</span>',
$content['all']);
 
?>



Siehe zu Variablen auch Standard Tags zusammengefasst


GET Variable setzen und auslesen

Beispiel: Die Variable wird “cpimage” genannt und beinhaltet einen Integer-Wert.

Vorbereiten der Adresse:

    $site         = $GLOBALS['phpwcms']['site'].$GLOBALS['phpwcms']['root'];
    $cat_alias    = $GLOBALS['content']["struct"][$GLOBALS['content']["cat_id"]]["acat_alias"];
    $href_str    = $site.'index.php?'.$cat_alias;
    $get_str    = 'cpimage=';


Variable setzen:

z.B. http://my_site.tld/index.php?active_category&cpimage=34

$my_number = 34;
 
$my_complete_link = $href_str.'&'.$get_str.$my_number; // http://my_site.tld/index.php?active_category&cpimage=34


Variable auslesen:

// Is there a GET var?
if (isset($GLOBALS['_getVar']['cpimage'])) {
 
    $GLOBALS['_getVar']['cpimage'] = intval($GLOBALS['_getVar']['cpimage']);  // Convert to integer
    $cpImgNr = $GLOBALS['_getVar']['cpimage'];
}
else    $cpImgNr = false;  // if there is no GET var set it to false

Der Integerwert in $cpImgNr kann nun verarbeitet werden, bzw. sollte vorher auf “false” geprüft werden.


Als Tag:

    {PHPVAR:$GLOBALS['_getVar']['cpimage']}


News CP in der Detailansicht

Prüfen, ob sich ein News CP in der Detailansicht befindet:

    if(isset($_getVar['newsdetail'])) { .....


deutsch/technik/systemvariablen.txt · 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