示例#1
0
 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));
 }
示例#2
0
 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();
 }
示例#3
0
 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);
 }
示例#5
0
' 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 
示例#6
0
 public function index()
 {
     $this->set_title(Cfg::setting('site', 'site', 'title'))->add_param('_method', $this->get_method())->load_view();
 }
示例#7
0
 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 '';
 }
示例#8
0
<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'));
 }
示例#10
0
<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');
示例#11
0
 public function role_names()
 {
     return array_filter(array_map(function ($role) {
         return Cfg::setting('role', 'role_names', $role);
     }, column_array($this->roles, 'name')));
 }
示例#12
0
 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')));
 }
示例#13
0
 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 '';
 }
示例#14
0
 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));
 }