array("ABeeZee","ABeeZee"), "Arvo-Italic" => array("Arvo:400italic","Arvo"), "Alegreya-Regular" => array("Alegreya","Alegreya"), "AlegreyaSans-Regular" => array("Alegreya+Sans","Alegreya Sans"), "AnonymousPro-Regular" => array("Anonymous+Pro","Anonymous Pro"), "ArchivoBlack-Regular" => array("Archivo+Black","Archivo Black"), "ArchivoNarrow-Italic" => array("Archivo+Narrow:400italic","Archivo Narrow"), "ArchivoNarrow-Regular" => array("Archivo+Narrow","Archivo Narrow"), "Arvo-Regular" => array("Arvo","Arvo"), "Bitter-Regular" => array("Bitter:400","Bitter"), "Chivo-Regular" => array("Chivo","Chivo"), "ContrailOne-Regular" => array("Contrail+One","Contrail One"), "CrimsonText-Italic" => array("Crimson+Text:400italic","Crimson Text"), "Domine-Regular" => array("Domine","Domine"), "Bitter-Bold" => array("Bitter:700","Bitter"), "FiraSans-Regular" => array("Fira+Sans","Fira Sans"), "Inconsolata-Regular" => array("Inconsolata","Inconsolata"), "JosefinSlab-Regular" => array("Josefin+Slab","Josefin Slab"), "Karla-Regular" => array("Karla","Karla"), "Lato-Regular" => array("Lato","Lato"), "Bitter-Italic" => array("Bitter:400italic","Bitter"), "LibreBaskerville-Regular" => array("Libre+Baskerville","Libre Baskerville"), ); public static $languageArray = null; // Default values protected $op = array( ANDROAPP_IMAGE_DIMENSION => 'preview', ANDROAPP_EXCERPT_PREFERENCE => 'excerpt', ANDROAPP_POST_CONTENT => 'postprocessed', ANDROAPP_ENABLE_WP_SUPER_CACHE => '0' ); protected $buildop = array( ANDROAPP_FACEBOOK_APP_ID => '', ANDROAPP_GOOGLE_SENDER_ID => '' ); protected $postContentop = array( 'androapp_header_script' => '', 'androapp_before_post_content' => '', 'androapp_after_post_content' => '', ); protected $accountop = array( ANDROAPP_NOTIFICATION_TYPE_KEY => 'single' ); public function getInstallLink($slug){ $action = 'install-plugin'; return wp_nonce_url( add_query_arg( array( 'action' => $action, 'plugin' => $slug ), admin_url( 'update.php' ) ), $action.'_'.$slug ); } public function __construct(){ pw_mobile_app_settings::$languageArray = array("HOME"=> __("Home", 'androapp'), "SELECT" => __("Select...", 'androapp'), "SELECT_CATEGORY"=> __("Select Category", 'androapp'), "CANT_CONNECT"=> __("Can't Connect", 'androapp'), "RETRY"=> __("Tap to Retry", 'androapp'), "CONNECTION_TIMEOUT"=> __("Connection Timeout", 'androapp'), "UNKNOWN_ERROR"=> __("Unknown Error", 'androapp'), "LOADING"=> __("Loading...", 'androapp'), "SHARE_TITLE" => __("Hey, I found this interesting", 'androapp'), "NEW_POST"=> __("New Post", 'androapp'), "NEW_POSTS"=> __("new posts", 'androapp'), "YEAR"=> __("year", 'androapp'), "MONTH"=> __("month", 'androapp'), "DAY"=> __("day", 'androapp'), "HOUR"=> __("hour", 'androapp'), "MINUTE"=> __("minute", 'androapp'), "SECOND"=> __("second", 'androapp'), "YEARS"=> __("years", 'androapp'), "MONTHS"=> __("months", 'androapp'), "DAYS"=> __("days", 'androapp'), "HOURS"=> __("hours", 'androapp'), "MINUTES"=> __("minutes", 'androapp'), "SECONDS"=> __("seconds", 'androapp'), "AGO"=> __("ago", 'androapp'), "BY"=> __("by", 'androapp'), "IN"=> __("in", 'androapp'), "NO_COMMENTS"=> __("No comments yet, Be the first one to comment", 'androapp'), "COMMENTS_TITLE"=> __("COMMENTS", 'androapp'), "COMMENT_EMPTY"=> __("Comment field is Empty", 'androapp'), "PROVIDE_EMAIL"=> __("Please provide your name and email address", 'androapp'), "SENDING_COMMENT"=> __("Sending Comment...", 'androapp'), "AWAITING_MODERATION"=> __("Awaiting Moderation", 'androapp'), "TYPE_MESSAGE"=> __("Type Message", 'androapp'), "TYPE_REPLY_MESSAGE"=> __("Type Reply Message", 'androapp'), "COMMENT_SETTINGS"=> __("Comments Settings", 'androapp'), "NAME"=> __("Name", 'androapp'), "EMAIL"=> __("Email", 'androapp'), "EMAIL_EMPTY"=> __("Email can't be Empty", 'androapp'), "VALID_EMAIL"=> __("Please enter a valid email address", 'androapp'), "ATLEAST_THREE_CHARS"=> __("Please enter atleast 3 characters in name", 'androapp'), "VALID_NAME"=> __("Name can't be Empty", 'androapp'), "SUBMIT"=> __("Submit" ,'androapp'),"SEARCH_HINT" => __("Search Posts", 'androapp'), "EMPTY_SEARCH_RESULT" => __("Sorry, no content matched your criteria",'androapp') , "wooseparator" => __("wooseparator",'androapp'), "PRODUCT_DESCRIPTION"=> __("Description", 'androapp'), "CART"=> __("Cart", 'androapp'), "CHECKOUT"=> __("Checkout", 'androapp'), "ADD_TO_CART_ERROR"=> __("Could not update cart !!", 'androapp'), "LOGIN"=> __("Login", 'androapp'), "USERNAME"=> __("Username", 'androapp'), "PASSWORD"=> __("Password", 'androapp'), "REPASSWORD"=> __("Re Type Password", 'androapp'), "CANT_BE_EMPTY"=> __("Can't be EMpty", 'androapp'), "SHIPPING_ADDRESS"=> __("Shipping Address", 'androapp'), "BILLING_ADDRESS"=> __("Billing Address", 'androapp'), "FIRST_NAME"=> __("First Name", 'androapp'), "LAST_NAME"=> __("Last Name", 'androapp'), "CITY"=> __("City", 'androapp'), "STATE"=> __("State", 'androapp'), "COUNTRY"=> __("Country", 'androapp'), "PINCODE"=> __("Pincode", 'androapp'), "ADDRESS1"=> __("Address 1", 'androapp'), "ADDRESS2"=> __("Address 2", 'androapp'), "PHONE"=> __("Phone", 'androapp'), "PASSWORDS_DONT_MATCH"=> __("Password do not match", 'androapp'), "ENTER_COUPON_CODE"=> __("Enter Coupon Code", 'androapp'), "APPLY_COUPON"=> __("Apply Coupon", 'androapp'), "SUBTOTAL"=> __("Subtotal", 'androapp'), "TAXES"=> __("Taxes", 'androapp'), "SHIPPING_AND_HANDLING"=> __("Shipping And Handling", 'androapp'), "TOTAL"=> __("Total", 'androapp'), "Discount"=> __("Discount", 'androapp'), "NEXT"=> __("Next", 'androapp'), "BACK"=> __("Back", 'androapp'), "ORDER_NOTE"=> __("Order Note", 'androapp'), "SHIPPING_METHOD"=> __("Shipping Method", 'androapp'), "ORDER_REVIEW"=> __("Order Review", 'androapp'), "ORDER_COMPLETE"=> __("Order Status", 'androapp'), "PAYMENT_METHOD"=> __("Payment Method", 'androapp'), "ORDER"=> __("Order", 'androapp'), "ORDER_STATUS"=> __("Order Status", 'androapp'), "LOGGED_OUT"=> __("You are now logged out", 'androapp'), "CART_EMPTY"=> __("Cart Empty", 'androapp'), "BROWSE_PRODUCTS"=> __("Browse Products", 'androapp'), "ADDED_TO_CART"=> __("Added to cart", 'androapp'), "COUPON"=> __("Coupon", 'androapp'), "APPLIED"=> __("Applied", 'androapp'), "MRP"=> __("MRP", 'androapp'), "BUY_NOW"=> __("BUY NOW", 'androapp'), "OUT_OF_STOCK"=> __("Out Of Stock", 'androapp'), "REGISTER" => __("Register", 'androapp'), "PRODUCT_ADD_TO_CART_ERROR" => __("Product can not be added to cart", 'androapp'), "COUPON_APPLY_ERROR" => __("Coupon can not be applied", 'androapp'), "VENDOR" => __("Vendor",'androapp'), "NOT_ENOUGH_STOCK" => __("Sorry, Not enough stock",'androapp'), "SAME_AS_BILLING_ADDRESS"=> __("Same as Billing Address",'androapp'), "UPDATE_QUANTITY"=> __("Update Quantity",'androapp'), "CART_UPDATED"=> __("Cart Updated",'androapp'), "QUANTITY_TEXT_VALIDATION"=> __("Please enter a number",'androapp') ); add_action('admin_init', array($this,'admin_init')); add_action('admin_menu', array($this, 'add_page')); add_action('admin_notices', array($this, 'my_plugin_admin_notices')); $this->scriptOptions = get_option($this->scripts_option); if((empty($this->scriptOptions['scripts']) || ($this->scriptOptions['count'] < 5))) { add_action( 'print_scripts_array', array($this, 'add_scripts'), 999); add_action('wp_print_scripts', array($this, 'add_late_scripts'), 999); $this->scriptOptions['count'] = $this->scriptOptions['count'] +1; } if(!get_option(PW_ANDROAPP_VERSION_KEY)) { //dont save any properties here as they are going to be set by activation hook update_option(PW_ANDROAPP_VERSION_KEY, $this->androappVersion); }else{ $oldVersion = get_option(PW_ANDROAPP_VERSION_KEY); if(!empty($oldVersion) && $oldVersion != $this->androappVersion ){ if( $oldVersion < 319){ $this->updateFor319(); } if( $oldVersion < 320){ $this->updateFor320(); } if( $oldVersion < 403){ $this->updateFor403(); } if( $oldVersion < 406){ $this->updateFor406(); } if( $oldVersion < 501){ $this->updateFor501(); } if( $oldVersion < 600){ $this->updateFor600(); } if( $this->androappVersion == 603){ $this->updateFor603(); } update_option(PW_ANDROAPP_VERSION_KEY, $this->androappVersion); } } } function show_success_message($message) { ?>

buildop[ANDROAPP_HOST_NAME] = get_bloginfo('url');; $this->buildop[ANDROAPP_APP_NAME] = get_bloginfo('name'); $this->buildop[ANDROAPP_DEEP_LINKING] = "/"; $this->buildop[ANDROAPP_EMAIL] = get_option('admin_email'); $this->buildop[ANDROAPP_AUTHENTICATION_KEY] = $this->getToken(64); $this->buildop[ANDROAPP_THEME_NAME] = 'cardview'; $this->op[PWAPP_MENU] = $this->getFirstMenu(); $this->op[pw_mobile_app_settings::$androAppCss] = '#content-sidebar{ display:none; } #secondary { display:none !important; } .sidebar, .site-header, .footer-widgets { display:none; } #menu-header-menu{ display:none; }'; $this->op[pw_mobile_app_settings::$postProcessedCss] = 'img{ max-width: 100% !important; height: auto; } iframe{ max-width: 100%; height: auto; } figure { max-width: 100%; height: auto; } div { max-width: 100% !important; } audio { display:block; visibility:visible !important; } video{ width:100%; height:auto; } '; $this->op[pw_mobile_app_settings::$shareImagePreference] = 'first'; $this->op[pw_mobile_app_settings::$sharePreference] = 'EXCERPT'; $this->op[pw_mobile_app_settings::$shareTextWithImage] = 'TITLE'; $this->op[pw_mobile_app_settings::$shareSuffixText] = 'via'; $this->op[pw_mobile_app_settings::$shareSuffixLink] = 'POST'; $this->op[pw_mobile_app_settings::$shareImageWithCustomFunction] = '1'; if(get_option("comment_registration") == 1){ $this->op[pw_mobile_app_settings::$commentsProvider] = 'disabled'; }else{ $this->op[pw_mobile_app_settings::$commentsProvider] = 'wordpress'; } $this->op[pw_mobile_app_settings::$showCommentsCount] = '1'; if(is_plugin_active('woocommerce/woocommerce.php')){ $this->op[pw_mobile_app_settings::$homePageWidget] = 'products'; $this->op[pw_mobile_app_settings::$showCartIcon] = '1'; }else{ $this->op[pw_mobile_app_settings::$homePageWidget] = 'posts'; } $this->buildop[pw_mobile_app_settings::$tagTextColorKey] = "#ff808080"; $this->buildop[pw_mobile_app_settings::$tagBgColorKey] = "#E6E6E6"; $this->buildop[pw_mobile_app_settings::$feedBgColorKey] = "#FFFFFF"; $this->buildop[pw_mobile_app_settings::$feedTitleColorKey] = "#424242"; $this->buildop[pw_mobile_app_settings::$feedContentTextColorKey] = "#616161"; $this->buildop[pw_mobile_app_settings::$screenBgColorKey] = "#E6E6E6"; $this->buildop[pw_mobile_app_settings::$actionBarTitleColorKey] = "#FFFFFF"; $this->buildop[pw_mobile_app_settings::$actionBarBgColorKey] = "#F4832C"; $this->buildop[pw_mobile_app_settings::$authorTextColorKey] = "#477c29"; $this->buildop[pw_mobile_app_settings::$timeTextColorKey] = "#757575"; $this->buildop[pw_mobile_app_settings::$statusBarBgColorKey] = "#f45917"; } private function resetBuildOptions(){ $this->initProperties(); //not resetting icon $buildOptions = get_option($this->build_option_name); $this->buildop[ANDROAPP_LAUNCHER_ICON] = $buildOptions[ANDROAPP_LAUNCHER_ICON]; $this->buildop[ANDROAPP_SPLASH_IMAGE] = $buildOptions[ANDROAPP_SPLASH_IMAGE]; update_option($this->build_option_name, $this->buildop); } private function resetLanguageOptions(){ update_option($this->language_option_name, pw_mobile_app_settings::$languageArray); } public function installpwmobileapp() { $this->initProperties(); if(!get_option($this->option_name)) { add_option($this->option_name, $this->op); } if(!get_option($this->build_option_name)) { add_option($this->build_option_name, $this->buildop); } if(!get_option($this->account_tab_key)) { add_option($this->account_tab_key, $this->accountop); } if(!get_option($this->post_content_tab_key)) { add_option($this->post_content_tab_key, $this->postContentop); } if(!get_option($this->language_option_name)){ add_option($this->language_option_name, pw_mobile_app_settings::$languageArray); } if(!get_option($this->scripts_option)) { $scriptOptions = array(); $scriptOptions['count'] = 0; $scriptOptions['scripts'] = null; add_option($this->scripts_option, $scriptOptions); } $this->initiAndroAds(); $this->doCurlRequest($this->buildop[ANDROAPP_HOST_NAME], "INSTALL", $this->buildop[ANDROAPP_EMAIL]); } private function updateFor403(){ if(get_option($this->language_option_name)){ $languageOption = get_option($this->language_option_name); $languageOption['VENDOR'] = "Vendor"; update_option($this->language_option_name, $languageOption); } } private function updateFor406(){ if(get_option($this->language_option_name)){ $languageOption = get_option($this->language_option_name); $languageOption['SEARCH_HINT'] = "Search posts"; $languageOption['EMPTY_SEARCH_RESULT'] = "Sorry, no content matched your criteria"; update_option($this->language_option_name, $languageOption); } if(get_option($this->option_name)){ $op = get_option($this->option_name); $op[pw_mobile_app_settings::$postProcessedCss] .= 'img{ max-width: 100% !important; height: auto; } div { max-width: 100% !important; } '; update_option($this->option_name, $op); } } private function initiAndroAds(){ if(!get_option('androapp_ads')){ add_option('androapp_ads', array()); } $androAds = get_option('androapp_ads'); $androAds['androapp_header'] = ''; $androAds['top_ad'] = ""; $androAds['bottom_ad'] = "
Loading...
"; update_option('androapp_ads', $androAds); } private function updateFor603(){ $this->initiAndroAds(); if(!get_option($this->post_content_tab_key)) { add_option($this->post_content_tab_key, $this->postContentop); } $options = get_option($this->build_option_name); $clientId = $options[ANDROAPP_CLIENT_ID]; $res = file_get_contents($this->androAppHost.'/appCreator/info.php?clientId='.$clientId); $res = json_decode($res); if(isset($res->vt)){ $renewaldate = $res->vt; $options[ANDROAPP_RENEWAL_DATE] = strtotime($renewaldate); update_option($this->build_option_name, $options); } } private function updateFor600(){ $buildOption = get_option($this->build_option_name); $buildOption[ANDROAPP_DEEP_LINKING] = "/"; update_option($this->build_option_name, $buildOption); if(get_option($this->language_option_name)){ $languageOption = get_option($this->language_option_name); $languageOption['SAME_AS_BILLING_ADDRESS'] = "Same as Billing Address"; $languageOption['UPDATE_QUANTITY'] = "Cart Updated"; $languageOption['NOT_ENOUGH_STOCK'] = "Sorry, Not enough stock"; $languageOption['QUANTITY_TEXT_VALIDATION'] = "Please enter a number"; update_option($this->language_option_name, $languageOption); } } private function updateFor501(){ if(get_option($this->option_name)){ $op = get_option($this->option_name); $op[pw_mobile_app_settings::$postProcessedCss] .= 'audio { display:block; visibility:visible !important; } video{ width:100%; height:auto; } '; update_option($this->option_name, $op); } } private function updateFor320(){ if(get_option($this->language_option_name)){ $languageOption = get_option($this->language_option_name); $tmpArr = array(); $tmpArr = array_merge($tmpArr, pw_mobile_app_settings::$languageArray); $result = array_merge($tmpArr, $languageOption); update_option($this->language_option_name, $result); } } private function updateFor319(){ if(!get_option($this->language_option_name)){ add_option($this->language_option_name, pw_mobile_app_settings::$languageArray); } } public function doCurlRequest($host, $action, $email){ if(function_exists('curl_init')){ $url = $this->androAppHost."/appCreator/log.php?action=".$action."&email=".urlencode($email)."&host=".urlencode($host); $ch = curl_init($url); curl_setopt($ch, CURLOPT_HEADER, 0); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); $output = curl_exec($ch); curl_close($ch); //echo $output; } } public function clearAllOptions(){ delete_option($this->option_name); delete_option($this->build_option_name); delete_option($this->account_tab_key); delete_option($this->language_option_name); delete_option($this->get_started_option_name); delete_option($this->scripts_option); delete_option($this->post_content_tab_key); delete_option(PW_ANDROAPP_VERSION_KEY); } public function uninstall() { $options = get_option($this->build_option_name); $this->doCurlRequest($options[ANDROAPP_HOST_NAME], "UNINSTALL", $options[ANDROAPP_EMAIL]); $this->clearAllOptions(); } public function deactivate() { $options = get_option($this->build_option_name); $this->doCurlRequest($options[ANDROAPP_HOST_NAME], "DEACTIVATE", $options[ANDROAPP_EMAIL]); //$this->clearAllOptions(); } // White list our options using the Settings API public function admin_init() { $this->plugin_settings_tabs[$this->get_started_option_name] = __('Get Started','androapp'); register_setting($this->get_started_option_name, $this->get_started_option_name); add_settings_section( 'section_get_started', __('Welcome to AndroApp Native Android Mobile App','androapp'), array( &$this, 'options_do_getstarted' ), $this->get_started_option_name ); $this->plugin_settings_tabs[$this->build_option_name] = __('Look & Feel','androapp'); register_setting($this->build_option_name, $this->build_option_name); add_settings_section( 'section_build_settings', __('Look & Feel','androapp'), array( &$this, 'build_options_do_page_parent' ), $this->build_option_name ); $this->plugin_settings_tabs[$this->option_name] = __('Configure','androapp'); register_setting($this->option_name, $this->option_name); add_settings_section( 'section_app_settings', __(' dynamic settings for your app','androapp'), array( &$this, 'options_do_page' ), $this->option_name ); $this->plugin_settings_tabs[$this->post_content_tab_key] = __('Post Content','androapp'); register_setting($this->post_content_tab_key, $this->post_content_tab_key); add_settings_section( 'section_post_content_settings', __('Post Content','androapp'), array( &$this, 'post_content_do_page_parent' ), $this->post_content_tab_key ); $this->plugin_settings_tabs[$this->language_option_name] = __('Internationalization','androapp'); register_setting($this->language_option_name, $this->language_option_name); add_settings_section( 'section_language_settings', __(' Change texts for your app','androapp'), array( &$this, 'language_options_do_page_parent' ), $this->language_option_name ); $this->plugin_settings_tabs[$this->account_tab_key] = __('Account Settings','androapp'); register_setting($this->account_tab_key, $this->account_tab_key); add_settings_section( 'section_publish_settings', __('Account Settings','androapp'), array( &$this, 'accounts_do_page' ), $this->account_tab_key ); $this->plugin_settings_tabs[$this->tools_tab_key] = __('Push Notifications','androapp'); register_setting($this->tools_tab_key, $this->tools_tab_key); add_settings_section( 'section_tools_settings', __('Push Notifications','androapp'), array( &$this, 'tools_do_page' ), $this->tools_tab_key ); } function add_page() { add_menu_page('AndroApp', 'AndroApp', 'manage_options', $this->plugin_options_key, array($this, 'plugin_options_page'), "data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBzdGFuZGFsb25lPSJubyI/Pgo8IURPQ1RZUEUgc3ZnIFBVQkxJQyAiLS8vVzNDLy9EVEQgU1ZHIDIwMDEwOTA0Ly9FTiIKICJodHRwOi8vd3d3LnczLm9yZy9UUi8yMDAxL1JFQy1TVkctMjAwMTA5MDQvRFREL3N2ZzEwLmR0ZCI+CjxzdmcgdmVyc2lvbj0iMS4wIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciCiB3aWR0aD0iNDMyLjAwMDAwMHB0IiBoZWlnaHQ9IjQzMi4wMDAwMDBwdCIgdmlld0JveD0iMCAwIDQzMi4wMDAwMDAgNDMyLjAwMDAwMCIKIHByZXNlcnZlQXNwZWN0UmF0aW89InhNaWRZTWlkIG1lZXQiPgo8bWV0YWRhdGE+CkNyZWF0ZWQgYnkgcG90cmFjZSAxLjEwLCB3cml0dGVuIGJ5IFBldGVyIFNlbGluZ2VyIDIwMDEtMjAxMQo8L21ldGFkYXRhPgo8ZyB0cmFuc2Zvcm09InRyYW5zbGF0ZSgwLjAwMDAwMCw0MzIuMDAwMDAwKSBzY2FsZSgwLjEwMDAwMCwtMC4xMDAwMDApIgpmaWxsPSIjMDAwMDAwIiBzdHJva2U9Im5vbmUiPgo8cGF0aCBkPSJNMTQzMCA0MzAxIGMwIC0xMCAtNyAtMjQgLTE1IC0zMSAtMjUgLTIwIC0xNyAtNjIgMjEgLTEyMCA1NCAtODIKMTA0IC0xODAgOTggLTE5MyAtMiAtNyAtNDcgLTUyIC05OSAtMTAxIC01NiAtNTEgLTExNSAtMTE4IC0xNDIgLTE1OSAtNjkKLTEwNiAtMTQzIC0yNjAgLTE0MyAtMjk4IDAgLTExIC01IC0yOSAtMTEgLTQwIC02IC0xMSAtMTQgLTU3IC0xOSAtMTAyIC00Ci00NSAtMTMgLTgzIC0xOSAtODUgLTYgLTIgLTExIC0xNiAtMTEgLTMwIDAgLTE5IDMgLTIzIDkgLTEzIDEwIDE2IDMxIDYgMzEKLTE0IDAgLTEyIDE1NSAtMTQgMTAzOSAtMTQgbDEwMzkgMCAtMiA4MiBjLTQgODggLTE1IDE0NCAtNTEgMjQ3IC02NCAxODMKLTEzMCAyODYgLTI3NCA0MjggbC0xMDQgMTAyIDIzIDUwIGMxMyAyOCAzMiA1NyA0MiA2NyAxMCA5IDE4IDIyIDE4IDI5IDAgNwoxMSAzMCAyNSA1MCAyNiAzOCAzNCAxMDcgMTUgMTE5IC01IDMgLTEwIDE1IC0xMCAyNiAwIDI2IC0xNCAyNCAtMjkgLTMgLTIwCi0zOSAtMzYgLTY1IC00OCAtNzkgLTYgLTggLTI4IC00NSAtNDggLTg0IC0zOSAtNzMgLTcxIC0xMTUgLTg4IC0xMTUgLTYgMAotNDAgMTMgLTc2IDI5IC0xNjMgNzAgLTI2NiA5MiAtNDQxIDkyIC0xMjIgMCAtMjg5IC0yNCAtMzM1IC00OCAtMTEgLTYgLTMzCi0xNSAtNTAgLTIxIC0xNiAtNSAtNTQgLTIwIC04MyAtMzMgLTY3IC0yOSAtNzQgLTI1IC0xMzIgNzcgLTI1IDQzIC01NyA5OAotNzIgMTIxIC0xNiAyNCAtMjggNTIgLTI4IDYzIDAgMTEgLTcgMjAgLTE1IDIwIC04IDAgLTE1IC04IC0xNSAtMTl6IG00MTAKLTU0MiBjMzkgLTI5IDcwIC04NyA3MCAtMTMxIC0xIC03NCAtODEgLTE1NSAtMTU1IC0xNTcgLTE2IDAgLTQ4IDkgLTcwIDIyCi0xMjQgNzAgLTExMSAyMjMgMjUgMjg5IDI3IDE0IDk2IDEgMTMwIC0yM3ogbTc5MCA3IGM1MSAtMjcgOTAgLTg0IDkwIC0xMzIgMAotMzYgLTIyIC05NSAtNDIgLTExMSAtMzIgLTI2IC05MSAtNTMgLTExNiAtNTMgLTM4IDAgLTEwMiAzOSAtMTI5IDc5IC00MiA2MgotMjQgMTYxIDM1IDE5OSAxNSA5IDI5IDE5IDMyIDIzIDIwIDI1IDc4IDIzIDEzMCAtNXoiLz4KPHBhdGggZD0iTTU5MiAzMDUxIGMtNjQgLTIyIC0xMTQgLTY4IC0xNDcgLTEzNSBsLTI1IC01MCAwIC01ODcgMCAtNTg3IDMzCi02MiBjMjYgLTUwIDQ0IC02OSA5MSAtOTggNTEgLTMyIDY1IC0zNiAxMjUgLTM2IDQ4IDAgODAgNiAxMTMgMjEgNzUgMzYgMTMyCjEyMCAxMjIgMTc5IC0zIDIwIC0xIDI1IDUgMTUgMjggLTQzIDMxIDggMzEgNTcwIDAgNTU3IDAgNTcwIC0yMCA1ODYgLTExIDEwCi0yMCAyNyAtMjAgMzkgMCA0MiAtNTggMTA0IC0xMjYgMTM1IC03NCAzNCAtMTA4IDM1IC0xODIgMTB6Ii8+CjxwYXRoIGQ9Ik0zNTYyIDMwNTAgYy0zMCAtMTAgLTY5IC0zMyAtODkgLTUxIC03MiAtNzAgLTY4IC0yOCAtNzEgLTY5NyAtMgotMzg4IDEgLTYxNiA3IC02NDAgMTQgLTQ5IDcyIC0xMTcgMTI1IC0xNDQgNTggLTMxIDE2MCAtMjkgMjIyIDIgNjUgMzQgMTI0CjExMSAxMjUgMTY0IDEgMzUgMCAxMDcwIC0xIDExOTYgMCA0MCAtNiA1MiAtNDIgOTMgLTc2IDgzIC0xNzUgMTExIC0yNzYgNzd6Ii8+CjxwYXRoIGQ9Ik0xMDg5IDI5MjcgYy02IC0xMiAtMiAtMTk3MCA0IC0xOTc0IDQgLTIgMTAgMyAxNCAxMiA1IDE2IDcgMTYgMTUgMQo3IC0xMyAyNyAtMTYgMTA2IC0xNiA1MyAwIDEwNCAtNSAxMTIgLTEwIDEzIC04IDE2IC02NCAyMCAtMzY3IDQgLTI4OCA3IC0zNTQKMTcgLTMzOCAxMSAxNyAxMiAxMiAxMyAtMzggMCAtNTMgMyAtNjEgNDAgLTEwMSAyNCAtMjYgNTkgLTUwIDg4IC02MSAyNiAtMTAKNTEgLTIyIDU3IC0yNiAxNiAtMTUgNjQgLTEwIDEwNSAxMSAyMiAxMSA0NiAyMCA1NSAyMCAxOCAwIDczIDUyIDEwMSA5NSAxOAoyNyAxOSA1NyAyMiA0MDcgbDMgMzc4IDI5IDE1IGMyMyAxMiA3NiAxNSAyNzIgMTUgMTM1IDAgMjUwIC00IDI1OCAtMTAgMTMgLTgKMTUgLTYyIDE4IC0zNjIgMiAtMTk0IDcgLTM1NyAxMSAtMzYzIDUgLTUgMTEgLTIzIDE1IC00MCA5IC0zNSA5MSAtMTM1IDExMgotMTM1IDggMCAzNCAtOSA1NiAtMjAgNTQgLTI2IDc2IC0yNSAxNDIgNSAzMCAxNCA1OCAyNSA2MyAyNSAxNSAwIDYzIDU5IDgzCjEwMiAxOCA0MCAyMCA2NyAyMCA0MDAgMCAzMTAgMiAzNTkgMTYgMzcyIDIxIDIyIDQzIDI2IDE1NCAyOSBsOTUgMiA1IDk3MyBjMwo1MzUgMSA5ODAgLTMgOTg4IC03IDEyIC0xNTMgMTQgLTEwNjMgMTQgLTU4MCAwIC0xMDU0IC0yIC0xMDU1IC0zeiBtMTYwNQotNDE4IGM1MCAtNDMgMTI0IC0xNDQgMTUzIC0yMDcgMjAgLTQzIDI0IC02NCAyMCAtMTEwIC02IC02NiAtMjIgLTE0MyAtMzYKLTE2OSAtNSAtMTAgLTE5IC00NyAtMzEgLTgzIC0xMSAtMzYgLTI0IC03NCAtMjkgLTg1IC0xMyAtMzEgLTMyIC04NyAtNDMKLTEyNSAtNSAtMTkgLTE0IC0zOSAtMTkgLTQ1IC01IC01IC05IC0xOCAtOSAtMjggMCAtMTAgLTYgLTMzIC0xMyAtNTAgLTE4Ci00MSAtMzcgLTk0IC00NyAtMTMyIC0yMCAtNzAgLTQ1IC0xMzIgLTY3IC0xNjggLTQwIC02NCAtMTc1IC0xMTQgLTE4OSAtNjkKLTMgOSAtMTIgMjkgLTIwIDQ0IC04IDE0IC0xNCAzNyAtMTQgNTAgMCAxMiAtNyAzMiAtMTUgNDIgLTggMTEgLTE1IDI5IC0xNQo0MCAwIDEyIC03IDMwIC0xNSA0MCAtOCAxMSAtMTUgMjggLTE1IDM4IDAgMTAgLTQgMjYgLTEwIDM2IC0xMiAyMSAtNDAgOTgKLTQ3IDEzMiAtMyAxNCAtMTAgMzAgLTE0IDM2IC01IDYgLTE2IDM1IC0yNSA2MyAtMTcgNTkgLTMwIDY1IC0zNyAxOSAtMyAtMTgKLTIxIC03OCAtNDIgLTEzMyAtMjAgLTU1IC00MCAtMTEzIC00NSAtMTMwIC0xMSAtNDAgLTMwIC05MyAtNDYgLTEzMyAtOCAtMTgKLTE0IC00MCAtMTQgLTUwIDAgLTkgLTcgLTMwIC0xNSAtNDYgLTggLTE1IC0xNSAtMzcgLTE1IC00NyAwIC00NiAtNjMgLTQ0Ci0xNDcgNCAtMzEgMTggLTgzIDEwMSAtODMgMTMyIDAgNyAtNyAyNiAtMTUgNDEgLTggMTYgLTE1IDM3IC0xNSA0NiAwIDkgLTQKMTkgLTkgMjMgLTUgMyAtMTIgMTkgLTE2IDM2IC00IDE3IC0xMyA0MiAtMjEgNTcgLTggMTUgLTE0IDM1IC0xNCA0NCAwIDkgLTQKMTkgLTkgMjMgLTUgMyAtMTMgMjAgLTE3IDM4IC0zIDE3IC0xMiA0NSAtMTkgNjIgLTE0IDMyIC0zOSA5OCAtNjAgMTU1IC03IDE5Ci0yMCA1NCAtMjkgNzggLTkgMjMgLTIzIDYxIC0zMiA4NSAtOSAyMyAtMjIgNTYgLTI5IDcyIC0yOCA2MiAtMjggMTAxIDAgMTU4CjE1IDMwIDM3IDY2IDQ5IDgyIGwyMiAyOCAxMzUgLTIgYzExMSAtMSAxMzYgLTUgMTQ3IC0xOCAyOCAtMzggNyAtNjQgLTU3IC03MQotNTcgLTUgLTYzIC0xNyAtMzYgLTY4IDggLTE2IDE1IC0zOCAxNSAtNTAgMCAtMTEgNCAtMjQgOSAtMzAgNSAtNSAxNCAtMjUgMTkKLTQ0IDYgLTE5IDE2IC01MSAyMyAtNzAgNiAtMTkgMTcgLTUxIDI0IC03MCA3IC0xOSAxOCAtNTEgMjQgLTcwIDcgLTE5IDE2Ci00OCAyMSAtNjUgMTAgLTM3IDI5IC04OSA0NyAtMTMyIDcgLTE3IDEzIC0zOCAxMyAtNDYgMCAtOCA3IC0yOCAxNSAtNDMgOAotMTYgMTUgLTQxIDE1IC01NiAwIC0xNiA0IC0yOCA4IC0yOCAxMSAwIDMyIDQ1IDMyIDY4IDAgOSA3IDMwIDE1IDQ2IDggMTUgMTUKMzcgMTUgNDggMCAxMSA1IDI5IDEyIDQxIDYgMTIgMTUgMzUgMTkgNTIgNCAxNiAxOSA2MyAzNCAxMDQgMTUgNDEgMjUgODMgMjIKOTUgLTUgMjIgLTI0IDc2IC0zOCAxMTEgLTE2IDM4IC00MCAxMTAgLTQ4IDE0MSAtMTIgNDcgLTE5IDU0IC01MiA1NCAtNDkgMAotODkgMjYgLTg5IDU5IDAgMTkgNyAzMSAyMyAzNyAxMyA2IDExNyA4IDI1NyA0IGwyMzUgLTUgMCAtNDAgYzAgLTQyIC00IC00NQotNzcgLTYwIC0yOSAtNiAtMjkgLTQgMyAtODAgMTIgLTI3IDY4IC0xOTMgNzkgLTIzMCA0IC0xNiAxOCAtNTcgMzAgLTkwIDExCi0zMyAyNSAtNzMgMzAgLTkwIDEwIC0zOCAyOSAtOTEgNDcgLTEzMiA3IC0xNyAxMyAtMzYgMTMgLTQyIDAgLTcgNyAtMjggMTYKLTQ5IGwxNiAtMzcgMTMgNTAgYzEyIDQ4IDI0IDg5IDYwIDIwNSAzOCAxMjcgNDYgMTkxIDM0IDI2NSAtOCA0OCAtMjAgODEgLTM4CjEwNSAtMTEwIDE0NCAtMTIxIDI4MSAtMjkgMzUyIDM0IDI2IDYzIDIyIDEwMiAtMTN6IG00NDUgLTU2MSBjMCAtNzEgLTMgLTg3Ci0xMCAtNjggLTE0IDM0IC04IDE2MCA3IDE2MCAyIDAgNCAtNDIgMyAtOTJ6Ii8+CjwvZz4KPC9zdmc+Cg=="); add_submenu_page( $this->plugin_options_key, 'Look & Feel', __('Look & Feel','androapp'), 'manage_options', $this->plugin_options_key.'&tab=pw-mobile-build-options', array($this, 'plugin_options_page')); add_submenu_page( $this->plugin_options_key, 'Configure', __('Configure','androapp'), 'manage_options', $this->plugin_options_key.'&tab=pw-mobile-app', array($this, 'plugin_options_page')); add_submenu_page( $this->plugin_options_key, 'Internationalization', __('Internationalization','androapp'), 'manage_options', $this->plugin_options_key.'&tab=pw-mobile-app-language', array($this, 'plugin_options_page')); add_submenu_page( $this->plugin_options_key, 'Account Settings', __('Account Settings','androapp'), 'manage_options', $this->plugin_options_key.'&tab=androapp_account_settings', array($this, 'plugin_options_page')); add_submenu_page( $this->plugin_options_key, 'Push Notifications', __('Push Notifications','androapp'), 'manage_options', $this->plugin_options_key.'&tab=androapp_tools_tab', array($this, 'plugin_options_page')); } /* * Renders our tabs in the plugin options page, * walks through the object's tabs array and prints * them one by one. Provides the heading for the * plugin_options_page method. */ function plugin_options_tabs() { $current_tab = isset( $_GET['tab'] ) ? $_GET['tab'] : $this->get_started_option_name; screen_icon(); echo ''; } function add_scripts($todo) { //echo "

Add Scripts

"; //print_r($todo); if(is_single()){ $this->process_scripts($todo); } return $todo; } function add_late_scripts() { global $wp_scripts; if(is_single()){ $this->process_scripts($wp_scripts->queue); } } function process_scripts($scriptsHandle){ global $wp_scripts; $options = get_option($this->scripts_option); $scripts = $options ['scripts']; //print_r($scripts); if(empty($scripts)){ $scripts = array(); } $scripts = $scripts + $this->process_scripts_inner($scriptsHandle); $options['scripts'] = $scripts; $options['count'] = $this->scriptOptions['count']; update_option($this->scripts_option, $options); } function process_scripts_inner($scriptsHandle){ global $wp_scripts; $scripts = array(); foreach( $scriptsHandle as $handle ) : //echo $handle."
"; if(!empty($wp_scripts->registered[$handle]->src)) { $scripts[$handle] = convertToFullUrl($wp_scripts->registered[$handle]->src); }else{ $deps = $wp_scripts->registered[$handle]->deps; $scripts = $scripts + $this->process_scripts_inner($deps); } endforeach; return $scripts; } function clearScripts(){ $this->scriptOptions['scripts'] = null; $this->scriptOptions['count'] = 0; update_option($this->scripts_option, $this->scriptOptions); header("Location: ?page=pw_mobile_app_options"); } function renderForm($tab, $functionname){ ?>
$functionname(); }else{ do_settings_sections( $tab ); } ?>
get_started_option_name; if(isset($_GET['clear_scripts_list'])){ $this->clearScripts(); } ?>
plugin_options_tabs(); if($tab == 'androapp_getstarted' || $tab == $this->build_option_name || $tab == $this->language_option_name || $tab == 'androapp_tools_tab' || $tab == 'androapp_post_content_tab'){ do_settings_sections( $tab ); } else { $this->renderForm($tab, ""); } ?>
androAppHost.'/appCreator/info.php?clientId='.$clientId); $res = json_decode($res); if(isset($res->vt)){ $renewaldate = $res->vt; $options[ANDROAPP_RENEWAL_DATE] = strtotime($renewaldate); $renewaldate = date("d-m-Y", $options[ANDROAPP_RENEWAL_DATE]); update_option($this->build_option_name, $options); } } _e('You need to submit your app to Google App Store such that your readers can install your mobile app.','androapp'); ?>


  1. '. __('Google play developer console','androapp').''; printf( /* translators: %s: Google Play developer console link */ __('Create a new account on %s and submit your app yourself. You need to pay one time fee of $25. Generally it takes around 48 hours (after the payment) for new accounts to get approved.', 'androapp'), $googleConsoleLink); ?>



    1. '. __('click here','androapp').''; printf( /* translators: %s: click here */ __('payment of $10 for our efforts, %s to make the payment','androapp'), $payumoneyLink); ?>
    contact@androapp.mobi'); ?>

https://play.google.com/store/apps/details?id=".$options[ANDROAPP_PACKAGE_NAME].""; echo '

'. printf( /* translators: %s: apk link on play store */ __('After you submit your app to Google Play Store, this will be the link to your app %s', 'androapp'), $applinktext).'

'; } ?>

here'; printf( /* translators: %s: here (with payment link) */ __('AndroApp is completely free for the first month, after that you can purchase annual subscription from %s. Mention your email id and site link in shipping address. We will activate your annual subscription.', 'androapp'), $purchaseLink); ?>

".__('Your Renewal date: ','androapp')."".$renewaldate; echo "

"; } printf( /* translators: %s: our email */ __('Please get in touch with us @ %s for any more clarifications.','androapp'), 'contact@androapp.mobi'); ?>

$post_id, "title" => $post_title, "notification_type" => $notification_type), $google_api_key); } function post_content_do_page_parent(){ $this->renderForm($this->post_content_tab_key ,'post_content_do_page'); } function post_content_do_page(){ include("androapp_postcontent.php"); } function tools_do_page() { include("androapp_tools.php"); } function accounts_do_page() { $options = get_option($this->account_tab_key); ?>

Google API Key: '.__('Click here','androapp').''; printf( /* translators: %s: Click here */ __('We use Google Messaging API\'s for push notifications, %s to see the instructions to create a Google API project, enable "Google Cloud Messaging for Android" api, and enter your API Key here(This is needed to send push notifications to you app)', 'androapp'), $$androAppGcmLink);?>

" value="" /> ".__('Please install curl for push notifications to work.','androapp')."

"; } ?>
:

" value="" />
: Do not send Push Notification checkbox.
Set the default value for that checkbox here (if checked, push notification will not be sent by default)','androapp');?>
" value="1" />

: '.__('Click here','androapp').''; printf( /* translators: %s: Click here */ __('To know pageviews, exceptions, number of shares, comments from the app, %s to create a google analytics account.' ,'androapp'), $androappAnalyticsLink); ?>

" value="" />

Admob'; $mopubLink = 'Mopub'; $appNextLink = 'Appnext'; printf( /* translators: %1$s: Admob, %2$s: Mopub and %3$s:Appnext */ __('We are using top performing mobile ad network AdMob by Google, Mopub and AppNext. Please create publishers account on %1$s, %2$s and %3$s and enter ad id\'s here.', 'androapp'), $admobLink, $mopubLink, $appNextLink); ?>
'.__('Click here','androapp').''; printf( /* translators: %s: Click here */ __('You can use various ad providers using mopub on the fly, %s to read more about Ad guidelines and help in setting up the ads on your AndroApp)', 'androapp'), $androappAdGuideLink); ?>
: Mopub " value="" />
Admob " value="" />
: Mopub " value="" />
Admob " value="" />
: Mopub " value="" />
Admob " value="" />

.
: : " value="" />
: " value="" /> ()
: " value="" /> ( mopub, appnext and than Admob)
.
()
: '. __('Google Adsense policy','androapp').''; printf( /* translators: %s: Google Adsense Policy */ __('%s does not allow to use adsense units in mobile app, select this checkbox if you want to strip adsense code from mobile app pages. (works only when post content type is pre processed or post processed)', 'androapp'), $googleAdsensePolicyLink); ?>
" value="1" />

✓"; } function isTimeZoneError(){ try{ $this->androapp_json_get_timezone(); return false; }catch(Exception $e){ return true; } return false; } function isAndroAppHtAccessRulesPresent(){ $home_path = trailingslashit( get_home_path() ); $rules = implode( "\n", extract_from_markers( $home_path.'.htaccess', 'AndroApp' ) ); return !empty($rules); } function androapp_update_htaccess() { $home_path = trailingslashit( get_home_path() ); $wprules = implode( "\n", extract_from_markers( $home_path.'.htaccess', 'WordPress' ) ); $rules = "\n"; $rules .= "RewriteEngine On\n"; $rules .= "RewriteBase /\n"; $rules .= "RewriteRule ^wp-json/(.*)/$ /?json_route=/$1 [NC,L,QSA]\n"; $rules .= "RewriteRule ^wp-json/(.*)$ /?json_route=/$1 [NC,L,QSA]\n"; $rules .= ""; // remove original WP rules so SuperCache rules go on top if($this->wpsc_remove_marker( $home_path.'.htaccess', 'WordPress' )){ $res = insert_with_markers( $home_path.'.htaccess', 'AndroApp', explode( "\n", $rules )); $res = $res & insert_with_markers( $home_path.'.htaccess', 'WordPress', explode( "\n", $wprules )); if($res) { return true; } else { return false; } }else{ return false; } } //from wp super cache function wpsc_remove_marker( $filename, $marker ) { if (!file_exists( $filename ) || $this->is_writeable_ACLSafe( $filename ) ) { if (!file_exists( $filename ) ) { return ''; } else { $markerdata = explode( "\n", implode( '', file( $filename ) ) ); } $f = fopen( $filename, 'w' ); $foundit = false; if ( $markerdata ) { $state = true; foreach ( $markerdata as $n => $markerline ) { if (strpos($markerline, '# BEGIN ' . $marker) !== false) $state = false; if ( $state ) { if ( $n + 1 < count( $markerdata ) ) fwrite( $f, "{$markerline}\n" ); else fwrite( $f, "{$markerline}" ); } if (strpos($markerline, '# END ' . $marker) !== false) { $state = true; } } } return true; } else { return false; } } // from legolas558 d0t users dot sf dot net at http://www.php.net/is_writable function is_writeable_ACLSafe($path) { // PHP's is_writable does not work with Win32 NTFS if ($path{strlen($path)-1}=='/') // recursively return a temporary file path return $this->is_writeable_ACLSafe($path.uniqid(mt_rand()).'.tmp'); else if (is_dir($path)) return $this->is_writeable_ACLSafe($path.'/'.uniqid(mt_rand()).'.tmp'); // check tmp file for read/write capabilities $rm = file_exists($path); $f = @fopen($path, 'a'); if ($f===false) return false; fclose($f); if (!$rm) unlink($path); return true; } function isShowHtAccessRules($permalink_structure){ return empty($permalink_structure) && !$this->isAndroAppHtAccessRulesPresent(); } function options_do_getstarted(){ $lookAndFeel = ''. __('Look & Feel','androapp').''; $configure = ''. __('Configure','androapp').''; $internalization = ''. __('Internationalization','androapp').''; $sectionTobeOpened = -1; $stepOneCompleted = false; $updateHtaccessFailed = false; if(isset($_POST['updatehtaccess']) && $_POST['updatehtaccess'] == "1"){ $updateHtaccessFailed = !$this->androapp_update_htaccess(); } $permalink_structure = get_option('permalink_structure'); if(is_plugin_active('json-rest-api/plugin.php') && !$this->isTimeZoneError() && !$this->isShowHtAccessRules($permalink_structure)){ $stepOneCompleted = true; }else{ $sectionTobeOpened = 0; } global $options ; $options = get_option($this->build_option_name); $stepTwoCompleted = false; if(!empty($options[ANDROAPP_CLIENT_ID])){ $stepTwoCompleted = true; }else{ if($sectionTobeOpened == -1){ $sectionTobeOpened = 1; } } $stepThreeCompleted = false; if(!empty($options[ANDROAPP_LAUNCHER_ICON])){ $stepThreeCompleted = true; } else{ if($sectionTobeOpened == -1){ $sectionTobeOpened = 2; } } $accountOptions = get_option($this->account_tab_key); $stepFourCompleted = false; if(!empty($accountOptions[ANDROAPP_GOOGLE_SENDER_ID])){ $stepFourCompleted = true; }else{ if($sectionTobeOpened == -1){ $sectionTobeOpened = 3; } } if($sectionTobeOpened == -1){ $sectionTobeOpened = 4; } ?>

isTimeZoneError()) { ?>

' .__('click here', 'androapp').''; printf( /* translators: %s: click here */ __( 'WP REST API does not work correctly for your current timezone, %s to change it and come back.', 'androapp' ), $optionsLink ); ?>

(

isShowHtAccessRules($permalink_structure)){ $home_path = trailingslashit( get_home_path() ); ?>

'.__('Permalink link structure from here','androapp').'
'; printf( /* translators: %s: Permanent link structure from here */ __( 'WP REST API plugin does not work as expected in default link structure, if possible change your %s OR add this on top of your .htaccess file' ,'androapp'), $$linkOpen); ?>

# BEGIN AndroApp
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^wp-json/(.*)/$ /?json_route=/$1 [NC,L,QSA]
RewriteRule ^wp-json/(.*)$ /?json_route=/$1 [NC,L,QSA]
</IfModule>
# END AndroApp

". __('We could not modify your .htaccess file, please check the file permission.' , 'androapp') ."


"; } ?>

'; echo ''; echo '
'; wp_nonce_field('updatehtaccess'); echo ""; } else{ $json_installurl = $this->getInstallLink('json-rest-api'); ?>

'.__('Click here','androapp').''; $jsonPluginUrl = ' WP REST API (WP API)'; printf( /* translators: %1$s: Click here and %2$s: WP REST API (WP API) */ __('Your mobile app will use json calls to get the data from your site, for that you have to enable WP REST API plugin. This plugin is maintained by wordpress core team and will soon be included in the wordpress core, till then

%1$s to install %2$s plugin.

', 'androapp') , $jsonUrl, $jsonPluginUrl); ?>

version 1'; $jsonv2 = 'version 2'; printf( /* translators: %$1s: version 1 and %2$s: version 2 */ __('There are two versions of WP REST API, you need to install the %1s and not %2s.', 'androapp'), $jsonv1, $jsonv2); ?>

2print_checkMark();}?>

renderForm('androapp_getstarted' ,'render_invisibleForm'); }else{ ?>

In case you did not receive any mail, Don\'t worry, just drop an email to us @ %s, we will be happy to help you.', 'androapp'), 'contact@androapp.mobi'); ?>

3print_checkMark();}?>


'; printf( /* translators: %s: Configure */ __('Go to %s tab to change dynamic settings, like Menu Items, Comments Settings, Image Preview options, Share Text options etc. These settings can be changed anytime, you don\'t really need to publish a new build everytime, just restart your app and browse, you will see the changes.', 'androapp'), $configure); echo '

'; printf( /* translators: %s: Internalization */ __('Go to %s tab to change the texts used in app, you can use this section to change the texts to your own language, OR to change the default values to suit your website.', 'androapp'), $internalization); ?>

4print_checkMark();}?>

'. __('Account Settings','androapp').''; if($stepFourCompleted){ ?>

  1. Google Cloud Messaging for Android api key and project number for Push Notifications to work.', 'androapp');?>

5

Step 4, Go to %s section to create the new apk for your mobile app.', 'androapp'), $lookAndFeel); ?>
publish_do_page($options); ?>

account_tab_key); $tagTextColor = $options[pw_mobile_app_settings::$tagTextColorKey]; $tagBgColor = $options[pw_mobile_app_settings::$tagBgColorKey]; $feedBgColor = $options[pw_mobile_app_settings::$feedBgColorKey]; $feedTitleColor = $options[pw_mobile_app_settings::$feedTitleColorKey]; $feedContentTextColor = $options[pw_mobile_app_settings::$feedContentTextColorKey]; $screenBgColor = $options[pw_mobile_app_settings::$screenBgColorKey]; $actionBarTitleColor = $options[pw_mobile_app_settings::$actionBarTitleColorKey]; $actionBarBgColor = $options[pw_mobile_app_settings::$actionBarBgColorKey]; ?> " value=""/> " value="" /> " type="color" value="" /> " type="color" value="" /> " type="color" value="" /> " type="color" value="" /> " type="color" value="" /> " type="color" value="" /> " type="color" value="" /> " type="color" value="" /> " value="" /> " value="" /> " value="" /> " value="" /> " value="" /> " value="" /> " value="" /> " value="" /> " value="" /> " value="" /> " value="" /> " value="" /> " value="" /> " value="getstarted" />
resetBuildOptions(); } $this->renderForm($this->build_option_name ,'build_options_do_page'); ?>

Restore default settings

build_option_name); $accountOptions = get_option($this->account_tab_key); $tagTextColor = $options[pw_mobile_app_settings::$tagTextColorKey]; $tagBgColor = $options[pw_mobile_app_settings::$tagBgColorKey]; $feedBgColor = $options[pw_mobile_app_settings::$feedBgColorKey]; $feedTitleColor = $options[pw_mobile_app_settings::$feedTitleColorKey]; $feedContentTextColor = $options[pw_mobile_app_settings::$feedContentTextColorKey]; $screenBgColor = $options[pw_mobile_app_settings::$screenBgColorKey]; $actionBarTitleColor = $options[pw_mobile_app_settings::$actionBarTitleColorKey]; $actionBarBgColor = $options[pw_mobile_app_settings::$actionBarBgColorKey]; $statusBarBgColor = $options[pw_mobile_app_settings::$statusBarBgColorKey]; if(empty($statusBarBgColor)){ $statusBarBgColor = "#f45917"; } $authorTextColor = $options[pw_mobile_app_settings::$authorTextColorKey]; $timeTextColor = $options[pw_mobile_app_settings::$timeTextColorKey]; $args = array( 'posts_per_page' => 5, 'offset' => 0, 'category' => '', 'category_name' => '', 'orderby' => 'post_date', 'order' => 'DESC', 'include' => '', 'exclude' => '', 'meta_key' => '', 'meta_value' => '', 'post_type' => 'post', 'post_mime_type' => '', 'post_parent' => '', 'post_status' => 'publish', 'suppress_filters' => false ); $postslist = get_posts( $args ); ?>
Theme
: : " type="color" value="" onChange="document.getElementById('statusBar').style.background = this.value;" />
: " type="color" value="" onChange="document.getElementById('actionBar').style.background = this.value;" />
: " type="color" value="" onChange="document.getElementById('actionBarTitle').style.color = this.value; document.getElementById('statusBarTitle').style.color = this.value;" />
: " type="color" value="" onChange="document.getElementById('androScreen').style.background = this.value;" />
: " type="color" value="" onChange="changeTextColor('androPostTitle', this.value);" />
: " type="color" value="" onChange="changeTextColor('androPostContent', this.value);" />
: " type="color" value="" onChange="changeBgColor('androFeed', this.value);" />
: " type="color" value="" onChange="changeTextColor('tagTitle', this.value);" />
: " type="color" value="" onChange="changeBgColor('tagTitle', this.value);" />
: " type="color" value="" onChange="changeTextColor('authorTitle', this.value);" />
: " type="color" value="" onChange="changeTextColor('timeTitle', this.value);" />
* :
" value="" onChange="document.getElementById('actionBarTitle').innerHTML=this.value;"; />
*:
" value="" />
*:
Font:


:-
*

X
* :


" value="" /> " value="" /> " value="" /> " value="" /> " value="" /> " value="" /> " value="" /> " value="" /> " value="" /> " value="" /> " value="" /> " value="" /> " value="getyourapp" />
html preview, It is recommended to test it on device directly.', 'androapp');?>
post_content); //if(!empty($firstImage)) { ?>
"; }else{ echo ' '; } ?>
".$post->post_title."";?>
post_content))), 0, 115); ?>
ID); if($category[0]){ echo $category[0]->cat_name; } ?>
post_author ); echo $author; ?>

*

Email:

" value="" />

'. __('Terms & Conditions','androapp').''; printf( /* translators: %s: Terms & Conditions */ __('By clicking on the below button you agree to our %s.','androapp'), $termAndConditions); ?>

">

Select JS files you want to include $src) { ?>
Handle Script src Action
Add>>
No enqueued files detected.

Please try visiting a few pages on your site and then refresh this page.

You should clear this list once in a while to get rid of files that are no longer being used as this is not done automatically.


Selected Scripts
Clear Script File List

Define custom css here for postprocessed content type
resetLanguageOptions(); } $this->renderForm($this->language_option_name ,'language_options_do_page'); ?>

Restore default settings

language_option_name); ?>

Add your text in corresponding textbox

$value) { if($key == "wooseparator"){ ?>
Text Title Your Value Default Value
Below options are specific to woocommerce, most probably you dont need to change them if you are not using woocommerce plugin
Text Title Your Value Default Value
" value="" />

option_name); $scriptOptions = $this->scriptOptions; ?>

Select Menu:



:

" value="1" /> (if checked, will not try to fetch the first image from the post content, will use only featured image)



" value="full" />
" value="preview" />
" value="noimage" />


:

" value="excerpt" />
$action, 'plugin' => $slug ), admin_url( 'update.php' ) ), $action.'_'.$slug );?> " value="seo_meta_desc" /> " target="_blank" >Wordpress SEO plugin'; printf( /* translators: %s: Wordpress SEO Plugin */ __('SEO Meta Description( install and Activate %s )','androapp'), $wpseoLink ); ?>
" value="none" />


:

" value="preprocessed" onChange="onPostContentTypeChange();" />
" value="postprocessed" onChange="onPostContentTypeChange();" />
render_scripts($scriptOptions['scripts'] , $options[pw_mobile_app_settings::$selectedScripts], $options[ANDROAPP_POST_CONTENT], $options[pw_mobile_app_settings::$postProcessedCss]); ?> " value="loadurl" onChange="onPostContentTypeChange();" />
">
if(function_exists('isAndroAppRequest') && isAndroAppRequest()){
//Code to be called for AndroApp Requests(mobile app)
}
if(!function_exists('isAndroAppRequest') || !isAndroAppRequest()){
//Code to be called for regular requests
}


: " value="first" />
" value="noimage" />
Share Text:




: " value="" />
:
" value="" />
function getShareText($post, $link){
	return " ". via ".$link;
}
					
" value="1" />


: You have to disable debugging option and display comments at the end option from Debug tab of WP Super Cache Settings page.
also uncheck Don’t cache pages with GET parameters. (?x=y at the end of a url) option


', 'androapp'); ?> " value="1" />
: " value="wordpress" /> " value="disabled" />
()
" value="1" />
:
()
" value="1" />
: " value="posts" />
" value="pages" />
" value="products" />
" value="single" /> " value="" /> ()


name)){ return $menu->term_id; } } return null; } function getToken($length) { $key = ''; $keys = array_merge(range(0, 9), range('a', 'z')); for ($i = 0; $i < $length; $i++) { $key .= $keys[array_rand($keys)]; } return $key; } function androapp_json_get_timezone() { $tzstring = get_option( 'timezone_string' ); if ( ! $tzstring ) { // Create a UTC+- zone if no timezone string exists $current_offset = get_option( 'gmt_offset' ); if ( 0 == $current_offset ) { $tzstring = 'UTC'; } elseif ( $current_offset < 0 ) { $tzstring = 'Etc/GMT' . $current_offset; } else { $tzstring = 'Etc/GMT+' . $current_offset; } } $zone = new DateTimeZone( $tzstring ); return $zone; } }