예제 #1
0
    public static function get_config_js($app_id, $echo = false)
    {
        $wp_ws_url = WpakWebServices::get_app_web_service_base_url($app_id);
        $theme = WpakThemesStorage::get_current_theme($app_id);
        $app_slug = WpakApps::get_app_slug($app_id);
        $app_main_infos = WpakApps::get_app_main_infos($app_id);
        $app_title = $app_main_infos['title'];
        $app_version = WpakApps::sanitize_app_version($app_main_infos['version']);
        $debug_mode = WpakBuild::get_app_debug_mode($app_id);
        $auth_key = WpakApps::get_app_is_secured($app_id) ? WpakToken::get_hash_key() : '';
        //TODO : options to choose if the auth key is displayed in config.js.
        $options = WpakOptions::get_app_options($app_id);
        $addons = WpakAddons::get_app_addons_for_config($app_id);
        if (!$echo) {
            ob_start();
        }
        //Indentation is a bit funky here so it appears ok in the config.js file source:
        ?>
define( function ( require ) {

	"use strict";

	return {
		app_slug : '<?php 
        echo $app_slug;
        ?>
',
		wp_ws_url : '<?php 
        echo $wp_ws_url;
        ?>
',
		theme : '<?php 
        echo addslashes($theme);
        ?>
',
		version : '<?php 
        echo $app_version;
        ?>
',
		app_title : '<?php 
        echo addslashes($app_title);
        ?>
',
		debug_mode : '<?php 
        echo $debug_mode;
        ?>
'<?php 
        if (!empty($auth_key)) {
            ?>
,
		auth_key : '<?php 
            echo $auth_key;
            ?>
'<?php 
        }
        ?>
,
		options : <?php 
        echo json_encode($options);
        ?>
,
		addons : <?php 
        echo json_encode($addons);
        ?>

	};

});
<?php 
        $content = '';
        if (!$echo) {
            $content = ob_get_contents();
            ob_end_clean();
        }
        return !$echo ? $content : '';
    }
예제 #2
0
 public static function build_app_sources($app_id, $export_type = 'phonegap-build')
 {
     $answer = array();
     if (!extension_loaded('zip')) {
         $answer['ok'] = 0;
         $answer['msg'] = __('Zip PHP extension is required to run file export. See http://www.php.net/manual/fr/book.zip.php.', WpAppKit::i18n_domain);
         return $answer;
     }
     if (!self::create_export_directory_if_doesnt_exist()) {
         $export_directory = self::get_export_files_path();
         $answer['ok'] = 0;
         $answer['msg'] = sprintf(__('The export directory [%s] could not be created. Please check that you have the right permissions to create this directory.', WpAppKit::i18n_domain), $export_directory);
         return $answer;
     }
     $current_theme = WpakThemesStorage::get_current_theme($app_id);
     $plugin_dir = plugin_dir_path(dirname(dirname(__FILE__)));
     $appli_dir = $plugin_dir . 'app';
     $export_filename = self::get_export_file_base_name($app_id);
     $export_filename_full = self::get_export_files_path() . "/" . $export_filename . '.zip';
     $answer = self::build_zip($app_id, $appli_dir, $export_filename_full, array($current_theme), WpakAddons::get_app_addons($app_id), $export_type);
     $answer['export'] = $export_filename;
     $answer['export_full_name'] = $export_filename_full;
     return $answer;
 }
예제 #3
0
 /**
  * Checks if the given theme is used at least by one app
  */
 public static function theme_is_used($theme_slug)
 {
     $used_themes = WpakThemesStorage::get_used_themes();
     return in_array($theme_slug, $used_themes);
 }
예제 #4
0
 public static function save_post($post_id)
 {
     if (defined('DOING_AUTOSAVE') && DOING_AUTOSAVE) {
         return;
     }
     if (empty($_POST['post_type']) || $_POST['post_type'] != 'wpak_apps') {
         return;
     }
     if (!current_user_can('edit_post', $post_id) && !current_user_can('wpak_edit_apps', $post_id)) {
         return;
     }
     if (!check_admin_referer('wpak-theme-data-' . $post_id, 'wpak-nonce-theme-data')) {
         return;
     }
     if (isset($_POST['wpak_app_title'])) {
         update_post_meta($post_id, '_wpak_app_title', sanitize_text_field($_POST['wpak_app_title']));
     }
     if (isset($_POST['wpak_app_theme_choice'])) {
         WpakThemesStorage::set_current_theme($post_id, $_POST['wpak_app_theme_choice']);
     }
 }