Seditio Source code viewer
Root | Root
./Seditio-Developer/Seditio.178/system/core/admin/admin.dic.inc.php
<?PHP

/* ====================
Seditio - Website engine
Copyright Neocrome & Seditio Team
https://seditio.org
[BEGIN_SED]
File=admin.dic.inc.php
Version=179
Updated=2022-jul-15
Type=Core.admin
Author=Amro
Description=Administration panel
[END_SED]
==================== */

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

list(
$usr['auth_read'], $usr['auth_write'], $usr['isadmin']) = sed_auth('dic', 'a');
sed_block($usr['isadmin']);

// ---------- Breadcrumbs
$urlpaths = array();
$urlpaths[sed_url("admin", "m=tools")] =  $L['adm_manage'];
$urlpaths[sed_url("admin", "m=dic")] =  $L['core_dic'];

$admintitle = $L['core_dic'];

$adminhelp = $L['adm_help_dic'];

$mn = sed_import('mn', 'G', 'TXT');
$did = sed_import('did','G','INT');
$tid = sed_import('tid','G','INT');

$sql_dic = sed_sql_query("SELECT * FROM $db_dic WHERE 1 ORDER BY dic_title ASC");

while (
$row_dic = sed_sql_fetchassoc($sql_dic))
    {
       
$dic_list[$row_dic['dic_id']] = $row_dic['dic_title'];
    }

$t = new XTemplate(sed_skinfile('admin.dic', false, true));

switch(
$mn)
    {
    case
'dicitem':
 
    if (
$a == 'update' && (!empty($tid)))
        {        
       
$ititle = sed_import('ititle','P','TXT');
       
$icode = sed_import('icode','P','TXT');
       
$idefval = sed_import('idefval','P','INT');
       
$ichildren = sed_import('ichildren', 'P', 'INT');    
       
       
$sql = sed_sql_query("UPDATE $db_dic_items SET ditem_title = '".sed_sql_prep($ititle)."',
                ditem_code = '"
.sed_sql_prep($icode)."', ditem_children = '".(int)$ichildren."',
                ditem_defval = '"
.(int)$idefval."' WHERE ditem_id = '".$tid."'");
               
       
sed_log("Update term #".$tid,'adm');
       
sed_cache_clear('sed_dic');
       
sed_redirect(sed_url("admin", "m=dic&mn=dicitem&did=".$did."&msg=917", "", true));              
        }
    elseif (
$a == 'delete' && (!empty($tid)))
        {
       
$sql = sed_sql_query("DELETE FROM $db_dic_items WHERE ditem_id = '".$tid."'");
       
sed_log("Deleted term #".$tid,'adm');
       
sed_cache_clear('sed_dic');
       
sed_redirect(sed_url("admin", "m=dic&mn=dicitem&did=".$did."&msg=917", "", true));            
        }
    elseif (
$a == 'add' && (!empty($did)))
        {
       
       
$ditemtitle = sed_import('ditemtitle','P','TXT');
       
$ditemcode = sed_import('ditemcode','P','TXT');
       
$ditemdefval = sed_import('ditemdefval','P','TXT');
       
$ditemchildren = sed_import('ditemchildren', 'P', 'INT');
       
       
$sql = sed_sql_query("INSERT into $db_dic_items (ditem_dicid, ditem_title, ditem_code, ditem_children, ditem_defval)
                          VALUES ("
.(int)$did.", '".sed_sql_prep($ditemtitle)."', '".sed_sql_prep($ditemcode)."', '".(int)$ditemchildren."', '".(int)$ditemdefval."')");    
       
sed_log("Added new term in directory #".$did,'adm');
       
sed_cache_clear('sed_dic');
       
sed_redirect(sed_url("admin", "m=dic&mn=dicitem&did=".$did."&msg=917", "", true));
        }
   
   
$sql = sed_sql_query("SELECT * FROM $db_dic WHERE dic_id = '".$did."'");
   
$drow = sed_sql_fetchassoc($sql);
 
   
$t -> assign(array(
     
"DIC_TERMS_DICTIONARY" => sed_cc($drow['dic_title'])
    ));

   
$sql = sed_sql_query("SELECT d.*, t.* FROM $db_dic_items AS t LEFT JOIN $db_dic AS d ON t.ditem_dicid = d.dic_id WHERE t.ditem_dicid = '".$did."'");
    while(
$row = sed_sql_fetchassoc($sql))
        {
           
        if  (
$row['ditem_defval'] > 0)
          {
         
$t -> assign(array(
               
"TERM_LIST_DEFVAL" => $row['ditem_defval']
          ));          
         
         
$t -> parse("ADMIN_DIC.DIC_TERMS.TERMS_LIST.TERM_DEFAULT");
          }
         
       
$children_url = (!empty($row['ditem_children'])) ? sed_url('admin', 'm=dic&mn=dicitem&did='.$row['ditem_children']) : '';
       
       
$t -> assign(array(
           
"TERM_LIST_ID" => $row['ditem_id'],
           
"TERM_LIST_TITLE" => sed_cc($row['ditem_title']),
           
"TERM_LIST_CODE" => sed_cc($row['ditem_code']),
           
"TERM_LIST_CHILDRENDIC" => (!empty($row['ditem_children'])) ? "<a href=\"".$children_url."\">ID#".$row['ditem_children'].' '.$dic_list[$row['ditem_children']]."</a>" : '',
           
"TERM_LIST_DELETE_URL" => sed_url('admin', 'm=dic&mn=dicitem&a=delete&tid='.$row['ditem_id']."&did=".$row['dic_id']),
           
"TERM_LIST_EDIT_URL" => sed_url('admin', 'm=dic&mn=dicitemedit&tid='.$row['ditem_id'])                
        ));        
       
       
$t -> parse("ADMIN_DIC.DIC_TERMS.TERMS_LIST");        
        }
 
   
$urlpaths[sed_url("admin", "m=dic&mn=dicitem&did=".$did)] = $drow['dic_title'];
   
$admintitle = $drow['dic_title'];
 
   
$t -> assign(array(
       
"TERM_ADD_SEND" => sed_url('admin', 'm=dic&mn=dicitem&a=add&did='.$did),
       
"TERM_ADD_TITLE" => sed_textbox('ditemtitle', isset($ditemtitle)?$ditemtitle:''),
       
"TERM_ADD_CODE" => sed_textbox('ditemcode', isset($ditemcode)?$ditemcode:''),
       
"TERM_ADD_CHILDRENDIC" => sed_selectbox('', 'ditemchildren', $dic_list),    
       
"TERM_ADD_DEFVAL" => sed_radiobox("ditemdefval", $sed_yesno, isset($ditemdefval)?$ditemdefval:'')
    ));        
   
   
$t -> parse("ADMIN_DIC.DIC_TERMS");
       
    break;
 
  case
'dicedit':
 
   
$dicparent = array();
   
$sqlp = sed_sql_query("SELECT * FROM $db_dic WHERE dic_id != '".$did."'");
    while (
$rowp = sed_sql_fetchassoc($sqlp))
    {
       
$dicparent[$rowp['dic_id']] = $rowp['dic_title'];
    }    
   
   
$sql = sed_sql_query("SELECT * FROM $db_dic WHERE dic_id = '".$did."'");
   
$row = sed_sql_fetchassoc($sql);
   
   
$t -> assign(array(
       
"DIC_EDIT_SEND" => sed_url('admin', 'm=dic&a=update&did='.$did),
       
"DIC_EDIT_TITLE" => sed_textbox('dtitle', $row['dic_title']),
       
"DIC_EDIT_TYPE" => sed_selectbox($row['dic_type'], 'dtype', $dic_type),    
       
"DIC_EDIT_VALUES" => sed_textarea('dvalues', $row['dic_values'], 5, 60),
       
"DIC_EDIT_MERA" => sed_textbox('dmera', $row['dic_mera']),
       
"DIC_EDIT_FORM_TITLE" => sed_textbox('dformtitle', $row['dic_form_title']),        
       
"DIC_EDIT_FORM_DESC" => sed_textarea('dformdesc', $row['dic_form_desc'], 5, 60),
       
"DIC_EDIT_FORM_SIZE" => sed_textbox('dformsize', $row['dic_form_size'], 3, 10),
       
"DIC_EDIT_FORM_MAXSIZE" => sed_textbox('dformmaxsize', $row['dic_form_maxsize'], 3, 10),
       
"DIC_EDIT_FORM_COLS" => sed_textbox('dformcols', $row['dic_form_cols'], 3, 10),
       
"DIC_EDIT_FORM_ROWS" => sed_textbox('dformrows', $row['dic_form_rows'], 3, 10),        
       
"DIC_EDIT_DICPARENT" => sed_selectbox($row['dic_parent'], 'dparent', $dicparent) //sed_textbox('dtype', $row['dic_type'])        
   
));            

   
$t -> parse("ADMIN_DIC.DIC_EDIT");      

  break;
 
  case
'dicitemedit':
 
   
$sql = sed_sql_query("SELECT d.*, t.* FROM $db_dic_items AS t LEFT JOIN $db_dic AS d ON t.ditem_dicid = d.dic_id WHERE t.ditem_id = '".$tid."' LIMIT 1");
   
$row = sed_sql_fetchassoc($sql);

   
$t -> assign(array(
       
"DIC_TITLE" => sed_cc($row['dic_title']),
       
"DIC_ITEM_EDIT_SEND" => sed_url('admin', 'm=dic&mn=dicitem&a=update&tid='.$tid."&did=".$row['dic_id']),
       
"DIC_ITEM_EDIT_TITLE" => sed_textbox('ititle', $row['ditem_title']),
       
"DIC_ITEM_EDIT_CHILDRENDIC" => sed_selectbox($row['ditem_children'], 'ichildren', $dic_list),
       
"DIC_ITEM_EDIT_CODE" => sed_textbox('icode', $row['ditem_code']),
       
"DIC_ITEM_EDIT_DEFVAL" => sed_radiobox("idefval", $sed_yesno, $row['ditem_defval'])    
    ));            

   
$t -> parse("ADMIN_DIC.DIC_ITEM_EDIT");      
 
  break;
 
  case
'extra':
 
 
$extralocation = sed_import('extralocation','P','TXT');
 
$extratype = sed_import('extratype','P','TXT');
 
$extrasize = sed_import('extrasize','P','INT');  
 
 
$sql = sed_sql_query("SELECT * FROM $db_dic WHERE dic_id = '".$did."'");
  if (
sed_sql_numrows($sql) > 0)
    {
   
$row = sed_sql_fetchassoc($sql);    
   
   
//---
     
if ($a == 'add' && (!empty($did)))
        {
        if (!empty(
$extralocation) && !empty($row['dic_code']))
            {
           
sed_extrafield_add($extralocation, $row['dic_code'], $extratype, $extrasize);
           
sed_redirect(sed_url("admin", "m=dic&mn=extra&did=".$did, "", true));            
            }
        }
   
//---          
     
if ($a == 'update' && (!empty($did)))
        {
       
$extradelete = sed_import('extradelete','P','BOL');
        if (
$extradelete)
            {
           
sed_extrafield_remove($row['dic_extra_location'], $row['dic_code']);
            }
        else
            {
           
sed_extrafield_update($row['dic_extra_location'], $row['dic_code'], $extratype, $extrasize);
            }
       
sed_redirect(sed_url("admin", "m=dic&mn=extra&did=".$did, "", true));                
        }
   
   
$urlpaths[sed_url("admin", "m=dic&mn=dicitem&did=".$did)] = $row['dic_title'];
   
$urlpaths[sed_url("admin", "m=dic&mn=extra&did=".$did)] = $L['adm_dic_extra'];
   
$admintitle = $L['adm_dic_extra'];
   
   
$location_arr = array('pages' => 'Pages', 'users' => 'Users', 'com' => 'Comments', 'forum_topics' => 'Forum topics');
     
$type_arr = array('varchar' => 'VARCHAR', 'text' => 'TEXT', 'int' => 'INTEGER', 'tinyint' => 'TINY INTEGER', 'boolean' => 'BOOLEAN');
   
    for (
$i = 1; $i <= 255; $i++) { $maxsize_arr[$i] = $i; }

    if (!empty(
$row['dic_extra_location']))
        {
       
$i = 1;
       
$colname = $row['dic_code'];
       
$fieldsres = sed_sql_query("SELECT * FROM ".$cfg['sqldbprefix'].$row['dic_extra_location']." LIMIT 1");
       
$isset_column = "";
        while (
$i <= sed_sql_numfields($fieldsres))
            {
           
$column = sed_sql_fetchfield($fieldsres, $i);                                  
            if (
preg_match("#.*?_$colname$#", $column->name, $match))                    
                {
               
$isset_column = ($match[0] != "") ? $match[0] : "";
                break;
                }
            }
        }  
   
    if (!empty(
$isset_column))
      {
     
$t -> assign(array(
       
"DIC_EXTRA_DELETE" => sed_radiobox("extradelete", $yesno_arr, 0)
      ));
     
$t -> parse("ADMIN_DIC.DIC_EXTRA.DIC_EXTRA_DELETE");
      }
     
   
$t -> assign(array(
       
"DIC_EXTRA_SEND" => sed_url('admin', 'm=dic&mn=extra&did='.$did.'&a='.((!empty($isset_column)) ? "update" : "add")),
       
"DIC_EXTRA_SUBMIT_NAME" => (!empty($isset_column)) ? $L['Update'] : $L['Add'],
       
"DIC_EXTRA_TITLE" => $row['dic_title'],
       
"DIC_EXTRA_DICCODE" => $row['dic_code'],
       
"DIC_EXTRA_LOCATION" => (!empty($isset_column)) ?
                             
$row['dic_extra_location']." / <strong>".$isset_column."</strong>" :
                             
sed_selectbox($row['dic_extra_location'], 'extralocation', $location_arr),
       
"DIC_EXTRA_TYPE" => sed_selectbox($row['dic_extra_type'], 'extratype', $type_arr, false),
       
"DIC_EXTRA_SIZE" => sed_selectbox($row['dic_extra_size'], 'extrasize', $maxsize_arr)
    ));  
   
   
$t -> parse("ADMIN_DIC.DIC_EXTRA");    
    }
  break;

  default:
   
   
$dtitle = sed_import('dtitle','P','TXT');
   
$dcode = sed_import('dcode','P','ALP');
   
$dparent = sed_import('dparent','P','INT');
   
$dtype = sed_import('dtype','P','INT');
   
$dvalues = sed_import('dvalues','P','TXT');
   
$dmera = sed_import('dmera','P','TXT');
 
   
$dformtitle = sed_import('dformtitle','P','TXT');    
   
$dformdesc = sed_import('dformdesc','P','TXT');    
   
$dformsize = sed_import('dformsize','P','TXT');    
   
$dformmaxsize = sed_import('dformmaxsize','P','TXT');    
   
$dformcols = sed_import('dformcols','P','TXT');    
   
$dformrows = sed_import('dformrows','P','TXT');        

    if (
$a == 'update' && (!empty($did)))
            {
           
$sql = sed_sql_query("UPDATE $db_dic SET
                dic_title = '"
.sed_sql_prep($dtitle)."',
                dic_type = '"
.(int)$dtype."',
                dic_values = '"
.sed_sql_prep($dvalues)."',
                dic_mera = '"
.sed_sql_prep($dmera)."',
                dic_parent = '"
.sed_sql_prep($dparent)."',
                dic_form_title = '"
.sed_sql_prep($dformtitle)."',
                dic_form_desc = '"
.sed_sql_prep($dformdesc)."',
                dic_form_size = '"
.sed_sql_prep($dformsize)."',
                dic_form_maxsize = '"
.sed_sql_prep($dformmaxsize)."',
                dic_form_cols = '"
.sed_sql_prep($dformcols)."',
                dic_form_rows = '"
.sed_sql_prep($dformrows)."'          
                WHERE dic_id = '"
.$did."'");
                               
           
sed_log("Update directory #".$did,'adm');
           
sed_cache_clear('sed_dic');
           
sed_redirect(sed_url("admin", "m=dic&msg=917", "", true));                    
            }
    elseif (
$a == 'delete' && (!empty($did)))
            {
           
$sql = sed_sql_query("SELECT COUNT(*) FROM $db_dic_items WHERE ditem_dicid = '".$did."'");
           
$totalitems = sed_sql_result($sql, 0, "COUNT(*)");
            if (
$totalitems == 0)
                {
               
$sql = sed_sql_query("DELETE FROM $db_dic WHERE dic_id = '".$did."'");
               
sed_log("Deleted directory #".$did,'adm');
               
sed_cache_clear('sed_dic');
               
sed_redirect(sed_url("admin", "m=dic&msg=917", "", true));
                }                
            }
    elseif (
$a == 'add')
            {
            if (empty(
$dtitle) || empty($dcode) || empty($dtype))
                {
               
$msg = 303;
                }
            else
                {            
               
               
$dcode = preg_replace('/[^a-zA-Z0-9]/', '', $dcode);
               
               
$sql = sed_sql_query("INSERT into $db_dic
                    (dic_title,
                    dic_code,
                    dic_type,
                    dic_values,
                    dic_mera,
                    dic_form_title,
                    dic_form_desc,
                    dic_form_size,
                    dic_form_maxsize,
                    dic_form_cols,
                    dic_form_rows            
                    )
                    VALUES
                    ('"
.sed_sql_prep($dtitle)."',
                    '"
.sed_sql_prep($dcode)."',
                    '"
.(int)$dtype."',
                    '"
.sed_sql_prep($dvalues)."',
                    '"
.sed_sql_prep($dmera)."',
                    '"
.sed_sql_prep($dformtitle)."',
                    '"
.sed_sql_prep($dformdesc)."',
                    '"
.sed_sql_prep($dformsize)."',
                    '"
.sed_sql_prep($dformmaxsize)."',
                    '"
.sed_sql_prep($dformcols)."',
                    '"
.sed_sql_prep($dformrows)."')");
               
               
sed_log("Addded directory #".$did,'adm');
               
sed_cache_clear('sed_dic');
               
sed_redirect(sed_url("admin", "m=dic&msg=917", "", true));
                }
            }
       
   
   
$sql = sed_sql_query("SELECT DISTINCT(ditem_dicid), COUNT(*) FROM $db_dic_items WHERE 1 GROUP BY ditem_dicid");

    while (
$row = sed_sql_fetchassoc($sql))
        {
$termcount[$row['ditem_dicid']] = $row['COUNT(*)']; }    
   
   
$sql = sed_sql_query("SELECT * FROM $db_dic");  
   
    while (
$row = sed_sql_fetchassoc($sql))
        {

        if (isset(
$termcount[$row['dic_id']]) && $termcount[$row['dic_id']] < 1)
          {
         
$t -> assign(array(
           
"DIC_LIST_DELETE_URL" => sed_url("admin", "m=dic&a=delete&did=".$row['dic_id'])
            ));    
         
$t -> parse("ADMIN_DIC.DIC_STRUCTURE.DIC_LIST.ADMIN_DELETE");        
          }

       
$t -> assign(array(
           
"DIC_LIST_EDIT_URL" => sed_url("admin", "m=dic&mn=dicedit&did=".$row['dic_id'])    
            ));
             
       
$t -> parse("ADMIN_DIC.DIC_STRUCTURE.DIC_LIST.ADMIN_ACTIONS");  

       
$dic_code = "<a href=\"".sed_url('admin', 'm=dic&mn=extra&did='.$row['dic_id'])."\">".$row['dic_code']."</a>";
       
        if (!empty(
$row['dic_extra_location']))
            {
           
$i = 1;
           
$colname = $row['dic_code'];
           
$fieldsres = sed_sql_query("SELECT * FROM ".$cfg['sqldbprefix'].$row['dic_extra_location']." LIMIT 1");
           
$isset_column = "";

            while (
$i <= sed_sql_numfields($fieldsres))
                {
               
$column = sed_sql_fetchfield($fieldsres, $i);                                  
                if (
preg_match("#.*?_$colname$#", $column->name, $match))                    
                    {
                   
$dic_code .= ($match[0] != "") ? " <strong>(".$column->table."#".$match[0].")</strong>" : "";
                    break;
                    }            
               
$i++;
                }
            }  


       
$t -> assign(array(
           
"DIC_LIST_ID" => $row['dic_id'],
           
"DIC_LIST_URL" => sed_url('admin', 'm=dic&mn=dicitem&did='.$row['dic_id']),
           
"DIC_LIST_TITLE" => $row['dic_title'],
           
"DIC_LIST_CODE" => $dic_code,
           
"DIC_LIST_TYPE" => isset($dic_type[$row['dic_type']])?$dic_type[$row['dic_type']]:''    
       
));
       
$t -> parse("ADMIN_DIC.DIC_STRUCTURE.DIC_LIST");
        }
       
   
$t -> assign(array(
       
"DIC_ADD_SEND" => sed_url('admin', 'm=dic&a=add'),
       
"DIC_ADD_TITLE" => sed_textbox('dtitle', $dtitle),
       
"DIC_ADD_VALUES" => sed_textarea('dvalues', $dvalues, 5, 60),
       
"DIC_ADD_MERA" => sed_textbox('dmera', $dmera, 8, 50),                
       
"DIC_ADD_CODE" => sed_textbox('dcode', $dcode),
       
"DIC_ADD_TYPE" => sed_selectbox(isset($dtype)?$dtype:'', 'dtype', $dic_type),
       
"DIC_ADD_FORM_TITLE" => sed_textbox('dformtitle', $dformtitle),        
       
"DIC_ADD_FORM_DESC" => sed_textarea('dformdesc', $dformdesc, 5, 60),
       
"DIC_ADD_FORM_SIZE" => sed_textbox('dformsize', $dformsize, 3, 10),
       
"DIC_ADD_FORM_MAXSIZE" => sed_textbox('dformmaxsize', $dformmaxsize, 3, 10),
       
"DIC_ADD_FORM_COLS" => sed_textbox('dformcols', $dformcols, 3, 10),
       
"DIC_ADD_FORM_ROWS" => sed_textbox('dformrows', $dformrows, 3, 10)        
    ));            
   
   
$t -> parse("ADMIN_DIC.DIC_STRUCTURE");    
    break;
    }        

$t->assign("ADMIN_DIC_TITLE", $admintitle);

$t -> parse("ADMIN_DIC");
 
$adminmain .= $t -> text("ADMIN_DIC");

?>
Presented with Sourceer