Example #1
0
    }
}
if ($opt == 'hide_banner') {
    if (!isset($_REQUEST['item'])) {
        if (isset($_REQUEST['item_id'])) {
            dbHide('cms_banners', $_REQUEST['item_id']);
        }
        echo '1';
        exit;
    } else {
        dbHideList('cms_banners', $_REQUEST['item']);
        cmsCore::redirectBack();
    }
}
if ($opt == 'submit' || $opt == 'update') {
    if (!cmsCore::validateForm()) {
        cmsCore::error404();
    }
    $item_id = cmsCore::request('item_id', 'int', 0);
    $title = cmsCore::request('title', 'str', $_LANG['AD_UNTITLED_BANNER']);
    $link = cmsCore::request('b_link', 'str');
    $typeimg = cmsCore::request('typeimg', 'str');
    $maxhits = cmsCore::request('maxhits', 'int');
    $maxuser = 0;
    $published = cmsCore::request('published', 'int', 0);
    $position = cmsCore::request('position', 'str');
    if (@$_FILES['picture']['size']) {
        $ext = mb_strtolower(pathinfo($_FILES['picture']['name'], PATHINFO_EXTENSION));
        if (!in_array($ext, array('jpg', 'jpeg', 'gif', 'png', 'swf'))) {
            cmsCore::addSessionMessage($_LANG['AD_INCORRECT_FILE_TYPE'], 'error');
            cmsCore::redirectBack();
Example #2
0
function applet_config()
{
    // получаем оригинальный конфиг
    $config = cmsConfig::getDefaultConfig();
    $inPage = cmsPage::getInstance();
    $inDB = cmsDatabase::getInstance();
    global $_LANG;
    global $adminAccess;
    if (!cmsUser::isAdminCan('admin/config', $adminAccess)) {
        cpAccessDenied();
    }
    $GLOBALS['cp_page_title'] = $_LANG['AD_SITE_SETTING'];
    cpAddPathway($_LANG['AD_SITE_SETTING'], 'index.php?view=config');
    $do = cmsCore::request('do', 'str', 'list');
    if ($do == 'save') {
        if (!cmsCore::validateForm()) {
            cmsCore::error404();
        }
        $newCFG = array();
        $newCFG['sitename'] = stripslashes(cmsCore::request('sitename', 'str', ''));
        $newCFG['title_and_sitename'] = cmsCore::request('title_and_sitename', 'int', 0);
        $newCFG['title_and_page'] = cmsCore::request('title_and_page', 'int', 0);
        $newCFG['hometitle'] = stripslashes(cmsCore::request('hometitle', 'str', ''));
        $newCFG['homecom'] = cmsCore::request('homecom', 'str', '');
        $newCFG['siteoff'] = cmsCore::request('siteoff', 'int', 0);
        $newCFG['debug'] = cmsCore::request('debug', 'int', 0);
        $newCFG['offtext'] = htmlspecialchars(cmsCore::request('offtext', 'str', ''), ENT_QUOTES);
        $newCFG['keywords'] = cmsCore::request('keywords', 'str', '');
        $newCFG['metadesc'] = cmsCore::request('metadesc', 'str', '');
        $newCFG['seourl'] = cmsCore::request('seourl', 'int', 0);
        $newCFG['lang'] = cmsCore::request('lang', 'str', 'ru');
        $newCFG['is_change_lang'] = cmsCore::request('is_change_lang', 'int', 0);
        $newCFG['sitemail'] = cmsCore::request('sitemail', 'str', '');
        $newCFG['sitemail_name'] = cmsCore::request('sitemail_name', 'str', '');
        $newCFG['wmark'] = cmsCore::request('wmark', 'str', '');
        $newCFG['template'] = cmsCore::request('template', 'str', '');
        $newCFG['splash'] = cmsCore::request('splash', 'int', 0);
        $newCFG['slight'] = cmsCore::request('slight', 'int', 0);
        $newCFG['db_host'] = $config['db_host'];
        $newCFG['db_base'] = $config['db_base'];
        $newCFG['db_user'] = $config['db_user'];
        $newCFG['db_pass'] = $config['db_pass'];
        $newCFG['db_prefix'] = $config['db_prefix'];
        $newCFG['show_pw'] = cmsCore::request('show_pw', 'int', 0);
        $newCFG['last_item_pw'] = cmsCore::request('last_item_pw', 'int', 0);
        $newCFG['index_pw'] = cmsCore::request('index_pw', 'int', 0);
        $newCFG['fastcfg'] = cmsCore::request('fastcfg', 'int', 0);
        $newCFG['mailer'] = cmsCore::request('mailer', 'str', '');
        $newCFG['smtpsecure'] = cmsCore::request('smtpsecure', 'str', '');
        $newCFG['smtpauth'] = cmsCore::request('smtpauth', 'int', 0);
        $newCFG['smtpuser'] = cmsCore::inRequest('smtpuser') ? cmsCore::request('smtpuser', 'str', '') : $config['smtpuser'];
        $newCFG['smtppass'] = cmsCore::inRequest('smtppass') ? cmsCore::request('smtppass', 'str', '') : $config['smtppass'];
        $newCFG['smtphost'] = cmsCore::request('smtphost', 'str', '');
        $newCFG['smtpport'] = cmsCore::request('smtpport', 'int', '25');
        $newCFG['timezone'] = cmsCore::request('timezone', 'str', '');
        $newCFG['timediff'] = cmsCore::request('timediff', 'str', '');
        $newCFG['user_stats'] = cmsCore::request('user_stats', 'int', 0);
        $newCFG['allow_ip'] = cmsCore::request('allow_ip', 'str', '');
        if (cmsConfig::saveToFile($newCFG)) {
            cmsCore::addSessionMessage($_LANG['AD_CONFIG_SAVE_SUCCESS'], 'success');
        } else {
            cmsCore::addSessionMessage($_LANG['AD_CONFIG_SITE_ERROR'], 'error');
        }
        cmsCore::clearCache();
        cmsCore::redirect('index.php?view=config');
    }
    ?>
<div>

      <?php 
    cpCheckWritable('/includes/config.inc.php');
    ?>

<div id="config_tabs" class="uitabs">

  <ul id="tabs">
	  	<li><a href="#basic"><span><?php 
    echo $_LANG['AD_SITE'];
    ?>
</span></a></li>
	  	<li><a href="#home"><span><?php 
    echo $_LANG['AD_MAIN'];
    ?>
</span></a></li>
		<li><a href="#design"><span><?php 
    echo $_LANG['AD_DESIGN'];
    ?>
</span></a></li>
		<li><a href="#time"><span><?php 
    echo $_LANG['AD_TIME'];
    ?>
</span></a></li>
		<li><a href="#database"><span><?php 
    echo $_LANG['AD_DB'];
    ?>
</span></a></li>
		<li><a href="#mail"><span><?php 
    echo $_LANG['AD_POST'];
    ?>
</span></a></li>
		<li><a href="#other"><span><?php 
    echo $_LANG['AD_PATHWAY'];
    ?>
</span></a></li>
		<li><a href="#seq"><span><?php 
    echo $_LANG['AD_SECURITY'];
    ?>
</span></a></li>
  </ul>

	<form action="/admin/index.php?view=config" method="post" name="CFGform" target="_self" id="CFGform" style="margin-bottom:30px">
    <input type="hidden" name="csrf_token" value="<?php 
    echo cmsUser::getCsrfToken();
    ?>
" />
        <div id="basic">
			<table width="720" border="0" cellpadding="5">
				<tr>
					<td>
                        <strong><?php 
    echo $_LANG['AD_SITENAME'];
    ?>
</strong><br/>
						<span class="hinttext"><?php 
    echo $_LANG['AD_USE_HEADER'];
    ?>
</span>
                    </td>
					<td width="350" valign="top">
                        <input name="sitename" type="text" id="sitename" value="<?php 
    echo htmlspecialchars($config['sitename']);
    ?>
" style="width:358px" />
                    </td>
				</tr>
				<tr>
					<td>
                        <strong><?php 
    echo $_LANG['AD_TAGE_ADD'];
    ?>
</strong>
                    </td>
					<td valign="top">
						<label><input name="title_and_sitename" type="radio" value="1" <?php 
    if ($config['title_and_sitename']) {
        echo 'checked="checked"';
    }
    ?>
/><?php 
    echo $_LANG['YES'];
    ?>
</label>
						<label><input name="title_and_sitename" type="radio" value="0" <?php 
    if (!$config['title_and_sitename']) {
        echo 'checked="checked"';
    }
    ?>
/><?php 
    echo $_LANG['NO'];
    ?>
</label>
                    </td>
				</tr>
				<tr>
					<td>
                        <strong><?php 
    echo $_LANG['AD_TAGE_ADD_PAGINATION'];
    ?>
</strong>
                    </td>
					<td valign="top">
						<label><input name="title_and_page" type="radio" value="1" <?php 
    if ($config['title_and_page']) {
        echo 'checked="checked"';
    }
    ?>
/><?php 
    echo $_LANG['YES'];
    ?>
</label>
						<label><input name="title_and_page" type="radio" value="0" <?php 
    if (!$config['title_and_page']) {
        echo 'checked="checked"';
    }
    ?>
/><?php 
    echo $_LANG['NO'];
    ?>
</label>
                    </td>
				</tr>
				<tr>
					<td>
                        <strong><?php 
    echo $_LANG['TEMPLATE_INTERFACE_LANG'];
    ?>
:</strong>
                    </td>
					<td width="350" valign="top">
                        <select name="lang" id="lang" style="width:364px">
                            <?php 
    $langs = cmsCore::getDirsList('/languages');
    foreach ($langs as $lng) {
        echo '<option value="' . $lng . '" ' . ($config['lang'] == $lng ? 'selected="selected"' : '') . '>' . $lng . '</option>';
    }
    ?>
                        </select>
                    </td>
				</tr>
				<tr>
					<td>
                        <strong><?php 
    echo $_LANG['AD_SITE_LANGUAGE_CHANGE'];
    ?>
</strong><br/>
                        <span class="hinttext"><?php 
    echo $_LANG['AD_VIEW_FORM_LANGUAGE_CHANGE'];
    ?>
</span>
                    </td>
					<td valign="top">
						<label><input name="is_change_lang" type="radio" value="1" <?php 
    if ($config['is_change_lang']) {
        echo 'checked="checked"';
    }
    ?>
/><?php 
    echo $_LANG['YES'];
    ?>
</label>
						<label><input name="is_change_lang" type="radio" value="0" <?php 
    if (!$config['is_change_lang']) {
        echo 'checked="checked"';
    }
    ?>
/><?php 
    echo $_LANG['NO'];
    ?>
</label>
                    </td>
				</tr>
				<tr>
					<td>
                        <strong><?php 
    echo $_LANG['AD_SITE_ON'];
    ?>
</strong><br/>
                        <span class="hinttext"><?php 
    echo $_LANG['AD_ONLY_ADMINS'];
    ?>
</span>
                    </td>
					<td valign="top">
                        <label><input name="siteoff" type="radio" value="0" <?php 
    if (!$config['siteoff']) {
        echo 'checked="checked"';
    }
    ?>
/><?php 
    echo $_LANG['YES'];
    ?>
</label>
                        <label><input name="siteoff" type="radio" value="1" <?php 
    if ($config['siteoff']) {
        echo 'checked="checked"';
    }
    ?>
/><?php 
    echo $_LANG['NO'];
    ?>
</label>
                    </td>
                </tr>
				<tr>
					<td>
                        <strong><?php 
    echo $_LANG['AD_DEBUG_ON'];
    ?>
</strong><br/>
						<span class="hinttext"><?php 
    echo $_LANG['AD_WIEW_DB_ERRORS'];
    ?>
</span>
                    </td>
					<td valign="top">
						<label><input name="debug" type="radio" value="1" <?php 
    if ($config['debug']) {
        echo 'checked="checked"';
    }
    ?>
/><?php 
    echo $_LANG['YES'];
    ?>
</label>
						<label><input name="debug" type="radio" value="0" <?php 
    if (!$config['debug']) {
        echo 'checked="checked"';
    }
    ?>
/><?php 
    echo $_LANG['NO'];
    ?>
</label>
                    </td>
				</tr>
				<tr>
					<td valign="middle">
                        <strong><?php 
    echo $_LANG['AD_WHY_STOP'];
    ?>
</strong><br />
						<span class="hinttext"><?php 
    echo $_LANG['AD_VIEW_WHY_STOP'];
    ?>
</span>

                    </td>
					<td valign="top"><input name="offtext" type="text" id="offtext" value="<?php 
    echo htmlspecialchars($config['offtext']);
    ?>
" style="width:358px" /></td>
				</tr>
				<tr>
					<td>
                        <strong><?php 
    echo $_LANG['AD_WATERMARK'];
    ?>
 </strong><br/>
						<span class="hinttext"><?php 
    echo $_LANG['AD_WATERMARK_NAME'];
    ?>
</span>
                    </td>
					<td>
						<input name="wmark" type="text" id="wmark" value="<?php 
    echo $config['wmark'];
    ?>
" style="width:358px" />
                    </td>
				</tr>
				<tr>
					<td>
						<strong><?php 
    echo $_LANG['AD_QUICK_CONFIG'];
    ?>
</strong> <br />
						<span class="hinttext"><?php 
    echo $_LANG['AD_MODULE_CONFIG'];
    ?>
</span>
                    </td>
                    <td valign="top">
                        <label><input name="fastcfg" type="radio" value="1" <?php 
    if ($config['fastcfg']) {
        echo 'checked="checked"';
    }
    ?>
/><?php 
    echo $_LANG['YES'];
    ?>
</label>
                        <label><input name="fastcfg" type="radio" value="0" <?php 
    if (!$config['fastcfg']) {
        echo 'checked="checked"';
    }
    ?>
/><?php 
    echo $_LANG['NO'];
    ?>
</label>
                    </td>
				</tr>
				<tr>
					<td>
						<strong><?php 
    echo $_LANG['AD_ONLINESTATS'];
    ?>
</strong>
                    </td>
                    <td valign="top">
                        <label><input name="user_stats" type="radio" value="0" <?php 
    if (!$config['user_stats']) {
        echo 'checked="checked"';
    }
    ?>
/><?php 
    echo $_LANG['AD_NO_ONLINESTATS'];
    ?>
</label><br>
                        <label><input name="user_stats" type="radio" value="1" <?php 
    if ($config['user_stats'] == 1) {
        echo 'checked="checked"';
    }
    ?>
/><?php 
    echo $_LANG['AD_YES_ONLINESTATS'];
    ?>
</label><br>
                        <label><input name="user_stats" type="radio" value="2" <?php 
    if ($config['user_stats'] == 2) {
        echo 'checked="checked"';
    }
    ?>
/><?php 
    echo $_LANG['AD_CRON_ONLINESTATS'];
    ?>
</label>
                    </td>
				</tr>
			</table>
        </div>
        <div id="home">
			<table width="720" border="0" cellpadding="5">
                <tr>
    				<td>
                        <strong><?php 
    echo $_LANG['AD_MAIN_PAGE'];
    ?>
</strong><br />
						<span class="hinttext"><?php 
    echo $_LANG['AD_MAIN_SITENAME'];
    ?>
</span><br/>
                        <span class="hinttext"><?php 
    echo $_LANG['AD_BROWSER_TITLE'];
    ?>
</span>
                    </td>
                    <td width="350" valign="top">
                        <input name="hometitle" type="text" id="hometitle" value="<?php 
    echo htmlspecialchars($config['hometitle']);
    ?>
" style="width:358px" />
                    </td>
			    </tr>
				<tr>
					<td valign="top">
						<strong><?php 
    echo $_LANG['AD_KEY_WORDS'];
    ?>
</strong><br />
						<span class="hinttext"><?php 
    echo $_LANG['AD_FROM_COMMA'];
    ?>
</span>
						<div class="hinttext" style="margin-top:4px"><a style="color:#09C" href="http://tutorial.semonitor.ru/#5" target="_blank"><?php 
    echo $_LANG['AD_WHAT_KEY_WORDS'];
    ?>
</a></div>
                    </td>
					<td>
						<textarea name="keywords" style="width:350px" rows="3" id="keywords"><?php 
    echo $config['keywords'];
    ?>
</textarea>					</td>
				</tr>
				<tr>
					<td valign="top">
						<strong><?php 
    echo $_LANG['AD_DESCRIPTION'];
    ?>
</strong><br />
						<span class="hinttext"><?php 
    echo $_LANG['AD_LESS_THAN'];
    ?>
</span>
						<div class="hinttext" style="margin-top:4px"><a style="color:#09C" href="http://tutorial.semonitor.ru/#219" target="_blank"><?php 
    echo $_LANG['AD_WHAT_DESCRIPTION'];
    ?>
</a></div>
                    </td>
					<td>
						<textarea name="metadesc" style="width:350px" rows="3" id="metadesc"><?php 
    echo $config['metadesc'];
    ?>
</textarea>
                    </td>
				</tr>
                <tr>
    				<td>
                        <strong><?php 
    echo $_LANG['AD_MAIN_PAGE_COMPONENT'];
    ?>
</strong>
                    </td>
                    <td width="350" valign="top">
                        <select name="homecom" style="width:358px">
                            <option value="" <?php 
    if (!$config['homecom']) {
        ?>
selected="selected"<?php 
    }
    ?>
><?php 
    echo $_LANG['AD_ONLY_MODULES'];
    ?>
</option>
                            <?php 
    echo cmsCore::getListItems('cms_components', $config['homecom'], 'title', 'ASC', 'internal=0', 'link');
    ?>
                        </select>
                    </td>
			    </tr>
				<tr>
					<td>
						<strong><?php 
    echo $_LANG['AD_GATE_PAGE'];
    ?>
</strong> <br/>
						<span class="hinttext"><?php 
    echo $_LANG['AD_FIRST_VISIT'];
    ?>
</span> <br/>
                        <span class="hinttext"><?php 
    echo $_LANG['AD_FIRST_VISIT_TEMPLATE'];
    ?>
</strong></span>
					</td>
					<td valign="top">
						<label><input name="splash" type="radio" value="0" <?php 
    if (!$config['splash']) {
        echo 'checked="checked"';
    }
    ?>
/><?php 
    echo $_LANG['HIDE'];
    ?>
</label>
						<label><input name="splash" type="radio" value="1" <?php 
    if ($config['splash']) {
        echo 'checked="checked"';
    }
    ?>
/><?php 
    echo $_LANG['SHOW'];
    ?>
</label>
					</td>
				</tr>
			</table>
        </div>
		<div id="design">
			<table width="720" border="0" cellpadding="5">
				<tr>
					<td valign="top">
                        <div style="margin-top:2px">
                            <strong><?php 
    echo $_LANG['TEMPLATE'];
    ?>
:</strong><br />
                            <span class="hinttext"><?php 
    echo $_LANG['AD_TEMPLATE_FOLDER'];
    ?>
 </span>
                        </div>
					</td>
					<td>
                        <select name="template" id="template" style="width:350px" onchange="document.CFGform.submit();">
                            <?php 
    $templates = cmsCore::getDirsList('/templates');
    foreach ($templates as $template) {
        echo '<option value="' . $template . '" ' . ($config['template'] == $template ? 'selected="selected"' : '') . '>' . $template . '</option>';
    }
    $tpl_info = $inPage->getCurrentTplInfo();
    ?>
                        </select>
                            <?php 
    if (file_exists(PATH . '/templates/' . TEMPLATE . '/positions.jpg')) {
        ?>
                            <script>
                            $(function() {
                                $('#pos').dialog({modal: true, autoOpen: false, closeText: LANG_CLOSE, width: 'auto'});
                            });
                            </script>
                            <a onclick="$('#pos').dialog('open');return false;" href="#" class="ajaxlink"><?php 
        echo $_LANG['AD_TPL_POS'];
        ?>
</a>
                                <div id="pos" title="<?php 
        echo $_LANG['AD_TPL_POS'];
        ?>
"><img src="/templates/<?php 
        echo TEMPLATE;
        ?>
/positions.jpg" alt="<?php 
        echo $_LANG['AD_TPL_POS'];
        ?>
" /></div>
                            <?php 
    }
    ?>
                        <div style="margin-top:5px" class="hinttext">
                            <?php 
    echo sprintf($_LANG['AD_TEMPLATE_INFO'], $tpl_info['author'], $tpl_info['renderer'], $tpl_info['ext']);
    ?>
                        </div>
					</td>
				</tr>
				<tr>
					<td><strong><?php 
    echo $_LANG['AD_SEARCH_RESULT'];
    ?>
</strong></td>
					<td valign="top">
						<label><input name="slight" type="radio" value="1" <?php 
    if ($config['slight']) {
        echo 'checked="checked"';
    }
    ?>
/><?php 
    echo $_LANG['YES'];
    ?>
</label>
						<label><input name="slight" type="radio" value="0" <?php 
    if (!$config['slight']) {
        echo 'checked="checked"';
    }
    ?>
/><?php 
    echo $_LANG['NO'];
    ?>
</label>
					</td>
				</tr>
			</table>
		</div>
		<div id="time">
			<table width="720" border="0" cellpadding="5">
				<tr>
					<td valign="top" width="100">
                        <div style="margin-top:2px">
                            <strong><?php 
    echo $_LANG['AD_TIME_ARREA'];
    ?>
</strong>
                        </div>
					</td>
					<td>
                        <select name="timezone" id="timezone" style="width:350px">
                            <?php 
    include PATH . '/admin/includes/timezones.php';
    ?>
                            <?php 
    foreach ($timezones as $tz) {
        ?>
                            <option value="<?php 
        echo $tz;
        ?>
" <?php 
        if ($tz == $config['timezone']) {
            ?>
selected="selected"<?php 
        }
        ?>
><?php 
        echo $tz;
        ?>
</option>
                            <?php 
    }
    ?>
                        </select>
					</td>
				</tr>
				<tr>
					<td>
						<strong><?php 
    echo $_LANG['AD_TIME_SLIP'];
    ?>
</strong>
					</td>
					<td width="350">
                        <select name="timediff" id="timediff" style="width:60px">
                            <?php 
    for ($h = -12; $h <= 12; $h++) {
        ?>
                                <option value="<?php 
        echo $h;
        ?>
" <?php 
        if ($h == $config['timediff']) {
            ?>
selected="selected"<?php 
        }
        ?>
><?php 
        echo $h > 0 ? '+' . $h : $h;
        ?>
</option>
                            <?php 
    }
    ?>
                        </select>
					</td>
				</tr>
			</table>
		</div>
		<div id="database">
			<table width="720" border="0" cellpadding="5" style="margin-top:15px;">
				<tr>
					<td>
						<strong><?php 
    echo $_LANG['AD_DB_SIZE'];
    ?>
</strong>
					</td>
					<td width="350">
                        <?php 
    $result = $inDB->query("SELECT (sum(data_length)+sum(index_length))/1024/1024 as size FROM INFORMATION_SCHEMA.TABLES WHERE table_schema = '{$config['db_base']}'", true);
    if (!$inDB->error()) {
        $s = $inDB->fetch_assoc($result);
        echo round($s['size'], 2) . ' ' . $_LANG['SIZE_MB'];
    } else {
        echo $_LANG['AD_DB_SIZE_ERROR'];
    }
    ?>
					</td>
				</tr>
				<tr>
					<td colspan="2"><span class="hinttext"><?php 
    echo $_LANG['AD_MYSQL_CONFIG'];
    ?>
</span></td>
				</tr>
			</table>
        </div>
		<div id="mail">
			<table width="720" border="0" cellpadding="5" style="margin-top:15px;">
				<tr>
					<td width="250">
                        <strong><?php 
    echo $_LANG['AD_SITE_EMAIL'];
    ?>
 </strong><br/>
						<span class="hinttext"><?php 
    echo $_LANG['AD_SITE_EMAIL_POST'];
    ?>
</span>
                    </td>
					<td>
						<input name="sitemail" type="text" id="sitemail" value="<?php 
    echo $config['sitemail'];
    ?>
" style="width:358px" />
                    </td>
				</tr>
				<tr>
					<td width="250">
                        <strong><?php 
    echo $_LANG['AD_SENDER_EMAIL'];
    ?>
</strong><br/>
						<span class="hinttext"><?php 
    echo $_LANG['AD_IF_NOT_HANDLER'];
    ?>
</span>
                    </td>
					<td>
						<input name="sitemail_name" type="text" id="sitemail_name" value="<?php 
    echo $config['sitemail_name'];
    ?>
" style="width:358px" />
                    </td>
				</tr>
				<tr>
					<td>
						<strong><?php 
    echo $_LANG['AD_SEND_METHOD'];
    ?>
</strong>
					</td>
					<td>
						<select name="mailer" style="width:354px">
							<option value="mail" <?php 
    if ($config['mailer'] == 'mail') {
        echo 'selected="selected"';
    }
    ?>
><?php 
    echo $_LANG['AD_PHP_MAILER'];
    ?>
</option>
							<option value="sendmail" <?php 
    if ($config['mailer'] == 'sendmail') {
        echo 'selected="selected"';
    }
    ?>
><?php 
    echo $_LANG['AD_SEND_MAILER'];
    ?>
</option>
							<option value="smtp" <?php 
    if ($config['mailer'] == 'smtp') {
        echo 'selected="selected"';
    }
    ?>
><?php 
    echo $_LANG['AD_SMTP_MAILER'];
    ?>
</option>
						</select>
					</td>
				</tr>
				<tr>
					<td>
						<strong><?php 
    echo $_LANG['AD_ENCRYPTING'];
    ?>
</strong>
					</td>
					<td>
						<label><input name="smtpsecure" type="radio" value="" <?php 
    if (!$config['smtpsecure']) {
        echo 'checked="checked"';
    }
    ?>
/><?php 
    echo $_LANG['NO'];
    ?>
</label>
						<label><input name="smtpsecure" type="radio" value="tls" <?php 
    if ($config['smtpsecure'] == 'tls') {
        echo 'checked="checked"';
    }
    ?>
/> tls</label>
						<label><input name="smtpsecure" type="radio" value="ssl" <?php 
    if ($config['smtpsecure'] == 'ssl') {
        echo 'checked="checked"';
    }
    ?>
/> ssl</label>
					</td>
				</tr>
				<tr>
					<td>
						<strong><?php 
    echo $_LANG['AD_SMTP_LOGIN'];
    ?>
</strong>
					</td>
					<td>
						<label><input name="smtpauth" type="radio" value="1" <?php 
    if ($config['smtpauth']) {
        echo 'checked="checked"';
    }
    ?>
/><?php 
    echo $_LANG['YES'];
    ?>
</label>
						<label><input name="smtpauth" type="radio" value="0" <?php 
    if (!$config['smtpauth']) {
        echo 'checked="checked"';
    }
    ?>
/><?php 
    echo $_LANG['NO'];
    ?>
</label>
					</td>
				</tr>
				<tr>
					<td>
						<strong><?php 
    echo $_LANG['AD_SMTP_USER'];
    ?>
</strong>
					</td>
					<td>
                        <?php 
    if (!$config['smtpuser']) {
        ?>
                            <input name="smtpuser" type="text" id="smtpuser" value="<?php 
        echo $config['smtpuser'];
        ?>
" style="width:350px" />
                        <?php 
    } else {
        ?>
                            <span class="hinttext"><?php 
        echo $_LANG['AD_IF_CHANGE_USER'];
        ?>
</span>
                        <?php 
    }
    ?>
					</td>
				</tr>
				<tr>
					<td>
						<strong><?php 
    echo $_LANG['AD_SMTP_PASS'];
    ?>
</strong>
					</td>
					<td>
                        <?php 
    if (!$config['smtppass']) {
        ?>
                            <input name="smtppass" type="password" id="smtppass" value="<?php 
        echo $config['smtppass'];
        ?>
" style="width:350px" />
                        <?php 
    } else {
        ?>
                            <span class="hinttext"><?php 
        echo $_LANG['AD_IF_CHANGE_PASS'];
        ?>
</span>
                        <?php 
    }
    ?>
					</td>
				</tr>
				<tr>
					<td>
						<strong><?php 
    echo $_LANG['AD_SMTP_HOST'];
    ?>
</strong><br>
                        <span class="hinttext"><?php 
    echo $_LANG['AD_SOME_HOST'];
    ?>
</span>
					</td>
					<td>
						<input name="smtphost" type="text" id="smtphost" value="<?php 
    echo $config['smtphost'];
    ?>
" style="width:350px" />
					</td>
				</tr>
				<tr>
					<td>
						<strong><?php 
    echo $_LANG['AD_SMTP_PORT'];
    ?>
</strong>
					</td>
					<td>
						<input name="smtpport" type="text" id="smtpport" value="<?php 
    echo $config['smtpport'];
    ?>
" style="width:350px" />
					</td>
				</tr>
			</table>
		</div>
		<div id="other">
			<table width="720" border="0" cellpadding="5">
				<tr>
					<td>
						<strong><?php 
    echo $_LANG['AD_VIEW_PATHWAY'];
    ?>
</strong><br />
						<span class="hinttext">
                            <?php 
    echo $_LANG['AD_PATH_TO_CATEGORY'];
    ?>
                        </span>
					</td>
					<td>
						<label><input name="show_pw" type="radio" value="1" <?php 
    if ($config['show_pw']) {
        echo 'checked="checked"';
    }
    ?>
/><?php 
    echo $_LANG['YES'];
    ?>
</label>
						<label><input name="show_pw" type="radio" value="0" <?php 
    if (!$config['show_pw']) {
        echo 'checked="checked"';
    }
    ?>
/><?php 
    echo $_LANG['NO'];
    ?>
</label>
					</td>
				</tr>
				<tr>
					<td><strong><?php 
    echo $_LANG['AD_MAINPAGE_PATHWAY'];
    ?>
</strong></td>
					<td>
						<label><input name="index_pw" type="radio" value="1" <?php 
    if ($config['index_pw']) {
        echo 'checked="checked"';
    }
    ?>
/><?php 
    echo $_LANG['YES'];
    ?>
</label>
						<label><input name="index_pw" type="radio" value="0" <?php 
    if (!$config['index_pw']) {
        echo 'checked="checked"';
    }
    ?>
/><?php 
    echo $_LANG['NO'];
    ?>
</label>
					</td>
				</tr>
				<tr>
					<td><strong><?php 
    echo $_LANG['AD_PAGE_PATHWAY'];
    ?>
</strong></td>
					<td>
						<label><input name="last_item_pw" type="radio" value="0" <?php 
    if (!$config['last_item_pw']) {
        echo 'checked="checked"';
    }
    ?>
/><?php 
    echo $_LANG['HIDE'];
    ?>
</label>
						<label><input name="last_item_pw" type="radio" value="1" <?php 
    if ($config['last_item_pw'] == 1) {
        echo 'checked="checked"';
    }
    ?>
/><?php 
    echo $_LANG['AD_PAGE_PATHWAY_LINK'];
    ?>
</label>
						<label><input name="last_item_pw" type="radio" value="2" <?php 
    if ($config['last_item_pw'] == 2) {
        echo 'checked="checked"';
    }
    ?>
/><?php 
    echo $_LANG['AD_PAGE_PATHWAY_TEXT'];
    ?>
</label>
					</td>
				</tr>
			</table>
        </div>
        <div id="seq">
			<table width="720" border="0" cellpadding="5">
				<tr>
					<td>
						<strong><?php 
    echo $_LANG['AD_IP_ADMIN'];
    ?>
</strong> <br />
						<span class="hinttext"><?php 
    echo $_LANG['AD_IP_COMMA'];
    ?>
</span></td>
				<td valign="top">
					<input name="allow_ip" type="text" id="allow_ip" value="<?php 
    echo htmlspecialchars($config['allow_ip']);
    ?>
" style="width:358px" /></td>
				</tr>
			</table>
    <p style="color:#900"><?php 
    echo $_LANG['AD_ATTENTION'];
    ?>
</p>
        </div>

	<div align="left">
		<input name="do" type="hidden" id="do" value="save" />
		<input name="save" type="submit" id="save" value="<?php 
    echo $_LANG['SAVE'];
    ?>
" />
        <input name="back" type="button" id="back" value="<?php 
    echo $_LANG['CANCEL'];
    ?>
" onclick="window.history.back();" />
	</div>
</form>
</div></div>
<?php 
}
Example #3
0
function applet_plugins()
{
    global $_LANG;
    $inCore = cmsCore::getInstance();
    $GLOBALS['cp_page_title'] = $_LANG['AD_PLUGINS'];
    cpAddPathway($_LANG['AD_PLUGINS'], 'index.php?view=plugins');
    global $adminAccess;
    if (!cmsUser::isAdminCan('admin/plugins', $adminAccess)) {
        cpAccessDenied();
    }
    $do = cmsCore::request('do', 'str', 'list');
    $id = cmsCore::request('id', 'int', -1);
    // ===================================================================================== //
    if ($do == 'hide') {
        dbHide('cms_plugins', $id);
        echo '1';
        exit;
    }
    // ===================================================================================== //
    if ($do == 'show') {
        dbShow('cms_plugins', $id);
        echo '1';
        exit;
    }
    // ===================================================================================== //
    if ($do == 'list') {
        $toolmenu = array();
        $toolmenu[1]['icon'] = 'install.gif';
        $toolmenu[1]['title'] = $_LANG['AD_INSTALL_PLUGINS'];
        $toolmenu[1]['link'] = '?view=install&do=plugin';
        cpToolMenu($toolmenu);
        $plugin_id = cmsCore::request('installed', 'str', '');
        if ($plugin_id) {
            $task = cmsCore::request('task', 'str', 'install');
            if ($task == 'install' || $task == 'upgrade') {
                $plugin = $inCore->loadPlugin($plugin_id);
                $task_str = $task == 'install' ? $_LANG['AD_IS_INSTALL'] : $_LANG['AD_IS_UPDATE'];
                echo '<div style="color:green;margin-top:12px;margin-bottom:5px;">' . $_LANG['AD_PLUGIN'] . ' <strong>"' . $plugin->info['title'] . '"</strong> ' . $task_str . '. ' . $_LANG['AD_ENABLE_PLUGIN'] . '.</div>';
            }
            if ($task == 'remove') {
                echo '<div style="color:green;margin-top:12px;margin-bottom:5px;">' . $_LANG['AD_REMOVE_PLUGIN_OK'] . '.</div>';
            }
        }
        $fields = array();
        $fields[0]['title'] = 'id';
        $fields[0]['field'] = 'id';
        $fields[0]['width'] = '20';
        $fields[1]['title'] = $_LANG['TITLE'];
        $fields[1]['field'] = 'title';
        $fields[1]['width'] = '250';
        $fields[2]['title'] = $_LANG['DESCRIPTION'];
        $fields[2]['field'] = 'description';
        $fields[2]['width'] = '';
        $fields[3]['title'] = $_LANG['AD_AUTHOR'];
        $fields[3]['field'] = 'author';
        $fields[3]['width'] = '160';
        $fields[4]['title'] = $_LANG['AD_VERSION'];
        $fields[4]['field'] = 'version';
        $fields[4]['width'] = '50';
        $fields[5]['title'] = $_LANG['AD_FOLDER'];
        $fields[5]['field'] = 'plugin';
        $fields[5]['width'] = '100';
        $fields[6]['title'] = $_LANG['AD_ENABLE'];
        $fields[6]['field'] = 'published';
        $fields[6]['width'] = '60';
        $actions = array();
        $actions[0]['title'] = $_LANG['AD_CONFIG'];
        $actions[0]['icon'] = 'config.gif';
        $actions[0]['link'] = '?view=plugins&do=config&id=%id%';
        $actions[1]['title'] = $_LANG['DELETE'];
        $actions[1]['icon'] = 'delete.gif';
        $actions[1]['confirm'] = $_LANG['AD_REMOVE_PLUGIN_FROM'];
        $actions[1]['link'] = '?view=install&do=remove_plugin&id=%id%';
        cpListTable('cms_plugins', $fields, $actions);
    }
    // ===================================================================================== //
    if ($do == 'save_config') {
        if (!cmsCore::validateForm()) {
            cmsCore::error404();
        }
        $plugin_name = cmsCore::request('plugin', 'str', 0);
        $config = cmsCore::request('config', 'array_str');
        if (!$config || !$plugin_name) {
            cmsCore::redirectBack();
        }
        $inCore->savePluginConfig($plugin_name, $config);
        cmsUser::clearCsrfToken();
        cmsCore::addSessionMessage($_LANG['AD_CONFIG_SAVE_SUCCESS'], 'success');
        cmsCore::redirect('index.php?view=plugins');
    }
    // ===================================================================================== //
    if ($do == 'config') {
        $plugin_name = $inCore->getPluginById($id);
        if (!$plugin_name) {
            cmsCore::error404();
        }
        $plugin = $inCore->loadPlugin($plugin_name);
        $config = $inCore->loadPluginConfig($plugin_name);
        $GLOBALS['cp_page_title'] = $plugin->info['title'];
        cpAddPathway($plugin->info['title'], 'index.php?view=plugins&do=config&id=' . $id);
        echo '<h3>' . $plugin->info['title'] . '</h3>';
        if (!$config) {
            echo '<p>' . $_LANG['AD_PLUGIN_DISABLE'] . '.</p>';
            echo '<p><a href="javascript:window.history.go(-1);">' . $_LANG['BACK'] . '</a></p>';
            return;
        }
        echo '<form action="index.php?view=plugins&do=save_config&plugin=' . $plugin_name . '" method="POST">';
        echo '<input type="hidden" name="csrf_token" value="' . cmsUser::getCsrfToken() . '" />';
        echo '<table class="proptable" width="605" cellpadding="8" cellspacing="0" border="0">';
        foreach ($config as $field => $value) {
            echo '<tr>';
            echo '<td width="150"><strong>' . (isset($_LANG[mb_strtoupper($field)]) ? $_LANG[mb_strtoupper($field)] : $field) . ':</strong></td>';
            echo '<td><input type="text" style="width:90%" name="config[' . $field . ']" value="' . htmlspecialchars($value) . '" /></td>';
            echo '</tr>';
        }
        echo '</table>';
        echo '<div style="margin-top:6px;">';
        echo '<input type="submit" name="save" value="' . $_LANG['SAVE'] . '" /> ';
        echo '<input type="button" name="back" value="' . $_LANG['CANCEL'] . '" onclick="window.history.go(-1)" />';
        echo '</div>';
        echo '</form>';
    }
    // ===================================================================================== //
}
Example #4
0
function applet_arhive()
{
    $inCore = cmsCore::getInstance();
    $inDB = cmsDatabase::getInstance();
    global $_LANG;
    $GLOBALS['cp_page_title'] = $_LANG['AD_ARTICLES_ARCHIVE'];
    $cfg = $inCore->loadComponentConfig('content');
    $cfg_arhive = $inCore->loadComponentConfig('arhive');
    cmsCore::loadModel('content');
    $model = new cms_model_content();
    cpAddPathway($_LANG['AD_ARTICLE_SITE'], 'index.php?view=tree');
    cpAddPathway($_LANG['AD_ARTICLES_ARCHIVE'], 'index.php?view=arhive');
    $do = cmsCore::request('do', 'str', 'list');
    $id = cmsCore::request('id', 'int', -1);
    if ($do == 'saveconfig') {
        if (!cmsCore::validateForm()) {
            cmsCore::error404();
        }
        $cfg['source'] = cmsCore::request('source', 'str', '');
        $inCore->saveComponentConfig('arhive', $cfg);
        cmsCore::addSessionMessage($_LANG['AD_CONFIG_SAVE_SUCCESS'], 'success');
        cmsCore::redirect('?view=arhive&do=config');
    }
    if ($do == 'config') {
        $toolmenu = array();
        $toolmenu[0]['icon'] = 'folders.gif';
        $toolmenu[0]['title'] = $_LANG['AD_LIST_OF_ARTICLES'];
        $toolmenu[0]['link'] = '?view=arhive';
        cpToolMenu($toolmenu);
        cpAddPathway($_LANG['AD_SETTINGS'], 'index.php?view=arhive&do=config');
        ?>
<form action="index.php?view=arhive&do=saveconfig" method="post" name="optform" target="_self" id="form1">
    <input type="hidden" name="csrf_token" value="<?php 
        echo cmsUser::getCsrfToken();
        ?>
" />
    <table width="609" border="0" cellpadding="10" cellspacing="0" class="proptable">
        <tr>
            <td valign="top"><strong><?php 
        echo $_LANG['AD_SOURCE_MATERIALS'];
        ?>
</strong></td>
            <td width="100" valign="top">
                <select name="source" id="source" style="width:285px">
                    <option value="content" <?php 
        if ($cfg_arhive['source'] == 'content') {
            echo 'selected="selected"';
        }
        ?>
><?php 
        echo $_LANG['AD_ARTICLE_SITE'];
        ?>
</option>
                    <option value="arhive" <?php 
        if ($cfg_arhive['source'] == 'arhive') {
            echo 'selected="selected"';
        }
        ?>
><?php 
        echo $_LANG['AD_ARTICLES_ARCHIVE'];
        ?>
</option>
                    <option value="both" <?php 
        if ($cfg_arhive['source'] == 'both') {
            echo 'selected="selected"';
        }
        ?>
><?php 
        echo $_LANG['AD_CATALOG_AND_ARCHIVE'];
        ?>
</option>
                </select>
            </td>
        </tr>
    </table>
    <p>
        <input name="opt" type="hidden" value="saveconfig" />
        <input name="save" type="submit" id="save" value="<?php 
        echo $_LANG['SAVE'];
        ?>
" />
        <input name="back" type="button" id="back" value="<?php 
        echo $_LANG['CANCEL'];
        ?>
" onclick="window.location.href='index.php?view=arhive';" />
    </p>
</form>
<?php 
    }
    if ($do == 'list') {
        $toolmenu = array();
        $toolmenu[0]['icon'] = 'config.gif';
        $toolmenu[0]['title'] = $_LANG['AD_SETTINGS'];
        $toolmenu[0]['link'] = '?view=arhive&do=config';
        $toolmenu[1]['icon'] = 'delete.gif';
        $toolmenu[1]['title'] = $_LANG['AD_DELETE_SELECTED'];
        $toolmenu[1]['link'] = "javascript:checkSel('?view=arhive&do=delete&multiple=1');";
        cpToolMenu($toolmenu);
        //TABLE COLUMNS
        $fields = array();
        $fields[0]['title'] = 'id';
        $fields[0]['field'] = 'id';
        $fields[0]['width'] = '30';
        $fields[1]['title'] = $_LANG['AD_CREATE'];
        $fields[1]['field'] = 'pubdate';
        $fields[1]['width'] = '80';
        $fields[1]['filter'] = 15;
        $fields[1]['fdate'] = '%d/%m/%Y';
        $fields[2]['title'] = $_LANG['TITLE'];
        $fields[2]['field'] = 'title';
        $fields[2]['width'] = '';
        $fields[2]['link'] = '?view=content&do=edit&id=%id%';
        $fields[2]['filter'] = 15;
        $fields[3]['title'] = $_LANG['AD_PARTITION'];
        $fields[3]['field'] = 'category_id';
        $fields[3]['width'] = '100';
        $fields[3]['filter'] = 1;
        $fields[3]['prc'] = 'cpCatById';
        $fields[3]['filterlist'] = cpGetList('cms_category');
        //ACTIONS
        $actions = array();
        $actions[0]['title'] = $_LANG['AD_TO_ARTICLES_CATALOG'];
        $actions[0]['icon'] = 'arhive_off.gif';
        $actions[0]['link'] = '?view=arhive&do=arhive_off&id=%id%';
        $actions[2]['title'] = $_LANG['DELETE'];
        $actions[2]['icon'] = 'delete.gif';
        $actions[2]['confirm'] = $_LANG['AD_DELETE_MATERIALS'];
        $actions[2]['link'] = '?view=content&do=delete&id=%id%';
        //Print table
        cpListTable('cms_content', $fields, $actions, 'is_arhive=1');
    }
    if ($do == 'arhive_off') {
        if (isset($_REQUEST['id'])) {
            $sql = "UPDATE cms_content SET is_arhive = 0 WHERE id = '{$id}'";
            $inDB->query($sql);
            cmsCore::redirect('?view=arhive');
        }
    }
    if ($do == 'delete') {
        if (!isset($_REQUEST['item'])) {
            if ($id >= 0) {
                $model->deleteArticle($id, $cfg['af_delete']);
            }
        } else {
            $model->deleteArticles($_REQUEST['item'], $cfg['af_delete']);
        }
        cmsCore::redirect('?view=arhive');
    }
}
Example #5
0
function photos()
{
    $inCore = cmsCore::getInstance();
    $inPage = cmsPage::getInstance();
    $inDB = cmsDatabase::getInstance();
    $inUser = cmsUser::getInstance();
    cmsCore::loadClass('photo');
    $inPhoto = cmsPhoto::getInstance();
    global $_LANG;
    $model = new cms_model_photos();
    $pagetitle = $inCore->menuTitle();
    $root_album_id = $inDB->getNsRootCatId('cms_photo_albums');
    $id = cmsCore::request('id', 'int', $root_album_id);
    $do = $inCore->do;
    $page = cmsCore::request('page', 'int', 1);
    $inPage->addPathway($inCore->getComponentTitle(), '/photos');
    // только авторизованные пользуются js
    if ($inUser->id) {
        $inPage->addHeadJS('components/photos/js/photos.js');
        $inPage->addHeadJsLang(array('NO_PUBLISH', 'EDIT_PHOTO', 'YOU_REALLY_DELETE_PHOTO', 'MOVE_PHOTO'));
    }
    /////////////////////////////// Просмотр альбома ///////////////////////////////////////////////////////////////////////////////////////////
    if ($do == 'view') {
        $album = $inDB->getNsCategory('cms_photo_albums', $id, null);
        if (!$album && $inCore->menuId() !== 1) {
            cmsCore::error404();
        }
        // Неопубликованные альбомы показываем только админам
        if (!$album['published'] && !$inUser->is_admin) {
            cmsCore::error404();
        }
        $album = cmsCore::callEvent('GET_PHOTO_ALBUM', $album);
        // если не корневой альбом
        if ($album['id'] != $root_album_id) {
            $path_list = $inDB->getNsCategoryPath('cms_photo_albums', $album['NSLeft'], $album['NSRight'], 'id, title, NSLevel');
            if ($path_list) {
                foreach ($path_list as $pcat) {
                    $inPage->addPathway($pcat['title'], '/photos/' . $pcat['id']);
                }
            }
            $pagetitle = $pagetitle && $inCore->isMenuIdStrict() ? $pagetitle : $album['title'] . ' - ' . $_LANG['PHOTOGALLERY'];
            $inPage->setTitle($pagetitle);
        } else {
            $pagetitle = $pagetitle && $inCore->isMenuIdStrict() ? $pagetitle : $_LANG['PHOTOGALLERY'];
            $inPage->setTitle($pagetitle);
            $album['title'] = $pagetitle;
        }
        //Формируем подкатегории альбома
        $inDB->orderBy('f.' . $model->config['orderby'], $model->config['orderto']);
        $subcats = $inPhoto->getAlbums($album['id']);
        // Сортировка фотографий
        $orderby = cmsCore::getSearchVar('orderby', $album['orderby']);
        $orderto = cmsCore::getSearchVar('orderto', $album['orderto']);
        if (!in_array($orderby, array('title', 'pubdate', 'rating', 'hits'))) {
            $orderby = $album['orderby'];
        }
        if (!in_array($orderto, array('desc', 'asc'))) {
            $orderto = $album['orderto'];
        }
        // Устанавливаем альбом
        $inPhoto->whereAlbumIs($album['id']);
        // Общее количество фото по заданным выше условиям
        $total = $inPhoto->getPhotosCount($inUser->is_admin);
        //устанавливаем сортировку
        $inDB->orderBy('f.' . $orderby, $orderto);
        //устанавливаем номер текущей страницы и кол-во фото на странице
        $inDB->limitPage($page, $album['perpage']);
        $photos = $inPhoto->getPhotos($inUser->is_admin, $album['showdate']);
        if (!$photos && $page > 1) {
            cmsCore::error404();
        }
        cmsPage::initTemplate('components', 'com_photos_view')->assign('root_album_id', $root_album_id)->assign('cfg', $model->config)->assign('album', $album)->assign('can_add_photo', $album['public'] && $inUser->id || $inUser->is_admin)->assign('subcats', $subcats)->assign('photos', $photos)->assign('pagebar', cmsPage::getPagebar($total, $page, $album['perpage'], '/photos/' . $album['id'] . '-%page%'))->assign('total', $total)->assign('orderby', $orderby)->assign('orderto', $orderto)->display('com_photos_view.tpl');
        // если есть фотограйии в альбоме и включены комментарии в альбоме, то показываем их
        if ($album['is_comments'] && $photos && $inCore->isComponentInstalled('comments')) {
            cmsCore::includeComments();
            comments('palbum', $album['id']);
        }
    }
    /////////////////////////////// VIEW PHOTO ///////////////////////////////////////////////////////////////////////////////////////////
    if ($do == 'viewphoto') {
        // получаем фото
        $photo = cmsCore::callEvent('GET_PHOTO', $inPhoto->getPhoto($id));
        if (!$photo) {
            cmsCore::error404();
        }
        // Если фото клуба редиректим на новый алрес
        if (mb_strstr($photo['NSDiffer'], 'club')) {
            cmsCore::redirect('/clubs/photo' . $photo['id'] . '.html', '301');
        }
        $is_author = $photo['user_id'] == $inUser->id && $inUser->id;
        // неопубликованное фото видно админам и автору
        if (!$photo['published'] && !$inUser->is_admin && !$is_author) {
            cmsCore::error404();
        }
        $path_list = $inDB->getNsCategoryPath('cms_photo_albums', $photo['NSLeft'], $photo['NSRight'], 'id, title, NSLevel');
        if ($path_list) {
            foreach ($path_list as $pcat) {
                $inPage->addPathway($pcat['title'], '/photos/' . $pcat['id']);
            }
        }
        $inPage->addPathway($photo['title']);
        $inPage->setTitle($photo['title']);
        // Обновляем количество просмотров фотографии
        if (!$is_author) {
            $inDB->setFlag('cms_photo_files', $photo['id'], 'hits', $photo['hits'] + 1);
        }
        //навигация
        if ($photo['album_nav']) {
            $nextid = $inDB->get_fields('cms_photo_files', 'id<' . $photo['id'] . ' AND album_id = ' . $photo['album_id'] . ' AND published=1', 'id, file', 'id DESC');
            $previd = $inDB->get_fields('cms_photo_files', 'id>' . $photo['id'] . ' AND album_id = ' . $photo['album_id'] . ' AND published=1', 'id, file', 'id ASC');
        } else {
            $previd = false;
            $nextid = false;
        }
        $photo['karma_buttons'] = cmsKarmaButtons('photo', $photo['id'], $photo['rating'], $is_author);
        $photo['genderlink'] = cmsUser::getGenderLink($photo['user_id'], $photo['nickname'], $photo['gender'], $photo['login']);
        cmsPage::initTemplate('components', 'com_photos_view_photo')->assign('photo', $photo)->assign('bbcode', '[IMG]' . HOST . '/images/photos/medium/' . $photo['file'] . '[/IMG]')->assign('previd', $previd)->assign('nextid', $nextid)->assign('cfg', $model->config)->assign('is_author', $is_author)->assign('is_admin', $inUser->is_admin)->assign('tagbar', $photo['a_tags'] ? cmsTagBar('photo', $photo['id']) : '')->display('com_photos_view_photo.tpl');
        //выводим комментарии, если они разрешены и фото опубликовано
        if ($photo['comments'] && $inCore->isComponentInstalled('comments')) {
            cmsCore::includeComments();
            comments('photo', $photo['id']);
        }
    }
    /////////////////////////////// PHOTO UPLOAD  ////////////////////////////////////////////////////////////////////////////////
    if ($do == 'addphoto') {
        // Неавторизованных просим авторизоваться
        if (!$inUser->id) {
            cmsUser::goToLogin();
        }
        $do_photo = cmsCore::request('do_photo', 'str', 'addphoto');
        // получаем альбом
        $album = $inDB->getNsCategory('cms_photo_albums', $id);
        if (!$album) {
            cmsCore::error404();
        }
        if (!$album['published'] && !$inUser->is_admin) {
            cmsCore::error404();
        }
        $album = cmsCore::callEvent('GET_PHOTO_ALBUM', $album);
        // права доступа
        // загружаем только в разрешенные альбомы
        if (!$album['public'] && !$inUser->is_admin) {
            cmsCore::error404();
        }
        // Смотрим ограничения загрузки в сутки
        $today_uploaded = $album['uplimit'] ? $model->loadedByUser24h($inUser->id, $album['id']) : 0;
        if (!$inUser->is_admin && $album['uplimit'] && $today_uploaded >= $album['uplimit']) {
            cmsCore::addSessionMessage('<strong>' . $_LANG['MAX_UPLOAD_IN_DAY'] . '</strong> ' . $_LANG['CAN_UPLOAD_TOMORROW'], 'error');
            cmsCore::redirectBack();
        }
        // глубиномер
        $path_list = $inDB->getNsCategoryPath('cms_photo_albums', $album['NSLeft'], $album['NSRight'], 'id, title, NSLevel');
        if ($path_list) {
            foreach ($path_list as $pcat) {
                $inPage->addPathway($pcat['title'], '/photos/' . $pcat['id']);
            }
        }
        include 'components/photos/add_photo.php';
    }
    /////////////////////////////// PHOTO EDIT ///////////////////////////////////////////////////////////////////////////////////////////
    if ($do == 'editphoto') {
        if ($_SERVER['HTTP_X_REQUESTED_WITH'] != 'XMLHttpRequest') {
            cmsCore::halt();
        }
        if (!$inUser->id) {
            cmsCore::halt();
        }
        // получаем фото
        $photo = cmsCore::callEvent('GET_PHOTO', $inPhoto->getPhoto($id));
        if (!$photo) {
            cmsCore::halt();
        }
        if (mb_strstr($photo['NSDiffer'], 'club')) {
            cmsCore::halt();
        }
        $is_author = $photo['user_id'] == $inUser->id && $inUser->id;
        if (!$inUser->is_admin && !$is_author) {
            cmsCore::halt();
        }
        if (cmsCore::inRequest('edit_photo')) {
            $mod['title'] = cmsCore::request('title', 'str', '');
            $mod['title'] = $mod['title'] ? $mod['title'] : $photo['title'];
            $mod['description'] = cmsCore::request('description', 'str', '');
            $mod['tags'] = cmsCore::request('tags', 'str', '');
            $mod['comments'] = $inUser->is_admin ? cmsCore::request('comments', 'int') : $photo['comments'];
            $file = $model->initUploadClass($inDB->getNsCategory('cms_photo_albums', $photo['album_id']))->uploadPhoto($photo['file']);
            $mod['file'] = $file['filename'] ? $file['filename'] : $photo['file'];
            $inPhoto->updatePhoto($mod, $photo['id']);
            $description = '<a href="/photos/photo' . $photo['id'] . '.html" class="act_photo"><img src="/images/photos/small/' . $mod['file'] . '" alt="' . htmlspecialchars(stripslashes($mod['title'])) . '" /></a>';
            cmsActions::updateLog('add_photo', array('object' => $mod['title'], 'description' => $description), $photo['id']);
            cmsCore::addSessionMessage($_LANG['PHOTO_SAVED'], 'success');
            cmsCore::jsonOutput(array('error' => false, 'redirect' => '/photos/photo' . $photo['id'] . '.html'));
        } else {
            $photo['tags'] = cmsTagLine('photo', $photo['id'], false);
            cmsPage::initTemplate('components', 'com_photos_edit')->assign('photo', $photo)->assign('form_action', '/photos/editphoto' . $photo['id'] . '.html')->assign('no_tags', false)->assign('is_admin', $inUser->is_admin)->display('com_photos_edit.tpl');
            cmsCore::jsonOutput(array('error' => false, 'html' => ob_get_clean()));
        }
    }
    /////////////////////////////// PHOTO MOVE /////////////////////////////////////////////////////////////////////////////////////////
    if ($do == 'movephoto') {
        if ($_SERVER['HTTP_X_REQUESTED_WITH'] != 'XMLHttpRequest') {
            cmsCore::halt();
        }
        if (!$inUser->id) {
            cmsCore::halt();
        }
        $photo = cmsCore::callEvent('GET_PHOTO', $inPhoto->getPhoto($id));
        if (!$photo) {
            cmsCore::halt();
        }
        if (mb_strstr($photo['NSDiffer'], 'club')) {
            cmsCore::halt();
        }
        if (!$inUser->is_admin) {
            cmsCore::halt();
        }
        if (!cmsCore::inRequest('move_photo')) {
            cmsPage::initTemplate('components', 'com_photos_move')->assign('form_action', '/photos/movephoto' . $photo['id'] . '.html')->assign('html', $inPhoto->getAlbumsOption('', $photo['album_id']))->display('com_photos_move.tpl');
            cmsCore::jsonOutput(array('error' => false, 'html' => ob_get_clean()));
        } else {
            $album = cmsCore::callEvent('GET_PHOTO_ALBUM', $inDB->getNsCategory('cms_photo_albums', cmsCore::request('album_id', 'int')));
            if (!$album) {
                cmsCore::halt();
            }
            if (!$album['public'] && !$inUser->is_admin) {
                cmsCore::error404();
            }
            // Смотрим ограничения загрузки в сутки
            $today_uploaded = $album['uplimit'] ? $model->loadedByUser24h($inUser->id, $album['id']) : 0;
            if (!$inUser->is_admin && $album['uplimit'] && $today_uploaded >= $album['uplimit']) {
                cmsCore::jsonOutput(array('error' => true, 'text' => '<strong>' . $_LANG['MAX_UPLOAD_IN_DAY'] . '</strong> ' . $_LANG['CAN_UPLOAD_TOMORROW']));
            }
            $inDB->query("UPDATE cms_photo_files SET album_id = '{$album['id']}' WHERE id = '{$photo['id']}'");
            cmsActions::updateLog('add_photo', array('target' => $album['title'], 'target_url' => '/photos/' . $album['id'], 'target_id' => $album['id']), $photo['id']);
            cmsCore::addSessionMessage($_LANG['PHOTO_MOVED'], 'info');
            cmsCore::jsonOutput(array('error' => false, 'redirect' => '/photos/' . $album['id']));
        }
    }
    /////////////////////////////// PHOTO DELETE /////////////////////////////////////////////////////////////////////////////////////////
    if ($do == 'delphoto') {
        if ($_SERVER['HTTP_X_REQUESTED_WITH'] != 'XMLHttpRequest') {
            cmsCore::halt();
        }
        if (!$inUser->id) {
            cmsCore::halt();
        }
        if (!cmsCore::validateForm()) {
            cmsCore::halt();
        }
        $photo = cmsCore::callEvent('GET_PHOTO', $inPhoto->getPhoto($id));
        if (!$photo) {
            cmsCore::halt();
        }
        if (mb_strstr($photo['NSDiffer'], 'club')) {
            cmsCore::halt();
        }
        $is_author = $photo['user_id'] == $inUser->id && $inUser->id;
        if (!$inUser->is_admin && !$is_author) {
            cmsCore::halt();
        }
        $inPhoto->deletePhoto($photo, $model->initUploadClass($inDB->getNsCategory('cms_photo_albums', $photo['album_id'])));
        cmsCore::addSessionMessage($_LANG['PHOTO_DELETED'], 'success');
        cmsUser::clearCsrfToken();
        cmsCore::jsonOutput(array('error' => false, 'redirect' => '/photos/' . $photo['album_id']));
    }
    /////////////////////////////// PHOTO PUBLISH /////////////////////////////////////////////////////////////////////////////////////////
    if ($do == 'publish_photo') {
        if ($_SERVER['HTTP_X_REQUESTED_WITH'] != 'XMLHttpRequest') {
            cmsCore::halt();
        }
        if (!$inUser->id) {
            cmsCore::halt();
        }
        $photo = cmsCore::callEvent('GET_PHOTO', $inPhoto->getPhoto($id));
        if (!$photo) {
            cmsCore::halt();
        }
        if (!$inUser->is_admin) {
            cmsCore::halt();
        }
        $inPhoto->publishPhoto($photo['id']);
        cmsCore::callEvent('ADD_PHOTO_DONE', $photo);
        $description = '<a href="/photos/photo' . $photo['id'] . '.html" class="act_photo"><img src="/images/photos/small/' . $photo['file'] . '" alt="' . htmlspecialchars(stripslashes($photo['title'])) . '" /></a>';
        cmsActions::log('add_photo', array('object' => $photo['title'], 'object_url' => '/photos/photo' . $photo['id'] . '.html', 'object_id' => $photo['id'], 'user_id' => $photo['user_id'], 'target' => $photo['cat_title'], 'target_id' => $photo['album_id'], 'target_url' => '/photos/' . $photo['album_id'], 'description' => $description));
        cmsCore::halt('ok');
    }
    /////////////////////////////// VIEW LATEST/BEST PHOTOS //////////////////////////////////////////////////////////////////////////////
    if (in_array($do, array('latest', 'best'))) {
        if ($do == 'latest') {
            $inDB->orderBy('f.pubdate', 'DESC');
            $pagetitle = $pagetitle && $inCore->isMenuIdStrict() ? $pagetitle : $_LANG['NEW_PHOTO_IN_GALLERY'];
        } else {
            $inDB->orderBy('f.rating', 'DESC');
            $pagetitle = $pagetitle && $inCore->isMenuIdStrict() ? $pagetitle : $_LANG['BEST_PHOTOS'];
        }
        $inDB->limit($model->config['best_latest_perpage']);
        // выбираем категории фото
        $inDB->addJoin("INNER JOIN cms_photo_albums a ON a.id = f.album_id AND a.published = 1 AND a.NSDiffer = ''");
        $inDB->addSelect('a.title as cat_title');
        $photos = $inPhoto->getPhotos(false, 'with_comments');
        if (!$photos) {
            cmsCore::error404();
        }
        $inPage->addPathway($pagetitle);
        $inPage->setTitle($pagetitle);
        cmsPage::initTemplate('components', 'com_photos_bl')->assign('maxcols', $model->config['best_latest_maxcols'])->assign('pagetitle', $pagetitle)->assign('photos', $photos)->display('com_photos_bl.tpl');
    }
    /////////////////////////////// /////////////////////////////// /////////////////////////////// /////////////////////////////// //////
}
Example #6
0
function applet_userbanlist()
{
    $inCore = cmsCore::getInstance();
    $inDB = cmsDatabase::getInstance();
    $inUser = cmsUser::getInstance();
    global $_LANG;
    global $adminAccess;
    if (!cmsUser::isAdminCan('admin/users', $adminAccess)) {
        cpAccessDenied();
    }
    $GLOBALS['cp_page_title'] = $_LANG['AD_BANLIST'];
    cpAddPathway($_LANG['AD_USERS'], 'index.php?view=users');
    cpAddPathway($_LANG['AD_BANLIST'], 'index.php?view=userbanlist');
    $do = cmsCore::request('do', 'str', 'list');
    $id = cmsCore::request('id', 'int', -1);
    $to = cmsCore::request('to', 'int', 0);
    // для редиректа обратно в профиль на сайт
    if ($to) {
        cmsUser::sessionPut('back_url', cmsCore::getBackURL());
    }
    if ($do == 'list') {
        $toolmenu[] = array('icon' => 'useradd.gif', 'title' => $_LANG['AD_TO_BANLIST_ADD'], 'link' => '?view=userbanlist&do=add');
        $toolmenu[] = array('icon' => 'edit.gif', 'title' => $_LANG['AD_EDIT_SELECTED'], 'link' => "javascript:checkSel('?view=userbanlist&do=edit&multiple=1');");
        $toolmenu[] = array('icon' => 'delete.gif', 'title' => $_LANG['AD_DELETE_SELECTED'], 'link' => "javascript:checkSel('?view=userbanlist&do=delete&multiple=1');");
        cpToolMenu($toolmenu);
        $fields[] = array('title' => 'id', 'field' => 'id', 'width' => '30');
        $fields[] = array('title' => $_LANG['AD_IS_ACTIVE'], 'field' => 'status', 'width' => '55', 'prc' => 'cpYesNo');
        $fields[] = array('title' => $_LANG['AD_BANLIST_USER'], 'field' => 'user_id', 'width' => '120', 'filter' => '12', 'prc' => 'cpUserNick');
        $fields[] = array('title' => $_LANG['AD_BANLIST_IP'], 'field' => 'ip', 'width' => '100', 'link' => '?view=userbanlist&do=edit&id=%id%', 'filter' => '12');
        $fields[] = array('title' => $_LANG['DATE'], 'field' => 'bandate', 'width' => '', 'fdate' => '%d/%m/%Y %H:%i:%s', 'filter' => '12');
        $fields[] = array('title' => $_LANG['AD_BANLIST_TIME'], 'field' => 'int_num', 'width' => '55');
        $fields[] = array('title' => '', 'field' => 'int_period', 'width' => '70');
        $fields[] = array('title' => $_LANG['AD_AUTOREMOVE'], 'field' => 'autodelete', 'width' => '90', 'prc' => 'cpYesNo');
        $actions[] = array('title' => $_LANG['EDIT'], 'icon' => 'edit.gif', 'link' => '?view=userbanlist&do=edit&id=%id%');
        $actions[] = array('title' => $_LANG['DELETE'], 'icon' => 'delete.gif', 'confirm' => $_LANG['AD_REMOVE_RULE'], 'link' => '?view=userbanlist&do=delete&id=%id%');
        cpListTable('cms_banlist', $fields, $actions, '1=1', 'ip DESC');
    }
    if ($do == 'delete') {
        if (!isset($_REQUEST['item'])) {
            if ($id >= 0) {
                dbDelete('cms_banlist', $id);
            }
        } else {
            dbDeleteList('cms_banlist', $_REQUEST['item']);
        }
        cmsCore::redirect('?view=userbanlist');
    }
    if ($do == 'submit' || $do == 'update') {
        if (!cmsCore::validateForm()) {
            cmsCore::error404();
        }
        $types = array('user_id' => array('user_id', 'int', 0), 'ip' => array('ip', 'str', ''), 'cause' => array('cause', 'str', ''), 'autodelete' => array('autodelete', 'int', 0), 'int_num' => array('int_num', 'int', 0), 'int_period' => array('int_period', 'str', '', create_function('$p', 'if(!in_array($p, array("MONTH","DAY","HOUR","MINUTE"))){ $p = "MINUTE"; } return $p;')));
        $items = cmsCore::getArrayFromRequest($types);
        $error = false;
        if (!$items['ip']) {
            $error = true;
            cmsCore::addSessionMessage($_LANG['AD_NEED_IP'], 'error');
        }
        if ($items['ip'] == $_SERVER['REMOTE_ADDR'] || $items['user_id'] == $inUser->id) {
            $error = true;
            cmsCore::addSessionMessage($_LANG['AD_ITS_YOUR_IP'], 'error');
        }
        if (cmsUser::userIsAdmin($items['user_id'])) {
            $error = true;
            cmsCore::addSessionMessage($_LANG['AD_ITS_ADMIN'], 'error');
        }
        if ($error) {
            cmsCore::redirectBack();
        }
        if ($do == 'update') {
            $inDB->update('cms_banlist', $items, $id);
            if (empty($_SESSION['editlist'])) {
                cmsCore::redirect('?view=userbanlist');
            } else {
                cmsCore::redirect('?view=userbanlist&do=edit');
            }
        }
        $inDB->insert('cms_banlist', $items);
        $back_url = cmsUser::sessionGet('back_url');
        cmsUser::sessionDel('back_url');
        cmsCore::redirect($back_url ? $back_url : '?view=userbanlist');
    }
    if ($do == 'add' || $do == 'edit') {
        $GLOBALS['cp_page_head'][] = '<script language="JavaScript" type="text/javascript" src="/admin/js/banlist.js"></script>';
        $toolmenu[] = array('icon' => 'save.gif', 'title' => $_LANG['SAVE'], 'link' => 'javascript:document.addform.submit();');
        $toolmenu[] = array('icon' => 'cancel.gif', 'title' => $_LANG['CANCEL'], 'link' => 'javascript:history.go(-1);');
        cpToolMenu($toolmenu);
        if ($do == 'add') {
            echo '<h3>' . $_LANG['AD_TO_BANLIST_ADD'] . '</h3>';
            cpAddPathway($_LANG['AD_TO_BANLIST_ADD']);
        } else {
            if (isset($_REQUEST['multiple'])) {
                if (isset($_REQUEST['item'])) {
                    $_SESSION['editlist'] = cmsCore::request('item', 'array_int', array());
                } else {
                    cmsCore::addSessionMessage($_LANG['AD_NO_SELECT_OBJECTS'], 'error');
                    cmsCore::redirectBack();
                }
            }
            $ostatok = '';
            if (isset($_SESSION['editlist'])) {
                $item_id = array_shift($_SESSION['editlist']);
                if (sizeof($_SESSION['editlist']) == 0) {
                    unset($_SESSION['editlist']);
                } else {
                    $ostatok = '(' . $_LANG['AD_NEXT_IN'] . sizeof($_SESSION['editlist']) . ')';
                }
            } else {
                $item_id = cmsCore::request('id', 'int', 0);
            }
            $mod = $inDB->get_fields('cms_banlist', "id = '{$item_id}'", '*');
            if (!$mod) {
                cmsCore::error404();
            }
            echo '<h3>' . $_LANG['AD_EDIT_RULE'] . ' ' . $ostatok . '</h3>';
            cpAddPathway($_LANG['AD_EDIT_RULE']);
        }
        ?>
	  <div style="margin-top:2px;padding:10px;border:dotted 1px silver; width:508px;background:#FFFFCC">
	  	<div style="font-weight:bold"><?php 
        echo $_LANG['ATTENTION'];
        ?>
!</div>
		<div><?php 
        echo $_LANG['AD_CAUTION_INFO_0'];
        ?>
</div>
		<div><?php 
        echo $_LANG['AD_CAUTION_INFO_1'];
        ?>
</div>
	  </div>
      <form id="addform" name="addform" method="post" action="index.php?view=userbanlist">
        <input type="hidden" name="csrf_token" value="<?php 
        echo cmsUser::getCsrfToken();
        ?>
" />
        <table width="530" border="0" cellspacing="5" class="proptable">
          <tr>
            <td width="150" valign="top"><div><strong><?php 
        echo $_LANG['AD_BANLIST_USER'];
        ?>
: </strong></div></td>
			<?php 
        if ($do == 'add' && $to) {
            $mod['user_id'] = $to;
            $mod['ip'] = $inDB->get_field('cms_users', 'id=' . $to, 'last_ip');
        }
        ?>
            <td valign="top">
				<select name="user_id" id="user_id" onchange="loadUserIp()" style="width: 250px;">
                    <option value="0" <?php 
        if (@(!$mod['user_id'])) {
            echo 'selected="selected"';
        }
        ?>
><?php 
        echo $_LANG['AD_WHITHOUT_USER'];
        ?>
</option>
                    <?php 
        if (isset($mod['user_id'])) {
            echo $inCore->getListItems('cms_users', $mod['user_id'], 'nickname', 'ASC', 'is_deleted=0 AND is_locked=0', 'id', 'nickname');
        } else {
            echo $inCore->getListItems('cms_users', 0, 'nickname', 'ASC', 'is_deleted=0 AND is_locked=0', 'id', 'nickname');
        }
        ?>
				</select>
            </td>
          </tr>
          <tr>
            <td valign="top"><strong><?php 
        echo $_LANG['AD_BANLIST_IP'];
        ?>
:</strong></td>
            <td valign="top"><input name="ip" type="text" id="ip" style="width: 244px;" value="<?php 
        echo @$mod['ip'];
        ?>
"/></td>
          </tr>
          <tr>
            <td valign="top"><strong><?php 
        echo $_LANG['AD_BANLIST_CAUSE'];
        ?>
:</strong></td>
            <td valign="top">
                <textarea name="cause" style="width:240px" rows="5"><?php 
        echo @$mod['cause'];
        ?>
</textarea>
            </td>
          </tr>
		  <?php 
        $forever = false;
        if (!@$mod['int_num']) {
            $forever = true;
        }
        ?>
          <tr>
            <td valign="top"><strong><?php 
        echo $_LANG['AD_BAN_FOREVER'];
        ?>
</strong></td>
            <td valign="top"><input type="checkbox" name="forever" value="1" <?php 
        if ($forever) {
            echo 'checked="checked"';
        }
        ?>
 onclick="$('tr.bantime').toggle();"/></td>
          </tr>
          <tr class="bantime">
            <td valign="top"><strong><?php 
        echo $_LANG['AD_BAN_FOR_TIME'];
        ?>
</strong> </td>

            <td valign="top"><p>
            <input name="int_num" type="text" id="int_num" size="5" value="<?php 
        echo @(int) $mod['int_num'];
        ?>
"/>
              <select name="int_period" id="int_period">
                <option value="MINUTE"  <?php 
        if (@mb_strstr($mod['int_period'], 'MINUTE')) {
            echo 'selected="selected"';
        }
        ?>
><?php 
        echo $_LANG['MINUTE10'];
        ?>
</option>]
                <option value="HOUR"  <?php 
        if (@mb_strstr($mod['int_period'], 'HOUR')) {
            echo 'selected="selected"';
        }
        ?>
><?php 
        echo $_LANG['HOUR10'];
        ?>
</option>
                <option value="DAY" <?php 
        if (@mb_strstr($mod['int_period'], 'DAY')) {
            echo 'selected="selected"';
        }
        ?>
><?php 
        echo $_LANG['DAY10'];
        ?>
</option>
                <option value="MONTH" <?php 
        if (@mb_strstr($mod['int_period'], 'MONTH')) {
            echo 'selected="selected"';
        }
        ?>
><?php 
        echo $_LANG['MONTH10'];
        ?>
</option>
              </select>
            </p>
            <p><label><input name="autodelete" type="checkbox" id="autodelete" value="1" <?php 
        if ($mod['autodelete']) {
            echo 'checked="checked"';
        }
        ?>
 /> <?php 
        echo $_LANG['AD_REMOVE_BAN'];
        ?>
</label></p>
            </td>
          </tr>
		  <?php 
        if ($forever) {
            ?>
<script type="text/javascript">$('tr.bantime').hide();</script><?php 
        }
        ?>
        </table>
        <p>
          <label>
          <input name="add_mod" type="submit" id="add_mod" <?php 
        if ($do == 'add') {
            echo 'value="' . $_LANG['AD_TO_BANLIST_ADD'] . '"';
        } else {
            echo 'value="' . $_LANG['SAVE'] . '"';
        }
        ?>
 />
          </label>
          <label><span style="margin-top:15px">
          <input name="back" type="button" id="back" value="<?php 
        echo $_LANG['CANCEL'];
        ?>
" onclick="window.history.back();"/>
          </span></label>
          <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>
	<?php 
    }
}
Example #7
0
function applet_cron()
{
    cmsCore::loadClass('cron');
    global $_LANG;
    global $adminAccess;
    if (!cmsUser::isAdminCan('admin/config', $adminAccess)) {
        cpAccessDenied();
    }
    $GLOBALS['cp_page_title'] = $_LANG['AD_CRON_MISSION'];
    cpAddPathway($_LANG['AD_SITE_SETTING'], 'index.php?view=config');
    cpAddPathway($_LANG['AD_CRON_MISSION'], 'index.php?view=cron');
    $do = cmsCore::request('do', 'str', 'list');
    $id = cmsCore::request('id', 'int', '0');
    if ($do == 'list') {
        $toolmenu = array();
        $toolmenu[0]['icon'] = 'new.gif';
        $toolmenu[0]['title'] = $_LANG['AD_CREATE_CRON_MISSION'];
        $toolmenu[0]['link'] = "?view=cron&do=add";
        cpToolMenu($toolmenu);
        $items = cmsCron::getJobs(false);
        $tpl_file = 'admin/cron.php';
        $tpl_dir = file_exists(TEMPLATE_DIR . $tpl_file) ? TEMPLATE_DIR : DEFAULT_TEMPLATE_DIR;
        include $tpl_dir . $tpl_file;
    }
    if ($do == 'show') {
        if ($id) {
            cmsCron::jobEnabled($id, true);
        }
        echo '1';
        exit;
    }
    if ($do == 'hide') {
        if ($id) {
            cmsCron::jobEnabled($id, false);
        }
        echo '1';
        exit;
    }
    if ($do == 'delete') {
        if ($id) {
            cmsCron::removeJobById($id);
        }
        cmsCore::redirect('index.php?view=cron');
    }
    if ($do == 'execute') {
        if ($id) {
            $job_result = cmsCron::executeJobById($id);
        }
        if ($job_result) {
            cmsCore::addSessionMessage($_LANG['AD_MISSION_SUCCESS'], 'success');
        } else {
            cmsCore::addSessionMessage($_LANG['AD_MISSION_ERROR'], 'error');
        }
        cmsCore::redirect('index.php?view=cron');
    }
    if ($do == 'submit') {
        if (!cmsCore::validateForm()) {
            cmsCore::error404();
        }
        $job_name = cmsCore::request('job_name', 'str');
        $comment = cmsCore::request('comment', 'str');
        $job_interval = cmsCore::request('job_interval', 'int');
        $enabled = cmsCore::request('enabled', 'int');
        $component = cmsCore::request('component', 'str');
        $model_method = cmsCore::request('model_method', 'str');
        $custom_file = cmsCore::request('custom_file', 'str');
        $custom_file = mb_stripos($custom_file, 'image') || mb_stripos($custom_file, 'upload') || mb_stripos($custom_file, 'cache') ? '' : $custom_file;
        $custom_file = preg_replace('/\\.+\\//', '', $custom_file);
        $class_name = cmsCore::request('class_name', 'str');
        $class_method = cmsCore::request('class_method', 'str');
        cmsCron::registerJob($job_name, array('interval' => $job_interval, 'component' => $component, 'model_method' => $model_method, 'comment' => $comment, 'custom_file' => $custom_file, 'enabled' => $enabled, 'class_name' => $class_name, 'class_method' => $class_method));
        cmsCore::redirect('index.php?view=cron');
    }
    if ($do == 'update') {
        if (!cmsCore::validateForm()) {
            cmsCore::error404();
        }
        if (!$id) {
            cmsCore::halt();
        }
        $job_name = cmsCore::request('job_name', 'str');
        $comment = cmsCore::request('comment', 'str');
        $job_interval = cmsCore::request('job_interval', 'int');
        $enabled = cmsCore::request('enabled', 'int');
        $component = cmsCore::request('component', 'str');
        $model_method = cmsCore::request('model_method', 'str');
        $custom_file = cmsCore::request('custom_file', 'str');
        $custom_file = mb_stripos($custom_file, 'image') || mb_stripos($custom_file, 'upload') || mb_stripos($custom_file, 'cache') ? '' : $custom_file;
        $custom_file = preg_replace('/\\.+\\//', '', $custom_file);
        $class_name = cmsCore::request('class_name', 'str');
        $class_method = cmsCore::request('class_method', 'str');
        cmsCron::updateJob($id, array('job_name' => $job_name, 'job_interval' => $job_interval, 'component' => $component, 'model_method' => $model_method, 'comment' => $comment, 'custom_file' => $custom_file, 'is_enabled' => $enabled, 'class_name' => $class_name, 'class_method' => $class_method));
        cmsCore::redirect('index.php?view=cron');
    }
    if ($do == 'edit' || $do == 'add') {
        $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);
        if ($do == 'edit') {
            $mod = cmsCron::getJobById($id);
            echo '<h3>' . $_LANG['AD_EDIT_MISSION'] . '</h3>';
            cpAddPathway($mod['job_name'], 'index.php?view=cron&do=edit&id=' . $mod['id']);
        } else {
            echo '<h3>' . $_LANG['AD_CREATE_CRON_MISSION'] . '</h3>';
            cpAddPathway($_LANG['AD_CREATE_CRON_MISSION'], 'index.php?view=cron&do=add');
        }
        ?>

    <form action="index.php?view=cron" method="post" enctype="multipart/form-data" name="addform" id="addform">
        <input type="hidden" name="csrf_token" value="<?php 
        echo cmsUser::getCsrfToken();
        ?>
" />
        <table width="750" border="0" cellpadding="0" cellspacing="10" class="proptable">
            <tr>
                <td width="300" valign="middle">
                    <strong><?php 
        echo $_LANG['TITLE'];
        ?>
:</strong><br/>
                    <span class="hinttext"><?php 
        echo $_LANG['AD_ONLY_LATIN'];
        ?>
</span>
                </td>
                <td width="" valign="middle">
                    <input name="job_name" type="text" style="width:220px" value="<?php 
        echo @$mod['job_name'];
        ?>
" />
                </td>
            </tr>
            <tr>
                <td width="" valign="middle">
                    <strong><?php 
        echo $_LANG['DESCRIPTION'];
        ?>
: </strong><br/>
                    <span class="hinttext"><?php 
        echo $_LANG['AD_ONLY_200_SIMBOLS'];
        ?>
</span>
                </td>
                <td valign="middle">
                    <input name="comment" type="text" maxlength="200" style="width:400px" value="<?php 
        echo htmlspecialchars($mod['comment']);
        ?>
" />
                </td>
            </tr>
            <tr>
                <td width="" valign="middle">
                    <strong><?php 
        echo $_LANG['AD_MISSION_ON'];
        ?>
 </strong><br/>
                    <span class="hinttext"><?php 
        echo $_LANG['AD_MISSION_OFF'];
        ?>
</span>
                </td>
                <td valign="middle">
                    <label>
                        <input name="enabled" type="radio" value="1" <?php 
        if ($mod['is_enabled']) {
            echo 'checked="checked"';
        }
        ?>
 /> <?php 
        echo $_LANG['YES'];
        ?>
                    </label>
                    <label>
                        <input name="enabled" type="radio" value="0"  <?php 
        if (!$mod['is_enabled']) {
            echo 'checked="checked"';
        }
        ?>
 /> <?php 
        echo $_LANG['NO'];
        ?>
                    </label>
                </td>
            </tr>
            <tr>
                <td width="" valign="middle">
                    <strong><?php 
        echo $_LANG['AD_MISSION_INTERVAL'];
        ?>
:</strong><br/>
                    <span class="hinttext"><?php 
        echo $_LANG['AD_MISSION_PERIOD'];
        ?>
</span>
                </td>
                <td valign="middle">
                    <input name="job_interval" type="text" maxlength="4" style="width:50px" value="<?php 
        echo @$mod['job_interval'];
        ?>
" /> <?php 
        echo $_LANG['HOUR1'] . '.';
        ?>
                </td>
            </tr>
            <tr>
                <td width="" valign="middle">
                    <strong><?php 
        echo $_LANG['AD_PHP_FILE'];
        ?>
 </strong><br/>
                    <span class="hinttext"><?php 
        echo $_LANG['AD_EXAMPLE'];
        ?>
: <strong>includes/myphp/test.php</strong></span><br/>
                </td>
                <td valign="middle">
                    <input name="custom_file" type="text" maxlength="250" style="width:220px" value="<?php 
        echo @$mod['custom_file'];
        ?>
" />
                </td>
            </tr>
            <tr>
                <td width="" valign="middle">
                    <strong><?php 
        echo $_LANG['AD_COMPONENT'];
        ?>
: </strong><br/>
                </td>
                <td valign="middle">
                    <input name="component" type="text" maxlength="250" style="width:220px" value="<?php 
        echo @$mod['component'];
        ?>
" />
                </td>
            </tr>
            <tr>
                <td width="" valign="middle">
                    <strong><?php 
        echo $_LANG['AD_METHOD'];
        ?>
 </strong><br/>
                </td>
                <td valign="middle">
                    <input name="model_method" type="text" maxlength="250" style="width:220px" value="<?php 
        echo @$mod['model_method'];
        ?>
" />
                </td>
            </tr>
            <tr>
                <td width="" valign="middle">
                    <strong><?php 
        echo icms_ucfirst($_LANG['AD_CLASS']);
        ?>
</strong><br/>
                    <span class="hinttext">
                        <span style="color:#666;font-family: mono"><?php 
        echo $_LANG['AD_FILE_CLASS'];
        ?>
</span>, <?php 
        echo $_LANG['AD_EXAMPLE'];
        ?>
 <strong>actions|cmsActions</strong>&nbsp;<?php 
        echo $_LANG['OR'];
        ?>
<br/>
                        <span style="color:#666;font-family: mono"><?php 
        echo $_LANG['AD_CLASS'];
        ?>
</span>, <?php 
        echo $_LANG['AD_EXAMPLE'];
        ?>
 <strong>cmsDatabase</strong>
                    </span>
                </td>
                <td valign="top">
                    <input name="class_name" type="text" maxlength="50" style="width:220px" value="<?php 
        echo @$mod['class_name'];
        ?>
" />
                </td>
            </tr>
            <tr>
                <td width="" valign="middle">
                    <strong><?php 
        echo $_LANG['AD_CLASS_METHOD'];
        ?>
 </strong><br/>
                </td>
                <td valign="middle">
                    <input name="class_method" type="text" maxlength="50" style="width:220px" value="<?php 
        echo @$mod['class_method'];
        ?>
" />
                </td>
            </tr>
        </table>
        <p>
		  <?php 
        if ($do == 'edit') {
            ?>
	          <input name="do" type="hidden" id="do" value="update" />
	          <input name="add_mod" type="submit" id="add_mod" value="<?php 
            echo $_LANG['AD_SAVE_CRON_MISSION'];
            ?>
" />
		  <?php 
        } else {
            ?>
	          <input name="do" type="hidden" id="do" value="submit" />
	          <input name="add_mod" type="submit" id="add_mod" value="<?php 
            echo $_LANG['AD_CREATE_CRON_MISSION'];
            ?>
" />
		  <?php 
        }
        ?>
          <span style="margin-top:15px">
          <input name="back2" type="button" id="back2" value="<?php 
        echo $_LANG['CANCEL'];
        ?>
" onclick="window.history.back();" />
          </span>
        <?php 
        if ($do == 'edit') {
            echo '<input name="id" type="hidden" value="' . $mod['id'] . '" />';
        }
        ?>
        </p>
      </form>
	<?php 
    }
}
Example #8
0
function applet_cats()
{
    $inCore = cmsCore::getInstance();
    $inDB = cmsDatabase::getInstance();
    global $_LANG;
    $GLOBALS['cp_page_title'] = $_LANG['AD_ARTICLES'];
    cpAddPathway($_LANG['AD_ARTICLES'], 'index.php?view=tree');
    cmsCore::loadModel('content');
    $model = new cms_model_content();
    $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 (!cmsCore::validateForm()) {
            cmsCore::error404();
        }
        if (isset($_REQUEST['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'] = $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');
            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['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 (!cmsCore::validateForm()) {
            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['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="15" 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>
                        </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($(this).val()=='<?php 
        echo $mod['id'];
        ?>
'){ $('.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="300" 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=<?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 
    }
}
Example #9
0
function applet_content()
{
    $inCore = cmsCore::getInstance();
    $inUser = cmsUser::getInstance();
    $inDB = cmsDatabase::getInstance();
    global $_LANG;
    //check access
    global $adminAccess;
    if (!cmsUser::isAdminCan('admin/content', $adminAccess)) {
        cpAccessDenied();
    }
    $cfg = $inCore->loadComponentConfig('content');
    cmsCore::loadModel('content');
    $model = new cms_model_content();
    $GLOBALS['cp_page_title'] = $_LANG['AD_ARTICLES'];
    cpAddPathway($_LANG['AD_ARTICLES'], 'index.php?view=tree');
    $do = cmsCore::request('do', 'str', 'add');
    $id = cmsCore::request('id', 'int', -1);
    if ($do == 'arhive_on') {
        $inDB->query("UPDATE cms_content SET is_arhive = 1 WHERE id = '{$id}'");
        cmsCore::addSessionMessage($_LANG['AD_ARTICLES_TO_ARHIVE'], 'success');
        cmsCore::redirectBack();
    }
    if ($do == 'move') {
        $item_id = cmsCore::request('id', 'int', 0);
        $cat_id = cmsCore::request('cat_id', 'int', 0);
        $dir = $_REQUEST['dir'];
        $step = 1;
        $model->moveItem($item_id, $cat_id, $dir, $step);
        echo '1';
        exit;
    }
    if ($do == 'move_to_cat') {
        $items = cmsCore::request('item', 'array_int');
        $to_cat_id = cmsCore::request('obj_id', 'int', 0);
        if ($items && $to_cat_id) {
            $last_ordering = (int) $inDB->get_field('cms_content', "category_id = '{$to_cat_id}' ORDER BY ordering DESC", 'ordering');
            foreach ($items as $item_id) {
                $article = $model->getArticle($item_id);
                if (!$article) {
                    continue;
                }
                $last_ordering++;
                $model->updateArticle($article['id'], array('category_id' => $to_cat_id, 'ordering' => $last_ordering, 'url' => $article['url'], 'title' => $inDB->escape_string($article['title']), 'id' => $article['id'], 'user_id' => $article['user_id']));
            }
            cmsCore::addSessionMessage($_LANG['AD_ARTICLES_TO'], 'success');
        }
        cmsCore::redirect('?view=tree&cat_id=' . $to_cat_id);
    }
    if ($do == 'show') {
        if (!isset($_REQUEST['item'])) {
            if ($id >= 0) {
                dbShow('cms_content', $id);
            }
            echo '1';
            exit;
        } else {
            dbShowList('cms_content', cmsCore::request('item', 'array_int'));
            cmsCore::redirectBack();
        }
    }
    if ($do == 'hide') {
        if (!isset($_REQUEST['item'])) {
            if ($id >= 0) {
                dbHide('cms_content', $id);
            }
            echo '1';
            exit;
        } else {
            dbHideList('cms_content', cmsCore::request('item', 'array_int'));
            cmsCore::redirectBack();
        }
    }
    if ($do == 'delete') {
        if (!isset($_REQUEST['item'])) {
            if ($id >= 0) {
                $model->deleteArticle($id);
                cmsCore::addSessionMessage($_LANG['AD_ARTICLE_REMOVE'], 'success');
            }
        } else {
            $model->deleteArticles(cmsCore::request('item', 'array_int'));
            cmsCore::addSessionMessage($_LANG['AD_ARTICLES_REMOVE'], 'success');
        }
        cmsCore::redirectBack();
    }
    if ($do == 'update') {
        if (!cmsCore::validateForm()) {
            cmsCore::error404();
        }
        if (isset($_REQUEST['id'])) {
            $id = cmsCore::request('id', 'int', 0);
            $article['category_id'] = cmsCore::request('category_id', 'int', 1);
            $article['title'] = cmsCore::request('title', 'str');
            $article['url'] = cmsCore::request('url', 'str');
            $article['showtitle'] = cmsCore::request('showtitle', 'int', 0);
            $article['description'] = cmsCore::request('description', 'html', '');
            $article['description'] = $inDB->escape_string($article['description']);
            $article['content'] = cmsCore::request('content', 'html', '');
            $article['content'] = $inDB->escape_string($article['content']);
            $article['published'] = cmsCore::request('published', 'int', 0);
            $article['showdate'] = cmsCore::request('showdate', 'int', 0);
            $article['showlatest'] = cmsCore::request('showlatest', 'int', 0);
            $article['showpath'] = cmsCore::request('showpath', 'int', 0);
            $article['comments'] = cmsCore::request('comments', 'int', 0);
            $article['canrate'] = cmsCore::request('canrate', 'int', 0);
            $enddate = explode('.', cmsCore::request('enddate', 'str'));
            $article['enddate'] = $enddate[2] . '-' . $enddate[1] . '-' . $enddate[0];
            $article['is_end'] = cmsCore::request('is_end', 'int', 0);
            $article['pagetitle'] = cmsCore::request('pagetitle', 'str', '');
            $article['tags'] = cmsCore::request('tags', 'str');
            $olddate = cmsCore::request('olddate', 'str', '');
            $pubdate = cmsCore::request('pubdate', 'str', '');
            $article['user_id'] = cmsCore::request('user_id', 'int', $inUser->id);
            $article['tpl'] = cmsCore::request('tpl', 'str', 'com_content_read.tpl');
            $date = explode('.', $pubdate);
            $article['pubdate'] = $date[2] . '-' . $date[1] . '-' . $date[0] . ' ' . date('H:i');
            $autokeys = cmsCore::request('autokeys', 'int');
            switch ($autokeys) {
                case 1:
                    $article['meta_keys'] = $inCore->getKeywords($article['content']);
                    $article['meta_desc'] = $article['title'];
                    break;
                case 2:
                    $article['meta_desc'] = strip_tags($article['description']);
                    $article['meta_keys'] = $article['tags'];
                    break;
                case 3:
                    $article['meta_desc'] = cmsCore::request('meta_desc', 'str');
                    $article['meta_keys'] = cmsCore::request('meta_keys', 'str');
                    break;
            }
            $model->updateArticle($id, $article);
            if (!cmsCore::request('is_public', 'int', 0)) {
                $showfor = $_REQUEST['showfor'];
                cmsCore::setAccess($id, $showfor, 'material');
            } else {
                cmsCore::clearAccess($id, 'material');
            }
            $file = 'article' . $id . '.jpg';
            if (cmsCore::request('delete_image', 'int', 0)) {
                @unlink(PATH . "/images/photos/small/{$file}");
                @unlink(PATH . "/images/photos/medium/{$file}");
            } else {
                // Загружаем класс загрузки фото
                cmsCore::loadClass('upload_photo');
                $inUploadPhoto = cmsUploadPhoto::getInstance();
                // Выставляем конфигурационные параметры
                $inUploadPhoto->upload_dir = PATH . '/images/photos/';
                $inUploadPhoto->small_size_w = $model->config['img_small_w'];
                $inUploadPhoto->medium_size_w = $model->config['img_big_w'];
                $inUploadPhoto->thumbsqr = $model->config['img_sqr'];
                $inUploadPhoto->is_watermark = $model->config['watermark'];
                $inUploadPhoto->input_name = 'picture';
                $inUploadPhoto->filename = $file;
                // Процесс загрузки фото
                $inUploadPhoto->uploadPhoto();
            }
            cmsCore::addSessionMessage($_LANG['AD_ARTICLE_SAVE'], 'success');
            if (!isset($_SESSION['editlist']) || @sizeof($_SESSION['editlist']) == 0) {
                cmsCore::redirect('?view=tree&cat_id=' . $article['category_id']);
            } else {
                cmsCore::redirect('?view=content&do=edit');
            }
        }
    }
    if ($do == 'submit') {
        if (!cmsCore::validateForm()) {
            cmsCore::error404();
        }
        $article['category_id'] = cmsCore::request('category_id', 'int', 1);
        $article['title'] = cmsCore::request('title', 'str');
        $article['url'] = cmsCore::request('url', 'str');
        $article['showtitle'] = cmsCore::request('showtitle', 'int', 0);
        $article['description'] = cmsCore::request('description', 'html', '');
        $article['description'] = $inDB->escape_string($article['description']);
        $article['content'] = cmsCore::request('content', 'html', '');
        $article['content'] = $inDB->escape_string($article['content']);
        $article['published'] = cmsCore::request('published', 'int', 0);
        $article['showdate'] = cmsCore::request('showdate', 'int', 0);
        $article['showlatest'] = cmsCore::request('showlatest', 'int', 0);
        $article['showpath'] = cmsCore::request('showpath', 'int', 0);
        $article['comments'] = cmsCore::request('comments', 'int', 0);
        $article['canrate'] = cmsCore::request('canrate', 'int', 0);
        $enddate = explode('.', cmsCore::request('enddate', 'str'));
        $article['enddate'] = $enddate[2] . '-' . $enddate[1] . '-' . $enddate[0];
        $article['is_end'] = cmsCore::request('is_end', 'int', 0);
        $article['pagetitle'] = cmsCore::request('pagetitle', 'str', '');
        $article['tags'] = cmsCore::request('tags', 'str');
        $article['pubdate'] = $_REQUEST['pubdate'];
        $date = explode('.', $article['pubdate']);
        $article['pubdate'] = $date[2] . '-' . $date[1] . '-' . $date[0] . ' ' . date('H:i');
        $article['user_id'] = cmsCore::request('user_id', 'int', $inUser->id);
        $article['tpl'] = cmsCore::request('tpl', 'str', 'com_content_read.tpl');
        $autokeys = cmsCore::request('autokeys', 'int');
        switch ($autokeys) {
            case 1:
                $article['meta_keys'] = $inCore->getKeywords($article['content']);
                $article['meta_desc'] = $article['title'];
                break;
            case 2:
                $article['meta_desc'] = strip_tags($article['description']);
                $article['meta_keys'] = $article['tags'];
                break;
            case 3:
                $article['meta_desc'] = cmsCore::request('meta_desc', 'str');
                $article['meta_keys'] = cmsCore::request('meta_keys', 'str');
                break;
        }
        $article['id'] = $model->addArticle($article);
        if (!cmsCore::request('is_public', 'int', 0)) {
            $showfor = $_REQUEST['showfor'];
            if (sizeof($showfor) > 0 && !cmsCore::request('is_public', 'int', 0)) {
                cmsCore::setAccess($article['id'], $showfor, 'material');
            }
        }
        $inmenu = cmsCore::request('createmenu', 'str', '');
        if ($inmenu) {
            createMenuItem($inmenu, $article['id'], $article['title']);
        }
        // Загружаем класс загрузки фото
        cmsCore::loadClass('upload_photo');
        $inUploadPhoto = cmsUploadPhoto::getInstance();
        // Выставляем конфигурационные параметры
        $inUploadPhoto->upload_dir = PATH . '/images/photos/';
        $inUploadPhoto->small_size_w = $model->config['img_small_w'];
        $inUploadPhoto->medium_size_w = $model->config['img_big_w'];
        $inUploadPhoto->thumbsqr = $model->config['img_sqr'];
        $inUploadPhoto->is_watermark = $model->config['watermark'];
        $inUploadPhoto->input_name = 'picture';
        $inUploadPhoto->filename = 'article' . $article['id'] . '.jpg';
        // Процесс загрузки фото
        $inUploadPhoto->uploadPhoto();
        cmsCore::addSessionMessage($_LANG['AD_ARTICLE_ADD'], 'success');
        cmsCore::redirect('?view=tree&cat_id=' . $article['category_id']);
    }
    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_ARTICLE'] . '</h3>';
            cpAddPathway($_LANG['AD_CREATE_ARTICLE'], 'index.php?view=content&do=add');
            $mod['category_id'] = (int) $_REQUEST['to'];
            $mod['showpath'] = 1;
            $mod['tpl'] = 'com_content_read.tpl';
        } else {
            if (isset($_REQUEST['item'])) {
                $_SESSION['editlist'] = $_REQUEST['item'];
            }
            $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 *, (TO_DAYS(enddate) - TO_DAYS(CURDATE())) as daysleft, DATE_FORMAT(pubdate, '%d.%m.%Y') as pubdate, DATE_FORMAT(enddate, '%d.%m.%Y') as enddate\n\t\t\t\t\t FROM cms_content\n\t\t\t\t\t WHERE id = {$id} LIMIT 1";
            $result = $inDB->query($sql);
            if ($inDB->num_rows($result)) {
                $mod = $inDB->fetch_assoc($result);
            }
            echo '<h3>' . $_LANG['AD_EDIT_ARTICLE'] . $ostatok . '</h3>';
            cpAddPathway($mod['title'], 'index.php?view=content&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="content" />

        <table class="proptable" width="100%" cellpadding="15" cellspacing="2">
            <tr>

                <!-- главная ячейка -->
                <td valign="top">

                    <table width="100%" cellpadding="0" cellspacing="4" border="0">
                        <tr>
                            <td valign="top">
                                <div><strong><?php 
        echo $_LANG['AD_ARTICLE_NAME'];
        ?>
</strong></div>
                                <div>
                                    <table width="100%" cellpadding="0" cellspacing="0" border="0">
                                        <tr>
                                            <td><input name="title" type="text" id="title" style="width:100%" value="<?php 
        echo htmlspecialchars($mod['title']);
        ?>
" /></td>
                                            <td style="width:15px;padding-left:10px;padding-right:10px;">
                                                <input type="checkbox" title="<?php 
        echo $_LANG['AD_VIEW_TITLE'];
        ?>
" name="showtitle" <?php 
        if ($mod['showtitle'] || $do == 'add') {
            echo 'checked="checked"';
        }
        ?>
 value="1">
                                            </td>
                                        </tr>
                                    </table>
                                </div>
                            </td>
                            <td width="130" valign="top">
                                <div><strong><?php 
        echo $_LANG['AD_PUBLIC_DATE'];
        ?>
</strong></div>
                                <div>
                                    <input name="pubdate" type="text" id="pubdate" style="width:100px" <?php 
        if (@(!$mod['pubdate'])) {
            echo 'value="' . date('d.m.Y') . '"';
        } else {
            echo 'value="' . $mod['pubdate'] . '"';
        }
        ?>
/>

                                    <input type="hidden" name="olddate" value="<?php 
        echo @$mod['pubdate'];
        ?>
" />
                                </div>
                            </td>
                            <td width="16" valign="bottom" style="padding-bottom:10px">
                                <input type="checkbox" name="showdate" id="showdate" title="<?php 
        echo $_LANG['AD_VIEW_DATE_AND_AUTHOR'];
        ?>
" value="1" <?php 
        if ($mod['showdate'] || $do == 'add') {
            echo 'checked="checked"';
        }
        ?>
/>
                            </td>
                            <td width="160" valign="top">
                                <div><strong><?php 
        echo $_LANG['AD_ARTICLE_TEMPLATE'];
        ?>
</strong></div>
                                <div><input name="tpl" type="text" style="width:160px" value="<?php 
        echo @$mod['tpl'];
        ?>
"></div>
                            </td>

                        </tr>
                    </table>

                    <div><strong><?php 
        echo $_LANG['AD_ARTICLE_NOTICE'];
        ?>
</strong></div>
                    <div><?php 
        $inCore->insertEditor('description', $mod['description'], '200', '100%');
        ?>
</div>

                    <div><strong><?php 
        echo $_LANG['AD_ARTICLE_TEXT'];
        ?>
</strong></div>
                    <?php 
        insertPanel();
        ?>
                    <div><?php 
        $inCore->insertEditor('content', $mod['content'], '400', '100%');
        ?>
</div>

                    <div><strong><?php 
        echo $_LANG['AD_ARTICLE_TAGS'];
        ?>
</strong></div>
                    <div><input name="tags" type="text" id="tags" style="width:99%" value="<?php 
        if (isset($mod['id'])) {
            echo cmsTagLine('content', $mod['id'], false);
        }
        ?>
" /></div>

                    <table width="100%" cellpadding="0" cellspacing="0" border="0" class="checklist">
                        <tr>
                            <td width="20">
                                <input type="radio" name="autokeys" id="autokeys1" <?php 
        if ($do == 'add' && $cfg['autokeys']) {
            ?>
checked="checked"<?php 
        }
        ?>
 value="1"/>
                            </td>
                            <td>
                                <label for="autokeys1"><strong><?php 
        echo $_LANG['AD_AUTO_GEN_KEY'];
        ?>
</strong></label>
                            </td>
                        </tr>
                        <tr>
                            <td width="20">
                                <input type="radio" name="autokeys" id="autokeys2" value="2"/>
                            </td>
                            <td>
                                <label for="autokeys2"><strong><?php 
        echo $_LANG['AD_TAGS_AS_KEY'];
        ?>
</strong></label>
                            </td>
                        </tr>
                        <tr>
                            <td width="20">
                                <input type="radio" name="autokeys" id="autokeys3" value="3" <?php 
        if ($do == 'edit' || !$cfg['autokeys']) {
            ?>
checked="checked"<?php 
        }
        ?>
/>
                            </td>
                            <td>
                                <label for="autokeys3"><strong><?php 
        echo $_LANG['AD_MANUAL_KEY'];
        ?>
</strong></label>
                            </td>
                        </tr>

                        <?php 
        if ($cfg['af_on'] && $do == 'add') {
            ?>
                        <tr>
                            <td width="20"><input type="checkbox" name="noforum" id="noforum" value="1" /> </td>
                            <td><label for="noforum"><strong><?php 
            echo $_LANG['AD_NO_CREATE_THEME'];
            ?>
</strong></label></td>
                        </tr>
                        <?php 
        }
        ?>
                    </table>

                </td>

                <!-- боковая ячейка -->
                <td width="300" valign="top" 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_ARTICLE'];
        ?>
</strong></label></td>
                        </tr>
                    </table>

                    <div style="margin-top:7px">
                        <select name="category_id" size="10" id="category_id" style="width:99%;height:200px">
                            <option value="1" <?php 
        if (@$mod['category_id'] == 1 || !isset($mod['category_id'])) {
            echo 'selected="selected"';
        }
        ?>
><?php 
        echo $_LANG['AD_ROOT_CATEGORY'];
        ?>
</option>
                            <?php 
        if (isset($mod['category_id'])) {
            echo $inCore->getListItemsNS('cms_category', $mod['category_id']);
        } else {
            echo $inCore->getListItemsNS('cms_category');
        }
        ?>
                        </select>
                    </div>

                    <div style="margin-bottom:10px">
                        <select name="showpath" id="showpath" style="width:99%">
                            <option value="0" <?php 
        if (@(!$mod['showpath'])) {
            echo 'selected="selected"';
        }
        ?>
><?php 
        echo $_LANG['AD_PATHWAY_NAME_ONLY'];
        ?>
</option>
                            <option value="1" <?php 
        if (@$mod['showpath']) {
            echo 'selected="selected"';
        }
        ?>
><?php 
        echo $_LANG['AD_PATHWAY_FULL'];
        ?>
</option>
                        </select>
                    </div>

                    <div style="margin-top:15px">
                        <strong><?php 
        echo $_LANG['AD_ARTICLE_URL'];
        ?>
</strong><br/>
                        <div style="color:gray"><?php 
        echo $_LANG['AD_IF_UNKNOWN'];
        ?>
</div>
                    </div>
                    <div>
                        <table border="0" cellpadding="0" cellspacing="0" width="100%">
                            <tr>
                                <td><input type="text" name="url" value="<?php 
        echo $mod['url'];
        ?>
" style="width:100%"/></td>
                                <td width="40" align="center">.html</td>
                            </tr>
                        </table>
                    </div>

                    <div style="margin-top:10px">
                        <strong><?php 
        echo $_LANG['AD_ARTICLE_AUTHOR'];
        ?>
</strong>
                    </div>
                    <div>
                        <select name="user_id" id="user_id" style="width:99%">
                          <?php 
        if (isset($mod['user_id'])) {
            echo $inCore->getListItems('cms_users', $mod['user_id'], 'nickname', 'ASC', 'is_deleted=0 AND is_locked=0', 'id', 'nickname');
        } else {
            echo $inCore->getListItems('cms_users', $inUser->id, 'nickname', 'ASC', 'is_deleted=0 AND is_locked=0', 'id', 'nickname');
        }
        ?>
                        </select>
                    </div>

                    <div style="margin-top:12px"><strong><?php 
        echo $_LANG['AD_PHOTO'];
        ?>
</strong></div>
                    <div style="margin-bottom:10px">
                        <?php 
        if ($do == 'edit') {
            if (file_exists(PATH . '/images/photos/small/article' . $mod['id'] . '.jpg')) {
                ?>
                        <div style="margin-top:3px;margin-bottom:3px;padding:10px;border:solid 1px gray;text-align:center">
                            <img src="/images/photos/small/article<?php 
                echo $id;
                ?>
.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"><?php 
                echo $_LANG['AD_PHOTO_REMOVE'];
                ?>
</label></td>
                            </tr>
                        </table>
                        <?php 
            }
        }
        ?>
                        <input type="file" name="picture" style="width:100%" />
                    </div>

                    <div style="margin-top:25px"><strong><?php 
        echo $_LANG['AD_PUBLIC_PARAMETRS'];
        ?>
</strong></div>
                    <table width="100%" cellpadding="0" cellspacing="0" border="0" class="checklist">
                        <tr>
                            <td width="20"><input type="checkbox" name="showlatest" id="showlatest" value="1" <?php 
        if ($mod['showlatest'] || $do == 'add') {
            echo 'checked="checked"';
        }
        ?>
/></td>
                            <td><label for="showlatest"><?php 
        echo $_LANG['AD_VIEW_NEW_ARTICLES'];
        ?>
</label></td>
                        </tr>
                        <tr>
                            <td width="20"><input type="checkbox" name="comments" id="comments" value="1" <?php 
        if ($mod['comments'] || $do == 'add') {
            echo 'checked="checked"';
        }
        ?>
/></td>
                            <td><label for="comments"><?php 
        echo $_LANG['AD_ENABLE_COMMENTS'];
        ?>
</label></td>
                        </tr>
                        <tr>
                            <td width="20"><input type="checkbox" name="canrate" id="canrate" value="1" <?php 
        if ($mod['canrate']) {
            echo 'checked="checked"';
        }
        ?>
/></td>
                            <td><label for="canrate"><?php 
        echo $_LANG['AD_ENABLE_RATING'];
        ?>
</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_LINK'];
            ?>
</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_DATE'];
        ?>
}

                    <div style="margin-top:5px">
                        <strong><?php 
        echo $_LANG['AD_ARTICLE_TIME'];
        ?>
</strong>
                    </div>
                    <div>
                        <select name="is_end" id="is_end" style="width:99%" onchange="if($(this).val() == 1){ $('#final_time').show(); }else {$('#final_time').hide();}">
                            <option value="0" <?php 
        if (@(!$mod['is_end'])) {
            echo 'selected="selected"';
        }
        ?>
><?php 
        echo $_LANG['AD_UNLIMITED'];
        ?>
</option>
                            <option value="1" <?php 
        if (@$mod['is_end']) {
            echo 'selected="selected"';
        }
        ?>
><?php 
        echo $_LANG['AD_TO_FINAL_TIME'];
        ?>
</option>
                        </select>
                    </div>

                    <div id="final_time" <?php 
        if (@(!$mod['is_end'])) {
            echo 'style="display: none"';
        }
        ?>
>
                    <div style="margin-top:20px">
                        <strong><?php 
        echo $_LANG['AD_FINAL_TIME'];
        ?>
</strong><br/>
                        <span class="hinttext"><?php 
        echo $_LANG['AD_CALENDAR_FORMAT'];
        ?>
</span>
                    </div>
                    <div><input name="enddate" type="text" style="width:80%" <?php 
        if (@(!$mod['is_end'])) {
            echo 'value="' . date('d.m.Y') . '"';
        } else {
            echo 'value="' . $mod['enddate'] . '"';
        }
        ?>
id="enddate" /></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'];
        ?>
</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="2" 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="4" 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 = 'material'";
            $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_public" 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_CREATE_CONTENT'] . '"';
        } else {
            echo 'value="' . $_LANG['AD_SAVE_CONTENT'] . '"';
        }
        ?>
 />
            <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>
    <?php 
    }
}
Example #10
0
function blog()
{
    $inCore = cmsCore::getInstance();
    $inPage = cmsPage::getInstance();
    $inDB = cmsDatabase::getInstance();
    $inUser = cmsUser::getInstance();
    cmsCore::loadClass('blog');
    $inBlog = cmsBlogs::getInstance();
    $inBlog->owner = 'site';
    global $_LANG;
    cmsCore::loadModel('blog');
    $model = new cms_model_blog();
    define('IS_BILLING', $inCore->isComponentInstalled('billing'));
    if (IS_BILLING) {
        cmsCore::loadClass('billing');
    }
    // Проверяем включени ли компонент
    if (!$model->config['component_enabled']) {
        cmsCore::error404();
    }
    //Получаем параметры
    $id = cmsCore::request('id', 'int', 0);
    $post_id = cmsCore::request('post_id', 'int', 0);
    $seolink = cmsCore::request('seolink', 'str', '');
    $do = cmsCore::request('do', 'str', 'blog');
    $page = cmsCore::request('page', 'int', 1);
    $cat_id = cmsCore::request('cat_id', 'int', 0);
    $ownertype = cmsCore::request('ownertype', 'str', '');
    $on_moderate = cmsCore::request('on_moderate', 'int', 0);
    $pagetitle = $inCore->menuTitle();
    $pagetitle = $pagetitle && $inCore->isMenuIdStrict() ? $pagetitle : $_LANG['RSS_BLOGS'];
    $inPage->addPathway($pagetitle, '/blog');
    $inPage->setTitle($pagetitle);
    $inPage->setDescription($pagetitle);
    $blog_id = 25;
    ////////// НАСТРОЙКИ БЛОГА ////////////////////////////////////////////////////////////////////////////////////////
    if ($do == 'config') {
        if ($_SERVER['HTTP_X_REQUESTED_WITH'] != 'XMLHttpRequest') {
            cmsCore::halt();
        }
        if (!$inUser->id) {
            cmsCore::halt();
        }
        // получаем блог
        $blog = $inBlog->getBlog($id);
        if (!$blog) {
            cmsCore::error404();
        }
        //Проверяем является пользователь хозяином блога или админом
        if ($blog['user_id'] != $inUser->id && !$inUser->is_admin) {
            cmsCore::halt();
        }
        //Если нет запроса на сохранение, показываем форму настроек блога
        if (!cmsCore::inRequest('goadd')) {
            //Получаем список авторов блога
            $authors = $inBlog->getBlogAuthors($blog['id']);
            $smarty = $inCore->initSmarty('components', 'com_blog_config.tpl');
            $smarty->assign('blog', $blog);
            $smarty->assign('form_action', '/blog/' . $blog['id'] . '/editblog.html');
            $smarty->assign('authors_list', cmsUser::getAuthorsList($authors));
            $smarty->assign('users_list', cmsUser::getUsersList(false, $authors));
            $smarty->assign('is_restrictions', !$inUser->is_admin && $model->config['min_karma']);
            $smarty->assign('cfg', $model->config);
            $smarty->display('com_blog_config.tpl');
            cmsCore::jsonOutput(array('error' => false, 'html' => ob_get_clean()));
        }
        //Если пришел запрос на сохранение
        if (cmsCore::inRequest('goadd')) {
            if (!cmsCore::validateForm()) {
                cmsCore::halt();
            }
            //Получаем настройки
            $title = cmsCore::request('title', 'str');
            $allow_who = cmsCore::request('allow_who', 'str', 'all');
            $ownertype = cmsCore::request('ownertype', 'str', 'single');
            $premod = cmsCore::request('premod', 'int', 0);
            $forall = cmsCore::request('forall', 'int', 1);
            $showcats = cmsCore::request('showcats', 'int', 1);
            $authors = cmsCore::request('authorslist', 'array_int', array());
            //Проверяем настройки
            if (mb_strlen($title) < 5) {
                $title = $blog['title'];
            }
            //Проверяем ограничения по карме (для смены типа блога)
            if ($model->config['min_karma'] && !$inUser->is_admin) {
                // если персональный блог
                if ($ownertype == 'single' && $inUser->karma < $model->config['min_karma_private']) {
                    cmsCore::jsonOutput(array('error' => true, 'text' => $_LANG['BLOG_YOU_NEED'] . ' <a href="/users/' . $inUser->id . '/karma.html">' . $_LANG['BLOG_KARMS'] . '</a> ' . $_LANG['FOR_CREATE_PERSON_BLOG'] . ' &mdash; ' . $model->config['min_karma_private'] . ', ' . $_LANG['BLOG_HEAVING'] . ' &mdash; ' . $inUser->karma));
                }
                // если коллективный блог
                if ($ownertype == 'multi' && $inUser->karma < $model->config['min_karma_public']) {
                    cmsCore::jsonOutput(array('error' => true, 'text' => $_LANG['BLOG_YOU_NEED'] . ' <a href="/users/' . $inUser->id . '/karma.html">' . $_LANG['BLOG_KARMS'] . '</a> ' . $_LANG['FOR_CREATE_TEAM_BLOG'] . ' &mdash; ' . $model->config['min_karma_public'] . ', ' . $_LANG['BLOG_HEAVING'] . ' &mdash; ' . $inUser->karma));
                }
            }
            //сохраняем авторов
            $inBlog->updateBlogAuthors($blog['id'], $authors);
            //сохраняем настройки блога
            $blog['seolink_new'] = $inBlog->updateBlog($blog['id'], array('title' => $title, 'allow_who' => $allow_who, 'showcats' => $showcats, 'ownertype' => $ownertype, 'premod' => $premod, 'forall' => $forall), $model->config['update_seo_link_blog']);
            $blog['seolink'] = $blog['seolink_new'] ? $blog['seolink_new'] : $blog['seolink'];
            if (stripslashes($title) != $blog['title']) {
                // обновляем записи постов
                cmsActions::updateLog('add_post', array('target' => $title, 'target_url' => $model->getBlogURL()), 0, $blog['id']);
                // обновляем запись добавления блога
                cmsActions::updateLog('add_blog', array('object' => $title, 'object_url' => $model->getBlogURL()), $blog['id']);
            }
            // Очищаем токен
            cmsUser::clearCsrfToken();
            cmsCore::jsonOutput(array('error' => false, 'redirect' => $model->getBlogURL()));
        }
    }
    ////////// ПРОСМОТР БЛОГА ////////////////////////////////////////////////////////////////////////////////////////
    if ($do == 'blog') {
        // получаем блог
        $blog = $inBlog->getBlog($blog_id);
        if (!$blog) {
            cmsCore::error404();
        }
        // Права доступа
        $myblog = $inUser->id && $inUser->id == $blog['user_id'];
        // автор блога
        $is_writer = $inBlog->isUserBlogWriter($blog, $inUser->id);
        // может ли пользователь писать в блог
        // Заполняем head страницы
        $inPage->setTitle($blog['title']);
        //$inPage->addPathway($blog['title'], $model->getBlogURL($blog['seolink']));
        $inPage->setDescription($blog['title']);
        // rss в адресной строке
        $inPage->addHead('<link rel="alternate" type="application/rss+xml" title="' . htmlspecialchars(strip_tags($blog['title'])) . '" href="' . HOST . '/rss/blogs/' . $blog['id'] . '/feed.rss">');
        if ($myblog || $inUser->is_admin) {
            $inPage->addHeadJS('components/blog/js/blog.js');
        }
        //Если доступа нет, возвращаемся и выводим сообщение об ошибке
        if (!cmsUser::checkUserContentAccess($blog['allow_who'], $blog['user_id'])) {
            cmsCore::addSessionMessage($_LANG['CLOSED_BLOG'] . '<br>' . $_LANG['CLOSED_BLOG_TEXT'], 'error');
            cmsCore::redirect('/');
        }
        // Если показываем посты на модерации, если запрашиваем их
        if ($on_moderate) {
            if (!$inUser->is_admin && !($myblog && $blog['ownertype'] == 'multi' && $blog['premod'])) {
                cmsCore::error404();
            }
            $inBlog->whereNotPublished();
            $inPage->setTitle($_LANG['POSTS_ON_MODERATE']);
            $inPage->addPathway($_LANG['POSTS_ON_MODERATE']);
            $blog['title'] .= ' - ' . $_LANG['POSTS_ON_MODERATE'];
        }
        //Получаем html-код ссылки на автора с иконкой его пола
        $blog['author'] = cmsUser::getGenderLink($blog['user_id']);
        // посты данного блога
        $inBlog->whereBlogIs($blog['id']);
        // кроме админов автора в списке только с доступом для всех
        if (!$inUser->is_admin && !$myblog) {
            $inBlog->whereOnlyPublic();
        }
        // если пришла категория
        if ($cat_id) {
            $all_total = $inBlog->getPostsCount($inUser->is_admin || $myblog);
            $inBlog->whereCatIs($cat_id);
        }
        // всего постов
        $total = $inBlog->getPostsCount($inUser->is_admin || $myblog);
        //устанавливаем сортировку
        $inDB->orderBy('p.pubdate', 'DESC');
        $inDB->limitPage($page, $model->config['perpage']);
        // сами посты
        $posts = $inBlog->getPosts($inUser->is_admin || $myblog, $model);
        if (!$posts && $page > 1) {
            cmsCore::error404();
        }
        //Если нужно, получаем список рубрик (категорий) этого блога
        $blogcats = $blog['showcats'] ? $inBlog->getBlogCats($blog['id']) : false;
        //Считаем количество постов, ожидающих модерации
        $on_moderate = ($inUser->is_admin || $myblog) && !$on_moderate ? $inBlog->getModerationCount($blog['id']) : false;
        // админлинки
        $blog['moderate_link'] = $model->getBlogURL() . '/moderate.html';
        $blog['blog_link'] = $model->getBlogURL();
        $blog['add_post_link'] = '/blog/newpost' . ($cat_id ? $cat_id : '') . '.html';
        //Генерируем панель со страницами
        if ($cat_id) {
            $pagination = cmsPage::getPagebar($total, $page, $model->config['perpage'], $blog['blog_link'] . '/page-%page%/cat-' . $cat_id);
        } else {
            $pagination = cmsPage::getPagebar($total, $page, $model->config['perpage'], $blog['blog_link'] . '/page-%page%');
        }
        $smarty = $inCore->initSmarty('components', 'com_blog_view.tpl');
        $smarty->assign('myblog', $myblog);
        $smarty->assign('is_config', true);
        $smarty->assign('is_admin', $inUser->is_admin);
        $smarty->assign('is_writer', $is_writer);
        $smarty->assign('on_moderate', $on_moderate);
        $smarty->assign('cat_id', $cat_id);
        $smarty->assign('blogcats', $blogcats);
        $smarty->assign('total', $total);
        $smarty->assign('all_total', isset($all_total) ? $all_total : 0);
        $smarty->assign('blog', $blog);
        $smarty->assign('posts', $posts);
        $smarty->assign('pagination', $pagination);
        $smarty->display('com_blog_view.tpl');
    }
    ////////// НОВЫЙ ПОСТ / РЕДАКТИРОВАНИЕ ПОСТА //////////////////////////////////////////////////////////////////
    if ($do == 'newpost' || $do == 'editpost') {
        // для редактирования сначала получаем пост
        if ($do == 'editpost') {
            $post = $inBlog->getPost($post_id);
            if (!$post) {
                cmsCore::error404();
            }
            $id = $post['blog_id'];
            $post['tags'] = cmsTagLine('blogpost', $post['id'], false);
        }
        // получаем блог
        $blog = $inBlog->getBlog($blog_id);
        if (!$blog) {
            cmsCore::error404();
        }
        //Если доступа нет, возвращаемся и выводим сообщение об ошибке
        if (!cmsUser::checkUserContentAccess($blog['allow_who'], $blog['user_id'])) {
            cmsCore::addSessionMessage($_LANG['CLOSED_BLOG'] . '<br>' . $_LANG['CLOSED_BLOG_TEXT'], 'error');
            cmsCore::redirect('/blog');
        }
        // Права доступа
        $myblog = $inUser->id && $inUser->id == $blog['user_id'];
        // автор блога
        $is_writer = $inBlog->isUserBlogWriter($blog, $inUser->id);
        // может ли пользователь писать в блог
        // если не его блог, пользователь не писатель и не админ, вне зависимости от авторства показываем 404
        if (!$myblog && !$is_writer && !$inUser->is_admin) {
            cmsCore::error404();
        }
        // проверяем является ли пользователь автором, если редактируем пост
        if ($do == 'editpost' && !$inUser->is_admin && $post['user_id'] != $inUser->id) {
            cmsCore::error404();
        }
        //Если еще не было запроса на сохранение
        if (!cmsCore::inRequest('goadd')) {
            $inPage->addPathway($blog['title'], $model->getBlogURL());
            //для нового поста
            if ($do == 'newpost') {
                if (IS_BILLING) {
                    cmsBilling::checkBalance('blogs', 'add_post');
                }
                $inPage->addPathway($_LANG['NEW_POST']);
                $inPage->setTitle($_LANG['NEW_POST']);
                $post = cmsUser::sessionGet('mod');
                if ($post) {
                    cmsUser::sessionDel('mod');
                } else {
                    $post['cat_id'] = $cat_id;
                    $post['comments'] = 1;
                }
            }
            //для редактирования поста
            if ($do == 'editpost') {
                $inPage->addPathway($post['title'], $model->getPostURL('', $post['seolink']));
                $inPage->addPathway($_LANG['EDIT_POST']);
                $inPage->setTitle($_LANG['EDIT_POST']);
            }
            $inPage->initAutocomplete();
            $autocomplete_js = $inPage->getAutocompleteJS('tagsearch', 'tags');
            //получаем рубрики блога
            $cat_list = cmsCore::getListItems('cms_blog_cats', $post['cat_id'], 'id', 'ASC', "blog_id = '{$blog['id']}'");
            //получаем код панелей bbcode и смайлов
            $bb_toolbar = cmsPage::getBBCodeToolbar('message', $model->config['img_on'], 'blogs', 'post', $post_id);
            $smilies = cmsPage::getSmilesPanel('message');
            $inCore->initAutoGrowText('#message');
            //показываем форму
            $smarty = $inCore->initSmarty('components', 'com_blog_edit_post.tpl');
            $smarty->assign('blog', $blog);
            $smarty->assign('pagetitle', $do == 'editpost' ? $_LANG['EDIT_POST'] : $_LANG['NEW_POST']);
            $smarty->assign('mod', $post);
            $smarty->assign('cat_list', $cat_list);
            $smarty->assign('bb_toolbar', $bb_toolbar);
            $smarty->assign('smilies', $smilies);
            $smarty->assign('is_admin', $inUser->is_admin);
            $smarty->assign('myblog', $myblog);
            $smarty->assign('user_can_iscomments', cmsUser::isUserCan('comments/iscomments'));
            $smarty->assign('autocomplete_js', $autocomplete_js);
            $smarty->display('com_blog_edit_post.tpl');
        }
        //Если есть запрос на сохранение
        if (cmsCore::inRequest('goadd')) {
            $error = false;
            //Получаем параметры
            $mod['title'] = cmsCore::request('title', 'str');
            $mod['content'] = cmsCore::request('content', 'html');
            $mod['feel'] = cmsCore::request('feel', 'str', '');
            $mod['music'] = cmsCore::request('music', 'str', '');
            $mod['cat_id'] = cmsCore::request('cat_id', 'int');
            $mod['allow_who'] = cmsCore::request('allow_who', 'str', $blog['allow_who']);
            $mod['tags'] = cmsCore::request('tags', 'str', '');
            $mod['comments'] = cmsCore::request('comments', 'int', 1);
            $mod['published'] = $myblog || !$blog['premod'] ? 1 : 0;
            $mod['blog_id'] = $blog['id'];
            //Проверяем их
            if (mb_strlen($mod['title']) < 2) {
                cmsCore::addSessionMessage($_LANG['POST_ERR_TITLE'], 'error');
                $errors = true;
            }
            if (mb_strlen($mod['content']) < 5) {
                cmsCore::addSessionMessage($_LANG['POST_ERR_TEXT'], 'error');
                $errors = true;
            }
            // Если есть ошибки, возвращаемся назад
            if ($errors) {
                cmsUser::sessionPut('mod', $mod);
                cmsCore::redirectBack();
            }
            //Если нет ошибок
            //добавляем новый пост...
            if ($do == 'newpost') {
                if (IS_BILLING) {
                    cmsBilling::process('blogs', 'add_post');
                }
                $mod['pubdate'] = date('Y-m-d H:i:s');
                $mod['user_id'] = $inUser->id;
                // добавляем пост, получая его id и seolink
                $added = $inBlog->addPost($mod);
                if ($mod['published']) {
                    if ($blog['allow_who'] != 'nobody' && $mod['allow_who'] != 'nobody') {
                        cmsActions::log('add_post', array('object' => $mod['title'], 'object_url' => $model->getPostURL('', $added['seolink']), 'object_id' => $added['id'], 'target' => $blog['title'], 'target_url' => $model->getBlogURL(), 'target_id' => $blog['id'], 'description' => '', 'is_friends_only' => (int) ($blog['allow_who'] == 'friends' || $mod['allow_who'] == 'friends')));
                    }
                    cmsCore::addSessionMessage($_LANG['POST_CREATED'], 'success');
                    cmsCore::redirect($model->getPostURL('', $added['seolink']));
                }
                if (!$mod['published']) {
                    $message = str_replace('%user%', cmsUser::getProfileLink($inUser->login, $inUser->nickname), $_LANG['MSG_POST_SUBMIT']);
                    $message = str_replace('%post%', '<a href="' . $model->getPostURL('', $added['seolink']) . '">' . $mod['title'] . '</a>', $message);
                    $message = str_replace('%blog%', '<a href="' . $model->getBlogURL() . '">' . $blog['title'] . '</a>', $message);
                    cmsUser::sendMessage(USER_UPDATER, $blog['user_id'], $message);
                    cmsCore::addSessionMessage($_LANG['POST_PREMODER_TEXT'], 'info');
                    cmsCore::redirect($model->getBlogURL());
                }
            }
            //...или сохраняем пост после редактирования
            if ($do == 'editpost') {
                if ($model->config['update_date']) {
                    $mod['pubdate'] = date('Y-m-d H:i:s');
                }
                $mod['edit_times'] = (int) $post['edit_times'] + 1;
                $new_post_seolink = $inBlog->updatePost($post['id'], $mod, $model->config['update_seo_link']);
                $post['seolink'] = is_string($new_post_seolink) ? $new_post_seolink : $post['seolink'];
                cmsActions::updateLog('add_post', array('object' => $mod['title'], 'pubdate' => $model->config['update_date'] ? $mod['pubdate'] : $post['pubdate'], 'object_url' => $model->getPostURL('', $post['seolink'])), $post['id']);
                if (!$mod['published']) {
                    $message = str_replace('%user%', cmsUser::getProfileLink($inUser->login, $inUser->nickname), $_LANG['MSG_POST_UPDATE']);
                    $message = str_replace('%post%', '<a href="' . $model->getPostURL('', $post['seolink']) . '">' . $mod['title'] . '</a>', $message);
                    $message = str_replace('%blog%', '<a href="' . $model->getBlogURL() . '">' . $blog['title'] . '</a>', $message);
                    cmsUser::sendMessage(USER_UPDATER, $blog['user_id'], $message);
                    cmsCore::addSessionMessage($_LANG['POST_PREMODER_TEXT'], 'info');
                } else {
                    cmsCore::addSessionMessage($_LANG['POST_UPDATED'], 'success');
                }
                cmsCore::redirect($model->getPostURL('', $post['seolink']));
            }
        }
    }
    ////////// НОВАЯ РУБРИКА / РЕДАКТИРОВАНИЕ РУБРИКИ //////////////////////////////////////////////////////
    if ($do == 'newcat' || $do == 'editcat') {
        if ($_SERVER['HTTP_X_REQUESTED_WITH'] != 'XMLHttpRequest') {
            cmsCore::halt();
        }
        if (!$inUser->id) {
            cmsCore::halt();
        }
        // Для редактирования сначала получаем рубрику
        if ($do == 'editcat') {
            $cat = $inBlog->getBlogCategory($cat_id);
            if (!$cat) {
                cmsCore::halt();
            }
            $id = $cat['blog_id'];
        }
        // получаем блог
        $blog = $inBlog->getBlog($id);
        if (!$blog) {
            cmsCore::halt();
        }
        //Проверяем является пользователь хозяином блога или админом
        if ($blog['user_id'] != $inUser->id && !$inUser->is_admin) {
            cmsCore::halt();
        }
        //Если нет запроса на сохранение
        if (!cmsCore::inRequest('goadd')) {
            $smarty = $inCore->initSmarty('components', 'com_blog_edit_cat.tpl');
            $smarty->assign('mod', $cat);
            $smarty->assign('form_action', $do == 'newcat' ? '/blog/' . $blog['id'] . '/newcat.html' : '/blog/editcat' . $cat['id'] . '.html');
            $smarty->display('com_blog_edit_cat.tpl');
            cmsCore::jsonOutput(array('error' => false, 'html' => ob_get_clean()));
        }
        //Если есть запрос на сохранение
        if (cmsCore::inRequest('goadd')) {
            if (!cmsCore::validateForm()) {
                cmsCore::halt();
            }
            $new_cat['title'] = cmsCore::request('title', 'str', '');
            $new_cat['description'] = cmsCore::request('description', 'str', '');
            $new_cat['blog_id'] = $blog['id'];
            if (mb_strlen($new_cat['title']) < 3) {
                cmsCore::jsonOutput(array('error' => true, 'text' => $_LANG['CAT_ERR_TITLE']));
            }
            //новая рубрика
            if ($do == 'newcat') {
                $cat['id'] = $inBlog->addBlogCategory($new_cat);
                cmsCore::addSessionMessage($_LANG['CAT_IS_ADDED'], 'success');
            }
            //редактирование рубрики
            if ($do == 'editcat') {
                $inBlog->updateBlogCategory($cat['id'], $new_cat);
                cmsCore::addSessionMessage($_LANG['CAT_IS_UPDATED'], 'success');
            }
            cmsUser::clearCsrfToken();
            cmsCore::jsonOutput(array('error' => false, 'redirect' => $model->getBlogURL(1, $cat['id'])));
        }
    }
    ///////////////////////// УДАЛЕНИЕ РУБРИКИ /////////////////////////////////////////////////////////////////////////
    if ($do == 'delcat') {
        if ($_SERVER['HTTP_X_REQUESTED_WITH'] != 'XMLHttpRequest') {
            cmsCore::halt();
        }
        if (!$inUser->id) {
            cmsCore::halt();
        }
        $cat = $inBlog->getBlogCategory($cat_id);
        if (!$cat) {
            cmsCore::halt();
        }
        $blog = $inBlog->getBlog($cat['blog_id']);
        if (!$blog) {
            cmsCore::halt();
        }
        if ($blog['user_id'] != $inUser->id && !$inUser->is_admin) {
            cmsCore::halt();
        }
        if (!cmsCore::validateForm()) {
            cmsCore::halt();
        }
        $inBlog->deleteBlogCategory($cat['id']);
        cmsCore::addSessionMessage($_LANG['CAT_IS_DELETED'], 'success');
        cmsUser::clearCsrfToken();
        cmsCore::jsonOutput(array('error' => false, 'redirect' => $model->getBlogURL()));
    }
    ////////////////////////// ПРОСМОТР ПОСТА /////////////////////////////////////////////////////////////////////////
    if ($do == 'post') {
        $post = $inBlog->getPost($seolink);
        if (!$post) {
            cmsCore::error404();
        }
        $blog = $inBlog->getBlog($post['blog_id']);
        if (!$blog) {
            cmsCore::error404();
        }
        // право просмотра блога
        if (!cmsUser::checkUserContentAccess($blog['allow_who'], $blog['user_id'])) {
            cmsCore::addSessionMessage($_LANG['CLOSED_BLOG'] . '<br>' . $_LANG['CLOSED_BLOG_TEXT'], 'error');
            cmsCore::redirect('/blog');
        }
        // право просмотра самого поста
        if (!cmsUser::checkUserContentAccess($post['allow_who'], $post['user_id'])) {
            cmsCore::addSessionMessage($_LANG['CLOSED_POST'] . '<br>' . $_LANG['CLOSED_POST_TEXT'], 'error');
            cmsCore::redirect($model->getBlogURL());
        }
        if ($inUser->id) {
            $inPage->addHeadJS('components/blog/js/blog.js');
        }
        $inPage->addPathway($blog['title'], $model->getBlogURL());
        $inPage->setTitle($post['title']);
        $inPage->addPathway($post['title']);
        $inPage->setDescription($post['title']);
        if ($post['cat_id']) {
            $cat = $inBlog->getBlogCategory($post['cat_id']);
        }
        $post['tags'] = cmsTagBar('blogpost', $post['id']);
        $is_author = $inUser->id && $inUser->id == $post['user_id'];
        $smarty = $inCore->initSmarty('components', 'com_blog_view_post.tpl');
        $smarty->assign('post', $post);
        $smarty->assign('blog', $blog);
        $smarty->assign('cat', $cat);
        $smarty->assign('is_author', $is_author);
        $smarty->assign('myblog', $inUser->id && $inUser->id == $blog['user_id']);
        $smarty->assign('is_admin', $inUser->is_admin);
        $smarty->assign('karma_form', cmsKarmaForm('blogpost', $post['id'], $post['rating'], $is_author));
        $smarty->assign('navigation', $inBlog->getPostNavigation($post['id'], $blog['id'], $model, $blog['seolink']));
        $smarty->display('com_blog_view_post.tpl');
        if ($inCore->isComponentInstalled('comments') && $post['comments']) {
            cmsCore::includeComments();
            comments('blog', $post['id']);
        }
    }
    ///////////////////////// УДАЛЕНИЕ ПОСТА /////////////////////////////////////////////////////////////////////////////
    if ($do == 'delpost') {
        if ($_SERVER['HTTP_X_REQUESTED_WITH'] != 'XMLHttpRequest') {
            cmsCore::halt();
        }
        if (!$inUser->id) {
            cmsCore::halt();
        }
        $post = $inBlog->getPost($post_id);
        if (!$post) {
            cmsCore::halt();
        }
        $blog = $inBlog->getBlog($post['blog_id']);
        if (!$blog) {
            cmsCore::halt();
        }
        // удалять могут авторы, авторы блога, админы
        if ($blog['user_id'] != $inUser->id && !$inUser->is_admin && $inUser->id != $post['user_id']) {
            cmsCore::halt();
        }
        if (!cmsCore::validateForm()) {
            cmsCore::halt();
        }
        $inBlog->deletePost($post['id']);
        if ($inUser->id != $post['user_id']) {
            cmsUser::sendMessage(USER_UPDATER, $post['user_id'], $_LANG['YOUR_POST'] . ' <b>&laquo;' . $post['title'] . '&raquo;</b> ' . $_LANG['WAS_DELETED_FROM_BLOG'] . ' <b>&laquo;<a href="' . $model->getBlogURL() . '">' . $blog['title'] . '</a>&raquo;</b>');
        }
        cmsCore::addSessionMessage($_LANG['POST_IS_DELETED'], 'success');
        cmsUser::clearCsrfToken();
        cmsCore::jsonOutput(array('error' => false, 'redirect' => $model->getBlogURL()));
    }
    ///////////////////////// ПУБЛИКАЦИЯ ПОСТА /////////////////////////////////////////////////////////////////////////
    if ($do == 'publishpost') {
        if ($_SERVER['HTTP_X_REQUESTED_WITH'] != 'XMLHttpRequest') {
            cmsCore::halt();
        }
        if (!$inUser->id) {
            cmsCore::halt();
        }
        $post = $inBlog->getPost($post_id);
        if (!$post) {
            cmsCore::halt();
        }
        $blog = $inBlog->getBlog($post['blog_id']);
        if (!$blog) {
            cmsCore::halt();
        }
        // публикуют авторы блога и админы
        if ($blog['user_id'] != $inUser->id && !$inUser->is_admin) {
            cmsCore::halt();
        }
        $inBlog->publishPost($post_id);
        if ($blog['allow_who'] == 'all' && $post['allow_who'] == 'all') {
            cmsCore::callEvent('ADD_POST_DONE', $post);
        }
        $post['seolink'] = $model->getPostURL('', $post['seolink']);
        if ($blog['allow_who'] != 'nobody' && $post['allow_who'] != 'nobody') {
            cmsActions::log('add_post', array('object' => $post['title'], 'user_id' => $post['user_id'], 'object_url' => $post['seolink'], 'object_id' => $post['id'], 'target' => $blog['title'], 'target_url' => $model->getBlogURL(), 'target_id' => $blog['id'], 'description' => '', 'is_friends_only' => (int) ($blog['allow_who'] == 'friends' || $post['allow_who'] == 'friends')));
        }
        cmsUser::sendMessage(USER_UPDATER, $post['user_id'], $_LANG['YOUR_POST'] . ' <b>&laquo;<a href="' . $post['seolink'] . '">' . $post['title'] . '</a>&raquo;</b> ' . $_LANG['PUBLISHED_IN_BLOG'] . ' <b>&laquo;<a href="' . $model->getBlogURL() . '">' . $blog['title'] . '</a>&raquo;</b>');
        cmsCore::halt('ok');
    }
    ////////// VIEW POPULAR POSTS ////////////////////////////////////////////////////////////////////////////////////////
    if ($do == 'best') {
        $inPage->setTitle($_LANG['POPULAR_IN_BLOGS']);
        $inPage->addPathway($_LANG['POPULAR_IN_BLOGS']);
        $inPage->setDescription($_LANG['POPULAR_IN_BLOGS']);
        // кроме админов в списке только с доступом для всех
        if (!$inUser->is_admin) {
            $inBlog->whereOnlyPublic();
        }
        // ограничиваем по рейтингу если надо
        if ($model->config['list_min_rating']) {
            $inBlog->ratingGreaterThan($model->config['list_min_rating']);
        }
        // всего постов
        $total = $inBlog->getPostsCount($inUser->is_admin);
        //устанавливаем сортировку
        $inDB->orderBy('p.rating', 'DESC');
        $inDB->limitPage($page, $model->config['perpage']);
        // сами посты
        $posts = $inBlog->getPosts($inUser->is_admin, $model);
        if (!$posts && $page > 1) {
            cmsCore::error404();
        }
        $smarty = $inCore->initSmarty('components', 'com_blog_view_posts.tpl');
        $smarty->assign('pagetitle', $_LANG['POPULAR_IN_BLOGS']);
        $smarty->assign('total', $total);
        $smarty->assign('ownertype', $ownertype);
        $smarty->assign('posts', $posts);
        $smarty->assign('pagination', cmsPage::getPagebar($total, $page, $model->config['perpage'], '/blogs/popular-%page%.html'));
        $smarty->assign('cfg', $model->config);
        $smarty->display('com_blog_view_posts.tpl');
    }
    ///////////////////////////////////////////////////////////////////////////////////////////////////////////////
    $inCore->executePluginRoute($do);
}