Пример #1
1
 private static function loader($class_name)
 {
     $require_file = AWS_PATH . preg_replace('#_+#', '/', $class_name) . '.php';
     if (file_exists($require_file)) {
         $class_file_location = $require_file;
     } else {
         if (class_exists('AWS_APP', false)) {
             self::$aliases = array_merge(self::$aliases, AWS_APP::plugins()->model());
         }
         if (isset(self::$aliases[$class_name])) {
             $class_file_location = self::$aliases[$class_name];
         } else {
             if (file_exists(ROOT_PATH . 'models/' . str_replace(array('_class', '_'), array('', '/'), $class_name) . '.php')) {
                 $class_file_location = ROOT_PATH . 'models/' . str_replace(array('_class', '_'), array('', '/'), $class_name) . '.php';
             } else {
                 if (file_exists(AWS_PATH . 'class/' . $class_name . '.inc.php')) {
                     $class_file_location = AWS_PATH . 'class/' . $class_name . '.inc.php';
                 }
             }
         }
     }
     if ($class_file_location) {
         require $class_file_location;
         self::$loaded_class[$class_name] = $class_file_location;
         if ($class_name == 'TPL') {
             TPL::initialize();
         }
         return true;
     }
 }
Пример #2
0
 public static function entry($args) {
     
     if( count($args) > 1 ) echo 404;
     else{
         
         $post  = ModelHandler::get("Posts", array($args[0]));
         $post = $post[0];
         $content = ViewHandler::wrap("post", $post);            
         $tpl = new TPL();
         $tpl->assign("content",$content);
         $tpl->draw("main");
         
     }
     
 }
Пример #3
0
 /**
  * 返回页面
  */
 public function afterOAuth($mpid, $page, $openid)
 {
     $page = $this->model('app\\merchant\\page')->byId($page);
     \TPL::assign('title', $page->title);
     \TPL::output('/app/merchant/shelf');
     exit;
 }
Пример #4
0
 public function service_group_list_action()
 {
     $this->crumb(AWS_APP::lang()->_t('客服组管理'), 'admin/ticket/service_group_list/');
     TPL::assign('groups_list', $this->model('account')->get_user_group_list(2, 2));
     TPL::assign('menu_list', $this->model('admin')->fetch_menu_list(403));
     TPL::output('admin/ticket/service_group_list');
 }
Пример #5
0
 public static function singleton()
 {
     require_once SYS_ROOT . "/smarty/Smarty.class.php";
     if (!isset(self::$instance)) {
         self::$instance = new Smarty();
         self::$instance->use_sub_dirs = true;
         //防止没有第一次使用的时候,无法连接数据库
         if (file_exists(dirname(dirname(__FILE__)) . '/config.php')) {
             $view_dir = daocall('setting', 'get', array('view_dir'));
         }
         if (!$view_dir) {
             $view_dir = 'default';
         }
         self::$instance->template_dir = APPLICATON_ROOT . '/view/' . $view_dir;
         self::$instance->compile_dir = SYS_ROOT . '/templates_c/' . $view_dir;
         if (!defined(TPL_ROOT)) {
             //define(TPL_ROOT,dirname($_SERVER["REQUEST_URI"]));
             define(TPL_ROOT, dirname($_SERVER['PHP_SELF']));
         }
         self::$instance->assign("STATIC", TPL_ROOT . '/view/' . $view_dir . '/');
         //self::$instance->assign("PSTATIC","/");
         //self::$instance->assign('role',getRoles());
         //self::$instance->caching = false;
         self::$instance->left_delimiter = '{{';
         self::$instance->right_delimiter = '}}';
     }
     return self::$instance;
 }
Пример #6
0
 public function index_action()
 {
     if ($_GET['tag']) {
         $this->crumb(AWS_APP::lang()->_t('标签') . ': ' . $_GET['tag'], '/favorite/tag-' . $_GET['tag']);
     }
     //边栏可能感兴趣的人或话题
     if (TPL::is_output('block/sidebar_recommend_users_topics.tpl.htm', 'favorite/index')) {
         $recommend_users_topics = $this->model('module')->recommend_users_topics($this->user_id);
         TPL::assign('sidebar_recommend_users_topics', $recommend_users_topics);
     }
     if ($action_list = $this->model('favorite')->get_item_list($_GET['tag'], $this->user_id, calc_page_limit($_GET['page'], get_setting('contents_per_page')))) {
         foreach ($action_list as $key => $val) {
             $item_ids[] = $val['item_id'];
         }
         TPL::assign('list', $action_list);
     } else {
         if (!$_GET['page'] or $_GET['page'] == 1) {
             $this->model('favorite')->remove_favorite_tag(null, null, $_GET['tag'], $this->user_id);
         }
     }
     if ($item_ids) {
         $favorite_items_tags = $this->model('favorite')->get_favorite_items_tags_by_item_id($this->user_id, $item_ids);
         TPL::assign('favorite_items_tags', $favorite_items_tags);
     }
     TPL::assign('favorite_tags', $this->model('favorite')->get_favorite_tags($this->user_id));
     TPL::assign('pagination', AWS_APP::pagination()->initialize(array('base_url' => get_js_url('/favorite/tag-' . $_GET['tag']), 'total_rows' => $this->model('favorite')->count_favorite_items($this->user_id, $_GET['tag']), 'per_page' => get_setting('contents_per_page')))->create_links());
     TPL::output('favorite/index');
 }
Пример #7
0
 public function index_action()
 {
     if (is_digits($_GET['id'])) {
         $feature_info = $this->model('feature')->get_feature_by_id($_GET['id']);
     } else {
         $feature_info = $this->model('feature')->get_feature_by_url_token($_GET['id']);
     }
     if (!$feature_info) {
         header('HTTP/1.1 404 Not Found');
         H::redirect_msg(AWS_APP::lang()->_t('专题不存在'), '/');
     }
     if (!$feature_info['enabled']) {
         H::redirect_msg(AWS_APP::lang()->_t('专题未启用'), '/');
     }
     if ($feature_info['url_token'] != $_GET['id'] and !$_GET['sort_type'] and !$_GET['is_recommend']) {
         HTTP::redirect('/feature/' . $feature_info['url_token']);
     }
     if (!($topic_list = $this->model('topic')->get_topics_by_ids($this->model('feature')->get_topics_by_feature_id($feature_info['id'])))) {
         H::redirect_msg(AWS_APP::lang()->_t('专题下必须包含一个以上话题'), '/');
     }
     if ($feature_info['seo_title']) {
         TPL::assign('page_title', $feature_info['seo_title']);
     } else {
         $this->crumb($feature_info['title'], '/feature/' . $feature_info['url_token']);
     }
     TPL::assign('sidebar_hot_topics', $topic_list);
     TPL::assign('feature_info', $feature_info);
     TPL::import_js('js/app/feature.js');
     TPL::output('feature/detail');
 }
Пример #8
0
 public function index_action()
 {
     if (!$this->user_id) {
         HTTP::redirect('/explore/');
     }
     if (!$this->user_info['email']) {
         HTTP::redirect('/account/complete_profile/');
     }
     // 边栏可能感兴趣的人或话题
     if (TPL::is_output('block/sidebar_recommend_users_topics.tpl.htm', 'home/index')) {
         $recommend_users_topics = $this->model('module')->recommend_users_topics($this->user_id);
         TPL::assign('sidebar_recommend_users_topics', $recommend_users_topics);
     }
     // 边栏热门用户
     if (TPL::is_output('block/sidebar_hot_users.tpl.htm', 'home/index')) {
         $sidebar_hot_users = $this->model('module')->sidebar_hot_users($this->user_id);
         TPL::assign('sidebar_hot_users', $sidebar_hot_users);
     }
     $this->crumb(AWS_APP::lang()->_t('动态'), '/home/');
     TPL::import_js('js/app/index.js');
     if ($_GET['first_login']) {
         TPL::import_js('js/ajaxupload.js');
     }
     TPL::output('home/index');
 }
Пример #9
0
 /**
  * 走马灯抽奖页面
  */
 public function index_action($aid)
 {
     $app = $this->model('app\\enroll')->byId($aid);
     \TPL::assign('enroll', $app);
     \TPL::output('/op/enroll/lottery');
     exit;
 }
Пример #10
0
 public function search_result_action()
 {
     if (!in_array($_GET['search_type'], array('questions', 'topics', 'users', 'articles'))) {
         $_GET['search_type'] = null;
     }
     $search_result = $this->model('search')->search(cjk_substr($_GET['q'], 0, 64), $_GET['search_type'], $_GET['page'], get_setting('contents_per_page'), null, $_GET['is_recommend']);
     if ($this->user_id and $search_result) {
         foreach ($search_result as $key => $val) {
             switch ($val['type']) {
                 case 'questions':
                     $search_result[$key]['focus'] = $this->model('question')->has_focus_question($val['search_id'], $this->user_id);
                     break;
                 case 'topics':
                     $search_result[$key]['focus'] = $this->model('topic')->has_focus_topic($this->user_id, $val['search_id']);
                     break;
                 case 'users':
                     $search_result[$key]['focus'] = $this->model('follow')->user_follow_check($this->user_id, $val['search_id']);
                     break;
             }
         }
     }
     TPL::assign('search_result', $search_result);
     if (is_mobile()) {
         TPL::output('m/ajax/search_result');
     } else {
         TPL::output('search/ajax/search_result');
     }
 }
Пример #11
0
 /**
  * 设置页面参数
  */
 public function view_action($path)
 {
     $features = $this->model('mp\\mpaccount')->getFeatures($this->mpid);
     \TPL::assign('can_member_card', $features->can_member_card);
     \TPL::assign('can_member_checkin', $features->can_member_checkin);
     parent::view_action($path);
 }
Пример #12
0
 public function list_action()
 {
     if ($this->is_post()) {
         foreach ($_POST as $key => $val) {
             if ($key == 'start_date' or $key == 'end_date') {
                 $val = base64_encode($val);
             }
             if ($key == 'keyword' or $key == 'user_name') {
                 $val = rawurlencode($val);
             }
             $param[] = $key . '-' . $val;
         }
         H::ajax_json_output(AWS_APP::RSM(array('url' => get_js_url('/admin/article/list/' . implode('__', $param))), 1, null));
     }
     $where = array();
     if ($_GET['keyword']) {
         $where[] = "(`title` LIKE '%" . $this->model('article')->quote($_GET['keyword']) . "%')";
     }
     if ($_GET['start_date']) {
         $where[] = 'add_time >= ' . strtotime(base64_decode($_GET['start_date']));
     }
     if ($_GET['end_date']) {
         $where[] = 'add_time <= ' . strtotime('+1 day', strtotime(base64_decode($_GET['end_date'])));
     }
     if ($_GET['user_name']) {
         $user_info = $this->model('account')->get_user_info_by_username($_GET['user_name']);
         $where[] = 'uid = ' . intval($user_info['uid']);
     }
     if ($_GET['comment_count_min']) {
         $where[] = 'comments >= ' . intval($_GET['comment_count_min']);
     }
     if ($_GET['answer_count_max']) {
         $where[] = 'comments <= ' . intval($_GET['comment_count_max']);
     }
     if ($articles_list = $this->model('article')->fetch_page('article', implode(' AND ', $where), 'id DESC', $_GET['page'], $this->per_page)) {
         $search_articles_total = $this->model('article')->found_rows();
     }
     if ($articles_list) {
         foreach ($articles_list as $key => $val) {
             $articles_list_uids[$val['uid']] = $val['uid'];
         }
         if ($articles_list_uids) {
             $articles_list_user_infos = $this->model('account')->get_user_info_by_uids($articles_list_uids);
         }
         foreach ($articles_list as $key => $val) {
             $articles_list[$key]['user_info'] = $articles_list_user_infos[$val['uid']];
         }
     }
     $url_param = array();
     foreach ($_GET as $key => $val) {
         if (!in_array($key, array('app', 'c', 'act', 'page'))) {
             $url_param[] = $key . '-' . $val;
         }
     }
     TPL::assign('pagination', AWS_APP::pagination()->initialize(array('base_url' => get_js_url('/admin/article/list/') . implode('__', $url_param), 'total_rows' => $search_articles_total, 'per_page' => $this->per_page))->create_links());
     $this->crumb(AWS_APP::lang()->_t('文章管理'), 'admin/article/list/');
     TPL::assign('articles_count', $search_articles_total);
     TPL::assign('list', $articles_list);
     TPL::output('admin/article/list');
 }
Пример #13
0
 public static function loadConfig()
 {
     //SQL::exec("INSERT INTO [config]p ([key],[value],[type],[assign]) VALUES ( 'url_blog_category','./%slug/','string',0 )");
     if ($result = SQL::query("SELECT [key],[value],[type],[assign] FROM [config]p")) {
         foreach ($result->fetch() as $item) {
             switch ($item->type) {
                 case 'string':
                     ESCMS::$cfg[$item->key] = (string) $item->value;
                     break;
                 case 'int':
                 case 'integer':
                     ESCMS::$cfg[$item->key] = (int) $item->value;
                     break;
                 case 'boolean':
                     ESCMS::$cfg[$item->key] = (bool) $item->value;
                     break;
                 default:
                     ESCMS::$cfg[$item->key] = $item->value;
                     break;
             }
             if ((bool) $item->assign) {
                 TPL::add($item->key, $item->value);
             }
             define('CFG_' . strtoupper($item->key), $item->value);
         }
     } else {
         throw new Exception('The configuration could not be loaded.');
     }
 }
Пример #14
0
 /**
  *
  */
 public function index_action($id = null)
 {
     if ($id) {
         $c = $this->model('app\\contribute')->byId($id);
         /**
          * belong to channel
          */
         $c->channels = $this->model('matter\\channel')->byMatter($id, 'contribute');
         /**
          * 参与人
          */
         $c->initiator = $this->model('app\\contribute')->userAcls($this->mpid, $id, 'I');
         $c->reviewer = $this->model('app\\contribute')->userAcls($this->mpid, $id, 'R');
         $c->typesetter = $this->model('app\\contribute')->userAcls($this->mpid, $id, 'T');
         /**
          * return
          */
         $channels = \TMS_APP::model('matter\\channel')->byMpid($this->mpid);
         $params = array('mpid' => $this->mpid, 'app' => $c, 'channels' => $channels);
         \TPL::assign('params', $params);
         $this->view_action('/mp/app/contribute/edit');
     } else {
         $this->view_action('/mp/app/contribute');
     }
 }
Пример #15
0
 public static function getInstance()
 {
     if (!self::$instance instanceof self) {
         self::$instance = new self();
     }
     return self::$instance;
 }
Пример #16
0
 public function run_action()
 {
     header('Expires: Mon, 26 Jul 1997 05:00:00 GMT');
     // Date in the past
     header('Last-Modified: ' . gmdate('D, d M Y H:i:s') . ' GMT');
     // always modified
     header('Cache-Control: no-cache, must-revalidate');
     // HTTP/1.1
     header('Pragma: no-cache');
     // HTTP/1.0
     @set_time_limit(0);
     if ($call_actions = $this->model('crond')->start()) {
         foreach ($call_actions as $call_action) {
             if ($plugins = AWS_APP::plugins()->parse('crond', 'main', $call_action)) {
                 foreach ($plugins as $plugin_file) {
                     include $plugin_file;
                 }
             }
             $call_function = $call_action;
             $this->model('crond')->{$call_function}();
         }
     }
     if (AWS_APP::config()->get('system')->debug) {
         TPL::output('global/debuger.tpl.htm');
     }
 }
Пример #17
0
 public function list_action()
 {
     if ($_GET['feature_id']) {
         $topic_ids = $this->model('feature')->get_topics_by_feature_id($_GET['feature_id']);
     } else {
         $topic_ids = explode(',', $_GET['topic_id']);
     }
     if ($_GET['per_page']) {
         $per_page = intval($_GET['per_page']);
     } else {
         $per_page = get_setting('contents_per_page');
     }
     if ($_GET['sort_type'] == 'hot') {
         $posts_list = $this->model('posts')->get_hot_posts($_GET['post_type'], $_GET['category'], $topic_ids, $_GET['day'], $_GET['page'], $per_page);
     } else {
         $posts_list = $this->model('posts')->get_posts_list($_GET['post_type'], $_GET['page'], $per_page, $_GET['sort_type'], $topic_ids, $_GET['category'], $_GET['answer_count'], $_GET['day'], $_GET['is_recommend']);
     }
     if (!is_mobile() and $posts_list) {
         foreach ($posts_list as $key => $val) {
             if ($val['answer_count']) {
                 $posts_list[$key]['answer_users'] = $this->model('question')->get_answer_users_by_question_id($val['question_id'], 2, $val['published_uid']);
             }
         }
     }
     TPL::assign('posts_list', $posts_list);
     if (is_mobile()) {
         TPL::output('m/ajax/explore_list');
     } else {
         TPL::output('explore/ajax/list');
     }
 }
Пример #18
0
 /**
  *
  */
 public function index_action()
 {
     $mpa = $this->getMpaccount();
     if ($mpa->asparent === 'Y') {
         $params = array();
         $params['mpaccount'] = $mpa;
         \TPL::assign('params', $params);
         $this->view_action('/mp/user/send/parentmp');
     } else {
         /**
          * 是否开通了支持发送消息的接口
          */
         $mpaccount = $this->getMpaccount();
         $apis = $this->model('mp\\mpaccount')->getApis($mpaccount->mpid);
         $canWxGroup = $mpaccount->mpsrc === 'wx' && ($apis->wx_group_push === 'Y' && $apis->wx_fansgroup === 'Y');
         $canYxGroup = $mpaccount->mpsrc === 'yx' && ($apis->yx_group_push === 'Y' && $apis->yx_fansgroup === 'Y');
         $canMember = $apis->mpsrc === 'qy' || $apis->mpsrc === 'yx' && $apis->yx_p2p === 'Y';
         $canSend = $canWxGroup || $canYxGroup || $canMember;
         if ($canSend) {
             $this->view_action('/mp/user/send/main');
         } else {
             $this->view_action('/mp/user/send/unsupport');
         }
     }
 }
 public function index_action()
 {
     if ($_POST['mobile_app_secret']) {
         $this->model('myapi')->save_mobile_app_secret(trim($_POST['mobile_app_secret']));
         H::ajax_json_output(AWS_APP::RSM(null, '-1', AWS_APP::lang()->_t('保存设置成功')));
     }
     TPL::output('admin/mobile_app_config');
 }
Пример #20
0
 /**
  *
  */
 public function index_action($aid, $page)
 {
     $options = array('cascaded' => 'N');
     $app = $this->model('app\\enroll')->byId($aid, $options);
     \TPL::assign('title', $app->title);
     \TPL::output('/op/enroll/page');
     exit;
 }
Пример #21
0
 public function rule_action()
 {
     $this->crumb(AWS_APP::lang()->_t('%s 积分规则', get_setting('site_name')));
     if (get_setting('integral_system_enabled') != 'Y') {
         H::redirect_msg(AWS_APP::lang()->_t('本站未启用积分系统'), '/');
     }
     TPL::output('integral/rule');
 }
 public static function redirect_msg($message, $url = NULL, $interval = 5)
 {
     TPL::assign('message', $message);
     TPL::assign('url_bit', HTTP::parse_redirect_url($url));
     TPL::assign('interval', $interval);
     TPL::output('global/show_message');
     die;
 }
Пример #23
0
 public function index_action()
 {
     if (!$this->user_info['email']) {
         H::redirect_msg(AWS_APP::lang()->_t('当前帐号没有提供 Email, 此功能不可用'));
     }
     $this->crumb(AWS_APP::lang()->_t('邀请好友'), '/invitation/');
     TPL::output('invitation/index');
 }
Пример #24
0
 /**
  *
  */
 public function index_action($mpid, $id)
 {
     if (empty($id)) {
         /* list */
         \TPL::output('/matter/article-list');
         exit;
     } else {
     }
 }
Пример #25
0
 /**
  * 进入支付页
  *
  * 要求当前用户必须是认证用户
  *
  * $mpid mpid'id
  * $shop shop'id
  * $sku sku'id
  */
 public function index_action($mpid, $mocker = null, $code = null)
 {
     /**
      * 获得当前访问用户
      */
     $openid = $this->doAuth($mpid, $code, $mocker);
     \TPL::output('/app/merchant/payok');
     exit;
 }
Пример #26
0
 public function get_mail_template($user_name, $subject, $message, $link = null, $link_title = null)
 {
     TPL::assign('user_name', $user_name);
     TPL::assign('subject', $subject);
     TPL::assign('message', $message);
     TPL::assign('link', $link);
     TPL::assign('link_title', $link_title);
     return TPL::output('global/email_template', false);
 }
Пример #27
0
 public function edit_action()
 {
     if (!($category_info = $this->model('system')->get_category_info($_GET['category_id']))) {
         H::redirect_msg(AWS_APP::lang()->_t('指定分类不存在'), '/admin/category/list/');
     }
     TPL::assign('category', $category_info);
     TPL::assign('category_option', $this->model('system')->build_category_html($category_info['type'], 0, $category['parent_id'], null, false));
     TPL::output('admin/category/edit');
 }
Пример #28
0
 public function edit_action()
 {
     $this->crumb(AWS_APP::lang()->_t('编辑页面'), "admin/page/edit/");
     if (!($page_info = $this->model('page')->get_page_by_url_id($_GET['id']))) {
         H::redirect_msg(AWS_APP::lang()->_t('页面不存在'), '/admin/page/');
     }
     TPL::assign('page_info', $page_info);
     TPL::output('admin/page/publish');
 }
Пример #29
0
 public function search_result_action()
 {
     if (!in_array($_GET['search_type'], array('questions', 'topics', 'users', 'articles'))) {
         $_GET['search_type'] = null;
     }
     $search_result = $this->model('search')->search(cjk_substr($_GET['q'], 0, 64), $_GET['search_type'], $_GET['page'], get_setting('contents_per_page'), null, $_GET['is_recommend']);
     if ($search_result) {
         foreach ($search_result as $key => $val) {
             switch ($val['type']) {
                 case 'questions':
                     $search_result_questions[] = $this->model('question')->get_question_info_by_id($val['search_id']);
                     break;
                 case 'topics':
                     $search_result_topics[] = $this->model('topic')->get_topic_by_id($val['search_id']);
                     break;
                 case 'users':
                     $search_result_users[] = $this->model('account')->get_user_info_by_uid($val['search_id']);
                     break;
                 default:
                     $search_result_articles[] = $this->model('article')->get_article_info_by_id($val['search_id']);
             }
         }
     }
     // 问题缩略图
     foreach ($search_result_questions as $key => $value) {
         if ($value['has_attach']) {
             $value['attachs'] = $this->model('publish')->get_attach('question', $value['question_id'], 'min');
         }
         $search_result_questions[$key] = $value;
     }
     // 专题关注
     foreach ($search_result_topics as $key => $value) {
         $search_result_topics[$key]['has_focus'] = $this->model('topic')->has_focus_topic($this->user_id, $value['topic_id']);
     }
     // 文章缩略图
     foreach ($search_result_articles as $key => $value) {
         if ($value['has_attach']) {
             $value['attachs'] = $this->model('publish')->get_attach('article', $value['id'], 'min');
         }
         $search_result_articles[$key] = $value;
     }
     // 用户关注
     foreach ($search_result_users as $key => $value) {
         $search_result_users[$key]['follow_check'] = $this->model('follow')->user_follow_check($this->user_id, $value['uid']);
     }
     TPL::assign('search_result_questions', $search_result_questions);
     TPL::assign('search_result_users', $search_result_users);
     TPL::assign('search_result_topics', $search_result_topics);
     TPL::assign('search_result_articles', $search_result_articles);
     TPL::assign('search_result', $search_result);
     if (is_mobile()) {
         TPL::output('m/ajax/search_result');
     } else {
         TPL::output('search/ajax/search_result');
     }
 }
Пример #30
0
 public function modify_action()
 {
     if (!($active_code_row = $this->model('active')->get_active_code($_GET['key'], 'FIND_PASSWORD'))) {
         H::redirect_msg(AWS_APP::lang()->_t('链接已失效'), '/');
     }
     if ($active_code_row['active_time'] or $active_code_row['active_ip']) {
         H::redirect_msg(AWS_APP::lang()->_t('链接已失效'), '/');
     }
     TPL::output('account/find_password/modify');
 }