Ejemplo n.º 1
0
 /**
  * Overwritten Load a assoc list of database rows
  *
  * @access	public
  * @param string The field name of a primary key
  * @return array If <var>key</var> is empty as sequential list of returned records.
  */
 function loadAssocList($key = null, $column = null, $translate = true, $language = null)
 {
     if (!$translate) {
         return parent::loadAssocList($key, $column = null);
     }
     $result = null;
     $rows = $this->loadObjectList($key, 'stdClass', $translate, $language);
     $pfunc = $this->_profile();
     $return = array();
     if ($rows != null) {
         foreach ($rows as $row) {
             $vars = get_object_vars($row);
             $value = $column ? isset($vars[$column]) ? $vars[$column] : $vars : $vars;
             if ($key) {
                 $return[$vars[$key]] = $value;
             } else {
                 $return[] = $value;
             }
         }
         $pfunc = $this->_profile($pfunc);
     }
     return $return;
 }
Ejemplo n.º 2
0
 /**
  * Overwritten insert function to enable storage of material created in non-default language.
  * Note that this creates a translation which is identical to the original - when we update
  * the original in the default language we then keep the translation (although it will appread out of date!).
  *
  * @param	string	table name
  * @param	object	instance with information to store
  * @param	string	primary key name of table
  * @param	boolean	debug info printed or not
  * @param	boolean	passthru without storing information in a translation table
  */
 function updateObject($table, &$object, $keyName, $updateNulls = true, $passthru = false)
 {
     $params = JComponentHelper::getParams('com_falang');
     //1.4.5 if fronEdition is set to off , keep previous system
     if ($params->get('frontEndEdition', 0) == 0) {
         return parent::updateObject($table, $object, $keyName, $updateNulls);
     }
     $pfunc = $this->_profile();
     $falangManager = FalangManager::getInstance();
     $current_lang = JFactory::getLanguage()->getTag();
     //default site language
     $default_lang = JComponentHelper::getParams('com_languages')->get('site');
     //we update if content language is set to all language or if content language is current_langauge
     // check if marked langage of content is the detaul language:
     if ($table == '#__content' && isset($object->id) && $object->id > 0) {
         $test = JTable::getInstance("Content");
         $test->load($object->id);
         if ($test->language == '*') {
             if ($current_lang == $default_lang) {
                 return parent::updateObject($table, $object, $keyName, $updateNulls);
             }
         }
         if ($test->language == $current_lang) {
             return parent::updateObject($table, $object, $keyName, $updateNulls);
         }
     }
     if (isset($falangManager) && $table != "#__falang_content") {
         $tableName = preg_replace('/^#__/', '', $table);
         $contentElement = $falangManager->getContentElement($tableName);
         if (isset($contentElement) && $contentElement->getFrontEdit() == 1) {
             include_once JPATH_ADMINISTRATOR . "/components/com_falang/models/ContentObject.php";
             $actContentObject = new ContentObject($falangManager->getLanguageID($current_lang), $contentElement);
             $objectLanguague = isset($object->language) ? $object->language : null;
             //the object language must be a language tag
             $languageIsoList = array("*");
             foreach ($falangManager->getLanguagesIndexedByCode(false) as $language) {
                 $languageIsoList[] = $language->lang_code;
             }
             $validLanguage = in_array($objectLanguague, $languageIsoList);
             // 1 - si object * => objet joomla si langue cournate et langue en cours sont pareil
             // 2 - si object a une langue , alors object joolma si la langue de l'object = language en cours
             $joomlaObject = false;
             if ($objectLanguague == "*") {
                 if ($current_lang == $default_lang) {
                     $joomlaObject = true;
                 }
             }
             if ($objectLanguague == $current_lang) {
                 $joomlaObject = true;
             }
             //hikashop woraround //
             $lkeyName = method_exists($object, 'getKeyName') ? $object->getKeyName() : null;
             if (!empty($lkeyName) && $validLanguage && isset($objectLanguague) && !$joomlaObject) {
                 $actContentObject->loadFromContentID($object->id);
                 $actContentObject->updateMLContent($object);
                 if (isset($object->state)) {
                     $actContentObject->published = $object->state == 1 ? true : false;
                 } else {
                     if (isset($object->published)) {
                         $actContentObject->published = $object->published == 1 ? true : false;
                     }
                 }
                 $actContentObject->setPublished($actContentObject->published);
                 $actContentObject->store();
                 return true;
             } else {
                 //hikashop workaround this update hit.
                 return parent::updateObject($table, $object, $keyName, $updateNulls);
             }
         } else {
             //content element not exist
             return parent::updateObject($table, $object, $keyName, $updateNulls);
         }
     } else {
         return parent::updateObject($table, $object, $keyName, $updateNulls);
     }
 }
Ejemplo n.º 3
0
 /**
  * Overwritten insert function to enable storage of material created in non-default language.
  * Note that this creates a translation which is identical to the original - when we update
  * the original in the default language we then keep the translation (although it will appread out of date!).
  *
  * @param	string	table name
  * @param	object	instance with information to store
  * @param	string	primary key name of table
  * @param	boolean	debug info printed or not
  * @param	boolean	passthru without storing information in a translation table
  */
 function updateObject($table, &$object, $keyName, $updateNulls = true, $passthru = false)
 {
     $params = JComponentHelper::getParams('com_falang');
     $pfunc = $this->_profile();
     $falangManager = FalangManager::getInstance();
     $current_lang = JFactory::getLanguage()->getTag();
     //default site language
     $default_lang = JComponentHelper::getParams('com_languages')->get('site');
     //we update if content language is set to all language or if content language is current_langauge
     // check if marked langage of content is the detaul language:
     if ($table == '#__content' && isset($object->id) && $object->id > 0) {
         $test = JTable::getInstance("Content");
         $test->load($object->id);
         if ($test->language == '*') {
             if ($current_lang == $default_lang) {
                 return parent::updateObject($table, $object, $keyName, $updateNulls);
             }
         }
         if ($test->language == $current_lang) {
             return parent::updateObject($table, $object, $keyName, $updateNulls);
         }
     }
     if (isset($falangManager) && $table != "#__falang_content") {
         $tableName = preg_replace('/^#__/', '', $table);
         $contentElement = $falangManager->getContentElement($tableName);
         if (isset($contentElement)) {
             include_once JPATH_ADMINISTRATOR . "/components/com_falang/models/ContentObject.php";
             $actContentObject = new ContentObject($falangManager->getLanguageID($current_lang), $contentElement);
             //hikashop woraround //
             $lkeyName = method_exists($object, 'getKeyName') ? $object->getKeyName() : null;
             if (!empty($lkeyName)) {
                 $actContentObject->loadFromContentID($object->id);
                 $actContentObject->updateMLContent($object);
                 if (isset($object->state)) {
                     $actContentObject->published = $object->state == 1 ? true : false;
                 } else {
                     if (isset($object->published)) {
                         $actContentObject->published = $object->published == 1 ? true : false;
                     }
                 }
                 //if ( $falangManager->getCfg("frontEndPublish")){
                 if ($params->get('frontEndEdition', 0) == 1) {
                     $user = JFactory::getUser();
                     $access = new stdClass();
                     //$access->canPublish =  $user->authorize('com_content', 'publish', 'content', 'all');
                     //if ($access->canPublish) $actContentObject->setPublished($actContentObject->published);
                     $actContentObject->setPublished($actContentObject->published);
                 }
                 //if allow front-end translation
                 if ($params->get('frontEndEdition', 0) == 1) {
                     $actContentObject->store();
                 } else {
                     $application = JFactory::getApplication();
                     $application->enqueueMessage(JText::_('PLG_SYSTEM_FALANGDRIVER_FRONT_UPDATE_NOT_AUTHORIZED'), 'notice');
                     return false;
                 }
             } else {
                 //hikashop workaround this update hit.
                 return parent::updateObject($table, $object, $keyName, $updateNulls);
             }
         }
         //content element not exist
         $pfunc = $this->_profile($pfunc);
         //return parent::updateObject( $table, $object, $keyName, $updateNulls );
         return true;
     } else {
         return parent::updateObject($table, $object, $keyName, $updateNulls);
     }
 }