Boss |
|
---|---|
Для возможности полноценной модификации PFS на мой взгляд не хватает одного хука. Речь о файле pfs.inc.php. Если посмотреть его код в конце, то можно увидеть условие:
if ($standalone)
{
if($c1 == 'newpage' && $c2 == 'newpageurl' || $c1 == 'update' && $c2 == 'rpageurl')
{
$addthumb = "'".$cfg['th_dir_user']."' + gfile";
$addpix = 'gfile';
$addfile = "'".$cfg['pfs_dir_user']."' + gfile";
}
else
{
$addthumb = "'[img=".$cfg['pfs_dir_user']."'+gfile+']".$cfg['th_dir_user']."'+gfile+'[/img]'";
$addpix = "'[img]'+gfile+'[/img]'";
$addfile = "'[url=".$cfg['pfs_dir_user']."'+gfile+']'+gfile+'[/url]'";
}
$pfs_header1 = $cfg['doctype']."<html><head>
<title>".$cfg['maintitle']."</title>".sed_htmlmetas().sed_javascript()."
<script type=\"text/javascript\">
//<![CDATA[
function help(rcode,c1,c2) {
window.open('plug.php?h='+rcode+'&c1='+c1+'&c2='+c2,'Help','toolbar=0,location=0,directories=0,menuBar=0,resizable=0,scrollbars=yes,width=480,height=512,left=512,top=16');
}
function addthumb(gfile,c1,c2) {
insertText(opener.document, '$c1', '$c2', $addthumb);
window.close();
}
function addpix(gfile,c1,c2) {
insertText(opener.document, '$c1', '$c2', $addpix);
window.close();
}
function addfile(gfile,c1,c2) {
insertText(opener.document, '$c1', '$c2', $addfile);
window.close();
}
function picture(url,sx,sy) {
window.open('pfs.php?m=view&id='+url,'Picture','toolbar=0,location=0,directories=0,menuBar=0,resizable=1,scrollbars=yes,width='+sx+',height='+sy+',left=0,top=0');
}
//]]>
</script>
";
$pfs_header2 = "</head><body>";
$pfs_footer = "</body></html>";
sed_sendheaders();
$mskin = sed_skinfile(array('pfs', 'standalone'));
$t = new XTemplate($mskin);
$t->assign(array(
"PFS_STANDALONE_HEADER1" => $pfs_header1,
"PFS_STANDALONE_HEADER2" => $pfs_header2,
"PFS_STANDALONE_FOOTER" => $pfs_footer,
));
$t->parse("MAIN.STANDALONE_HEADER");
$t->parse("MAIN.STANDALONE_FOOTER");
$t-> assign(array(
"PFS_TITLE" => $title,
"PFS_BODY" => $body
));
$t->parse("MAIN");
$t->out("MAIN");
}
else
{
require_once $cfg['system_dir'] . '/header.php';
$t = new XTemplate(sed_skinfile('pfs'));
$t-> assign(array(
"PFS_TITLE" => $title,
"PFS_BODY" => $body
));
/* === Hook === */
$extp = sed_getextplugins('pfs.tags');
if (is_array($extp))
{ foreach($extp as $k => $pl) { include_once($cfg['plugins_dir'].'/'.$pl['pl_code'].'/'.$pl['pl_file'].'.php'); } }
/* ===== */
$t->parse("MAIN");
$t->out("MAIN");
require_once $cfg['system_dir'] . '/footer.php';
}
В зависимости от вызова осуществляется формирование интерфейса или в общем скине сайта, или в отдельном окне. Однако, как можно заметить, хук присутствует лишь для полноценного вывода в скине сайта. А как же оконный режим? Здесь тоже нужен свой хук! А вообще, чтобы облегчить жизнь, лучше сразу еще разнести в разные скины. Пусть в первом случае это будет: $t = new XTemplate("skins/".$skin."/pfs.small.tpl"); а во втором: $t = new XTemplate("skins/".$skin."/pfs.tpl"); |
|
Dieser Beitrag wurde von Boss (am 22. Juni 2009, 13:56, vor 15 Jahre) bearbeitet |