/** * Running necesarry queries and functions for upgrading * @author Howard <*****@*****.**> * @return void */ public function upgrade_wpl() { if (wpl_folder::exists(WPL_ABSPATH . 'assets' . DS . 'upgrade' . DS . 'files')) { /** copy files **/ $res = wpl_folder::copy(WPL_ABSPATH . 'assets' . DS . 'upgrade' . DS . 'files', ABSPATH, '', true); /** delete files **/ wpl_folder::delete(WPL_ABSPATH . 'assets' . DS . 'upgrade' . DS . 'files'); } /** run queries **/ $query_file = WPL_ABSPATH . 'assets' . DS . 'upgrade' . DS . 'queries.sql'; if (wpl_file::exists($query_file)) { $queries = wpl_file::read($query_file); $queries = str_replace(";\r\n", "-=++=-", $queries); $queries = str_replace(";\r", "-=++=-", $queries); $queries = str_replace(";\n", "-=++=-", $queries); $sqls = explode("-=++=-", $queries); if (function_exists('is_multisite') and is_multisite() and wpl_global::check_addon('multisite')) { $original_blog_id = wpl_global::get_current_blog_id(); // Get all blogs $blogs = wpl_db::select("SELECT `blog_id` FROM `#__blogs`", 'loadColumn'); foreach ($blogs as $blog) { if (!isset($blog->blog_id)) { continue; } switch_to_blog($blog->blog_id); foreach ($sqls as $sql) { try { wpl_db::q($sql); } catch (Exception $e) { } } } /** delete query file **/ wpl_file::delete($query_file); switch_to_blog($original_blog_id); } else { foreach ($sqls as $sql) { try { wpl_db::q($sql); } catch (Exception $e) { } } /** delete query file **/ wpl_file::delete($query_file); } } /** run script **/ $script_file = WPL_ABSPATH . 'assets' . DS . 'upgrade' . DS . 'script.php'; if (wpl_file::exists($script_file)) { include $script_file; /** delete script file **/ wpl_file::delete($script_file); } /** update WPL version in db **/ update_option('wpl_version', wpl_global::wpl_version()); }
/** * Compile SCSS file and convert it to CSS file * @author Howard <*****@*****.**> * @param string $input * @param string $output * @return boolean */ public function compile_file($input, $output) { if (!trim($input) or !wpl_file::exists($input)) { return false; } if (!trim($output)) { return false; } $CSS = $this->scssc->compile(wpl_file::read($input)); wpl_file::write($output, $CSS); return $CSS; }
/** * Run a SQL Query file * @author Howard <*****@*****.**> * @static * @param string $sql_file * @param boolean $delete * @param boolean $exception * @return boolean */ public static function do_file_queries($sql_file, $delete = false, $exception = false) { if (!wpl_file::exists($sql_file)) { return false; } $read_file = wpl_file::read($sql_file); if ($read_file != '') { $read_file = str_replace(";\r\n", "-=++=-", $read_file); $read_file = str_replace(";\r", "-=++=-", $read_file); $read_file = str_replace(";\n", "-=++=-", $read_file); $list_query = explode("-=++=-", $read_file); for ($i = 0; $i < count($list_query); $i++) { if (trim($list_query[$i]) == '') { continue; } $query = $list_query[$i]; if ($exception) { wpl_db::q($query); } else { try { wpl_db::q($query); } catch (Exception $e) { } } } } if ($delete) { wpl_file::delete($sql_file); } return true; }
/** * Returns notification template content * @author Howard R <*****@*****.**> * @static * @param string $path * @param boolean $images_convert * @return boolean|string */ public static function get_template_content($path, $images_convert = true) { /** first validation **/ if (!trim($path)) { return false; } $content = wpl_file::read($path); if (!$images_convert) { return $content; } preg_match_all('/##([^#]*)##/', $content, $matches); foreach ($matches[1] as $var_name) { $image_url = self::get_images_url($var_name); $content = str_replace('##' . $var_name . '##', '<img src="' . $image_url . '" data-wpl-var="' . $var_name . '" />', $content); } return $content; }
public function makeMaskNo($maskNo, $width, $s, &$d, $maskGenOnly = false) { $b = 0; $bitMask = array(); $fileName = QR_CACHE_DIR . 'mask_' . $maskNo . DIRECTORY_SEPARATOR . 'mask_' . $width . '_' . $maskNo . '.dat'; if (QR_CACHEABLE) { if (file_exists($fileName)) { $bitMask = self::unserial(wpl_file::read($fileName)); } else { $bitMask = $this->generateMaskNo($maskNo, $width, $s, $d); if (!file_exists(QR_CACHE_DIR . 'mask_' . $maskNo)) { mkdir(QR_CACHE_DIR . 'mask_' . $maskNo); } wpl_file::write($fileName, self::serial($bitMask)); } } else { $bitMask = $this->generateMaskNo($maskNo, $width, $s, $d); } if ($maskGenOnly) { return; } $d = $s; for ($y = 0; $y < $width; $y++) { for ($x = 0; $x < $width; $x++) { if ($bitMask[$y][$x] == 1) { $d[$y][$x] = chr(ord($s[$y][$x]) ^ (int) $bitMask[$y][$x]); } $b += (int) (ord($d[$y][$x]) & 1); } } return $b; }
private function save_customizer() { $wplcustomizer = wpl_request::getVar('wplcustomizer', array()); $_variables = wpl_file::read(WPL_ABSPATH . 'assets' . DS . 'scss' . DS . 'ui_customizer' . DS . '_variables_source.scss'); foreach ($wplcustomizer as $key => $value) { $_variables = str_replace('[' . $key . ']', $value, $_variables); } /** Write on _variables.scss file **/ wpl_file::write(WPL_ABSPATH . 'assets' . DS . 'scss' . DS . 'ui_customizer' . DS . '_variables.scss', $_variables); /** Initialize SCSS Compiler **/ _wpl_import('libraries.scss'); $wplscss = new wpl_scss(); $wplscss->set_import_path(WPL_ABSPATH . 'assets' . DS . 'scss' . DS . 'ui_customizer' . DS); /** Compile **/ $wplscss->compile_file(WPL_ABSPATH . 'assets' . DS . 'scss' . DS . 'ui_customizer' . DS . 'wpl.scss', WPL_ABSPATH . 'assets' . DS . 'css' . DS . 'ui_customizer' . DS . 'wpl.css'); /** Save UI Customizer Options in Database **/ wpl_settings::save_setting('wpl_ui_customizer', json_encode($wplcustomizer)); $res = 1; $message = $res ? __('Saved.', WPL_TEXTDOMAIN) : __('Error Occured.', WPL_TEXTDOMAIN); $data = NULL; $response = array('success' => $res, 'message' => $message, 'data' => $data); echo json_encode($response); exit; }
/** * Import Settings from a file * @author Steve A. <*****@*****.**> * @static * @param string $file Settings File * @return boolean Result */ public static function import_settings($file) { $content = wpl_file::read($file); $ext = wpl_file::getExt($file); if ($ext == 'json') { $settings = json_decode($content); if (!$settings) { return false; } } elseif ($ext == 'xml') { $settings = simplexml_load_string($content); if (!$settings) { return false; } $settings = (array) $settings; } else { return false; } foreach ($settings as $name => $value) { self::update_setting($name, $value); } return true; }