コード例 #1
0
ファイル: 1409750208.php プロジェクト: Lazary/webasyst
<?php

$path = wa()->getDataPath('photos', true, 'contacts', false);
if (!file_exists($path . './htaccess')) {
    $path = wa()->getDataPath('photos', true, 'contacts');
    waFiles::write($path . '/thumb.php', '<?php
    $file = realpath(dirname(__FILE__)."/../../../../")."/wa-apps/contacts/lib/config/data/thumb.php";

    if (file_exists($file)) {
        include($file);
    } else {
        header("HTTP/1.0 404 Not Found");
    }
    ');
    waFiles::copy(wa()->getAppPath('lib/config/data/.htaccess', 'contacts'), $path . '/.htaccess');
}
コード例 #2
0
    private function reset()
    {
        /**
         * @event reset
         *
         * Notify plugins about reset all settings
         *
         * @param void
         * @return void
         */
        wa()->event('reset');
        //XXX hardcode
        $tables = array('shop_page', 'shop_page_params', 'shop_category', 'shop_category_params', 'shop_category_products', 'shop_category_routes', 'shop_product', 'shop_product_params', 'shop_product_features', 'shop_product_features_selectable', 'shop_product_images', 'shop_product_pages', 'shop_product_related', 'shop_product_reviews', 'shop_product_services', 'shop_product_skus', 'shop_product_stocks', 'shop_product_stocks_log', 'shop_search_index', 'shop_search_word', 'shop_tag', 'shop_product_tags', 'shop_set', 'shop_set_products', 'shop_stock', 'shop_feature', 'shop_feature_values_dimension', 'shop_feature_values_double', 'shop_feature_values_text', 'shop_feature_values_varchar', 'shop_feature_values_color', 'shop_feature_values_range', 'shop_type', 'shop_type_features', 'shop_type_services', 'shop_type_upselling', 'shop_service', 'shop_service_variants', 'shop_currency', 'shop_customer', 'shop_cart_items', 'shop_order', 'shop_order_items', 'shop_order_log', 'shop_order_log_params', 'shop_order_params', 'shop_affiliate_transaction', 'shop_checkout_flow', 'shop_notification', 'shop_notification_params', 'shop_coupon', 'shop_discount_by_sum', 'shop_tax', 'shop_tax_regions', 'shop_tax_zip_codes', 'shop_affiliate_transaction', 'shop_importexport');
        $model = new waModel();
        foreach ($tables as $table) {
            $exist = false;
            try {
                $model->query(sprintf("SELECT * FROM `%s` WHERE 0", $table));
                $exist = true;
                $model->query(sprintf("TRUNCATE `%s`", $table));
            } catch (waDbException $ex) {
                if ($exist) {
                    throw $ex;
                }
            }
        }
        $sqls = array();
        $sqls[] = 'UPDATE`shop_type` SET`count` = 0';
        $sqls[] = 'UPDATE`shop_set` SET`count` = 0';
        foreach ($sqls as $sql) {
            $model->query($sql);
        }
        $ccm = new waContactCategoryModel();
        $ccm->deleteByField('app_id', 'shop');
        $app_settings_model = new waAppSettingsModel();
        $currency_model = new shopCurrencyModel();
        $currency_model->insert(array('code' => 'USD', 'rate' => 1.0, 'sort' => 1), 2);
        $app_settings_model->set('shop', 'currency', 'USD');
        $app_settings_model->set('shop', 'use_product_currency', true);
        $paths = array();
        $paths[] = wa()->getDataPath('products', false, 'shop');
        $paths[] = wa()->getDataPath('products', true, 'shop');
        $paths[] = wa()->getTempPath();
        $config_path = wa()->getConfigPath('shop');
        foreach (waFiles::listdir($config_path, true) as $path) {
            if (!in_array($path, array('plugins.php', '..', '.'))) {
                $paths[] = $config_path . '/' . $path;
            }
        }
        $paths[] = wa()->getCachePath(null, 'shop');
        foreach ($paths as $path) {
            waFiles::delete($path, true);
        }
        $path = wa()->getDataPath('products', true, 'shop');
        waFiles::write($path . '/thumb.php', '<?php
$file = realpath(dirname(__FILE__)."/../../../../")."/wa-apps/shop/lib/config/data/thumb.php";

if (file_exists($file)) {
    include($file);
} else {
    header("HTTP/1.0 404 Not Found");
}
');
        waFiles::copy($this->getConfig()->getAppPath('lib/config/data/.htaccess'), $path . '/.htaccess');
        echo json_encode(array('result' => 'ok', 'redirect' => '?action=welcome'));
        exit;
    }
コード例 #3
0
ファイル: logsHelper.class.php プロジェクト: Lazary/webasyst
 public static function setPhpLogSetting($enable)
 {
     $php_log_config = self::getPhpLogConfig();
     $system_config_path = self::getSystemConfigPath();
     $system_config_contents = file_get_contents($system_config_path);
     $config_lines = self::getPhpLogSetting();
     if (is_writable($system_config_path)) {
         if ($enable) {
             if (!$config_lines) {
                 waFiles::write($system_config_path, $system_config_contents . $php_log_config);
             }
         } else {
             if ($config_lines) {
                 waFiles::write($system_config_path, str_replace($config_lines, '', $system_config_contents));
             }
         }
     } else {
         return sprintf(_w('Cannot save changes due to insufficient write permissions for file <tt>%s</tt>.'), $system_config_path);
     }
 }
 protected function createStructure($paths)
 {
     foreach ($paths as $path => $content) {
         if (is_integer($path)) {
             $path = $content;
             $content = false;
         }
         if (preg_match('@\\.[\\w]+$@', $path)) {
             $file = $this->path . $path;
             waFiles::create(dirname($file), true);
             if (is_array($content)) {
                 waUtils::varExportToFile($content, $file);
             } elseif ($content && file_exists($content)) {
                 waFiles::copy($content, $file);
             } else {
                 waFiles::write($file, $content);
             }
         } else {
             waFiles::create($this->path . $path, true);
         }
     }
 }
コード例 #5
0
 protected function create($type, $id, $path, $params = array())
 {
     $template_id = 'wapattern';
     $template_path = wa()->getConfig()->getPath('plugins') . '/' . $type . '/' . $template_id . '/';
     if (!file_exists($path)) {
         try {
             $path .= '/';
             mkdir($path);
             // lib
             mkdir($path . 'lib');
             waFiles::protect($path . 'lib');
             $plugin_class = null;
             mkdir($path . 'lib/classes');
             // config
             mkdir($path . 'lib/config');
             // app description
             $plugin = array('name' => empty($params['name']) ? ucfirst($id) : $params['name'], 'description' => '', 'icon' => 'img/' . $id . '.png', 'version' => empty($params['version']) ? '1.0.0' : $params['version'], 'vendor' => empty($params['vendor']) ? '' : $params['vendor']);
             waUtils::varExportToFile($plugin, $path . 'lib/config/plugin.php');
             switch ($type) {
                 case 'payment':
                     #settings
                     if (isset($params['settings'])) {
                         waUtils::varExportToFile(array(), $path . 'lib/config/settings.php');
                     }
                     #plugin class
                     $template_class_path = $template_path . 'lib/' . $template_id . ucfirst($type) . '.class.php';
                     $class_path = $path . 'lib/' . $id . ucfirst($type) . '.class.php';
                     $template = file_get_contents($template_class_path);
                     waFiles::write($class_path, str_replace($template_id, $id, $template));
                     #plugin template
                     mkdir($path . 'templates');
                     waFiles::protect($path . 'templates');
                     waFiles::copy($template_path . 'templates/payment.html', $path . 'templates/payment.html');
                     break;
                 case 'shipping':
                     #settings
                     if (isset($params['settings'])) {
                         waUtils::varExportToFile(array(), $path . 'lib/config/settings.php');
                     }
                     #plugin class
                     $template_class_path = $template_path . 'lib/' . $template_id . ucfirst($type) . '.class.php';
                     $class_path = $path . 'lib/' . $id . ucfirst($type) . '.class.php';
                     $template = file_get_contents($template_class_path);
                     waFiles::write($class_path, str_replace($template_id, $id, $template));
                     break;
                 default:
                     throw new waException(sprintf("Plugin type \"%s\" not supported yet.\n", $type));
                     break;
             }
             print "Plugin with id \"{$id}\" created!\n";
         } catch (waException $ex) {
             print "Plugin with id \"{$id}\" was NOT created.\n";
             if (waSystemConfig::isDebug()) {
                 echo $ex;
             } else {
                 print "Error:" . $ex->getMessage() . "\n";
             }
             waFiles::delete($path);
         }
     } else {
         print "Plugin with id \"{$id}\" already exists.\n";
     }
 }
コード例 #6
0
    protected function create($app_id, $plugin_id, $path, $params = array())
    {
        $report = '';
        if (!file_exists($path)) {
            $plugin = array('name' => empty($params['name']) ? ucfirst($plugin_id) : $params['name'], 'icon' => 'img/' . $plugin_id . '.gif', 'version' => $version = empty($params['version']) ? '0.1' : $params['version'], 'vendor' => $vendor = empty($params['vendor']) ? '--' : $params['vendor'], 'handlers' => array());
            $path .= '/';
            mkdir($path);
            mkdir($path . 'css');
            touch($path . 'css/' . $plugin_id . '.css');
            mkdir($path . 'js');
            touch($path . 'js/' . $plugin_id . '.js');
            mkdir($path . 'img');
            // lib
            mkdir($path . 'lib');
            waFiles::protect($path . 'lib');
            $class_name = $app_id . ucfirst($plugin_id) . 'Plugin';
            wa($app_id, true);
            $extends = $app_id . 'Plugin';
            if (!class_exists($extends)) {
                $extends = 'waPlugin';
            }
            $class = <<<PHP
<?php

class {$class_name} extends {$extends}
{

}

PHP;
            waFiles::write($path . 'lib/' . $app_id . ucfirst($plugin_id) . 'Plugin.class.php', $class);
            mkdir($path . 'lib/config');
            mkdir($path . 'lib/actions');
            mkdir($path . 'lib/classes');
            if (isset($params['db'])) {
                mkdir($path . 'lib/models');
            }
            if (isset($params['frontend'])) {
                $plugin['frontend'] = true;
                $routing = array('*' => 'frontend');
                waUtils::varExportToFile($routing, $path . 'lib/config/routing.php');
                // frontend controller
                mkdir($path . 'lib/actions/frontend');
            }
            // config
            waUtils::varExportToFile($plugin, $path . 'lib/config/plugin.php');
            if (isset($params['settings'])) {
                waUtils::varExportToFile(array(), $path . 'lib/config/settings.php');
            }
            // templates
            mkdir($path . 'templates');
            waFiles::protect($path . 'templates');
            mkdir($path . 'templates/actions');
            mkdir($path . 'templates/actions/backend');
            // backend template
            if (isset($params['frontend'])) {
                // frontend template
                mkdir($path . 'templates/actions/frontend');
            }
            // locale
            if (isset($params['locale'])) {
                mkdir($path . 'locale');
                waFiles::protect($path . 'locale');
            }
            $report .= <<<REPORT
Plugin with id "{$plugin_id}" created!

Useful commands:
    #generate plugin's database description file db.php
    php wa.php generateDb {$app_id}/{$plugin_id} table1 table2 table3

    #generate plugin's locale files
    php wa-system/locale/locale.php {$app_id}/plugins/{$plugin_id}
REPORT;
        } else {
            $report .= <<<REPORT
Plugin with id "{$plugin_id}" already exists.
REPORT;
        }
        print $report . "\n";
    }