/** 
  * Get the module primary resource definition
  *
  * @return boolean true
  * @access public
  */
 function getPrimaryResourceDefinition()
 {
     if (!$this->_primaryResourceObjectDefinition instanceof CMS_poly_object_definition) {
         $this->_primaryResourceObjectDefinition = CMS_poly_object_catalog::getObjectDefinition(CMS_poly_object_catalog::getPrimaryResourceObjectType($this->getCodename()));
     }
     return true;
 }
 /**
  * Return a list of all primary items which uses a secondary item
  *
  * @param integer $secondaryItemId : the secondary item used
  * @param boolean $returnObject : does the method return array of object ? (default : true)
  * @param boolean $public are the needed datas public ? (default false)
  * @return array(CMS_poly_object)
  * @access public
  */
 static function getPrimaryItemsWhichUsesSecondaryItem($secondaryItemId, $returnObject = true, $public = false)
 {
     //get secondary item module
     $codename = CMS_poly_object_catalog::getModuleCodenameForObject($secondaryItemId);
     if (!$codename) {
         CMS_grandFather::raiseError("No module codename found for secondary resource item : " . $secondaryItemId);
         return false;
     }
     $primaryResourceType = CMS_poly_object_catalog::getPrimaryResourceObjectType($codename);
     if (!$primaryResourceType) {
         // no primary resource found for module so return nothing
         return array();
     }
     //get secondary item type
     $secondaryItemType = CMS_poly_object_catalog::getObjectDefinitionByID($secondaryItemId, false);
     //get all primary items which use secondary item
     $statusSuffix = $public ? "_public" : "_edited";
     $sql = "\n\t\t\tselect\n\t\t\t\tobjectID\n\t\t\tfrom\n\t\t\t\tmod_object_field,\n\t\t\t\tmod_subobject_integer" . $statusSuffix . "\n\t\t\twhere\n\t\t\t\tobject_id_mof='" . sensitiveIO::sanitizeSQLString($primaryResourceType) . "'\n\t\t\t\tand (type_mof = '" . sensitiveIO::sanitizeSQLString($secondaryItemType) . "' \n\t\t\t\t\tor type_mof = 'multi|" . sensitiveIO::sanitizeSQLString($secondaryItemType) . "')\n\t\t\t\tand objectFieldID=id_mof\n\t\t\t\tand value='" . sensitiveIO::sanitizeSQLString($secondaryItemId) . "'\n\t\t";
     $q = new CMS_query($sql);
     $results = array();
     if (!$q->getNumRows()) {
         return array();
     }
     while ($r = $q->getArray()) {
         $results[$r['objectID']] = $r['objectID'];
     }
     if (!$returnObject) {
         return $results;
     }
     return CMS_poly_object_catalog::getAllObjects($primaryResourceType, $public, array('items' => $results), true);
 }