Просмотр файла modules/index_page/controllers/index_page.php

Размер файла: 1.83Kb
<?php
/**
 * Ant0ha's project
 *
 * @package
 * @author Anton Pisarenko <[email protected]>
 * @copyright Copyright (c) 2006 - 2010, Anton Pisarenko
 * @license http://ant0ha.ru/license.txt
 * @link http://ant0ha.ru
 */

defined('IN_SYSTEM') or die('<b>403<br />Запрет доступа!</b>');

//---------------------------------------------

/**
 * Контроллер пользовательской части модуля главной страницы
 */
class Index_Page_Controller extends Controller {
	/**
	* Уровень пользовательского доступа
	*/
	public $access_level = 0;

	/**
	* Метод по умолчанию
	*/
	public function action_index() {
		$this->action_view_page();
	}

	/**
	* Показ главной страницы
	*/
	public function action_view_page() {
		$blocks = $this->cache->get('index_page', 180);
		$blocks = $blocks;

  		if(empty($blocks)) {
			$result = $this->db->query("SELECT * FROM #__index_page_blocks ORDER BY position ASC");
			$blocks = array();
			while($block = $this->db->fetch_array($result)) {
				$result1 = $this->db->query("SELECT * FROM #__index_page_widgets WHERE block_id = '". $block['block_id'] ."' ORDER BY position ASC");
				$block['widgets'] = array();
				while($widget = $this->db->fetch_array($result1)) {
					# Подключаем класс виджета
					if(!class_exists($widget['module'] .'_widget'))
						a_import('modules/'. $widget['module'] .'/helpers/'. $widget['module'] .'_widget.php');
					# Получаем display виджета
					$block['widgets'][] = call_user_func(array($widget['module'] .'_widget', 'display'), $widget['widget_id']);
				}
	
				$blocks[] = $block;
			}

			$this->cache->set('index_page', $blocks);
	  	}

		$this->tpl->assign(array(
			'blocks' => $blocks
		));
	
		$this->tpl->display('view_page');
	}
}
?>