string aus $template_option ausgeben

Hier können Probleme und alles andere in Deutscher Sprache gelöst werden.
Post Reply
reinhardl
Regular
Posts: 258
Joined: Wed Jun 20, 2007 8:54 am
Location: Germany

string aus $template_option ausgeben

Post 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!
garvinhicking
Core Developer
Posts: 30022
Joined: Tue Sep 16, 2003 9:45 pm
Location: Cologne, Germany
Contact:

Re: string aus $template_option ausgeben

Post 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
# Garvin Hicking (s9y Developer)
# Did I help you? Consider making me happy: http://wishes.garv.in/
# or use my PayPal account "paypal {at} supergarv (dot) de"
# My "other" hobby: http://flickr.garv.in/
reinhardl
Regular
Posts: 258
Joined: Wed Jun 20, 2007 8:54 am
Location: Germany

Re: string aus $template_option ausgeben

Post 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'];
}
garvinhicking
Core Developer
Posts: 30022
Joined: Tue Sep 16, 2003 9:45 pm
Location: Cologne, Germany
Contact:

Re: string aus $template_option ausgeben

Post by garvinhicking »

Hi!

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

Grüße,
Garvin
# Garvin Hicking (s9y Developer)
# Did I help you? Consider making me happy: http://wishes.garv.in/
# or use my PayPal account "paypal {at} supergarv (dot) de"
# My "other" hobby: http://flickr.garv.in/
reinhardl
Regular
Posts: 258
Joined: Wed Jun 20, 2007 8:54 am
Location: Germany

Re: string aus $template_option ausgeben

Post 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
garvinhicking
Core Developer
Posts: 30022
Joined: Tue Sep 16, 2003 9:45 pm
Location: Cologne, Germany
Contact:

Re: string aus $template_option ausgeben

Post 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
# Garvin Hicking (s9y Developer)
# Did I help you? Consider making me happy: http://wishes.garv.in/
# or use my PayPal account "paypal {at} supergarv (dot) de"
# My "other" hobby: http://flickr.garv.in/
reinhardl
Regular
Posts: 258
Joined: Wed Jun 20, 2007 8:54 am
Location: Germany

Re: string aus $template_option ausgeben

Post by reinhardl »

funzt! Besten Dank - Daniel Kehlmann ist unterwegs!

Gruß
Reinhard
Post Reply