Пример #1
0
 static function formRule($fields)
 {
     if (isset($fields['enableSSL']) && $fields['enableSSL']) {
         $config = CRM_Core_Config::singleton();
         $url = str_replace('http://', 'https://', CRM_Utils_System::url('civicrm/dashboard', 'reset=1', TRUE, NULL, FALSE, FALSE));
         if (!CRM_Utils_System::checkURL($url, TRUE)) {
             $errors = array('enableSSL' => ts('You need to set up a secure server before you can use the Force Secure URLs option'));
             return $errors;
         }
     }
     return TRUE;
 }
Пример #2
0
 /**
  * Function to set the default values
  *
  * @param array   $defaults  associated array of form elements
  * @param boolena $formMode  this funtion is called to set default
  *                           values in an empty db, also called when setting component using GUI
  *                           this variable is set true for GUI
  *                           mode (eg: Global setting >> Components)    
  *
  * @access public
  */
 public function setValues(&$defaults, $formMode = false)
 {
     $config =& CRM_Core_Config::singleton();
     $baseURL = $config->userFrameworkBaseURL;
     if ($config->templateCompileDir) {
         $path = dirname($config->templateCompileDir);
         //this fix is to avoid creation of upload dirs inside templates_c directory
         $checkPath = explode(DIRECTORY_SEPARATOR, $path);
         $cnt = count($checkPath) - 1;
         if ($checkPath[$cnt] == 'templates_c') {
             unset($checkPath[$cnt]);
             $path = implode(DIRECTORY_SEPARATOR, $checkPath);
         }
         $path = CRM_Utils_File::addTrailingSlash($path);
     }
     //set defaults if not set in db
     if (!isset($defaults['userFrameworkResourceURL'])) {
         $testIMG = "i/tracker.gif";
         if ($config->userFramework == 'Joomla') {
             if (CRM_Utils_System::checkURL("{$baseURL}components/com_civicrm/civicrm/{$testIMG}")) {
                 $defaults['userFrameworkResourceURL'] = $baseURL . "components/com_civicrm/civicrm/";
             }
         } else {
             if ($config->userFramework == 'Standalone') {
                 // potentially sane default for standalone;
                 // could probably be smarter about this, but this
                 // should work in many cases
                 $defaults['userFrameworkResourceURL'] = str_replace('standalone/', '', $baseURL);
             } else {
                 // Drupal setting
                 // check and see if we are installed in sites/all (for D5 and above)
                 // we dont use checkURL since drupal generates an error page and throws
                 // the system for a loop on lobo's macosx box
                 // or in modules
                 global $civicrm_root;
                 $civicrmDirName = trim(basename($civicrm_root));
                 $defaults['userFrameworkResourceURL'] = $baseURL . "sites/all/modules/{$civicrmDirName}/";
                 if (strpos($civicrm_root, DIRECTORY_SEPARATOR . 'sites' . DIRECTORY_SEPARATOR . 'all' . DIRECTORY_SEPARATOR . 'modules') === false) {
                     $startPos = strpos($civicrm_root, DIRECTORY_SEPARATOR . 'sites' . DIRECTORY_SEPARATOR);
                     $endPos = strpos($civicrm_root, DIRECTORY_SEPARATOR . 'modules' . DIRECTORY_SEPARATOR);
                     if ($startPos && $endPos) {
                         // if component is in sites/SITENAME/modules
                         $siteName = substr($civicrm_root, $startPos + 7, $endPos - $startPos - 7);
                         $defaults['userFrameworkResourceURL'] = $baseURL . "sites/{$siteName}/modules/{$civicrmDirName}/";
                         if (!isset($defaults['imageUploadURL'])) {
                             $defaults['imageUploadURL'] = $baseURL . "sites/{$siteName}/files/civicrm/persist/contribute/";
                         }
                     }
                 }
             }
         }
     }
     if (!isset($defaults['imageUploadURL'])) {
         if ($config->userFramework == 'Joomla') {
             // gross hack
             // we need to remove the administrator/ from the end
             $tempURL = str_replace("/administrator/", "/", $baseURL);
             $defaults['imageUploadURL'] = $tempURL . "media/civicrm/persist/contribute/";
         } else {
             if ($config->userFramework == 'Standalone') {
                 //for standalone no need of sites/defaults directory
                 $defaults['imageUploadURL'] = $baseURL . "files/civicrm/persist/contribute/";
             } else {
                 $defaults['imageUploadURL'] = $baseURL . "sites/default/files/civicrm/persist/contribute/";
             }
         }
     }
     if (!isset($defaults['imageUploadDir']) && is_dir($config->templateCompileDir)) {
         $imgDir = $path . "persist/contribute/";
         CRM_Utils_File::createDir($imgDir);
         $defaults['imageUploadDir'] = $imgDir;
     }
     if (!isset($defaults['uploadDir']) && is_dir($config->templateCompileDir)) {
         $uploadDir = $path . "upload/";
         CRM_Utils_File::createDir($uploadDir);
         $defaults['uploadDir'] = $uploadDir;
     }
     if (!isset($defaults['customFileUploadDir']) && is_dir($config->templateCompileDir)) {
         $customDir = $path . "custom/";
         CRM_Utils_File::createDir($customDir);
         $defaults['customFileUploadDir'] = $customDir;
     }
     /* FIXME: hack to bypass the step for generating defaults for components, 
        while running upgrade, to avoid any serious non-recoverable error 
        which might hinder the upgrade process. */
     $args = array();
     if (isset($_GET[$config->userFrameworkURLVar])) {
         $args = explode('/', $_GET[$config->userFrameworkURLVar]);
     }
     foreach ($defaults['enableComponents'] as $key => $name) {
         $comp = $config->componentRegistry->get($name);
         if ($comp) {
             $co = $comp->getConfigObject();
             $co->setDefaults($defaults);
         }
     }
 }
Пример #3
0
 /**
  * Function to set the default values
  *
  * @param array   $defaults  associated array of form elements
  * @param boolena $formMode  this funtion is called to set default
  *                           values in an empty db, also called when setting component using GUI
  *                           this variable is set true for GUI
  *                           mode (eg: Global setting >> Components)    
  *
  * @access public
  */
 public function setValues(&$defaults, $formMode = false)
 {
     $config = CRM_Core_Config::singleton();
     $baseURL = $config->userFrameworkBaseURL;
     // CRM-6216: Drupal’s $baseURL might have a trailing LANGUAGE_NEGOTIATION_PATH,
     // which needs to be stripped before we start basing ResourceURL on it
     if ($config->userFramework == 'Drupal') {
         global $language;
         if (isset($language->prefix) and $language->prefix) {
             if (substr($baseURL, -(strlen($language->prefix) + 1)) == $language->prefix . '/') {
                 $baseURL = substr($baseURL, 0, -(strlen($language->prefix) + 1));
             }
         }
     }
     $baseCMSURL = CRM_Utils_System::baseCMSURL();
     if ($config->templateCompileDir) {
         $path = CRM_Utils_File::baseFilePath($config->templateCompileDir);
     }
     //set defaults if not set in db
     if (!isset($defaults['userFrameworkResourceURL'])) {
         $testIMG = "i/tracker.gif";
         if ($config->userFramework == 'Joomla') {
             if (CRM_Utils_System::checkURL("{$baseURL}components/com_civicrm/civicrm/{$testIMG}")) {
                 $defaults['userFrameworkResourceURL'] = $baseURL . "components/com_civicrm/civicrm/";
             }
         } else {
             if ($config->userFramework == 'Standalone') {
                 // potentially sane default for standalone;
                 // could probably be smarter about this, but this
                 // should work in many cases
                 $defaults['userFrameworkResourceURL'] = str_replace('standalone/', '', $baseURL);
             } else {
                 // Drupal setting
                 // check and see if we are installed in sites/all (for D5 and above)
                 // we dont use checkURL since drupal generates an error page and throws
                 // the system for a loop on lobo's macosx box
                 // or in modules
                 global $civicrm_root;
                 require_once "CRM/Utils/System/Drupal.php";
                 $cmsPath = CRM_Utils_System_Drupal::cmsRootPath();
                 $defaults['userFrameworkResourceURL'] = $baseURL . str_replace("{$cmsPath}/", '', str_replace('\\', '/', $civicrm_root));
                 if (strpos($civicrm_root, DIRECTORY_SEPARATOR . 'sites' . DIRECTORY_SEPARATOR . 'all' . DIRECTORY_SEPARATOR . 'modules') === false) {
                     $startPos = strpos($civicrm_root, DIRECTORY_SEPARATOR . 'sites' . DIRECTORY_SEPARATOR);
                     $endPos = strpos($civicrm_root, DIRECTORY_SEPARATOR . 'modules' . DIRECTORY_SEPARATOR);
                     if ($startPos && $endPos) {
                         // if component is in sites/SITENAME/modules
                         $siteName = substr($civicrm_root, $startPos + 7, $endPos - $startPos - 7);
                         $civicrmDirName = trim(basename($civicrm_root));
                         $defaults['userFrameworkResourceURL'] = $baseURL . "sites/{$siteName}/modules/{$civicrmDirName}/";
                         if (!isset($defaults['imageUploadURL'])) {
                             $defaults['imageUploadURL'] = $baseURL . "sites/{$siteName}/files/civicrm/persist/contribute/";
                         }
                     }
                 }
             }
         }
     }
     if (!isset($defaults['imageUploadURL'])) {
         if ($config->userFramework == 'Joomla') {
             // gross hack
             // we need to remove the administrator/ from the end
             $tempURL = str_replace("/administrator/", "/", $baseURL);
             $defaults['imageUploadURL'] = $tempURL . "media/civicrm/persist/contribute/";
         } else {
             if ($config->userFramework == 'Standalone') {
                 //for standalone no need of sites/defaults directory
                 $defaults['imageUploadURL'] = $baseURL . "files/civicrm/persist/contribute/";
             } else {
                 $defaults['imageUploadURL'] = $baseURL . "sites/default/files/civicrm/persist/contribute/";
             }
         }
     }
     if (!isset($defaults['imageUploadDir']) && is_dir($config->templateCompileDir)) {
         $imgDir = $path . "persist/contribute/";
         CRM_Utils_File::createDir($imgDir);
         $defaults['imageUploadDir'] = $imgDir;
     }
     if (!isset($defaults['uploadDir']) && is_dir($config->templateCompileDir)) {
         $uploadDir = $path . "upload/";
         CRM_Utils_File::createDir($uploadDir);
         CRM_Utils_File::restrictAccess($uploadDir);
         $defaults['uploadDir'] = $uploadDir;
     }
     if (!isset($defaults['customFileUploadDir']) && is_dir($config->templateCompileDir)) {
         $customDir = $path . "custom/";
         CRM_Utils_File::createDir($customDir);
         $defaults['customFileUploadDir'] = $customDir;
     }
     /* FIXME: hack to bypass the step for generating defaults for components, 
        while running upgrade, to avoid any serious non-recoverable error 
        which might hinder the upgrade process. */
     $args = array();
     if (isset($_GET[$config->userFrameworkURLVar])) {
         $args = explode('/', $_GET[$config->userFrameworkURLVar]);
     }
     if (isset($defaults['enableComponents'])) {
         foreach ($defaults['enableComponents'] as $key => $name) {
             $comp = $config->componentRegistry->get($name);
             if ($comp) {
                 $co = $comp->getConfigObject();
                 $co->setDefaults($defaults);
             }
         }
     }
 }