예제 #1
0
 private function safe_mode($page_name, $site_name)
 {
     if (ROOTACCOUNT != $this->site_name) {
         die('return 404 not found');
     }
     $site = ORM::factory('site', $site_name);
     if (!$site->has(ORM::factory('account_user', $this->account_user->get_user()->id))) {
         return $this->plusjade_dashboard($page_name, 'You cannot edit this site.');
     }
     $theme_path = DATAPATH . "{$site_name}/themes/safe_mode";
     # delete safe-mode if it exists (might be tainted)
     if (is_dir($theme_path)) {
         Jdirectory::remove($theme_path);
     }
     # create it from stock.
     if (!is_dir(DOCROOT . "_assets/themes/safe_mode")) {
         return $this->plusjade_dashboard($page_name, 'Safe_mode theme does not exist. Please contact support@plusjade.com!!');
     }
     if (!Jdirectory::copy(DOCROOT . "_assets/themes/safe_mode", $theme_path)) {
         return $this->plusjade_dashboard($page_name, 'Uh oh, not even this worked. Please contact support@plusjade.com!!');
     }
     $site->theme = 'safe_mode';
     $site->save();
     if (yaml::edit_site_value($site_name, 'site_config', 'theme', 'safe_mode')) {
         return $this->plusjade_dashboard($page_name, "Safe-mode activated for <b>{$site_name}</b>");
     }
     return $this->plusjade_dashboard($page_name, 'safe-mode theme could not be activated');
 }
예제 #2
0
파일: site.php 프로젝트: plusjade/plusjade
 public static function _create_website($site_name, $theme = 'base', $user_id = NULL, $email = NULL)
 {
     # Make sure the site_name is unique.
     $site_name = valid::filter_php_url($site_name);
     $site = ORM::factory('site');
     if ($site->subdomain_exists($site_name)) {
         return 'Site name already exists.';
     }
     # create data folder structure for site
     $source = DOCROOT . '_assets/data/_stock';
     $dest = DATAPATH . $site_name;
     if (!is_dir($source)) {
         return '_stock folder does not exist.';
     }
     if (!Jdirectory::copy($source, $dest)) {
         return 'Unable to make data folder';
     }
     # add the theme.
     Theme_Controller::_new_website_theme($site_name, $theme);
     # create site table row.
     $new_site = ORM::factory('site');
     $new_site->subdomain = $site_name;
     $new_site->theme = $theme;
     $new_site->save();
     # Establish user access and claim status.
     if (empty($user_id)) {
         # by given email address
         $claimed = $email;
         # by cookie if no_register
         # cookie::set("unclaimed_$new_site->id", sha1("r-A-n_$new_site->id-D-o:m"));
         # $claimed = null;
     } else {
         # or by user_id if user is registered.
         $new_site->add(ORM::factory('account_user', $user_id));
         $new_site->claimed = 'yes';
         $claimed = 'true';
     }
     # save the site.
     $new_site->save();
     # create site_config file.
     $replacements = array($new_site->id, $site_name, $new_site->theme, '', 'home', $claimed);
     yaml::new_site_config($site_name, $replacements);
     # create static pages.
     $new_page = ORM::factory('page');
     $new_page->fk_site = $new_site->id;
     $new_page->page_name = 'home';
     $new_page->label = 'Home';
     $new_page->position = 0;
     $new_page->menu = 'yes';
     $new_page->save();
     ## This is normally where we would add sample tools with sample data
     ## and attach them to various pages.
     ## -------------------------------------------
     /*
     # add sample tools to homepage.
     $sample_tools = array(
       'Format',
       'Navigation',
       'Album',
       'Text'
     );
     #TODO establish types of tools, with views, etc.
     foreach($sample_tools as $name)
       Tool_Controller::_create_tool($new_page->id, $name, $site_name, FALSE, TRUE);
     */
     /*
         # create new pages with page_builders pre installed.
         # this should use the logic in the pages controller
         # since we are creating pages w/ tools and not the other way around.
         $install = array(
           'Account',
           #'Blog',
           #'Forum',
           #'Calendar'
         );
         foreach($install as $toolname)
           Tool_Controller::_auto_builder($toolname, $new_site->id, $site_name, 'base');
     */
     if (empty($user_id)) {
         url::redirect("http://{$site_name}." . ROOTDOMAIN . "/get/admin?email={$email}");
     }
     return 'Website Created!';
 }
예제 #3
0
파일: theme.php 프로젝트: plusjade/plusjade
 public static function _new_website_theme($site_name, $theme)
 {
     $source = DOCROOT . "_assets/themes/{$theme}";
     $dest = DATAPATH . "{$site_name}/themes/{$theme}";
     if (!is_dir($source)) {
         die('This theme does not exist.');
     }
     if (!Jdirectory::copy($source, $dest)) {
         die('Unable to create theme.');
     }
     # Error
     # Parse tokens.
     $type = 'css';
     if (is_dir("{$dest}/{$type}")) {
         $dir = dir("{$dest}/{$type}");
         while ($file = $dir->read()) {
             if ('.' != $file && '..' != $file) {
                 self::new_parse_and_save($theme, $type, $file, file_get_contents("{$dest}/{$type}/{$file}"), $site_name);
             }
         }
         $dir->close();
     }
     return TRUE;
 }