/** * Добавляет строку таблицы для выбора и загрузки изображения * @param $Title * @param $LoadTitle * @param $FileName * @param $Dir * @param string $Name * @param string $LoadName * @param string $FormName * @return void */ function AdminImageControl($Title, $LoadTitle, $FileName, $Dir, $Name = 'image', $LoadName = 'up_image', $FormName = 'edit_form') { $max_file_size = ini_get('upload_max_filesize'); $images_data = array(); $Dir = RealPath2($Dir) . '/'; $images = array(); $images = GetFiles($Dir, false, true, '.gif.png.jpeg.jpg'); $images[-1] = 'no_image/no_image.png'; System::admin()->DataAdd($images_data, $images[-1], 'Нет картинки', $FileName == ''); $selindex = -1; for ($i = 0, $c = count($images) - 1; $i < $c; $i++) { if ($FileName == $images[$i]) { $sel = true; $selindex = $i; } else { $sel = false; } System::admin()->DataAdd($images_data, $images[$i], $images[$i], $sel); } $select = System::admin()->Select($Name, $images_data, false, 'onchange="document.' . $FormName . '.iconview.src=\'' . $Dir . '\'+document.' . $FormName . '.' . $Name . '.value;"'); $ctrl = <<<HTML <table cellspacing="0" cellpadding="0" border="0" width="100%"> \t<tr> \t\t<td valign="top" style="border-bottom:none;">{$select}</td> \t</tr> \t<tr> \t\t<td style="border-bottom:none; padding-top: 5px;" width="100%" align="left"><img height="80" id="iconview" src="{$Dir}{$images[$selindex]}"></td> \t</tr> </table> HTML; System::admin()->FormRow($Title, $ctrl); System::admin()->FormRow($LoadTitle, System::admin()->FFile($LoadName) . '<br /><small>Формат изображений только *.jpg,*.jpeg,*.gif,*.png</small><br /><small>Максимальный размер файла: ' . $max_file_size . '</small>'); }
function AdminUpdateMain() { global $updates_folder; System::admin()->AddCenterBox('Обновление системы'); System::admin()->FormTitleRow('Выберите файл с обновлением'); $update_files = GetFiles($updates_folder, false, true, '.zip'); $update_files_data = array(); foreach ($update_files as $file) { $zip = new ZipArchive(); if ($zip->open($updates_folder . $file) !== true) { $metadata = JsonDecode($zip->getFromName('metadata')); if (isset($metadata) && isset($metadata['type']) && $metadata['type'] == 'update' && isset($metadata['from_version']) && $metadata['from_version'] == CMS_VERSION) { System::site()->DataAdd($update_files_data, $file, $file); } } } if (count($update_files_data) > 0) { System::admin()->FormRow('Выбрать ранее загруженный файл', System::site()->Select('select_file', $update_files_data)); } System::admin()->FormRow('Загрузить файл', System::site()->FFile('upload_file')); System::admin()->AddForm(System::admin()->FormOpen(ADMIN_FILE . '?exe=update&a=upload', 'post', true), System::admin()->Submit('Продолжить')); }
/** * Рекурсивно обходит каталог и возвращает массив с относительными именами файлов просматриваемого каталога. * @param String $folder Имя папки. * @param Boolean $use_subfolders Искать в подпапках * @param Boolean $use_mask Использовать маску поиска * @param String $mask Маска поиска. Вы можете указать расширения (с точкой) через запятую. * @param Boolean $newSearch Начать ли новый поиск (статическая переменная будет перезаписана) * @param String $parentf Не обращайте внимания. Нужна для работы функции. * @return Array Список найденных файлов */ function GetFiles($folder, $use_subfolders = false, $use_mask = false, $mask = '', $newSearch = true, $parentf = '') { static $sfiles = array(); if (!is_dir($folder)) { return array(); } if ($newSearch) { $sfiles = array(); AddLastSlash($folder); } $mask = strtolower($mask); if ($parentf == '') { $parentf = $folder; } $files = scandir($folder); foreach ($files as $file) { if (is_dir($folder . $file) && $file != '.' && $file != '..') { if ($use_subfolders) { GetFiles($folder . $file . '/', $use_subfolders, $use_mask, $mask, false, $parentf); } } elseif (is_file($folder . $file)) { $ext = GetFileExt($file); if (!$use_mask || stripos($mask, strtolower($ext)) !== false) { $rf = str_replace($parentf, '', $folder . $file); $sfiles[] = $rf; } } } return $sfiles; }
/** * Возвращае список всех доступных ключей в группе. * @param string $Group * @return array */ public function GetKeys($Group) { $files = GetFiles($this->Path . $Group . '/'); foreach ($files as $key => $file) { $files[$key] = GetFileName($file, true); } return $files; }
function AdminExtensionsConfig() { System::admin()->AddSubTitle('Настройки модуля'); $name = SafeEnv($_GET['name'], 255, str); System::database()->Select('modules', "`folder`='" . $name . "'"); $mod = System::database()->FetchRow(); System::admin()->FormRow('Имя', System::admin()->Edit('name', $mod['name'], false, 'style="width:200px;" class="autofocus"')); $dir = System::config('tpl_dir') . System::config('general/site_template') . '/themes/'; if (is_dir($dir)) { $templates = GetFiles($dir, false, true, ".html"); } else { $templates = array(); } System::admin()->DataAdd($templates_data, '', 'Стандартный "theme.html"', $mod['theme'] == ''); foreach ($templates as $template) { System::admin()->DataAdd($templates_data, $template, $template, $mod['theme'] == $template); } System::admin()->FormRow('Шаблон страницы', System::admin()->Select('theme', $templates_data)); System::admin()->FormRow('Кто видит', System::admin()->Select('view', GetUserTypesFormData(SafeDB($mod['view'], 1, int)))); System::admin()->FormRow('Включить', System::admin()->Select('enabled', GetEnData((bool) $mod['enabled'], 'Да', 'Нет'))); System::admin()->AddCenterBox('Настройка модуля "' . SafeDB($mod['name'], 255, str) . '"'); System::admin()->AddForm(System::admin()->FormOpen(ADMIN_FILE . '?exe=extensions&a=mod_configsave&name=' . SafeDB($mod['folder'], 255, str)), System::admin()->Button('Отмена', 'onclick="history.go(-1)"') . System::admin()->Submit('Сохранить')); }
/** * Возвращает имена шаблонов блоков, которые имеет текущий шаблон сайта * @return Array */ function GetBlockTemplates() { $TemplateDir = System::config('tpl_dir') . System::config('general/site_template') . '/block/'; return GetFiles($TemplateDir, false, true, '.html.htm.tpl', true); }
<?php error_reporting(0); $UPLOAD_RESULT = true; include "php/tools.php"; include "php/image.php"; include "php/config.php"; include "php/session.php"; $ROOT_FOLDER = explode(",", $SESSION["dir_root"]); include "php/action.php"; $tmp = explode('/', $SESSION["dir"]); $FOLDER = $tmp[count($tmp) - 2]; unset($tmp); $FILES = array(); $FILES = GetFiles($SESSION["dir"], $SESSION["orderby"], explode(",", $SESSION["hidden_filetype"])); ?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> <head> <title>SMExplorer</title> <meta http-equiv="content-type" content="text/html; charset=iso-8859-1" /> <meta http-equiv="content-style-type" content="text/css" /> <meta http-equiv="content-script-type" content="text/javascript" /> <meta name="author" content="Jens Stolinski" /> <meta name="publisher" content="Jens Stolinski" /> <meta name="company" content="SYNASYS MEDIA" /> <?php if ($CONFIG["no_cache"] == 1) { echo "<meta http-equiv=\"cache-control\" content=\"no-cache\" />\n";
} System::admin()->AddJS(' CreateBackup = function(){ Admin.ShowSplashScreen("Создание резервной копии"); $.ajax({ type: "POST", url: "' . ADMIN_FILE . '?exe=dbadmin&a=backup_create", data: {}, success: function(data){ Admin.LoadPage("' . ADMIN_FILE . '?exe=dbadmin&a=backups", undefined, "Обновление страницы"); Admin.HideSplashScreen(); } }); }; '); $backup_files = GetFiles($backup_dir, false, true, '.zip'); rsort($backup_files, SORT_STRING); $backup_files2 = array(); foreach ($backup_files as $file) { if (GetSecondFileExt($file, true) == System::database()->Name) { $backup_files2[] = $file; } } $text = ''; $text .= '<table cellspacing="0" cellpadding="0" class="cfgtable">'; $text .= '<tr><th>Имя файла (дата-время...)</th><th>Функции</th></tr>'; foreach ($backup_files2 as $file) { $file = SafeDB($file, 255, str); $func = System::admin()->SpeedConfirm('Восстановить', ADMIN_FILE . '?exe=dbadmin&a=backup_restore&name=' . $file, 'images/admin/restore.png', 'Все текущие данные будут затёрты. Восстановить БД из резервной копии?'); $func .= System::admin()->SpeedConfirm('Удалить', ADMIN_FILE . '?exe=dbadmin&a=backup_delete&name=' . $file, 'images/admin/delete.png', 'Удалить?'); $text .= '<tr>
/** * Выполняет поиск аватар в галерее и генерирует данные для HTML::Select * @param $avatar * @param $personal * @return array */ function GetGalleryAvatarsData($avatar, $personal) { $avatars = GetFiles(System::config('general/avatars_dir'), false, true, '.gif.jpg.jpeg.png'); $selindex = 0; $avd = array(); if ($personal == '1') { System::site()->DataAdd($avd, '', 'Персональный', true); } for ($i = 0, $c = count($avatars); $i < $c; $i++) { if ($avatar == $avatars[$i]) { $sel = true; $selindex = $i; } else { $sel = false; } System::site()->DataAdd($avd, $avatars[$i], $avatars[$i], $sel); } return array($avd, $avatars[$selindex]); }
fclose($fd); echo "\nChecking for curldist.txt "; if (file_exists($MirrorPath . "curldist.txt")) { echo "Found !\n"; if (filesize($MirrorPath . "curldist.txt") != strlen($FileList)) { echo "New list and old list differ in size, pulling all the files down again\n"; exec("rm -Rf {$MirrorPath}"); exec("mkdir {$MirrorPath}"); GetFiles($FileArray); } else { echo "Lists are the same size, all done\n"; } } else { echo "Not Found."; $fd = fopen($MirrorPath . "curldist.txt", "w+"); fputs($fd, $FileList); fclose($fd); GetFiles($FileArray); } /* This function gets new files from the curl server. */ function GetFiles($FileArray) { global $MirrorPath, $CurlURL; echo "Chaning into {$MirrorPath}\n"; exec("cd {$MirrorPath}"); while (list($k, $v) = each($FileArray)) { exec("wget " . $CurlURL . "" . trim($v) . " -O {$MirrorPath}" . $v); } }
<?php include_once "../common.php"; include_once ROOT_PATH . "/mod/files.php"; include_once ROOT_PATH . "/mod/tasks.php"; if (!$user->Check()) { exit; } if (!(isset($_POST['file']) && isset($_POST['note']))) { $RES = array(); $files = GetFiles(); if ($files) { foreach ($files as $v) { $RES[] = array('FID' => $v['fId'], 'FNAME' => $v['fName'], 'FTYPE' => $v['fType']); } } $smarty->assign('FILES', $RES); $smarty->assign('EXT', $file_ext); $smarty->assign('FILEID', $file_id); //var_dump($_POST); $smarty->display('create_task.tpl'); die; } $file = (int) $_POST['file']; if ($file == 0) { die("<font class='error'>Plz, select file!</font>"); } $note = $_POST['note']; if (isset($_POST['pe_loader'])) { $peload = 1; } else {
function AdminUserAvatarsGallery() { global $galeryedit; TAddSubTitle('Галерея аватар'); if (isset($_GET['user']) && $_GET['user'] == '1') { $personal = true; $dir = System::config('general/personal_avatars_dir'); $dirlink = System::admin()->Link('Показать аватары из галереи', ADMIN_FILE . '?exe=user&a=avatars'); $users = System::database()->Select('users', "`type`='2'"); $c = sizeof($users); for ($i = 0; $i < $c; $i++) { $users[$users[$i]['avatar']] = $i; } } else { $personal = false; $dir = System::config('general/avatars_dir'); $dirlink = System::admin()->Link('Показать аватары пользователей', ADMIN_FILE . '?exe=user&a=avatars&user=1'); } $avatars2 = GetFiles($dir, false, true, '.gif.jpg.jpeg.png'); $avatars = array(); foreach ($avatars2 as $av) { $name = GetFileName($av, true); $sub = substr($name, -3); if ($sub != 'x24' && $sub != 'x64') { $avatars[] = $av; } } $c = count($avatars); $allsize = 0; $text = '<table cellspacing="0" cellpadding="0" class="cfgtable">'; if ($c > 0) { $col = 0; for ($i = 0; $i < $c; $i++) { if ($col == 0) { $text .= '<tr>'; } $col++; $imagfn = $dir . $avatars[$i]; $size = getimagesize($imagfn); $fsize = filesize($imagfn); $allsize = $allsize + $fsize; if ($galeryedit) { $funcs = System::admin()->SpeedConfirm('Удалить', ADMIN_FILE . '?exe=user&a=delavatar&filename=' . $avatars[$i] . ($personal ? '&personal' : ''), 'images/admin/delete.png', 'Удалить аватар?'); } else { $funcs = ' '; } $text .= '<td align="center"> <table cellspacing="0" cellpadding="0" align="center" style="border:none; background: none;"> <tr style="border:none; background: none;"> <td style="border:none; background: none;"><a href="' . $imagfn . '" target="_blank"><img src="' . $imagfn . '" border="0" width="64" title="(' . $size[0] . ' x ' . $size[1] . ', ' . FormatFileSize($fsize) . ') ' . $avatars[$i] . '" /></a></td> <td valign="top" style="border:none; background: none;">' . $funcs . '</td> </tr> '; if ($personal && isset($users[$avatars[$i]])) { $text .= '<tr><td colspan="2" align="left" style="border:none; background: none;"><a href="' . ADMIN_FILE . '?exe=user&a=edituser&id=' . SafeDB($users[$users[$avatars[$i]]]['id'], 11, int) . '">' . SafeDB($users[$users[$avatars[$i]]]['name'], 255, str) . '</a></td></tr>'; } $text .= '</table></td>'; if ($col == 5) { $text .= '</tr>'; $col = 0; } } if ($col < 5) { $text .= '<td colspan="' . (5 - $col) . '"></td>'; $text .= '</tr>'; } } else { $text .= '<tr><td>В галерее нет ни одного аватара.</td></tr>'; } $text .= '</table>'; $info = '<table cellspacing="0" cellpadding="0" border="0" class="cfgtable"> <tr> <td width="34%">Аватар в галерее: ' . $c . '</td> <td width="33%">Общий размер: ' . FormatFileSize($allsize) . '</td> <td>' . $dirlink . '</td> </tr> </table>'; $text = $info . $text; AddCenterBox('Галерея аватар', $text); AddText($text); if (!$personal && $galeryedit) { System::admin()->FormTitleRow('Загрузить аватар'); FormRow('Выберите файл', System::site()->FFile('avatar')); AddForm(System::site()->FormOpen(ADMIN_FILE . '?exe=user&a=saveavatar', 'post', true), System::site()->Submit('Загрузить')); } AddText('<br />'); }
function IndexUserRegistration($acceptPost = false, $edit = false) { if (!$edit) { System::user()->UnLogin(false); } else { if (!System::user()->Auth) { System::site()->Login(); return; } } System::site()->AddJS(Indent(' function checkData(f){ if(f.login.value = \'\'){ alert("Логин должен быть не менее ' . System::config('user/login_min_length') . ' и не более 15 символов."); f.login.focus(); return false; } } ')); if (!$edit && System::config('user/registration') == 'off') { System::site()->AddTextBox('Ошибка', '<p align="center">Извините, регистрация приостановлена.</p>'); return; } if ($acceptPost) { AcceptPost($login, $pass, $rpass, $email, $hideemail, $nikname, $realname, $age, $homepage, $icq, $city, $avatar, $apersonal, $gmt, $about, $snews); } elseif ($edit) { GetEditUserData($login, $email, $hideemail, $nikname, $realname, $age, $homepage, $icq, $city, $avatar, $apersonal, $gmt, $about, $snews); $pass = ''; $rpass = ''; } else { $login = ''; $pass = ''; $rpass = ''; $email = ''; $hideemail = false; $nikname = ''; $realname = ''; $age = ''; $homepage = ''; $icq = ''; $city = ''; $avatar = 'noavatar.gif'; $apersonal = '0'; $gmt = System::config('general/default_timezone'); $about = ''; $snews = false; } //Генерируем текст формы System::site()->AddBlock('user_form', true, false, 'form'); $vars = array(); if ($edit) { $vars['action'] = 'update'; $vars['laction'] = 'Сохранить'; $topcaption = 'Данные пользователя'; } else { $vars['action'] = 'create'; $vars['laction'] = 'Зарегистрироваться'; $topcaption = 'Регистрация'; } $fields = explode(',', System::config('user/register_call_data')); //email,snews,realname,age,city,icq,gmt,about $activate = System::config('user/activate_type'); //auto, mail, manual $vars['form_name'] = 'userform'; $vars['url'] = Ufu('index.php?name=user&op=registration', 'user/{op}/'); $vars['enctype'] = 'multipart/form-data'; $vars['llogin'] = '******'; $vars['login'] = $login; $vars['lpass'] = '******'; $vars['pass'] = $pass; $vars['lrpass'] = '******'; $vars['rpass'] = $rpass; $vars['lnikname'] = 'Ваше имя на сайте <font color="#FF0000">*</font>'; $vars['nikname'] = $nikname; $vars['lrealname'] = 'Настоящее имя(Ф.И.О.)'; $vars['realname'] = $realname; $vars['use_realname'] = in_array('realname', $fields) || $edit; $vars['lemail'] = 'E-mail <font color="#FF0000">*</font>'; $vars['email'] = $email; $vars['lhideemail'] = 'Скрыть e-mail'; $vars['hideemail'] = $hideemail ? ' checked="checked"' : ''; $vars['use_email'] = in_array('email', $fields) || $activate == 'mail' || $edit; $vars['lage'] = 'Возраст'; $vars['age'] = $age; $vars['use_age'] = in_array('age', $fields) || $edit; $vars['lhomepage'] = 'Сайт'; $vars['homepage'] = $homepage; $vars['use_homepage'] = in_array('homepage', $fields) || $edit; $vars['licq'] = 'Номер ICQ'; $vars['icq'] = $icq; $vars['use_icq'] = in_array('icq', $fields) || $edit; $vars['lcity'] = 'Город'; $vars['city'] = $city; $vars['use_city'] = in_array('city', $fields) || $edit; $vars['lavatar'] = 'Аватар'; $vars['lload_avatar'] = 'Загрузить аватар<br>(Размеры картинки могут быть автоматически уменьшены. Допустимые форматы: gif, jpeg, png.)'; $vars['avatar_onchange_func'] = 'ShowAvatar()'; $vars['avatar_filename'] = $avatar; $vars['use_avatar'] = in_array('avatar', $fields) || $edit; if ($vars['use_avatar']) { System::site()->AddBlock('avatars', true, true, 'avatar'); $avatars = GetFiles(System::config('general/avatars_dir'), false, true, '.gif.jpg.jpeg.png'); if ($apersonal == '1') { $selected = GetPersonalAvatar(System::user()->Get('u_id')); } elseif ($edit) { $selected = GetGalleryAvatar($avatar); } else { $selected = GetGalleryAvatar($avatars[1]); } if ($apersonal == '1') { System::site()->AddSubBlock('avatars', true, array('name' => '', 'caption' => 'Персональный', 'selected' => true)); } for ($i = 0, $c = count($avatars); $i < $c; $i++) { $avars = array(); $sel = $avatar == $avatars[$i]; $avars['name'] = $avatars[$i]; $avars['selected'] = $sel; $avars['caption'] = $avatars[$i]; System::site()->AddSubBlock('avatars', true, $avars); } $vars['av_selected'] = $selected; System::site()->AddJS(' function ShowAvatar(){ if(document.userform.avatar.value==\'\'){ document.userform.avatarview.src = \'' . (System::config('user/secure_avatar_upload') ? 'index.php?name=plugins&p=avatars_render&user='******'u_id') : System::config('general/personal_avatars_dir') . $avatar) . '\'; }else{ document.userform.avatarview.src = \'' . (System::config('user/secure_avatar_upload') ? 'index.php?name=plugins&p=avatars_render&aname=' : System::config('general/avatars_dir')) . '\'+document.userform.avatar.value; } }'); } $vars['lgmt'] = 'Часовой пояс'; $vars['use_gmt'] = in_array('gmt', $fields) || $edit; if ($vars['use_gmt']) { $gmtd = GetGmtArray(); System::site()->AddBlock('gmt_data', true, true, 'gmt'); for ($i = 0, $c = count($gmtd); $i < $c; $i++) { $gvars['name'] = $gmtd[$i][1]; $gvars['caption'] = $gmtd[$i][0]; $gvars['selected'] = $gmt == $gmtd[$i][1]; System::site()->AddSubBlock('gmt_data', true, $gvars); } } $vars['labout'] = 'Немного о себе'; $vars['about'] = $about; $vars['use_about'] = in_array('about', $fields) || $edit; $vars['kaptcha_url'] = 'index.php?name=plugins&p=antibot'; $vars['kaptcha_width'] = '120'; $vars['kaptcha_height'] = '40'; $vars['lsnews'] = 'Разрешить администраторам сайта присылать Вам уведомления по электронной почте'; $vars['snews'] = $snews ? ' checked="checked"' : ''; $vars['use_snews'] = in_array('snews', $fields) || $edit; System::site()->AddTemplatedBox($topcaption, 'module/user_form.html'); System::site()->SetTitle($topcaption); System::site()->Blocks['user_form']['vars'] = $vars; }
<?php /* * LinkorCMS 1.4 * © 2012 LinkorCMS Development Group */ if (!defined('VALID_RUN')) { header("HTTP/1.1 404 Not Found"); exit; } $tables = System::database()->GetTableInfo(); // Получаем имеющиеся бекапы $backup_files = GetFiles(System::config('backup_dir'), false, true, '.zip'); rsort($backup_files, SORT_STRING); $backup_files2 = array(); foreach ($backup_files as $file) { if (GetSecondFileExt($file, true) == System::database()->Name) { $backup_files2[] = $file; } } if (count($backup_files2) > 0) { $last_backup_name = SafeDB($backup_files2[0], 255, str); } else { $last_backup_name = ''; } $sort = 'name'; $sort_dec = false; if (isset($_GET['sort'])) { $sort = $_GET['sort']; } if (isset($_GET['dec'])) {
<?php error_reporting(0); include "php/tools.php"; include "php/config.php"; include "php/session.php"; include "php/image.php"; // Verzeichnispfad $IMAGE_PATH = GetDocumentRoot() . $SESSION["dir"]; $IMAGE_PATH_2 = $SESSION["dir"]; include "php/action.php"; // Verzeichnis lesen if ($SESSION["id"] == 1) { $FOLDERS = GetFolders($IMAGE_PATH); $FILES = GetFiles($IMAGE_PATH, $SESSION["orderby"]); } ?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> <head> <title>SMImage</title> <meta http-equiv="content-type" content="text/html; charset=iso-8859-1" /> <meta http-equiv="content-style-type" content="text/css" /> <meta http-equiv="content-script-type" content="text/javascript" /> <meta name="author" content="Jens Stolinski" /> <meta name="publisher" content="Jens Stolinski" /> <meta name="company" content="SYNASYS MEDIA" /> <?php // Webbrowser-Cache löschen