!empty($retFields['eDate']) ? !validate::validateMySqlDate($retFields['eDate']) ? $arrErrors[] = ERROR_DATE_FORMAT : ($strWhere .= " AND datetime<=" . secure::escQuoteData($retFields['eDate'])) : null;
        ///////////////////////////////////////////////////////////////
        ///////////////////////////////////////////////////////////////
        $smarty->assignByRef('retFields', $retFields);
        /** текущий обработанный URL **/
        $path .= 'do=filter&amp;id=' . $retFields['id'] . '&amp;id_user='******'id_user'] . '&amp;author=' . $retFields['author'] . '&amp;title=' . $retFields['title'] . '&amp;id_section=' . $retFields['id_section'] . '&amp;sDate=' . $retFields['sDate'] . '&amp;eDate=' . $retFields['eDate'] . '&amp;records=' . $retFields['records'] . '&amp;';
    }
    /** смещение, всегда 0 (затем берется из $_GET) **/
    $offset = !empty($_GET['offset']) && strings::ifInt($_GET['offset']) && (int) $_GET['offset'] > 0 ? (int) abs($_GET['offset']) : 0;
    $strLimit = array('strLimit' => $offset . ',' . $retFields['records'], 'calcRows' => true);
    $arrFields = array('id', 'title', 'id_section', 'id_user', 'author', 'datetime');
    $smarty->assign('arrArticles', $articles->getArticles($strWhere, false, $strLimit, $arrFields));
    // массив всех статей
    /** формируем страницы **/
    $allRecords = $articles->cntArticles();
    // получаем общее количество статей
    $strPages = strings::generatePage($allRecords, $offset, $retFields['records'], $path, true);
    // формируем странциы
    $smarty->assignByRef('allRecords', $allRecords);
    //передаем в шаблон общее количество записей
    $smarty->assignByRef('strPages', $strPages);
    //передаем в шаблон строку сформированных страниц
}
// создаем объект разделов статей
$sections = !($sections['full'] = $artsections->getSections()) ? false : $sections + $artsections->splitSections($sections['full']);
// передаем в смарти все разделы
$smarty->assignByRef('sections', $sections);
// адресная строка
$smarty->assignByRef('qString', $qString);
$smarty->assignByRef('errors', $arrErrors);
$smarty->assignByRef('actions', $arrActions);
Esempio n. 2
0
 $xml .= '<url><loc>' . chpu::createChpuUrl(CONF_SCRIPT_URL . 'index.php?ut=employer') . '</loc><priority>1.0</priority><changefreq>weekly</changefreq></url>' . "\n";
 // Работаем с доп. страницами
 if ($arrPages) {
     foreach ($arrPages as $value) {
         $xml .= '<url><loc>' . chpu::createChpuUrl(CONF_SCRIPT_URL . 'index.php?do=pages&amp;action=view&amp;id=' . $value['id']) . '</loc><priority>0.5</priority><changefreq>never</changefreq></url>' . "\n";
     }
 }
 // Работаем с новостями
 if ($arrNewses = $news->getPuplishedNewses(false, false, array('id', 'title'))) {
     foreach ($arrNewses as $value) {
         $xml .= '<url><loc>' . chpu::createChpuUrl(CONF_SCRIPT_URL . 'index.php?do=news&amp;action=view&amp;id=' . $value['tId']) . '</loc><priority>0.8</priority><changefreq>never</changefreq></url>' . "\n";
     }
 }
 // Работаем с разделами статей (все статьи выводить не будем, много получится)
 $artsections = new artsections();
 if ($arrArtSections = $artsections->getSections()) {
     foreach ($arrArtSections as $value) {
         if ($value['count']) {
             $userType = $value['affiliation'] !== 'none' ? 'ut=' . $value['affiliation'] . '&nbsp;' : '';
             $xml .= '<url><loc>' . chpu::createChpuUrl(CONF_SCRIPT_URL . 'index.php?' . $userType . 'do=articles&amp;action=section&amp;id=' . $value['tId']) . '</loc><priority>0.8</priority><changefreq>weekly</changefreq></url>' . "\n";
         }
     }
 }
 // Работаем с компаниями
 $strWhere = "conf_users.token IN ('active') AND conf_users.user_type IN ('company')";
 $arrFields = array(array('conf_users', 'id'), array('conf_users', 'company_name'));
 if ($arrCompanies = $user->getCombinedUsersData($arrFields, $strWhere, false, false)) {
     foreach ($arrCompanies as $value) {
         $xml .= '<url><loc>' . chpu::createChpuUrl(CONF_SCRIPT_URL . 'index.php?do=companies&amp;action=detail&amp;id=' . $value['tId']) . '</loc><priority>0.5</priority><changefreq>daily</changefreq></url>' . "\n";
     }
 }
Esempio n. 3
0
    /**
     * private функция формирует RSS для статей
     * 
     * @param (int) $id - id раздела, статьи которого необходимо показать (по умолчанию false)
     * 
     * @return string
     */
    protected function rssArticles($id = false)
    {
        // создаем объекты
        $articles = new articles();
        $artsections = new artsections();
        // получаем список разделов
        $sections = $artsections->getSections("token IN ('active')");
        // формируем данные шапки
        $this->title[] = array('name' => MENU_ARTICLES);
        $this->link = chpu::createChpuUrl(CONF_SCRIPT_URL . 'index.php?do=rss&amp;action=articles');
        $this->description = MENU_ARTICLES;
        // проверяем просмотр по разделу
        if (!empty($id) && !empty($sections[$id])) {
            // выбираем статьи с учетом раздела
            $arrArticles = $articles->getPuplishedArticles("id_section=" . secure::escQuoteData($id), false, array('strLimit' => '0,' . CONF_RSS_ARTICLES_COUNT, 'calcRows' => false), array('id', 'title', 'small_text', 'datetime', 'id_section'));
            // Дописываем данные по разделу в шапку
            $this->title[] = array('name' => $sections[$id]['name']);
            $this->description .= ' - ' . $sections[$id]['name'];
        } else {
            $arrArticles = $articles->getPuplishedArticles(false, false, array('strLimit' => '0,' . CONF_RSS_ARTICLES_COUNT, 'calcRows' => false), array('id', 'title', 'small_text', 'datetime', 'id_section'));
        }
        /***** Формируем XML-документ *****/
        $data = '<?xml version="1.0" encoding="' . CONF_DEFAULT_CHARSET . '" ?>
					<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
					<channel>
					<atom:link href="' . $this->link . '" rel="self" type="application/rss+xml" />
					<title>' . strings::formTitle($this->title) . '</title>
					<link>' . $this->link . '</link>
					<description>' . $this->description . '</description>
					<language>ru</language>
					<pubDate>' . $this->pubDate . '</pubDate>
					<image>
						<url>' . $this->siteLogo . '</url>
						<title>' . strings::formTitle($this->title) . '</title>
						<link>' . $this->link . '</link>
					</image>';
        // если статьи есть
        if (!empty($arrArticles) && is_array($arrArticles)) {
            foreach ($arrArticles as $value) {
                $data .= '<item>
							<title>' . $value['title'] . '</title>
							<link>' . chpu::createChpuUrl(CONF_SCRIPT_URL . 'index.php?do=articles&amp;action=view&amp;id=' . $value['tId']) . '</link>
							<pubDate>' . terms::RFCDate($value['datetime']) . '</pubDate>
							<guid>' . chpu::createChpuUrl(CONF_SCRIPT_URL . 'index.php?do=articles&amp;action=view&amp;id=' . $value['tId']) . '</guid>
							<category domain="' . chpu::createChpuUrl(CONF_SCRIPT_URL . 'index.php?do=articles&amp;action=section&amp;id=' . $sections[$value['id_section']]['tId']) . '">' . $sections[$value['id_section']]['name'] . '</category>
							<description><![CDATA[' . $value['small_text'] . ']]></description>
						</item>';
            }
        }
        $data .= '</channel>
				</rss>';
        return $data;
    }
            if (isset($_POST['save']) && isset($_POST['arrBindFields']['name']) && $_POST['arrBindFields']['name']) {
                // получаем из формы поля обязательные для заполнения
                $artsections->arrBindFields = $_POST['arrBindFields'];
                // производим запись в таблицу БД
                !$artsections->updateSections($_POST['arrBindFields'], array($_GET['id'])) ? $arrErrors[] = db::$message_error ? db::$message_error : ERROR_MISMATCH_FIELDS : messages::messageChangeSaved(MESSAGE_CHANGE_SAVED, false, CONF_ADMIN_FILE . '?m=dictionary&s=articles.sections');
            }
            $arrAction['edit'] = true;
        } else {
            $arrErrors[] = ERROR_SECTION_NOT_EXISTS;
        }
    }
} else {
    // инициируем "Наименование страницы" отображаемое в форме
    $arrNamePage[] = array('name' => MENU_DICTIONARY_ARTICLES_SECTIONS, 'link' => false);
    /**
     * удаление разделов статей
     */
    if (isset($_POST['action'])) {
        if ('del' === $_POST['action'] && isset($_POST['sections'])) {
            $artsections->deleteSections(array_keys($_POST['sections']));
            messages::messageChangeSaved(MESSAGE_CHANGE_SAVED, false, CONF_ADMIN_FILE . '?m=dictionary&s=articles.sections');
        } else {
            messages::messageChangeSaved(MESSAGE_WARNING_NOT_SELECT_RECORDS, false, CONF_ADMIN_FILE . '?m=dictionary&s=articles.sections');
        }
    }
    // END отображение, скрытие, удаление новостей
}
// получаем все разделы
$smarty->assign('sections', $artsections->getSections());
$smarty->assignByRef('errors', $arrErrors);
$smarty->assignByRef('action', $arrAction);