Refactored out of CRM_Core_PseudoConstant: locationVcardName(), locationDisplayName...
authorAllen Shaw <allen@emphanos.com>
Thu, 2 May 2013 00:33:22 +0000 (17:33 -0700)
committerColeman Watts <coleman@civicrm.org>
Thu, 30 May 2013 05:13:21 +0000 (22:13 -0700)
----------------------------------------
* CRM-12464:
  http://issues.civicrm.org/jira/browse/CRM-12464

15 files changed:
CRM/Contact/BAO/Contact.php
CRM/Contact/Page/Inline/Address.php
CRM/Contact/Page/Inline/Email.php
CRM/Contact/Page/Inline/IM.php
CRM/Contact/Page/Inline/OpenID.php
CRM/Contact/Page/Inline/Phone.php
CRM/Contact/Page/View/Summary.php
CRM/Contact/Page/View/Vcard.php
CRM/Core/PseudoConstant.php
api/v3/ReportTemplate.php
tests/phpunit/CRM/Core/PseudoConstantTest.php
xml/schema/Core/Cache.xml
xml/schema/Core/Menu.xml
xml/schema/Core/OptionValue.xml
xml/schema/Core/Setting.xml

index 129831576ad94cc25ffd87b9c9ed4e9fe1cd6beb..ba1d3de031af68f9fde0e2945624acc9868ee730 100644 (file)
@@ -545,7 +545,7 @@ WHERE     civicrm_contact.id = " . CRM_Utils_Type::escape($id, 'Integer');
         if ($name == 'address') {
           // FIXME: lookupValue doesn't work for vcard_name
           if (CRM_Utils_Array::value('location_type_id', $values)) {
-            $vcardNames = CRM_Core_PseudoConstant::locationVcardName();
+            $vcardNames = CRM_Core_PseudoConstant::get('CRM_Core_DAO_Address', 'location_type_id', array('labelColumn' => 'vcard_name'));
             $values['vcard_name'] = $vcardNames[$values['location_type_id']];
           }
 
index 5385408801a5f7b091be9140b057c347331c7e63..8cc436d9c2bd06cc6513630d66a4ce03fbfb56c7 100644 (file)
@@ -56,7 +56,7 @@ class CRM_Contact_Page_Inline_Address extends CRM_Core_Page {
 
     $address = array();
     if ( $addressId > 0 ) {
-      $locationTypes = CRM_Core_PseudoConstant::locationDisplayName();
+      $locationTypes = CRM_Core_PseudoConstant::get('CRM_Core_DAO_Address', 'location_type_id', array('labelColumn' => 'display_name'));
 
       $entityBlock = array('id' => $addressId);
       $address = CRM_Core_BAO_Address::getValues($entityBlock, FALSE, 'id');
index f679bf0ccd01c56645a0dae298cff3d0d15e5662..caaae2ab4945d6abe77dc75f0e3903598747baee 100644 (file)
@@ -52,7 +52,7 @@ class CRM_Contact_Page_Inline_Email extends CRM_Core_Page {
     // get the emails for this contact
     $contactId = CRM_Utils_Request::retrieve('cid', 'Positive', CRM_Core_DAO::$_nullObject, TRUE, NULL, $_REQUEST);
 
-    $locationTypes = CRM_Core_PseudoConstant::locationDisplayName();
+    $locationTypes = CRM_Core_PseudoConstant::get('CRM_Core_DAO_Address', 'location_type_id', array('labelColumn' => 'display_name'));
 
     $entityBlock = array('contact_id' => $contactId);
     $emails = CRM_Core_BAO_Email::getValues($entityBlock);
index f2bfd6698b9b91b1cebc20f714ad3bc37f43bdd1..b7defce6683e727baebdf1b909a0d96ac935f0b1 100644 (file)
@@ -52,7 +52,7 @@ class CRM_Contact_Page_Inline_IM extends CRM_Core_Page {
     // get the emails for this contact
     $contactId = CRM_Utils_Request::retrieve('cid', 'Positive', CRM_Core_DAO::$_nullObject, TRUE, NULL, $_REQUEST);
 
-    $locationTypes = CRM_Core_PseudoConstant::locationDisplayName();
+    $locationTypes = CRM_Core_PseudoConstant::get('CRM_Core_DAO_Address', 'location_type_id', array('labelColumn' => 'display_name'));
     $IMProviders = CRM_Core_PseudoConstant::get('CRM_Core_DAO_IM', 'provider_id');
 
     $entityBlock = array('contact_id' => $contactId);
index fc04626b122f57a71186e31ce49ddb814642323e..1317a40c639b3e5c0a783e98f868447c2c85b229 100644 (file)
@@ -52,7 +52,7 @@ class CRM_Contact_Page_Inline_OpenID extends CRM_Core_Page {
     // get the emails for this contact
     $contactId = CRM_Utils_Request::retrieve('cid', 'Positive', CRM_Core_DAO::$_nullObject, TRUE, NULL, $_REQUEST);
 
-    $locationTypes = CRM_Core_PseudoConstant::locationDisplayName();
+    $locationTypes = CRM_Core_PseudoConstant::get('CRM_Core_DAO_Address', 'location_type_id', array('labelColumn' => 'display_name'));
 
     $entityBlock = array('contact_id' => $contactId);
     $openids = CRM_Core_BAO_OpenID::getValues($entityBlock);
index 142b055acc809b6f89d4e15b7dbae7134c461925..0685362a175c3f07d3eba56c1edc60d9d2761c3b 100644 (file)
@@ -52,7 +52,7 @@ class CRM_Contact_Page_Inline_Phone extends CRM_Core_Page {
     // get the emails for this contact
     $contactId = CRM_Utils_Request::retrieve('cid', 'Positive', CRM_Core_DAO::$_nullObject, TRUE, NULL, $_REQUEST);
 
-    $locationTypes = CRM_Core_PseudoConstant::locationDisplayName();
+    $locationTypes = CRM_Core_PseudoConstant::get('CRM_Core_DAO_Address', 'location_type_id', array('labelColumn' => 'display_name'));
     $phoneTypes = CRM_Core_PseudoConstant::get('CRM_Core_DAO_Phone', 'phone_type_id');
 
     $entityBlock = array('contact_id' => $contactId);
index 827e6665bb33f57b83f94aa47f0efbc7d91cbc7a..17b2c1d65436701b8c3ef63cf90326213c0347fc 100644 (file)
@@ -170,7 +170,7 @@ class CRM_Contact_Page_View_Summary extends CRM_Contact_Page_View {
     foreach ($communicationType as $key => $value) {
       if (CRM_Utils_Array::value($key, $defaults)) {
         foreach ($defaults[$key] as & $val) {
-          CRM_Utils_Array::lookupValue($val, 'location_type', CRM_Core_PseudoConstant::locationDisplayName(), FALSE);
+          CRM_Utils_Array::lookupValue($val, 'location_type', CRM_Core_PseudoConstant::get('CRM_Core_DAO_Address', 'location_type_id', array('labelColumn' => 'display_name')), FALSE);
           if (!CRM_Utils_Array::value('skip', $value)) {
             eval('$pseudoConst = CRM_Core_PseudoConstant::' . $value['type'] . '();');
             CRM_Utils_Array::lookupValue($val, $value['id'], $pseudoConst, FALSE);
index 0566b494b439ff23342568c86d5d44a46b2261f5..1f07abad8e5612d040764940e870726d1aa6708c 100644 (file)
@@ -60,7 +60,7 @@ class CRM_Contact_Page_View_Vcard extends CRM_Contact_Page_View {
 
     // now that we have the contact's data - let's build the vCard
     // TODO: non-US-ASCII support (requires changes to the Contact_Vcard_Build class)
-    $vcardNames = CRM_Core_PseudoConstant::locationVcardName();
+    $vcardNames = CRM_Core_PseudoConstant::get('CRM_Core_DAO_Address', 'location_type_id', array('labelColumn' => 'vcard_name'));
     $vcard = new Contact_Vcard_Build('2.1');
 
     if ($defaults['contact_type'] == 'Individual') {
index a3ba2413b753a6fa4e45f7bd03a4cc82c40b7830..01619183b6a1596510d2de5a084870f188612a03 100644 (file)
@@ -56,20 +56,6 @@ class CRM_Core_PseudoConstant {
    */
   private static $cache;
 
-  /**
-   * location vCard name
-   * @var array
-   * @static
-   */
-  private static $locationVcardName;
-
-  /**
-   * location display name
-   * @var array
-   * @static
-   */
-  private static $locationDisplayName;
-
   /**
    * activity type
    * @var array
@@ -84,13 +70,6 @@ class CRM_Core_PseudoConstant {
    */
   private static $billingMode;
 
-  /**
-   * component
-   * @var array
-   * @static
-   */
-  private static $component;
-
   /**
    * states, provinces
    * @var array
@@ -462,46 +441,6 @@ class CRM_Core_PseudoConstant {
     }
   }
 
-  /**
-   * Get all location vCard names.
-   *
-   * The static array locationVcardName is returned
-   *
-   * @access public
-   * @static
-   *
-   * @param boolean $all - get All location vCard names - default is to get only active ones.
-   *
-   * @return array - array reference of all location vCard names.
-   *
-   */
-  public static function &locationVcardName($all = FALSE) {
-    if (!self::$locationVcardName) {
-      self::populate(self::$locationVcardName, 'CRM_Core_DAO_LocationType', $all, 'vcard_name');
-    }
-    return self::$locationVcardName;
-  }
-
-  /**
-   * Get all location Display names.
-   *
-   * The static array locationDisplayName is returned
-   *
-   * @access public
-   * @static
-   *
-   * @param boolean $all - get All location display names - default is to get only active ones.
-   *
-   * @return array - array reference of all location display names.
-   *
-   */
-  public static function &locationDisplayName($all = FALSE) {
-    if (!self::$locationDisplayName) {
-      self::populate(self::$locationDisplayName, 'CRM_Core_DAO_LocationType', $all, 'display_name');
-    }
-    return self::$locationDisplayName;
-  }
-
   /**
    * Get all Activty types.
    *
@@ -593,22 +532,6 @@ class CRM_Core_PseudoConstant {
     }
     return self::$billingMode;
   }
-
-  /**
-   * Get all component names
-   *
-   * @access public
-   * @static
-   *
-   * @return array - array reference of all location display names.
-   *
-   */
-  public static function &component() {
-    if (!self::$component) {
-      self::populate(self::$component, 'CRM_Core_DAO_Component', TRUE, 'name');
-    }
-    return self::$component;
-  }
  
   /**
    * Get all the State/Province from database.
@@ -1060,13 +983,15 @@ WHERE  id = %1";
    *
    * @return array - array reference of all Currency Symbols
    * @static
+   *
+   * FIXME: this is not stored as an optionValue, and it's not tied to a single DB column;
+   * FIXME: It's used for a setting stored in option group 'currencies_enabled'. What to do?
    */
   public static function &currencySymbols($name = 'symbol', $key = 'id') {
     $cacheKey = "{$name}_{$key}";
     if (!isset(self::$currencySymbols[$cacheKey])) {
       self::populate(self::$currencySymbols[$cacheKey], 'CRM_Financial_DAO_Currency', TRUE, $name, NULL, NULL, 'name', $key);
     }
-
     return self::$currencySymbols[$cacheKey];
   }
 
index 84cb499a259e50e034b8c03f9c455c35cf890dbe..5129dec72816081eac65eb36622d6b7113002655 100644 (file)
@@ -39,7 +39,8 @@ function civicrm_api3_report_template_create($params) {
     'CRM_Core_DAO_OptionGroup', 'report_template', 'id', 'name'
   );
   if (!empty($params['component_id']) && !is_numeric($params['component_id'])) {
-    $params['component_id'] = array_search($params['component_id'], CRM_Core_PseudoConstant::component());
+    $components = CRM_Core_PseudoConstant::get('CRM_Core_DAO_OptionValue', 'component_id', array('onlyActive' => FALSE, 'labelColumn' => 'name'));
+    $params['component_id'] = array_search($params['component_id'], $components);
   }
   return civicrm_api3_option_value_create($params);
 }
index b4fe50ce8fc7309e0b5df8d1dcc6ad3f81aae45b..c3194df480693fb55a300a5a429e83b6bfd4237b 100644 (file)
@@ -50,6 +50,12 @@ class CRM_Core_PseudoConstantTest extends CiviUnitTestCase {
     // - sample: Any one value which is expected in the list of option values.
     // - max: integer (default = 10) maximum number of option values expected.
     $fields = array(
+      'CRM_Core_DAO_OptionValue' => array(
+        array(
+          'fieldName' => 'component_id',
+          'sample' => 'CiviContribute',
+        ),
+      ),
       'CRM_Project_DAO_Task' => array(
         array(
           'fieldName' => 'priority_id',
index d8725983feaa3e7d16cde82717230c9c17c3a5ba..8368ad228ae53599a85f322041142012a4314824 100644 (file)
     <add>2.1</add>
   </field>
   <field>
-       <name>component_id</name>
-       <type>int unsigned</type>
-       <comment>Component that this menu item belongs to</comment>
-       <add>2.1</add>
+    <name>component_id</name>
+    <type>int unsigned</type>
+    <comment>Component that this menu item belongs to</comment>
+    <add>2.1</add>
+    <pseudoconstant>
+      <table>civicrm_component</table>
+      <keyColumn>id</keyColumn>
+      <labelColumn>name</labelColumn>
+    </pseudoconstant>
   </field>
   <foreignKey>
        <name>component_id</name>
index df613056735604846505efffeca0ab2c9deb6bd0..09d1786e6d6dfa5d7e8e09e1e1e110c58cd04b61 100644 (file)
     <add>2.1</add>
   </field>
   <field>
-       <name>component_id</name>
-       <type>int unsigned</type>
-       <comment>Component that this menu item belongs to</comment>
-       <add>2.1</add>
+    <name>component_id</name>
+    <type>int unsigned</type>
+    <comment>Component that this menu item belongs to</comment>
+    <add>2.1</add>
+    <pseudoconstant>
+      <table>civicrm_component</table>
+      <keyColumn>id</keyColumn>
+      <labelColumn>name</labelColumn>
+    </pseudoconstant>
   </field>
   <foreignKey>
        <name>component_id</name>
index a417fc3b53e67ff29ff98151c5eafd3b407e04b6..783810d6c734fb24ad4289050eda92fa741c1459 100644 (file)
       <comment>Component that this option value belongs/caters to.</comment>
       <add>2.0</add>
       <pseudoconstant>
-        <name>component</name>
         <table>civicrm_component</table>
         <keyColumn>id</keyColumn>
         <labelColumn>name</labelColumn>
index a10836128f55279d2d025897167225d9fbdcbe44..0d22f70a25b6f265f344c2f83a354fb6df904b05 100644 (file)
        <add>4.1</add>
   </field>
   <field>
-       <name>component_id</name>
-       <type>int unsigned</type>
-       <comment>Component that this menu item belongs to</comment>
-       <add>4.1</add>
+    <name>component_id</name>
+    <type>int unsigned</type>
+    <comment>Component that this menu item belongs to</comment>
+    <add>4.1</add>
+    <pseudoconstant>
+      <table>civicrm_component</table>
+      <keyColumn>id</keyColumn>
+      <labelColumn>name</labelColumn>
+    </pseudoconstant>
   </field>
   <foreignKey>
        <name>component_id</name>