Esempio n. 1
0
 /**
  * Генерирует ссылку на блог
  * @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;
 }
Esempio n. 2
0
 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) {
Esempio n. 3
0
 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;
 }
Esempio n. 4
0
 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;
 }
Esempio n. 5
0
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;
}
Esempio n. 6
0
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
    }
}
Esempio n. 7
0
 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;
 }
Esempio n. 8
0
 /**
  * Обновляет статью
  * @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;
 }
Esempio n. 9
0
File: cats.php Progetto: r2git/icms1
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 
    }
}
Esempio n. 10
0
                $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') {
Esempio n. 11
0
 /**
  * Проверяет значения формы
  * @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;
 }
Esempio n. 12
0
    /**
     * Обновляет статью
     * @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;
    }
Esempio n. 13
0
    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;
    }
Esempio n. 14
0
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 
    }
}
Esempio n. 15
0
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();
    }
}