public function index($tag_id, $offset = 0) { $columns = array(); $configs = array('article-tag', $this->tag->id, 'articles', '%s'); $conditions = conditions($columns, $configs); ArticleTagMapping::addConditions($conditions, 'article_tag_id = ?', $this->tag->id); $limit = 7; $total = ArticleTagMapping::count(array('conditions' => $conditions)); $offset = $offset < $total ? $offset : 0; $this->load->library('pagination'); $pagination = $this->pagination->initialize(array_merge(array('total_rows' => $total, 'num_links' => 3, 'per_page' => $limit, 'uri_segment' => 0, 'base_url' => '', 'page_query_string' => false, 'first_link' => '第一頁', 'last_link' => '最後頁', 'prev_link' => '上一頁', 'next_link' => '下一頁', 'full_tag_open' => '<ul class="pagination">', 'full_tag_close' => '</ul>', 'first_tag_open' => '<li class="f">', 'first_tag_close' => '</li>', 'prev_tag_open' => '<li class="p">', 'prev_tag_close' => '</li>', 'num_tag_open' => '<li>', 'num_tag_close' => '</li>', 'cur_tag_open' => '<li class="active"><a href="#">', 'cur_tag_close' => '</a></li>', 'next_tag_open' => '<li class="n">', 'next_tag_close' => '</li>', 'last_tag_open' => '<li class="l">', 'last_tag_close' => '</li>'), $configs))->create_links(); $article_ids = column_array(ArticleTagMapping::find('all', array('select' => 'article_id', 'offset' => $offset, 'limit' => $limit, 'order' => 'article_id DESC', 'conditions' => $conditions)), 'article_id'); $articles = $article_ids ? Article::find('all', array('order' => 'FIELD(id,' . implode(',', $article_ids) . ')', 'conditions' => array('is_visibled = ? AND id IN (?) AND destroy_user_id IS NULL', Article::IS_VISIBLED, $article_ids))) : array(); if ($articles) { $this->add_meta(array('name' => 'keywords', 'content' => implode(',', column_array($articles, 'title')) . ',' . implode(',', Cfg::setting('site', 'site', 'keywords'))))->add_meta(array('name' => 'description', 'content' => $articles[0]->mini_content(150)))->add_meta(array('property' => 'og:title', 'content' => $this->tag->name . '文章' . ' - ' . Cfg::setting('site', 'site', 'title')))->add_meta(array('property' => 'og:description', 'content' => $articles[0]->mini_content(300)))->add_meta(array('property' => 'og:image', 'tag' => 'larger', 'content' => $img = $articles[0]->cover->url('1200x630c'), 'alt' => $this->tag->name . '文章' . ' - ' . Cfg::setting('site', 'site', 'title')))->add_meta(array('property' => 'og:image:type', 'tag' => 'larger', 'content' => 'image/' . pathinfo($img, PATHINFO_EXTENSION)))->add_meta(array('property' => 'og:image:width', 'tag' => 'larger', 'content' => '1200'))->add_meta(array('property' => 'og:image:height', 'tag' => 'larger', 'content' => '630'))->add_meta(array('property' => 'article:modified_time', 'content' => $articles[0]->updated_at->format('c')))->add_meta(array('property' => 'article:published_time', 'content' => $articles[0]->created_at->format('c'))); if (($tags = column_array($articles[0]->tags, 'name')) || ($tags = Cfg::setting('site', 'site', 'keywords'))) { foreach ($tags as $i => $tag) { if (!$i) { $this->add_meta(array('property' => 'article:section', 'content' => $tag))->add_meta(array('property' => 'article:tag', 'content' => $tag)); } else { $this->add_meta(array('property' => 'article:tag', 'content' => $tag)); } } } } return $this->set_title($this->tag->name . '文章' . ' - ' . Cfg::setting('site', 'site', 'title'))->set_class('articles')->set_method('index')->load_view(array('tag' => $this->tag, 'articles' => $articles, 'pagination' => $pagination, 'columns' => $columns)); }
public static function me() { if (!(self::faceBook() && self::$accessToken)) { return null; } $get_fields = implode(',', Cfg::setting('facebook', 'get_fields')); self::faceBook()->setDefaultAccessToken(self::$accessToken); return self::faceBook()->get('/me' . ($get_fields ? '?fields=' . $get_fields : ''))->getGraphUser(); }
public function __construct() { parent::__construct(); $config = Cfg::setting('mail'); if (isset($config['host']) && isset($config['port']) && isset($config['user']) && isset($config['passwd']) && isset($config['from']) && isset($config['from_name']) && $config['host'] && $config['port'] && $config['user'] && $config['passwd'] && $config['from'] && $config['from_name']) { $this->isSMTP(); $this->SMTPAuth = true; $this->Host = $config['host']; $this->Port = $config['port']; $this->Username = $config['user']; $this->Password = $config['passwd']; $this->From = $config['from']; $this->FromName = $config['from_name']; } $this->CharSet = $config['charset']; $this->Encoding = $config['encoding']; $this->isHTML(true); $this->WordWrap = 50; if (!empty($config['secure'])) { $this->SMTPSecure = $config['secure']; } }
public function __construct() { parent::__construct(); if (!(User::current() && User::current()->is_login())) { Session::setData('_flash_message', '', true); return redirect_message(array('login'), array('_flash_message' => '請先登入,或者您沒有後台權限!')); } $class = $this->get_class(); $method = $this->get_method(); $menus_list = array_map(function ($menus) use($class, $method, &$has_active) { return array_map(function ($item) use($class, $method, &$has_active) { $has_active |= $a = isset($item['class']) && $item['class'] && $class == $item['class'] && (isset($item['method']) && $item['method']) && $method == $item['method'] || isset($item['class']) && $item['class'] && $class == $item['class'] && !(isset($item['method']) && $item['method']) || !(isset($item['class']) && $item['class']) && (isset($item['method']) && $item['method']) && $method == $item['method']; return array_merge($item, array('active' => $a)); }, $menus); }, array_filter(array_map(function ($group) { return array_filter($group, function ($item) { return User::current()->in_roles($item['roles']); }); }, Cfg::setting('menu', 'admin')))); if (!$has_active) { return redirect_message(array('admin'), array('_flash_message' => '您沒有此頁面的管理權限。')); } $this->set_componemt_path('component', 'admin')->set_frame_path('frame', 'admin')->set_content_path('content', 'admin')->set_public_path('public')->set_title(Cfg::setting('site', 'admin', 'title'))->_add_meta()->_add_css()->_add_js()->add_param('_menus_list', $menus_list); }
' placeholder='請輸入名稱..' maxlength='200' pattern='.{1,200}' required title='輸入名稱!' autofocus /> </td> </tr> <tr> <th>電子郵件:</th> <td> <input type='text' name='email' value='<?php echo isset($posts['email']) ? $posts['email'] : $user->email; ?> ' placeholder='請輸入電子郵件..' maxlength='200' pattern='.{1,200}' required title='輸入電子郵件!' /> </td> </tr> <?php if ($roles = Cfg::setting('role', 'role_names')) { ?> <tr> <th>角 色:</th> <td> <?php $last_roles = isset($posts['roles']) ? $posts['roles'] : column_array($user->roles, 'name'); foreach ($roles as $key => $name) { ?> <label><input type='checkbox' name='roles[]' value='<?php echo $key; ?> '<?php echo $last_roles && in_array($key, $last_roles) ? ' checked' : ''; ?> /><div><?php
public function index() { $this->set_title(Cfg::setting('site', 'site', 'title'))->add_param('_method', $this->get_method())->load_view(); }
private function _validation_posts(&$posts) { if (!(isset($posts['user_id']) && is_numeric($posts['user_id'] = trim($posts['user_id'])) && $posts['user_id'] >= 0 && (!$posts['user_id'] || User::find_by_id($posts['user_id'])))) { return '沒有選擇作者 或 作者錯誤!'; } if (!(isset($posts['title']) && ($posts['title'] = trim($posts['title'])))) { return '沒有填寫標題!'; } if (!(isset($posts['content']) && ($posts['content'] = trim($posts['content'])))) { return '沒有填寫內容!'; } $posts['content'] = str_replace('alt=""', 'alt="' . str_replace('"', '', $posts['title']) . ' - ' . Cfg::setting('site', 'name') . '"', $posts['content']); if (!(isset($posts['is_visibled']) && ($posts['is_visibled'] = trim($posts['is_visibled'])))) { $posts['is_finished'] = 0; } else { $posts['is_finished'] = 1; } if (!isset($posts['tag_ids'])) { $posts['tag_ids'] = array(); } $posts['sources'] = isset($posts['sources']) && ($posts['sources'] = array_filter(array_map(function ($source) { $return = array('title' => trim($source['title']), 'href' => trim($source['href'])); return $return['href'] ? $return : null; }, $posts['sources']))) ? $posts['sources'] : array(); return ''; }
<div id='footer'><div></div><div><div><?php echo Cfg::setting('site', 'admin', 'footer', 'title'); ?> </div><div><?php echo Cfg::setting('site', 'admin', 'footer', 'description'); ?> </div></div><div></div></div>
private function _add_meta() { return $this->add_meta(array('name' => 'robots', 'content' => 'index,follow'))->add_meta(array('name' => 'keywords', 'content' => implode(',', Cfg::setting('site', 'site', 'keywords'))))->add_meta(array('name' => 'description', 'content' => Cfg::setting('site', 'site', 'description')))->add_meta(array('property' => 'og:site_name', 'content' => Cfg::setting('site', 'site', 'title')))->add_meta(array('property' => 'og:url', 'content' => current_url()))->add_meta(array('property' => 'og:title', 'content' => Cfg::setting('site', 'site', 'title')))->add_meta(array('property' => 'og:description', 'content' => Cfg::setting('site', 'site', 'description')))->add_meta(array('property' => 'fb:admins', 'content' => Cfg::setting('facebook', 'admins')))->add_meta(array('property' => 'fb:app_id', 'content' => Cfg::setting('facebook', 'appId')))->add_meta(array('property' => 'og:locale', 'content' => 'zh_TW'))->add_meta(array('property' => 'og:locale:alternate', 'content' => 'en_US'))->add_meta(array('property' => 'og:type', 'content' => 'article'))->add_meta(array('property' => 'article:author', 'content' => Cfg::setting('facebook', 'page', 'link')))->add_meta(array('property' => 'article:publisher', 'content' => Cfg::setting('facebook', 'page', 'link')))->add_meta(array('property' => 'og:image', 'tag' => 'larger', 'content' => $img = resource_url('resource', 'image', 'logo', 'banner-compressor.jpg'), 'alt' => Cfg::setting('site', 'site', 'title')))->add_meta(array('property' => 'og:image:type', 'tag' => 'larger', 'content' => 'image/' . pathinfo($img, PATHINFO_EXTENSION)))->add_meta(array('property' => 'og:image:width', 'tag' => 'larger', 'content' => '1200'))->add_meta(array('property' => 'og:image:height', 'tag' => 'larger', 'content' => '630')); }
<header class='_h'> <a href='<?php echo base_url(); ?> '> <img src='<?php echo resource_url('resource', 'image', 'logo', 'logo.png'); ?> ' alt='<?php echo Cfg::setting('site', 'site', 'title'); ?> '> </a> <nav> <a href='<?php echo base_url(); ?> '<?php echo $key == 'index' ? 'class="a"' : ''; ?> >Home</a> <a href='<?php echo base_url('works'); ?> '<?php echo $key == 'works' ? 'class="a"' : ''; ?> >設計作品</a> <a href='<?php echo base_url('articles');
public function role_names() { return array_filter(array_map(function ($role) { return Cfg::setting('role', 'role_names', $role); }, column_array($this->roles, 'name'))); }
public function __construct() { parent::__construct(); $this->add_meta(array('http-equiv' => 'Content-type', 'content' => 'text/html; charset=utf-8'))->add_meta(array('name' => 'viewport', 'content' => 'width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no, minimal-ui'))->add_hidden(array('id' => 'ajax_navbar_url', 'value' => base_url('ajax', 'navbar')))->add_hidden(array('id' => 'facebook_appId', 'value' => Cfg::setting('facebook', 'appId')))->add_hidden(array('id' => 'facebook_version', 'value' => Cfg::setting('facebook', 'version'))); }
private function _validation_posts(&$posts) { if (!(isset($posts['name']) && ($posts['name'] = trim($posts['name'])))) { return '沒有填寫名稱!'; } if (!(isset($posts['email']) && ($posts['email'] = trim($posts['email'])))) { return '沒有填寫電子郵件!'; } if (!isset($posts['roles'])) { $posts['roles'] = array(); } $posts['roles'] = array_filter($posts['roles'], function ($role) { return in_array($role, Cfg::setting('role', 'roles')); }); return ''; }
public function index() { $posts = Session::getData('posts', true); $this->set_title('聯絡我們' . ' - ' . Cfg::setting('site', 'site', 'title'))->add_param('_method', $this->get_class())->add_js(resource_url('resource', 'javascript', 'jquery.validate_v1.9.0', 'jquery.validate.min.js'))->add_js(resource_url('resource', 'javascript', 'jquery.validate_v1.9.0', 'jquery.validate.lang.js'))->load_view(array('posts' => $posts)); }