/** * Обновляет ссылку на категорию и вложенные в нее * Подразумевается, что заголовок категории или поле url изменен заранее * @return bool */ public function updateNsCategorySeoLink($table, $cat_id, $is_url_cyrillic = false) { // получаем изменяемую категорию $cat = $this->getNsCategory($table, $cat_id); if (!$cat) { return false; } // обновляем для нее сеолинк $cat_seolink = cmsCore::generateCatSeoLink($cat, $table, $is_url_cyrillic); $this->query("UPDATE {$table} SET seolink='{$cat_seolink}' WHERE id = '{$cat['id']}'"); // Получаем вложенные категории для нее $path_list = $this->get_table($table, "NSLeft > {$cat['NSLeft']} AND NSRight < {$cat['NSRight']} AND parent_id > 0 ORDER BY NSLeft"); if ($path_list) { foreach ($path_list as $pcat) { $subcat_seolink = cmsCore::generateCatSeoLink($pcat, $table, $is_url_cyrillic); $this->query("UPDATE {$table} SET seolink='{$subcat_seolink}' WHERE id = '{$pcat['id']}'"); } } return true; }
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 } }
function applet_cats() { $inCore = cmsCore::getInstance(); $inDB = cmsDatabase::getInstance(); global $_LANG; $GLOBALS['cp_page_title'] = $_LANG['AD_ARTICLES']; cpAddPathway($_LANG['AD_ARTICLES'], 'index.php?view=tree'); cmsCore::loadModel('content'); $model = new cms_model_content(); $small = $model->config['img_small_w']; $big = $model->config['img_big_w']; $do = cmsCore::request('do', 'str', 'add'); $id = cmsCore::request('id', 'int', -1); define('IS_BILLING', $inCore->isComponentInstalled('billing')); if (IS_BILLING) { cmsCore::loadClass('billing'); } if ($do == 'delete') { $is_with_content = cmsCore::inRequest('content'); $model->deleteCategory($id, $is_with_content); cmsCore::addSessionMessage($is_with_content ? $_LANG['AD_CATEGORY_REMOVED'] : $_LANG['AD_CATEGORY_REMOVED_NOT_ARTICLE'], 'success'); cmsCore::redirect('?view=tree'); } //update from categories table if ($do == 'update') { if (!cmsUser::checkCsrfToken()) { cmsCore::error404(); } $category['id'] = cmsCore::request('id', 'int', 0); $category['title'] = cmsCore::request('title', 'str', $_LANG['AD_SECTION_UNTITLED']); $category['parent_id'] = cmsCore::request('parent_id', 'int'); $category['description'] = cmsCore::request('description', 'html'); $category['description'] = $inDB->escape_string($category['description']); $category['published'] = cmsCore::request('published', 'int', 0); $category['showdate'] = cmsCore::request('showdate', 'int', 0); $category['showcomm'] = cmsCore::request('showcomm', 'int', 0); $category['orderby'] = cmsCore::request('orderby', 'str'); $category['orderto'] = cmsCore::request('orderto', 'str'); $category['modgrp_id'] = cmsCore::request('modgrp_id', 'int', 0); $category['maxcols'] = cmsCore::request('maxcols', 'int', 0); $category['showtags'] = cmsCore::request('showtags', 'int', 0); $category['showrss'] = cmsCore::request('showrss', 'int', 0); $category['showdesc'] = cmsCore::request('showdesc', 'int', 0); $category['is_public'] = cmsCore::request('is_public', 'int', 0); $category['url'] = cmsCore::request('url', 'str'); $category['pagetitle'] = cmsCore::request('pagetitle', 'str', ''); $category['meta_desc'] = cmsCore::request('meta_desc', 'str'); $category['meta_keys'] = cmsCore::request('meta_keys', 'str'); $category['redirect_url'] = cmsCore::request('redirect_url', 'str'); //new $category['show_in_main'] = cmsCore::request('show_in_main', 'int', 0); //new $category['perpage_item'] = cmsCore::request('perpage_item', 'str'); //new if ($category['url']) { $category['url'] = cmsCore::strToURL($category['url'], $model->config['is_url_cyrillic']); } $category['tpl'] = cmsCore::request('tpl', 'str', 'com_content_view.tpl'); $category['cost'] = cmsCore::request('cost', 'str', ''); if (!is_numeric($category['cost'])) { $category['cost'] = ''; } $album = array(); $album['id'] = cmsCore::request('album_id', 'int', 0); $album['header'] = cmsCore::request('album_header', 'str', ''); $album['orderby'] = cmsCore::request('album_orderby', 'str', ''); $album['orderto'] = cmsCore::request('album_orderto', 'str', ''); $album['maxcols'] = cmsCore::request('album_maxcols', 'int', 0); $album['max'] = cmsCore::request('album_max', 'int', 0); if ($album['id']) { $category['photoalbum'] = serialize($album); } else { $category['photoalbum'] = ''; } // получаем старую категорию $old = $inDB->get_fields('cms_category', "id='{$category['id']}'", '*'); if (!$old) { cmsCore::error404(); } // если сменили категорию if ($old['parent_id'] != $category['parent_id']) { // перемещаем ее в дереве $inCore->nestedSetsInit('cms_category')->MoveNode($category['id'], $category['parent_id']); // обновляем сеолинки категорий $inDB->updateNsCategorySeoLink('cms_category', $category['id'], $model->config['is_url_cyrillic']); // Обновляем ссылки меню на категории $model->updateCatMenu(); // обновляем сеолинки всех вложенных статей $model->updateArticlesSeoLink($category['id']); cmsCore::addSessionMessage($_LANG['AD_CATEGORY_NEW_URL'], 'info'); } $inDB->update('cms_category', $category, $category['id']); // если пришел запрос на обновление ссылок // и категория не менялась - если менялась, мы выше все обновили if (cmsCore::inRequest('update_seolink') && $old['parent_id'] == $category['parent_id']) { // обновляем сеолинки категорий $inDB->updateNsCategorySeoLink('cms_category', $category['id'], $model->config['is_url_cyrillic']); // Обновляем ссылки меню на категории $model->updateCatMenu(); // обновляем сеолинки всех вложенных статей $model->updateArticlesSeoLink($category['id']); cmsCore::addSessionMessage($_LANG['AD_SECTION_AND_ARTICLES_NEW_URL'], 'info'); } if (!cmsCore::request('is_access', 'int', 0)) { $showfor = $_REQUEST['showfor']; cmsCore::setAccess($category['id'], $showfor, 'category'); } else { cmsCore::clearAccess($category['id'], 'category'); } if (isset($_SESSION['lang']) && $_SESSION['lang'] != 'ru') { $file = 'cat_article' . $category['id'] . '_' . $_SESSION['lang'] . '.jpg'; } else { $file = 'cat_article' . $category['id'] . '.jpg'; } // работа с файлами! //$file = 'cat_article'.$category['id'].'.jpg'; if (cmsCore::request('delete_image', 'int', 0)) { @unlink(PATH . "/images/photos/small/{$file}"); @unlink(PATH . "/images/photos/medium/{$file}"); } else { //подгружаем параметры фото $small_size_w = cmsCore::request('img_small_w', 'str', ''); $medium_size_w = cmsCore::request('img_big_w', 'str', ''); $thumbsqr = cmsCore::request('img_sqr', 'str', ''); // Загружаем класс загрузки фото cmsCore::loadClass('upload_photo'); $inUploadPhoto = cmsUploadPhoto::getInstance(); // Выставляем конфигурационные параметры $inUploadPhoto->upload_dir = PATH . '/images/photos/'; $inUploadPhoto->small_size_w = $small_size_w; $inUploadPhoto->medium_size_w = $medium_size_w; $inUploadPhoto->thumbsqr = $thumbsqr; $inUploadPhoto->is_watermark = $model->config['watermark']; $inUploadPhoto->input_name = 'picture'; $inUploadPhoto->filename = $file; // Процесс загрузки фото $inUploadPhoto->uploadPhoto(); //var_dump($inUploadPhoto); } cmsCore::addSessionMessage($_LANG['AD_CATEGORY_SAVED'], 'success'); if (!isset($_SESSION['editlist']) || @sizeof($_SESSION['editlist']) == 0) { cmsCore::redirect('?view=tree&cat_id=' . $category['id']); } else { cmsCore::redirect('?view=tree'); } } // submit in to DB if ($do == 'submit') { if (!cmsUser::checkCsrfToken()) { cmsCore::error404(); } $category['title'] = cmsCore::request('title', 'str', $_LANG['AD_CATEGORY_UNTITLED']); $category['url'] = cmsCore::request('url', 'str'); if ($category['url']) { $category['url'] = cmsCore::strToURL($category['url']); } $category['parent_id'] = cmsCore::request('parent_id', 'int'); $category['description'] = cmsCore::request('description', 'html'); $category['description'] = $inDB->escape_string($category['description']); $category['published'] = cmsCore::request('published', 'int', 0); $category['showdate'] = cmsCore::request('showdate', 'int', 0); $category['showcomm'] = cmsCore::request('showcomm', 'int', 0); $category['orderby'] = cmsCore::request('orderby', 'str'); $category['orderto'] = cmsCore::request('orderto', 'str'); $category['modgrp_id'] = cmsCore::request('modgrp_id', 'int', 0); $category['maxcols'] = cmsCore::request('maxcols', 'int', 0); $category['showtags'] = cmsCore::request('showtags', 'int', 0); $category['showrss'] = cmsCore::request('showrss', 'int', 0); $category['showdesc'] = cmsCore::request('showdesc', 'int', 0); $category['is_public'] = cmsCore::request('is_public', 'int', 0); $category['tpl'] = cmsCore::request('tpl', 'str', 'com_content_view.tpl'); $category['pagetitle'] = cmsCore::request('pagetitle', 'str', ''); $category['meta_desc'] = cmsCore::request('meta_desc', 'str'); $category['meta_keys'] = cmsCore::request('meta_keys', 'str'); $category['redirect_url'] = cmsCore::request('redirect_url', 'str'); //new $category['show_in_main'] = cmsCore::request('show_in_main', 'int', 0); //new $category['perpage_item'] = cmsCore::request('perpage_item', 'str'); //new $category['cost'] = cmsCore::request('cost', 'str', 0); if (!is_numeric($category['cost'])) { $category['cost'] = ''; } $album = array(); $album['id'] = cmsCore::request('album_id', 'int', 0); $album['header'] = cmsCore::request('album_header', 'str', ''); $album['orderby'] = cmsCore::request('album_orderby', 'str', ''); $album['orderto'] = cmsCore::request('album_orderto', 'str', ''); $album['maxcols'] = cmsCore::request('album_maxcols', 'int', 0); $album['max'] = cmsCore::request('album_max', 'int', 0); if ($album['id']) { $category['photoalbum'] = serialize($album); } else { $category['photoalbum'] = ''; } $ns = $inCore->nestedSetsInit('cms_category'); $category['id'] = $ns->AddNode($category['parent_id']); $category['seolink'] = cmsCore::generateCatSeoLink($category, 'cms_category', $model->config['is_url_cyrillic']); if ($category['id']) { $inDB->update('cms_category', $category, $category['id']); if (!cmsCore::request('is_access', 'int', 0)) { $showfor = $_REQUEST['showfor']; cmsCore::setAccess($category['id'], $showfor, 'category'); } else { cmsCore::clearAccess($category['id'], 'category'); } } $inmenu = cmsCore::request('createmenu', 'str', ''); if ($inmenu) { createMenuItem($inmenu, $category['id'], $category['title']); } //подгружаем параметры фото $small_size_w = cmsCore::request('img_small_w', 'str', ''); $medium_size_w = cmsCore::request('img_big_w', 'str', ''); $thumbsqr = cmsCore::request('img_sqr', 'str', ''); // Загружаем класс загрузки фото cmsCore::loadClass('upload_photo'); $inUploadPhoto = cmsUploadPhoto::getInstance(); // Выставляем конфигурационные параметры $inUploadPhoto->upload_dir = PATH . '/images/photos/'; $inUploadPhoto->small_size_w = $small_size_w; $inUploadPhoto->medium_size_w = $medium_size_w; $inUploadPhoto->thumbsqr = $thumbsqr; $inUploadPhoto->is_watermark = $model->config['watermark']; $inUploadPhoto->input_name = 'picture'; $inUploadPhoto->filename = $file; // Процесс загрузки фото $inUploadPhoto->uploadPhoto(); //var_dump($inUploadPhoto); cmsCore::addSessionMessage($_LANG['AD_CATEGORY_ADD'], 'success'); cmsCore::redirect('?view=tree'); } if ($do == 'add' || $do == 'edit') { require '../includes/jwtabs.php'; $GLOBALS['cp_page_head'][] = jwHeader(); $toolmenu = array(); $toolmenu[0]['icon'] = 'save.gif'; $toolmenu[0]['title'] = $_LANG['SAVE']; $toolmenu[0]['link'] = 'javascript:document.addform.submit();'; $toolmenu[1]['icon'] = 'cancel.gif'; $toolmenu[1]['title'] = $_LANG['CANCEL']; $toolmenu[1]['link'] = 'javascript:history.go(-1);'; cpToolMenu($toolmenu); $menu_list = cpGetList('menu'); if ($do == 'add') { echo '<h3>' . $_LANG['AD_CREATE_SECTION'] . '</h3>'; cpAddPathway($_LANG['AD_CREATE_SECTION'], 'index.php?view=cats&do=add'); $mod['tpl'] = 'com_content_view.tpl'; } else { if (isset($_REQUEST['multiple'])) { if (isset($_REQUEST['item'])) { $_SESSION['editlist'] = $_REQUEST['item']; } else { echo '<p class="error">' . $_LANG['AD_NO_SELECT_OBJECTS'] . '</p>'; return; } } $ostatok = ''; if (isset($_SESSION['editlist'])) { $id = array_shift($_SESSION['editlist']); if (sizeof($_SESSION['editlist']) == 0) { unset($_SESSION['editlist']); } else { $ostatok = '(' . $_LANG['AD_NEXT_IN'] . sizeof($_SESSION['editlist']) . ')'; } } else { $id = (int) $_REQUEST['id']; } $sql = "SELECT * FROM cms_category WHERE id = {$id} LIMIT 1"; $result = $inDB->query($sql); if ($inDB->num_rows($result)) { $mod = $inDB->fetch_assoc($result); if (@$mod['photoalbum']) { $mod['photoalbum'] = unserialize($mod['photoalbum']); } } echo '<h3>' . $_LANG['AD_EDIT_SECTION'] . $ostatok . '</h3>'; cpAddPathway($mod['title'], 'index.php?view=cats&do=edit&id=' . $mod['id']); } ?> <form id="addform" name="addform" method="post" action="index.php" enctype="multipart/form-data"> <input type="hidden" name="csrf_token" value="<?php echo cmsUser::getCsrfToken(); ?> " /> <input type="hidden" name="view" value="cats" /> <table class="proptable" width="100%" cellpadding="5" cellspacing="2"> <tr> <!-- главная ячейка --> <td valign="top"> <table border="0" cellpadding="0" cellspacing="5" width="100%"> <tbody> <tr> <td> <strong><?php echo $_LANG['AD_TITLE_PARTITION']; ?> </strong> </td> <td width="190" style="padding-left:6px"> <strong><?php echo $_LANG['AD_TEMPLATE_PARTITION']; ?> </strong> </td> </tr> <tr> <td> <input name="title" type="text" id="title" style="width:100%" value="<?php echo htmlspecialchars($mod['title']); ?> " /> </td> <!-- <td style="padding-left:6px"> <input name="tpl" type="text" style="width:98%" value="<?php echo @$mod['tpl']; ?> " /> </td>--> <td style="padding-left:6px"> <?php $inConf = cmsConfig::getInstance(); //задаём имя директории $directory = PATH . "/templates/" . $inConf->template . "/components"; $scan_dir = scandir($directory); if (is_dir($directory)) { //проверяем наличие директории //директория существует echo '<select name="tpl">'; $scan_dir = scandir($directory); //сканируем (получаем массив файлов) array_shift($scan_dir); // удаляем из массива '.' array_shift($scan_dir); // удаляем из массива '..' for ($i = 0; $i < sizeof($scan_dir); $i++) { $tpl = explode("_", $scan_dir[$i]); if ($_GET['view'] == $tpl['1'] || $tpl['1'] == 'content') { if ($_GET['view']) { //выводим все файлы if (@$mod["tpl"] == $scan_dir[$i]) { echo '<option selected>' . $scan_dir[$i] . '</option>'; } else { echo '<option>' . $scan_dir[$i] . '</option>'; } } } } echo '</select>'; } else { echo '<input name="tpl" type="text" style="width:160px" value="' . @$mod["tpl"] . '">'; } ?> </td> </tr> </tbody> </table> <div><strong><?php echo $_LANG['AD_PARENT_PARTITION']; ?> </strong></div> <div> <div class="parent_notice" style="color:red;margin:4px 0px;display:none"><?php echo $_LANG['AD_ANOTHER_PARENT']; ?> </div> <select name="parent_id" size="12" id="parent_id" style="width:100%" onchange="if($('option:selected',this).data('nsleft')>='<?php echo $mod['NSLeft']; ?> ' && $('option:selected',this).data('nsright')<='<?php echo $mod['NSRight']; ?> '){ $('.parent_notice').show();$('#add_mod').prop('disabled', true); } else { $('.parent_notice').hide();$('#add_mod').prop('disabled', false); }"> <?php $rootid = $inDB->getNsRootCatId('cms_category'); ?> <option value="<?php echo $rootid; ?> " <?php if (@$mod['parent_id'] == $rootid || !isset($mod['parent_id'])) { echo 'selected="selected"'; } ?> ><?php echo $_LANG['AD_SECTION']; ?> </option> <?php if (isset($mod['parent_id'])) { echo $inCore->getListItemsNS('cms_category', $mod['parent_id']); } else { echo $inCore->getListItemsNS('cms_category'); } ?> </select> </div> <div><strong><?php echo $_LANG['AD_SECTION_DESCRIPT']; ?> </strong></div> <div> <?php $inCore->insertEditor('description', $mod['description'], '250', '100%'); ?> </div> </td> <!-- боковая --> <td valign="top" width="350" style="background:#ECECEC;"> <?php ob_start(); ?> {tab=<?php echo $_LANG['AD_TAB_PUBLISH']; ?> } <table width="100%" cellpadding="0" cellspacing="0" border="0" class="checklist"> <tr> <td width="20"><input type="checkbox" name="published" id="published" value="1" <?php if ($mod['published'] || $do == 'add') { echo 'checked="checked"'; } ?> /></td> <td><label for="published"><strong><?php echo $_LANG['AD_PUBLIC_SECTION']; ?> </strong></label></td> </tr> </table> <div style=" <?php if ($do == 'edit') { ?> display:none;<?php } ?> " class="url_cat"> <div style="margin-top:15px"> <strong><?php echo $_LANG['AD_SECTION_URL']; ?> </strong><br/> <div style="color:gray"><?php echo $_LANG['AD_FROM_TITLE']; ?> </div> </div> <div> <input type="text" name="url" value="<?php echo $mod['url']; ?> " style="width:99%"/> </div> </div> <div class="url_cat"><!--//my cod--> <div style="margin-top:15px"> <strong><?php echo $_LANG['AD_SECTION_REDIRECT_URL']; ?> </strong><br/> <div style="color:gray"><?php echo $_LANG['AD_FROM_URL']; ?> </div> </div> <input type="text" name="redirect_url" value="<?php echo $mod['redirect_url']; ?> " style="width:99%"/> </div> <?php if ($do == 'edit') { ?> <table width="100%" cellpadding="0" cellspacing="0" border="0" style="margin-top:15px"> <tr> <td width="20"><input type="checkbox" name="update_seolink" id="update_seolink" value="1" onclick="$('.url_cat').slideToggle('fast');" /></td> <td><label for="update_seolink"><strong><?php echo $_LANG['AD_NEW_LINK']; ?> </strong></label></td> </tr> </table> <div class="url_cat" style="display:none;"><strong style="color:#F00;"><?php echo $_LANG['ATTENTION']; ?> :</strong> <?php echo $_LANG['AD_NO_LINKS']; ?> </div> <?php } ?> <div style="margin-top:20px"><strong><?php echo $_LANG['AD_SORT_ARTICLES']; ?> </strong></div> <div> <select name="orderby" id="orderby" style="width:100%"> <option value="pubdate" <?php if (@$mod['orderby'] == 'pubdate') { echo 'selected="selected"'; } ?> ><?php echo $_LANG['AD_BY_CALENDAR']; ?> </option> <option value="title" <?php if (@$mod['orderby'] == 'title') { echo 'selected="selected"'; } ?> ><?php echo $_LANG['AD_BY_TITLE']; ?> </option> <option value="ordering" <?php if (@$mod['orderby'] == 'ordering') { echo 'selected="selected"'; } ?> ><?php echo $_LANG['AD_BY_ORDER']; ?> </option> <option value="hits" <?php if (@$mod['orderby'] == 'hits') { echo 'selected="selected"'; } ?> ><?php echo $_LANG['AD_BY_VIEWS']; ?> </option> </select> <select name="orderto" id="orderto" style="width:100%"> <option value="ASC" <?php if (@$mod['orderto'] == 'ASC') { echo 'selected="selected"'; } ?> ><?php echo $_LANG['AD_BY_INCREMENT']; ?> </option> <option value="DESC" <?php if (@$mod['orderto'] == 'DESC') { echo 'selected="selected"'; } ?> ><?php echo $_LANG['AD_BY_DECREMENT']; ?> </option> </select> </div> <div style="margin-top:12px"><strong>Фотография</strong></div> <div style="margin-bottom:10px"> <?php if ($do == 'edit') { if (isset($_SESSION['lang']) && $_SESSION['lang'] != 'ru') { $mod_id = $mod['id'] . '_' . $_SESSION['lang']; $id_art = $mod['id'] . '_' . $_SESSION['lang']; } else { $mod_id = $mod['id']; $id_art = $id; } //if (file_exists(PATH.'/images/photos/small/cat_article'.$mod['id'].'.jpg')){ if (file_exists(PATH . '/images/photos/small/cat_article' . $mod_id . '.jpg')) { ?> <div style="margin-top:3px;margin-bottom:3px;padding:10px;border:solid 1px gray;text-align:center"> <?/*php<img src="/images/photos/small/cat_article<?php echo $id; ?> .jpg" border="0" />*/?> <img src="/images/photos/small/cat_article<?php echo $id_art; ?> .jpg" border="0" /> </div> <table cellpadding="0" cellspacing="0" border="0"> <tr> <td width="16"><input type="checkbox" id="delete_image" name="delete_image" value="1" /></td> <td><label for="delete_image">Удалить фотографию</label></td> </tr> </table> <?php } } ?> <input type="file" name="picture" style="width:100%" /> </div> <!---------------------------------------------------------------------------------------------------> <a style="cursor:pointer" onclick='$("#phto_config").slideToggle("");' >Параметры фото</a> <table id="phto_config" style="display:none;"> <tr> <td><strong>Ширина маленькой копии:</strong></td> <td width="120"> <input type="text" size="5" value="<?php echo $small; ?> " id="img_small_w" name="img_small_w"> пикс. </td> </tr> <tr> <td><strong>Ширина большой копии:</strong></td> <td> <input type="text" size="5" value="<?php echo $big; ?> " id="img_big_w" name="img_big_w"> пикс. </td> </tr> <tr> <td><strong>Квадратные:</strong></td> <td> <input type="radio" value="0" name="img_sqr"> Да <input type="radio" checked="checked" value="1" name="img_sqr"> Нет </td> </tr> <!-- <tr> <td> <strong>Разрешить пользователям:</strong><br> <span class="hinttext">Смогут ли пользователи добавлять фотографии к своим статьям</span> </td> <td> <input type="radio" checked="checked" value="1" name="img_users"> Да <input type="radio" value="0" name="img_users"> Нет </td> </tr> <tr> <td><strong>Наносить водяной знак:</strong> <br>Если включено, то на все загружаемые фотографии (на большую миниатюру) к статьям будет наносится изображение из файла "<a target="_blank" href="/images/watermark.png">/images/watermark.png</a>"</td> <td width="260"> <input type="radio" checked="checked" value="1" name="watermark"> Да <input type="radio" value="0" name="watermark"> Нет </td> </tr> --> </table> <div style="margin-top:20px"><strong><?php echo $_LANG['AD_HOW_MANY_COLUMNS']; ?> </strong></div> <div> <?php if (!isset($mod['maxcols'])) { $mod['maxcols'] = 1; } ?> <input class="uispin" name="maxcols" type="text" id="maxcols" style="width:99%" value="<?php echo @$mod['maxcols']; ?> " /> </div> <div style="margin-top:20px"><strong><?php echo $_LANG['AD_HOW_MANY_PERPAGE']; ?> </strong></div> <div> <input id="perpage_item" class="uispin ui-spinner-input" name="perpage_item" type="text" value="<?php echo $mod['perpage_item']; ?> " size="20" aria-valuenow="12" autocomplete="off" role="spinbutton"> </div> <div style="margin-top:20px"><strong><?php echo $_LANG['AD_HOW_PUBLISH_SET']; ?> </strong></div> <table width="100%" cellpadding="0" cellspacing="0" border="0" class="checklist"> <tr> <td width="20"><input type="checkbox" name="show_in_main" id="show_in_main" value="1" <?php if ($mod['show_in_main'] || $do == 'add') { echo 'checked="checked"'; } ?> /></td> <td><label for="show_in_main"><?php echo $_LANG['SHOW_IN_MAIN']; ?> </label></td> </tr> <tr> <td width="20"><input type="checkbox" name="showdesc" id="showdesc" value="1" <?php if ($mod['showdesc'] || $do == 'add') { echo 'checked="checked"'; } ?> /></td> <td><label for="showdesc"><?php echo $_LANG['AD_PREVIEW']; ?> </label></td> </tr> <tr> <td width="20"><input type="checkbox" name="showdate" id="showdate" value="1" <?php if ($mod['showdate'] || $do == 'add') { echo 'checked="checked"'; } ?> /></td> <td><label for="showdate"><?php echo $_LANG['AD_CALENDAR_VIEW']; ?> </label></td> </tr> <tr> <td width="20"><input type="checkbox" name="showcomm" id="showcomm" value="1" <?php if ($mod['showcomm'] || $do == 'add') { echo 'checked="checked"'; } ?> /></td> <td><label for="showcomm"><?php echo $_LANG['AD_HOW_MANY_COMENTS']; ?> </label></td> </tr> <tr> <td width="20"><input type="checkbox" name="showtags" id="showtags" value="1" <?php if ($mod['showtags'] || $do == 'add') { echo 'checked="checked"'; } ?> /></td> <td><label for="showtags"><?php echo $_LANG['AD_HOW_MANY_TAGS']; ?> </label></td> </tr> <tr> <td width="20"><input type="checkbox" name="showrss" id="showrss" value="1" <?php if ($mod['showrss'] || $do == 'add') { echo 'checked="checked"'; } ?> /></td> <td><label for="showrss"><?php echo $_LANG['AD_RSS_VIEW']; ?> </label></td> </tr> </table> <?php if ($do == 'add') { ?> <div style="margin-top:25px"> <strong><?php echo $_LANG['AD_CREATE_LINK']; ?> </strong> </div> <div> <select name="createmenu" id="createmenu" style="width:99%"> <option value="0" selected="selected"><?php echo $_LANG['AD_DONT_CREATE']; ?> </option> <?php foreach ($menu_list as $menu) { ?> <option value="<?php echo $menu['id']; ?> "> <?php echo $menu['title']; ?> </option> <?php } ?> </select> </div> <?php } ?> {tab=<?php echo $_LANG['AD_EDITORS']; ?> } <div style="margin-top:10px"> <strong><?php echo $_LANG['AD_USERS_ARTICLES']; ?> </strong><br/> <span class="hinttext"><?php echo $_LANG['AD_IF_SWITCH']; ?> </span> </div> <div> <select name="is_public" style="width:100%"> <option value="0" <?php if (!$mod['is_public']) { echo 'selected="selected"'; } ?> ><?php echo $_LANG['NO']; ?> </option> <option value="1" <?php if ($mod['is_public']) { echo 'selected="selected"'; } ?> ><?php echo $_LANG['YES']; ?> </option> </select> </div> <?php if (IS_BILLING) { ?> <div style="margin-top:15px"> <strong><?php echo $_LANG['AD_COST_ARTICLES_ADD']; ?> </strong><br/> <div style="color:gray"><?php echo $_LANG['AD_COST_ARTICLES_BY_DEFAULT']; ?> </div> </div> <div> <input type="text" name="cost" value="<?php echo $mod['cost']; ?> " style="width:50px"/><?php echo $_LANG['BILLING_POINT10']; ?> </div> <?php } ?> <div style="margin-top:20px"> <strong><?php echo $_LANG['AD_EDITORS_SECTION']; ?> </strong><br/> <span class="hinttext"><?php echo $_LANG['AD_USERS_CAN_ADMIN']; ?> </span> </div> <div> <select name="modgrp_id" id="modgrp_id" style="width:100%"> <option value="0" <?php if (!isset($mod['modgrp_id']) || @$mod['modgrp_id'] == 0) { echo 'selected'; } ?> ><?php echo $_LANG['AD_ONLY_ADMINS']; ?> </option> <?php if (@$mod['modgrp_id']) { echo $inCore->getListItems('cms_user_groups', $mod['modgrp_id'], 'id', 'ASC', 'is_admin = 0'); } else { echo $inCore->getListItems('cms_user_groups', 0, 'id', 'ASC', 'is_admin = 0'); } ?> </select> </div> {tab=<?php echo $_LANG['AD_FOTO']; ?> } <div style="margin-top:10px"> <strong><?php echo $_LANG['AD_PHOTOALBUM_CONNECT']; ?> </strong><br/> <span class="hinttext"><?php echo $_LANG['AD_PHOTO_BY_ARTICLES']; ?> </span> </div> <div> <select name="album_id" id="album_id" style="width:100%" onchange="choosePhotoAlbum()"> <option value="0" <?php if (!isset($mod['photoalbum']['id']) || !@$mod['photoalbum']['id']) { echo 'selected="selected"'; } ?> ><?php echo $_LANG['AD_DONT_CONNECT']; ?> </option> <?php //FIND ROOT if (isset($mod['photoalbum']['id'])) { echo $inCore->getListItemsNS('cms_photo_albums', $mod['photoalbum']['id']); } else { echo $inCore->getListItemsNS('cms_photo_albums'); } ?> </select> </div> <div id="con_photoalbum" <?php if (!isset($mod['photoalbum']['id']) || !$mod['photoalbum']['id']) { echo 'style="display:none;"'; } ?> > <div style="margin-top:20px"> <strong><?php echo $_LANG['AD_TITLE']; ?> </strong><br/> <span class="hinttext"><?php echo $_LANG['AD_OVER_PHOTOS']; ?> </span> </div> <div> <input name="album_header" type="text" id="album_header" style="width:99%" value="<?php echo @$mod['photoalbum']['header']; ?> " /> </div> <div style="margin-top:20px"> <strong><?php echo $_LANG['AD_PHOTOS_SORT']; ?> </strong> </div> <div> <select name="album_orderby" id="album_orderby" style="width:100%"> <option value="title" <?php if (@$mod['photoalbum']['orderby'] == 'title') { echo 'selected="selected"'; } ?> ><?php echo $_LANG['AD_BY_ALPHABET']; ?> </option> <option value="pubdate" <?php if (@$mod['photoalbum']['orderby'] == 'pubdate') { echo 'selected="selected"'; } ?> ><?php echo $_LANG['AD_BY_CALENDAR']; ?> </option> <option value="rating" <?php if (@$mod['photoalbum']['orderby'] == 'rating') { echo 'selected="selected"'; } ?> ><?php echo $_LANG['AD_BY_RATING']; ?> </option> <option value="hits" <?php if (@$mod['photoalbum']['orderby'] == 'hits') { echo 'selected="selected"'; } ?> ><?php echo $_LANG['AD_BY_VIEWS']; ?> </option> </select> <select name="album_orderto" id="album_orderto" style="width:100%"> <option value="desc" <?php if (@$mod['photoalbum']['orderto'] == 'desc') { echo 'selected="selected"'; } ?> ><?php echo $_LANG['AD_BY_DECREMENT']; ?> </option> <option value="asc" <?php if (@$mod['photoalbum']['orderto'] == 'asc') { echo 'selected="selected"'; } ?> ><?php echo $_LANG['AD_BY_INCREMENT']; ?> </option> </select> </div> <div style="margin-top:20px"> <strong><?php echo $_LANG['AD_HOW_MANY_COLUMNS']; ?> </strong> </div> <div> <?php if (!isset($mod['photoalbum']['maxcols'])) { $mod['photoalbum']['maxcols'] = 2; } ?> <input name="album_maxcols" type="text" id="album_maxcols" style="width:99%" value="<?php echo @$mod['photoalbum']['maxcols']; ?> "/> </div> <div style="margin-top:20px"> <strong><?php echo $_LANG['AD_HOW_MANY_PHOTO']; ?> </strong> </div> <div> <?php if (!isset($mod['photoalbum']['max'])) { $mod['photoalbum']['max'] = 8; } ?> <input name="album_max" type="text" id="album_max" style="width:99%" value="<?php echo @$mod['photoalbum']['max']; ?> "/> </div> </div> {tab=SEO} <div style="margin-top:5px"> <strong><?php echo $_LANG['AD_PAGE_TITLE']; ?> </strong><br/> <span class="hinttext"><?php echo $_LANG['AD_IF_UNKNOWN_PAGETITLE']; ?> </span> </div> <div> <input name="pagetitle" type="text" id="pagetitle" style="width:99%" value="<?php if (isset($mod['pagetitle'])) { echo htmlspecialchars($mod['pagetitle']); } ?> " /> </div> <div style="margin-top:20px"> <strong><?php echo $_LANG['KEYWORDS']; ?> </strong><br/> <span class="hinttext"><?php echo $_LANG['AD_FROM_COMMA']; ?> </span> </div> <div> <textarea name="meta_keys" style="width:97%" rows="4" id="meta_keys"><?php echo htmlspecialchars($mod['meta_keys']); ?> </textarea> </div> <div style="margin-top:20px"> <strong><?php echo $_LANG['DESCRIPTION']; ?> </strong><br/> <span class="hinttext"><?php echo $_LANG['AD_LESS_THAN']; ?> </span> </div> <div> <textarea name="meta_desc" style="width:97%" rows="6" id="meta_desc"><?php echo htmlspecialchars($mod['meta_desc']); ?> </textarea> </div> {tab=<?php echo $_LANG['AD_TAB_ACCESS']; ?> } <table width="100%" cellpadding="0" cellspacing="0" border="0" class="checklist" style="margin-top:5px"> <tr> <td width="20"> <?php $sql = "SELECT * FROM cms_user_groups"; $result = $inDB->query($sql); $style = 'disabled="disabled"'; $public = 'checked="checked"'; if ($do == 'edit') { $sql2 = "SELECT * FROM cms_content_access WHERE content_id = " . $mod['id'] . " AND content_type = 'category'"; $result2 = $inDB->query($sql2); $ord = array(); if ($inDB->num_rows($result2)) { $public = ''; $style = ''; while ($r = $inDB->fetch_assoc($result2)) { $ord[] = $r['group_id']; } } } ?> <input name="is_access" type="checkbox" id="is_public" onclick="checkGroupList()" value="1" <?php echo $public; ?> /> </td> <td><label for="is_public"><strong><?php echo $_LANG['AD_SHARE']; ?> </strong></label></td> </tr> </table> <div style="padding:5px"> <span class="hinttext"> <?php echo $_LANG['AD_IF_NOTED']; ?> </span> </div> <div style="margin-top:10px;padding:5px;padding-right:0px;" id="grp"> <div> <strong><?php echo $_LANG['AD_GROUPS_VIEW']; ?> </strong><br /> <span class="hinttext"> <?php echo $_LANG['AD_SELECT_MULTIPLE_CTRL']; ?> </span> </div> <div> <?php echo '<select style="width: 99%" name="showfor[]" id="showin" size="6" multiple="multiple" ' . $style . '>'; if ($inDB->num_rows($result)) { while ($item = $inDB->fetch_assoc($result)) { echo '<option value="' . $item['id'] . '"'; if ($do == 'edit') { if (inArray($ord, $item['id'])) { echo 'selected="selected"'; } } echo '>'; echo $item['title'] . '</option>'; } } echo '</select>'; ?> </div> </div> {/tabs} <?php echo jwTabs(ob_get_clean()); ?> </td> </tr> </table> <p> <input name="add_mod" type="submit" id="add_mod" <?php if ($do == 'add') { echo 'value="' . $_LANG['AD_SAVE_SECTION'] . '"'; } else { echo 'value="' . $_LANG['AD_SAVE_SECTION'] . '"'; } ?> /> <input name="back" type="button" id="back" value="<?php echo $_LANG['CANCEL']; ?> " onclick="window.history.back();"/> <input name="do" type="hidden" id="do" <?php if ($do == 'add') { echo 'value="submit"'; } else { echo 'value="update"'; } ?> /> <?php if ($do == 'edit') { echo '<input name="id" type="hidden" value="' . $mod['id'] . '" />'; } ?> </p> </form> <script type="text/javascript"> function choosePhotoAlbum(){ id = $('select[name=album_id]').val(); if(id != 0){ $('#con_photoalbum').fadeIn(); } else { $('#con_photoalbum').hide(); } } </script> <?php } }
function applet_cats() { $inCore = cmsCore::getInstance(); $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 } }
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(); } }