コード例 #1
1
ファイル: core.php プロジェクト: azorpax/common
 /**
  * [ocacu description]
  * @return void
  */
 public static function ocacu()
 {
     //first time install notify of installation to ocacu once month
     if (Core::config('general.ocacu') < strtotime('-1 second')) {
         $url = Kohana::$environment !== Kohana::DEVELOPMENT ? 'ocacu.com' : 'ocacu.lo';
         $url = 'http://' . $url . '/api/new/?siteUrl=' . URL::base();
         if (Core::curl_get_contents($url, 5)) {
             Model_Config::set_value('general', 'ocacu', time());
         }
     }
 }
コード例 #2
0
 public function action_status()
 {
     $status = (bool) $this->request->param('id');
     Model_Config::set_value('general', 'cron', $status);
     Alert::set(Alert::SUCCESS, __('General Configuration updated'));
     $this->redirect(Route::url('oc-panel', array('controller' => 'crontab')));
 }
コード例 #3
0
 /**
  * Automatically executed before the widget action. Can be used to set
  * class properties, do authorization checks, and execute other custom code.
  *
  * @return  void
  */
 public function before()
 {
     //we need this option enabled for this plugin to work
     if (Core::config('i18n.allow_query_language') == 0) {
         Model_Config::set_value('i18n', 'allow_query_language', 1);
     }
     if ($this->languages == '') {
         $this->languages = i18n::get_languages();
     } else {
         $this->languages = array_map('trim', explode(',', $this->languages));
     }
 }
コード例 #4
0
ファイル: translations.php プロジェクト: ThomWensink/common
 public function action_index()
 {
     // validation active
     Breadcrumbs::add(Breadcrumb::factory()->set_title(__('List')));
     $this->template->title = __('Translations');
     //scan project files and generate .po
     if (core::get('parse') !== NULL) {
         //scan script
         require_once Kohana::find_file('vendor', 'POTCreator/POTCreator', 'php');
         $obj = new POTCreator();
         $obj->set_root(DOCROOT);
         $obj->set_exts('php');
         $obj->set_regular('/_[_|e]\\([\\"|\']([^\\"|\']+)[\\"|\']\\)/i');
         $obj->set_base_path('..');
         $obj->set_read_subdir(true);
         $obj->write_pot(i18n::get_language_path());
         Alert::set(Alert::SUCCESS, 'File regenerated');
     }
     //change default site language
     if (($locale = $this->request->param('id')) != NULL and array_key_exists($locale, i18n::get_languages())) {
         //save language
         Model_Config::set_value('i18n', 'locale', $locale);
         //change the cookie if not he will not see the changes
         if (Core::config('i18n.allow_query_language') == 1) {
             Cookie::set('user_language', $locale, Core::config('auth.lifetime'));
         }
         Alert::set(Alert::SUCCESS, __('Language') . ' ' . $locale);
         HTTP::redirect(Route::url('oc-panel', array('controller' => 'translations')));
     }
     //create language
     if (Core::post('locale')) {
         $language = $this->request->post('locale');
         $folder = DOCROOT . 'languages/' . $language . '/LC_MESSAGES/';
         // if folder does not exist, try to make it
         if (!file_exists($folder) and !@mkdir($folder, 0775, true)) {
             // mkdir not successful ?
             Alert::set(Alert::ERROR, __('Language folder cannot be created with mkdir. Please correct to be able to create new translation.'));
             HTTP::redirect(Route::url('oc-panel', array('controller' => 'translations')));
         }
         // write an empty .po file for $language
         $out = 'msgid ""' . PHP_EOL;
         $out .= 'msgstr ""' . PHP_EOL;
         File::write($folder . 'messages.po', $out);
         Alert::set(Alert::SUCCESS, $this->request->param('id') . ' ' . __('Language saved'));
     }
     $this->template->content = View::factory('oc-panel/pages/translations/index', array('languages' => i18n::get_languages(), 'current_language' => core::config('i18n.locale')));
 }
コード例 #5
0
 public function action_index()
 {
     Breadcrumbs::add(Breadcrumb::factory()->set_title(__('Interactive map')));
     $this->template->title = __('Interactive map');
     $this->template->styles = array('css/map-generator.css' => 'screen');
     $this->template->scripts['footer'][] = '//www.google.com/jsapi';
     $this->template->scripts['footer'][] = '//maps.google.com/maps/api/js?sensor=false';
     $this->template->scripts['footer'][] = 'js/oc-panel/map/jscolor.js';
     $this->template->scripts['footer'][] = 'js/oc-panel/map/map-generator.js';
     $map_active = Core::post('map_active', Core::Config('appearance.map_active'));
     $map_settings = Core::post('current_settings', Core::Config('appearance.map_settings'));
     // change map
     if (Theme::get('premium') == 1 and Core::post('jscode')) {
         Model_Config::set_value('appearance', 'map_active', Core::post('map_active'));
         Model_Config::set_value('appearance', 'map_settings', Core::post('current_settings'));
         Model_Config::set_value('appearance', 'map_jscode', Kohana::$_POST_ORIG['jscode']);
         Core::delete_cache();
         Alert::set(Alert::SUCCESS, __('Map saved.'));
     }
     $this->template->content = View::factory('oc-panel/pages/map', array('map_active' => $map_active, 'map_settings' => $map_settings));
 }
コード例 #6
0
ファイル: order.php プロジェクト: zhangkom/openclassifieds2
 /**
  * sets/creates a new plan
  * @param integer $days  
  * @param integer $price
  * @param integer $days_key key to be deleted...
  */
 public static function set_featured_plan($days, $price, $days_key = NULL)
 {
     $plans = self::get_featured_plans();
     //this deletes the previous key in case is a set. we do it here since calling delete_featured was cached...ugly as hell.
     if (is_numeric($days_key) and isset($plans[$days_key])) {
         unset($plans[$days_key]);
     }
     //this updates a current plan
     $plans[$days] = $price;
     //order from lowest to highest number of days
     ksort($plans);
     Model_Config::set_value('payment', 'featured_plans', json_encode($plans));
 }
コード例 #7
0
ファイル: update.php プロジェクト: johnulist/openclassifieds2
 /**
  * This function will upgrade DB that didn't existed in versions prior to 2.1.7
  */
 public function action_217()
 {
     try {
         DB::query(Database::UPDATE, "ALTER TABLE  `" . self::$db_prefix . "posts` ADD  `id_post_parent` INT NULL DEFAULT NULL AFTER  `id_user`")->execute();
     } catch (exception $e) {
     }
     try {
         DB::query(Database::UPDATE, "ALTER TABLE  `" . self::$db_prefix . "posts` ADD  `ip_address` FLOAT NULL DEFAULT NULL AFTER  `created`")->execute();
     } catch (exception $e) {
     }
     try {
         DB::query(Database::UPDATE, "ALTER TABLE  `" . self::$db_prefix . "posts` ADD  `id_forum` INT NULL DEFAULT NULL AFTER  `id_post_parent`")->execute();
     } catch (exception $e) {
     }
     try {
         DB::query(Database::UPDATE, "ALTER TABLE  `" . self::$db_prefix . "posts` ENGINE = MYISAM ")->execute();
     } catch (exception $e) {
     }
     DB::query(Database::UPDATE, "CREATE TABLE IF NOT EXISTS  `" . self::$db_prefix . "forums` (\n                      `id_forum` int(10) unsigned NOT NULL AUTO_INCREMENT,\n                      `name` varchar(145) NOT NULL,\n                      `order` int(2) unsigned NOT NULL DEFAULT '0',\n                      `created` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,\n                      `id_forum_parent` int(10) unsigned NOT NULL DEFAULT '0',\n                      `parent_deep` int(2) unsigned NOT NULL DEFAULT '0',\n                      `seoname` varchar(145) NOT NULL,\n                      `description` varchar(255) NULL,\n                      PRIMARY KEY (`id_forum`) USING BTREE,\n                      UNIQUE KEY `" . self::$db_prefix . "forums_IK_seo_name` (`seoname`)\n                    ) ENGINE=MyISAM")->execute();
     // build array with new (missing) configs
     //set sitemap to 0
     Model_Config::set_value('sitemap', 'on_post', 0);
     $configs = array(array('config_key' => 'forums', 'group_name' => 'general', 'config_value' => '0'), array('config_key' => 'ocacu', 'group_name' => 'general', 'config_value' => '0'));
     // returns TRUE if some config is saved
     $return_conf = Model_Config::config_array($configs);
 }
コード例 #8
0
 public function action_subscribe()
 {
     $this->auto_render = FALSE;
     // Update subscribe config action
     Model_Config::set_value('general', 'subscribe', 1);
     Core::delete_cache();
     die('OK');
 }
コード例 #9
0
 /**
  * Plugins configuration 
  * @return [view] Renders view with form inputs
  */
 public function action_plugins()
 {
     Breadcrumbs::add(Breadcrumb::factory()->set_title(__('Plugins')));
     $this->template->title = __('Plugins');
     // all form config values
     $generalconfig = new Model_Config();
     $config = $generalconfig->where('group_name', '=', 'general')->or_where('group_name', '=', 'i18n')->find_all();
     // config general array
     foreach ($config as $c) {
         $forms[$c->config_key] = $forms[$c->config_key] = array('key' => $c->group_name . '[' . $c->config_key . '][]', 'id' => $c->config_key, 'value' => $c->config_value);
     }
     // save only changed values
     if ($this->request->post()) {
         //d($this->request->post());
         foreach ($this->request->post('general') as $k => $v) {
             $this->request->post('general_' . $k, $v[0]);
         }
         $validation = Validation::factory($this->request->post());
         if ($validation->check()) {
             //save general
             foreach ($config as $c) {
                 $config_res = $this->request->post();
                 if (isset($config_res[$c->group_name][$c->config_key][0]) and $config_res[$c->group_name][$c->config_key][0] != $c->config_value) {
                     $c->config_value = $config_res[$c->group_name][$c->config_key][0];
                     Model_Config::set_value($c->group_name, $c->config_key, $c->config_value);
                 }
             }
         } else {
             $errors = $validation->errors('config');
             foreach ($errors as $error) {
                 Alert::set(Alert::ALERT, $error);
             }
             $this->redirect(Route::url('oc-panel', array('controller' => 'settings', 'action' => 'plugins')));
         }
         Alert::set(Alert::SUCCESS, __('Plugins configuration updated'));
         $this->redirect(Route::url('oc-panel', array('controller' => 'settings', 'action' => 'plugins')));
     }
     $this->template->content = View::factory('oc-panel/pages/settings/plugins', array('forms' => $forms));
 }
コード例 #10
0
 /**
  * Image configuration 
  * @return [view] Renders view with form inputs
  */
 public function action_image()
 {
     $this->template->scripts['footer'][] = 'js/jquery.validate.min.js';
     $this->template->scripts['footer'][] = '/js/oc-panel/settings.js';
     Breadcrumbs::add(Breadcrumb::factory()->set_title(__('Image')));
     $this->template->title = __('Image');
     // all form config values
     $imageconf = new Model_Config();
     $config = $imageconf->where('group_name', '=', 'image')->find_all();
     // save only changed values
     if ($this->request->post()) {
         foreach ($this->request->post('image') as $k => $v) {
             $this->request->post('image_' . $k, $v[0]);
         }
         $validation = Validation::factory($this->request->post())->rule('image_max_image_size', 'not_empty')->rule('image_max_image_size', 'digit')->rule('image_height', 'digit')->rule('image_width', 'not_empty')->rule('image_width', 'digit')->rule('image_height_thumb', 'not_empty')->rule('image_height_thumb', 'digit')->rule('image_width_thumb', 'not_empty')->rule('image_width_thumb', 'digit')->rule('image_quality', 'not_empty')->rule('image_quality', 'digit')->rule('image_quality', 'range', array(':value', 1, 100))->rule('image_watermark', 'range', array(':value', 0, 1))->rule('image_watermark_position', 'not_empty')->rule('image_watermark_position', 'digit')->rule('image_watermark_position', 'range', array(':value', 0, 2))->rule('image_disallow_nudes', 'range', array(':value', 0, 1))->rule('image_aws_s3_active', 'range', array(':value', 0, 1));
         if ($validation->check()) {
             foreach ($config as $c) {
                 $config_res = $this->request->post();
                 if (!array_key_exists('allowed_formats', $config_res[$c->group_name])) {
                     Alert::set(Alert::ERROR, __('At least one image format should be allowed.'));
                     $this->redirect(Route::url('oc-panel', array('controller' => 'settings', 'action' => 'image')));
                 }
                 if ($config_res[$c->group_name][$c->config_key][0] != $c->config_value) {
                     if ($c->config_key == 'allowed_formats') {
                         $allowed_formats = '';
                         foreach ($config_res[$c->group_name][$c->config_key] as $key => $value) {
                             $allowed_formats .= $value . ",";
                         }
                         $config_res[$c->group_name][$c->config_key][0] = $allowed_formats;
                     }
                     if ($c->config_key == 'aws_s3_domain') {
                         switch ($config_res[$c->group_name]['aws_s3_domain'][0]) {
                             case 'bn-s3':
                                 $s3_domain = $config_res[$c->group_name]['aws_s3_bucket'][0] . '.s3.amazonaws.com';
                                 break;
                             case 'bn':
                                 $s3_domain = $config_res[$c->group_name]['aws_s3_bucket'][0];
                                 break;
                             default:
                                 $s3_domain = 's3.amazonaws.com/' . $config_res[$c->group_name]['aws_s3_bucket'][0];
                                 break;
                         }
                         $config_res[$c->group_name][$c->config_key][0] = $s3_domain . '/';
                     }
                     $c->config_value = $config_res[$c->group_name][$c->config_key][0];
                     Model_Config::set_value($c->group_name, $c->config_key, $c->config_value);
                 }
             }
         } else {
             $errors = $validation->errors('config');
             foreach ($errors as $error) {
                 Alert::set(Alert::ALERT, $error);
             }
             $this->redirect(Route::url('oc-panel', array('controller' => 'settings', 'action' => 'image')));
         }
         Alert::set(Alert::SUCCESS, __('Image Configuration updated'));
         $this->redirect(Route::url('oc-panel', array('controller' => 'settings', 'action' => 'image')));
     }
     $this->template->content = View::factory('oc-panel/pages/settings/image', array('config' => $config));
 }
コード例 #11
0
 /**
  * custom css for default theme
  * @return [view] 
  */
 public function action_css()
 {
     // validation active
     //$this->template->scripts['footer'][]= '/js/oc-panel/settings.js';
     $this->template->title = __('Custom CSS');
     Breadcrumbs::add(Breadcrumb::factory()->set_title($this->template->title));
     $css_active = Core::post('css_active', Core::Config('appearance.custom_css'));
     $css_content = Core::curl_get_contents(Theme::get_custom_css());
     if ($css_content === NULL) {
         Alert::set(Alert::ERROR, sprintf(__('We can not read file %s'), Theme::get_custom_css()));
     }
     // change the CSS
     if (($new_css = Core::post('css')) !== NULL) {
         //save css file
         $file = Theme::theme_folder('default') . '/css/web-custom.css';
         if (File::write($file, $new_css)) {
             Core::S3_upload($file, 'css/web-custom.css');
             //active or not? switch
             $css_active = Core::post('css_active');
             Model_Config::set_value('appearance', 'custom_css', $css_active);
             //increase version number
             Model_Config::set_value('appearance', 'custom_css_version', Core::Config('appearance.custom_css_version') + 1);
             $css_content = $new_css;
             Alert::set(Alert::SUCCESS, __('CSS file saved'));
         } else {
             Alert::set(Alert::ERROR, __('CSS file not saved'));
         }
     }
     $this->template->content = View::factory('oc-panel/pages/themes/css', array('css_content' => $css_content, 'css_version' => Core::Config('appearance.custom_css_version'), 'css_active' => $css_active));
 }
コード例 #12
0
ファイル: update.php プロジェクト: Ryanker/open-eshop
 /**
  * This function will upgrade configs  
  */
 public function action_15()
 {
     try {
         DB::query(Database::UPDATE, "ALTER TABLE " . self::$db_prefix . "config DROP INDEX " . self::$db_prefix . "config_IK_group_name_AND_config_key")->execute();
     } catch (exception $e) {
     }
     try {
         DB::query(Database::UPDATE, "ALTER TABLE " . self::$db_prefix . "config ADD PRIMARY KEY (config_key)")->execute();
     } catch (exception $e) {
     }
     try {
         DB::query(Database::UPDATE, "CREATE UNIQUE INDEX " . self::$db_prefix . "config_UK_group_name_AND_config_key ON " . self::$db_prefix . "config(`group_name` ,`config_key`)")->execute();
     } catch (exception $e) {
     }
     //set sitemap to 0
     Model_Config::set_value('sitemap', 'on_post', 0);
     $configs = array(array('config_key' => 'ocacu', 'group_name' => 'general', 'config_value' => '0'));
     // returns TRUE if some config is saved
     $return_conf = Model_Config::config_array($configs);
 }
コード例 #13
0
 /**
  * Updates general.hide_homepage_categories config
  * @return void
  */
 public function action_hide_homepage_categories()
 {
     if ($hide_homepage_categories = $this->request->post('hide_homepage_categories') and is_array($hide_homepage_categories)) {
         $hide_homepage_categories = json_encode($hide_homepage_categories);
         Model_Config::set_value('general', 'hide_homepage_categories', $hide_homepage_categories);
         Alert::set(Alert::SUCCESS, __('Updated hidden categories from homepage'));
     }
     HTTP::redirect(Route::url('oc-panel', array('controller' => 'category', 'action' => 'index')));
 }
コード例 #14
0
 /**
  * STEP 4 and last
  * updates all themes to latest version from API license
  * @return void 
  */
 public function action_themes()
 {
     $licenses = array();
     //getting the licenses unique. to avoid downloading twice
     $themes = core::config('theme');
     foreach ($themes as $theme) {
         $settings = json_decode($theme, TRUE);
         if (isset($settings['license'])) {
             if (!in_array($settings['license'], $licenses)) {
                 $licenses[] = $settings['license'];
             }
         }
     }
     //only if theres work to do ;)
     if (count($licenses) > 0) {
         //activate maintenance mode
         Model_Config::set_value('general', 'maintenance', 1);
         //for each unique license then download!
         foreach ($licenses as $license) {
             Theme::download($license);
         }
         Alert::set(Alert::SUCCESS, __('Themes Updated'));
         //deactivate maintenance mode
         Model_Config::set_value('general', 'maintenance', 0);
         //clean cache
         Core::delete_cache();
     }
     //finished the entire update process
     $this->redirect(Route::url('oc-panel', array('controller' => 'update', 'action' => 'index')));
 }