Example #1
0
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;
}
Example #2
0
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;
}
Example #3
0
 private function __construct()
 {
     $this->inDB = cmsDatabase::getInstance();
     cmsCore::loadLanguage('components/blogs');
     cmsCore::loadLib('tags');
     cmsCore::loadLib('karma');
 }
Example #4
0
	function __construct(){
        $this->inDB   = cmsDatabase::getInstance();
		$this->inCore = cmsCore::getInstance();
		$this->config = $this->inCore->loadComponentConfig('users');
		cmsCore::loadLanguage('components/users');
        cmsCore::loadClass('form');
    }
Example #5
0
 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;
 }
Example #6
0
 public function __construct()
 {
     $this->inDB = cmsDatabase::getInstance();
     $this->config = cmsCore::getInstance()->loadComponentConfig('clubs');
     cmsCore::loadLanguage('components/clubs');
     cmsCore::loadLib('karma');
 }
Example #7
0
 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);
 }
Example #8
0
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;
}
Example #9
0
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;
}
Example #10
0
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;
}
Example #11
0
    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();
    }
Example #12
0
function mod_usersearch($mod, $cfg) {
    cmsCore::loadLanguage('components/users');

    cmsPage::initTemplate('modules', $cfg['tpl'])->
        assign('cfg', $cfg)->
        display();

    return true;
}
Example #13
0
 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);
 }
Example #14
0
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;
}
Example #15
0
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;
}
Example #16
0
 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');
 }
Example #17
0
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;
}
Example #18
0
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;
}
Example #19
0
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;
}
Example #20
0
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;
}
Example #21
0
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;
}
Example #22
0
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;
}
Example #23
0
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;
}
Example #24
0
                !($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);
    
Example #25
0
 /**
  * Формирует модуль
  * @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;
 }
Example #26
0
File: cp.php Project: deltas1/icms1
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();
}
Example #27
0
// Инициализируем конфиг
$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');
}
Example #28
0
 public function __construct()
 {
     cmsCore::loadLanguage('components/geo');
     $this->inDB = cmsDatabase::getInstance();
 }
Example #29
0
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
   }
}
Example #30
0
 public function __construct()
 {
     $this->config = cmsCore::getInstance()->loadComponentConfig('rssfeed');
     cmsCore::loadLanguage('components/rssfeed');
 }