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!
string aus $template_option ausgeben
-
garvinhicking
- Core Developer
- Posts: 30022
- Joined: Tue Sep 16, 2003 9:45 pm
- Location: Cologne, Germany
- Contact:
Re: string aus $template_option ausgeben
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:
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
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']]);
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/
# 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/
Re: string aus $template_option ausgeben
garvinhicking wrote:
Das setzt voraus, dass tabx2 auch den Index enthält, der in $catsel verwendet wird. Wie wird dein $catsel belegt, konkret?Code: Select all
$serendipity['smarty']->assign('tabx1_cat', $catsel[$template_loaded_config['tabx1']]);
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
Hi!
Und wie hast Du es jetzt eingebaut? Bitte mal die ganze config.inc.php zeigen.
Grüße,
Garvin
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/
# 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/
Re: string aus $template_option ausgeben
Hallo Garvin,
hier der Code-Ausschnitt für die index.tpl und der Code für die Config (die ganzen Navigationsleisten habe ich herausgenommen)
obiger code ergibt interessanterweise jeweils den Anfangsbuchstaben der Kategorie.
Grüße
Reinhard
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}
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']]);
Reinhard
-
garvinhicking
- Core Developer
- Posts: 30022
- Joined: Tue Sep 16, 2003 9:45 pm
- Location: Cologne, Germany
- Contact:
Re: string aus $template_option ausgeben
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
$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/
# 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/
Re: string aus $template_option ausgeben
funzt! Besten Dank - Daniel Kehlmann ist unterwegs!
Gruß
Reinhard
Gruß
Reinhard