Seditio Source code viewer
Root | Root
./Seditio-Developer/Seditio.178/plugins/skineditor/skineditor.admin.php
<?PHP

/* ====================
Seditio - Website engine
Copyright Neocrome & Seditio Team
https://seditio.org
[BEGIN_SED]
File=plugins/skineditor/skineditor.php
Version=179
Updated=2022-jul-15
Type=Plugin
Author=Seditio Team
Description=
[END_SED]

[BEGIN_SED_EXTPLUGIN]
Code=skineditor
Part=admin
File=skineditor.admin
Hooks=tools
Tags=
Order=10
[END_SED_EXTPLUGIN]
==================== */

if (!defined('SED_CODE') || !defined('SED_ADMIN')) { die('Wrong URL.'); }

$sk = sed_import('sk', 'G', 'ALP', 24);
$f = sed_import('f', 'G', 'TXT', 128);
$fb = sed_import('fb', 'G', 'TXT', 128);

$error_string = '';

// For show & edit php file add into array 'php'
$allow_extensions = array('tpl', 'txt', 'css', 'js');

$sx = new XTemplate(SED_ROOT . '/plugins/skineditor/skineditor.tpl');    

if (!empty(
$sk))
  {
  if (!empty(
$f))
    {
$n = 'edit'; }
  else
    {
$n = 'skin'; }
  }

switch (
$n)
    {
    case
'skin' :

   
$skininfo = SED_ROOT. "/skins/".$sk."/".$sk.".php";
   
$skindir = SED_ROOT . "/skins/".$sk."/";

    if (!
file_exists($skininfo))
        {
sed_die('Wrong skin code.'); }

   
$info = sed_infoget($skininfo);
   
$adminpath[] = array (sed_url("admin", "m=tools&p=skineditor&sk=".$sk), $info['Name']);

    if (
$a == 'makbak')
        {
       
sed_check_xg();
       
copy($skindir.$fb, $skindir.$fb.".bak");
        }
    elseif (
$a == 'resbak')
        {
       
sed_check_xg();
        if (
file_exists($skindir.$fb.".bak"))
            {
            if (
file_exists($skindir.$fb))
                {
unlink($skindir.$fb); }
            if (
copy($skindir.$fb.".bak", $skindir.$fb))
                {
unlink($skindir.$fb.".bak"); }    
            }
        }
    elseif (
$a == 'delbak')
        {
       
sed_check_xg();
       
unlink($skindir.$fb.".bak");
        }

   
$handle = opendir($skindir);

    while (
$f = readdir($handle))
        {        
       
$extension_arr = explode(".", $f);
       
$extension = end($extension_arr);
         
        if (
in_array(mb_strtolower($extension), $allow_extensions) && (mb_strrpos($f, ".") > 0))
           {
$skinlist[] = $f; }
        elseif (
mb_strtolower($extension) == 'bak')
           {
$baklist[] = $f; }  
        }
       
   
closedir($handle);
   
sort($skinlist);

    if (isset(
$baklist) && is_array($baklist))
        {
        @
sort($baklist);
        foreach(
$baklist as $i => $x)
            {
$backupfile[$x] = TRUE; }
        }

   
$j = 0;    
   
$total_size = 0;

    foreach(
$skinlist as $i => $x)
        {
       
$file_size = @filesize($skindir.$x);
       
       
$sx->assign(array(
           
"TPL_SKIN_LIST_ROW_EDIT" => "<a href=\"".sed_url("admin", "m=tools&p=skineditor&sk=".$sk."&f=".$x)."\">".$out['ic_edit']."</a>",
           
"TPL_SKIN_LIST_ROW_EDITURL" => sed_url("admin", "m=tools&p=skineditor&sk=".$sk."&f=".$x),
           
"TPL_SKIN_LIST_ROW_TPLFILE" => $x,
           
"TPL_SKIN_LIST_ROW_TPLSIZE" => $file_size
       
));        
       
       
$xbak = $x.".bak";
       
       
$bcf = (isset($backupfile[$xbak]) && $backupfile[$xbak]) ? TRUE : FALSE;
           
       
$sx->assign(array(
           
"TPL_SKIN_LIST_ROW_BACKUP" => ($bcf) ? "" : "<a href=\"".sed_url("admin", "m=tools&p=skineditor&sk=".$sk."&fb=".$x."&a=makbak&".sed_xg())."\">".$out['ic_checked']."</a>",
           
"TPL_SKIN_LIST_ROW_BACKUPURL" => ($bcf) ? "" : sed_url("admin", "m=tools&p=skineditor&sk=".$sk."&fb=".$x."&a=makbak&".sed_xg()),
           
"TPL_SKIN_LIST_ROW_DELETE_BACKUP" => ($bcf) ? "<a href=\"".sed_url("admin", "m=tools&p=skineditor&sk=".$sk."&fb=".$x."&a=delbak&".sed_xg())."\">".$out['ic_unchecked']."</a>" : "",
           
"TPL_SKIN_LIST_ROW_DELETE_BACKUPURL" => ($bcf) ? sed_url("admin", "m=tools&p=skineditor&sk=".$sk."&fb=".$x."&a=delbak&".sed_xg()) : "",            
           
"TPL_SKIN_LIST_ROW_RESTORE_BACKUP" => ($bcf) ? "<a href=\"".sed_url("admin", "m=tools&p=skineditor&sk=".$sk."&fb=".$x."&a=resbak&".sed_xg())."\">".$out['ic_reset']."</a>" : "",
           
"TPL_SKIN_LIST_ROW_RESTORE_BACKUPURL" => ($bcf) ? sed_url("admin", "m=tools&p=skineditor&sk=".$sk."&fb=".$x."&a=resbak&".sed_xg()) : "",
           
"TPL_SKIN_LIST_ROW_XBACKUP" => ($bcf) ? $xbak : ""
       
));

       
$j++;
       
$total_size += $file_size;
       
       
$sx->parse("SKINEDITOR.TPL_SKIN_LIST.TPL_SKIN_LIST_ROW");        
        }    

   
$sx->assign(array(
       
"TPL_SKIN_LIST_TOTALSIZE" => $total_size,
       
"TPL_SKIN_LIST_FILES" => $j
   
));

   
$sx->parse("SKINEDITOR.TPL_SKIN_LIST");

    break;

    case
'edit' :

   
$skininfo = SED_ROOT . "/skins/".$sk."/".$sk.".php";
   
$skindir = SED_ROOT . "/skins/".$sk."/";

   
$b1 = sed_import('b1', 'P', 'ALP', 16);

    if (!
file_exists($skininfo))
        {
sed_die('Wrong file name'); }

   
$info = sed_infoget($skininfo);
   
$adminpath[] = array(sed_url("admin", "m=tools&p=skineditor&sk=".$sk), $info['Name']);

   
$editfile = SED_ROOT . "/skins/".$sk."/".$f;

   
$extension_arr = explode(".", $f);
   
$extension = end($extension_arr);

    if (
in_array(mb_strtolower($extension), $allow_extensions) && (mb_strrpos($f, ".") > 0))
        {
        if (
$a == 'update')
            {
           
$content = sed_import('content', 'P', 'HTR');
           
$file_isup = TRUE;

            if (!(
$fp = @fopen($editfile, 'w'))) { $file_isup = FALSE; }
            if (!(@
fwrite($fp, $content))) { $file_isup = FALSE; }
           
            @
fclose($fp);

            if (
$file_isup)
                {
                if(
$b1)
                    {
                   
sed_redirect(sed_url("admin", "m=tools&p=skineditor&sk=".$sk, "", true));
                    exit;
                    }
                else
                    {
                   
sed_redirect(sed_url("admin", "m=tools&p=skineditor&sk=".$sk."&f=".$f, "", true));
                    exit;
                    }
                }
            else
                {
               
$error_string .= "Error !<br />Could not write the file : ".$editfile;
                }
            }

        if (!(
$fp = @fopen($editfile, 'r')))
            {
sed_die('Could not open the file'); }

       
$filecont = fread($fp, 256000);
        @
fclose($fp);

        switch (
$extension) {
            case
'css':
               
$hmode = 'text/css';
                break;
            case
'js':
               
$hmode = 'text/javascript';
                break;
            case
'php':
               
$hmode = 'application/x-httpd-php';
                break;
            default:
               
$hmode = 'text/html';
        }    
       
       
$sx->assign(array(
           
"TPL_SKIN_EDIT_SEND" => sed_url("admin", "m=tools&p=skineditor&sk=".$sk."&f=".$f."&a=update&".sed_xg()),
           
"TPL_SKIN_EDIT_FILE" => $editfile,
           
"TPL_SKIN_EDIT_CHANCEL_URL" => sed_url("admin", "m=tools&p=skineditor&sk=".$sk),
           
"TPL_SKIN_EDIT_TEXTAREA" => "<textarea cols=\"96\" rows=\"16\" name=\"content\" id=\"content\" class=\"noeditor\">".sed_cc($filecont, ENT_QUOTES)."</textarea>",
           
"TPL_SKIN_EDIT_HMODE" => $hmode        
       
));
       
       
$sx->parse("SKINEDITOR.TPL_SKIN_EDIT");    
        }
    else
        {
       
$error_string .= "Not allowed file extension : ".$editfile;
        }
       
    break;

    default:

   
$handle = opendir(SED_ROOT . "/skins/");

    while (
$f = readdir($handle))
        {
        if (
mb_strpos($f, '.')  === FALSE)
            {
$skinlist[] = $f; }
        }
   
closedir($handle);
   
sort($skinlist);

    foreach (
$skinlist as $i => $x)
        {
           
       
$skininfo = SED_ROOT . "/skins/".$x."/".$x.".php";
       
$info = sed_infoget($skininfo);
       
       
$sx->assign(array(
           
"SKIN_LIST_ROW_EDIT" => "<a href=\"".sed_url("admin", "m=tools&p=skineditor&sk=".$x)."\">".$out['ic_edit']."</a>",
           
"SKIN_LIST_ROW_EDITURL" => sed_url("admin", "m=tools&p=skineditor&sk=".$x),
           
"SKIN_LIST_ROW_NAME" => $info['Name'],
           
"SKIN_LIST_ROW_CODE" => $x,
           
"SKIN_LIST_ROW_VERSION" => $info['Version'],
           
"SKIN_LIST_ROW_UPDATED" => $info['Updated'],
           
"SKIN_LIST_ROW_AUTHOR" => $info['Author'],
           
"SKIN_LIST_ROW_DEFAULT" => ($x == $cfg['defaultskin']) ? $out['ic_checked'] : '',
           
"SKIN_LIST_ROW_SET" => ($x == $skin) ? $out['ic_checked'] : ''
       
));
       
       
$sx->parse("SKINEDITOR.SKIN_LIST.SKIN_LIST_ROW");
       
        }
       
   
$sx->parse("SKINEDITOR.SKIN_LIST");

    break;
 
    }
 
if (!empty(
$error_string))
    {
   
$sx->assign("SKINEDITOR_ERROR_BODY", sed_alert($error_string, 'e'));
   
$sx->parse("SKINEDITOR.SKINEDITOR_ERROR");
    }  
 
$sx->parse("SKINEDITOR");
$plugin_body = $sx->text("SKINEDITOR");

?>
Presented with Sourceer