Example #1
1
<?php

error_reporting(E_ALL);
ini_set('display_errors', 1);
require_once 'flight/flight/Flight.php';
require_once 'ipsp-php/autoload.php';
Flight::set('flight.views.path', 'templates');
Flight::set('layout', 'layout/default');
Flight::set('appname', 'IPSP PHP Examples');
Flight::set('apptitle', 'Api');
Flight::register('ipsp', 'Ipsp_Api', array(new Ipsp_Client(1000, 'test', 'api.oplata.com')));
Flight::map('output', function ($content = NULL) {
    Flight::view()->set('ipsp', Flight::ipsp());
    Flight::render($content, array(), 'content');
    Flight::render(Flight::get('layout'));
});
Flight::route('/', function () {
    Flight::output('pages/frontpage');
});
Flight::route('/page/@page(/@order_id)', function ($page = 'notfound', $order_id = NULL) {
    Flight::view()->set('order_id', $order_id);
    Flight::output(sprintf('pages/%s', $page));
});
Flight::route('/modal/@page', function ($page = 'notfound') {
    Flight::view()->set('ipsp', Flight::ipsp());
    Flight::render(sprintf('modal/%s', $page));
});
Flight::route('/api/checkout', function () {
    $data = Flight::request()->data;
});
Flight::start();
Example #2
0
 /**
  * Constructor
  */
 public function __construct($install)
 {
     parent::__construct($install);
     if (F::has('pageinfos')) {
         F::view()->assign(array('pageinfos' => Files::getPageInfos(F::get('pageinfos')['cat'], F::get('pageinfos')['page'])));
     }
 }
Example #3
0
 /**
  * check if user is logged in as admin
  */
 private function checkAdmin()
 {
     $admin = false;
     if (isset($_SESSION['admin'])) {
         F::set('admin', 1);
         $admin = true;
     }
     F::view()->assign(array('admin' => $admin));
 }
Example #4
0
 function testDefaultComponents()
 {
     $request = Flight::request();
     $response = Flight::response();
     $router = Flight::router();
     $view = Flight::view();
     $this->assertEquals('flight\\net\\Request', get_class($request));
     $this->assertEquals('flight\\net\\Response', get_class($response));
     $this->assertEquals('flight\\net\\Router', get_class($router));
     $this->assertEquals('flight\\template\\View', get_class($view));
 }
Example #5
0
 /**
  * bootstrap
  * for framework bootstrap.
  */
 public static function bootstrap()
 {
     //route
     require APP_PATH . '/routes.php';
     //set timezone
     $timezone = env('APP_TIMEZONE', 'Asia/Shanghai');
     date_default_timezone_set($timezone);
     //filters
     if (get_magic_quotes_gpc()) {
         $_GET = self::stripslashesDeep($_GET);
         $_POST = self::stripslashesDeep($_POST);
         $_COOKIE = self::stripslashesDeep($_COOKIE);
     }
     $_REQUEST = array_merge($_GET, $_POST, $_COOKIE);
     /*--
       Flight maps start
       --*/
     //log
     Flight::map('log', [__CLASS__, 'log']);
     //db : database
     Flight::map('db', [__CLASS__, 'db']);
     //model
     Flight::map('model', [__CLASS__, 'getModel']);
     //cache
     Flight::map('cache', [__CLASS__, 'cache']);
     //get controller
     Flight::map('controller', [__CLASS__, 'getController']);
     //halt response
     Flight::map("halt", array(__CLASS__, "halt"));
     //404 error
     Flight::map('notFound', function () {
         //Flight::log()->error(Flight::request()->ip.': '.Flight::request()->method.' '.Flight::request()->url.' not Found !');
         Flight::log()->error('404 NOT FOUND !', json_decode(json_encode(Flight::request()), true));
         return self::halt(Flight::view()->fetch('404'), '404');
     });
     /*
     Flight::map('error', function(Exception $ex){
         // Handle error
         Flight::log()->error('500 Error : '.$ex->getTraceAsString());
         echo $ex->getTraceAsString();
     });
     */
     /*--
       Flight maps end
       --*/
 }
Example #6
0
/**
 * ===============================================
 *  debug
 * ===============================================
 */
function debug($var)
{
    # serialize()
    $serial = serialize($var);
    # print_r()
    $print_r = print_r($var, true);
    # var_dump()
    ob_start();
    var_dump($var);
    $var_dump = ob_get_clean();
    ob_end_clean();
    # var_export()
    $var_export = var_export($var, true);
    \Flight::view()->assign(array('serial' => $serial, 'print_r' => $print_r, 'var_dump' => $var_dump, 'var_export' => $var_export));
    \Flight::render('debug.html');
    exit;
}
Example #7
0
    <h2><?if($item->title) : ?><?php 
echo $item->title;
?>
<? else : ?>Untitled<?endif?></h2>
    <div class="col-md-5 col-xs-12">
        <? if($item->imageUrl()) : ?>
        <div class="imageWrap center-block row">
            <img src="<?php 
echo $item->imageUrl();
?>
" class="mainImage img-responsive">
        </div>
        <?endif?>
    </div>
    <div class="col-md-6 col-xs-12">
        <? Flight::view()->render('frontend/imageBox', array('item' => $item)) ?>
        <? Flight::view()->render('frontend/template/listing', array('item' => $item)) ?>
    </div>
<?endif?>

<div class="clearfix"></div>


<script>
    +function ($) {
        $(document).ready(function(){
            $('.entry-title').css('display',"none");
        });
    }(jQuery);
</script>
Example #8
0
 /**
  * Create a short code to load a real time list of items from ArtMoi
  * @param $args
  * @return mixed
  */
 public function getFeaturedCollection($args)
 {
     // Detect devices
     $isMobile = false;
     if (wp_is_mobile()) {
         $isMobile = true;
     }
     wp_reset_postdata();
     wp_enqueue_script('items', plugins_url('ArtMoiWP/scripts/collection.js'));
     $this->artmoiwp_creationpage = get_option('artmoiwp_creationpage');
     global $post;
     $postId = $post->ID;
     // the post ID in edit , not published
     $artmoi = Flight::artmoi();
     $controller = 'collection';
     $action = $args['collection'];
     $response = $artmoi->call($controller, $action);
     $templateType = get_post_meta($postId, 'templateType', true);
     if (!$templateType) {
         $templateType = 'collection';
         update_post_meta($postId, 'templateType', "collection");
     }
     $items = $response->itemResults();
     Flight::render('frontend/modal', array('items' => $items, 'creationPostId' => $this->artmoiwp_creationpage, 'isMobile' => $isMobile), 'modal');
     $output = Flight::view()->fetch('frontend/template/' . $templateType, array('items' => $items));
     return $output;
 }
Example #9
0
 public function render(Page $page)
 {
     return Flight::view()->display($page->getTemplate(), $page->getTemplateData());
 }
Example #10
0
} elseif (is_file($path . '/../config.php')) {
    require_once $path . '/../config.php';
} else {
    echo "Invalid config file.";
    die;
}
// Register classes with Flight
Flight::register('artmoiController', 'ArtMoi_Controller');
Flight::register('artmoiRequest', 'ArtMoi_Request');
Flight::register('artmoiResponse', 'ArtMoi_Response');
Flight::register('artmoiContact', 'ArtMoi_Controller_Contact');
// 404 Error page
Flight::map('notFound', function () {
    Flight::view()->set('errorCode', "404");
    Flight::view()->set('message', "Sorry! 404 Page not Found");
    Flight::view()->set('pageTitle', "404 Page not Found");
    Flight::render('404');
});
// Contact Page
Flight::route('/contact', function () {
    // TODO:: We will need to include the form validation as optional because anyone downloading this project will need to obtain thier own license...
    $js = array("https://v1.artmoi.me/vendor/formvalidation/dist/js/formValidation.min.js", "https://v1.artmoi.me/vendor/formvalidation/dist/js/framework/bootstrap.min.js", "//cdnjs.cloudflare.com/ajax/libs/select2/4.0.0/js/select2.min.js", "/scripts/contact.js");
    $css = array("https://v1.artmoi.me/vendor/formvalidation/dist/css/formValidation.min.css", "//cdnjs.cloudflare.com/ajax/libs/select2/4.0.0/css/select2.min.css");
    $contact = Flight::artmoiContact()->action_contactPoints();
    if ($_SERVER["REQUEST_METHOD"] == "POST") {
        if (MANDRILL_API_KEY != null) {
            Flight::artmoiContact()->action_mandrill();
        } else {
            Flight::artmoiContact()->action_sendMail();
        }
    }
    // Add the debug extension
});
/**
 * Initiate ActiveRecord
 */
ActiveRecord\Config::initialize(function ($cfg) {
    $cfg->set_model_directory('./models');
    $cfg->set_connections(array('development' => 'mysql://*****:*****@localhost/test'));
    $cfg->set_default_connection('development');
});
/**
 * Add /controllers to the include-path
 */
Flight::path(dirname(__FILE__) . '/controllers');
Flight::route('/', array('IndexController', 'index'));
Flight::route('/test', function () {
    echo "hello!";
});
Flight::route('/test-user', function () {
    $user = new User();
    $user->firstname = 'Marcus';
    $user->surname = 'Olsson';
    $user->email = '*****@*****.**';
    $user->save();
    print_r(User::last());
});
Flight::route('/hello', function () {
    $data = array('name' => Flight::request()->query->name);
    Flight::view()->display('template.html', $data);
});
Flight::start();
Example #12
0
 /**
  * index
  * 统计方法
  *
  * @var string
  */
 public static function index()
 {
     // 验证登录态
     self::__verify_user_auth();
     // 获取参数
     $id = Flight::request()->query->id;
     $orderby = Flight::request()->query->orderby;
     $order = Flight::request()->query->order;
     // 获取配置
     $conf = Util::get_conf_data();
     // 没有要展示的统计默认展示第一个
     if (!$id && is_array($conf)) {
         $tmp_conf = $conf;
         $first_conf = array_shift($tmp_conf);
         $id = $first_conf['id'];
         Flight::view()->set('stats_id', $id);
     }
     // 根据语句处理拼接要是统计的数据
     $render_data = array();
     foreach ($conf as $k => $data) {
         if ($data['id'] == $id) {
             // 根据参数整理sql语句
             $orderby_sql = '';
             if ($orderby && $data['field_names'][$orderby]) {
                 if (!in_array($order, array('DESC', 'ASC'))) {
                     $order = 'DESC';
                 }
                 $orderby_sql = ' ORDER BY ' . $orderby . ' ' . $order;
             }
             $links = $data['links'];
             // 根据参数拼接limit
             $limit_sql = '';
             $date = array();
             if ($data['time_range']) {
                 switch ($data['time_range']) {
                     case 'last_month_date':
                         $limit_sql = ' LIMIT 0,31';
                         $date = self::__last_day($data['time_range']);
                         break;
                     default:
                         break;
                 }
             }
             // 拼接sql并且进行查询
             $sqls = $data['sqls'];
             $sql = $data['sql'];
             $params = array();
             $db = Flight::$data['database_service_name']();
             // 拼接sql获取数据
             $rebuilt_rows = array();
             if ($sqls) {
                 foreach ($sqls as $sql_value) {
                     $rows_data[] = self::__get_rows($db, $sql_value['sql'], $sql_value['query_string'], $limit_sql, $orderby_sql);
                 }
             } else {
                 $rebuilt_rows = self::__get_rows($db, $sql, $data['query_string'], $limit_sql, $orderby_sql);
             }
             // 获取要显示的字段
             $field_names = $data['field_names'];
             // 处理数据集合
             if ($rows_data) {
                 $same_field = $data['same_field'];
                 // 将统一的字段是按照最近30天还是最近7天附上值
                 foreach ($date as $date_value) {
                     $rebuilt_rows[$date_value] = array();
                 }
                 // 整理rows进行合并
                 foreach ($rows_data as $row) {
                     // 判断是否有row
                     if ($row) {
                         foreach ($row as $value) {
                             // 判断时间内是否有我最近30天的数据
                             if (in_array($value[$same_field], $date)) {
                                 $rebuilt_rows[$value[$same_field]] = array_merge($value, $rebuilt_rows[$value[$same_field]]);
                             }
                         }
                     }
                 }
                 // 再整理一下rows_data数据
                 foreach ($rebuilt_rows as $key => $rebuilt_row) {
                     foreach ($field_names as $field_name_key => $field_name) {
                         if ($field_name_key == $same_field) {
                             $rebuilt_rows[$key][$same_field] = $key;
                         } else {
                             if (!$rebuilt_row[$field_name_key]) {
                                 $rebuilt_rows[$key][$field_name_key] = 0;
                             }
                         }
                     }
                 }
             }
             // 拼接统计数据
             if ($data['charts'] && $rebuilt_rows) {
                 $chart_data = array();
                 foreach ($data['charts'] as $k => $chart_conf) {
                     $chart_data[$k] = $chart_conf;
                     if ($chart_conf['x'] && $chart_conf['y']) {
                         // 判断是否是要显示多条线
                         if ($rows_data) {
                             $chart_data[$k]['data']['x'] = $date;
                             // 整理y轴数据
                             foreach ($chart_conf['y'] as $y) {
                                 $rebuilt_y = array();
                                 foreach ($rebuilt_rows as $rebuilt_row) {
                                     if (array_key_exists($y, $rebuilt_row)) {
                                         $rebuilt_y[] = $rebuilt_row[$y];
                                     } else {
                                         $rebuilt_y[] = 0;
                                     }
                                 }
                                 $rebuilt_y = "'" . join("','", $rebuilt_y) . "'";
                                 $chart_data[$k]['data']['y'][] = $rebuilt_y;
                             }
                             $chart_data[$k]['data']['x'] = "'" . join("','", $chart_data[$k]['data']['x']) . "'";
                         } else {
                             $rebuilt_y = array();
                             foreach ($rebuilt_rows as $row) {
                                 $chart_data[$k]['data']['x'][] = $row[$chart_conf['x']];
                                 $rebuilt_y[] = $row[$chart_conf['y']];
                             }
                             $chart_data[$k]['data']['x'] = "'" . join("','", $chart_data[$k]['data']['x']) . "'";
                             $chart_data[$k]['data']['y'][] = "'" . join("','", $rebuilt_y) . "'";
                         }
                     }
                 }
                 $render_data['chart_data'] = $chart_data;
             }
             // 整理要渲染的数据
             $render_data['field_names'] = $field_names;
             $render_data['sql'] = $sql;
             $render_data['links'] = $links;
             $render_data['rows'] = $rebuilt_rows;
             $render_data['conf'] = $data;
             break;
         }
     }
     // 渲染模板
     Util::render_frame();
     Flight::render('index', $render_data, 'body_content');
     Flight::render('layout');
 }
Example #13
0
// Including values from config.yml
$config = Spyc::YAMLLoad(__DIR__ . '/../app/config/config.yml');
// Flight
array_walk_recursive($config['flight'], function ($value, $key) {
    Flight::set($key, eval('return ' . $value . ';'));
});
// Registering Smarty as template engine
Flight::register('view', 'Smarty', array(), function ($smarty) {
    $smarty->template_dir = Flight::get('flight.views.path') . '/';
    $smarty->compile_dir = __DIR__ . '/../app/cache/smarty_compile/';
    $smarty->config_dir = __DIR__ . '/../app/config/smarty/';
    $smarty->cache_dir = __DIR__ . '/../app/cache/smarty_cache/';
});
Flight::map('render', function ($template, $data) {
    Flight::view()->assign($data);
    Flight::view()->display($template);
});
//personnalizing errors
Flight::map('notFound', function () {
    if (file_exists(Flight::get('flight.views.path') . '/Errors/404.tpl')) {
        Flight::render('Errors/404.tpl', array());
    } else {
        Flight::_notFound();
    }
});
Flight::map('error', function (\Exception $e) {
    $code = http_response_code();
    if ($code == 200) {
        $code = 500;
    }
    if (file_exists(Flight::get('flight.views.path') . '/Errors/' . $code . '.tpl')) {
Example #14
0
error_reporting(E_ALL & ~E_NOTICE & ~E_WARNING & ~E_DEPRECATED & ~E_STRICT);
session_start();
require dirname(dirname(dirname(__FILE__))) . '/vendor/autoload.php';
define('APPS_PATH', dirname(dirname(__FILE__)));
define('TEMP_PATH', APPS_PATH . '/temp');
define('CONF_PATH', APPS_PATH . '/conf');
define('VIEWS_PATH', APPS_PATH . '/views');
define('PLUGINS_PATH', APPS_PATH . '/plugins');
// config
// Flight::register('db', 'PDO', array('mysql:host=www.jiangjianyong.cn;dbname=happy_days','root','pass'));
Flight::register('view', 'Smarty', array(), function ($smarty) {
    $smarty->setTemplateDir(VIEWS_PATH);
    $smarty->setConfigDir(CONF_PATH);
    $smarty->setCompileDir(TEMP_PATH . '/runtime/templates_c/');
    $smarty->setCacheDir(TEMP_PATH . '/runtime/cache/');
    $smarty->addPluginsDir(PLUGINS_PATH . '/views');
});
Flight::set('flight.log_errors', true);
// map
/**
AppID(应用ID)wxe35b746417e44c20
AppSecret(应用密钥)dd5a5838ab842d0be3d2a51a1798b9cb 隐藏 重置
*/
Flight::map('config', function ($item = null) {
    return 100;
});
Flight::route('/', function () {
    Flight::view()->assign('name', 'Bob');
    Flight::view()->display('index.html');
});
Flight::start();
Example #15
0
 /**
  * // Create Short Code for displaying an date Menu
  * @param $atts
  * @return mixed
  */
 public function shortcode_menu_date($atts)
 {
     wp_reset_postdata();
     global $post;
     $link = get_permalink($post->ID);
     $atts = shortcode_atts(array('range_start' => '1990', 'range_end' => '2015', 'groupby' => 0), $atts, 'am_menu_date');
     $dates = array();
     if ($atts['groupby']) {
         $groupby = $atts['groupby'];
         $start = $atts['range_start'];
         $end = $atts['range_end'];
         $last = $start;
         while ($last <= $end) {
             $set_start = $last;
             $set_end = $last + $groupby;
             if ($set_end > $end) {
                 $set_end = $end;
             }
             $dates[] = $set_start . ' - ' . $set_end;
             $last = $set_end + 1;
         }
     } else {
         $dates = range($atts['range_start'], $atts['range_end']);
     }
     return Flight::view()->render('frontend/menu/date', array('dates' => $dates, 'link' => $link));
 }