Dieses Verfahren alles über $_POST-Variablen zu füttern, ziehst sich durch das ganze ConPresso4 durch und sorgt dafür, daß ein "Speichern" neben "Speichern und zurück zur Rubrikauswahl" existieren kann.
Die $_Post-Variablen werden hier mit den Datenbankwerten gefüttert:
Code: Alles auswählen
<?php
$query = "SELECT directory, name, seclevel, source_rubric_id, settings "
."FROM ".CPO_RUBRIC." "
."WHERE id='".addslashes($_REQUEST['id'])."'";
$db->query($query);
// basic settings
$_POST['directory'] = '';
$_POST['name'] = '';
$_POST['seclevel'] = 0;
$_POST['source_rubric_id'] = 0;
while($db->next_record()) { // will only loop once
$_POST['directory'] = $db->v('directory');
$_POST['name'] = $db->v('name');
$_POST['seclevel'] = $db->v('seclevel');
$_POST['source_rubric_id'] = $db->v('source_rubric_id');
$_settings = $db->v('settings');
}
// individual extended settings
if (is_string($_settings)) $t_cpoRubricSettings = unserialize($_settings);
if (!is_array($t_cpoRubricSettings)) $t_cpoRubricSettings = array();
foreach ($cpoRubricSettingsDefaults as $k=>$v) {
if (isset($t_cpoRubricSettings[$k])) {
$_POST['cpoRubricSettings'][$k] = $t_cpoRubricSettings[$k];
continue;
}
// use default setting as it was not stored in the DB yet
$_POST['cpoRubricSettings'][$k] = $v;
}
// advanced settings
if ($_POST['source_rubric_id']!=0) {
// use different source for advanced settings?
$query = "SELECT settings "
."FROM ".CPO_RUBRIC." "
."WHERE id='".addslashes($db->v('source_rubric_id'))."'";
DEBUG(1, 'Fetching settings from other rubric... <br /><br />'. $query, __FILE__, __LINE__);
$db->query($query);
$db->next_record();
$_settings = $db->v('settings');
}
if (is_string($_settings)) $t_cpoRubricSettings = unserialize($_settings);
if (!is_array($t_cpoRubricSettings)) $t_cpoRubricSettings = array();
foreach ($cpoRubricSettingsDefaults as $k=>$v) {
if ($k=='title') continue;
if (isset($t_cpoRubricSettings[$k])) {
$_POST['cpoRubricSettings'][$k] = $t_cpoRubricSettings[$k];
continue;
}
// use default setting as it was not stored in the DB yet
$_POST['cpoRubricSettings'][$k] = $v;
}
?>
Falls bei Dir also wirklich
cpoRubricSettings['disableNav']
existiert, dann füttere die $_POST-Variable mittels
$_POST['cpoRubricSettings']['disableNav'] = cpoRubricSettings['disableNav'];
Steht disableNav denn bei Deinen Rubrik-Settings in der DB
Dann musst Du nur die Default-Settings in common.inc.php mit Deiner Variable ergänzen:
Code: Alles auswählen
<?php
$cpoRubricSettingsDefaults = array( // FIXME switch all to $cpoRubric?
'title' => '',
'sorting' => $articleSortMethodsDefault,
'edit_index' => false,
'showArchive' => false,
'showArchiveText' => __('Archive'),
'disableRubric' => false,
'disableRubricText' => '',
'disableNav' => false, // <== hier habe ich sie mal hineingeschrieben...
'edit_author' => false,
'edit_email' => false,
'edit_initial' => false,
'standard_template' => 0,
'date_format' => '',
'articleSeparator' => '',
'noArticlesFound' => __('No articles found.'),
'noOfArticles' => 10,
'language' => 'english',
'pager_showresults' => false,
'pager_found' => '',
'pager_results' => '',
'pager_previous' => '',
'pager_next' => ''
);
?>