Merge pull request #3649 from colemanw/totten-colemanw-validate
[civicrm-core.git] / CRM / Admin / Page / Extensions.php
index a62a0d61299f62b34f86d2907246ff9168775167..e41486d0ded9e1d65d298742df26c3ed1de5cdba 100644 (file)
@@ -1,9 +1,9 @@
 <?php
 /*
  +--------------------------------------------------------------------+
- | CiviCRM version 4.3                                                |
+ | CiviCRM version 4.5                                                |
  +--------------------------------------------------------------------+
- | Copyright CiviCRM LLC (c) 2004-2013                                |
+ | Copyright CiviCRM LLC (c) 2004-2014                                |
  +--------------------------------------------------------------------+
  | This file is a part of CiviCRM.                                    |
  |                                                                    |
@@ -29,7 +29,7 @@
  * This is a part of CiviCRM extension management functionality.
  *
  * @package CRM
- * @copyright CiviCRM LLC (c) 2004-2013
+ * @copyright CiviCRM LLC (c) 2004-2014
  * $Id$
  *
  */
@@ -97,7 +97,6 @@ class CRM_Admin_Page_Extensions extends CRM_Core_Page_Basic {
           'name' => ts('Disable'),
           'url' => 'civicrm/admin/extensions',
           'qs' => 'action=disable&id=%%id%%&key=%%key%%',
-          'ref' => 'disable-action',
           'title' => ts('Disable'),
         ),
         CRM_Core_Action::DELETE => array(
@@ -197,8 +196,15 @@ class CRM_Admin_Page_Extensions extends CRM_Core_Page_Basic {
         array(
           'id' => $row['id'],
           'key' => $obj->key,
-        )
+        ),
+        ts('more'),
+        FALSE,
+        'extension.local.action',
+        'Extension',
+        $row['id']
       );
+      // Key would be better to send, but it's not an integer.  Moreover, sending the
+      // values to hook_civicrm_links means that you can still get at the key
 
       $localExtensionRows[$row['id']] = $row;
     }
@@ -215,8 +221,18 @@ class CRM_Admin_Page_Extensions extends CRM_Core_Page_Basic {
         array(
           'id' => $row['id'],
           'key' => $row['key'],
-        )
+        ),
+        ts('more'),
+        FALSE,
+        'extension.remote.action',
+        'Extension',
+        $row['id']
       );
+      if (isset($localExtensionRows[$info->key])) {
+        if (version_compare($localExtensionRows[$info->key]['version'], $info->version, '<')) {
+          $row['is_upgradeable'] = TRUE;
+        }
+      }
       $remoteExtensionRows[$row['id']] = $row;
     }
     $this->assign('remoteExtensionRows', $remoteExtensionRows);
@@ -243,6 +259,8 @@ class CRM_Admin_Page_Extensions extends CRM_Core_Page_Basic {
   /**
    * Get user context.
    *
+   * @param null $mode
+   *
    * @return string user context.
    */
   function userContext($mode = NULL) {
@@ -267,6 +285,8 @@ class CRM_Admin_Page_Extensions extends CRM_Core_Page_Basic {
    *
    * The result format resembles the old CRM_Core_Extensions_Extension.
    *
+   * @param CRM_Extension_Info $obj
+   *
    * @return array
    */
   public static function createExtendedInfo(CRM_Extension_Info $obj) {