/** * Генерирует ссылку на блог * @param array $blog * @return str $seolink */ public function generateBlogSeoLink($blog) { $seolink = cmsCore::strToURL($blog['title']); if (@$blog['id']) { $where = ' AND id<>' . $blog['id']; } else { $where = ''; } $is_exists = $this->inDB->rows_count('cms_blogs', "seolink='{$seolink}'" . $where, 1); if ($is_exists) { $seolink .= '-' . (@$blog['id'] ? $blog['id'] : date("d-i")); } return $seolink; }
if (!$ext) { continue; } if (in_array($ext, array('php', 'htm', 'html', 'htaccess'), true)) { cmsCore::addSessionMessage($_LANG['ERROR_TYPE_FILE'] . ': ' . $model->config['filestype'], 'error'); cmsCore::redirectBack(); } if (!in_array($ext, $maytypes, true)) { cmsCore::addSessionMessage($_LANG['ERROR_TYPE_FILE'] . ': ' . $model->config['filestype'], 'error'); cmsCore::redirectBack(); } // Переводим имя файла в транслит // отделяем имя файла от расширения $name = mb_substr($name, 0, mb_strrpos($name, '.')); // транслитируем $name = cmsCore::strToURL(preg_replace('/\\.+\\//', '', $name)) . uniqid(); // присоединяем расширения файла $name .= '.' . $ext; // Обрабатываем получившееся имя файла для записи в БД $name = cmsCore::strClear($name); // Проверяем свободное место if ($size_mb > $free_mb && $model->config['filessize']) { cmsCore::addSessionMessage($_LANG['YOUR_FILE_LIMIT'] . ' (' . $max_mb . ' ' . $_LANG['MBITE'] . ') ' . $_LANG['IS_OVER_LIMIT'] . '<br>' . $_LANG['FOR_NEW_FILE_DEL_OLD'], 'error'); cmsCore::redirectBack(); } // Загружаем файл if ($inCore->moveUploadedFile($data_array['tmp_name'], PATH . '/upload/userfiles/' . $usr['id'] . '/' . $name, $data_array['error'])) { // если загрузили фото, проверяем его if (in_array($ext, array('jpg', 'jpeg', 'gif', 'png', 'bmp'), true)) { $size = getimagesize(PATH . '/upload/userfiles/' . $usr['id'] . '/' . $name); if ($size === false) {
public function getCatSeoLink($title = '', $id = 0) { $seolink = cmsCore::strToURL($title); if ($id) { $where = ' AND id<>' . $id; } else { $where = ''; } $is_exists = $this->inDB->rows_count('cms_forum_cats', "seolink='{$seolink}'" . $where, 1); if ($is_exists) { $seolink .= '-' . $id; } return $seolink; }
public function clear($component=false, $target=false, $only_old=false) { if ($only_old) { return true; } $prefix = cmsCore::strToURL(cmsCore::c('config')->host) .'_'. $component .'_'. (!empty($target) ? $target .'_' : ''); $prefix_length = strlen($prefix); $results = $this->memcached->fetchAll(); foreach ($results as $result) { if (substr($result['key'], 0, $prefix_length) == $prefix) { $this->memcached->delete($result['key']); } } return true; }
function FileUpload($resourceType, $currentFolder, $sCommand) { if (!isset($_FILES)) { global $_FILES; } $sErrorNumber = '0'; $sFileName = ''; if (isset($_FILES['NewFile']) && !is_null($_FILES['NewFile']['tmp_name'])) { global $Config; $oFile = $_FILES['NewFile']; // Map the virtual path to the local server path. $sServerDir = ServerMapFolder($resourceType, $currentFolder, $sCommand); // Get the uploaded file name. $sFileName = $oFile['name']; $sFileName = SanitizeFileName($sFileName); $sFileNameName = mb_substr($sFileName, 0, mb_strrpos($sFileName, '.')); // Get the extension. $path_parts = pathinfo($sFileName); $sExtension = mb_strtolower($path_parts['extension']); $sFileName = cmsCore::strToURL($sFileNameName) . '.' . $sExtension; $sOriginalFileName = $sFileName; if (stristr($sExtension, 'php') || stristr($sExtension, 'htm')) { $sErrorNumber = '202'; } if (isset($Config['SecureImageUploads'])) { if (($isImageValid = IsImageValid($oFile['tmp_name'], $sExtension)) === false) { $sErrorNumber = '202'; } } if (isset($Config['HtmlExtensions'])) { if (!IsHtmlExtension($sExtension, $Config['HtmlExtensions']) && ($detectHtml = DetectHtml($oFile['tmp_name'])) === true) { $sErrorNumber = '202'; } } // Check if it is an allowed extension. if (!$sErrorNumber && IsAllowedExt($sExtension, $resourceType)) { $iCounter = 0; while (true) { $sFilePath = $sServerDir . $sFileName; if (is_file($sFilePath)) { $iCounter++; $sFileName = RemoveExtension($sOriginalFileName) . '(' . $iCounter . ').' . $sExtension; $sErrorNumber = '201'; } else { move_uploaded_file($oFile['tmp_name'], $sFilePath); if (is_file($sFilePath)) { if (isset($Config['ChmodOnUpload']) && !$Config['ChmodOnUpload']) { break; } $permissions = 0777; if (isset($Config['ChmodOnUpload']) && $Config['ChmodOnUpload']) { $permissions = $Config['ChmodOnUpload']; } $oldumask = umask(0); chmod($sFilePath, $permissions); umask($oldumask); } break; } } if (file_exists($sFilePath)) { //previous checks failed, try once again if (isset($isImageValid) && $isImageValid === -1 && IsImageValid($sFilePath, $sExtension) === false) { @unlink($sFilePath); $sErrorNumber = '202'; } else { if (isset($detectHtml) && $detectHtml === -1 && DetectHtml($sFilePath) === true) { @unlink($sFilePath); $sErrorNumber = '202'; } } } } else { $sErrorNumber = '202'; } } else { $sErrorNumber = '202'; } $sFileUrl = CombinePaths(GetResourceTypePath($resourceType, $sCommand), $currentFolder); $sFileUrl = CombinePaths($sFileUrl, $sFileName); SendUploadResults($sErrorNumber, $sFileUrl, $sFileName); exit; }
function applet_cats() { $inCore = cmsCore::getInstance(); global $_LANG; cmsCore::c('page')->setTitle($_LANG['AD_ARTICLES']); cpAddPathway($_LANG['AD_ARTICLES'], 'index.php?view=tree'); $do = cmsCore::request('do', 'str', 'add'); $id = cmsCore::request('id', 'int', -1); define('IS_BILLING', $inCore->isComponentInstalled('billing')); if (IS_BILLING) { cmsCore::loadClass('billing'); } if ($do == 'delete') { $is_with_content = cmsCore::inRequest('content'); cmsCore::m('content')->deleteCategory($id, $is_with_content); cmsCore::addSessionMessage(($is_with_content ? $_LANG['AD_CATEGORY_REMOVED'] : $_LANG['AD_CATEGORY_REMOVED_NOT_ARTICLE']), 'success'); cmsCore::redirect('?view=tree'); } if ($do == 'update') { if (!cmsUser::checkCsrfToken()) { cmsCore::error404(); } if (cmsCore::inRequest('id')) { $category['id'] = cmsCore::request('id', 'int', 0); $category['title'] = cmsCore::request('title', 'str', $_LANG['AD_SECTION_UNTITLED']); $category['parent_id'] = cmsCore::request('parent_id', 'int'); $category['description'] = cmsCore::request('description', 'html', ''); $category['description'] = cmsCore::c('db')->escape_string($category['description']); $category['published'] = cmsCore::request('published', 'int', 0); $category['showdate'] = cmsCore::request('showdate', 'int', 0); $category['showcomm'] = cmsCore::request('showcomm', 'int', 0); $category['orderby'] = cmsCore::request('orderby', 'str', ''); $category['orderto'] = cmsCore::request('orderto', 'str', ''); $category['modgrp_id'] = cmsCore::request('modgrp_id', 'int', 0); $category['maxcols'] = cmsCore::request('maxcols', 'int', 0); $category['showtags'] = cmsCore::request('showtags', 'int', 0); $category['showrss'] = cmsCore::request('showrss', 'int', 0); $category['showdesc'] = cmsCore::request('showdesc', 'int', 0); $category['is_public'] = cmsCore::request('is_public', 'int', 0); $category['url'] = cmsCore::request('url', 'str', ''); $category['pagetitle'] = cmsCore::request('pagetitle', 'str', ''); $category['meta_desc'] = cmsCore::request('meta_desc', 'str', ''); $category['meta_keys'] = cmsCore::request('meta_keys', 'str', ''); if (!empty($category['url'])) { $category['url'] = cmsCore::strToURL($category['url'], cmsCore::m('content')->config['is_url_cyrillic']); } $category['tpl'] = cmsCore::request('tpl', 'str', 'com_content_view'); $category['cost'] = cmsCore::request('cost', 'str', ''); if (!is_numeric($category['cost'])) { $category['cost'] = ''; } $album = array(); $album['id'] = cmsCore::request('album_id', 'int', 0); $album['header'] = cmsCore::request('album_header', 'str', ''); $album['orderby'] = cmsCore::request('album_orderby', 'str', ''); $album['orderto'] = cmsCore::request('album_orderto', 'str', ''); $album['maxcols'] = cmsCore::request('album_maxcols', 'int', 0); $album['max'] = cmsCore::request('album_max', 'int', 0); if ($album['id']) { $category['photoalbum'] = serialize($album); } else { $category['photoalbum'] = ''; } // получаем старую категорию $old = cmsCore::c('db')->get_fields('cms_category', "id='". $category['id'] ."'", '*'); if (!$old) { cmsCore::error404(); } // если сменили категорию if ($old['parent_id'] != $category['parent_id']) { // перемещаем ее в дереве $inCore->nestedSetsInit('cms_category')->MoveNode($category['id'], $category['parent_id']); // обновляем сеолинки категорий cmsCore::c('db')->updateNsCategorySeoLink('cms_category', $category['id'], cmsCore::m('content')->config['is_url_cyrillic']); // Обновляем ссылки меню на категории cmsCore::m('content')->updateCatMenu(); // обновляем сеолинки всех вложенных статей cmsCore::m('content')->updateArticlesSeoLink($category['id']); cmsCore::addSessionMessage($_LANG['AD_CATEGORY_NEW_URL'], 'info'); } cmsCore::c('db')->update('cms_category', $category, $category['id']); // если пришел запрос на обновление ссылок // и категория не менялась - если менялась, мы выше все обновили if (cmsCore::inRequest('update_seolink') && ($old['parent_id'] == $category['parent_id'])) { // обновляем сеолинки категорий cmsCore::c('db')->updateNsCategorySeoLink('cms_category', $category['id'], cmsCore::m('content')->config['is_url_cyrillic']); // Обновляем ссылки меню на категории cmsCore::m('content')->updateCatMenu(); // обновляем сеолинки всех вложенных статей cmsCore::m('content')->updateArticlesSeoLink($category['id']); cmsCore::addSessionMessage($_LANG['AD_SECTION_AND_ARTICLES_NEW_URL'], 'info'); } if (!cmsCore::request('is_access', 'int', 0)) { $showfor = cmsCore::request('showfor', 'array_int'); cmsCore::setAccess($category['id'], $showfor, 'category'); } else { cmsCore::clearAccess($category['id'], 'category'); } cmsCore::addSessionMessage($_LANG['AD_CATEGORY_SAVED'], 'success'); if (!isset($_SESSION['editlist']) || @sizeof($_SESSION['editlist']) == 0) { cmsCore::redirect('?view=tree&cat_id='. $category['id']); } else { cmsCore::redirect('?view=tree'); } } } if ($do == 'submit') { if (!cmsUser::checkCsrfToken()) { cmsCore::error404(); } $category['title'] = cmsCore::request('title', 'str', $_LANG['AD_CATEGORY_UNTITLED']); $category['url'] = cmsCore::request('url', 'str', ''); if (!empty($category['url'])) { $category['url'] = cmsCore::strToURL($category['url']); } $category['parent_id'] = cmsCore::request('parent_id', 'int'); $category['description'] = cmsCore::request('description', 'html', ''); $category['description'] = cmsCore::c('db')->escape_string($category['description']); $category['published'] = cmsCore::request('published', 'int', 0); $category['showdate'] = cmsCore::request('showdate', 'int', 0); $category['showcomm'] = cmsCore::request('showcomm', 'int', 0); $category['orderby'] = cmsCore::request('orderby', 'str', ''); $category['orderto'] = cmsCore::request('orderto', 'str', ''); $category['modgrp_id'] = cmsCore::request('modgrp_id', 'int', 0); $category['maxcols'] = cmsCore::request('maxcols', 'int', 0); $category['showtags'] = cmsCore::request('showtags', 'int', 0); $category['showrss'] = cmsCore::request('showrss', 'int', 0); $category['showdesc'] = cmsCore::request('showdesc', 'int', 0); $category['is_public'] = cmsCore::request('is_public', 'int', 0); $category['tpl'] = cmsCore::request('tpl', 'str', 'com_content_view'); $category['pagetitle'] = cmsCore::request('pagetitle', 'str', ''); $category['meta_desc'] = cmsCore::request('meta_desc', 'str', ''); $category['meta_keys'] = cmsCore::request('meta_keys', 'str', ''); $category['cost'] = cmsCore::request('cost', 'str', 0); if (!is_numeric($category['cost'])) { $category['cost'] = ''; } $album = array(); $album['id'] = cmsCore::request('album_id', 'int', 0); $album['header'] = cmsCore::request('album_header', 'str', ''); $album['orderby'] = cmsCore::request('album_orderby', 'str', ''); $album['orderto'] = cmsCore::request('album_orderto', 'str', ''); $album['maxcols'] = cmsCore::request('album_maxcols', 'int', 0); $album['max'] = cmsCore::request('album_max', 'int', 0); if ($album['id']) { $category['photoalbum'] = serialize($album); } else { $category['photoalbum'] = ''; } $ns = $inCore->nestedSetsInit('cms_category'); $category['id'] = $ns->AddNode($category['parent_id']); $category['seolink'] = cmsCore::generateCatSeoLink($category, 'cms_category', cmsCore::m('content')->config['is_url_cyrillic']); if ($category['id']) { cmsCore::c('db')->update('cms_category', $category, $category['id']); if (!cmsCore::request('is_access', 'int', 0)) { $showfor = cmsCore::request('showfor', 'array_int'); cmsCore::setAccess($category['id'], $showfor, 'category'); } else { cmsCore::clearAccess($category['id'], 'category'); } } $inmenu = cmsCore::request('createmenu', 'str', ''); if ($inmenu) { createMenuItem($inmenu, $category['id'], $category['title']); } cmsCore::addSessionMessage($_LANG['AD_CATEGORY_ADD'], 'success'); cmsCore::redirect('?view=tree'); } if ($do == 'add' || $do == 'edit') { $toolmenu = array( array( 'icon' => 'save.gif', 'title' => $_LANG['SAVE'], 'link' => 'javascript:document.addform.submit();' ), array( 'icon' => 'cancel.gif', 'title' => $_LANG['CANCEL'], 'link' => 'javascript:history.go(-1);' ), ); cpToolMenu($toolmenu); $menu_list = cpGetList('menu'); if ($do == 'add') { echo '<h3>'. $_LANG['AD_CREATE_SECTION'] .'</h3>'; cpAddPathway($_LANG['AD_CREATE_SECTION'], 'index.php?view=cats&do=add'); $mod = array(); $mod['tpl'] = 'com_content_view'; } else { if (cmsCore::inRequest('multiple')) { if (cmsCore::inRequest('item')) { $_SESSION['editlist'] = cmsCore::request('item', 'array_int'); } else { echo '<p class="error">'. $_LANG['AD_NO_SELECT_OBJECTS'] .'</p>'; return; } } $ostatok = ''; if (isset($_SESSION['editlist'])) { $id = array_shift($_SESSION['editlist']); if (sizeof($_SESSION['editlist']) == 0) { unset($_SESSION['editlist']); } else { $ostatok = '('. $_LANG['AD_NEXT_IN'] . sizeof($_SESSION['editlist']) .')'; } } else { $id = cmsCore::request('id', 'int', 0); } $mod = cmsCore::c('db')->get_fields('cms_category', 'id='.$id, '*'); if (!empty($mod['photoalbum'])) { $mod['photoalbum'] = unserialize($mod['photoalbum']); } echo '<h3>'. $_LANG['AD_EDIT_SECTION'] . $ostatok .'</h3>'; cpAddPathway($mod['title'], 'index.php?view=cats&do=edit&id='. $mod['id']); } ?> <form id="addform" name="addform" method="post" action="index.php"> <input type="hidden" name="csrf_token" value="<?php echo cmsUser::getCsrfToken(); ?>" /> <input type="hidden" name="view" value="cats" /> <table class="table"> <tr> <!-- главная ячейка --> <td valign="top"> <div class="form-group"> <label><?php echo $_LANG['AD_TITLE_PARTITION'];?></label> <input type="text" id="title" class="form-control" name="title" value="<?php echo htmlspecialchars(cmsCore::getArrVal($mod, 'title', ''));?>" /> </div> <div class="form-group"> <label><?php echo $_LANG['AD_TEMPLATE_PARTITION'];?></label> <input type="text" class="form-control" name="tpl" value="<?php echo cmsCore::getArrVal($mod, 'tpl', '');?>" /> </div> <div class="form-group"> <label><?php echo $_LANG['AD_PARENT_PARTITION'];?></label> <div class="parent_notice" style="color:red;margin:4px 0px;display:none"><?php echo $_LANG['AD_ANOTHER_PARENT'];?></div> <select name="parent_id" size="12" id="parent_id" class="form-control" onchange="if($('option:selected',this).data('nsleft')>='<?php echo cmsCore::getArrVal($mod, 'NSLeft', 0); ?>' && $('option:selected',this).data('nsright')<='<?php echo cmsCore::getArrVal($mod, 'NSRight', 0); ?>'){ $('.parent_notice').show();$('#add_mod').prop('disabled', true); } else { $('.parent_notice').hide();$('#add_mod').prop('disabled', false); }"> <?php $rootid = cmsCore::c('db')->getNsRootCatId('cms_category'); ?> <option value="<?php echo $rootid; ?>" <?php if (!isset($mod['parent_id']) || cmsCore::getArrVal($mod, 'parent_id', '') == $rootid) { echo 'selected="selected"'; }?>><?php echo $_LANG['AD_SECTION'];?></option> <?php echo $inCore->getListItemsNS('cms_category', cmsCore::getArrVal($mod, 'parent_id', $rootid)); ?> </select> </div> <div class="form-group"> <label><?php echo $_LANG['AD_SECTION_DESCRIPT'];?></label> <?php $inCore->insertEditor('description', cmsCore::getArrVal($mod, 'description', ''), '250', '100%'); ?> </div> </td> <!-- боковая --> <td valign="top" style="width:500px;"> <div class="uitabs"> <ul id="tabs"> <li><a href="#upr_publish"><span><?php echo $_LANG['AD_TAB_PUBLISH']; ?></span></a></li> <li><a href="#upr_seo"><span>SEO</span></a></li> <li><a href="#upr_editors"><span><?php echo $_LANG['AD_EDITORS']; ?></span></a></li> <li><a href="#upr_foto"><span><?php echo $_LANG['AD_FOTO']; ?></span></a></li> <li><a href="#upr_access"><span><?php echo $_LANG['AD_TAB_ACCESS']; ?></span></a></li> </ul> <div id="upr_publish"> <div class="form-group"> <label> <input type="checkbox" name="published" id="published" value="1" <?php if (cmsCore::getArrVal($mod, 'published', 0) || $do=='add') { echo 'checked="checked"'; } ?> /> <?php echo $_LANG['AD_PUBLIC_SECTION'];?> </label> </div> <div class="form-group url_cat" style=" <?php if ($do == 'edit'){ ?>display:none;<?php } ?>"> <label><?php echo $_LANG['AD_SECTION_URL'];?></label> <input type="text" class="form-control" name="url" value="<?php echo cmsCore::getArrVal($mod, 'url', ''); ?>" /> <div class="help-block"><?php echo $_LANG['AD_FROM_TITLE'];?></div> </div> <?php if ($do == 'edit') { ?> <div class="form-group"> <label> <input type="checkbox" name="update_seolink" value="1" onclick="$('.url_cat').slideToggle('fast');" /> <?php echo $_LANG['AD_NEW_LINK'];?> </label> <div class="help-block url_cat" style="display:none;"><b style="color:#F00;"><?php echo $_LANG['ATTENTION'];?>:</b> <?php echo $_LANG['AD_NO_LINKS'];?></div> </div> <?php } ?> <div class="form-group"> <label><?php echo $_LANG['AD_SORT_ARTICLES'];?></label> <select id="orderby" class="form-control" name="orderby"> <?php $mod['orderby'] = cmsCore::getArrVal($mod, 'orderby', ''); ?> <option value="pubdate" <?php if ($mod['orderby'] == 'pubdate') { echo 'selected="selected"'; } ?>><?php echo $_LANG['AD_BY_CALENDAR'];?></option> <option value="title" <?php if ($mod['orderby'] == 'title') { echo 'selected="selected"'; } ?>><?php echo $_LANG['AD_BY_TITLE'];?></option> <option value="ordering" <?php if ($mod['orderby'] == 'ordering') { echo 'selected="selected"'; } ?>><?php echo $_LANG['AD_BY_ORDER'];?></option> <option value="hits" <?php if ($mod['orderby'] == 'hits') { echo 'selected="selected"'; } ?>><?php echo $_LANG['AD_BY_VIEWS'];?></option> </select> <select id="orderto" class="form-control" name="orderto"> <?php $mod['orderto'] = cmsCore::getArrVal($mod, 'orderto', ''); ?> <option value="ASC" <?php if ($mod['orderto'] == 'ASC') { echo 'selected="selected"'; } ?>><?php echo $_LANG['AD_BY_INCREMENT'];?></option> <option value="DESC" <?php if ($mod['orderto'] == 'DESC') { echo 'selected="selected"'; } ?>><?php echo $_LANG['AD_BY_DECREMENT'];?></option> </select> </div> <table width="100%"> <tr> <td> <strong><?php echo $_LANG['AD_HOW_MANY_COLUMNS'];?></strong> </td> <td> <input class="form-control uispin" name="maxcols" type="text" style="width:50px" value="<?php echo cmsCore::getArrVal($mod, 'maxcols', 1); ?>" /> </td> </tr> </table> <div class="form-group"> <h4><?php echo $_LANG['AD_HOW_PUBLISH_SET'];?></h4> <table class="table"> <tr> <td> <?php echo $_LANG['AD_PREVIEW'];?> </td> <td> <div class="btn-group" data-toggle="buttons"> <?php $act1=$act2=$chk1=$chk2=''; if (cmsCore::getArrVal($mod, 'showdesc') || $do == 'add') { $act1 = 'active'; $chk1 = 'checked="checked"'; } else { $act2 = 'active'; $chk2 = 'checked="checked"'; } ?> <label class="btn btn-default <?php echo $act1; ?>"> <input type="radio" name="showdesc" <?php echo $chk1; ?> value="1" /> <?php echo $_LANG['YES'];?> </label> <label class="btn btn-default <?php echo $act2; ?>"> <input type="radio" name="showdesc" <?php echo $chk2; ?> value="0" /> <?php echo $_LANG['NO'];?> </label> </div> </td> </tr> <tr> <td> <?php echo $_LANG['AD_CALENDAR_VIEW'];?> </td> <td> <div class="btn-group" data-toggle="buttons"> <?php $act1=$act2=$chk1=$chk2=''; if (cmsCore::getArrVal($mod, 'showdate') || $do == 'add') { $act1 = 'active'; $chk1 = 'checked="checked"'; } else { $act2 = 'active'; $chk2 = 'checked="checked"'; } ?> <label class="btn btn-default <?php echo $act1; ?>"> <input type="radio" name="showdate" <?php echo $chk1; ?> value="1" /> <?php echo $_LANG['YES'];?> </label> <label class="btn btn-default <?php echo $act2; ?>"> <input type="radio" name="showdate" <?php echo $chk2; ?> value="0" /> <?php echo $_LANG['NO'];?> </label> </div> </td> </tr> <tr> <td> <?php echo $_LANG['AD_HOW_MANY_COMENTS'];?> </td> <td> <div class="btn-group" data-toggle="buttons"> <?php $act1=$act2=$chk1=$chk2=''; if (cmsCore::getArrVal($mod, 'showcomm') || $do == 'add') { $act1 = 'active'; $chk1 = 'checked="checked"'; } else { $act2 = 'active'; $chk2 = 'checked="checked"'; } ?> <label class="btn btn-default <?php echo $act1; ?>"> <input type="radio" name="showcomm" <?php echo $chk1; ?> value="1" /> <?php echo $_LANG['YES'];?> </label> <label class="btn btn-default <?php echo $act2; ?>"> <input type="radio" name="showcomm" <?php echo $chk2; ?> value="0" /> <?php echo $_LANG['NO'];?> </label> </div> </td> </tr> <tr> <td> <?php echo $_LANG['AD_HOW_MANY_TAGS'];?> </td> <td> <div class="btn-group" data-toggle="buttons"> <?php $act1=$act2=$chk1=$chk2=''; if (cmsCore::getArrVal($mod, 'showtags') || $do == 'add') { $act1 = 'active'; $chk1 = 'checked="checked"'; } else { $act2 = 'active'; $chk2 = 'checked="checked"'; } ?> <label class="btn btn-default <?php echo $act1; ?>"> <input type="radio" name="showtags" <?php echo $chk1; ?> value="1" /> <?php echo $_LANG['YES'];?> </label> <label class="btn btn-default <?php echo $act2; ?>"> <input type="radio" name="showtags" <?php echo $chk2; ?> value="0" /> <?php echo $_LANG['NO'];?> </label> </div> </td> </tr> <tr> <td> <?php echo $_LANG['AD_RSS_VIEW'];?> </td> <td> <div class="btn-group" data-toggle="buttons"> <?php $act1=$act2=$chk1=$chk2=''; if (cmsCore::getArrVal($mod, 'showrss') || $do == 'add') { $act1 = 'active'; $chk1 = 'checked="checked"'; } else { $act2 = 'active'; $chk2 = 'checked="checked"'; } ?> <label class="btn btn-default <?php echo $act1; ?>"> <input type="radio" name="showrss" <?php echo $chk1; ?> value="1" /> <?php echo $_LANG['YES'];?> </label> <label class="btn btn-default <?php echo $act2; ?>"> <input type="radio" name="showrss" <?php echo $chk2; ?> value="0" /> <?php echo $_LANG['NO'];?> </label> </div> </td> </tr> </table> </div> <?php if ($do == 'add'){ ?> <div class="form-group"> <label><?php echo $_LANG['AD_CREATE_LINK'];?></label> <select class="form-control" style="width:99%" name="createmenu"> <option value="0" selected="selected"><?php echo $_LANG['AD_DONT_CREATE'];?></option> <?php foreach ($menu_list as $menu) { ?> <option value="<?php echo $menu['id']; ?>"> <?php echo $menu['title']; ?> </option> <?php } ?> </select> </div> <?php } ?> </div> <div id="upr_seo"> <div class="form-group"> <label><?php echo $_LANG['AD_PAGE_TITLE']; ?></label> <input type="text" id="pagetitle" class="form-control" name="pagetitle" value="<?php echo htmlspecialchars(cmsCore::getArrVal($mod, 'pagetitle', '')); ?>" /> <div class="help-block"><?php echo $_LANG['AD_IF_UNKNOWN_PAGETITLE']; ?></div> </div> <div class="form-group"> <label><?php echo $_LANG['KEYWORDS']; ?></label> <textarea class="form-control" name="meta_keys" rows="4"><?php echo htmlspecialchars(cmsCore::getArrVal($mod, 'meta_keys', ''));?></textarea> <div class="help-block"><?php echo $_LANG['AD_FROM_COMMA']; ?></div> </div> <div class="form-group"> <label><?php echo $_LANG['DESCRIPTION']; ?></label> <textarea class="form-control" name="meta_desc" rows="6"><?php echo htmlspecialchars(cmsCore::getArrVal($mod, 'meta_desc', ''));?></textarea> <div class="help-block"><?php echo $_LANG['AD_LESS_THAN']; ?></div> </div> </div> <div id="upr_editors"> <div class="form-group"> <label><?php echo $_LANG['AD_USERS_ARTICLES'];?></label> <div class="btn-group" data-toggle="buttons"> <label class="btn btn-default <?php echo $act1; ?>"> <input type="radio" name="is_public" <?php if (cmsCore::getArrVal($mod, 'is_public')) { echo 'checked="checked"'; } ?> value="1" /> <?php echo $_LANG['YES'];?> </label> <label class="btn btn-default <?php echo $act2; ?>"> <input type="radio" name="is_public" <?php if (!cmsCore::getArrVal($mod, 'is_public')) { echo 'checked="checked"'; } ?> value="0" /> <?php echo $_LANG['NO'];?> </label> </div> <div class="help-block"><?php echo $_LANG['AD_IF_SWITCH'];?></div> </div> <?php if (IS_BILLING){ ?> <div class="form-group"> <label><?php echo $_LANG['AD_COST_ARTICLES_ADD'];?></label> <input type="text" class="form-control" style="width:50px" name="cost" value="<?php echo cmsCore::getArrVal($mod, 'cost', ''); ?>" /><?php echo $_LANG['BILLING_POINT10'];?> <div class="help-block"><?php echo $_LANG['AD_COST_ARTICLES_BY_DEFAULT'];?></div> </div> <?php } ?> <div class="form-group"> <label><?php echo $_LANG['AD_EDITORS_SECTION'];?></label> <select class="form-control" name="modgrp_id"> <option value="0" <?php if (!isset($mod['modgrp_id']) || cmsCore::getArrVal($mod, 'modgrp_id', '') == 0) { echo 'selected'; }?>><?php echo $_LANG['AD_ONLY_ADMINS'];?></option> <?php echo $inCore->getListItems('cms_user_groups', cmsCore::getArrVal($mod, 'modgrp_id', 0), 'id', 'ASC', 'is_admin = 0'); ?> </select> <div class="help-block"><?php echo $_LANG['AD_USERS_CAN_ADMIN'];?></div> </div> </div> <div id="upr_foto"> <div class="form-group"> <label><?php echo $_LANG['AD_PHOTOALBUM_CONNECT'];?></label> <select id="album_id" class="form-control" name="album_id" onchange="choosePhotoAlbum()"> <option value="0" <?php if (empty($mod['photoalbum']['id'])) { echo 'selected="selected"'; }?>><?php echo $_LANG['AD_DONT_CONNECT'];?></option> <?php //FIND ROOT echo $inCore->getListItemsNS('cms_photo_albums', cmsCore::getArrVal(cmsCore::getArrVal($mod, 'photoalbum'), 'id', 0)); ?> </select> <div class="help-block"><?php echo $_LANG['AD_PHOTO_BY_ARTICLES'];?></div> </div> <div id="con_photoalbum" <?php if (empty($mod['photoalbum']['id'])) { echo 'style="display:none;"'; }?>> <div class="form-group"> <label><?php echo $_LANG['AD_TITLE'];?></label> <input type="text" id="album_header" class="form-control" name="album_header" value="<?php echo cmsCore::getArrVal(cmsCore::getArrVal($mod, 'photoalbum'), 'header', 0); ?>" /> <div class="help-block"><?php echo $_LANG['AD_OVER_PHOTOS'];?></div> </div> <div class="form-group"> <label><?php echo $_LANG['AD_PHOTOS_SORT'];?></label> <select class="form-control" name="album_orderby"> <?php $mod['photoalbum']['orderby'] = cmsCore::getArrVal(cmsCore::getArrVal($mod, 'photoalbum'), 'orderby', 0); ?> <option value="title" <?php if ($mod['photoalbum']['orderby'] == 'title') { echo 'selected="selected"'; } ?>><?php echo $_LANG['AD_BY_ALPHABET'];?></option> <option value="pubdate" <?php if ($mod['photoalbum']['orderby'] == 'pubdate') { echo 'selected="selected"'; } ?>><?php echo $_LANG['AD_BY_CALENDAR'];?></option> <option value="rating" <?php if ($mod['photoalbum']['orderby'] == 'rating') { echo 'selected="selected"'; } ?>><?php echo $_LANG['AD_BY_RATING'];?></option> <option value="hits" <?php if ($mod['photoalbum']['orderby'] == 'hits') { echo 'selected="selected"'; } ?>><?php echo $_LANG['AD_BY_VIEWS'];?></option> </select> <select class="form-control" name="album_orderto"> <?php $mod['photoalbum']['orderto'] = cmsCore::getArrVal(cmsCore::getArrVal($mod, 'photoalbum'), 'orderto', 0); ?> <option value="desc" <?php if ($mod['photoalbum']['orderto'] == 'desc') { echo 'selected="selected"'; } ?>><?php echo $_LANG['AD_BY_DECREMENT'];?></option> <option value="asc" <?php if ($mod['photoalbum']['orderto'] == 'asc') { echo 'selected="selected"'; } ?>><?php echo $_LANG['AD_BY_INCREMENT'];?></option> </select> </div> <div class="form-group"> <label><?php echo $_LANG['AD_HOW_MANY_COLUMNS'];?></label> <input type="text" class="form-control" name="album_maxcols" value="<?php echo cmsCore::getArrVal(cmsCore::getArrVal($mod, 'photoalbum'), 'maxcols', 2); ?>"/> </div> <div class="form-group"> <label><?php echo $_LANG['AD_HOW_MANY_PHOTO'];?></label> <input type="text" class="form-control" name="album_max" value="<?php echo cmsCore::getArrVal(cmsCore::getArrVal($mod, 'photoalbum'), 'max', 8); ?>"/> </div> </div> </div> <div id="upr_access"> <div class="form-group"> <?php $sql = "SELECT * FROM cms_user_groups"; $result = cmsCore::c('db')->query($sql) ; $style = 'disabled="disabled"'; $public = 'checked="checked"'; if ($do == 'edit'){ $sql2 = "SELECT * FROM cms_content_access WHERE content_id = ". $mod['id'] ." AND content_type = 'category'"; $result2 = cmsCore::c('db')->query($sql2); $ord = array(); if (cmsCore::c('db')->num_rows($result2)){ $public = ''; $style = ''; while ($r = cmsCore::c('db')->fetch_assoc($result2)){ $ord[] = $r['group_id']; } } } ?> <label> <input type="checkbox" id="is_public" name="is_access" onclick="checkGroupList()" value="1" <?php echo $public; ?> /> <?php echo $_LANG['AD_SHARE'];?> </label> <div class="help-block"><?php echo $_LANG['AD_IF_NOTED'];?></div> </div> <div class="form-group"> <label><?php echo $_LANG['AD_GROUPS_VIEW'];?></label> <?php echo '<select id="showin" class="form-control" name="showfor[]" size="6" multiple="multiple" '. $style .'>'; if (cmsCore::c('db')->num_rows($result)) { while ($item = cmsCore::c('db')->fetch_assoc($result)) { echo '<option value="'. $item['id'] .'"'; if ($do == 'edit' && in_array($item['id'], $ord)) { echo 'selected="selected"'; } echo '>'; echo $item['title'] .'</option>'; } } echo '</select>'; ?> <div class="help-block"><?php echo $_LANG['AD_SELECT_MULTIPLE_CTRL'];?></div> </div> </div> </div> </td> </tr> </table> <div> <input type="submit" class="btn btn-primary" name="add_mod" <?php if ($do == 'add') { echo 'value="'.$_LANG['AD_SAVE_SECTION'].'"'; } else { echo 'value="'.$_LANG['AD_SAVE_SECTION'].'"'; } ?> /> <input type="button" class="btn btn-default" name="back" value="<?php echo $_LANG['CANCEL']; ?>" onclick="window.history.back();" /> <input type="hidden" name="do" <?php if ($do == 'add') { echo 'value="submit"'; } else { echo 'value="update"'; } ?> /> <?php if ($do == 'edit') { echo '<input type="hidden" name="id" value="'. $mod['id'] .'" />'; } ?> </div> </form> <script type="text/javascript"> function choosePhotoAlbum(){ id = $('select[name=album_id]').val(); if(id != 0){ $('#con_photoalbum').fadeIn(); }else{ $('#con_photoalbum').hide(); } } </script> <?php } }
private function createUser($profile) { $inCore = cmsCore::getInstance(); $inDB = cmsDatabase::getInstance(); $inUser = cmsUser::getInstance(); cmsCore::loadClass('actions'); $nickname = $email = $birthdate = ''; $advanced = array(); // для вконтакте поолучаем большой аватар, статус и город if (strstr($profile->identity, '//vk.com')) { $vk = $this->callVk($profile->uid); if ($vk) { $advanced = array('city' => $vk->city->title, 'status' => $vk->status, 'photo' => $vk->photo_max_orig); } } if (!empty($profile->name->full_name)) { // указано полное имя $nickname = $profile->name->full_name; } elseif (!empty($profile->name->first_name)) { // указано имя и фамилия по-отдельности $nickname = $profile->name->first_name; if (!empty($profile->name->last_name)) { $nickname .= ' ' . $profile->name->last_name; } } elseif (preg_match('/^(http:\\/\\/)([a-zA-Z0-9\\-_]+)\\.([a-zA-Z0-9\\-_]+)\\.([a-zA-Z]{2,6})([\\/]?)$/i', $profile->identity)) { // не указано имя, но передан идентификатор в виде домена $nickname = parse_url($profile->identity, PHP_URL_HOST); } $nickname = cmsCore::strClear($nickname); $login = substr(str_replace('-', '', cmsCore::strToURL($nickname)), 0, 15); if (!$nickname || !$login) { // не указано вообще ничего $max = $inDB->get_fields('cms_users', 'id>0', 'id', 'id DESC'); $nickname = $login = '******' . ($max['id'] + 1); } // генерируем пароль $pass = md5(substr(md5(microtime() . uniqid()), 0, 8)); if (!empty($profile->email)) { $email = cmsCore::strClear($profile->email); $already_email = $inDB->get_field('cms_users', "email='{$email}' AND is_deleted=0", 'email'); if ($already_email == $email) { cmsCore::redirect('/auth/error.html'); } } if (!empty($profile->dob)) { $birthdate = cmsCore::strClear($profile->dob); } // проверяем занятость логина if ($inDB->get_field('cms_users', "login='******' AND is_deleted=0", 'login') == $login) { // если логин занят, добавляем к нему ID $max = $inDB->get_fields('cms_users', 'id>0', 'id', 'id DESC'); $login .= $max['id'] + 1; } $user_array = cmsCore::callEvent('USER_BEFORE_REGISTER', array('status' => !empty($advanced['status']) ? $advanced['status'] : '', 'status_date' => date('Y-m-d H:i:s'), 'login' => $login, 'nickname' => $nickname, 'password' => $pass, 'email' => $email, 'birthdate' => $birthdate, 'group_id' => $this->reg_model->config['default_gid'], 'regdate' => date('Y-m-d H:i:s'), 'logdate' => date('Y-m-d H:i:s'), 'invited_by' => 0, 'openid' => md5($profile->identity))); $user_array['id'] = $user_id = $inDB->insert('cms_users', $user_array); // создаем профиль пользователя if ($user_id) { $filename = 'nopic.jpg'; // если есть аватар, пробуем скачать if (!empty($profile->photo) || !empty($advanced['photo'])) { $photo_path = $this->downloadAvatar(!empty($advanced['photo']) ? $advanced['photo'] : $profile->photo); if ($photo_path) { cmsCore::includeGraphics(); $uploaddir = PATH . '/images/users/avatars/'; $filename = md5($photo_path . '-' . $user_id . '-' . time()) . '.jpg'; $uploadavatar = $uploaddir . $filename; $uploadthumb = $uploaddir . 'small/' . $filename; $cfg = $inCore->loadComponentConfig('users'); @img_resize($photo_path, $uploadavatar, $cfg['medw'], $cfg['medh']); @img_resize($photo_path, $uploadthumb, $cfg['smallw'], $cfg['smallw']); @unlink($photo_path); } } $inUser->loadUserGeo(); $inDB->insert('cms_user_profiles', array('city' => !empty($advanced['city']) ? $advanced['city'] : $inUser->city, 'user_id' => $user_id, 'imageurl' => $filename, 'gender' => !empty($profile->gender) ? strtolower($profile->gender) : 'm')); cmsCore::callEvent('USER_REGISTER', $user_array); cmsActions::log('add_user', array('object' => '', 'user_id' => $user_id, 'object_url' => '', 'object_id' => $user_id, 'target' => '', 'target_url' => '', 'target_id' => 0, 'description' => '')); if ($this->reg_model->config['send_greetmsg']) { $this->reg_model->sendGreetsMessage($user_id); } return $user_id; } return false; }
/** * Обновляет статью * @return bool */ public function updateArticle($id, $article, $not_upd_seo = false) { $article['id'] = $id; if (!$not_upd_seo) { if (@$article['url']) { $article['url'] = cmsCore::strToURL($article['url'], $this->config['is_url_cyrillic']); } $article['seolink'] = $this->getSeoLink($article); } else { unset($article['seolink']); unset($article['url']); } if (!$article['user_id']) { $article['user_id'] = cmsUser::getInstance()->id; } $article = cmsCore::callEvent('UPDATE_ARTICLE', $article); $this->inDB->update('cms_content', $article, $id); if (!$not_upd_seo) { $this->updateContentCommentsLink($id); } cmsInsertTags($article['tags'], 'content', $id); return true; }
function applet_cats() { $inCore = cmsCore::getInstance(); $inDB = cmsDatabase::getInstance(); global $_LANG; $GLOBALS['cp_page_title'] = $_LANG['AD_ARTICLES']; cpAddPathway($_LANG['AD_ARTICLES'], 'index.php?view=tree'); cmsCore::loadModel('content'); $model = new cms_model_content(); $do = cmsCore::request('do', 'str', 'add'); $id = cmsCore::request('id', 'int', -1); define('IS_BILLING', $inCore->isComponentInstalled('billing')); if (IS_BILLING) { cmsCore::loadClass('billing'); } if ($do == 'delete') { $is_with_content = cmsCore::inRequest('content'); $model->deleteCategory($id, $is_with_content); cmsCore::addSessionMessage($is_with_content ? $_LANG['AD_CATEGORY_REMOVED'] : $_LANG['AD_CATEGORY_REMOVED_NOT_ARTICLE'], 'success'); cmsCore::redirect('?view=tree'); } if ($do == 'update') { if (!cmsUser::checkCsrfToken()) { cmsCore::error404(); } $category['id'] = cmsCore::request('id', 'int', 0); $category['title'] = cmsCore::request('title', 'str', $_LANG['AD_SECTION_UNTITLED']); $category['parent_id'] = cmsCore::request('parent_id', 'int'); $category['description'] = cmsCore::request('description', 'html'); $category['description'] = $inDB->escape_string($category['description']); $category['published'] = cmsCore::request('published', 'int', 0); $category['showdate'] = cmsCore::request('showdate', 'int', 0); $category['showcomm'] = cmsCore::request('showcomm', 'int', 0); $category['orderby'] = cmsCore::request('orderby', 'str'); $category['orderto'] = cmsCore::request('orderto', 'str'); $category['modgrp_id'] = cmsCore::request('modgrp_id', 'int', 0); $category['maxcols'] = cmsCore::request('maxcols', 'int', 0); $category['showtags'] = cmsCore::request('showtags', 'int', 0); $category['showrss'] = cmsCore::request('showrss', 'int', 0); $category['showdesc'] = cmsCore::request('showdesc', 'int', 0); $category['is_public'] = cmsCore::request('is_public', 'int', 0); $category['url'] = cmsCore::request('url', 'str'); $category['pagetitle'] = cmsCore::request('pagetitle', 'str', ''); $category['meta_desc'] = cmsCore::request('meta_desc', 'str'); $category['meta_keys'] = cmsCore::request('meta_keys', 'str'); if ($category['url']) { $category['url'] = cmsCore::strToURL($category['url'], $model->config['is_url_cyrillic']); } $category['tpl'] = cmsCore::request('tpl', 'str', 'com_content_view.tpl'); $category['cost'] = cmsCore::request('cost', 'str', ''); if (!is_numeric($category['cost'])) { $category['cost'] = ''; } $album = array(); $album['id'] = cmsCore::request('album_id', 'int', 0); $album['header'] = cmsCore::request('album_header', 'str', ''); $album['orderby'] = cmsCore::request('album_orderby', 'str', ''); $album['orderto'] = cmsCore::request('album_orderto', 'str', ''); $album['maxcols'] = cmsCore::request('album_maxcols', 'int', 0); $album['max'] = cmsCore::request('album_max', 'int', 0); if ($album['id']) { $category['photoalbum'] = serialize($album); } else { $category['photoalbum'] = ''; } // получаем старую категорию $old = $inDB->get_fields('cms_category', "id='{$category['id']}'", '*'); if (!$old) { cmsCore::error404(); } // если сменили категорию if ($old['parent_id'] != $category['parent_id']) { // перемещаем ее в дереве $inCore->nestedSetsInit('cms_category')->MoveNode($category['id'], $category['parent_id']); // обновляем сеолинки категорий $inDB->updateNsCategorySeoLink('cms_category', $category['id'], $model->config['is_url_cyrillic']); // Обновляем ссылки меню на категории $model->updateCatMenu(); // обновляем сеолинки всех вложенных статей $model->updateArticlesSeoLink($category['id']); cmsCore::addSessionMessage($_LANG['AD_CATEGORY_NEW_URL'], 'info'); } $inDB->update('cms_category', $category, $category['id']); // если пришел запрос на обновление ссылок // и категория не менялась - если менялась, мы выше все обновили if (cmsCore::inRequest('update_seolink') && $old['parent_id'] == $category['parent_id']) { // обновляем сеолинки категорий $inDB->updateNsCategorySeoLink('cms_category', $category['id'], $model->config['is_url_cyrillic']); // Обновляем ссылки меню на категории $model->updateCatMenu(); // обновляем сеолинки всех вложенных статей $model->updateArticlesSeoLink($category['id']); cmsCore::addSessionMessage($_LANG['AD_SECTION_AND_ARTICLES_NEW_URL'], 'info'); } if (!cmsCore::request('is_access', 'int', 0)) { $showfor = $_REQUEST['showfor']; cmsCore::setAccess($category['id'], $showfor, 'category'); } else { cmsCore::clearAccess($category['id'], 'category'); } cmsCore::addSessionMessage($_LANG['AD_CATEGORY_SAVED'], 'success'); if (!isset($_SESSION['editlist']) || @sizeof($_SESSION['editlist']) == 0) { cmsCore::redirect('?view=tree&cat_id=' . $category['id']); } else { cmsCore::redirect('?view=tree'); } } if ($do == 'submit') { if (!cmsUser::checkCsrfToken()) { cmsCore::error404(); } $category['title'] = cmsCore::request('title', 'str', $_LANG['AD_CATEGORY_UNTITLED']); $category['url'] = cmsCore::request('url', 'str'); if ($category['url']) { $category['url'] = cmsCore::strToURL($category['url']); } $category['parent_id'] = cmsCore::request('parent_id', 'int'); $category['description'] = cmsCore::request('description', 'html'); $category['description'] = $inDB->escape_string($category['description']); $category['published'] = cmsCore::request('published', 'int', 0); $category['showdate'] = cmsCore::request('showdate', 'int', 0); $category['showcomm'] = cmsCore::request('showcomm', 'int', 0); $category['orderby'] = cmsCore::request('orderby', 'str'); $category['orderto'] = cmsCore::request('orderto', 'str'); $category['modgrp_id'] = cmsCore::request('modgrp_id', 'int', 0); $category['maxcols'] = cmsCore::request('maxcols', 'int', 0); $category['showtags'] = cmsCore::request('showtags', 'int', 0); $category['showrss'] = cmsCore::request('showrss', 'int', 0); $category['showdesc'] = cmsCore::request('showdesc', 'int', 0); $category['is_public'] = cmsCore::request('is_public', 'int', 0); $category['tpl'] = cmsCore::request('tpl', 'str', 'com_content_view.tpl'); $category['pagetitle'] = cmsCore::request('pagetitle', 'str', ''); $category['meta_desc'] = cmsCore::request('meta_desc', 'str'); $category['meta_keys'] = cmsCore::request('meta_keys', 'str'); $category['cost'] = cmsCore::request('cost', 'str', 0); if (!is_numeric($category['cost'])) { $category['cost'] = ''; } $album = array(); $album['id'] = cmsCore::request('album_id', 'int', 0); $album['header'] = cmsCore::request('album_header', 'str', ''); $album['orderby'] = cmsCore::request('album_orderby', 'str', ''); $album['orderto'] = cmsCore::request('album_orderto', 'str', ''); $album['maxcols'] = cmsCore::request('album_maxcols', 'int', 0); $album['max'] = cmsCore::request('album_max', 'int', 0); if ($album['id']) { $category['photoalbum'] = serialize($album); } else { $category['photoalbum'] = ''; } $ns = $inCore->nestedSetsInit('cms_category'); $category['id'] = $ns->AddNode($category['parent_id']); $category['seolink'] = cmsCore::generateCatSeoLink($category, 'cms_category', $model->config['is_url_cyrillic']); if ($category['id']) { $inDB->update('cms_category', $category, $category['id']); if (!cmsCore::request('is_access', 'int', 0)) { $showfor = $_REQUEST['showfor']; cmsCore::setAccess($category['id'], $showfor, 'category'); } else { cmsCore::clearAccess($category['id'], 'category'); } } $inmenu = cmsCore::request('createmenu', 'str', ''); if ($inmenu) { createMenuItem($inmenu, $category['id'], $category['title']); } cmsCore::addSessionMessage($_LANG['AD_CATEGORY_ADD'], 'success'); cmsCore::redirect('?view=tree'); } if ($do == 'add' || $do == 'edit') { require '../includes/jwtabs.php'; $GLOBALS['cp_page_head'][] = jwHeader(); $toolmenu = array(); $toolmenu[0]['icon'] = 'save.gif'; $toolmenu[0]['title'] = $_LANG['SAVE']; $toolmenu[0]['link'] = 'javascript:document.addform.submit();'; $toolmenu[1]['icon'] = 'cancel.gif'; $toolmenu[1]['title'] = $_LANG['CANCEL']; $toolmenu[1]['link'] = 'javascript:history.go(-1);'; cpToolMenu($toolmenu); $menu_list = cpGetList('menu'); if ($do == 'add') { echo '<h3>' . $_LANG['AD_CREATE_SECTION'] . '</h3>'; cpAddPathway($_LANG['AD_CREATE_SECTION'], 'index.php?view=cats&do=add'); $mod['tpl'] = 'com_content_view.tpl'; } else { if (isset($_REQUEST['multiple'])) { if (isset($_REQUEST['item'])) { $_SESSION['editlist'] = $_REQUEST['item']; } else { echo '<p class="error">' . $_LANG['AD_NO_SELECT_OBJECTS'] . '</p>'; return; } } $ostatok = ''; if (isset($_SESSION['editlist'])) { $id = array_shift($_SESSION['editlist']); if (sizeof($_SESSION['editlist']) == 0) { unset($_SESSION['editlist']); } else { $ostatok = '(' . $_LANG['AD_NEXT_IN'] . sizeof($_SESSION['editlist']) . ')'; } } else { $id = (int) $_REQUEST['id']; } $sql = "SELECT * FROM cms_category WHERE id = {$id} LIMIT 1"; $result = $inDB->query($sql); if ($inDB->num_rows($result)) { $mod = $inDB->fetch_assoc($result); if (@$mod['photoalbum']) { $mod['photoalbum'] = unserialize($mod['photoalbum']); } } echo '<h3>' . $_LANG['AD_EDIT_SECTION'] . $ostatok . '</h3>'; cpAddPathway($mod['title'], 'index.php?view=cats&do=edit&id=' . $mod['id']); } ?> <form id="addform" name="addform" method="post" action="index.php"> <input type="hidden" name="csrf_token" value="<?php echo cmsUser::getCsrfToken(); ?> " /> <input type="hidden" name="view" value="cats" /> <table class="proptable" width="100%" cellpadding="5" cellspacing="2"> <tr> <!-- главная ячейка --> <td valign="top"> <table border="0" cellpadding="0" cellspacing="5" width="100%"> <tbody> <tr> <td> <strong><?php echo $_LANG['AD_TITLE_PARTITION']; ?> </strong> <?php printLangPanel('content_category', @$mod['id'], 'title'); ?> </td> <td width="190" style="padding-left:6px"> <strong><?php echo $_LANG['AD_TEMPLATE_PARTITION']; ?> </strong> </td> </tr> <tr> <td> <input name="title" type="text" id="title" style="width:100%" value="<?php echo htmlspecialchars($mod['title']); ?> " /> </td> <td style="padding-left:6px"> <input name="tpl" type="text" style="width:98%" value="<?php echo @$mod['tpl']; ?> " /> </td> </tr> </tbody> </table> <div><strong><?php echo $_LANG['AD_PARENT_PARTITION']; ?> </strong></div> <div> <div class="parent_notice" style="color:red;margin:4px 0px;display:none"><?php echo $_LANG['AD_ANOTHER_PARENT']; ?> </div> <select name="parent_id" size="12" id="parent_id" style="width:100%" onchange="if($('option:selected',this).data('nsleft')>='<?php echo $mod['NSLeft']; ?> ' && $('option:selected',this).data('nsright')<='<?php echo $mod['NSRight']; ?> '){ $('.parent_notice').show();$('#add_mod').prop('disabled', true); } else { $('.parent_notice').hide();$('#add_mod').prop('disabled', false); }"> <?php $rootid = $inDB->getNsRootCatId('cms_category'); ?> <option value="<?php echo $rootid; ?> " <?php if (@$mod['parent_id'] == $rootid || !isset($mod['parent_id'])) { echo 'selected="selected"'; } ?> ><?php echo $_LANG['AD_SECTION']; ?> </option> <?php if (isset($mod['parent_id'])) { echo $inCore->getListItemsNS('cms_category', $mod['parent_id']); } else { echo $inCore->getListItemsNS('cms_category'); } ?> </select> </div> <div><strong><?php echo $_LANG['AD_SECTION_DESCRIPT']; ?> </strong> <?php printLangPanel('content_category', @$mod['id'], 'description'); ?> </div> <div> <?php $inCore->insertEditor('description', $mod['description'], '250', '100%'); ?> </div> </td> <!-- боковая --> <td valign="top" width="350" style="background:#ECECEC;"> <?php ob_start(); ?> {tab=<?php echo $_LANG['AD_TAB_PUBLISH']; ?> } <table width="100%" cellpadding="0" cellspacing="0" border="0" class="checklist"> <tr> <td width="20"><input type="checkbox" name="published" id="published" value="1" <?php if ($mod['published'] || $do == 'add') { echo 'checked="checked"'; } ?> /></td> <td><label for="published"><strong><?php echo $_LANG['AD_PUBLIC_SECTION']; ?> </strong></label></td> </tr> </table> <div style=" <?php if ($do == 'edit') { ?> display:none;<?php } ?> " class="url_cat"> <div style="margin-top:15px"> <strong><?php echo $_LANG['AD_SECTION_URL']; ?> </strong><br/> <div style="color:gray"><?php echo $_LANG['AD_FROM_TITLE']; ?> </div> </div> <div> <input type="text" name="url" value="<?php echo $mod['url']; ?> " style="width:99%"/> </div> </div> <?php if ($do == 'edit') { ?> <table width="100%" cellpadding="0" cellspacing="0" border="0" style="margin-top:15px"> <tr> <td width="20"><input type="checkbox" name="update_seolink" id="update_seolink" value="1" onclick="$('.url_cat').slideToggle('fast');" /></td> <td><label for="update_seolink"><strong><?php echo $_LANG['AD_NEW_LINK']; ?> </strong></label></td> </tr> </table> <div class="url_cat" style="display:none;"><strong style="color:#F00;"><?php echo $_LANG['ATTENTION']; ?> :</strong> <?php echo $_LANG['AD_NO_LINKS']; ?> </div> <?php } ?> <div style="margin-top:20px"><strong><?php echo $_LANG['AD_SORT_ARTICLES']; ?> </strong></div> <div> <select name="orderby" id="orderby" style="width:100%"> <option value="pubdate" <?php if (@$mod['orderby'] == 'pubdate') { echo 'selected="selected"'; } ?> ><?php echo $_LANG['AD_BY_CALENDAR']; ?> </option> <option value="title" <?php if (@$mod['orderby'] == 'title') { echo 'selected="selected"'; } ?> ><?php echo $_LANG['AD_BY_TITLE']; ?> </option> <option value="ordering" <?php if (@$mod['orderby'] == 'ordering') { echo 'selected="selected"'; } ?> ><?php echo $_LANG['AD_BY_ORDER']; ?> </option> <option value="hits" <?php if (@$mod['orderby'] == 'hits') { echo 'selected="selected"'; } ?> ><?php echo $_LANG['AD_BY_VIEWS']; ?> </option> </select> <select name="orderto" id="orderto" style="width:100%"> <option value="ASC" <?php if (@$mod['orderto'] == 'ASC') { echo 'selected="selected"'; } ?> ><?php echo $_LANG['AD_BY_INCREMENT']; ?> </option> <option value="DESC" <?php if (@$mod['orderto'] == 'DESC') { echo 'selected="selected"'; } ?> ><?php echo $_LANG['AD_BY_DECREMENT']; ?> </option> </select> </div> <div style="margin-top:20px"><strong><?php echo $_LANG['AD_HOW_MANY_COLUMNS']; ?> </strong></div> <div> <?php if (!isset($mod['maxcols'])) { $mod['maxcols'] = 1; } ?> <input class="uispin" name="maxcols" type="text" id="maxcols" style="width:99%" value="<?php echo @$mod['maxcols']; ?> " /> </div> <div style="margin-top:20px"><strong><?php echo $_LANG['AD_HOW_PUBLISH_SET']; ?> </strong></div> <table width="100%" cellpadding="0" cellspacing="0" border="0" class="checklist"> <tr> <td width="20"><input type="checkbox" name="showdesc" id="showdesc" value="1" <?php if ($mod['showdesc'] || $do == 'add') { echo 'checked="checked"'; } ?> /></td> <td><label for="showdesc"><?php echo $_LANG['AD_PREVIEW']; ?> </label></td> </tr> <tr> <td width="20"><input type="checkbox" name="showdate" id="showdate" value="1" <?php if ($mod['showdate'] || $do == 'add') { echo 'checked="checked"'; } ?> /></td> <td><label for="showdate"><?php echo $_LANG['AD_CALENDAR_VIEW']; ?> </label></td> </tr> <tr> <td width="20"><input type="checkbox" name="showcomm" id="showcomm" value="1" <?php if ($mod['showcomm'] || $do == 'add') { echo 'checked="checked"'; } ?> /></td> <td><label for="showcomm"><?php echo $_LANG['AD_HOW_MANY_COMENTS']; ?> </label></td> </tr> <tr> <td width="20"><input type="checkbox" name="showtags" id="showtags" value="1" <?php if ($mod['showtags'] || $do == 'add') { echo 'checked="checked"'; } ?> /></td> <td><label for="showtags"><?php echo $_LANG['AD_HOW_MANY_TAGS']; ?> </label></td> </tr> <tr> <td width="20"><input type="checkbox" name="showrss" id="showrss" value="1" <?php if ($mod['showrss'] || $do == 'add') { echo 'checked="checked"'; } ?> /></td> <td><label for="showrss"><?php echo $_LANG['AD_RSS_VIEW']; ?> </label></td> </tr> </table> <?php if ($do == 'add') { ?> <div style="margin-top:25px"> <strong><?php echo $_LANG['AD_CREATE_LINK']; ?> </strong> </div> <div> <select name="createmenu" id="createmenu" style="width:99%"> <option value="0" selected="selected"><?php echo $_LANG['AD_DONT_CREATE']; ?> </option> <?php foreach ($menu_list as $menu) { ?> <option value="<?php echo $menu['id']; ?> "> <?php echo $menu['title']; ?> </option> <?php } ?> </select> </div> <?php } ?> {tab=<?php echo $_LANG['AD_EDITORS']; ?> } <div style="margin-top:10px"> <strong><?php echo $_LANG['AD_USERS_ARTICLES']; ?> </strong><br/> <span class="hinttext"><?php echo $_LANG['AD_IF_SWITCH']; ?> </span> </div> <div> <select name="is_public" style="width:100%"> <option value="0" <?php if (!$mod['is_public']) { echo 'selected="selected"'; } ?> ><?php echo $_LANG['NO']; ?> </option> <option value="1" <?php if ($mod['is_public']) { echo 'selected="selected"'; } ?> ><?php echo $_LANG['YES']; ?> </option> </select> </div> <?php if (IS_BILLING) { ?> <div style="margin-top:15px"> <strong><?php echo $_LANG['AD_COST_ARTICLES_ADD']; ?> </strong><br/> <div style="color:gray"><?php echo $_LANG['AD_COST_ARTICLES_BY_DEFAULT']; ?> </div> </div> <div> <input type="text" name="cost" value="<?php echo $mod['cost']; ?> " style="width:50px"/><?php echo $_LANG['BILLING_POINT10']; ?> </div> <?php } ?> <div style="margin-top:20px"> <strong><?php echo $_LANG['AD_EDITORS_SECTION']; ?> </strong><br/> <span class="hinttext"><?php echo $_LANG['AD_USERS_CAN_ADMIN']; ?> </span> </div> <div> <select name="modgrp_id" id="modgrp_id" style="width:100%"> <option value="0" <?php if (!isset($mod['modgrp_id']) || @$mod['modgrp_id'] == 0) { echo 'selected'; } ?> ><?php echo $_LANG['AD_ONLY_ADMINS']; ?> </option> <?php if (@$mod['modgrp_id']) { echo $inCore->getListItems('cms_user_groups', $mod['modgrp_id'], 'id', 'ASC', 'is_admin = 0'); } else { echo $inCore->getListItems('cms_user_groups', 0, 'id', 'ASC', 'is_admin = 0'); } ?> </select> </div> {tab=<?php echo $_LANG['AD_FOTO']; ?> } <div style="margin-top:10px"> <strong><?php echo $_LANG['AD_PHOTOALBUM_CONNECT']; ?> </strong><br/> <span class="hinttext"><?php echo $_LANG['AD_PHOTO_BY_ARTICLES']; ?> </span> </div> <div> <select name="album_id" id="album_id" style="width:100%" onchange="choosePhotoAlbum()"> <option value="0" <?php if (!isset($mod['photoalbum']['id']) || !@$mod['photoalbum']['id']) { echo 'selected="selected"'; } ?> ><?php echo $_LANG['AD_DONT_CONNECT']; ?> </option> <?php //FIND ROOT if (isset($mod['photoalbum']['id'])) { echo $inCore->getListItemsNS('cms_photo_albums', $mod['photoalbum']['id']); } else { echo $inCore->getListItemsNS('cms_photo_albums'); } ?> </select> </div> <div id="con_photoalbum" <?php if (!isset($mod['photoalbum']['id']) || !$mod['photoalbum']['id']) { echo 'style="display:none;"'; } ?> > <div style="margin-top:20px"> <strong><?php echo $_LANG['AD_TITLE']; ?> </strong><br/> <span class="hinttext"><?php echo $_LANG['AD_OVER_PHOTOS']; ?> </span> </div> <div> <input name="album_header" type="text" id="album_header" style="width:99%" value="<?php echo @$mod['photoalbum']['header']; ?> " /> </div> <div style="margin-top:20px"> <strong><?php echo $_LANG['AD_PHOTOS_SORT']; ?> </strong> </div> <div> <select name="album_orderby" id="album_orderby" style="width:100%"> <option value="title" <?php if (@$mod['photoalbum']['orderby'] == 'title') { echo 'selected="selected"'; } ?> ><?php echo $_LANG['AD_BY_ALPHABET']; ?> </option> <option value="pubdate" <?php if (@$mod['photoalbum']['orderby'] == 'pubdate') { echo 'selected="selected"'; } ?> ><?php echo $_LANG['AD_BY_CALENDAR']; ?> </option> <option value="rating" <?php if (@$mod['photoalbum']['orderby'] == 'rating') { echo 'selected="selected"'; } ?> ><?php echo $_LANG['AD_BY_RATING']; ?> </option> <option value="hits" <?php if (@$mod['photoalbum']['orderby'] == 'hits') { echo 'selected="selected"'; } ?> ><?php echo $_LANG['AD_BY_VIEWS']; ?> </option> </select> <select name="album_orderto" id="album_orderto" style="width:100%"> <option value="desc" <?php if (@$mod['photoalbum']['orderto'] == 'desc') { echo 'selected="selected"'; } ?> ><?php echo $_LANG['AD_BY_DECREMENT']; ?> </option> <option value="asc" <?php if (@$mod['photoalbum']['orderto'] == 'asc') { echo 'selected="selected"'; } ?> ><?php echo $_LANG['AD_BY_INCREMENT']; ?> </option> </select> </div> <div style="margin-top:20px"> <strong><?php echo $_LANG['AD_HOW_MANY_COLUMNS']; ?> </strong> </div> <div> <?php if (!isset($mod['photoalbum']['maxcols'])) { $mod['photoalbum']['maxcols'] = 2; } ?> <input name="album_maxcols" type="text" id="album_maxcols" style="width:99%" value="<?php echo @$mod['photoalbum']['maxcols']; ?> "/> </div> <div style="margin-top:20px"> <strong><?php echo $_LANG['AD_HOW_MANY_PHOTO']; ?> </strong> </div> <div> <?php if (!isset($mod['photoalbum']['max'])) { $mod['photoalbum']['max'] = 8; } ?> <input name="album_max" type="text" id="album_max" style="width:99%" value="<?php echo @$mod['photoalbum']['max']; ?> "/> </div> </div> {tab=SEO} <div style="margin-top:5px"> <strong><?php echo $_LANG['AD_PAGE_TITLE']; ?> </strong> <?php printLangPanel('content_category', @$mod['id'], 'pagetitle'); ?> <br/> <span class="hinttext"><?php echo $_LANG['AD_IF_UNKNOWN_PAGETITLE']; ?> </span> </div> <div> <input name="pagetitle" type="text" id="pagetitle" style="width:99%" value="<?php if (isset($mod['pagetitle'])) { echo htmlspecialchars($mod['pagetitle']); } ?> " /> </div> <div style="margin-top:20px"> <strong><?php echo $_LANG['KEYWORDS']; ?> </strong> <?php printLangPanel('content_category', @$mod['id'], 'meta_keys'); ?> <br/> <span class="hinttext"><?php echo $_LANG['AD_FROM_COMMA']; ?> </span> </div> <div> <textarea name="meta_keys" style="width:97%" rows="4" id="meta_keys"><?php echo htmlspecialchars($mod['meta_keys']); ?> </textarea> </div> <div style="margin-top:20px"> <strong><?php echo $_LANG['DESCRIPTION']; ?> </strong> <?php printLangPanel('content_category', @$mod['id'], 'meta_desc'); ?> <br/> <span class="hinttext"><?php echo $_LANG['AD_LESS_THAN']; ?> </span> </div> <div> <textarea name="meta_desc" style="width:97%" rows="6" id="meta_desc"><?php echo htmlspecialchars($mod['meta_desc']); ?> </textarea> </div> {tab=<?php echo $_LANG['AD_TAB_ACCESS']; ?> } <table width="100%" cellpadding="0" cellspacing="0" border="0" class="checklist" style="margin-top:5px"> <tr> <td width="20"> <?php $sql = "SELECT * FROM cms_user_groups"; $result = $inDB->query($sql); $style = 'disabled="disabled"'; $public = 'checked="checked"'; if ($do == 'edit') { $sql2 = "SELECT * FROM cms_content_access WHERE content_id = " . $mod['id'] . " AND content_type = 'category'"; $result2 = $inDB->query($sql2); $ord = array(); if ($inDB->num_rows($result2)) { $public = ''; $style = ''; while ($r = $inDB->fetch_assoc($result2)) { $ord[] = $r['group_id']; } } } ?> <input name="is_access" type="checkbox" id="is_public" onclick="checkGroupList()" value="1" <?php echo $public; ?> /> </td> <td><label for="is_public"><strong><?php echo $_LANG['AD_SHARE']; ?> </strong></label></td> </tr> </table> <div style="padding:5px"> <span class="hinttext"> <?php echo $_LANG['AD_IF_NOTED']; ?> </span> </div> <div style="margin-top:10px;padding:5px;padding-right:0px;" id="grp"> <div> <strong><?php echo $_LANG['AD_GROUPS_VIEW']; ?> </strong><br /> <span class="hinttext"> <?php echo $_LANG['AD_SELECT_MULTIPLE_CTRL']; ?> </span> </div> <div> <?php echo '<select style="width: 99%" name="showfor[]" id="showin" size="6" multiple="multiple" ' . $style . '>'; if ($inDB->num_rows($result)) { while ($item = $inDB->fetch_assoc($result)) { echo '<option value="' . $item['id'] . '"'; if ($do == 'edit') { if (inArray($ord, $item['id'])) { echo 'selected="selected"'; } } echo '>'; echo $item['title'] . '</option>'; } } echo '</select>'; ?> </div> </div> {/tabs} <?php echo jwTabs(ob_get_clean()); ?> </td> </tr> </table> <p> <input name="add_mod" type="submit" id="add_mod" <?php if ($do == 'add') { echo 'value="' . $_LANG['AD_SAVE_SECTION'] . '"'; } else { echo 'value="' . $_LANG['AD_SAVE_SECTION'] . '"'; } ?> /> <input name="back" type="button" id="back" value="<?php echo $_LANG['CANCEL']; ?> " onclick="window.history.back();"/> <input name="do" type="hidden" id="do" <?php if ($do == 'add') { echo 'value="submit"'; } else { echo 'value="update"'; } ?> /> <?php if ($do == 'edit') { echo '<input name="id" type="hidden" value="' . $mod['id'] . '" />'; } ?> </p> </form> <script type="text/javascript"> function choosePhotoAlbum(){ id = $('select[name=album_id]').val(); if(id != 0){ $('#con_photoalbum').fadeIn(); } else { $('#con_photoalbum').hide(); } } </script> <?php } }
$cfg['watermark'] = 0; } @img_resize($uploadphoto, $uploadthumb, $cfg['thumb1'], $cfg['thumb1'], $cfg['thumbsqr']); @img_resize($uploadphoto, $uploadphoto, $cfg['thumb2'], $cfg['thumb2'], $cfg['thumbsqr']); } else { $msg = $inCore->uploadError(); } } else { $filename = ''; } //insert into db $sql = "INSERT INTO cms_clubs (admin_id, title, description, imageurl, pubdate, clubtype, published, maxsize, enabled_blogs, enabled_photos)\r\n VALUES ({$admin_id}, '{$title}', '{$description}', '{$filename}', '{$pubdate}', '{$clubtype}', '{$published}', '{$maxsize}', '{$enabled_blogs}', '{$enabled_photos}')"; dbQuery($sql); $id = dbLastId('cms_clubs'); //create blog $blog_seolink = cmsCore::strToURL($title); $sql = "INSERT INTO cms_blogs (user_id, title, pubdate, allow_who, view_type, showcats, ownertype, premod, forall, owner, seolink)\r\n VALUES ('{$id}', 'Блог', NOW(), 'all', 'list', 1, 'multi', 0, 0, 'club', '{$blog_seolink}')"; dbQuery($sql); $moders = $_POST['moderslist']; $members = $_POST['memberslist']; if (array_search($admin_id, $moders)) { unset($moders[array_search($admin_id, $moders)]); } if (array_search($admin_id, $members)) { unset($members[array_search($admin_id, $members)]); } clubSaveUsers($id, $moders, 'moderator'); clubSaveUsers($id, $members, 'member'); header('location:?view=components&do=config&opt=list&id=' . $_REQUEST['id']); } if ($opt == 'update') {
/** * Проверяет значения формы * @param int $form_id ID формы * @return array */ public static function getFieldsInputValues($form_id) { // Получаем данные без mysqli_real_escape_string $form_array = cmsCore::request('field', 'array'); if (!$form_array) { return array(); } $formObj = new self($form_id, $form_array); if (!$formObj->form || !$formObj->form_fields) { return array(); } global $_LANG; $inUser = cmsUser::getInstance(); $output = array(); // Заполняем выходной массив значений // $output['values'] массив значений полей // $output['errors'] массив ошибок полей foreach ($formObj->form_fields as $field) { // Значение поля $field_value = array_key_exists($field['id'], $formObj->values) ? $formObj->values[$field['id']] : ''; $error = ''; // проверяем заполненность текстового поля если нужно if ($field['mustbe'] && !$field_value && $field['kind'] != 'file') { $error = $_LANG['FIELD'] . ' "' . $field['title'] . '" ' . $_LANG['MUST_BE_FILLED']; } else { cmsUser::sessionPut('form_last_' . $formObj->form_id . '_' . $field['id'], htmlspecialchars($field_value)); } // Загружаем файл если он есть в форме if ($field['kind'] == 'file') { // старые значения если есть $old_url = $field_value['url']; $old_name = $field_value['name']; $output['values'][$field['id']] = array(); if (!$_FILES['field']['name'][$field['id']]) { // Поле обязательно для заполнения? if ($field['mustbe'] && !$old_url) { $error = $_LANG['FIELD'] . ' "' . $field['title'] . '" ' . $_LANG['MUST_BE_FILLED']; } else { // если пришел флаг на удаление if (isset($field_value['delete'])) { $formObj->deleteFile($old_url); $old_url = ''; $old_name = ''; } $output['values'][$field['id']] = array('name' => $old_name, 'url' => $old_url); } } else { // директория загрузки $upload_dir = PATH . '/upload/forms/' . $form_id . '/' . $inUser->id; @mkdir($upload_dir, 0777, true); @chmod($upload_dir, 0777); // проверяем расширение файла $maytypes = explode(',', $field['config']['ext']); $ext = mb_strtolower(pathinfo($_FILES['field']['name'][$field['id']], PATHINFO_EXTENSION)); if (!in_array($ext, $maytypes)) { $error = $_LANG['ERROR_TYPE_FILE'] . $field['config']['ext']; } // имя файла $file_name = cmsCore::strToURL(pathinfo($_FILES['field']['name'][$field['id']], PATHINFO_FILENAME)); $dest = $upload_dir . '/' . $file_name . uniqid() . '.' . $ext; if (!$error) { if (!cmsCore::moveUploadedFile($_FILES['field']['tmp_name'][$field['id']], $dest, $_FILES['field']['error'][$field['id']])) { $error = cmsCore::uploadError(); } else { $formObj->deleteFile($old_url); $output['values'][$field['id']] = array('name' => $file_name, 'url' => str_replace(PATH, '', $dest)); } } } } else { // Заполняем массив значений полей, ключи массива id поля $output['values'][$field['id']] = $field['config']['max'] ? mb_substr(strip_tags($field_value), 0, $field['config']['max']) : strip_tags($field_value); } // Заполняем массив ошибок $output['errors'][$field['id']] = $error; } // если были ошибки, удаляем загруженный файл, если он есть if (!empty($dest)) { foreach ($output['errors'] as $field_error) { if ($field_error) { @unlink($dest); break; } } } return $output; }
/** * Обновляет статью * @return bool */ public function updateArticle($id, $article, $not_upd_seo = false) { $article['id'] = $id; cmsCore::setIdUploadImage('', $article['id'], 'content'); cmsCore::requestUploadImgTitles($article['id'], 'content'); cmsCore::updateComImages($article['id'], 'content', '', 'cms_content', 'images'); if (!$not_upd_seo) { if (@$article['url']) { $article['url'] = cmsCore::strToURL($article['url'], $this->config['is_url_cyrillic']); } $article['seolink'] = $this->getSeoLink($article); } else { unset($article['seolink']); unset($article['url']); } if (!$article['user_id']) { $article['user_id'] = cmsCore::c('user')->id; } $article = cmsCore::callEvent('UPDATE_ARTICLE', $article); cmsCore::c('db')->update('cms_content', $article, $id); if (!$not_upd_seo) { $this->updateContentCommentsLink($id); } cmsInsertTags($article['tags'], 'content', $id); return true; }
private function iframeVkAuth($user_id = 0) { $iframe_user_id = cmsCore::request('viewer_id', 'int', 0, 'get'); if ($user_id != 0) { if ($_SESSION['user']['iframe_user_id'] == $iframe_user_id) { return true; } } if (!empty($iframe_user_id)) { $user = $this->loadUser(0, "u.iframe_provider = 'vk' and u.iframe_user_id = '". $iframe_user_id ."'"); if ($user) { $_SESSION['user'] = $user; cmsCore::callEvent('USER_LOGIN', $_SESSION['user']); self::setUserLogdate($user['id']); } else { $opt = $options = array(); $options['user_ids'] = $iframe_user_id; $options['fields'] = 'city,country,screen_name,bdate,sex,photo_max_orig,photo_400_orig,photo_200_orig,photo_100'; $options['v'] = '5.8'; $options['lang'] = 'ru'; ksort($options); foreach ($options as $k => $v){ $opt[] = $k .'='. urlencode($v); } $response = cmsCore::c('curl')->request('get', 'https://api.vk.com/method/users.get?'. implode('&', $opt))->json(); if (!empty($response) && !empty($response['response'][0]['id'])) { $response = $response['response'][0]; $new_user = array( 'nickname' => cmsCore::c('db')->escape_string($response['last_name'] .' '. $response['first_name']), 'login' => preg_match('#^[0-9]+$#is', $response['screen_name']) ? cmsCore::strToURL($response['last_name'] .' '. $response['first_name']) : $response['screen_name'] ); if (isset($response['bdate']) && preg_match('#([0-9]{1,2})\.([0-9]{1,2})\.([0-9]{4})#is', $response['bdate'], $bd)) { $new_user['birthdate'] = $bd[3] .'-'. (mb_strlen($bd[2])<2 ? '0'. $bd[2] : $bd[2]) .'-'. (mb_strlen($bd[1])<2 ? '0'. $bd[1] : $bd[1]); } $new_user['gender'] = ($response['sex'] == 2 ? 'm' : ($response['sex'] == 1 ? 'f' : 0)); $new_user['city'] = ''; if (isset($response['city'])) { $new_user['city'] = cmsCore::c('db')->escape_string($response['city']['title']); } $new_user['iframe_provider'] = 'vk'; $new_user['iframe_user_id'] = $iframe_user_id; $new_user['regdate'] = date('Y-m-d H:i:s'); $new_user['photo'] = isset($response['photo_max_orig']) ? $response['photo_max_orig'] : (isset($response['photo_400_orig']) ? $response['photo_400_orig'] : (isset($response['photo_200_orig']) ? $response['photo_200_orig'] : $response['photo_100'])); $new_user['id'] = cmsCore::c('db')->insert('cms_users', $new_user); if (!$new_user['id']) { return false; } if (!empty($new_user['photo'])) { $d1 = ceil($new_user['id']/10000); $d2 = ceil($new_user['id']/100); if (!is_dir(PATH .'/images/users/avatars/'. $d1)) { mkdir(PATH .'/images/users/avatars/'. $d1, 0777, true); } if (!is_dir(PATH .'/images/users/avatars/'. $d1 .'/'. $d2)) { mkdir(PATH .'/images/users/avatars/'. $d1 .'/'. $d2, 0777, true); } if (!is_dir(PATH .'/images/users/avatars/small/'. $d1)) { mkdir(PATH .'/images/users/avatars/small/'. $d1, 0777, true); } if (!is_dir(PATH .'/images/users/avatars/small/'. $d1 .'/'. $d2)) { mkdir(PATH .'/images/users/avatars/small/'. $d1 .'/'. $d2, 0777, true); } cmsCore::c('images')->mresize_type = 'auto'; cmsCore::c('images')->small_type = 'exact'; cmsCore::c('images')->medium_dir = PATH .'/images/users/avatars/'. $d1 .'/'. $d2 .'/'; cmsCore::c('images')->small_dir = PATH .'/images/users/avatars/small/'. $d1 .'/'. $d2 .'/'; cmsCore::c('images')->new_mw = cmsCore::m('users')->config['medw']; cmsCore::c('images')->new_mh = cmsCore::m('users')->config['medh']; cmsCore::c('images')->new_sw = cmsCore::m('users')->config['smallw']; cmsCore::c('images')->new_sh = cmsCore::m('users')->config['smallw']; $new_user['imageurl'] = $d1 .'/'. $d2 .'/'. cmsCore::c('images')->resize($new_user['photo']); } $new_user['user_id'] = $new_user['id']; cmsCore::c('db')->insert('cms_user_profiles', $new_user); $user = $this->loadUser($new_user['id']); $_SESSION['user'] = $user; cmsCore::callEvent('USER_LOGIN', $_SESSION['user']); self::setUserLogdate($user['id']); } } $cookie_code = md5($user['id'] . $user['password'] . PATH); cmsCore::setCookie('userid', $cookie_code, time()+2592000); return $user['id']; } return false; }
function applet_cats() { $inCore = cmsCore::getInstance(); $inDB = cmsDatabase::getInstance(); global $_LANG; $GLOBALS['cp_page_title'] = $_LANG['AD_ARTICLES']; cpAddPathway($_LANG['AD_ARTICLES'], 'index.php?view=tree'); cmsCore::loadModel('content'); $model = new cms_model_content(); $small = $model->config['img_small_w']; $big = $model->config['img_big_w']; $do = cmsCore::request('do', 'str', 'add'); $id = cmsCore::request('id', 'int', -1); define('IS_BILLING', $inCore->isComponentInstalled('billing')); if (IS_BILLING) { cmsCore::loadClass('billing'); } if ($do == 'delete') { $is_with_content = cmsCore::inRequest('content'); $model->deleteCategory($id, $is_with_content); cmsCore::addSessionMessage($is_with_content ? $_LANG['AD_CATEGORY_REMOVED'] : $_LANG['AD_CATEGORY_REMOVED_NOT_ARTICLE'], 'success'); cmsCore::redirect('?view=tree'); } //update from categories table if ($do == 'update') { if (!cmsUser::checkCsrfToken()) { cmsCore::error404(); } $category['id'] = cmsCore::request('id', 'int', 0); $category['title'] = cmsCore::request('title', 'str', $_LANG['AD_SECTION_UNTITLED']); $category['parent_id'] = cmsCore::request('parent_id', 'int'); $category['description'] = cmsCore::request('description', 'html'); $category['description'] = $inDB->escape_string($category['description']); $category['published'] = cmsCore::request('published', 'int', 0); $category['showdate'] = cmsCore::request('showdate', 'int', 0); $category['showcomm'] = cmsCore::request('showcomm', 'int', 0); $category['orderby'] = cmsCore::request('orderby', 'str'); $category['orderto'] = cmsCore::request('orderto', 'str'); $category['modgrp_id'] = cmsCore::request('modgrp_id', 'int', 0); $category['maxcols'] = cmsCore::request('maxcols', 'int', 0); $category['showtags'] = cmsCore::request('showtags', 'int', 0); $category['showrss'] = cmsCore::request('showrss', 'int', 0); $category['showdesc'] = cmsCore::request('showdesc', 'int', 0); $category['is_public'] = cmsCore::request('is_public', 'int', 0); $category['url'] = cmsCore::request('url', 'str'); $category['pagetitle'] = cmsCore::request('pagetitle', 'str', ''); $category['meta_desc'] = cmsCore::request('meta_desc', 'str'); $category['meta_keys'] = cmsCore::request('meta_keys', 'str'); $category['redirect_url'] = cmsCore::request('redirect_url', 'str'); //new $category['show_in_main'] = cmsCore::request('show_in_main', 'int', 0); //new $category['perpage_item'] = cmsCore::request('perpage_item', 'str'); //new if ($category['url']) { $category['url'] = cmsCore::strToURL($category['url'], $model->config['is_url_cyrillic']); } $category['tpl'] = cmsCore::request('tpl', 'str', 'com_content_view.tpl'); $category['cost'] = cmsCore::request('cost', 'str', ''); if (!is_numeric($category['cost'])) { $category['cost'] = ''; } $album = array(); $album['id'] = cmsCore::request('album_id', 'int', 0); $album['header'] = cmsCore::request('album_header', 'str', ''); $album['orderby'] = cmsCore::request('album_orderby', 'str', ''); $album['orderto'] = cmsCore::request('album_orderto', 'str', ''); $album['maxcols'] = cmsCore::request('album_maxcols', 'int', 0); $album['max'] = cmsCore::request('album_max', 'int', 0); if ($album['id']) { $category['photoalbum'] = serialize($album); } else { $category['photoalbum'] = ''; } // получаем старую категорию $old = $inDB->get_fields('cms_category', "id='{$category['id']}'", '*'); if (!$old) { cmsCore::error404(); } // если сменили категорию if ($old['parent_id'] != $category['parent_id']) { // перемещаем ее в дереве $inCore->nestedSetsInit('cms_category')->MoveNode($category['id'], $category['parent_id']); // обновляем сеолинки категорий $inDB->updateNsCategorySeoLink('cms_category', $category['id'], $model->config['is_url_cyrillic']); // Обновляем ссылки меню на категории $model->updateCatMenu(); // обновляем сеолинки всех вложенных статей $model->updateArticlesSeoLink($category['id']); cmsCore::addSessionMessage($_LANG['AD_CATEGORY_NEW_URL'], 'info'); } $inDB->update('cms_category', $category, $category['id']); // если пришел запрос на обновление ссылок // и категория не менялась - если менялась, мы выше все обновили if (cmsCore::inRequest('update_seolink') && $old['parent_id'] == $category['parent_id']) { // обновляем сеолинки категорий $inDB->updateNsCategorySeoLink('cms_category', $category['id'], $model->config['is_url_cyrillic']); // Обновляем ссылки меню на категории $model->updateCatMenu(); // обновляем сеолинки всех вложенных статей $model->updateArticlesSeoLink($category['id']); cmsCore::addSessionMessage($_LANG['AD_SECTION_AND_ARTICLES_NEW_URL'], 'info'); } if (!cmsCore::request('is_access', 'int', 0)) { $showfor = $_REQUEST['showfor']; cmsCore::setAccess($category['id'], $showfor, 'category'); } else { cmsCore::clearAccess($category['id'], 'category'); } if (isset($_SESSION['lang']) && $_SESSION['lang'] != 'ru') { $file = 'cat_article' . $category['id'] . '_' . $_SESSION['lang'] . '.jpg'; } else { $file = 'cat_article' . $category['id'] . '.jpg'; } // работа с файлами! //$file = 'cat_article'.$category['id'].'.jpg'; if (cmsCore::request('delete_image', 'int', 0)) { @unlink(PATH . "/images/photos/small/{$file}"); @unlink(PATH . "/images/photos/medium/{$file}"); } else { //подгружаем параметры фото $small_size_w = cmsCore::request('img_small_w', 'str', ''); $medium_size_w = cmsCore::request('img_big_w', 'str', ''); $thumbsqr = cmsCore::request('img_sqr', 'str', ''); // Загружаем класс загрузки фото cmsCore::loadClass('upload_photo'); $inUploadPhoto = cmsUploadPhoto::getInstance(); // Выставляем конфигурационные параметры $inUploadPhoto->upload_dir = PATH . '/images/photos/'; $inUploadPhoto->small_size_w = $small_size_w; $inUploadPhoto->medium_size_w = $medium_size_w; $inUploadPhoto->thumbsqr = $thumbsqr; $inUploadPhoto->is_watermark = $model->config['watermark']; $inUploadPhoto->input_name = 'picture'; $inUploadPhoto->filename = $file; // Процесс загрузки фото $inUploadPhoto->uploadPhoto(); //var_dump($inUploadPhoto); } cmsCore::addSessionMessage($_LANG['AD_CATEGORY_SAVED'], 'success'); if (!isset($_SESSION['editlist']) || @sizeof($_SESSION['editlist']) == 0) { cmsCore::redirect('?view=tree&cat_id=' . $category['id']); } else { cmsCore::redirect('?view=tree'); } } // submit in to DB if ($do == 'submit') { if (!cmsUser::checkCsrfToken()) { cmsCore::error404(); } $category['title'] = cmsCore::request('title', 'str', $_LANG['AD_CATEGORY_UNTITLED']); $category['url'] = cmsCore::request('url', 'str'); if ($category['url']) { $category['url'] = cmsCore::strToURL($category['url']); } $category['parent_id'] = cmsCore::request('parent_id', 'int'); $category['description'] = cmsCore::request('description', 'html'); $category['description'] = $inDB->escape_string($category['description']); $category['published'] = cmsCore::request('published', 'int', 0); $category['showdate'] = cmsCore::request('showdate', 'int', 0); $category['showcomm'] = cmsCore::request('showcomm', 'int', 0); $category['orderby'] = cmsCore::request('orderby', 'str'); $category['orderto'] = cmsCore::request('orderto', 'str'); $category['modgrp_id'] = cmsCore::request('modgrp_id', 'int', 0); $category['maxcols'] = cmsCore::request('maxcols', 'int', 0); $category['showtags'] = cmsCore::request('showtags', 'int', 0); $category['showrss'] = cmsCore::request('showrss', 'int', 0); $category['showdesc'] = cmsCore::request('showdesc', 'int', 0); $category['is_public'] = cmsCore::request('is_public', 'int', 0); $category['tpl'] = cmsCore::request('tpl', 'str', 'com_content_view.tpl'); $category['pagetitle'] = cmsCore::request('pagetitle', 'str', ''); $category['meta_desc'] = cmsCore::request('meta_desc', 'str'); $category['meta_keys'] = cmsCore::request('meta_keys', 'str'); $category['redirect_url'] = cmsCore::request('redirect_url', 'str'); //new $category['show_in_main'] = cmsCore::request('show_in_main', 'int', 0); //new $category['perpage_item'] = cmsCore::request('perpage_item', 'str'); //new $category['cost'] = cmsCore::request('cost', 'str', 0); if (!is_numeric($category['cost'])) { $category['cost'] = ''; } $album = array(); $album['id'] = cmsCore::request('album_id', 'int', 0); $album['header'] = cmsCore::request('album_header', 'str', ''); $album['orderby'] = cmsCore::request('album_orderby', 'str', ''); $album['orderto'] = cmsCore::request('album_orderto', 'str', ''); $album['maxcols'] = cmsCore::request('album_maxcols', 'int', 0); $album['max'] = cmsCore::request('album_max', 'int', 0); if ($album['id']) { $category['photoalbum'] = serialize($album); } else { $category['photoalbum'] = ''; } $ns = $inCore->nestedSetsInit('cms_category'); $category['id'] = $ns->AddNode($category['parent_id']); $category['seolink'] = cmsCore::generateCatSeoLink($category, 'cms_category', $model->config['is_url_cyrillic']); if ($category['id']) { $inDB->update('cms_category', $category, $category['id']); if (!cmsCore::request('is_access', 'int', 0)) { $showfor = $_REQUEST['showfor']; cmsCore::setAccess($category['id'], $showfor, 'category'); } else { cmsCore::clearAccess($category['id'], 'category'); } } $inmenu = cmsCore::request('createmenu', 'str', ''); if ($inmenu) { createMenuItem($inmenu, $category['id'], $category['title']); } //подгружаем параметры фото $small_size_w = cmsCore::request('img_small_w', 'str', ''); $medium_size_w = cmsCore::request('img_big_w', 'str', ''); $thumbsqr = cmsCore::request('img_sqr', 'str', ''); // Загружаем класс загрузки фото cmsCore::loadClass('upload_photo'); $inUploadPhoto = cmsUploadPhoto::getInstance(); // Выставляем конфигурационные параметры $inUploadPhoto->upload_dir = PATH . '/images/photos/'; $inUploadPhoto->small_size_w = $small_size_w; $inUploadPhoto->medium_size_w = $medium_size_w; $inUploadPhoto->thumbsqr = $thumbsqr; $inUploadPhoto->is_watermark = $model->config['watermark']; $inUploadPhoto->input_name = 'picture'; $inUploadPhoto->filename = $file; // Процесс загрузки фото $inUploadPhoto->uploadPhoto(); //var_dump($inUploadPhoto); cmsCore::addSessionMessage($_LANG['AD_CATEGORY_ADD'], 'success'); cmsCore::redirect('?view=tree'); } if ($do == 'add' || $do == 'edit') { require '../includes/jwtabs.php'; $GLOBALS['cp_page_head'][] = jwHeader(); $toolmenu = array(); $toolmenu[0]['icon'] = 'save.gif'; $toolmenu[0]['title'] = $_LANG['SAVE']; $toolmenu[0]['link'] = 'javascript:document.addform.submit();'; $toolmenu[1]['icon'] = 'cancel.gif'; $toolmenu[1]['title'] = $_LANG['CANCEL']; $toolmenu[1]['link'] = 'javascript:history.go(-1);'; cpToolMenu($toolmenu); $menu_list = cpGetList('menu'); if ($do == 'add') { echo '<h3>' . $_LANG['AD_CREATE_SECTION'] . '</h3>'; cpAddPathway($_LANG['AD_CREATE_SECTION'], 'index.php?view=cats&do=add'); $mod['tpl'] = 'com_content_view.tpl'; } else { if (isset($_REQUEST['multiple'])) { if (isset($_REQUEST['item'])) { $_SESSION['editlist'] = $_REQUEST['item']; } else { echo '<p class="error">' . $_LANG['AD_NO_SELECT_OBJECTS'] . '</p>'; return; } } $ostatok = ''; if (isset($_SESSION['editlist'])) { $id = array_shift($_SESSION['editlist']); if (sizeof($_SESSION['editlist']) == 0) { unset($_SESSION['editlist']); } else { $ostatok = '(' . $_LANG['AD_NEXT_IN'] . sizeof($_SESSION['editlist']) . ')'; } } else { $id = (int) $_REQUEST['id']; } $sql = "SELECT * FROM cms_category WHERE id = {$id} LIMIT 1"; $result = $inDB->query($sql); if ($inDB->num_rows($result)) { $mod = $inDB->fetch_assoc($result); if (@$mod['photoalbum']) { $mod['photoalbum'] = unserialize($mod['photoalbum']); } } echo '<h3>' . $_LANG['AD_EDIT_SECTION'] . $ostatok . '</h3>'; cpAddPathway($mod['title'], 'index.php?view=cats&do=edit&id=' . $mod['id']); } ?> <form id="addform" name="addform" method="post" action="index.php" enctype="multipart/form-data"> <input type="hidden" name="csrf_token" value="<?php echo cmsUser::getCsrfToken(); ?> " /> <input type="hidden" name="view" value="cats" /> <table class="proptable" width="100%" cellpadding="5" cellspacing="2"> <tr> <!-- главная ячейка --> <td valign="top"> <table border="0" cellpadding="0" cellspacing="5" width="100%"> <tbody> <tr> <td> <strong><?php echo $_LANG['AD_TITLE_PARTITION']; ?> </strong> </td> <td width="190" style="padding-left:6px"> <strong><?php echo $_LANG['AD_TEMPLATE_PARTITION']; ?> </strong> </td> </tr> <tr> <td> <input name="title" type="text" id="title" style="width:100%" value="<?php echo htmlspecialchars($mod['title']); ?> " /> </td> <!-- <td style="padding-left:6px"> <input name="tpl" type="text" style="width:98%" value="<?php echo @$mod['tpl']; ?> " /> </td>--> <td style="padding-left:6px"> <?php $inConf = cmsConfig::getInstance(); //задаём имя директории $directory = PATH . "/templates/" . $inConf->template . "/components"; $scan_dir = scandir($directory); if (is_dir($directory)) { //проверяем наличие директории //директория существует echo '<select name="tpl">'; $scan_dir = scandir($directory); //сканируем (получаем массив файлов) array_shift($scan_dir); // удаляем из массива '.' array_shift($scan_dir); // удаляем из массива '..' for ($i = 0; $i < sizeof($scan_dir); $i++) { $tpl = explode("_", $scan_dir[$i]); if ($_GET['view'] == $tpl['1'] || $tpl['1'] == 'content') { if ($_GET['view']) { //выводим все файлы if (@$mod["tpl"] == $scan_dir[$i]) { echo '<option selected>' . $scan_dir[$i] . '</option>'; } else { echo '<option>' . $scan_dir[$i] . '</option>'; } } } } echo '</select>'; } else { echo '<input name="tpl" type="text" style="width:160px" value="' . @$mod["tpl"] . '">'; } ?> </td> </tr> </tbody> </table> <div><strong><?php echo $_LANG['AD_PARENT_PARTITION']; ?> </strong></div> <div> <div class="parent_notice" style="color:red;margin:4px 0px;display:none"><?php echo $_LANG['AD_ANOTHER_PARENT']; ?> </div> <select name="parent_id" size="12" id="parent_id" style="width:100%" onchange="if($('option:selected',this).data('nsleft')>='<?php echo $mod['NSLeft']; ?> ' && $('option:selected',this).data('nsright')<='<?php echo $mod['NSRight']; ?> '){ $('.parent_notice').show();$('#add_mod').prop('disabled', true); } else { $('.parent_notice').hide();$('#add_mod').prop('disabled', false); }"> <?php $rootid = $inDB->getNsRootCatId('cms_category'); ?> <option value="<?php echo $rootid; ?> " <?php if (@$mod['parent_id'] == $rootid || !isset($mod['parent_id'])) { echo 'selected="selected"'; } ?> ><?php echo $_LANG['AD_SECTION']; ?> </option> <?php if (isset($mod['parent_id'])) { echo $inCore->getListItemsNS('cms_category', $mod['parent_id']); } else { echo $inCore->getListItemsNS('cms_category'); } ?> </select> </div> <div><strong><?php echo $_LANG['AD_SECTION_DESCRIPT']; ?> </strong></div> <div> <?php $inCore->insertEditor('description', $mod['description'], '250', '100%'); ?> </div> </td> <!-- боковая --> <td valign="top" width="350" style="background:#ECECEC;"> <?php ob_start(); ?> {tab=<?php echo $_LANG['AD_TAB_PUBLISH']; ?> } <table width="100%" cellpadding="0" cellspacing="0" border="0" class="checklist"> <tr> <td width="20"><input type="checkbox" name="published" id="published" value="1" <?php if ($mod['published'] || $do == 'add') { echo 'checked="checked"'; } ?> /></td> <td><label for="published"><strong><?php echo $_LANG['AD_PUBLIC_SECTION']; ?> </strong></label></td> </tr> </table> <div style=" <?php if ($do == 'edit') { ?> display:none;<?php } ?> " class="url_cat"> <div style="margin-top:15px"> <strong><?php echo $_LANG['AD_SECTION_URL']; ?> </strong><br/> <div style="color:gray"><?php echo $_LANG['AD_FROM_TITLE']; ?> </div> </div> <div> <input type="text" name="url" value="<?php echo $mod['url']; ?> " style="width:99%"/> </div> </div> <div class="url_cat"><!--//my cod--> <div style="margin-top:15px"> <strong><?php echo $_LANG['AD_SECTION_REDIRECT_URL']; ?> </strong><br/> <div style="color:gray"><?php echo $_LANG['AD_FROM_URL']; ?> </div> </div> <input type="text" name="redirect_url" value="<?php echo $mod['redirect_url']; ?> " style="width:99%"/> </div> <?php if ($do == 'edit') { ?> <table width="100%" cellpadding="0" cellspacing="0" border="0" style="margin-top:15px"> <tr> <td width="20"><input type="checkbox" name="update_seolink" id="update_seolink" value="1" onclick="$('.url_cat').slideToggle('fast');" /></td> <td><label for="update_seolink"><strong><?php echo $_LANG['AD_NEW_LINK']; ?> </strong></label></td> </tr> </table> <div class="url_cat" style="display:none;"><strong style="color:#F00;"><?php echo $_LANG['ATTENTION']; ?> :</strong> <?php echo $_LANG['AD_NO_LINKS']; ?> </div> <?php } ?> <div style="margin-top:20px"><strong><?php echo $_LANG['AD_SORT_ARTICLES']; ?> </strong></div> <div> <select name="orderby" id="orderby" style="width:100%"> <option value="pubdate" <?php if (@$mod['orderby'] == 'pubdate') { echo 'selected="selected"'; } ?> ><?php echo $_LANG['AD_BY_CALENDAR']; ?> </option> <option value="title" <?php if (@$mod['orderby'] == 'title') { echo 'selected="selected"'; } ?> ><?php echo $_LANG['AD_BY_TITLE']; ?> </option> <option value="ordering" <?php if (@$mod['orderby'] == 'ordering') { echo 'selected="selected"'; } ?> ><?php echo $_LANG['AD_BY_ORDER']; ?> </option> <option value="hits" <?php if (@$mod['orderby'] == 'hits') { echo 'selected="selected"'; } ?> ><?php echo $_LANG['AD_BY_VIEWS']; ?> </option> </select> <select name="orderto" id="orderto" style="width:100%"> <option value="ASC" <?php if (@$mod['orderto'] == 'ASC') { echo 'selected="selected"'; } ?> ><?php echo $_LANG['AD_BY_INCREMENT']; ?> </option> <option value="DESC" <?php if (@$mod['orderto'] == 'DESC') { echo 'selected="selected"'; } ?> ><?php echo $_LANG['AD_BY_DECREMENT']; ?> </option> </select> </div> <div style="margin-top:12px"><strong>Фотография</strong></div> <div style="margin-bottom:10px"> <?php if ($do == 'edit') { if (isset($_SESSION['lang']) && $_SESSION['lang'] != 'ru') { $mod_id = $mod['id'] . '_' . $_SESSION['lang']; $id_art = $mod['id'] . '_' . $_SESSION['lang']; } else { $mod_id = $mod['id']; $id_art = $id; } //if (file_exists(PATH.'/images/photos/small/cat_article'.$mod['id'].'.jpg')){ if (file_exists(PATH . '/images/photos/small/cat_article' . $mod_id . '.jpg')) { ?> <div style="margin-top:3px;margin-bottom:3px;padding:10px;border:solid 1px gray;text-align:center"> <?/*php<img src="/images/photos/small/cat_article<?php echo $id; ?> .jpg" border="0" />*/?> <img src="/images/photos/small/cat_article<?php echo $id_art; ?> .jpg" border="0" /> </div> <table cellpadding="0" cellspacing="0" border="0"> <tr> <td width="16"><input type="checkbox" id="delete_image" name="delete_image" value="1" /></td> <td><label for="delete_image">Удалить фотографию</label></td> </tr> </table> <?php } } ?> <input type="file" name="picture" style="width:100%" /> </div> <!---------------------------------------------------------------------------------------------------> <a style="cursor:pointer" onclick='$("#phto_config").slideToggle("");' >Параметры фото</a> <table id="phto_config" style="display:none;"> <tr> <td><strong>Ширина маленькой копии:</strong></td> <td width="120"> <input type="text" size="5" value="<?php echo $small; ?> " id="img_small_w" name="img_small_w"> пикс. </td> </tr> <tr> <td><strong>Ширина большой копии:</strong></td> <td> <input type="text" size="5" value="<?php echo $big; ?> " id="img_big_w" name="img_big_w"> пикс. </td> </tr> <tr> <td><strong>Квадратные:</strong></td> <td> <input type="radio" value="0" name="img_sqr"> Да <input type="radio" checked="checked" value="1" name="img_sqr"> Нет </td> </tr> <!-- <tr> <td> <strong>Разрешить пользователям:</strong><br> <span class="hinttext">Смогут ли пользователи добавлять фотографии к своим статьям</span> </td> <td> <input type="radio" checked="checked" value="1" name="img_users"> Да <input type="radio" value="0" name="img_users"> Нет </td> </tr> <tr> <td><strong>Наносить водяной знак:</strong> <br>Если включено, то на все загружаемые фотографии (на большую миниатюру) к статьям будет наносится изображение из файла "<a target="_blank" href="/images/watermark.png">/images/watermark.png</a>"</td> <td width="260"> <input type="radio" checked="checked" value="1" name="watermark"> Да <input type="radio" value="0" name="watermark"> Нет </td> </tr> --> </table> <div style="margin-top:20px"><strong><?php echo $_LANG['AD_HOW_MANY_COLUMNS']; ?> </strong></div> <div> <?php if (!isset($mod['maxcols'])) { $mod['maxcols'] = 1; } ?> <input class="uispin" name="maxcols" type="text" id="maxcols" style="width:99%" value="<?php echo @$mod['maxcols']; ?> " /> </div> <div style="margin-top:20px"><strong><?php echo $_LANG['AD_HOW_MANY_PERPAGE']; ?> </strong></div> <div> <input id="perpage_item" class="uispin ui-spinner-input" name="perpage_item" type="text" value="<?php echo $mod['perpage_item']; ?> " size="20" aria-valuenow="12" autocomplete="off" role="spinbutton"> </div> <div style="margin-top:20px"><strong><?php echo $_LANG['AD_HOW_PUBLISH_SET']; ?> </strong></div> <table width="100%" cellpadding="0" cellspacing="0" border="0" class="checklist"> <tr> <td width="20"><input type="checkbox" name="show_in_main" id="show_in_main" value="1" <?php if ($mod['show_in_main'] || $do == 'add') { echo 'checked="checked"'; } ?> /></td> <td><label for="show_in_main"><?php echo $_LANG['SHOW_IN_MAIN']; ?> </label></td> </tr> <tr> <td width="20"><input type="checkbox" name="showdesc" id="showdesc" value="1" <?php if ($mod['showdesc'] || $do == 'add') { echo 'checked="checked"'; } ?> /></td> <td><label for="showdesc"><?php echo $_LANG['AD_PREVIEW']; ?> </label></td> </tr> <tr> <td width="20"><input type="checkbox" name="showdate" id="showdate" value="1" <?php if ($mod['showdate'] || $do == 'add') { echo 'checked="checked"'; } ?> /></td> <td><label for="showdate"><?php echo $_LANG['AD_CALENDAR_VIEW']; ?> </label></td> </tr> <tr> <td width="20"><input type="checkbox" name="showcomm" id="showcomm" value="1" <?php if ($mod['showcomm'] || $do == 'add') { echo 'checked="checked"'; } ?> /></td> <td><label for="showcomm"><?php echo $_LANG['AD_HOW_MANY_COMENTS']; ?> </label></td> </tr> <tr> <td width="20"><input type="checkbox" name="showtags" id="showtags" value="1" <?php if ($mod['showtags'] || $do == 'add') { echo 'checked="checked"'; } ?> /></td> <td><label for="showtags"><?php echo $_LANG['AD_HOW_MANY_TAGS']; ?> </label></td> </tr> <tr> <td width="20"><input type="checkbox" name="showrss" id="showrss" value="1" <?php if ($mod['showrss'] || $do == 'add') { echo 'checked="checked"'; } ?> /></td> <td><label for="showrss"><?php echo $_LANG['AD_RSS_VIEW']; ?> </label></td> </tr> </table> <?php if ($do == 'add') { ?> <div style="margin-top:25px"> <strong><?php echo $_LANG['AD_CREATE_LINK']; ?> </strong> </div> <div> <select name="createmenu" id="createmenu" style="width:99%"> <option value="0" selected="selected"><?php echo $_LANG['AD_DONT_CREATE']; ?> </option> <?php foreach ($menu_list as $menu) { ?> <option value="<?php echo $menu['id']; ?> "> <?php echo $menu['title']; ?> </option> <?php } ?> </select> </div> <?php } ?> {tab=<?php echo $_LANG['AD_EDITORS']; ?> } <div style="margin-top:10px"> <strong><?php echo $_LANG['AD_USERS_ARTICLES']; ?> </strong><br/> <span class="hinttext"><?php echo $_LANG['AD_IF_SWITCH']; ?> </span> </div> <div> <select name="is_public" style="width:100%"> <option value="0" <?php if (!$mod['is_public']) { echo 'selected="selected"'; } ?> ><?php echo $_LANG['NO']; ?> </option> <option value="1" <?php if ($mod['is_public']) { echo 'selected="selected"'; } ?> ><?php echo $_LANG['YES']; ?> </option> </select> </div> <?php if (IS_BILLING) { ?> <div style="margin-top:15px"> <strong><?php echo $_LANG['AD_COST_ARTICLES_ADD']; ?> </strong><br/> <div style="color:gray"><?php echo $_LANG['AD_COST_ARTICLES_BY_DEFAULT']; ?> </div> </div> <div> <input type="text" name="cost" value="<?php echo $mod['cost']; ?> " style="width:50px"/><?php echo $_LANG['BILLING_POINT10']; ?> </div> <?php } ?> <div style="margin-top:20px"> <strong><?php echo $_LANG['AD_EDITORS_SECTION']; ?> </strong><br/> <span class="hinttext"><?php echo $_LANG['AD_USERS_CAN_ADMIN']; ?> </span> </div> <div> <select name="modgrp_id" id="modgrp_id" style="width:100%"> <option value="0" <?php if (!isset($mod['modgrp_id']) || @$mod['modgrp_id'] == 0) { echo 'selected'; } ?> ><?php echo $_LANG['AD_ONLY_ADMINS']; ?> </option> <?php if (@$mod['modgrp_id']) { echo $inCore->getListItems('cms_user_groups', $mod['modgrp_id'], 'id', 'ASC', 'is_admin = 0'); } else { echo $inCore->getListItems('cms_user_groups', 0, 'id', 'ASC', 'is_admin = 0'); } ?> </select> </div> {tab=<?php echo $_LANG['AD_FOTO']; ?> } <div style="margin-top:10px"> <strong><?php echo $_LANG['AD_PHOTOALBUM_CONNECT']; ?> </strong><br/> <span class="hinttext"><?php echo $_LANG['AD_PHOTO_BY_ARTICLES']; ?> </span> </div> <div> <select name="album_id" id="album_id" style="width:100%" onchange="choosePhotoAlbum()"> <option value="0" <?php if (!isset($mod['photoalbum']['id']) || !@$mod['photoalbum']['id']) { echo 'selected="selected"'; } ?> ><?php echo $_LANG['AD_DONT_CONNECT']; ?> </option> <?php //FIND ROOT if (isset($mod['photoalbum']['id'])) { echo $inCore->getListItemsNS('cms_photo_albums', $mod['photoalbum']['id']); } else { echo $inCore->getListItemsNS('cms_photo_albums'); } ?> </select> </div> <div id="con_photoalbum" <?php if (!isset($mod['photoalbum']['id']) || !$mod['photoalbum']['id']) { echo 'style="display:none;"'; } ?> > <div style="margin-top:20px"> <strong><?php echo $_LANG['AD_TITLE']; ?> </strong><br/> <span class="hinttext"><?php echo $_LANG['AD_OVER_PHOTOS']; ?> </span> </div> <div> <input name="album_header" type="text" id="album_header" style="width:99%" value="<?php echo @$mod['photoalbum']['header']; ?> " /> </div> <div style="margin-top:20px"> <strong><?php echo $_LANG['AD_PHOTOS_SORT']; ?> </strong> </div> <div> <select name="album_orderby" id="album_orderby" style="width:100%"> <option value="title" <?php if (@$mod['photoalbum']['orderby'] == 'title') { echo 'selected="selected"'; } ?> ><?php echo $_LANG['AD_BY_ALPHABET']; ?> </option> <option value="pubdate" <?php if (@$mod['photoalbum']['orderby'] == 'pubdate') { echo 'selected="selected"'; } ?> ><?php echo $_LANG['AD_BY_CALENDAR']; ?> </option> <option value="rating" <?php if (@$mod['photoalbum']['orderby'] == 'rating') { echo 'selected="selected"'; } ?> ><?php echo $_LANG['AD_BY_RATING']; ?> </option> <option value="hits" <?php if (@$mod['photoalbum']['orderby'] == 'hits') { echo 'selected="selected"'; } ?> ><?php echo $_LANG['AD_BY_VIEWS']; ?> </option> </select> <select name="album_orderto" id="album_orderto" style="width:100%"> <option value="desc" <?php if (@$mod['photoalbum']['orderto'] == 'desc') { echo 'selected="selected"'; } ?> ><?php echo $_LANG['AD_BY_DECREMENT']; ?> </option> <option value="asc" <?php if (@$mod['photoalbum']['orderto'] == 'asc') { echo 'selected="selected"'; } ?> ><?php echo $_LANG['AD_BY_INCREMENT']; ?> </option> </select> </div> <div style="margin-top:20px"> <strong><?php echo $_LANG['AD_HOW_MANY_COLUMNS']; ?> </strong> </div> <div> <?php if (!isset($mod['photoalbum']['maxcols'])) { $mod['photoalbum']['maxcols'] = 2; } ?> <input name="album_maxcols" type="text" id="album_maxcols" style="width:99%" value="<?php echo @$mod['photoalbum']['maxcols']; ?> "/> </div> <div style="margin-top:20px"> <strong><?php echo $_LANG['AD_HOW_MANY_PHOTO']; ?> </strong> </div> <div> <?php if (!isset($mod['photoalbum']['max'])) { $mod['photoalbum']['max'] = 8; } ?> <input name="album_max" type="text" id="album_max" style="width:99%" value="<?php echo @$mod['photoalbum']['max']; ?> "/> </div> </div> {tab=SEO} <div style="margin-top:5px"> <strong><?php echo $_LANG['AD_PAGE_TITLE']; ?> </strong><br/> <span class="hinttext"><?php echo $_LANG['AD_IF_UNKNOWN_PAGETITLE']; ?> </span> </div> <div> <input name="pagetitle" type="text" id="pagetitle" style="width:99%" value="<?php if (isset($mod['pagetitle'])) { echo htmlspecialchars($mod['pagetitle']); } ?> " /> </div> <div style="margin-top:20px"> <strong><?php echo $_LANG['KEYWORDS']; ?> </strong><br/> <span class="hinttext"><?php echo $_LANG['AD_FROM_COMMA']; ?> </span> </div> <div> <textarea name="meta_keys" style="width:97%" rows="4" id="meta_keys"><?php echo htmlspecialchars($mod['meta_keys']); ?> </textarea> </div> <div style="margin-top:20px"> <strong><?php echo $_LANG['DESCRIPTION']; ?> </strong><br/> <span class="hinttext"><?php echo $_LANG['AD_LESS_THAN']; ?> </span> </div> <div> <textarea name="meta_desc" style="width:97%" rows="6" id="meta_desc"><?php echo htmlspecialchars($mod['meta_desc']); ?> </textarea> </div> {tab=<?php echo $_LANG['AD_TAB_ACCESS']; ?> } <table width="100%" cellpadding="0" cellspacing="0" border="0" class="checklist" style="margin-top:5px"> <tr> <td width="20"> <?php $sql = "SELECT * FROM cms_user_groups"; $result = $inDB->query($sql); $style = 'disabled="disabled"'; $public = 'checked="checked"'; if ($do == 'edit') { $sql2 = "SELECT * FROM cms_content_access WHERE content_id = " . $mod['id'] . " AND content_type = 'category'"; $result2 = $inDB->query($sql2); $ord = array(); if ($inDB->num_rows($result2)) { $public = ''; $style = ''; while ($r = $inDB->fetch_assoc($result2)) { $ord[] = $r['group_id']; } } } ?> <input name="is_access" type="checkbox" id="is_public" onclick="checkGroupList()" value="1" <?php echo $public; ?> /> </td> <td><label for="is_public"><strong><?php echo $_LANG['AD_SHARE']; ?> </strong></label></td> </tr> </table> <div style="padding:5px"> <span class="hinttext"> <?php echo $_LANG['AD_IF_NOTED']; ?> </span> </div> <div style="margin-top:10px;padding:5px;padding-right:0px;" id="grp"> <div> <strong><?php echo $_LANG['AD_GROUPS_VIEW']; ?> </strong><br /> <span class="hinttext"> <?php echo $_LANG['AD_SELECT_MULTIPLE_CTRL']; ?> </span> </div> <div> <?php echo '<select style="width: 99%" name="showfor[]" id="showin" size="6" multiple="multiple" ' . $style . '>'; if ($inDB->num_rows($result)) { while ($item = $inDB->fetch_assoc($result)) { echo '<option value="' . $item['id'] . '"'; if ($do == 'edit') { if (inArray($ord, $item['id'])) { echo 'selected="selected"'; } } echo '>'; echo $item['title'] . '</option>'; } } echo '</select>'; ?> </div> </div> {/tabs} <?php echo jwTabs(ob_get_clean()); ?> </td> </tr> </table> <p> <input name="add_mod" type="submit" id="add_mod" <?php if ($do == 'add') { echo 'value="' . $_LANG['AD_SAVE_SECTION'] . '"'; } else { echo 'value="' . $_LANG['AD_SAVE_SECTION'] . '"'; } ?> /> <input name="back" type="button" id="back" value="<?php echo $_LANG['CANCEL']; ?> " onclick="window.history.back();"/> <input name="do" type="hidden" id="do" <?php if ($do == 'add') { echo 'value="submit"'; } else { echo 'value="update"'; } ?> /> <?php if ($do == 'edit') { echo '<input name="id" type="hidden" value="' . $mod['id'] . '" />'; } ?> </p> </form> <script type="text/javascript"> function choosePhotoAlbum(){ id = $('select[name=album_id]').val(); if(id != 0){ $('#con_photoalbum').fadeIn(); } else { $('#con_photoalbum').hide(); } } </script> <?php } }
function applet_cats() { $inCore = cmsCore::getInstance(); global $_LANG; cmsCore::c('page')->setTitle($_LANG['AD_ARTICLES']); cpAddPathway($_LANG['AD_ARTICLES'], 'index.php?view=tree'); $do = cmsCore::request('do', 'str', 'add'); $id = cmsCore::request('id', 'int', -1); define('IS_BILLING', $inCore->isComponentInstalled('billing')); if (IS_BILLING) { cmsCore::loadClass('billing'); } if ($do == 'delete') { $is_with_content = cmsCore::inRequest('content'); cmsCore::m('content')->deleteCategory($id, $is_with_content); cmsCore::addSessionMessage($is_with_content ? $_LANG['AD_CATEGORY_REMOVED'] : $_LANG['AD_CATEGORY_REMOVED_NOT_ARTICLE'], 'success'); cmsCore::redirect('?view=tree'); } if ($do == 'update') { if (!cmsUser::checkCsrfToken()) { cmsCore::error404(); } if (cmsCore::inRequest('id')) { $category['id'] = cmsCore::request('id', 'int', 0); $category['title'] = cmsCore::request('title', 'str', $_LANG['AD_SECTION_UNTITLED']); $category['parent_id'] = cmsCore::request('parent_id', 'int'); $category['description'] = cmsCore::request('description', 'html', ''); $category['description'] = cmsCore::c('db')->escape_string($category['description']); $category['published'] = cmsCore::request('published', 'int', 0); $category['showdate'] = cmsCore::request('showdate', 'int', 0); $category['showcomm'] = cmsCore::request('showcomm', 'int', 0); $category['orderby'] = cmsCore::request('orderby', 'str', ''); $category['orderto'] = cmsCore::request('orderto', 'str', ''); $category['modgrp_id'] = cmsCore::request('modgrp_id', 'int', 0); $category['maxcols'] = cmsCore::request('maxcols', 'int', 0); $category['showtags'] = cmsCore::request('showtags', 'int', 0); $category['showrss'] = cmsCore::request('showrss', 'int', 0); $category['showdesc'] = cmsCore::request('showdesc', 'int', 0); $category['is_public'] = cmsCore::request('is_public', 'int', 0); $category['url'] = cmsCore::request('url', 'str', ''); $category['pagetitle'] = cmsCore::request('pagetitle', 'str', ''); $category['meta_desc'] = cmsCore::request('meta_desc', 'str', ''); $category['meta_keys'] = cmsCore::request('meta_keys', 'str', ''); if (!empty($category['url'])) { $category['url'] = cmsCore::strToURL($category['url'], cmsCore::m('content')->config['is_url_cyrillic']); } $category['tpl'] = cmsCore::request('tpl', 'str', 'com_content_view'); $category['cost'] = cmsCore::request('cost', 'str', ''); if (!is_numeric($category['cost'])) { $category['cost'] = ''; } $album = array(); $album['id'] = cmsCore::request('album_id', 'int', 0); $album['header'] = cmsCore::request('album_header', 'str', ''); $album['orderby'] = cmsCore::request('album_orderby', 'str', ''); $album['orderto'] = cmsCore::request('album_orderto', 'str', ''); $album['maxcols'] = cmsCore::request('album_maxcols', 'int', 0); $album['max'] = cmsCore::request('album_max', 'int', 0); if ($album['id']) { $category['photoalbum'] = serialize($album); } else { $category['photoalbum'] = ''; } // получаем старую категорию $old = cmsCore::c('db')->get_fields('cms_category', "id='" . $category['id'] . "'", '*'); if (!$old) { cmsCore::error404(); } // если сменили категорию if ($old['parent_id'] != $category['parent_id']) { // перемещаем ее в дереве $inCore->nestedSetsInit('cms_category')->MoveNode($category['id'], $category['parent_id']); // обновляем сеолинки категорий cmsCore::c('db')->updateNsCategorySeoLink('cms_category', $category['id'], cmsCore::m('content')->config['is_url_cyrillic']); // Обновляем ссылки меню на категории cmsCore::m('content')->updateCatMenu(); // обновляем сеолинки всех вложенных статей cmsCore::m('content')->updateArticlesSeoLink($category['id']); cmsCore::addSessionMessage($_LANG['AD_CATEGORY_NEW_URL'], 'info'); } cmsCore::c('db')->update('cms_category', $category, $category['id']); // если пришел запрос на обновление ссылок // и категория не менялась - если менялась, мы выше все обновили if (cmsCore::inRequest('update_seolink') && $old['parent_id'] == $category['parent_id']) { // обновляем сеолинки категорий cmsCore::c('db')->updateNsCategorySeoLink('cms_category', $category['id'], cmsCore::m('content')->config['is_url_cyrillic']); // Обновляем ссылки меню на категории cmsCore::m('content')->updateCatMenu(); // обновляем сеолинки всех вложенных статей cmsCore::m('content')->updateArticlesSeoLink($category['id']); cmsCore::addSessionMessage($_LANG['AD_SECTION_AND_ARTICLES_NEW_URL'], 'info'); } if (!cmsCore::request('is_access', 'int', 0)) { $showfor = cmsCore::request('showfor', 'array_int'); cmsCore::setAccess($category['id'], $showfor, 'category'); } else { cmsCore::clearAccess($category['id'], 'category'); } cmsCore::addSessionMessage($_LANG['AD_CATEGORY_SAVED'], 'success'); if (!isset($_SESSION['editlist']) || @sizeof($_SESSION['editlist']) == 0) { cmsCore::redirect('?view=tree&cat_id=' . $category['id']); } else { cmsCore::redirect('?view=tree'); } } } if ($do == 'submit') { if (!cmsUser::checkCsrfToken()) { cmsCore::error404(); } $category['title'] = cmsCore::request('title', 'str', $_LANG['AD_CATEGORY_UNTITLED']); $category['url'] = cmsCore::request('url', 'str', ''); if (!empty($category['url'])) { $category['url'] = cmsCore::strToURL($category['url']); } $category['parent_id'] = cmsCore::request('parent_id', 'int'); $category['description'] = cmsCore::request('description', 'html', ''); $category['description'] = cmsCore::c('db')->escape_string($category['description']); $category['published'] = cmsCore::request('published', 'int', 0); $category['showdate'] = cmsCore::request('showdate', 'int', 0); $category['showcomm'] = cmsCore::request('showcomm', 'int', 0); $category['orderby'] = cmsCore::request('orderby', 'str', ''); $category['orderto'] = cmsCore::request('orderto', 'str', ''); $category['modgrp_id'] = cmsCore::request('modgrp_id', 'int', 0); $category['maxcols'] = cmsCore::request('maxcols', 'int', 0); $category['showtags'] = cmsCore::request('showtags', 'int', 0); $category['showrss'] = cmsCore::request('showrss', 'int', 0); $category['showdesc'] = cmsCore::request('showdesc', 'int', 0); $category['is_public'] = cmsCore::request('is_public', 'int', 0); $category['tpl'] = cmsCore::request('tpl', 'str', 'com_content_view'); $category['pagetitle'] = cmsCore::request('pagetitle', 'str', ''); $category['meta_desc'] = cmsCore::request('meta_desc', 'str', ''); $category['meta_keys'] = cmsCore::request('meta_keys', 'str', ''); $category['cost'] = cmsCore::request('cost', 'str', 0); if (!is_numeric($category['cost'])) { $category['cost'] = ''; } $album = array(); $album['id'] = cmsCore::request('album_id', 'int', 0); $album['header'] = cmsCore::request('album_header', 'str', ''); $album['orderby'] = cmsCore::request('album_orderby', 'str', ''); $album['orderto'] = cmsCore::request('album_orderto', 'str', ''); $album['maxcols'] = cmsCore::request('album_maxcols', 'int', 0); $album['max'] = cmsCore::request('album_max', 'int', 0); if ($album['id']) { $category['photoalbum'] = serialize($album); } else { $category['photoalbum'] = ''; } $ns = $inCore->nestedSetsInit('cms_category'); $category['id'] = $ns->AddNode($category['parent_id']); $category['seolink'] = cmsCore::generateCatSeoLink($category, 'cms_category', cmsCore::m('content')->config['is_url_cyrillic']); if ($category['id']) { cmsCore::c('db')->update('cms_category', $category, $category['id']); if (!cmsCore::request('is_access', 'int', 0)) { $showfor = cmsCore::request('showfor', 'array_int'); cmsCore::setAccess($category['id'], $showfor, 'category'); } else { cmsCore::clearAccess($category['id'], 'category'); } } $inmenu = cmsCore::request('createmenu', 'str', ''); if ($inmenu) { createMenuItem($inmenu, $category['id'], $category['title']); } cmsCore::addSessionMessage($_LANG['AD_CATEGORY_ADD'], 'success'); cmsCore::redirect('?view=tree'); } if ($do == 'add' || $do == 'edit') { $toolmenu = array(array('icon' => 'save.gif', 'title' => $_LANG['SAVE'], 'link' => 'javascript:document.addform.submit();'), array('icon' => 'cancel.gif', 'title' => $_LANG['CANCEL'], 'link' => 'javascript:history.go(-1);')); cpToolMenu($toolmenu); $menu_list = cpGetList('menu'); if ($do == 'add') { echo '<h3>' . $_LANG['AD_CREATE_SECTION'] . '</h3>'; cpAddPathway($_LANG['AD_CREATE_SECTION'], 'index.php?view=cats&do=add'); $mod = array(); $mod['tpl'] = 'com_content_view'; } else { if (cmsCore::inRequest('multiple')) { if (cmsCore::inRequest('item')) { $_SESSION['editlist'] = cmsCore::request('item', 'array_int'); } else { echo '<p class="error">' . $_LANG['AD_NO_SELECT_OBJECTS'] . '</p>'; return; } } $ostatok = ''; if (isset($_SESSION['editlist'])) { $id = array_shift($_SESSION['editlist']); if (sizeof($_SESSION['editlist']) == 0) { unset($_SESSION['editlist']); } else { $ostatok = '(' . $_LANG['AD_NEXT_IN'] . sizeof($_SESSION['editlist']) . ')'; } } else { $id = cmsCore::request('id', 'int', 0); } $mod = cmsCore::c('db')->get_fields('cms_category', 'id=' . $id, '*'); if (!empty($mod['photoalbum'])) { $mod['photoalbum'] = unserialize($mod['photoalbum']); } echo '<h3>' . $_LANG['AD_EDIT_SECTION'] . $ostatok . '</h3>'; cpAddPathway($mod['title'], 'index.php?view=cats&do=edit&id=' . $mod['id']); } $sql = "SELECT * FROM cms_user_groups"; $result = cmsCore::c('db')->query($sql); $group_style = 'disabled="disabled"'; $group_public = 'checked="checked"'; if ($do == 'edit') { $sql2 = "SELECT * FROM cms_content_access WHERE content_id = " . $mod['id'] . " AND content_type = 'category'"; $result2 = cmsCore::c('db')->query($sql2); $ord = array(); if (cmsCore::c('db')->num_rows($result2)) { $group_public = ''; $group_style = ''; while ($r = cmsCore::c('db')->fetch_assoc($result2)) { $ord[] = $r['group_id']; } } } $user_groups = array(); if (cmsCore::c('db')->num_rows($result)) { while ($item = cmsCore::c('db')->fetch_assoc($result)) { $group = array('title' => $item['title'], 'value' => $item['id']); if ($do == 'edit' && in_array($item['id'], $ord)) { $group['selected'] = 'selected'; } $user_groups[] = $group; } } $rootid = cmsCore::c('db')->getNsRootCatId('cms_category'); cmsCore::c('page')->initTemplate('applets', 'cats_edit')->assign('is_billing', IS_BILLING)->assign('rootid', $rootid)->assign('category_opt', $inCore->getListItemsNS('cms_category', cmsCore::getArrVal($mod, 'parent_id', $rootid)))->assign('menu_list', $menu_list)->assign('user_group_opt', $inCore->getListItems('cms_user_groups', cmsCore::getArrVal($mod, 'modgrp_id', 0), 'id', 'ASC', 'is_admin = 0'))->assign('photo_albums_opt', $inCore->getListItemsNS('cms_photo_albums', cmsCore::getArrVal(cmsCore::getArrVal($mod, 'photoalbum'), 'id', 0)))->assign('user_groups', $user_groups)->assign('group_public', $group_public)->assign('group_style', $group_style)->assign('do', $do)->assign('mod', $mod)->display(); } }