Merge remote-tracking branch 'upstream/4.5' into 4.5-master-2015-03-09-21-44-34
[civicrm-core.git] / CRM / Core / Page / AJAX.php
index 315b8fba3d4f8bcb4bbad31c27054dfa1ce93d33..69ae14537d2d2556023502e63f0203315a8b7423 100644 (file)
@@ -1,7 +1,7 @@
 <?php
 /*
  +--------------------------------------------------------------------+
- | CiviCRM version 4.5                                                |
+ | CiviCRM version 4.6                                                |
  +--------------------------------------------------------------------+
  | Copyright CiviCRM LLC (c) 2004-2014                                |
  +--------------------------------------------------------------------+
@@ -23,7 +23,7 @@
  | GNU Affero General Public License or the licensing of CiviCRM,     |
  | see the CiviCRM license FAQ at http://civicrm.org/licensing        |
  +--------------------------------------------------------------------+
-*/
+ */
 
 /**
  *
 class CRM_Core_Page_AJAX {
 
   /**
-   * function to call generic ajax forms
+   * Call generic ajax forms.
    *
-   * @static
-   * @access public
    */
-  static function run() {
+  public static function run() {
     $className = CRM_Utils_Type::escape($_REQUEST['class_name'], 'String');
     $type = '';
     if (!empty($_REQUEST['type'])) {
@@ -75,7 +73,7 @@ class CRM_Core_Page_AJAX {
         // FIXME: This is done to maintain current wire protocol, but it might be
         // simpler to just require different 'types' for pages and forms
         if (preg_match('/^CRM_[a-zA-Z0-9]+_Page_Inline_/', $className)) {
-          $page = new $className;
+          $page = new $className();
           $page->run();
         }
         else {
@@ -83,6 +81,7 @@ class CRM_Core_Page_AJAX {
           $wrapper->run($className);
         }
         break;
+
       default:
         CRM_Core_Error::debug_log_message('Unsupported inline request type: ' . var_export($type, TRUE));
     }
@@ -90,12 +89,10 @@ class CRM_Core_Page_AJAX {
   }
 
   /**
-   * function to change is_quick_config priceSet to complex
+   * Change is_quick_config priceSet to complex.
    *
-   * @static
-   * @access public
    */
-  static function setIsQuickConfig() {
+  public static function setIsQuickConfig() {
     $id = $context = NULL;
     if (!empty($_REQUEST['id'])) {
       $id = CRM_Utils_Type::escape($_REQUEST['id'], 'Integer');
@@ -107,7 +104,7 @@ class CRM_Core_Page_AJAX {
     // return false if $id is null and
     // $context is not civicrm_event or civicrm_contribution_page
     if (!$id || !in_array($context, array('civicrm_event', 'civicrm_contribution_page'))) {
-      return false;
+      return FALSE;
     }
     $priceSetId = CRM_Price_BAO_PriceSet::getFor($context, $id, NULL);
     if ($priceSetId) {
@@ -124,7 +121,7 @@ class CRM_Core_Page_AJAX {
       }
     }
     if (!$result) {
-      $priceSetId = null;
+      $priceSetId = NULL;
     }
     CRM_Utils_JSON::output($priceSetId);
   }
@@ -132,13 +129,16 @@ class CRM_Core_Page_AJAX {
   /**
    * Determine whether the request is for a valid class/method name.
    *
-   * @param string $type 'method'|'class'|''
-   * @param string $className 'Class_Name'
-   * @param string $fnName method name
+   * @param string $type
+   *   'method'|'class'|''.
+   * @param string $className
+   *   'Class_Name'.
+   * @param string $fnName
+   *   Method name.
    *
    * @return bool
    */
-  static function checkAuthz($type, $className, $fnName = null) {
+  public static function checkAuthz($type, $className, $fnName = NULL) {
     switch ($type) {
       case 'method':
         if (!preg_match('/^CRM_[a-zA-Z0-9]+_Page_AJAX$/', $className)) {
@@ -158,6 +158,7 @@ class CRM_Core_Page_AJAX {
           return FALSE;
         }
         return class_exists($className);
+
       default:
         return FALSE;
     }
@@ -167,7 +168,7 @@ class CRM_Core_Page_AJAX {
    * Outputs the CiviCRM standard json-formatted page/form response
    * @param array|string $response
    */
-  static function returnJsonResponse($response) {
+  public static function returnJsonResponse($response) {
     // Allow lazy callers to not wrap content in an array
     if (is_string($response)) {
       $response = array('content' => $response);
@@ -198,15 +199,19 @@ class CRM_Core_Page_AJAX {
   }
 
   /**
-   * Set headers appropriate for a js file
+   * Set headers appropriate for a js file.
+   *
+   * @param int|NULL $ttl
+   *   Time-to-live (seconds).
    */
-  static function setJsHeaders() {
-    // Encourage browsers to cache for a long time - 1 year
-    $year = 60*60*24*364;
-    header('Expires: '.gmdate('D, d M Y H:i:s \G\M\T', time() + $year));
+  public static function setJsHeaders($ttl = NULL) {
+    if ($ttl === NULL) {
+      // Encourage browsers to cache for a long time - 1 year
+      $ttl = 60 * 60 * 24 * 364;
+    }
+    header('Expires: ' . gmdate('D, d M Y H:i:s \G\M\T', time() + $ttl));
     header('Content-Type:      application/javascript');
-    header("Cache-Control: max-age=$year, public");
+    header("Cache-Control: max-age=$ttl, public");
   }
 
 }
-