本文整理汇总了PHP中Tygh\Storage类的典型用法代码示例。如果您正苦于以下问题:PHP Storage类的具体用法?PHP Storage怎么用?PHP Storage使用的例子?那么, 这里精选的类代码示例或许可以为您提供帮助。
在下文中一共展示了Storage类的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: getDirCommerceML
public static function getDirCommerceML()
{
self::$path_commerceml = fn_get_files_dir_path() . 'exim/1C_' . date('dmY') . '/';
self::$url_commerceml = Registry::get('config.http_location') . '/' . fn_get_rel_dir(self::$path_commerceml);
self::$url_images = Storage::instance('images')->getAbsolutePath('from_1c/');
return array(self::$path_commerceml, self::$url_commerceml, self::$url_images);
}
示例2: fn_image_zoom_check_image
/**
* Check detail image sizes ration
*
* @param array $image_data Image data
* @param array $images Array with initial images
*/
function fn_image_zoom_check_image(&$image_data, &$images)
{
$precision = 80;
$ratio_detailed = round(round($images['detailed']['image_x'] / $images['detailed']['image_y'] * $precision) / $precision, 2);
$ratio_original = round(round($image_data['width'] / $image_data['height'] * $precision) / $precision, 2);
if ($ratio_detailed != $ratio_original) {
if ($ratio_detailed < $ratio_original) {
$new_x = ceil($images['detailed']['image_y'] / $image_data['height'] * $image_data['width']);
$new_y = $images['detailed']['image_y'];
} else {
$new_y = ceil($images['detailed']['image_x'] / $image_data['width'] * $image_data['height']);
$new_x = $images['detailed']['image_x'];
}
$file_path = fn_generate_thumbnail($images['detailed']['relative_path'], $new_x, $new_y, false, true);
/**
* Post hook for check detail image sizes ration
* @param string $file_path File path
* @param array $image_data Image data
* @param array $images Array with initial images
*/
fn_set_hook('image_zoom_check_image_post', $file_path, $image_data, $images);
if ($file_path) {
$image_data['detailed_image_path'] = \Tygh\Storage::instance('images')->getUrl($file_path);
}
}
}
示例3: smarty_block_scripts
/**
* Smarty plugin
* @package Smarty
* @subpackage plugins
*/
function smarty_block_scripts($params, $content, &$smarty, &$repeat)
{
if ($repeat == true) {
Registry::set('runtime.inside_scripts', 1);
return;
}
if (Registry::get('config.tweaks.dev_js')) {
$content .= smarty_helper_inline_scripts($params, $content, $smarty, $repeat);
return $content;
}
$scripts = array();
$external_scripts = array();
$dir_root = Registry::get('config.dir.root');
$return = '';
$current_location = Registry::get('config.current_location');
if (preg_match_all('/\\<script(.*?)\\>(.*?)\\<\\/script\\>/s', $content, $m)) {
$contents = '';
foreach ($m[1] as $src) {
if (!empty($src) && preg_match('/src ?= ?"([^"]+)"/', $src, $_m)) {
if (strpos($_m[1], $current_location) !== false) {
$scripts[] = str_replace($current_location, '', preg_replace('/\\?.*?$/', '', $_m[1]));
} else {
$external_scripts[] = $_m[1];
}
}
}
// Check file changes in dev mode
$names = $scripts;
if (Development::isEnabled('compile_check')) {
foreach ($names as $index => $name) {
if (is_file($dir_root . '/' . $name)) {
$names[$index] .= filemtime($dir_root . '/' . $name);
}
}
}
$filename = 'js/tygh/scripts-' . md5(implode(',', $names)) . fn_get_storage_data('cache_id') . '.js';
if (!Storage::instance('statics')->isExist($filename)) {
foreach ($scripts as $src) {
$contents .= fn_get_contents(Registry::get('config.dir.root') . $src);
}
$contents = str_replace('[files]', implode("\n", $scripts), Registry::get('config.js_css_cache_msg')) . $contents;
$contents = Minifier::minify($contents, array('flaggedComments' => false));
Storage::instance('statics')->put($filename, array('contents' => $contents, 'compress' => false, 'caching' => true));
}
$return = '<script type="text/javascript" src="' . Storage::instance('statics')->getUrl($filename) . '?ver=' . PRODUCT_VERSION . '"></script>' . "\n";
if (!empty($external_scripts)) {
foreach ($external_scripts as $sc) {
$return .= '<script type="text/javascript" src="' . $sc . '"></script>' . "\n";
}
}
foreach ($m[2] as $sc) {
if (!empty($sc)) {
$return .= '<script type="text/javascript">' . $sc . '</script>' . "\n";
}
}
$return .= smarty_helper_inline_scripts($params, $content, $smarty, $repeat);
}
return $return;
}
示例4: fn_settings_actions_addons_hidpi
function fn_settings_actions_addons_hidpi(&$new_value, $old_value)
{
Storage::instance('images')->deleteDir('thumbnails');
if ($new_value == 'A') {
$formats = fn_check_gd_formats();
// Set thumbnail generation format to png to improve quality
if (!empty($formats['png'])) {
Settings::instance()->updateValue('convert_to', 'png', 'Thumbnails');
}
}
}
示例5: fn_settings_actions_addons_hidpi
function fn_settings_actions_addons_hidpi(&$new_value, $old_value)
{
Storage::instance('images')->deleteDir('thumbnails');
if ($new_value == 'A') {
$formats = fn_get_supported_image_format_variants();
// Set thumbnail generation format to png to improve quality
if (!empty($formats['png'])) {
Settings::instance()->updateValue('convert_to', 'png', 'Thumbnails');
fn_set_notification('W', __('warning'), __('addons.hidpi.thumbnail_format_changed', array('[settings_url]' => fn_url('settings.manage?section_id=Thumbnails'))));
}
}
}
示例6: smarty_block_scripts
/**
* Smarty plugin
* @package Smarty
* @subpackage plugins
*/
function smarty_block_scripts($params, $content, &$smarty, &$repeat)
{
if ($repeat == true) {
return;
}
if (Registry::get('config.tweaks.dev_js')) {
return $content;
}
$scripts = array();
$dir_root = Registry::get('config.dir.root');
$return = '';
if (preg_match_all('/\\<script(.*?)\\>(.*?)\\<\\/script\\>/s', $content, $m)) {
$contents = '';
foreach ($m[1] as $src) {
if (!empty($src) && preg_match('/src ?= ?"([^"]+)"/', $src, $_m)) {
$scripts[] = str_replace(Registry::get('config.current_location'), '', preg_replace('/\\?.*?$/', '', $_m[1]));
}
}
// Check file changes in dev mode
$names = $scripts;
if (Development::isEnabled('compile_check')) {
foreach ($names as $index => $name) {
if (is_file($dir_root . '/' . $name)) {
$names[$index] .= filemtime($dir_root . '/' . $name);
}
}
}
$gz_suffix = Registry::get('config.tweaks.gzip_css_js') ? '.gz' : '';
$filename = 'js/tygh/scripts-' . md5(implode(',', $names)) . fn_get_storage_data('cache_id') . '.js';
if (!Storage::instance('statics')->isExist($filename . $gz_suffix)) {
foreach ($scripts as $src) {
$contents .= fn_get_contents(Registry::get('config.dir.root') . $src);
}
$contents = str_replace('[files]', implode("\n", $scripts), Registry::get('config.js_css_cache_msg')) . $contents;
Storage::instance('statics')->put($filename . $gz_suffix, array('contents' => $contents, 'compress' => Registry::get('config.tweaks.gzip_css_js'), 'caching' => true));
}
$return = '<script type="text/javascript" src="' . Storage::instance('statics')->getUrl($filename) . '?ver=' . PRODUCT_VERSION . '"></script>';
foreach ($m[2] as $sc) {
if (!empty($sc)) {
$return .= '<script type="text/javascript">' . $sc . '</script>' . "\n";
}
}
}
return $return;
}
示例7: fn_export_image
/**
* Export image (moves to selected directory on filesystem)
*
* @param int $image_id ID of the image
* @param string $object object to export image for (product, category, etc...)
* @param string $backup_path path to export image
* @return string path to the exported image
*/
function fn_export_image($image_id, $object, $backup_path = '', $include_alt = true)
{
if (empty($backup_path)) {
$backup_path = 'exim/backup/images/' . $object . '/';
}
$backup_path = rtrim(fn_normalize_path($backup_path), '/');
$images_path = fn_get_files_dir_path() . $backup_path;
// if backup dir does not exist then try to create it
fn_mkdir($images_path);
$image_data = db_get_row("SELECT image_id, image_path FROM ?:images WHERE image_id = ?i", $image_id);
if (empty($image_data)) {
return '';
}
if ($include_alt) {
$alt_data = db_get_hash_single_array("SELECT lang_code, description FROM ?:common_descriptions WHERE ?:common_descriptions.object_id = ?i AND ?:common_descriptions.object_holder = 'images'", array('lang_code', 'description'), $image_id);
$alt_text = '#{';
if (!empty($alt_data)) {
foreach ($alt_data as $lang_code => $text) {
$alt_text .= '[' . $lang_code . ']:' . $text . ';';
}
}
$alt_text .= '}';
}
$path = $images_path . '/' . fn_basename($image_data['image_path']);
Storage::instance('images')->export($object . '/' . floor($image_id / MAX_FILES_IN_DIR) . '/' . $image_data['image_path'], $path);
return $backup_path . '/' . fn_basename($image_data['image_path']) . (!empty($alt_data) && $include_alt ? $alt_text : '');
}
示例8: fn_hidpi_delete_image
/**
* Hook: deletes HiDPI image
* @param int $image_id
* @param int $pair_id
* @param string $object_type
* @param string $_image_file
*/
function fn_hidpi_delete_image($image_id, $pair_id, $object_type, $_image_file)
{
Storage::instance('images')->delete(fn_hdpi_form_name($_image_file));
}
示例9: empty
}
$type = empty($_REQUEST['type']) ? 'T' : $_REQUEST['type'];
$image_path = 'sess_data/' . fn_basename($_REQUEST['image']);
if (Storage::instance('custom_files')->isExist($image_path)) {
$real_path = Storage::instance('custom_files')->getAbsolutePath($image_path);
list(, , $image_type, $tmp_path) = fn_get_image_size($real_path);
if ($type == 'T') {
$thumb_path = $image_path . '_thumb';
if (!Storage::instance('custom_files')->isExist($thumb_path)) {
// Output a thumbnail image
list($cont, $format) = fn_resize_image($tmp_path, Registry::get('settings.Thumbnails.product_lists_thumbnail_width'), Registry::get('settings.Thumbnails.product_lists_thumbnail_height'), Registry::get('settings.Thumbnails.thumbnail_background_color'));
if (!empty($cont)) {
Storage::instance('custom_files')->put($thumb_path, array('contents' => $cont));
}
}
$real_path = Storage::instance('custom_files')->getAbsolutePath($thumb_path);
}
header('Content-type: ' . $image_type);
fn_echo(fn_get_contents($real_path));
exit;
}
// Not image file. Display spacer instead.
header('Content-type: image/gif');
readfile(fn_get_theme_path('[themes]/[theme]') . '/media/images/spacer.gif');
exit;
} elseif ($mode == 'thumbnail') {
$img = fn_generate_thumbnail($_REQUEST['image_path'], $_REQUEST['w'], $_REQUEST['h']);
if (!empty($img)) {
header('Content-type: ' . fn_get_file_type($img));
fn_echo(fn_get_contents($img));
}
示例10: fn_rus_exim_1c_get_dir_1c
function fn_rus_exim_1c_get_dir_1c()
{
$dir_1c = fn_get_files_dir_path() . 'exim/1C_' . date('dmY') . '/';
$dir_1c_url = Registry::get('config.http_location') . '/' . fn_get_rel_dir($dir_1c);
$dir_1c_images = Storage::instance('images')->getAbsolutePath('from_1c/');
return array($dir_1c, $dir_1c_url, $dir_1c_images);
}
示例11: fn_merge_styles
/**
* Merges css and less files
*
* @param array $files Array with style files
* @param string $styles Style code
* @param string $prepend_prefix Prepend prefix
* @param array $params additional params
*/
function fn_merge_styles($files, $styles = '', $prepend_prefix = '', $params = array(), $area = AREA)
{
$prefix = !empty($prepend_prefix) ? 'embedded' : 'standalone';
$make_rtl = false;
if (fn_is_rtl_language()) {
$prefix .= '-rtl';
$make_rtl = true;
}
$output = '';
$less_output = '';
$less_reflection = array();
$compiled_less = '';
$compiled_css = '';
$relative_path = fn_get_theme_path('[relative]/[theme]/css', $area);
$hashes = array();
$names = array_map(function ($v) {
return !empty($v['relative']) ? $v['relative'] : false;
}, $files);
// Check file changes
if (Development::isEnabled('compile_check') || Debugger::isActive()) {
$dir_root = Registry::get('config.dir.root');
foreach ($names as $index => $name) {
if (file_exists($dir_root . '/' . $name)) {
$hashes[] = $name . filemtime($dir_root . '/' . $name);
}
}
}
$hashes[] = md5(implode('|', $names));
$hashes[] = md5($styles);
if ($area == 'C') {
$hashes[] = Registry::get('runtime.layout.layout_id');
$hashes[] = Registry::get('runtime.layout.style_id');
}
arsort($hashes);
$hash = md5(implode(',', $hashes) . PRODUCT_VERSION) . fn_get_storage_data('cache_id');
$filename = $prefix . '.' . $hash . '.css';
$theme_manifest = Themes::factory(fn_get_theme_path('[theme]', 'C'))->getManifest();
if (!Storage::instance('assets')->isExist($relative_path . '/' . $filename)) {
Debugger::checkpoint('Before styles compilation');
foreach ($files as $src) {
$m_prefix = '';
$m_suffix = '';
if (!empty($src['media'])) {
$m_prefix = "\n@media " . $src['media'] . " {\n";
$m_suffix = "\n}\n";
}
if (strpos($src['file'], '.css') !== false) {
$output .= "\n" . $m_prefix . fn_get_contents($src['file']) . $m_suffix;
} elseif ($area != 'C' || empty($theme_manifest['converted_to_css'])) {
$less_output_chunk = '';
if (file_exists($src['file'])) {
if ($area == 'C' && (empty($theme_manifest['parent_theme']) || $theme_manifest['parent_theme'] == 'basic')) {
$less_output_chunk = "\n" . $m_prefix . fn_get_contents($src['file']) . $m_suffix;
} else {
$less_output_chunk = "\n" . $m_prefix . '@import "' . str_replace($relative_path . '/', '', $src['relative']) . '";' . $m_suffix;
}
}
if (!empty($params['reflect_less'])) {
if (preg_match('{/addons/([^/]+)/}is', $src['relative'], $m)) {
$less_reflection['output']['addons'][$m[1]] .= $less_output_chunk;
} else {
$less_reflection['output']['main'] .= $less_output_chunk;
}
}
$less_output .= $less_output_chunk;
}
}
$header = str_replace('[files]', implode("\n", $names), Registry::get('config.js_css_cache_msg'));
if (!empty($styles)) {
$less_output .= $styles;
}
// Prepend all styles with prefix
if (!empty($prepend_prefix)) {
$less_output = $output . "\n" . $less_output;
$output = '';
}
if (!empty($output)) {
$compiled_css = Less::parseUrls($output, Storage::instance('assets')->getAbsolutePath($relative_path), fn_get_theme_path('[themes]/[theme]/media', $area));
}
if (!empty($theme_manifest['converted_to_css']) && $area == 'C') {
$theme_css_path = fn_get_theme_path('[themes]/[theme]', $area) . '/css';
$pcl_filepath = $theme_css_path . '/' . Themes::$compiled_less_filename;
if (file_exists($pcl_filepath)) {
$compiled_css .= fn_get_contents($pcl_filepath);
}
list($installed_addons) = fn_get_addons(array('type' => 'active'));
foreach ($installed_addons as $addon) {
$addon_pcl_filpath = $theme_css_path . "/addons/{$addon['addon']}/" . Themes::$compiled_less_filename;
if (file_exists($pcl_filepath)) {
$compiled_css .= fn_get_contents($addon_pcl_filpath);
}
}
//.........这里部分代码省略.........
示例12: exit
}
if (Registry::get('config.demo_mode')) {
// ElFinder should not work in demo mode
$message = json_encode(array('error' => __('error_demo_mode')));
exit($message);
}
if (AREA == 'C') {
if (!Registry::get('runtime.customization_mode.live_editor')) {
die('Access denied');
}
}
$private_files_path = fn_get_files_dir_path();
$public_files_path = fn_get_public_files_path();
fn_mkdir($private_files_path);
fn_mkdir($public_files_path);
$start_path = '';
if (!empty($_REQUEST['init']) && !empty($_REQUEST['start_path'])) {
unset($_GET['target']);
$start_path = fn_normalize_path($private_files_path . $_REQUEST['start_path']);
if (strpos($start_path, $private_files_path) !== 0) {
$start_path = '';
}
}
$extra_path = str_replace(Storage::instance('images')->getAbsolutePath(''), '', $public_files_path);
$opts = array('roots' => array(array('driver' => 'Tygh\\ElFinder\\Volume', 'uploadDeny' => Registry::get('config.forbidden_mime_types'), 'fileMode' => DEFAULT_FILE_PERMISSIONS, 'dirMode' => DEFAULT_DIR_PERMISSIONS, 'uploadMaxSize' => Bootstrap::getIniParam('upload_max_filesize', true), 'alias' => __('private_files'), 'tmbPath' => '', 'path' => $private_files_path, 'startPath' => $start_path, 'mimeDetect' => 'internal', 'archiveMimes' => array('application/zip'), 'icon' => Registry::get('config.current_location') . '/js/lib/elfinder/img/volume_icon_local.png'), array('driver' => 'Tygh\\ElFinder\\Volume', 'uploadDeny' => Registry::get('config.forbidden_mime_types'), 'fileMode' => DEFAULT_FILE_PERMISSIONS, 'dirMode' => DEFAULT_DIR_PERMISSIONS, 'uploadMaxSize' => Bootstrap::getIniParam('upload_max_filesize', true), 'alias' => __('public_files'), 'tmbPath' => '', 'path' => $public_files_path, 'URL' => Storage::instance('images')->getUrl($extra_path), 'mimeDetect' => 'internal', 'archiveMimes' => array('application/zip'), 'icon' => Registry::get('config.current_location') . '/js/lib/elfinder/img/volume_icon_local.png')));
if ($mode == 'images') {
unset($opts['roots'][0]);
}
$connector = new \elFinderConnector(new Core($opts));
$connector->run();
exit;
示例13: fn_exim_export_file
function fn_exim_export_file($product_id, $path)
{
$path = fn_get_files_dir_path() . fn_normalize_path($path);
$files = db_get_array("SELECT file_path, preview_path, pfolder.folder_id FROM ?:product_files as pfiles" . " LEFT JOIN ?:product_file_folders as pfolder ON pfolder.folder_id = pfiles.folder_id" . " WHERE pfiles.product_id = ?i", $product_id);
if (!empty($files)) {
// If backup path is set, check if it exists and copy files there
if (!empty($path)) {
if (!fn_mkdir($path)) {
fn_set_notification('E', __('error'), __('text_cannot_create_directory', array('[directory]' => fn_get_rel_dir($path))));
return '';
}
}
$_data = array();
foreach ($files as $file) {
Storage::instance('downloads')->export($product_id . '/' . $file['file_path'], $path . '/' . $file['file_path']);
if (!empty($file['preview_path'])) {
Storage::instance('downloads')->export($product_id . '/' . $file['preview_path'], $path . '/' . $file['preview_path']);
}
$file_data = $file['file_path'];
if (!empty($file['folder_id'])) {
$file_data = $file['folder_id'] . '/' . $file_data;
}
if (!empty($file['preview_path'])) {
$file_data = $file_data . '#' . $file['preview_path'];
}
$_data[] = $file_data;
}
return implode(', ', $_data);
}
return '';
}
示例14: empty
$redirect_mode = empty($_REQUEST['redirect_mode']) ? 'cart' : $_REQUEST['redirect_mode'];
return array(CONTROLLER_STATUS_REDIRECT, 'checkout.' . $redirect_mode);
} elseif ($mode == 'get_custom_file' && isset($_REQUEST['cart_id']) && isset($_REQUEST['option_id']) && isset($_REQUEST['file'])) {
if (isset($cart['products'][$_REQUEST['cart_id']]['extra']['custom_files'][$_REQUEST['option_id']][$_REQUEST['file']])) {
$file = $cart['products'][$_REQUEST['cart_id']]['extra']['custom_files'][$_REQUEST['option_id']][$_REQUEST['file']];
Storage::instance('custom_files')->get($file['path'], $file['name']);
}
} elseif ($mode == 'delete_file' && isset($_REQUEST['cart_id'])) {
if (isset($cart['products'][$_REQUEST['cart_id']]['extra']['custom_files'][$_REQUEST['option_id']][$_REQUEST['file']])) {
// Delete saved custom file
$product = $cart['products'][$_REQUEST['cart_id']];
$option_id = $_REQUEST['option_id'];
$file_id = $_REQUEST['file'];
$file = $product['extra']['custom_files'][$option_id][$file_id];
Storage::instance('custom_files')->delete($file['path']);
Storage::instance('custom_files')->delete($file['path'] . '_thumb');
unset($product['extra']['custom_files'][$option_id][$file_id]);
if (!empty($product['extra']['custom_files'][$option_id])) {
$product['product_options'][$option_id] = md5(serialize($product['extra']['custom_files'][$option_id]));
} else {
unset($product['product_options'][$option_id]);
}
$product['extra']['product_options'] = empty($product['product_options']) ? array() : $product['product_options'];
$cart['products'][$_REQUEST['cart_id']] = $product;
}
fn_save_cart_content($cart, $auth['user_id']);
$cart['recalculate'] = true;
if (defined('AJAX_REQUEST')) {
fn_set_notification('N', __('notice'), __('text_product_file_has_been_deleted'));
if (Registry::get('runtime.action') == 'from_status') {
fn_calculate_cart_content($cart, $auth, 'S', true, 'F', true);
示例15: convertChunkToCss
/**
* Compile chunk of LESS output and save the result in the file
*
* @param string $less_output Chunk of LESS output
* @param string $css_path The path where the precompiled LESS will be saved
*
* @return boolean Result
*/
protected function convertChunkToCss($less_output, $css_path)
{
$less = $this->getLess();
$less_reflection = $this->getLessReflection();
$less->setImportDir($less_reflection['import_dirs']);
Registry::set('runtime.layout', Layout::instance()->getDefault($this->theme_name));
$from_path = Storage::instance('assets')->getAbsolutePath($this->relative_path . '/css');
$compiled_less = $less->customCompile($less_output, $from_path, array(), '', 'C');
$res = fn_put_contents($css_path . '/' . self::$compiled_less_filename, $compiled_less);
if ($res === false) {
return false;
}
return true;
}