dervan |
|
---|---|
known problem:
impossible to set metas from standalone plugin the cause of problem: header is included and parsed before launching of standalone plugin possible solution: header may be included (with pointers technique) after launching of standalone plugin this solution works without problems in Seditio 121 link (in russian) code from current system/core/plug/plug.inc.php in trac: /* ============= */
require_once $cfg['system_dir'] . '/header.php';
$t = new XTemplate($path_skin);
$extp = array();
if (is_array($sed_plugins))
{
foreach($sed_plugins as $i => $k)
{
if ($k['pl_hook']=='standalone' && $k['pl_code']==$e)
{ $extp[$i] = $k; }
}
}
if (count($extp)==0)
{
header("Location: " . SED_ABSOLUTE_URL . sed_url('message', "msg=907", '', true));
exit;
}
if (is_array($extp))
{ foreach($extp as $k => $pl) { include_once($cfg['plugins_dir'].'/'.$pl['pl_code'].'/'.$pl['pl_file'].'.php'); } }
if ($autoassigntags)
{
$plugin_title = (empty($plugin_title)) ? $L['plu_title'] : $plugin_title;
if($cfg['homebreadcrumb'])
{
$bhome = '<a href="'.$cfg['mainurl'].'">'.sed_cc($cfg['maintitle']).'</a> '.$cfg['separator'].' ';
}
else
{
$bhome = '';
}
$t-> assign(array(
"PLUGIN_TITLE" => $bhome . '<a href="'.sed_url('plug', "e=$e").'">'.$plugin_title."</a>",
"PLUGIN_SUBTITLE" => $plugin_subtitle,
"PLUGIN_BODY" => $plugin_body
));
}
$t->parse("MAIN");
$t->out("MAIN");
require_once $cfg['system_dir'] . '/footer.php';
modified code with this solution: /* ============= */
$t_plug = new XTemplate($path_skin);
$t =& $t_plug;
$extp = array();
if (is_array($sed_plugins))
{
foreach($sed_plugins as $i => $k)
{
if ($k['pl_hook']=='standalone' && $k['pl_code']==$e)
{ $extp[$i] = $k; }
}
}
if (count($extp)==0)
{
header("Location: " . SED_ABSOLUTE_URL . sed_url('message', "msg=907", '', true));
exit;
}
if (is_array($extp))
{ foreach($extp as $k => $pl) { include_once($cfg['plugins_dir'].'/'.$pl['pl_code'].'/'.$pl['pl_file'].'.php'); } }
unset($t);
require_once $cfg['system_dir'] . '/header.php';
unset($t);
$t =& $t_plug;
if ($autoassigntags)
{
$plugin_title = (empty($plugin_title)) ? $L['plu_title'] : $plugin_title;
if($cfg['homebreadcrumb'])
{
$bhome = '<a href="'.$cfg['mainurl'].'">'.sed_cc($cfg['maintitle']).'</a> '.$cfg['separator'].' ';
}
else
{
$bhome = '';
}
$t-> assign(array(
"PLUGIN_TITLE" => $bhome . '<a href="'.sed_url('plug', "e=$e").'">'.$plugin_title."</a>",
"PLUGIN_SUBTITLE" => $plugin_subtitle,
"PLUGIN_BODY" => $plugin_body
));
}
$t->parse("MAIN");
$t->out("MAIN");
unset($t, $t_plug);
require_once $cfg['system_dir'] . '/footer.php';
|