Вот здесь код с возможной ошибкой,только непонятно где
____________________________________________________________
<?php
/*
Copyright © Eleanor CMS
URL: http://eleanor-cms.ru, http://eleanor-cms.com
E-mail: support@eleanor-cms.ru
Developing: Alexander Sunvas*
Interface: Rumin Sergey
=====
*Pseudonym. See addons/copyrights/info.txt for more information.
*/
if(!defined('CMS'))
die('Попытка взлома?');
$Mainclass->LoadLanguage($Mainclass->GetModVal('path'),'foto','lang_admin-%');
$Mainclass->Loadclass('classes/others/class_categories_l_admin.php');
$Mainclass->Categories_l->table_name='foto_categories';
$Mainclass->Db->Query('SELECT COUNT(`status`) FROM `f_foto` WHERE `status`=-1',__file__,__line__);
list($ncnt)=$Mainclass->Db->Fetch_row();
$Mainclass->navigation=array
(
array($Mainclass->Url->Prefix(false),$Mainclass->lang['foto']['foto_list']),
array($Mainclass->Url->ConstructUrl(array('do'=>'add')),((isset($_GET['do']) and $_GET['do']=='add') ? '!' : '').$Mainclass->lang['foto']['add_file']),
array($Mainclass->Url->ConstructUrl(array('do'=>'news')),((isset($_GET['do']) and $_GET['do']=='news') ? '!' : '').$Mainclass->lang['foto']['new_foto']).' ('.$ncnt.')',
array($Mainclass->Url->ConstructUrl(array('do'=>'options')),((isset($_GET['do']) and $_GET['do']=='options' and !isset($_GET['event'])) ? '!' : '').$Mainclass->lang['main']['options']),
10=>array(
$Mainclass->Url->ConstructUrl(array('do'=>'categories')),
((isset($_GET['do']) and $_GET['do']=='categories' and !isset($_GET['event'])) ? '!' : '').$Mainclass->lang['main']['cats_manag'],
'submenu'=>$Mainclass->Categories_l->GetNavigation(array('do'=>'categories')),
),
);
global $mainpage;
$mainpage=false;
if(isset($_GET['do']))
DoIt($_GET['do']);
elseif(isset($_GET['edit']))
AddEditFile((int)$_GET['edit']);
elseif(isset($_GET['save']))
SaveFile($_GET['save']=='new' ? true : (int)$_GET['save']);
elseif(isset($_GET['delete']))
DeleteFile((int)$_GET['delete']);
elseif(isset($_GET['swap']))
SwapFile((int)$_GET['swap']);
else
{
ShowFiles();
$mainpage=true;
}
if($mainpage and isset($Mainclass->navigation[0]))
$Mainclass->navigation[0][1]='!'.$Mainclass->navigation[0][1];
function DoIt($task)
{global $Mainclass,$mainpage,$jscripts,$title;
switch ($task)
{
case 'add':
AddEditFile(true);
break;
case 'news':
ShowFiles(2);
break;
case 'categories':
$Mainclass->Url->SetPrefix(array('do'=>'categories'),true);
$Mainclass->Categories_l->delete_func_callback='DeleteFilesCategories';
$content=$Mainclass->Categories_l->AdminInit();
$title=$Mainclass->Categories_l->title;
$jscripts=array_merge($jscripts,$Mainclass->Categories_l->jscripts);
$Mainclass->ShowDecoration();
echo $content;
break;
case 'options':
FilesOptions();
break;
default:
ShowFiles();
$mainpage=true;
break;
}
}
function FilesOptions()
{global $Mainclass,$title,$jscripts;
$Mainclass->Url->SetPrefix(array(array('do'=>'options')),true);
$Mainclass->LoadClass('classes/others/class_settings.php');
$content=$Mainclass->Settings->ShowGroup('module_foto',false);
$title=$Mainclass->Settings->title;
$jscripts=array_merge($jscripts,$Mainclass->Settings->jscripts);
$Mainclass->navigation=array_merge($Mainclass->navigation,$Mainclass->Settings->navigation);
$Mainclass->ShowDecoration();
echo $content;
}
/*
Функция отображает список файлов. Параметр $active определяет, какие файлы показывать
*/
function ShowFiles($active=0)
{global $Mainclass,$title,$jscripts;
switch ($active)
{
case 0:
default:
$title=$Mainclass->lang['foto']['foto_list'];
$where='`status`>=0';
$pages_arr=array();
break;
#case 1:
# $title=$Mainclass->lang['foto']['broken_foto'];
# $where='`status`=2';
# $pages_arr=array('do'=>'brokenfoto');
#break;
case 2:
$title=$Mainclass->lang['foto']['new_foto'];
$where='`status`=-1';
$pages_arr=array('do'=>'news');
break;
}
$ficat=0;
$fititle='';
if(!empty($_REQUEST['filter']))
{
$pages_arr['filter']=1;
if(!empty($_REQUEST['ficat']))
{
$pages_arr['ficat']=$ficat=$_REQUEST['ficat'];
$where.=' AND `main_cat`='.(int)$ficat;
}
if(!empty($_REQUEST['fititle']))
{
$pages_arr['fititle']=$fititle=$_REQUEST['fititle'];
$where.=' AND `title` LIKE \'%'.$Mainclass->Db->EscapeString($fititle).'%\'';
}
}
if(count($pages_arr)<=1)
unset($pages_arr['filter']);
if(CheckKey() and isset($_POST['op']) and $_POST['mass'] and is_array($_POST['mass']))
{
switch($_POST['op'])
{
case 'd':
$Mainclass->Db->Update('foto',array('status'=>0),'`id`'.$Mainclass->Db->In($_POST['mass']),__file__,__line__);
break;
case 'a':
$Mainclass->Db->Update('foto',array('status'=>1),'`id`'.$Mainclass->Db->In($_POST['mass']),__file__,__line__);
break;
case 's':
$Mainclass->Db->Update('foto',array('!status'=>'NOT `status`'),'`id`'.$Mainclass->Db->In($_POST['mass']),__file__,__line__);
break;
case 'k':
$Mainclass->Loadclass('classes/others/class_uploader.php');
$Mainclass->LoadClass('classes/others/class_comments.php');
$Mainclass->Db->Query('SELECT `id` FROM `f_foto` WHERE `id`'.$Mainclass->Db->In($_POST['mass']),__file__,__line__);
while($arr=$Mainclass->Db->Fetch_assoc())
{
$Mainclass->Uploader->DeleteFile('foto',$arr['id']);
$Mainclass->Uploader->DeleteFile('temp_foto',$arr['id']);
}
$Mainclass->Comments->DeleteComments($_POST['mass']);
$Mainclass->Db->Delete('foto','`id`'.$Mainclass->Db->In($_POST['mass']),__file__,__line__);
$Mainclass->Db->Delete('foto_l','`id`'.$Mainclass->Db->In($_POST['mass']),__file__,__line__);
break;
case 'n':
$Mainclass->Db->Update('foto',array('status'=>-1),'`id`'.$Mainclass->Db->In($_POST['mass']),__file__,__line__);
break;
}
CleanCache();
}
$op_list=Template::Option($Mainclass->lang['main']['activate'],'a').Template::Option($Mainclass->lang['main']['deactivate'],'d').Template::Option($Mainclass->lang['main']['turn_active'],'s').Template::Option($Mainclass->lang['main']['delete'],'k').Template::Option($Mainclass->lang['main']['mark_new'],'n');
$page=isset($_GET['page']) ? (int)$_GET['page'] : 1;
if($page<=0)
$page=1;
$per_page=30;
$offset=abs(($page-1)*$per_page);
$n=0;
$Mainclass->Loadclass('classes/others/class_categories_l.php');
$cat_list=$Mainclass->Categories_l->GetCatOptions($ficat);
$content=$Mainclass->Template->Title($title)
.$Mainclass->Template->OpenTable()
.'<form action="" method="post"><table class="filtertable"><tr><td><b>'.$Mainclass->lang['main']['filter'].':</b> '.Template::Edit('fititle',$fititle).' '.Template::Select('ficat',Template::Option('-'.$Mainclass->lang['main']['category'].'-',0).$cat_list).' '.Template::Button($Mainclass->lang['main']['apply'],'submit').Template::Control('filter','hidden',1).'</td></tr></table></form>
<form id="foto_form" action="'.$Mainclass->Url->ConstructUrl($pages_arr+array('page'=>$page)).'" method="post" onsubmit="return (CheckGroup(this) && confirm(\''.$Mainclass->lang['main']['are_you_sure'].'\'))"><table class="tabstyle">
<tr class="tablethhead"><th width="15">ID</th><th>'.$Mainclass->lang['main']['name'].'</th><th>'.$Mainclass->lang['foto']['categories'].'</th><th>'.$Mainclass->lang['foto']['groups'].'</th><th width="80">'.$Mainclass->lang['main']['functs'].'</th><th width="20">'.Template::Check('mass',false,'id="foto_mass_check"').'</th></tr>';
$Mainclass->Db->Query('SELECT `id`,`cats`,`main_cat`,`title`,`groups`,`status` FROM `f_foto` LEFT JOIN `f_foto_l` USING(`id`) WHERE '.$where.' AND `language` IN (\'\',\''.$Mainclass->lang_name.'\') ORDER BY `pinned` DESC, `date` DESC, `id` DESC LIMIT '.$offset.', '.$per_page,__file__,__line__);
$used_cats=$used_groups=array();
if($Mainclass->Db->Num_rows()==0)
$content.='<tr><td colspan="6" align="center"><b>'.$Mainclass->lang['foto']['no_foto'].'</b></td></tr>';
while($arr=$Mainclass->Db->Fetch_assoc())
{
if($arr['cats'])
{
$cats=explode(',',trim($arr['cats'],','));
foreach($cats as $k=>$v)
$cats[$k]=(int)$v;
}
else
$cats=array();
if($arr['main_cat'])
array_unshift($cats,$arr['main_cat']);
if($arr['groups'])
{
$groups=explode(',',trim($arr['groups'],','));
foreach($groups as $k=>$v)
$groups[$k]=(int)$v;
}
else
$groups=array();
if($cats)
$used_cats=array_merge($used_cats,$cats);
if($groups)
$used_groups=array_merge($used_groups,$groups);
$status=(int)$arr['status'];
if($status>=0)
$status=$status
? '<a href="'.$Mainclass->Url->ConstructUrl(array('swap'=>$arr['id'])).'" title="'.$Mainclass->lang['main']['deactivate'].'"><img src="'.$Mainclass->Template->GetImage('active.png').'" alt="'.$Mainclass->lang['main']['deactivate'].'" /></a>'
: '<a href="'.$Mainclass->Url->ConstructUrl(array('swap'=>$arr['id'])).'" title="'.$Mainclass->lang['main']['activate'].'"><img src="'.$Mainclass->Template->GetImage('inactive.png').'" alt="'.$Mainclass->lang['main']['activate'].'" /></a>';
else
$status='';
$content.='<tr class="'.($n++ % 2 ? 'tabletrline2' : 'tabletrline1').'"><td align="center">'.$arr['id'].'</td><td><a href="'.($edit=$Mainclass->Url->ConstructUrl(array('edit'=>$arr['id']))).'" title="'.$Mainclass->lang['main']['edit'].'">'.$arr['title'].'</a></td><td align="center">'.($cats ? 'cat_'.implode('_, cat_',$cats).'_' : '<i>'.$Mainclass->lang['main']['no'].'</i>').'</td><td align="center">'.($groups ? 'gr_'.implode('_, gr_',$groups).'_' : '<i>'.$Mainclass->lang['main']['no'].'</i>').'</td><td class="function">'.$status.'<a href="'.$edit.'" title="'.$Mainclass->lang['main']['edit'].'"><img src="'.$Mainclass->Template->GetImage('edit.png').'" alt="'.$Mainclass->lang['main']['edit'].'" /></a><a href="'.$Mainclass->Url->ConstructUrl(array('delete'=>$arr['id'])).'" title="'.$Mainclass->lang['main']['delete'].'"><img src="'.$Mainclass->Template->GetImage('delete.png').'" alt="'.$Mainclass->lang['main']['delete'].'" /></a></td><td align="center">'.Template::Check('mass[]',false,'value="'.$arr['id'].'"').'</td></tr>';
}
$content.='</table><div class="submitline" style="text-align: right;">'.$Mainclass->lang['main']['with_selected'].Template::Select('op',$op_list).' '.Template::Button($Mainclass->lang['main']['ok']).'</div></form>
<script type="text/javascript">
One2AllCheckboxes("foto_form","foto_mass_check","mass[]");
</script>'.$Mainclass->Template->CloseTable();
$used_cats=array_unique($used_cats);
$used_groups=array_unique($used_groups);
if($used_cats)
{
$Mainclass->Db->Query('SELECT `id`, `title` FROM `f_foto_categories` INNER JOIN `f_foto_categories_l` USING(`id`) WHERE `language` IN (\'\',\''.$Mainclass->lang_name.'\') AND `id`'.$Mainclass->Db->In($used_cats),__file__,__line__);
while($temp=$Mainclass->Db->Fetch_assoc())
$content=str_replace('cat_'.$temp['id'].'_',$temp['title'],$content);
}
if(count($used_groups)>0)
{
$Mainclass->Db->Query('SELECT `id`,`title`,`html_pref`,`html_end` FROM `f_groups` WHERE `id`'.$Mainclass->Db->In($used_groups),__file__,__line__);
while($temp=$Mainclass->Db->Fetch_assoc())
$content=str_replace('gr_'.$temp['id'].'_',$temp['html_pref'].$temp['title'].$temp['html_end'],$content);
}
$Mainclass->Db->Query('SELECT COUNT(DISTINCT `id`) FROM `f_foto` LEFT JOIN `f_foto_l` USING(`id`) WHERE '.$where.' AND `language` IN (\'\',\''.$Mainclass->lang_name.'\')',__file__,__line__);
$temp=$Mainclass->Db->Fetch_row();
$Mainclass->ShowDecoration(false);
echo $content.Strings::Pages($temp[0],$per_page,$pages_arr);
}
function AddEditFile($id,$error='')
{global $Mainclass, $title, $jscripts;
require $Mainclass->root_path.'addons/addons.php';
$jscripts[]='js/module_foto.js';
$jscripts[]='js/tabcontent.js';
$jscripts[]='js/eleanor_tooltip.js';
$Mainclass->Loadclass('classes/others/class_editor.php');
$Mainclass->Loadclass('classes/others/class_uploader.php');
$values=array();
$multilang=array_combine(array_keys($Mainclass->langs),array_fill(0,count($Mainclass->langs),array('title'=>'','text'=>'')));
if($id===true)
{
$title=$Mainclass->lang['foto']['adding_file'];
$values['id']='new';
$values['url']=$values['author']=$values['author_id']=$values['size']=$values['version']=$values['s_descr']=$values['s_title']='';
$values['license']='Free';
$values['cats']=$values['groups']=$values['icons']=array();
$values['show_sokr']=$values['pinned']=false;
$values['status']=1;
$values['main_cat']=0;
$values['date']=date('Y-m-d H:i:s');
$values['allow_comm']=1;
$values['images']=$values['foto']=array();
$values['one_lang']=!$Mainclass->vars['multilang'];
}
else
{
if(!$error)
{
$Mainclass->Db->Query('SELECT * FROM `f_foto` WHERE `id`='.$id.' LIMIT 1',__file__,__line__);
if($Mainclass->Db->Num_rows()==0)
ExitPrefix();
$values=$Mainclass->Db->Fetch_assoc();
$values['one_lang']=false;
$values['cats']=explode(',',Strings::CleanForExplode($values['cats']));
$values['groups']=explode(',',Strings::CleanForExplode($values['groups']));
$values['icons']=explode(',',Strings::CleanForExplode($values['icons']));
$values['foto']=$values['foto'] ? unserialize($values['foto']) : array();
$values['images']=$values['images'] ? unserialize($values['images']) : array();
$Mainclass->Db->Query('SELECT `language`, `title`,`text` FROM `f_foto_l` WHERE `id`='.$id,__file__,__line__);
while($temp=$Mainclass->Db->Fetch_assoc())
if(isset($multilang[$temp['language']]))
{
$multilang[$temp['language']]['title']=$temp['title'];
$multilang[$temp['language']]['text']=$temp['text'];
}
elseif(!$temp['language'])
{
$multilang[$Mainclass->lang_name]['title']=$temp['title'];
$multilang[$Mainclass->lang_name]['text']=$temp['text'];
$values['one_lang']=true;
break;
}
}
else
$values['id']=(int)$id;
$title=$Mainclass->lang['foto']['editing_file'];
}
if($error)
{
$values['url']=isset($_POST['url']) ? $_POST['url'] : '';
$values['author']=isset($_POST['author']) ? $_POST['author'] : '';
$values['author_id']=isset($_POST['author_id']) ? (int)$_POST['author_id'] : '';
$values['cats']=((isset($_POST['cats']) and is_array($_POST['cats'])) ? $_POST['cats'] : array());
$values['main_cat']=isset($_POST['main_cat']) ? (int)$_POST['main_cat'] : 0;
$values['date']=isset($_POST['date']) ? $_POST['date'] : '';
$values['size']=isset($_POST['size']) ? $_POST['size'] : '';
$values['version']=isset($_POST['version']) ? $_POST['version'] : '';
$values['license']=isset($_POST['license']) ? $_POST['license'] : '';
$values['groups']=((isset($_POST['groups']) and is_array($_POST['groups'])) ? $_POST['groups'] : array());
$values['show_sokr']=isset($_POST['show_sokr']);
$values['status']=isset($_POST['status']) ? (int)$_POST['status'] : '';
$values['icons']=((isset($_POST['icons']) and is_array($_POST['icons'])) ? array_keys($_POST['icons']) : array());
$values['s_descr']=isset($_POST['s_descr']) ? $_POST['s_descr'] : '';
$values['s_title']=isset($_POST['s_title']) ? $_POST['s_title'] : '';
$values['one_lang']=isset($_POST['one_lang']);
$values['pinned']=isset($_POST['pinned']);
$values['allow_comm']=isset($_POST['allow_comm']) ? (int)$_POST['allow_comm'] : 1;
$values['foto']=$values['images']=array();
if(is_array($_POST['file_link']) and is_array($_POST['file_descr']) and count($_POST['file_link'])==count($_POST['file_descr']))
$values['foto']=array('foto'=>$_POST['file_link'],'descr'=>$_POST['file_descr']);
if(is_array($_POST['image_link']) and is_array($_POST['image_descr']) and count($_POST['image_link'])==count($_POST['image_descr']))
$values['images']=array('images'=>$_POST['image_link'],'descr'=>$_POST['image_descr']);
foreach($multilang as $k=>$v)
if($Mainclass->lang_name==$k)
{
if(isset($_POST['title']))
$multilang[$k]['title']=$_POST['title'];
if(isset($_POST['text']))
$multilang[$k]['text']=$Mainclass->Editor->GetHTML('text');
}
else
{
if(isset($_POST['title_'.$k]))
$multilang[$k]['title']=$_POST['title_'.$k];
if(isset($_POST['text_'.$k]))
$multilang[$k]['text']=$Mainclass->Editor->GetHTML('text_'.$k);
}
}
$groups_list='';
$Mainclass->Db->Query('SELECT `id`, `title` FROM `f_groups` ORDER BY `title` ASC',__file__,__line__);
while($arr=$Mainclass->Db->Fetch_assoc())
$groups_list.=Template::Option($arr['title'],$arr['id'],in_array($arr['id'],$values['groups']));
$Mainclass->Loadclass('classes/others/class_categories_l.php');
$main_cat_list=$Mainclass->Categories_l->GetCatOptions($values['main_cat']);
$cats_list=$Mainclass->Categories_l->GetCatOptions($values['cats']);
$values['date']=Calendar('date',$values['date'],true);
$ac=Template::Option($Mainclass->lang['main']['yes'],1,$values['allow_comm']==1).Template::Option($Mainclass->lang['main']['no'],0,$values['allow_comm']==0).Template::Option($Mainclass->lang['foto']['with_mod'],-1,$values['allow_comm']==-1);
$arr_icons=array();
if(!is_array($values['icons']))
$values['icons']=array();
$hdir=@opendir($Mainclass->root_path.'images/medals');
if($hdir!==false)
while($entry=readdir($hdir))
if(!is_dir($Mainclass->root_path.'images/medals/'.$entry) and preg_match('#\.(?:gif|png|jpg|jpeg)$#i',$entry)>0)
$arr_icons[]=$entry;
closedir($hdir);
sort($arr_icons);
$icons_table='<table style="border-collapse: separate; border-spacing: 10px;"><tr>';
$num=0;
$last=end($arr_icons);
foreach($arr_icons as &$v)
{
$num++;
$icons_table.='<td>'.Template::Check('icons['.$v.']',in_array($v,$values['icons']),'id="'.$v.'"').'<img src="images/medals/'.$v.'" alt="" onclick="SetCheckBox(\''.$v.'\')" /></td>';
if($num==4 and $v!=$last)
{
$icons_table.='</tr><tr>';
$num=0;
}
}
if($num>0)
for (;$num<4;$num++)
$icons_table.='<td></td>';
$icons_table.='</tr></table>';
$images_list=$foto_list=$file_link=$file_desc=$image_link=$image_desc='';
if($values['foto'])
{
$id_f='foto_';
foreach($values['foto']['foto'] as $k=>&$v)
{
if($k==0)
{
$file_link=$v;
$file_desc=$values['foto']['descr'][$k];
continue;
}
$foto_list.='<li id="'.$id_f.$k.'">
<a href="#" class="faisup_btn" onclick="return FilesSub(\''.$id_f.$k.'\')"><img src="images/misc/faisup_minus.gif" alt="-" /></a>
<ul>
<li><span>'.$Mainclass->lang['foto']['link_to_file'].'</span><div>'.Template::Edit('file_link[]',$v,'style="width: 320px;" onfocus="var e=this;EDITOR.NewEditor(-1,function(t){e.value=t},function(t){e.value=t},function(t){return e.value})"').'</div></li>
<li><span>'.$Mainclass->lang['foto']['link_name'].'</span><div>'.Template::Text('file_descr[]',$values['foto']['descr'][$k],'rows="2"').'</div></li>
</ul>
<div class="clr"></div>
</li>';
}
}
if($values['images'])
{
$id_i='images_';
foreach($values['images']['images'] as $k=>&$v)
{
if($k==0)
{
$image_link=$v;
$image_desc=$values['images']['descr'][$k];
continue;
}
$images_list.='<li id="'.$id_i.$k.'">
<a href="#" class="faisup_btn" onclick="return FilesSub(\''.$id_i.$k.'\')"><img src="images/misc/faisup_minus.gif" alt="-" /></a>
<ul>
<li><span>'.$Mainclass->lang['foto']['link_pic'].'</span><div>'.Template::Edit('image_link[]',$v,'style="width: 320px;" onfocus="var e=this;EDITOR.NewEditor(-1,function(t){e.value=t},function(t){e.value=t},function(t){return e.value})"').'</div></li>
<li><span>'.$Mainclass->lang['foto']['descr'].'</span><div>'.Template::Text('image_descr[]',$values['images']['descr'][$k],'rows="2"').'</div></li>
</ul>
<div class="clr"></div>
</li>';
}
}
$Mainclass->Editor->bb_detail=true;
$active_opts=Template::Option($Mainclass->lang['main']['waiting_act'],'-1',$values['status']==-1).Template::Option($Mainclass->lang['main']['inactive'],'0',$values['status']==0).Template::Option($Mainclass->lang['main']['active'],'1',$values['status']>=1);
if(!$main_cat_list)
$content=$Mainclass->Template->Message($Mainclass->lang['foto']['no_categories']);
else
{
$text=$Mainclass->Editor->Area('text',$multilang[$Mainclass->lang_name]['text'],20,'',true);
$multil_text=$multil_check='';
if($Mainclass->vars['multilang'])
{
$multil_check=array();
$multil_text='<div id="tab5" class="tabcontent"><ul class="editlang">';
foreach($multilang as $k=>$v)
{
$lang_title=ucfirst($k).' / '.ucfirst($Mainclass->langs[$k]);
$multil_check[]=Template::Check('lang[]',$visible=($v['title'] or $v['text'] or !is_int($id)),'value="'.$k.'"').' '.$lang_title;
if($k==$Mainclass->lang_name)
continue;
$multil_text.='<li id="lang_'.$k.'" style="display:'.($visible ? 'block' : 'none').'"><a href="#" onclick="$(\'#table_'.$k.'\').slideToggle(\'slow\');return false" class="ol_heading">
'.(file_exists($Mainclass->root_path.'images/lang_flags/'.$k.'.png') ? '<img src="images/lang_flags/'.$k.'.png" alt="'.$lang_title.'" /> ' : '').'<span>'.$lang_title.'</span></a>
<div id="table_'.$k.'">
<table class="tabstyle tabform">
<tr><td class="label">'.$Mainclass->lang['main']['title'].':</td><td>'.Template::Edit('title_'.$k,$v['title']).'</td></tr>
<tr><td class="label">'.$Mainclass->lang['foto']['full_text'].'</td><td>'.$Mainclass->Editor->Area('text_'.$k,$v['text'],5).'</td></tr>
</table>
</div>
</li>';
}
$multil_text.='</ul><script type="text/javascript">DoMultiLangChecks()</script></div>';
$multil_check='<tr><td class="label">'.$Mainclass->lang['main']['set_for_langs'].'</td><td>'
.Template::Check('one_lang',$values['one_lang'])
.' <b>'.$Mainclass->lang['main']['for_all_langs'].'</b><br /><div id="lang_checks" style="display:'.($values['one_lang'] ? 'none' : 'block').'">'
.join('<br />',$multil_check).'</div></td></tr>';
}
$content=$Mainclass->Template->Title($title).($error ? $Mainclass->Template->Message($error) : '')
.$Mainclass->Template->OpenTable()
.'<form action="'.$Mainclass->Url->ConstructUrl(array('save'=>$values['id'])).'" method="post">
<table class="tabstyle tabform">
<tr><td class="label">'.$Mainclass->lang['main']['title'].':<span class="imp">*</span></td><td>'.Template::Edit('title',$multilang[$Mainclass->lang_name]['title']).'</td></tr>
<tr><td class="label">'.$Mainclass->lang['foto']['main_cat'].'<span class="imp">*</span></td><td>'.Template::Select('main_cat',$main_cat_list).'</td></tr>
</table>
<ul id="blockstabs" class="reset linetabs">
<li><a href="#" rel="tab1" class="selected"><b>'.$Mainclass->lang['main']['general'].'</b></a></li>
<li><a href="#" rel="tab2"><b>'.$Mainclass->lang['foto']['full'].'</b></a></li>
<li><a href="#" rel="tab3"><b>'.$Mainclass->lang['foto']['foto_and_pics'].'</b></a></li>
<li><a href="#" rel="tab4"><b>'.$Mainclass->lang['main']['settings'].'</b></a></li>
'.($Mainclass->vars['multilang'] ? '<li id="langs_tab" style="display:'.($values['one_lang'] ? 'none' : 'block').'"><a href="#" rel="tab5" class="selected"><b>'.$Mainclass->lang['main']['other_langs'].'</b></a></li>' : '').'
</ul>
<div id="tab1" class="tabcontent">
<table class="tabstyle tabform">
<tr><td class="label">'.$Mainclass->lang['main']['url_l'].'</td><td>'.Template::Edit('url',$values['url']).'</td></tr>
<tr><td class="label"><span class="labinfo" onmouseover="ElTip(this,\''.$Mainclass->lang['foto']['future_date'].'\')">(?)</span>'.$Mainclass->lang['foto']['date'].'<span class="imp">*</span></td><td>'.$values['date'].'</td></tr>
<tr><td class="label">'.$Mainclass->lang['foto']['author'].'</td><td>'.Author($values['author'],$values['author_id']).'</td></tr>
<tr><td class="label">'.$Mainclass->lang['foto']['version'].'</td><td>'.Template::Edit('version',$values['version']).'</td></tr>
<tr><td class="label">'.$Mainclass->lang['foto']['size'].'</td><td>'.Template::Edit('size',$values['size']).'</td></tr>
<tr><td class="label">'.$Mainclass->lang['foto']['license'].'</td><td>'.Template::Edit('license',$values['license']).'</td></tr>
<tr><td class="label">'.$Mainclass->lang['foto']['show_sokr'].'</td><td>'.Template::Check('show_sokr',$values['show_sokr']).'</td></tr>
<tr><td class="label"><span style="color: #'.($values['status']>0 ? '71ad08' : 'd23100').'">'.$Mainclass->lang['main']['status'].'</span></td><td>'.Template::Select('status',$active_opts).'</td></tr>
'.$multil_check.'
</table>
</div>
<div id="tab2" class="tabcontent">
<table class="tabstyle tabform">
<tr><td class="label">'.$Mainclass->lang['foto']['full_text'].'</td><td>'.$text.'</td></tr>
<tr><td class="label">'.$Mainclass->lang['foto']['icons'].'</td><td>'.$icons_table.'</td></tr>
</table>
</div>
<div id="tab3" class="tabcontent">
<table class="tabstyle tabform">
<tr class="infolabel"><td>'.$Mainclass->lang['foto']['foto_list'].':</td><td><a href="#" onclick="return FilesAdd(\'foto\')"><img align="right" src="images/misc/faisup_plus.gif" alt="+" /></a></td></tr>
<tr><td colspan="2">
<ul class="reset faisup">
<li id="foto">
<a href="#" class="faisup_btn" style="display:none"><img src="images/misc/faisup_minus.gif" alt="-" /></a>
<ul>
<li><span>'.$Mainclass->lang['foto']['link_to_file'].'</span><div>'.Template::Edit('file_link[]',$file_link,'style="width: 320px;" onfocus="var e=this;EDITOR.NewEditor(-1,function(t){e.value=t},function(t){e.value=t},function(t){return e.value})"').'</div></li>
<li><span>'.$Mainclass->lang['foto']['link_name'].'</span><div>'.Template::Text('file_descr[]',$file_desc,'rows="2"').'</div></li>
</ul>
<div class="clr"></div>
</li>'.$foto_list.'
</ul>
</td></tr>
<tr class="infolabel"><td>'.$Mainclass->lang['foto']['pics_list'].'</td><td><a href="#" onclick="return FilesAdd(\'images\')"><img align="right" src="images/misc/faisup_plus.gif" alt="+" /></a></td></tr>
<tr><td colspan="2">
<ul class="reset faisup">
<li id="images">
<a href="#" class="faisup_btn" style="display:none"><img src="images/misc/faisup_minus.gif" alt="-" /></a>
<ul>
<li><span>'.$Mainclass->lang['foto']['link_pic'].'</span><div>'.Template::Edit('image_link[]',$image_link,'style="width: 320px;" onfocus="var e=this;EDITOR.NewEditor(-1,function(t){e.value=t},function(t){e.value=t},function(t){return e.value})"').'</div></li>
<li><span>'.$Mainclass->lang['foto']['descr'].':</span><div>'.Template::Text('image_descr[]',$image_desc,'rows="2"').'</div></li>
</ul>
<div class="clr"></div>
</li>'.$images_list.'
</ul>
</td></tr>
</table>
</div>
<div id="tab4" class="tabcontent">
<table class="tabstyle tabform">
<tr><td class="label">'.$Mainclass->lang['foto']['window_title'].'</td><td>'.Template::Edit('s_title',$values['s_title'],'maxlength="100"').'</td></tr>
<tr><td class="label">'.$Mainclass->lang['foto']['meta_descr'].'</td><td>'.Template::Edit('s_descr',$values['s_descr'],'maxlength="250"').'</td></tr>
<tr><td class="label">'.$Mainclass->lang['foto']['show_in_cats'].'</td><td>'.Template::Items('cats',$cats_list).'</td></tr>
<tr><td class="label">'.$Mainclass->lang['foto']['groups_access'].'</td><td>'.Template::Items('groups[]',$groups_list).'</td></tr>
<tr><td class="label">'.$Mainclass->lang['foto']['pinned'].'</td><td>'.Template::Check('pinned',$values['pinned']).'</td></tr>
<tr><td class="label">'.$Mainclass->lang['foto']['allow_comment'].'</td><td>'.Template::Select('allow_comm',$ac).'</td></tr>
</table>
</div>'.$multil_text;
$ref=isset($_POST['back']) ? @base64_decode($_POST['back']) : $Mainclass->MyGetEnv('HTTP_REFERER');
if($ref)
$content.=Template::Control('back','hidden',base64_encode($ref));
$content.='<div class="submitline">'.$Mainclass->Uploader->Show($id===true ? 'temp_foto' : ($values['status']==0 ? 'temp_foto' : 'foto').'/'.$id,$id===true).Template::Button().' '.(ctype_digit((string)$id) ? Template::Button($Mainclass->lang['main']['delete'],'button','onclick="window.location=\''.$Mainclass->Url->ConstructUrl(array('delete'=>$id)).'\'"') : '').'</div>
</form>
<script type="text/javascript">
var countries=new ddtabcontent("blockstabs");
countries.setpersist(true);
countries.setselectedClassTarget("link");
countries.init();
</script>'.$Mainclass->Template->CloseTable();
}
$Mainclass->ShowDecoration();
echo $content;
}
function SaveFile($id)
{global $Mainclass;
if($_SERVER['REQUEST_METHOD']!='POST')
return AddEditFile($id);
if(!CheckKey())
return ExitPrefix();
$title=trim(isset($_POST['title']) ? $Mainclass->POST['title'] : '');
if(!$title)
return AddEditFile($id,$Mainclass->lang['foto']['empty_title']);
$url=$Mainclass->Url->UrlString(isset($_POST['url']) ? $_POST['url'] : '');
if(!$url)
$_POST['url']=$url=$Mainclass->Url->UrlString($_POST['title']);
$q_and=$id===true ? '' : ' AND `id`!='.$id;
$Mainclass->Db->FQuery('SELECT `id` FROM {"0"} WHERE `url`={"1"}'.$q_and.' LIMIT 1',array('foto','s_'.$url),__file__,__line__);
if($Mainclass->Db->Num_rows()!=0)
$url=null;
$main_cat=isset($_POST['main_cat']) ? (int)$_POST['main_cat'] : 0;
$cats=isset($_POST['cats']) ? $_POST['cats'] : array();
if(!is_array($cats))
$cats=array();
else
foreach($cats as $k=>$v)
if(!ctype_digit((string)$v) or $v==$main_cat)
unset($cats[$k]);
sort($cats,SORT_NUMERIC);
$groups=isset($_POST['groups']) ? $_POST['groups'] : array();
if(!is_array($groups))
$groups=array();
else
foreach($groups as $k=>$v)
if(!ctype_digit((string)$v))
unset($groups[$k]);
sort($groups,SORT_NUMERIC);
$foto=$images=array();
if(is_array($_POST['file_link']) and is_array($_POST['file_descr']) and count($_POST['file_link'])==count($_POST['file_descr']))
$foto=array('foto'=>$_POST['file_link'],'descr'=>$_POST['file_descr']);
if(is_array($_POST['image_link']) and is_array($_POST['image_descr']) and count($_POST['image_link'])==count($_POST['image_descr']))
$images=array('images'=>$_POST['image_link'],'descr'=>$_POST['image_descr']);
$Mainclass->Loadclass('classes/others/class_editor.php');
$text=$Mainclass->Editor->GetHTML('text');
$author=isset($_POST['author']) ? $Mainclass->POST['author'] : '';
$author_id=isset($_POST['author_id']) ? (int)$_POST['author_id'] : '';
if(!$author)
$author=$Mainclass->Account->GetValue('name');
if(!$author_id)
$author_id=$Mainclass->Account->GetValue('id');
if($author_id==-1)
$author_id=$Mainclass->Account->GetUserIdByName($author);
if($Mainclass->vars['multilang'] and !isset($_POST['one_lang']))
{
$langs=(empty($_POST['lang']) or !is_array($_POST['lang'])) ? array() : $_POST['lang'];
$langs=array_intersect(array_keys($Mainclass->langs),$langs);
if(!$langs)
$langs=array($Mainclass->lang_name);
}
else
$langs=array('');
$arr_values=array(
'url' =>$url,
'main_cat' =>$main_cat,
'cats' =>$cats ? ','.implode(',',$cats).',' : '',
'author' =>$author,
'author_id' =>$author_id,
'groups' =>$groups ? ',,'.join(',',$groups).',' : '',
'icons'=>(isset($_POST['icons']) and is_array($_POST['icons'])) ? implode(',',array_keys($_POST['icons'])) : '',
'show_sokr' =>isset($_POST['show_sokr']),
'date' =>isset($_POST['date']) ? Strings::CheckDate($_POST['date'],true) : date('Y-m-d H:i:s'),
'size' =>isset($_POST['size']) ? $Mainclass->POST['size'] : '',
'version' =>isset($_POST['version']) ? $Mainclass->POST['version'] : '',
'license' =>isset($_POST['license']) ? $Mainclass->POST['license'] : '',
'status' =>isset($_POST['status']) ? (int)$_POST['status'] : '',
'allow_comm'=>isset($_POST['allow_comm']) ? (int)$_POST['allow_comm'] : 1,
's_descr' =>isset($_POST['s_descr']) ? $Mainclass->POST['s_descr'] : '',
's_title' =>isset($_POST['s_title']) ? $Mainclass->POST['s_title'] : '',
'pinned' =>isset($_POST['pinned']),
);
if(is_int($id))
{
$arr_values+=array(
'foto'=>serialize($foto),
'images'=>serialize($images),
);
#Переименовывание папки
$Mainclass->Db->Query('SELECT `id`,`status` FROM `f_foto` WHERE `id`='.$id.' LIMIT 1',__file__,__line__);
if(list($id,$status)=$Mainclass->Db->Fetch_row())
{
$from=$Mainclass->root_path.Mainclass::UPLOADS_DIR.'/'.($status==0 ? 'temp_foto' : 'foto').'/'.$id;
if($status<=0 xor $arr_values['status']<=0)
{
$to=$Mainclass->root_path.Mainclass::UPLOADS_DIR.'/'.($arr_values['status']==0 ? 'temp_foto' : 'foto').'/'.$id;
if(file_exists($from))
{
$rep=rename($from,$to);
if(!$rep)
return AddEditFile($id,'Can\'r rename folder!');
$from=$to;
}
}
$foto=glob($from.'/*');
if(!$foto)
{
Functions::RmDir($from);
$rep=false;
}
}
$Mainclass->Db->Update('foto',$arr_values,'`id`='.$id.' LIMIT 1',__file__,__line__);
$Mainclass->Db->Delete('foto_l','`id`='.$id.' AND `language`'.$Mainclass->Db->In($langs,true),__file__,__line__);
foreach($langs as &$v)
{
if(!$v or $Mainclass->lang_name==$v)
$values=array(
'title'=>$title,
'text'=>$Mainclass->Editor->GetHTML('text'),
);
else
$values=array(
'title'=>$_POST['title_'.$v],
'text'=>$Mainclass->Editor->GetHTML('text_'.$v),
);
$Mainclass->Db->Replace('foto_l',$values+array('id'=>$id,'language'=>$v),__file__,__line__);
}
}
else
{
$Mainclass->Loadclass('classes/others/class_uploader.php');
$id=$Mainclass->Db->Insert('foto',$arr_values,__file__,__line__);
$Mainclass->Uploader->RenameNew('temp_foto','/'.Mainclass::UPLOADS_DIR.'/'.($arr_values['status']==0 ? 'temp_foto' : 'foto').'/'.$id);
foreach($foto['foto'] as &$v)
$v=str_replace(Mainclass::UPLOADS_DIR.'/temp_foto/new/',Mainclass::UPLOADS_DIR.'/foto/'.$id.'/',$v);
foreach($images['images'] as &$v)
$v=str_replace(Mainclass::UPLOADS_DIR.'/temp_foto/new/',Mainclass::UPLOADS_DIR.'/foto/'.$id.'/',$v);
$arr_values=array(
'foto'=>serialize($foto),
'images'=>serialize($images),
);
$Mainclass->Db->Update('foto',$arr_values ,'`id`='.$id.' LIMIT 1',__file__,__line__);
$values=array('id'=>array(),'language'=>array(),'title'=>array(),'text'=>array());
foreach($langs as &$v)
{
$values['id'][]=$id;
$values['language'][]=$v;
if(!$v or $Mainclass->lang_name==$v)
{
$title_l=$title;
$text_l=$Mainclass->Editor->GetHTML('text');
}
else
{
$text_l=$Mainclass->Editor->GetHTML('text_'.$v);
$title_l=$Mainclass->POST['title_'.$v];
}
$text_l=str_replace(Mainclass::UPLOADS_DIR.'/temp_foto/new/',Mainclass::UPLOADS_DIR.'/foto/'.$id.'/',$text_l);
$values['title'][]=$title_l;
$values['text'][]=$text_l;
}
$Mainclass->Db->Insert('foto_l',$values,__file__,__line__);
}
CleanCache();
if(empty($_POST['back']))
ExitPrefix();
else
Functions::Redirect(base64_decode($_POST['back']));
}
function SwapFile($id)
{global $Mainclass;
if(!CheckKey())
return ExitPrefix();
$Mainclass->Db->Update('foto',array('!status'=>'NOT `status`'),'`id`='.$id.' LIMIT 1');
CleanCache();
ExitBack();
}
function DeleteFile($id)
{global $Mainclass, $title;
if(!CheckKey())
Functions::Redirect(html_entity_decode($Mainclass->Url->ConstructUrl(array('delete'=>$id))));
$Mainclass->Db->Query('SELECT `title` FROM `f_foto` LEFT JOIN `f_foto_l` USING(`id`) WHERE `id`='.$id.' AND `language` IN (\'\',\''.$Mainclass->lang_name.'\') LIMIT 1',__file__,__line__);
if($Mainclass->Db->Num_rows()==0)
ExitBack();
list($ftitle)=$Mainclass->Db->Fetch_row();
if(isset($_POST['ok']) and $_POST['ok']=='ok')
{
$Mainclass->LoadClass('classes/others/class_comments.php');
$Mainclass->Comments->DeleteComments($id);
$Mainclass->Db->Delete('foto','`id`='.$id.' LIMIT 1',__file__,__line__);
$Mainclass->Db->Delete('foto_l','`id`='.$id,__file__,__line__);
$Mainclass->Loadclass('classes/others/class_uploader.php');
$Mainclass->Uploader->DeleteFile('foto',$id);
$Mainclass->Uploader->DeleteFile('temp_foto',$id);
if(empty($_POST['back']))
ExitPrefix();
else
Functions::Redirect(base64_decode($_POST['back']));
}
else
{
$title=$Mainclass->lang['foto']['del_confirm'];
$back=isset($_POST['back']) ? base64_decode($_POST['back']) : $Mainclass->MyGetEnv('HTTP_REFERER');
if(isset($_GET['no_back']))
$back='';
$Mainclass->ShowDecoration(false);
echo $Mainclass->Template->GetThemeFile(
'Confirm',
array(
'message'=>sprintf($Mainclass->lang['foto']['deleting'],$ftitle).($back ? Template::Control('back','hidden',base64_encode($back)) : ''),
)
);
}
}
function CleanCache()
{global $Mainclass;
$Mainclass->Cache->CleanCacheByTag('foto_mainpage');
}
function DeleteFilesCategories($ids)
{global $Mainclass;
$Mainclass->Loadclass('classes/others/class_uploader.php');
$Mainclass->Db->Query('SELECT `id` FROM `f_foto` WHERE `main_cat`'.$Mainclass->Db->In($ids),__file__,__line__);
$ids=array();
while($arr=$Mainclass->Db->Fetch_assoc())
{
$ids[]=$arr['id'];
$Mainclass->Uploader->DeleteFile('foto',$arr['id']);
$Mainclass->Uploader->DeleteFile('temp_foto',$arr['id']);
}
if($ids)
{
$Mainclass->LoadClass('classes/others/class_comments.php');
$Mainclass->Comments->DeleteComments($ids);
$Mainclass->Db->Delete('foto','`id`'.$Mainclass->Db->In($ids),__file__,__line__);
$Mainclass->Db->Delete('foto_l','`id`'.$Mainclass->Db->In($ids),__file__,__line__);
}
CleanCache();
}
?>