function search_blogs($query, $look) { $inDB = cmsDatabase::getInstance(); $searchModel = cms_model_search::initModel(); global $_LANG; $sql = "SELECT con.*, cat.title cat_title, cat.id cat_id, cat.owner owner, cat.user_id user_id, cat.seolink as bloglink\n\t\t\tFROM cms_blog_posts con\n\t\t\tINNER JOIN cms_blogs cat ON cat.id = con.blog_id AND cat.allow_who = 'all' AND cat.owner = 'user'\n\t\t\tWHERE MATCH(con.title, con.content) AGAINST ('{$query}' IN BOOLEAN MODE) AND con.published = 1 LIMIT 100"; $result = $inDB->query($sql); if ($inDB->num_rows($result)) { cmsCore::loadLanguage('components/blogs'); cmsCore::loadModel('blogs'); $model = new cms_model_blogs(); while ($item = $inDB->fetch_assoc($result)) { $result_array = array(); $result_array['link'] = $model->getPostURL($item['bloglink'], $item['seolink']); $result_array['place'] = $_LANG['BLOG'] . ' «' . $item['cat_title'] . '»'; $result_array['placelink'] = $model->getBlogURL($item['bloglink']); $result_array['description'] = $searchModel->getProposalWithSearchWord($item['content_html']); $result_array['title'] = $item['title']; $result_array['pubdate'] = $item['pubdate']; $result_array['session_id'] = session_id(); $searchModel->addResult($result_array); } } return; }
function search_content($query, $look) { global $_LANG; $sql = "SELECT con.*, cat.title cat_title, cat.id cat_id, cat.seolink as cat_seolink, cat.parent_id as cat_parent_id FROM cms_content con INNER JOIN cms_category cat ON cat.id = con.category_id AND cat.published = 1 WHERE MATCH(con.title, con.content) AGAINST ('". $query ."' IN BOOLEAN MODE) AND con.is_end = 0 AND con.published = 1 LIMIT 100"; $result = cmsCore::c('db')->query($sql); if (cmsCore::c('db')->num_rows($result)) { cmsCore::loadLanguage('components/content'); while ($item = cmsCore::c('db')->fetch_assoc($result)) { $result_array = array( 'link' => '/'. $item['seolink'] .'.html', 'place' => $_LANG['CATALOG_ARTICLES'], 'placelink' => '/'. ($item['cat_parent_id']>0 ? $item['cat_seolink'] : $item['seolink'] .'.html'), 'description' => cmsCore::m('search')->getProposalWithSearchWord($item['content']), 'title' => $item['title'], 'imageurl' => (file_exists(PATH .'/images/content/medium/'. ceil($item['id']/100) .'/article'. $item['id' ] .'.jpg') ? '/images/content/medium/'. ceil($item['id']/100) .'/article'. $item['id' ] .'.jpg' : ''), 'pubdate' => $item['pubdate'] ); cmsCore::m('search')->addResult($result_array); } } return; }
private function __construct() { $this->inDB = cmsDatabase::getInstance(); cmsCore::loadLanguage('components/blogs'); cmsCore::loadLib('tags'); cmsCore::loadLib('karma'); }
function __construct(){ $this->inDB = cmsDatabase::getInstance(); $this->inCore = cmsCore::getInstance(); $this->config = $this->inCore->loadComponentConfig('users'); cmsCore::loadLanguage('components/users'); cmsCore::loadClass('form'); }
private function parseParams() { global $_LANG; // подключим LANG файл cmsCore::loadLanguage('admin/' . (string) $this->xml->info->type . 's/' . (string) $this->xml->info->id); $pref = mb_strtoupper(substr($this->xml->info->type, 0, 3)); foreach ($this->xml->params->param as $p) { $param = array(); // заполняем атрибутами массив и приводим к строке значения foreach ($p->attributes() as $key => $value) { $param[$key] = (string) $value; } if ($param['name'] == 'tpl') { continue; } // Если есть элементы списка if (isset($p->option)) { foreach ($p->option as $o) { $opt = array(); foreach ($o->attributes() as $k => $v) { $opt[$k] = (string) $v; } $tolk = $pref . '_' . mb_strtoupper($param['name'] . '_OPT' . ($opt['value'] ? '_' . $opt['value'] : '')); $opt['title'] = isset($_LANG[$tolk]) ? $_LANG[$tolk] : (isset($opt['title']) ? $opt['title'] : ''); if (!$opt['title']) { $opt['title'] = $opt['value']; } $param['tag_option'][] = $opt; } } // Возможные lang ключи для параметров // если ключ для поля есть, то возвращается его значение // $param['name'] считается уникальным для каждого параметра xml // на его основе и строим ключи // если таких элеменов в массиве $_LANG нет, предполагаем, что соответствующие элементы // title, hint и units заданы в xml и используем их $ulk = $pref . '_' . mb_strtoupper($param['name']) . '_UNITS'; $tlk = $pref . '_' . mb_strtoupper($param['name']); $hlk = $pref . '_' . mb_strtoupper($param['name']) . '_HINT'; $param['title'] = isset($_LANG[$tlk]) ? $_LANG[$tlk] : $param['title']; if (!$param['title']) { $param['title'] = $param['name']; } $param['hint'] = isset($_LANG[$hlk]) ? $_LANG[$hlk] : (isset($param['hint']) ? $param['hint'] : ''); $param['units'] = isset($_LANG[$ulk]) ? $_LANG[$ulk] : (isset($param['units']) ? $param['units'] : ''); //получаем значение параметра $value = $this->getParamValue($param['name'], isset($param['default']) ? $param['default'] : ''); //если это массив, склеиваем в строку if (is_array($value)) { $value = implode('|', $value); } $param['value'] = $value; $param['html'] = $this->getParamHTML($param); $this->params[] = $param; } $param = array('type' => 'string', 'title' => $_LANG['AD_MODULE_TEMPLATE'], 'name' => 'tpl', 'value' => $this->getParamValue('tpl', '')); $param['html'] = $this->getParamHTML($param); $this->params[] = $param; return; }
public function __construct() { $this->inDB = cmsDatabase::getInstance(); $this->config = cmsCore::getInstance()->loadComponentConfig('clubs'); cmsCore::loadLanguage('components/clubs'); cmsCore::loadLib('karma'); }
public function __construct($labels = array()) { $this->inDB = cmsDatabase::getInstance(); $this->config = cmsCore::getInstance()->loadComponentConfig('comments'); cmsCore::loadLanguage('components/comments'); $this->labels = array_merge(self::getDefaultLabels(), $labels); }
function search_photos($query, $look) { $sql = "SELECT f.*, a.title as cat, a.id as cat_id FROM cms_photo_files f INNER JOIN cms_photo_albums a ON a.id = f.album_id AND a.published = 1 AND a.NSDiffer = '' WHERE MATCH(f.title, f.description) AGAINST ('". $query ."' IN BOOLEAN MODE) AND f.published = 1"; $result = cmsCore::c('db')->query($sql); if (cmsCore::c('db')->num_rows($result)) { global $_LANG; cmsCore::loadLanguage('components/photos'); while ($item = cmsCore::c('db')->fetch_assoc($result)) { $result_array = array( 'link' => '/photos/photo'. $item['id'] .'.html', 'place' => $_LANG['PHOTOALBUM'] .' «'. $item['cat'] .'»', 'placelink' => '/photos/'. $item['cat_id'], 'description' => cmsCore::m('search')->getProposalWithSearchWord($item['description']), 'title' => $item['title'], 'imageurl' => (file_exists(PATH .'/images/photos/medium/'. $item['file']) ? '/images/photos/medium/'. $item['file'] : ''), 'pubdate' => $item['pubdate'] ); cmsCore::m('search')->addResult($result_array); } } return; }
function search_faq($query, $look) { global $_LANG; $sql = "SELECT con.*, cat.title cat_title, cat.id cat_id FROM cms_faq_quests con INNER JOIN cms_faq_cats cat ON cat.id = con.category_id AND cat.published = 1 WHERE MATCH(con.quest, con.answer) AGAINST ('". $query ."' IN BOOLEAN MODE) AND con.published = 1 LIMIT 100"; $result = cmsCore::c('db')->query($sql); if (cmsCore::c('db')->num_rows($result)) { cmsCore::loadLanguage('components/faq'); while($item = cmsCore::c('db')->fetch_assoc($result)) { $result_array = array( 'link' => '/faq/quest'. $item['id'] .'.html', 'place' => $_LANG['FAQ'] .' → '. $item['cat_title'], 'placelink' => '/faq/'. $item['cat_id'], 'description' => cmsCore::m('search')->getProposalWithSearchWord($item['answer']), 'title' => mb_substr($item['quest'], 0, 70) .'...', 'pubdate' => $item['pubdate'] ); cmsCore::m('search')->addResult($result_array); } } return; }
function mod_search($module_id, $cfg) { cmsCore::loadModel('search'); cmsCore::loadLanguage('components/search'); $model = cms_model_search::initModel(); cmsPage::initTemplate('modules', $cfg['tpl'])->assign('enable_components', $model->getEnableComponentsWithSupportSearch())->display($cfg['tpl']); return true; }
public function __construct(){ $this->config = cmsCore::getInstance()->loadComponentConfig('arhive'); cmsCore::loadLanguage('components/arhive'); $this->year = cmsCore::request('y', 'int', 'all'); $this->month = sprintf("%02d", cmsCore::request('m', 'int', 'all')); $this->day = sprintf("%02d", cmsCore::request('d', 'int', 'all')); $this->setSqlParams(); }
function mod_usersearch($mod, $cfg) { cmsCore::loadLanguage('components/users'); cmsPage::initTemplate('modules', $cfg['tpl'])-> assign('cfg', $cfg)-> display(); return true; }
private function __construct($form_id, $values = array(), $is_admin = false) { $this->form_id = cmsDatabase::getInstance()->escape_string($form_id); $this->values = $values; $this->is_admin = $is_admin; cmsCore::loadLanguage('components/forms'); $this->loadFormData(); $this->form_fields = $this->getFormFields($this->form_id); }
function sphinx_add_result_forum($items) { $inCore = cmsCore::getInstance(); global $_LANG; cmsCore::loadLanguage('components/forum'); $config = $inCore->loadComponentConfig('forum'); $search_model = cms_model_search::initModel(); foreach ($items as $id => $item) { if (!cmsCore::checkContentAccess($item['attrs']['access_list'])) { continue; } $pages = ceil($item['attrs']['post_count'] / $config['pp_thread']); $result_array = array( 'link' => '/forum/thread'. $id .'-'. $pages .'.html', 'place' => $item['attrs']['forum'], 'placelink' => '/forum/'. $item['attrs']['forum_id'], 'description' => $search_model->getProposalWithSearchWord($item['attrs']['description']), 'title' => $item['attrs']['title'], 'pubdate' => date('Y-m-d H:i:s', $item['attrs']['pubdate']) ); $search_model->addResult($result_array); } // Ищем в тексте постов $cl = new SphinxClient(); $cl->SetServer('127.0.0.1', 9312); $cl->SetMatchMode(SPH_MATCH_EXTENDED2); $cl->SetLimits(0, 100); $result = $cl->Query($search_model->against, $search_model->config['Sphinx_Search']['prefix'] .'_forum_posts'); if ($result !== false) { foreach ($result['matches'] as $id => $item) { $pages = ceil($item['attrs']['post_count'] / $config['pp_thread']); $post_page = ($pages > 1) ? postPage::getPage($item['attrs']['thread_id'], $id, $config['pp_thread']) : 1; $result_array = array( 'link' => '/forum/thread'. $item['attrs']['thread_id'] .'-'. $post_page .'.html#'. $id, 'place' => $_LANG['FORUM_POST'], 'placelink' => '/forum/thread'. $item['attrs']['thread_id'] .'-'. $post_page .'.html#'. $id, 'description' => $search_model->getProposalWithSearchWord($item['attrs']['content_html']), 'title' => $item['attrs']['thread'], 'imageurl' => $item['attrs']['fileurl'], 'pubdate' => date('Y-m-d H:i:s', $item['attrs']['pubdate']) ); $search_model->addResult($result_array); } } return; }
function mod_user_stats($module_id, $cfg) { $inDB = cmsDatabase::getInstance(); cmsCore::loadLanguage('components/users'); global $_LANG; if (!isset($cfg['show_total'])) { $cfg['show_total'] = 1; } if (!isset($cfg['show_online'])) { $cfg['show_online'] = 1; } if (!isset($cfg['show_gender'])) { $cfg['show_gender'] = 1; } if (!isset($cfg['show_city'])) { $cfg['show_city'] = 1; } $total_usr = cmsUser::getCountAllUsers(); if ($cfg['show_gender']) { $gender_stats = array(); //male $gender_stats['male'] = $inDB->rows_count('cms_users u INNER JOIN cms_user_profiles p ON p.user_id = u.id', "u.is_locked = 0 AND u.is_deleted = 0 AND p.gender = 'm'"); //female $gender_stats['female'] = $inDB->rows_count('cms_users u INNER JOIN cms_user_profiles p ON p.user_id = u.id', "u.is_locked = 0 AND u.is_deleted = 0 AND p.gender = 'f'"); //unknown $gender_stats['unknown'] = $total_usr - $gender_stats['male'] - $gender_stats['female']; } if ($cfg['show_city']) { $sql = "SELECT IF (p.city != '', p.city, '{$_LANG['NOT_DECIDE']}') city, COUNT( p.user_id ) count\n FROM cms_users u\n LEFT JOIN cms_user_profiles p ON p.user_id = u.id\n WHERE u.is_locked =0 AND u.is_deleted =0\n GROUP BY p.city"; $rs = $inDB->query($sql); $city_stats = array(); if ($inDB->num_rows($rs)) { while ($row = $inDB->fetch_assoc($rs)) { if ($row['city'] != $_LANG['NOT_DECIDE']) { $row['href'] = '/users/city/' . urlencode($row['city']); } else { $row['href'] = ''; } $row['city'] = icms_ucfirst(mb_strtolower($row['city'])); $city_stats[] = $row; } } } if ($cfg['show_online']) { $people = cmsUser::getOnlineCount(); } if ($cfg['show_bday']) { $bday = cmsUser::getBirthdayUsers(); } cmsPage::initTemplate('modules', 'mod_user_stats')->assign('cfg', $cfg)->assign('total_usr', $total_usr)->assign('gender_stats', $gender_stats)->assign('city_stats', $city_stats)->assign('usr_online', cmsUser::sessionGet('usr_online'))->assign('people', $people)->assign('bday', $bday)->display('mod_user_stats.tpl'); return true; }
public function __construct() { $this->query = self::getQuery(); $this->look = cmsCore::request('look', 'str', 'allwords'); $this->page = cmsCore::request('page', 'int', 1); $this->from_pubdate = cmsCore::request('from_pubdate', 'str', ''); $this->order_by_date = cmsCore::request('order_by_date', array(0, 1), 0); $this->from_component = self::getComponentsArrayForSearch(); $this->config = cmsCore::getInstance()->loadComponentConfig('search'); cmsCore::loadLib('tags'); $this->getComponentsWithSupportSearch(); $this->parametrs_array = $this->gatherAnArrayOfQueryParametrs(); cmsCore::loadLanguage('other/sphinx'); }
function search_forum($query, $look) { $inCore = cmsCore::getInstance(); $inDB = cmsDatabase::getInstance(); $searchModel = cms_model_search::initModel(); global $_LANG; cmsCore::loadLanguage('components/forum'); $config = $inCore->loadComponentConfig('forum'); // Ищем в названиях тем $sql = "SELECT t.*, f.title as forum, f.id as forum_id, f.access_list\r\n FROM cms_forum_threads t\r\n INNER JOIN cms_forums f ON f.id = t.forum_id\r\n WHERE MATCH(t.title) AGAINST ('{$query}' IN BOOLEAN MODE) AND t.is_hidden=0 LIMIT 50"; $result = $inDB->query($sql); if ($inDB->num_rows($result)) { while ($item = $inDB->fetch_assoc($result)) { if (!cmsCore::checkContentAccess($item['access_list'])) { continue; } $result_array = array(); $pages = ceil($item['post_count'] / $config['pp_thread']); $result_array['link'] = "/forum/thread{$item['id']}-{$pages}.html"; $result_array['place'] = $item['forum']; $result_array['placelink'] = "/forum/" . $item['forum_id']; $result_array['title'] = $item['title']; $result_array['pubdate'] = $item['pubdate']; $result_array['description'] = $searchModel->getProposalWithSearchWord($item['description']); $result_array['session_id'] = session_id(); $searchModel->addResult($result_array); } } // Ищем в тексте постов $sql = "SELECT p.*, t.title as thread, t.id as thread_id, t.post_count, img.fileurl\r\n FROM cms_forum_posts p\r\n INNER JOIN cms_forum_threads t ON t.id = p.thread_id AND t.is_hidden=0\r\n LEFT JOIN cms_upload_images img ON img.target_id = p.id AND img.target = 'post' AND img.component = 'forum'\r\n WHERE MATCH(p.content) AGAINST ('{$query}' IN BOOLEAN MODE) LIMIT 50"; $result = $inDB->query($sql); if ($inDB->num_rows($result)) { while ($item = $inDB->fetch_assoc($result)) { $result_array = array(); $pages = ceil($item['post_count'] / $config['pp_thread']); $post_page = $pages > 1 ? postPage::getPage($item['thread_id'], $item['id'], $config['pp_thread']) : 1; $result_array['link'] = "/forum/thread{$item['thread_id']}-{$post_page}.html#{$item['id']}"; $result_array['place'] = $_LANG['FORUM_POST']; $result_array['placelink'] = $result_array['link']; $result_array['description'] = $searchModel->getProposalWithSearchWord($item['content_html']); $result_array['title'] = $item['thread']; $result_array['pubdate'] = $item['pubdate']; $result_array['imageurl'] = $item['fileurl']; $result_array['session_id'] = session_id(); $searchModel->addResult($result_array); } } return; }
function sphinx_add_result_faq($items) { global $_LANG; cmsCore::loadLanguage('components/faq'); foreach ($items as $id => $item) { $result_array = array( 'link' => '/faq/quest'. $id .'.html', 'place' => $_LANG['FAQ'] .' → '. $item['attrs']['cat_title'], 'placelink' => '/faq/'. $item['attrs']['cat_id'], 'description' => cmsCore::m('search')->getProposalWithSearchWord($item['attrs']['answer']), 'title' => mb_substr($item['attrs']['quest'], 0, 70) .'...', 'pubdate' => date('Y-m-d H:i:s', $item['attrs']['pubdate']) ); cmsCore::m('search')->addResult($result_array); } return; }
function sphinx_add_result_photos($items) { global $_LANG; cmsCore::loadLanguage('components/photos'); foreach ($items as $id => $item) { $result_array = array( 'link' => '/photos/photo'. $id .'.html', 'place' => $_LANG['PHOTOALBUM'] .' «'. $item['attrs']['cat_title'] .'»', 'placelink' => '/photos/'. $item['attrs']['cat_id'], 'description' => cmsCore::m('search')->getProposalWithSearchWord($item['attrs']['description']), 'title' => $item['attrs']['title'], 'imageurl' => (file_exists(PATH .'/images/photos/medium/'. $item['attrs']['file']) ? '/images/photos/medium/'. $item['attrs']['file'] : ''), 'pubdate' => date('Y-m-d H:i:s', $item['attrs']['pubdate']) ); cmsCore::m('search')->addResult($result_array); } return; }
function sphinx_add_result_content($items) { global $_LANG; cmsCore::loadLanguage('components/content'); foreach ($items as $id => $item) { $result_array = array( 'link' => '/'. $item['attrs']['seolink'] .'.html', 'place' => $_LANG['CATALOG_ARTICLES'], 'placelink' => $item['attrs']['cat_parent_id']>0 ? '/'. $item['attrs']['cat_seolink'] : '/'. $item['attrs']['seolink'] .'.html', 'description' => cmsCore::m('search')->getProposalWithSearchWord($item['attrs']['content']), 'title' => $item['attrs']['title'], 'imageurl' => (file_exists(PATH .'/images/content/medium/'. ceil($id/100) .'/article'. $id .'.jpg') ? '/images/content/medium/'. ceil($id/100) .'/article'. $id .'.jpg' : ''), 'pubdate' => date('Y-m-d H:i:s', $item['attrs']['pubdate']) ); cmsCore::m('search')->addResult($result_array); } return; }
function search_photos($query, $look) { $inDB = cmsDatabase::getInstance(); $searchModel = cms_model_search::initModel(); $sql = "SELECT f.*, a.title as cat, a.id as cat_id\n\t\t\tFROM cms_photo_files f\n\t\t\tINNER JOIN cms_photo_albums a ON a.id = f.album_id AND a.published = 1 AND a.NSDiffer = ''\n\t\t\tWHERE MATCH(f.title, f.description) AGAINST ('{$query}' IN BOOLEAN MODE) AND f.published = 1"; $result = $inDB->query($sql); if ($inDB->num_rows($result)) { global $_LANG; cmsCore::loadLanguage('components/photos'); while ($item = $inDB->fetch_assoc($result)) { $result_array = array(); $result_array['link'] = "/photos/photo" . $item['id'] . ".html"; $result_array['place'] = $_LANG['PHOTOALBUM'] . ' «' . $item['cat'] . '»'; $result_array['placelink'] = '/photos/' . $item['cat_id']; $result_array['description'] = $searchModel->getProposalWithSearchWord($item['description']); $result_array['title'] = $item['title']; $result_array['pubdate'] = $item['pubdate']; $result_array['session_id'] = session_id(); $searchModel->addResult($result_array); } } return; }
function search_content($query, $look) { $inDB = cmsDatabase::getInstance(); $searchModel = cms_model_search::initModel(); global $_LANG; $sql = "SELECT con.*, cat.title cat_title, cat.id cat_id, cat.seolink as cat_seolink, cat.parent_id as cat_parent_id\n\t\t\t\tFROM cms_content con\n\t\t\t\tINNER JOIN cms_category cat ON cat.id = con.category_id AND cat.published = 1\n\t\t\t\tWHERE MATCH(con.title, con.content) AGAINST ('{$query}' IN BOOLEAN MODE) AND con.is_end = 0 AND con.published = 1 LIMIT 100"; $result = $inDB->query($sql); if ($inDB->num_rows($result)) { cmsCore::loadLanguage('components/content'); while ($item = $inDB->fetch_assoc($result)) { $result_array = array(); $result_array['link'] = "/" . $item['seolink'] . ".html"; $result_array['place'] = $_LANG['CATALOG_ARTICLES']; $result_array['placelink'] = $item['cat_parent_id'] > 0 ? "/" . $item['cat_seolink'] : $link; $result_array['description'] = $searchModel->getProposalWithSearchWord($item['content']); $result_array['title'] = $item['title']; $result_array['pubdate'] = $item['pubdate']; $result_array['session_id'] = session_id(); $searchModel->addResult($result_array); } } return; }
function search_armedlist($query, $look) { $inDB = cmsDatabase::getInstance(); $searchModel = cms_model_search::initModel(); global $_LANG; $sql = "SELECT con.*, cat.title cat_title, cat.id cat_id\n\t\t\tFROM cms_armedlist_quests con\n\t\t\tINNER JOIN cms_armedlist_cats cat ON cat.id = con.category_id AND cat.published = 1\n\t\t\tWHERE MATCH(con.quest, con.answer) AGAINST ('{$query}' IN BOOLEAN MODE) AND con.published = 1 LIMIT 100"; $result = $inDB->query($sql); if ($inDB->num_rows($result)) { cmsCore::loadLanguage('components/armedlist'); while ($item = $inDB->fetch_assoc($result)) { $result_array = array(); $result_array['link'] = '/armedlist/quest' . $item['id'] . '.html'; $result_array['place'] = $_LANG['ARMEDLIST'] . ' → ' . $item['cat_title']; $result_array['placelink'] = '/armedlist/' . $item['cat_id']; $result_array['description'] = $searchModel->getProposalWithSearchWord($item['answer']); $result_array['title'] = mb_substr($item['quest'], 0, 70) . '...'; $result_array['pubdate'] = $item['pubdate']; $result_array['session_id'] = session_id(); $searchModel->addResult($result_array); } } return; }
!($item['modgrp_id'] == cmsCore::c('user')->group_id && cmsUser::isUserCan('content/autoadd'))) { cmsCore::error404(); } } } } if ($do == 'delete') { cmsCore::c('db')->delete('cms_content_videos', "`id` = '". cmsCore::request('video_id', 'int', 0) ."'", 1); cmsCore::halt('OK'); } if ($do == 'insert') { cmsCore::loadLanguage('plugins/p_inser_video'); $cfg = $inCore->loadPluginConfig('p_insert_video'); $domains = explode(',', $cfg['PIV_DOMENS']); foreach ($domains as $k=>$v) { $v = trim($v); if (empty($v)) { unset($domains[$k]); } else { $domains[$k] = $v; } } $domains[] = cmsCore::getHost(); $code = cmsCore::request('code', 'html', ''); $code = str_replace('&', '&', $code);
/** * Формирует модуль * @param array $mod * @return html */ private function renderModule($mod) { $inCore = cmsCore::getInstance(); // флаг показа модуля $callback = true; // html код модуля $html = ''; // для php модулей загружаем файл локализации if (!$mod['user']) { cmsCore::loadLanguage('modules/' . $mod['content']); } // Собственный модуль, созданный в админке if (!$mod['is_external']) { $mod['body'] = cmsCore::processFilters($mod['content']); } else { // Отдельный модуль if (cmsCore::includeFile('modules/' . $mod['content'] . '/module.php')) { // Если есть кеш, берем тело модуля из него if ($mod['cache'] && cmsCore::isCached('module', $mod['id'], $mod['cachetime'], $mod['cacheint'])) { $mod['body'] = cmsCore::getCache('module', $mod['id']); $callback = true; } else { $cfg = cmsCore::yamlToArray($mod['config']); // переходный костыль для указания шаблона if (!isset($cfg['tpl'])) { $cfg['tpl'] = $mod['content'] . '.tpl'; } $inCore->cacheModuleConfig($mod['id'], $cfg); ob_start(); $callback = call_user_func($mod['content'], $mod['id'], $cfg); $mod['body'] = ob_get_clean(); if ($mod['cache']) { cmsCore::saveCache('module', $mod['id'], $mod['body']); } } } } // выводим модуль в шаблоне если модуль вернул true if ($callback) { $module_tpl = file_exists(TEMPLATE_DIR . 'modules/' . $mod['template']) ? $mod['template'] : 'module.tpl'; $cfglink = cmsConfig::getConfig('fastcfg') && cmsUser::getInstance()->is_admin ? true : false; ob_start(); self::initTemplate('modules', $module_tpl)->assign('cfglink', $cfglink)->assign('mod', $mod)->display($module_tpl); $html = ob_get_clean(); } return $html; }
function cpProceedBody() { ob_start(); $file = $GLOBALS['applet'] . '.php'; if (!file_exists(PATH . '/admin/applets/' . $file)) { cmsCore::error404(); } cmsCore::loadLanguage('admin/applets/applet_' . $GLOBALS['applet']); include 'applets/' . $file; call_user_func('applet_' . $GLOBALS['applet']); $GLOBALS['cp_page_body'] = ob_get_clean(); }
// Инициализируем конфиг $config = cmsConfig::getInstance(); // дебаг отключен - скрываем все сообщения об ошибках if (!$config->debug) { error_reporting(0); } else { error_reporting(E_ALL); } // Проверяем, что система установлена if (!$config->isReady()) { $root = str_replace(str_replace(DIRECTORY_SEPARATOR, '/', realpath(ROOT)), '', str_replace(DIRECTORY_SEPARATOR, '/', PATH)); header('location:' . $root . '/install/'); die; } // Загружаем локализацию cmsCore::loadLanguage(); // устанавливаем локаль языка if (function_exists('lang_setlocale')) { lang_setlocale(); } // Устанавливаем часовую зону date_default_timezone_set($config->time_zone); // Подключаем все необходимые классы и библиотеки cmsCore::loadLib('html.helper'); cmsCore::loadLib('strings.helper'); cmsCore::loadLib('files.helper'); cmsCore::loadLib('spyc.class'); // подключаем хелпер шаблона, если он есть if (!cmsCore::includeFile('templates/' . $config->template . '/assets/helper.php')) { cmsCore::loadLib('template.helper'); }
public function __construct() { cmsCore::loadLanguage('components/geo'); $this->inDB = cmsDatabase::getInstance(); }
function applet_users() { $inCore = cmsCore::getInstance(); cmsCore::loadClass('actions'); cmsCore::loadModel('users'); $model = new cms_model_users(); // подключаем язык компонента регистрации cmsCore::loadLanguage('components/registration'); global $_LANG; global $adminAccess; if (!cmsUser::isAdminCan('admin/users', $adminAccess)) { cpAccessDenied(); } cmsCore::c('page')->setTitle($_LANG['AD_USERS']); cpAddPathway($_LANG['AD_USERS'], 'index.php?view=users'); $do = cmsCore::request('do', 'str', 'list'); $id = cmsCore::request('id', 'int', 0); if ($do == 'list') { $toolmenu = array( array( 'icon' => 'useradd.gif', 'title' => $_LANG['AD_USER_ADD'], 'link' => '?view=users&do=add' ), array( 'icon' => 'useredit.gif', 'title' => $_LANG['AD_EDIT_SELECTED'], 'link' => "javascript:checkSel('?view=users&do=edit&multiple=1');" ), array( 'icon' => 'userdelete.gif', 'title' => $_LANG['AD_DELETE_SELECTED'], 'link' => "javascript:if(confirm('". $_LANG['AD_IF_USERS_SELECT_REMOVE'] ."')) { checkSel('?view=users&do=delete&multiple=1'); }" ), array( 'icon' => 'usergroup.gif', 'title' => $_LANG['AD_USERS_GROUP'], 'link' => '?view=usergroups' ), array( 'icon' => 'userbanlist.gif', 'title' => $_LANG['AD_BANLIST'], 'link' => '?view=userbanlist' ), array( 'icon' => 'user_go.png', 'title' => $_LANG['AD_USERS_SELECT_ACTIVATE'], 'link' => "javascript:if(confirm('". $_LANG['AD_IF_USERS_SELECT_ACTIVATE'] ."')) { checkSel('?view=users&do=activate&multiple=1'); }" ), array( 'icon' => 'help.gif', 'title' => $_LANG['AD_HELP'], 'link' => '?view=help&topic=users' ) ); cpToolMenu($toolmenu); $fields = array( array( 'title' => 'id', 'field' => 'id', 'width' => '40' ), array( 'title' => $_LANG['LOGIN'], 'field' => 'login', 'width' => '100', 'link' => '?view=users&do=edit&id=%id%', 'filter' => 12 ), array( 'title' => $_LANG['NICKNAME'], 'field' => 'nickname', 'width' => '', 'link' => '?view=users&do=edit&id=%id%', 'filter' => 12 ), array( 'title' => $_LANG['AD_RATING'], 'field' => array( 'rating', 'id' ), 'width' => '70', 'prc' => 'setRating' ), array( 'title' => $_LANG['AD_GROUP'], 'field' => 'group_id', 'width' => '110', 'prc' => 'cpGroupById', 'filter' => 1, 'filterlist' => cpGetList('cms_user_groups') ), array( 'title' => $_LANG['EMAIL'], 'field' => 'email', 'width' => '120' ), array( 'title' => $_LANG['AD_REGISTRATION_DATE'], 'field' => 'regdate', 'width' => '100' ), array( 'title' => $_LANG['AD_LAST_LOGIN'], 'field' => 'logdate', 'width' => '100' ), array( 'title' => $_LANG['AD_LAST_IP'], 'field' => 'last_ip', 'width' => '90', 'prc' => 'getIpLink' ), array( 'title' => $_LANG['AD_IS_LOCKED'], 'field' => 'is_locked', 'width' => '110', 'prc' => 'viewAct' ), array( 'title' => $_LANG['AD_IS_DELETED'], 'field' => 'is_deleted', 'width' => '80', 'prc' => 'viewDel' ) ); $actions = array( array( 'title' => $_LANG['AD_PROFILE'], 'icon' => 'profile.gif', 'link' => '/users/%login%' ), array( 'title' => $_LANG['AD_BANNED'], 'icon' => 'ban.gif', 'link' => '?view=userbanlist&do=add&to=%id%' ), array( 'title' => $_LANG['DELETE'], 'icon' => 'delete.gif', 'confirm' => $_LANG['AD_IS_USER_DELETE'], 'link' => '?view=users&do=delete&id=%id%' ), array( 'title' => $_LANG['AD_FOREVER_USER_DELETE'], 'icon' => 'off.gif', 'confirm' => $_LANG['AD_IF_FOREVER_USER_DELETE'], 'link' => '?view=users&do=delete_full&id=%id%' ) ); cpListTable('cms_users', $fields, $actions, '1=1', 'regdate DESC'); } if ($do == 'rerating') { $user_id = cmsCore::request('user_id', 'int'); if (!$user_id) { cmsCore::redirectBack(); } $rating = cmsUser::getRating($user_id); $user_sql = "UPDATE cms_users SET rating = ". $rating ." WHERE id = '". $user_id ."'"; cmsCore::c('db')->query($user_sql); cmsCore::redirectBack(); } if ($do == 'activate') { $user_ids = cmsCore::request('item', 'array_int'); if (!$user_ids) { cmsCore::redirectBack(); } foreach ($user_ids as $user_id) { $code = cmsCore::c('db')->get_field('cms_users_activate', "user_id = '". $user_id ."'", 'code'); $sql = "UPDATE cms_users SET is_locked = 0 WHERE id = '". $user_id ."'"; cmsCore::c('db')->query($sql); $sql = "DELETE FROM cms_users_activate WHERE code = '". $code ."'"; cmsCore::c('db')->query($sql); cmsCore::callEvent('USER_ACTIVATED', $user_id); // Регистрируем событие cmsActions::log( 'add_user', array( 'object' => '', 'user_id' => $user_id, 'object_url' => '', 'object_id' => $user_id, 'target' => '', 'target_url' => '', 'target_id' => 0, 'description' => '' ) ); } cmsCore::redirectBack(); } if ($do == 'delete') { if (!cmsCore::inRequest('item')) { if ($id >= 0) { $model->deleteUser($id); } } else { $model->deleteUsers(cmsCore::request('item', 'array_int', array())); } cmsCore::redirectBack(); } if ($do == 'delete_full') { $model->deleteUser($id, true); cmsCore::redirectBack(); } if ($do == 'submit' || $do == 'update') { if (!cmsUser::checkCsrfToken()) { cmsCore::error404(); } $types = array( 'login' => array( 'login', 'str', '' ), 'nickname' => array( 'nickname', 'str', '', 'htmlspecialchars' ), 'email' => array( 'email', 'email', '' ), 'group_id' => array( 'group_id', 'int', 1 ), 'is_locked' => array( 'is_locked', 'int', 0 ), 'password' => array( 'pass', 'str', '', 'stripslashes' ), 'pass2' => array( 'pass2', 'str', '', 'stripslashes' ) ); $items = cmsCore::getArrayFromRequest($types); $errors = false; // проверяем логин if (mb_strlen($items['login']) < 2 || mb_strlen($items['login']) > 15 || is_numeric($items['login']) || !preg_match("/^([a-zA-Z0-9])+$/ui", $items['login'])) { cmsCore::addSessionMessage($_LANG['ERR_LOGIN'], 'error'); $errors = true; } // проверяем пароль if ($do == 'submit') { if (!$items['password']) { cmsCore::addSessionMessage($_LANG['TYPE_PASS'], 'error'); $errors = true; } } if ($items['password'] && !$items['pass2']) { cmsCore::addSessionMessage($_LANG['TYPE_PASS_TWICE'], 'error'); $errors = true; } if ($items['password'] && $items['pass2'] && mb_strlen($items['password']) < 6) { cmsCore::addSessionMessage($_LANG['PASS_SHORT'], 'error'); $errors = true; } if ($items['password'] && $items['pass2'] && $items['password'] != $items['pass2']) { cmsCore::addSessionMessage($_LANG['WRONG_PASS'], 'error'); $errors = true; } // никнейм if (mb_strlen($items['nickname']) < 2) { cmsCore::addSessionMessage($_LANG['SHORT_NICKNAME'], 'error'); $errors = true; } // Проверяем email if (!$items['email']) { cmsCore::addSessionMessage($_LANG['ERR_EMAIL'], 'error'); $errors = true; } // проверяем есть ли такой пользователь if ($do == 'submit') { $user_exist = cmsCore::c('db')->get_fields('cms_users', "(login LIKE '". $items['login'] ."' OR email LIKE '". $items['email'] ."') AND is_deleted = 0", 'login'); if ($user_exist) { if ($user_exist['login'] == $items['login']) { cmsCore::addSessionMessage($_LANG['LOGIN'] .' "'. $items['login'] .'" '. $_LANG['IS_BUSY'], 'error'); $errors = true; } else { cmsCore::addSessionMessage($_LANG['EMAIL_IS_BUSY'], 'error'); $errors = true; } } } if ($errors) { if ($do == 'submit') { cmsUser::sessionPut('items', $items); } cmsCore::redirectBack(); } if ($do == 'submit') { $items['regdate'] = date('Y-m-d H:i:s'); $items['logdate'] = date('Y-m-d H:i:s'); $items['password'] = md5($items['password']); $items['user_id'] = cmsCore::c('db')->insert('cms_users', $items); if (!$items['user_id']) { cmsCore::error404(); } cmsCore::c('db')->insert('cms_user_profiles', $items); cmsCore::addSessionMessage($_LANG['AD_DO_SUCCESS'], 'success'); cmsCore::redirect('?view=users'); } else { // главного админа может редактировать только он сам if ($id == 1 && cmsCore::c('user')->id != $id) { cmsCore::error404(); } if ($id == 1) { unset($items['group_id']); unset($items['is_locked']); } if (!$items['password']) { unset($items['password']); } else { $items['password'] = md5($items['password']); } cmsCore::c('db')->update('cms_users', $items, $id); cmsCore::addSessionMessage($_LANG['AD_DO_SUCCESS'], 'success'); if (empty($_SESSION['editlist'])) { cmsCore::redirect('index.php?view=users'); } else { cmsCore::redirect('index.php?view=users&do=edit'); } } } if ($do == 'edit' || $do == 'add') { $toolmenu = array( array( 'icon' => 'save.gif', 'title' => $_LANG['SAVE'], 'link' => 'javascript:document.addform.submit();' ), array( 'icon' => 'cancel.gif', 'title' => $_LANG['CANCEL'], 'link' => 'javascript:history.go(-1);' ) ); cpToolMenu($toolmenu); if ($do == 'edit') { if (cmsCore::inRequest('multiple')){ if (cmsCore::inRequest('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 (count($_SESSION['editlist']) == 0) { unset($_SESSION['editlist']); } else { $ostatok = '('. $_LANG['AD_NEXT_IN'] . count($_SESSION['editlist']) .')'; } } else { $item_id = cmsCore::request('id', 'int', 0); } $mod = cmsCore::c('db')->get_fields('cms_users', "id = '". $item_id ."'", '*'); if (!$mod) { cmsCore::error404(); } echo '<h3>'. $_LANG['AD_USER_EDIT'] .' '. $ostatok .'</h3>'; cpAddPathway($mod['nickname']); } else { $mod = cmsUser::sessionGet('items'); if ($mod) { cmsUser::sessionDel('items'); } cpAddPathway($_LANG['AD_USER_ADD']); } cmsCore::c('page')->addHeadJS('components/registration/js/check.js'); ?> <form action="index.php?view=users" method="post" enctype="multipart/form-data" name="addform" id="addform"> <input type="hidden" name="csrf_token" value="<?php echo cmsUser::getCsrfToken(); ?>" /> <div style="width:500px;"> <div class="form-group"> <label><?php echo $_LANG['LOGIN']; ?>:</label> <input type="text" id="logininput" class="form-control" name="login" value="<?php echo cmsCore::getArrVal($mod, 'login', ''); ?>" onchange="checkLogin()" /> <?php if ($do == 'edit') { echo '<div class="help-block" style="text-align:right;"><a target="_blank" href="/users/'. $mod['login'] .'" title="'. $_LANG['AD_USER_PROFILE'] .'">'. $_LANG['AD_USER_PROFILE'] .'</a></div>'; } ?> </div> <div class="form-group"> <label><?php echo $_LANG['NICKNAME']; ?>:</label> <input type="text" id="login" class="form-control" name="nickname" value="<?php echo htmlspecialchars(cmsCore::getArrVal($mod, 'nickname', '')); ?>" /> </div> <div class="form-group"> <label><?php echo $_LANG['EMAIL']; ?>:</label> <input type="text" id="nickname" class="form-control" name="email" value="<?php echo cmsCore::getArrVal($mod, 'email', ''); ?>" /> </div> <div class="form-group"> <label><?php if ($do == 'edit') { echo $_LANG['AD_NEW_PASS']; } else { echo $_LANG['PASS']; } ?></label> <input type="password" id="pass" class="form-control" name="pass" /> </div> <div class="form-group"> <label><?php echo $_LANG['REPEAT_PASS']; ?>:</label> <input type="password" id="pass2" class="form-control" name="pass2" /> </div> <div class="form-group"> <label><?php echo $_LANG['AD_GROUP']; ?>:</label> <select id="group_id" class="form-control" name="group_id"> <?php echo $inCore->getListItems('cms_user_groups', cmsCore::getArrVal($mod, 'group_id', 0)); ?> </select> <?php if ($do == 'edit') { echo '<div class="help-block" style="text-align:right;"><a target="_blank" href="?view=usergroups&do=edit&id='. $mod['group_id'] .'">'. $_LANG['EDIT'] .'</a></div>'; } ?> </div> <div class="form-group"> <label><?php echo $_LANG['AD_IF_ACCAUNT_LOCK']; ?></label> <div class="btn-group" data-toggle="buttons" style="float:right;"> <label class="btn btn-default <?php if ($mod['is_locked']) { echo 'active'; } ?>"> <input type="radio" name="is_locked" <?php if ($mod['is_locked']) { echo 'checked="checked"'; } ?> value="1" /> <?php echo $_LANG['YES']; ?> </label> <label class="btn btn-default <?php if (!$mod['is_locked']) { echo 'active'; } ?>"> <input type="radio" name="is_locked" <?php if (!$mod['is_locked']) { echo 'checked="checked"'; } ?> value="0" /> <?php echo $_LANG['NO']; ?> </label> </div> </div> </div> <div> <?php if ($do == 'edit') { ?> <input type="hidden" name="do" value="update" /> <input type="submit" class="btn btn-primary" name="add_mod" value="<?php echo $_LANG['SAVE']; ?>" /> <?php } else { ?> <input type="hidden" name="do" value="submit" /> <input type="submit" class="btn btn-primary" name="add_mod" value="<?php echo $_LANG['AD_USER_ADD']; ?>" /> <?php } ?> <input type="button" class="btn btn-default" name="back2" value="<?php echo $_LANG['CANCEL']; ?>" onclick="window.history.back();" /> <?php if ($do == 'edit') { echo '<input type="hidden" name="id" value="'. $mod['id'] .'" />'; } ?> </div> </form> <?php } }
public function __construct() { $this->config = cmsCore::getInstance()->loadComponentConfig('rssfeed'); cmsCore::loadLanguage('components/rssfeed'); }