/**
  * @brief showIndex 显示主页
  *
  * @return void
  */
 public function showIndex($params)
 {
     Widget::initWidget('Post');
     Widget::getWidget('Post')->setPerPage(8);
     Widget::getWidget('Post')->setCurrentPage(isset($params['page']) ? $params['page'] : 1);
     Widget::getWidget('Post')->query();
     $this->display('index.php');
 }
 /**
  * @brief showTag 显示某标签下的文章
  *
  * @param $params 参数
  *
  * @return void
  */
 public function showTag($params)
 {
     // 根据 Meta 别名获取 Meta ID
     $meta = new MetaLibrary();
     $meta->setType(2);
     $meta->setName(urldecode($params['name']));
     if (!($m = $meta->getMeta())) {
         Response::error(404);
         return;
     }
     // 获取文章数据
     Widget::initWidget('Post');
     Widget::getWidget('Post')->setPerPage(8);
     Widget::getWidget('Post')->setCurrentPage(isset($params['page']) ? $params['page'] : 1);
     Widget::getWidget('Post')->setCurrentMeta($m[0]['mid']);
     Widget::getWidget('Post')->query();
     // 设置标题、描述、关键词
     Widget::getWidget('Global')->title = $m[0]['name'];
     Widget::getWidget('Global')->description = $m[0]['description'];
     Widget::getWidget('Global')->keywords = $m[0]['name'];
     $this->display('index.php');
 }
 /**
  * @brief showSearch 显示搜索结果
  *
  * @param $params 传入参数
  *
  * @return void
  */
 public function showSearch($params)
 {
     if (!isset($params['word'])) {
         if (!($word = Request::P('word', 'string'))) {
             Response::back();
         } else {
             Response::redirect(Router::patch('SearchWord', array('word' => urlencode(trim($word)))));
         }
         return;
     }
     // 获取文章数据
     Widget::initWidget('Post');
     Widget::getWidget('Post')->setPerPage(8);
     Widget::getWidget('Post')->setCurrentPage(isset($params['page']) ? $params['page'] : 1);
     // 未来支持分类内搜索
     // Widget::getWidget('Post')->setCurrentMeta( $m[0]['mid'] );
     Widget::getWidget('Post')->setSearchWord(urldecode(trim($params['word'])));
     Widget::getWidget('Post')->query();
     // 设置标题、描述、关键词
     Widget::getWidget('Global')->title = urldecode($params['word']);
     // Widget::getWidget('Global')->description = $m[0]['description'];
     Widget::getWidget('Global')->keywords = urldecode($params['word']);
     $this->display('index.php');
 }
 /**
  * @brief showUser 显示某用户发布的文章
  *
  * @param $params 传入参数
  *
  * @return void
  */
 public function showUser($params)
 {
     // 根据 uid 获取 用户信息
     $user = new UserLibrary();
     $user->setUID($params['uid']);
     if (!($u = $user->getUser())) {
         Response::error(404);
         return;
     }
     // 获取文章数据
     Widget::initWidget('Post');
     Widget::getWidget('Post')->setPerPage(8);
     Widget::getWidget('Post')->setCurrentPage(isset($params['page']) ? $params['page'] : 1);
     Widget::getWidget('Post')->setAuthor($u['uid']);
     Widget::getWidget('Post')->query();
     // 设置标题、描述、关键词
     Widget::getWidget('Global')->title = urldecode($u['username']);
     $this->display('index.php');
 }
Exemplo n.º 5
0
				<tr>
					<th class="radius-topleft"> </th>
					<th><?php 
_e('Title');
?>
</th>
					<th class="radius-topright"><?php 
_e('Alias');
?>
</th>
				</tr>
			</thead>
			<tbody>
			<?php 
$i = 0;
Widget::initWidget('Page');
while (page_next()) {
    if (page_id(FALSE)) {
        ?>
				<tr<?php 
        if ($i % 2 == 0) {
            ?>
 class="even"<?php 
        }
        ?>
 id="page-<?php 
        page_id();
        ?>
">
					<td><input type="checkbox" value="<?php 
        page_id();
Exemplo n.º 6
0
?>
</th>
					<th><?php 
_e('Reply');
?>
</th>
					<th class="radius-topright"><?php 
_e('Date');
?>
</th>
				</tr>
			</thead>
			<tbody>
			<?php 
$i = 0;
Widget::initWidget('Post');
Widget::getWidget('Post')->setPerPage(10);
Widget::getWidget('Post')->setCurrentPage(Request::G('page') ? Request::G('page') : 1);
Widget::getWidget('Post')->query();
while (post_next()) {
    ?>
				<tr<?php 
    if ($i % 2 == 0) {
        ?>
 class="even"<?php 
    }
    ?>
 id="post-<?php 
    post_id();
    ?>
">
 /**
  * @brief postComment 发表评论
  *
  * @return void
  */
 public function postComment()
 {
     $c = array();
     // 如果用户已登录,则可以不填写基本信息
     if (Widget::getWidget('User')->isLogin()) {
         $user = Widget::getWidget('User')->getUser();
         $c['uid'] = $user['uid'];
         $c['author'] = $user['username'];
         $c['email'] = $user['email'];
         $c['website'] = $user['website'];
     } else {
         $c['uid'] = 0;
         $c['author'] = Request::P('author', 'string');
         $c['email'] = Request::P('email', 'string');
         $c['website'] = Request::P('website', 'string');
     }
     $c['pid'] = Request::P('postId');
     $c['content'] = Request::P('content', 'string');
     $error = '';
     if (!$c['pid'] || !$c['author'] || !$c['email'] || !$c['content']) {
         // 检查信息完整性
         $error = _t('Author, Email and Content can not be null.');
     } else {
         // 检查文章是否存在、是否允许评论
         Widget::initWidget('Post');
         $post = new PostLibrary();
         $p = $post->getPost($c['pid']);
         if ($p) {
             Widget::getWidget('Post')->setPID($c['pid']);
         } else {
             $p = $post->getPage($c['pid'], FALSE);
             Widget::getWidget('Post')->setAlias($p['alias']);
         }
         if (!Widget::getWidget('Post')->query() || !Widget::getWidget('Post')->postAllowReply()) {
             $error = _t('Comment closed.');
         } else {
             // TODO 敏感词过滤
             // TODO 内容处理
             $c['content'] = str_replace(array("\r\n", "\n", "\r"), '<br />', htmlspecialchars($c['content']));
             $c = Plugin::call('postComment', $c);
             // 写入评论
             $comment = new CommentLibrary();
             $comment->postComment($c);
             // 评论计数加一
             $post->incReply($c['pid']);
             // 保存用户信息
             Response::setCookie('author', $c['author'], time() + 24 * 3600 * 365);
             Response::setCookie('email', $c['email'], time() + 24 * 3600 * 365);
             Response::setCookie('website', $c['website'], time() + 24 * 3600 * 365);
         }
     }
     if ($error) {
         $r = array('success' => FALSE, 'message' => $error);
     } else {
         $r = array('success' => TRUE, 'message' => _t('Post comment success.'));
     }
     if (Request::isAjax()) {
         Response::ajaxReturn($r);
     } else {
         if ($error) {
             Response::error(_t('Post failed'), $error);
         } else {
             Response::back();
         }
     }
 }
 /**
  * @brief commentDo 发表评论
  *
  * @return void
  */
 private function commentDo()
 {
     Widget::initWidget('Comment');
     Widget::getWidget('Comment')->postComment();
 }
 /**
  * @brief showPost 显示文章页面
  *
  * @param $params 传入参数
  *
  * @return void
  */
 public function showPost($params)
 {
     $this->setPID($params['pid']);
     if ($params['pid'] == 0 || !$this->query()) {
         Response::error(404);
     } else {
         Widget::initWidget('Comment');
         Widget::getWidget('Comment')->setPID($params['pid']);
         // TODO 由用户自定义
         Widget::getWidget('Comment')->setPerPage(100);
         Widget::getWidget('Comment')->query();
         // 阅读计数加一
         $post = new PostLibrary();
         $post->incView($params['pid']);
         // 设置标题、关键词、描述
         Widget::getWidget('Global')->title = $this->postTitle(0, FALSE);
         Widget::getWidget('Global')->description = $this->postContent(60, TRUE, FALSE);
         Widget::getWidget('Global')->keywords = strip_tags(str_replace(' , ', ',', $this->postTags(FALSE)));
         $this->display('post.php');
     }
 }
 /**
  * @brief delMetaDo 删除 Meta
  *
  * @return void
  */
 private function delMetaDo()
 {
     // 验证用户权限
     if (!Widget::getWidget('User')->isAdmin()) {
         Response::ajaxReturn(array('success' => FALSE, 'message' => _t('Permission denied.')));
         return;
     }
     Widget::initWidget('Meta');
     Widget::getWidget('Meta')->delMeta();
 }
Exemplo n.º 11
0
 /**
  * @brief showPage 显示页面
  *
  * @param $params 传入参数
  *
  * @return void
  */
 public function showPage($params)
 {
     Widget::initWidget('Post');
     Widget::getWidget('Post')->setAlias($params['alias']);
     if (!Widget::getWidget('Post')->query()) {
         Response::error(404);
     } else {
         Widget::initWidget('Comment');
         Widget::getWidget('Comment')->setAlias($params['alias']);
         // TODO 由用户自定义
         Widget::getWidget('Comment')->setPerPage(100);
         Widget::getWidget('Comment')->query();
         // 阅读计数加一
         $post = new PostLibrary();
         $post->incView($params['alias'], FALSE);
         // 设置标题、描述
         Widget::getWidget('Global')->title = Widget::getWidget('Post')->postTitle(0, FALSE);
         Widget::getWidget('Global')->description = Widget::getWidget('Post')->postContent(60, TRUE, FALSE);
         $this->display('post.php');
     }
 }
Exemplo n.º 12
0
 /**
  * @brief init LogX 全局初始化方法
  *
  * @return void
  */
 public static function init()
 {
     // 输出 Logo
     if (isset($_GET['591E-D5FC-8065-CD36-D3E8-E45C-DB86-9197'])) {
         Response::logo();
     }
     // 非 DEBUG 模式下关闭错误输出
     if (defined('LOGX_DEBUG')) {
         error_reporting(E_ALL);
     } else {
         error_reporting(0);
     }
     // 设置自动载入函数
     function __autoLoad($className)
     {
         if (substr($className, -7) == 'Library' && is_file(LOGX_LIB . $className . '.php')) {
             @(require_once LOGX_LIB . $className . '.php');
         }
     }
     // 设置错误与异常处理函数
     set_error_handler(array(__CLASS__, 'error'));
     set_exception_handler(array(__CLASS__, 'exception'));
     // 运行环境检查
     if (!version_compare(PHP_VERSION, '5.0.0', '>=')) {
         throw new LogXException(sprintf(_t('LogX needs PHP 5.0.x or higher to run. You are currently running PHP %s.'), PHP_VERSION));
     }
     if (!version_compare(PHP_VERSION, '5.2.0', '>=')) {
         // 针对低版本 PHP 的兼容代码
         @(require_once LOGX_CORE . 'Compat.php');
     }
     // 设置语言
     if (defined('LOGX_LANGUAGE')) {
         Language::set(LOGX_LANGUAGE);
     } else {
         Language::set('zh-cn');
     }
     // 预编译核心文件
     global $coreFiles;
     if (!defined('LOGX_DEBUG') && !file_exists(LOGX_CACHE . '~core.php')) {
         Compile::build(LOGX_CACHE, $coreFiles, 'core');
     } elseif (!defined('LOGX_DEBUG')) {
         $file_time = filemtime(LOGX_CACHE . '~core.php');
         foreach ($coreFiles as $file) {
             if (filemtime($file) > $file_time) {
                 Compile::build(LOGX_CACHE, $coreFiles, 'core');
                 break;
             }
         }
     }
     self::$_globalVars = array('RUN' => array('TIME' => microtime(TRUE), 'MEM' => function_exists('memory_get_usage') ? memory_get_usage() : 0, 'LANG' => 'zh-cn'), 'SYSTEM' => array('OS' => PHP_OS, 'HTTP' => Request::S('SERVER_SOFTWARE', 'string'), 'PHP' => PHP_VERSION, 'MYSQL' => ''), 'SUPPORT' => array('MYSQL' => function_exists('mysql_connect'), 'GD' => function_exists('imagecreate'), 'MEMCACHE' => function_exists('memcache_connect'), 'SHMOP' => function_exists('shmop_open'), 'GZIP' => function_exists('ob_gzhandler'), 'TIMEZONE' => function_exists('date_default_timezone_set'), 'AUTOLOAD' => function_exists('spl_autoload_register')), 'INI' => array('ALLOW_CALL_TIME_PASS_REFERENCE' => ini_get('allow_call_time_pass_reference'), 'MAGIC_QUOTES_GPC' => ini_get('magic_quotes_gpc'), 'REGISTER_GLOBALS' => ini_get('register_globals'), 'ALLOW_URL_FOPEN' => ini_get('allow_url_fopen'), 'ALLOW_URL_INCLUDE' => ini_get('allow_url_include'), 'SAFE_MODE' => ini_get('safe_mode'), 'MAX_EXECUTION_TIME' => ini_get('max_execution_time'), 'MEMORY_LIMIT' => ini_get('memory_limit'), 'POST_MAX_SIZE' => ini_get('post_max_size'), 'FILE_UPLOADS' => ini_get('file_uploads'), 'UPLOAD_MAX_FILESIZE' => ini_get('upload_max_filesize'), 'MAX_FILE_UPLOADS' => ini_get('max_file_uploads')));
     // 清除不需要的变量,防止变量注入
     $defined_vars = get_defined_vars();
     foreach ($defined_vars as $key => $value) {
         if (!in_array($key, array('_POST', '_GET', '_COOKIE', '_SERVER', '_FILES'))) {
             ${$key} = '';
             unset(${$key});
         }
     }
     // 对用户输入进行转义处理
     if (!get_magic_quotes_gpc()) {
         $_GET = self::addSlashes($_GET);
         $_POST = self::addSlashes($_POST);
         $_COOKIE = self::addSlashes($_COOKIE);
     }
     // 开启输出缓存
     if (defined('LOGX_GZIP') && self::$_globalVars['SUPPORT']['GZIP']) {
         ob_start('ob_gzhandler');
     } else {
         ob_start();
     }
     // 连接到数据库
     Database::connect(DB_HOST, DB_USER, DB_PWD, DB_NAME, DB_PCONNECT);
     self::$_globalVars['SYSTEM']['MYSQL'] = Database::version();
     // 设定时区
     if (self::$_globalVars['SUPPORT']['TIMEZONE']) {
         date_default_timezone_set(OptionLibrary::get('timezone'));
     }
     // 连接到缓存
     Cache::connect(CACHE_TYPE);
     // 初始化路由表
     Router::init();
     // 初始化主题控制器
     Theme::init();
     // 初始化 Plugin
     Plugin::initPlugins();
     // 初始化全局组件
     Widget::initWidget('Global');
     Widget::initWidget('Widget');
     Widget::initWidget('Page');
     Widget::initWidget('User');
     // 尝试自动登录
     Widget::getWidget('User')->autoLogin();
     // 启动路由分发
     Router::dispatch();
 }
Exemplo n.º 13
0
?>
</th>
					<th><?php 
_e('Content');
?>
</th>
					<th class="radius-topright"><?php 
_e('Date');
?>
</th>
				</tr>
			</thead>
			<tbody>
			<?php 
$i = 0;
Widget::initWidget('Comment');
Widget::getWidget('Comment')->setStatus(2);
Widget::getWidget('Comment')->setPerPage(20);
Widget::getWidget('Comment')->setCurrentPage(Request::G('cpage') ? Request::G('cpage') : 1);
Widget::getWidget('Comment')->query();
while (comment_next()) {
    ?>
				<tr<?php 
    if ($i % 2 == 0) {
        ?>
 class="even"<?php 
    }
    ?>
 id="post-<?php 
    comment_id();
    ?>