Page 1 of 1

string aus $template_option ausgeben

Posted: Wed Apr 15, 2009 2:41 pm
by reinhardl
Hallo, ich möchte im Template einen String aus einem Array ausgeben, welches in der

config.inc.php definiert ist.
__________________

$template_config = array(
array(
'var' => 'tabx1',
'name' => MIMBO_TAB_X1,
'type' => 'select',
'default' => '',
'select_values' => $catsel,
),


--------------------------

Wie kann ich im template jetzt den gewählten String (in diesem Fall die Kategorie) aus dem array auslesen?
{$template_option.tabx2} gibt mir nur eine Zahl bzw. den index, ich benötige aber den ausgewählten Text.

Jemand eine Idee?
Danke!

Re: string aus $template_option ausgeben

Posted: Wed Apr 15, 2009 3:17 pm
by garvinhicking
Hi!

Die Values stehen ja in $catsel, d.h. Du müsstest erstmal dieses Array an Smarty durchreichen um überhaupt darauf zugreifen zu können. Verschachtelte Arrays in Smarty sind etwas tricky, d.h. am sinnvollsten solltest Du direkt in der config.inc.php so etwas wie folgendes machen:

Code: Select all

$serendipity['smarty']->assign('tabx1_cat', $catsel[$template_loaded_config['tabx1']]);
Das setzt voraus, dass tabx2 auch den Index enthält, der in $catsel verwendet wird. Wie wird dein $catsel belegt, konkret?

Wenn Du das dann an Smarty reichst könntest Du vermutlich auf $tabx1_cat.category_name oder $tabx1_cat.categoryid zugreifen (also wenn $catsel auch die Datenbankspaltennamen der KAtegorietabelle enthalten, was ich mal vermute).

Grüße,
Garvin

Re: string aus $template_option ausgeben

Posted: Wed Apr 15, 2009 4:54 pm
by reinhardl
garvinhicking wrote:

Code: Select all

$serendipity['smarty']->assign('tabx1_cat', $catsel[$template_loaded_config['tabx1']]);
Das setzt voraus, dass tabx2 auch den Index enthält, der in $catsel verwendet wird. Wie wird dein $catsel belegt, konkret?

Wenn Du das dann an Smarty reichst könntest Du vermutlich auf $tabx1_cat.category_name oder $tabx1_cat.categoryid zugreifen (also wenn $catsel auch die Datenbankspaltennamen der KAtegorietabelle enthalten, was ich mal vermute).

hm.. klappt irgendwie noch nicht. $catsel sieht so aus:


$all_cats = serendipity_fetchCategories('all');
$categories = serendipity_walkRecursive($categories, 'categoryid', 'parentid', VIEWMODE_THREADED);
$catsel = array();
foreach($all_cats AS $cat) {
$catsel[$cat['categoryid']] = str_repeat(' ', $cat['depth']) . $cat['category_name'];
}

Re: string aus $template_option ausgeben

Posted: Thu Apr 16, 2009 11:00 am
by garvinhicking
Hi!

Und wie hast Du es jetzt eingebaut? Bitte mal die ganze config.inc.php zeigen.

Grüße,
Garvin

Re: string aus $template_option ausgeben

Posted: Thu Apr 16, 2009 4:18 pm
by reinhardl
Hallo Garvin,
hier der Code-Ausschnitt für die index.tpl und der Code für die Config (die ganzen Navigationsleisten habe ich herausgenommen)

Code: Select all

{$tabx1_cat.category_name}   
{$tabx1_cat.categoryid}
obiger code ergibt interessanterweise jeweils den Anfangsbuchstaben der Kategorie.

Code: Select all

<?php
if (IN_serendipity !== true) {
  die ("Don't hack!");
}

$probelang = dirname(__FILE__) . '/' . $serendipity['charset'] . 'lang_' . $serendipity['lang'] . '.inc.php';

if (file_exists($probelang)) {
    include $probelang;
}

include dirname(__FILE__) . '/lang_en.inc.php';

$serendipity['smarty']->assign(array('currpage'=> "http://".$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI']));


$istok= " <img src='" . serendipity_getTemplateFile('img/ok.gif'). "' alt='' /> ";
$notok= " <img src='" . serendipity_getTemplateFile('img/fehler.gif'). "' alt='' /> ";

$sbmtarget= array ("self Window","new Window", "new Window with nofollow");
$menuepsition= array("side-bar-top","side-bar-bottom", "feature-bar-top",  "feature-bar-bottom","news-bar-top","news-bar-bottom","news-bar-middle","disable");
$installation = 'Template Check:<br>';

if (class_exists('serendipity_event_freetag'))  {
   $inst_ok=$istok.' <span>OK:serendipity_event_freetag Plugin </span> <br>';
   } else {
   $inst_ok=$notok.' <span>MISSING: serendipity_event_freetag Plugin </span> <br>';
}
if (class_exists('serendipity_event_entryproperties'))  {
   $inst_ok=$inst_ok.$istok.' <span>OK:serendipity_event_entryproperties Plugin ';

   $check = serendipity_db_query("SELECT * FROM {$serendipity['dbPrefix']}config WHERE name LIKE '%serendipity_event_entryproperties:%/customfields' AND value LIKE '%MimboImage%'");
   if (is_array($check) && isset($check[0]['config'])) {
     $inst_ok=$inst_ok.  "Customfield Mimbo exists</span> <br>";
   } else {
    $inst_ok=$inst_ok.  " Customfield?</span> <br>";
   }

   } else {
   $inst_ok=$inst_ok.$notok.' <span>MISSING: serendipity_event_entryproperties Plugin </span> <br>';
}

if (class_exists('serendipity_event_staticpage'))  {
   $inst_ok=$inst_ok.$istok.' <span>OK:serendipity_plugin_staticpage Plugin </span> <br>';
   } else {
   $inst_ok=$inst_ok.$notok.' <span>MISSING: serendipity_plugin_staticpage Plugin </span> <br>';
}





if ($serendipity['GET']['adminModule'] == 'templates') {
  $all_cats = serendipity_fetchCategories('all');
  $categories = serendipity_walkRecursive($categories, 'categoryid', 'parentid', VIEWMODE_THREADED);
  $catsel = array();
  foreach($all_cats AS $cat) {
                               $catsel[$cat['categoryid']] = str_repeat(' ', $cat['depth']) . $cat['category_name'];

  							}
}



$template_config = array(
    array(
		'var' 			=> 'sidebars',
		'name' 			=> SIDEBAR_TITLE,
		'type' 			=> 'string',
		'default'		=> 'left,hide,right,top'
	),
    array(
        'var'          => 'installation_ok',
        'type'         => 'content',
        'default'      => "$inst_ok",
    ),
    array(
       'var'           => 'infoxxx1',
       'name'          => 'infoxxx1',
       'type'          => 'custom',
       'custom'        => MIMBO_INSTR,
    ),
    array(
       'var'           => 'magazinemode',
       'name'          => MAGAZINE_MODE,
       'type'          => 'boolean',
       'default'       => 'true'
    ),
    array(
       'var'           => 'enablehmenue',
       'name'          => ENABLECAT_HMENUE,
       'type'          => 'boolean',
       'default'       => 'true'
    ),
    array(
       'var'           => 'infoxtab',
       'name'          => 'infoxtab',
       'type'          => 'custom',
       'custom'        => INFO_TAB,
    ),
    array(
       'var'           => 'enabletaba',
       'name'          => ENABLECAT_TABA,
       'type'          => 'boolean',
       'default'       => 'true'
    ),
     array(
       'var'           => 'tabx1',
       'name'          => MIMBO_TAB_X1,
       'type'          => 'select',
       'default'       => '',
       'select_values' => $catsel,
    ),
    array(
       'var'           => 'enabletabx1',
       'name'          => ENABLE_TABX1,
       'type'          => 'boolean',
       'default'       => 'true'
    ),
    array(
      'var'           => 'tabx2',
      'name'          => MIMBO_TAB_X2,
      'type'          => 'select',
      'default'       => '',
      'select_values' => $catsel,
    ),
    array(
      'var'           => 'enabletabx2',
      'name'          => ENABLE_TABX2,
      'type'          => 'boolean',
      'default'       => 'true'
    ),
    array(
      'var'           => 'tabx3',
      'name'          => MIMBO_TAB_X3,
      'type'          => 'select',
      'default'       => '',
      'select_values' => $catsel,
    ),
    array(
      'var'           => 'enabletabx3',
      'name'          => ENABLE_TABX3,
      'type'          => 'boolean',
      'default'       => 'true'
    ),
    array(
      'var'           => 'enablesticky',
      'name'          => ENABLE_STICKY,
      'type'          => 'boolean',
      'default'       => 'true'
    ),

    array(
      'var'           => 'infoxlead',
	  'name'          => 'infoxlead',
      'type'          => 'custom',
      'custom'        => INFO_LEAD,
    ),
    array(
      'var'           => 'enablecatlead',
      'name'          => ENABLECAT_LEAD,
      'type'          => 'boolean',
      'default'       => 'true'
    ),
    array(
      'var'           => 'catlead',
      'name'          => MIMBO_CAT_LEAD,
      'type'          => 'select',
      'default'       => '',
      'select_values' => $catsel,
    ),
    array(
      'var'           => 'infoxfeat',
	  'name'          => 'infoxfeat',
      'type'          => 'custom',
	  'custom'        => INFO_FEAT,
    ),
    array(
      'var'           => 'catfeat',
      'name'          => MIMBO_CAT_FEAT,
      'type'          => 'select',
      'default'       => '',
      'select_values' => $catsel,
    ),
    array(
      'var'           => 'featamount',
      'name'          => FEAT_AMOUNT,
      'type'          => 'string',
      'default'       => '5',
    ),
    array(
	  'var'           => 'infoxnews',
	  'name'          => 'infoxnews',
	  'type'          => 'custom',
	  'custom'        => INFO_NEWS,
    ),
    array(
      'var'           => 'catx1',
      'name'          => MIMBO_CAT_X1,
      'type'          => 'select',
      'default'       => '',
      'select_values' => $catsel,
    ),
    array(
      'var'           => 'catx2',
      'name'          => MIMBO_CAT_X2,
      'type'          => 'select',
      'default'       => '',
      'select_values' => $catsel,
    ),
    array(
      'var'           => 'catx3',
      'name'          => MIMBO_CAT_X3,
      'type'          => 'select',
      'default'       => '',
      'select_values' => $catsel,
    ),
    array(
      'var'           => 'catx4',
      'name'          => MIMBO_CAT_X4,
      'type'          => 'select',
      'default'       => '',
      'select_values' => $catsel,
    ),
    array(
        'var'         => 'amount',
        'name'        => NAVLINK_AMOUNT,
        'type'        => 'string',
        'default'     => '5',
    ),
    array(
        'var'         => 'sidebbarmenuesamount',
        'name'        => SBMENUES_AMOUNT,
        'type'        => 'string',
        'default'     => '2',
    )

);

$template_loaded_config = serendipity_loadThemeOptions($template_config, $serendipity['smarty_vars']['template_option']);


 


 $all_cats = serendipity_fetchCategories('all');
 $categories = serendipity_walkRecursive($categories, 'categoryid', 'parentid', VIEWMODE_THREADED);
 $catsel = array();
 foreach($all_cats AS $cat) {
   $catsel[$cat['categoryid']] = str_repeat(' ', $cat['depth']) . $cat['category_name'];
 }
 $serendipity['smarty']->assign('tabx1_cat', $catsel[$template_loaded_config['tabx1']]);
Grüße
Reinhard

Re: string aus $template_option ausgeben

Posted: Fri Apr 17, 2009 10:00 am
by garvinhicking
Hi!

$all_cats enthält in deinem Fall nur den eingerückten Kategorienamen. Willst Du nur den haben? Dann reicht {$tabx1_cat}. Wenn Du die ID haben willst, kannst Du dann {$template_option.tabx1} benutzen. Andere Datenbankfelder stehen so erstmal nicht zur verfügung, dafür müsste man $catsel umstrukturieren. Brauchst Du aber vermutlich garnich.

Grüße,
Garvin

Re: string aus $template_option ausgeben

Posted: Fri Apr 17, 2009 1:34 pm
by reinhardl
funzt! Besten Dank - Daniel Kehlmann ist unterwegs!

Gruß
Reinhard