Exemple #1
0
 function jflanguagesType()
 {
     $this->values = array();
     if (ACYMAILING_J16 && file_exists(JPATH_SITE . DS . 'libraries' . DS . 'joomfish' . DS . 'manager.php') || !ACYMAILING_J16 && file_exists(JPATH_SITE . DS . 'administrator' . DS . 'components' . DS . 'com_joomfish' . DS . 'classes' . DS . 'JoomfishManager.class.php')) {
         include_once JPATH_SITE . DS . 'components' . DS . 'com_joomfish' . DS . 'helpers' . DS . 'defines.php';
         if (!ACYMAILING_J16) {
             include_once JOOMFISH_ADMINPATH . DS . 'classes' . DS . 'JoomfishManager.class.php';
         } else {
             include_once JPATH_SITE . DS . 'libraries' . DS . 'joomfish' . DS . 'manager.php';
         }
         $jfManager = JoomFishManager::getInstance();
         $langActive = $jfManager->getActiveLanguages();
         $this->values[] = JHTML::_('select.option', '', JText::_('DEFAULT_LANGUAGE'));
         foreach ($langActive as $oneLanguage) {
             $this->values[] = JHTML::_('select.option', $oneLanguage->shortcode . ',' . $oneLanguage->id, $oneLanguage->name);
         }
         $this->found = true;
     }
     if (empty($this->values) && file_exists(JPATH_SITE . DS . 'components' . DS . 'com_falang' . DS . 'helpers' . DS . 'defines.php') && (include_once JPATH_SITE . DS . 'components' . DS . 'com_falang' . DS . 'helpers' . DS . 'defines.php')) {
         JLoader::register('FalangManager', FALANG_ADMINPATH . '/classes/FalangManager.class.php');
         $fManager = FalangManager::getInstance();
         $langActive = $fManager->getActiveLanguages();
         $this->values[] = JHTML::_('select.option', '', JText::_('DEFAULT_LANGUAGE'));
         foreach ($langActive as $oneLanguage) {
             $this->values[] = JHTML::_('select.option', $oneLanguage->lang_code . ',' . $oneLanguage->lang_id, $oneLanguage->title);
         }
         $this->found = true;
     }
 }
Exemple #2
0
 /**
  * Constructor for the tasker
  *
  * @return joomfishTasker
  */
 public function __construct()
 {
     parent::__construct();
     $this->registerDefaultTask('show');
     $this->act = JRequest::getVar('act', '');
     $this->task = JRequest::getVar('task', '');
     $this->cid = JRequest::getVar('cid', array(0));
     if (!is_array($this->cid)) {
         $this->cid = array(0);
     }
     $this->fileCode = JRequest::getVar('fileCode', '');
     $this->_joomfishManager = JoomFishManager::getInstance();
     $this->registerTask('show', 'showCElementConfig');
     $this->registerTask('detail', 'showElementConfiguration');
     $this->registerTask('remove', 'removeContentElement');
     $this->registerTask('remove_install', 'removeContentElement');
     $this->registerTask('installer', 'showContentElementsInstaller');
     $this->registerTask('uploadfile', 'installContentElement');
     // Populate data used by controller
     global $mainframe;
     $this->_catid = $mainframe->getUserStateFromRequest('selected_catid', 'catid', '');
     $this->_select_language_id = $mainframe->getUserStateFromRequest('selected_lang', 'select_language_id', '-1');
     $this->_language_id = JRequest::getVar('language_id', $this->_select_language_id);
     $this->_select_language_id = $this->_select_language_id == -1 && $this->_language_id != -1 ? $this->_language_id : $this->_select_language_id;
     // Populate common data used by view
     // get the view
     $this->view = $this->getView("elements");
     // Assign data for view
     $this->view->assignRef('catid', $this->_catid);
     $this->view->assignRef('select_language_id', $this->_select_language_id);
     $this->view->assignRef('task', $this->task);
     $this->view->assignRef('act', $this->act);
 }
 /**
  * Method to get the field options for content languages.
  *
  * @return  array  The field option objects.
  *
  * @since   11.1
  */
 protected function getOptions()
 {
     $basicoptions = JHtml::_('contentlanguage.existing');
     // set default
     if (!isset($this->value) || empty($this->value) || $this->value == '*') {
         $jfManager = JoomFishManager::getInstance();
         $this->value = $jfManager->getDefaultLanguage();
     }
     return $basicoptions;
 }
Exemple #4
0
 public static function getComponentMapping($modulParam)
 {
     $retVal = array();
     $jfm = JoomFishManager::getInstance();
     $contentElements = $jfm->getContentElements();
     foreach ($contentElements as $element) {
         $componentinfo = $element->getComponentInformation();
         $retVal = array_merge($retVal, $componentinfo);
     }
     return $retVal;
 }
 function jflanguagesType()
 {
     $this->values = array();
     if (@(include_once JPATH_SITE . DS . 'components' . DS . 'com_joomfish' . DS . 'helpers' . DS . 'defines.php')) {
         include_once JOOMFISH_ADMINPATH . DS . 'classes' . DS . 'JoomfishManager.class.php';
         $jfManager = JoomFishManager::getInstance();
         $langActive = $jfManager->getActiveLanguages();
         $this->values[] = JHTML::_('select.option', '', JText::_('DEFAULT_LANGUAGE'));
         foreach ($langActive as $oneLanguage) {
             $this->values[] = JHTML::_('select.option', $oneLanguage->shortcode . ',' . $oneLanguage->id, $oneLanguage->name);
         }
     }
 }
Exemple #6
0
function jfGetOtherLanguages()
{
    // inspired by modules/mod_jflanguageselection
    $jfManager = JoomFishManager::getInstance();
    $jfrouter = JFRoute::getInstance();
    $curLang = jfGetCurrentLanguage();
    $languages = array();
    foreach ($jfManager->getActiveLanguages(true) as $lang) {
        if ($lang->lang_code != $curLang->lang_code) {
            $code = $lang->getLanguageCode();
            $languages[$code] = $jfrouter->rerouteCurrentUrl($code);
        }
    }
    return $languages;
}
 /**
  * Method to get the field options.
  *
  * @return  array  The field option objects.
  *
  * @since   11.1
  */
 protected function getOptions()
 {
     // Initialize some field attributes.
     $client = (string) $this->element['client'];
     if ($client != 'site' && $client != 'administrator') {
         $client = 'site';
     }
     // set default
     if (!isset($this->value) || empty($this->value) || $this->value == '*') {
         $jfManager = JoomFishManager::getInstance();
         $this->value = $jfManager->getDefaultLanguage();
     }
     // Merge any additional options in the XML definition.
     $options = JLanguageHelper::createLanguageList($this->value, constant('JPATH_' . strtoupper($client)), true, true);
     return $options;
 }
Exemple #8
0
 function onAfterInitialise()
 {
     $mainframe =& JFactory::getApplication();
     JFactory::getConfig()->set('sef_suffix', 0);
     // Store J! router for later use
     $router =& $mainframe->getRouter();
     $mainframe->set('mijosef.global.jrouter', $router);
     // Activate MijoSEF router
     $mijosef_router = new JRouterMijosef();
     $router->attachParseRule(array($mijosef_router, 'parse'));
     $router->attachBuildRule(array($mijosef_router, 'build'));
     // Instantiate JoomFishManager before JFDatabase loading to prevent infinity loop...
     if (Mijosef::get('utility')->JoomFishInstalled() && class_exists('JoomFishManager')) {
         JoomFishManager::getInstance();
     }
     // Post varsa yönlendirme
     $post = JRequest::get('post');
     if (is_array($post) && !empty($post)) {
         return;
     }
     // Ajax durumunda yönlendirme yapma
     $tmpl = JRequest::getCmd('tmpl');
     $format = JRequest::getCmd('format');
     if ($tmpl == 'component' || $format == 'raw') {
         return;
     }
     // www settings
     $uri =& JFactory::getURI();
     $host =& $uri->getHost();
     $redirect = false;
     $wwwredirect = $this->MijosefConfig->redirect_to_www;
     if ($wwwredirect != 0) {
         if ($wwwredirect == 1 && strpos($host, 'www') !== 0) {
             $redirect = true;
             $uri->setHost('www.' . $host);
         } elseif ($wwwredirect == 2 && strpos($host, 'www') === 0) {
             $redirect = true;
             $uri->setHost(substr($host, 4, strlen($host)));
         }
     }
     if ($redirect === true) {
         $mainframe->redirect($uri->toString());
         $mainframe->close();
     }
 }
 /**
  * Get a list of the available menus.
  *
  * @return	array	An array of the available menus (from the menu types table).
  * @since	1.6
  */
 public static function getMenus()
 {
     $db = JFactory::getDbo();
     $query = $db->getQuery(true);
     $query->select('a.*, SUM(b.home) AS home');
     $query->from('#__menu_types AS a');
     $query->leftJoin('#__menu AS b ON b.menutype = a.menutype AND b.home != 0 AND (b.language=\'*\' OR b.language=\'' . JoomFishManager::getDefaultLanguage() . '\')');
     $query->select('b.language');
     $query->leftJoin('#__languages AS l ON l.lang_code = language');
     $query->select('l.image');
     $query->select('l.sef');
     $query->select('l.title_native');
     $query->where('(b.client_id = 0 OR b.client_id IS NULL)');
     //sqlsrv change
     $query->group('a.id, a.menutype, a.description, a.title, b.menutype,b.language,l.image,l.sef,l.title_native');
     $db->setQuery($query);
     $result = $db->loadObjectList();
     return $result;
 }
Exemple #10
0
 /**
  * PHP 4 constructor for the tasker
  *
  * @return joomfishTasker
  */
 function __construct()
 {
     parent::__construct();
     $this->registerDefaultTask('showTranslate');
     $this->act = JRequest::getVar('act', '');
     $this->task = JRequest::getVar('task', '');
     $this->cid = JRequest::getVar('cid', array(0));
     if (!is_array($this->cid)) {
         $this->cid = array(0);
     }
     $this->fileCode = JRequest::getVar('fileCode', '');
     $this->_joomfishManager =& JoomFishManager::getInstance();
     $this->registerTask('overview', 'showTranslate');
     $this->registerTask('edit', 'editTranslation');
     $this->registerTask('apply', 'saveTranslation');
     $this->registerTask('save', 'saveTranslation');
     $this->registerTask('publish', 'publishTranslation');
     // NB the method will check on task
     $this->registerTask('unpublish', 'publishTranslation');
     $this->registerTask('remove', 'removeTranslation');
     $this->registerTask('preview', 'previewTranslation');
     $this->registerTask('orphans', 'showOrphanOverview');
     $this->registerTask('orphandetail', 'showOrphanDetail');
     $this->registerTask('removeorphan', 'removeOrphan');
     // Populate data used by controller
     global $mainframe;
     $this->_catid = $mainframe->getUserStateFromRequest('selected_catid', 'catid', '');
     $this->_select_language_id = $mainframe->getUserStateFromRequest('selected_lang', 'select_language_id', '-1');
     $this->_language_id = JRequest::getVar('language_id', $this->_select_language_id);
     $this->_select_language_id = $this->_select_language_id == -1 && $this->_language_id != -1 ? $this->_language_id : $this->_select_language_id;
     // Populate common data used by view
     // get the view
     $this->view =& $this->getView("translate");
     $model =& $this->getModel('translate');
     $this->view->setModel($model, true);
     // Assign data for view
     $this->view->assignRef('catid', $this->_catid);
     $this->view->assignRef('select_language_id', $this->_select_language_id);
     $this->view->assignRef('task', $this->task);
     $this->view->assignRef('act', $this->act);
 }
Exemple #11
0
function JreviewsParseRoute($segments)
{
    $vars = array();
    # Load own uri to overcome Joomla encoding issues with Greek params
    $uri = cmsFramework::_getUri();
    // Fix for Joomfish. Remove the language segment from the url
    if (class_exists('JoomFishManager')) {
        $lang = JFactory::getLanguage();
        $language = $lang->getTag();
        $jfm = JoomFishManager::getInstance();
        $lang_shortcode = $jfm->getLanguageCode($language);
        if (strstr($uri, '/' . $lang_shortcode . '/')) {
            $uri = str_replace('/' . $lang_shortcode . '/', '/', $uri);
        }
    }
    $new_segments = cmsFramework::_parseSefRoute($uri);
    if (end($new_segments) == 'index.php') {
        $new_segments = $segments;
    }
    // Remove Joomla language segment from url
    if (isset($_GET['language']) && $_GET['language'] != '' && strlen($new_segments[0]) == 2) {
        $new_segments[0] = 'index.php';
    }
    # Fix for sef without mod rewrite. Without it the sort urls don't work.
    // Remove the Itemid related segments when mod rewrite is disabled and Itemid exists
    if ($new_segments[0] == 'index.php' && $new_segments[1] != 'component') {
        foreach ($new_segments as $key => $segment) {
            if (!in_array(str_replace(' ', '+', $segment), $segments) && !in_array(JreviewsStrReplaceOnce('-', ':', urlencode($segment)), $segments)) {
                unset($new_segments[$key]);
            }
        }
    }
    if (count($new_segments) >= 3 && isset($new_segments[0]) && $new_segments[0] == 'index.php' && isset($new_segments[1]) && $new_segments[1] == 'component' && isset($new_segments[2]) && $new_segments[2] == 'jreviews') {
        array_shift($new_segments);
        array_shift($new_segments);
        array_shift($new_segments);
    }
    $vars['url'] = implode('/', $new_segments);
    return $vars;
}
 public static function getTranslateParams($type = '', $original, $translation, $fieldname, $fields = null)
 {
     JoomFishManager::addIncludePath(JOOMFISH_LIBPATH . DS . 'translateparams', 'translateparams');
     JoomFishManager::addIncludePath(JOOMFISH_LIBPATH . DS . 'contentelement' . DS . 'contentelements', 'translateparams');
     $paramsclass = "TranslateParams_" . $type;
     if (!class_exists($paramsclass)) {
         // Search for the class file in the include paths.
         jimport('joomla.filesystem.path');
         if ($path = JPath::find(JoomFishManager::addIncludePath('', 'translateparams'), strtolower($type) . '.php')) {
             include_once $path;
         } else {
             if ($path = JPath::find(JoomFishManager::addIncludePath('', 'translateparams'), $paramsclass . '.php')) {
                 include_once $path;
             }
         }
     }
     if (!class_exists($paramsclass)) {
         jimport('joomfish.translateparams.translateparams');
         $paramsclass = "TranslateParams";
     }
     return new $paramsclass($original, $translation, $fieldname, $fields);
 }
Exemple #13
0
 /**
  * Deletes the selected translations (only the translations of course)
  * @return string	message
  */
 function _removeTranslation($catid, $cid)
 {
     $message = '';
     $db = JFactory::getDBO();
     foreach ($cid as $cid_row) {
         list($translationid, $contentid, $language_id) = explode('|', $cid_row);
         $jfManager = JoomFishManager::getInstance();
         $contentElement = $jfManager->getContentElement($catid);
         $contentTable = $contentElement->getTableName();
         $contentid = intval($contentid);
         $translationid = intval($translationid);
         // safety check -- complete overkill but better to be safe than sorry
         // get the translation details
         JLoader::import('models.JFContent', JOOMFISH_ADMINPATH);
         $translation = new jfContent($db);
         $translation->load($translationid);
         if (!isset($translation) || $translation->id == 0) {
             $this->setState('message', JText::sprintf('NO_SUCH_TRANSLATION', $translationid));
             continue;
         }
         // make sure translation matches the one we wanted
         if ($contentid != $translation->reference_id) {
             $this->setState('message', JText::_('Something dodgy going on here'));
             continue;
         }
         $sql = "DELETE from #__jf_content WHERE reference_table='{$catid}' and language_id={$language_id} and reference_id={$contentid}";
         $db->setQuery($sql);
         $db->query();
         if ($db->getErrorNum() != 0) {
             $this->setError(JText::_('Something dodgy going on here'));
             JError::raiseWarning(400, JTEXT::_('No valid table information: ') . $db->getErrorMsg());
             continue;
         } else {
             $this->setState('message', JText::_('Translation successfully deleted'));
         }
     }
     return $message;
 }
 /**
  * Sets up ContentElement Cache - mainly used for data to determine primary key id for tablenames ( and for
  * future use to allow tables to be dropped from translation even if contentelements are installed )
  */
 function _setupContentElementCache()
 {
     $db =& JFactory::getDBO();
     // Make usre table exists otherwise create it.
     $db->setQuery("CREATE TABLE IF NOT EXISTS `#__jf_tableinfo` ( `id` int(11) NOT NULL auto_increment, `joomlatablename` varchar(100) NOT NULL default '',  `tablepkID`  varchar(100) NOT NULL default '', PRIMARY KEY (`id`)) TYPE=MyISAM");
     $db->query();
     // clear out existing data
     $db->setQuery("DELETE FROM `#__jf_tableinfo`");
     $db->query();
     $joomfishManager =& JoomFishManager::getInstance();
     $contentElements = $joomfishManager->getContentElements(true);
     $sql = "INSERT INTO `#__jf_tableinfo` (joomlatablename,tablepkID) VALUES ";
     $firstTime = true;
     foreach ($contentElements as $contentElement) {
         $tablename = $contentElement->getTableName();
         $refId = $contentElement->getReferenceID();
         $sql .= $firstTime ? "" : ",";
         $sql .= " ('" . $tablename . "', '" . $refId . "')";
         $firstTime = false;
     }
     $db->setQuery($sql);
     $db->query();
 }
Exemple #15
0
 function _plgListingAfterSave(&$model)
 {
     // Limit running this for new/edited listings. Not deletion of images or other listing actions.
     if ($this->c->name == 'listings' && in_array($this->c->action, array('_save'))) {
         include_once PATH_ROOT . 'administrator' . DS . 'components' . DS . 'com_joomfish' . DS . 'models' . DS . 'ContentObject.php';
         $lang =& JFactory::getLanguage();
         $language = $lang->getTag();
         $jfm =& JoomFishManager::getInstance();
         $contentElement = $jfm->getContentElement('content');
         $actContentObject = new ContentObject($jfm->getLanguageID($language), $contentElement);
         $object = (object) $model->data['Listing'];
         $actContentObject->loadFromContentID($object->id);
         $actContentObject->copyContentToTranslation($object, $object);
         $actContentObject->setPublished($this->autoPublishTranslation);
         //Automatically publishes the translations
         $actContentObject->store();
         if ($jfm->getCfg("transcaching", 1)) {
             // clean the cache!
             $cache = $jfm->getCache($language);
             $cache->clean();
         }
     }
 }
 public function getInput()
 {
     if (JPath::find(JPATH_SITE . DS . 'components' . DS . 'com_joomfish' . DS . 'helpers', 'defines.php')) {
         require_once JPATH_SITE . DS . 'components' . DS . 'com_joomfish' . DS . 'helpers' . DS . 'defines.php';
         jimport('joomfish.manager');
     } else {
         JError::raiseNotice('no_jf_component', JText::_('Joom!Fish component not installed correctly. Plugin not executed'));
     }
     $jfm = JoomFishManager::getInstance();
     $activeLanguages = $jfm->getLanguagesIndexedById();
     $value = $this->value;
     if (!is_array($value)) {
         $default = "";
         $value = array();
         foreach ($activeLanguages as $key => $val) {
             $value[$key] = $val->lang_id . "::" . $default . $val->sef;
         }
     }
     $indexedvalues = array();
     foreach ($value as $val) {
         list($key, $val) = explode("::", $val, 2);
         $indexedvalues[$key] = $val;
     }
     $html = "<fieldset style='clear:left'><table>";
     $html .= "<tr style='font-weight:bold;'><td>" . JText::_('JFIELD_LANGUAGE_LABEL') . "</td><td>" . JText::_('JFIELD_LANGUAGE_LABEL') . "</td></tr>";
     foreach ($activeLanguages as $key => $val) {
         $html .= "<tr>";
         $html .= '<td>' . $val->name . '</td><td>';
         $prefix = array_key_exists($val->lang_id, $indexedvalues) ? $indexedvalues[$val->lang_id] : "lang-" . $val->sef;
         $idprefix = $val->lang_id . "::" . $prefix;
         $html .= "<input type='text' length='10' maxlength='50' id='sefprefix" . $val->lang_id . "' onblur='document.getElementById(\"hiddensefprefix" . $val->lang_id . "\").value=\"" . $val->lang_id . "::\"+this.value;' value='" . $prefix . "' />";
         $html .= "<input type='hidden' id='hiddensefprefix" . $val->lang_id . "' name='" . $this->name . "[]' value='" . $idprefix . "' />";
         $html .= "</td></tr>";
     }
     $html .= "</table></fieldset>";
     return $html;
 }
 /**
  * Overloaded bind function
  *
  * @param   array  $array   Named array
  * @param   mixed  $ignore  An optional array or space separated list of properties to ignore while binding.
  *
  * @return  mixed  Null if operation was satisfactory, otherwise returns an error
  *
  * @see     JTable::bind
  * @since   11.1
  */
 public function bind($array, $ignore = '')
 {
     // Verify that the default home menu is not unset
     if ($this->home == '1' && ($this->language == '*' || $this->language == JoomFishManager::getDefaultLanguage()) && $array['home'] == '0') {
         $this->setError(JText::_('JLIB_DATABASE_ERROR_MENU_CANNOT_UNSET_DEFAULT_DEFAULT'));
         return false;
     }
     //Verify that the default home menu set to "all" languages" is not unset
     if ($this->home == '1' && ($this->language == '*' || $this->language == JoomFishManager::getDefaultLanguage()) && $array['language'] != '*' && $array['language'] != JoomFishManager::getDefaultLanguage()) {
         $this->setError(JText::_('JLIB_DATABASE_ERROR_MENU_CANNOT_UNSET_DEFAULT'));
         return false;
     }
     // Verify that the default home menu is not unpublished
     if ($this->home == '1' && ($this->language == '*' || $this->language == JoomFishManager::getDefaultLanguage()) && $array['published'] != '1') {
         $this->setError(JText::_('JLIB_DATABASE_ERROR_MENU_UNPUBLISH_DEFAULT_HOME'));
         return false;
     }
     if (isset($array['params']) && is_array($array['params'])) {
         $registry = new JRegistry();
         $registry->loadArray($array['params']);
         $array['params'] = (string) $registry;
     }
     return JTableNested::bind($array, $ignore);
 }
Exemple #18
0
 function fetchElement($name, $value, &$node, $control_name)
 {
     if (JPath::find(JPATH_SITE . DS . 'components' . DS . 'com_joomfish' . DS . 'helpers', 'defines.php')) {
         require_once JPATH_SITE . DS . 'components' . DS . 'com_joomfish' . DS . 'helpers' . DS . 'defines.php';
         require_once JPATH_ADMINISTRATOR . DS . 'components' . DS . 'com_joomfish' . DS . 'classes' . DS . 'JoomfishManager.class.php';
     } else {
         JError::raiseNotice('no_jf_component', JText::_('Joom!Fish component not installed correctly. Plugin not executed'));
     }
     $jfm = JoomFishManager::getInstance();
     $activeLanguages = $jfm->getLanguagesIndexedById();
     if (!is_array($value)) {
         $default = "";
         $value = array();
         foreach ($activeLanguages as $key => $val) {
             $value[$key] = $val->id . "::" . $default . $val->shortcode;
         }
     }
     $indexedvalues = array();
     foreach ($value as $val) {
         list($key, $val) = split("::", $val, 2);
         $indexedvalues[$key] = $val;
     }
     $html = "<fieldset><table>";
     $html .= "<tr style='font-weight:bold;'><td>" . JText::_("Language") . "</td><td>" . JText::_("Prefix") . "</td></tr>";
     foreach ($activeLanguages as $key => $val) {
         $html .= "<tr>";
         $html .= '<td>' . $val->name . '</td><td>';
         $prefix = array_key_exists($val->id, $indexedvalues) ? $indexedvalues[$val->id] : "lang-" . $val->shortcode;
         $idprefix = $val->id . "::" . $prefix;
         $html .= "<input type='text' length='10' maxlength='50' id='sefprefix" . $val->id . "' onblur='document.getElementById(\"hiddensefprefix" . $val->id . "\").value=\"" . $val->id . "::\"+this.value;' value='" . $prefix . "' />";
         $html .= "<input type='hidden' id='hiddensefprefix" . $val->id . "' name='" . $control_name . '[' . $name . '][]' . "' value='" . $idprefix . "' />";
         $html .= "</td></tr>";
     }
     $html .= "</table></fieldset>";
     return $html;
 }
Exemple #19
0
 /**
  * This method creates an overview of unpublished translations independed of the content element
  * @return array 	of unpublished translations or null
  */
 private function _testUnpublisedTranslations()
 {
     $db = JFactory::getDBO();
     $unpublishedTranslations = null;
     $sql = "select jfc.reference_table, jfc.reference_id, jfc.language_id, jfl.title as language" . "\n from #__jf_content as jfc, #__languages as jfl" . "\n where jfc.published=0  and jfc.language_id = jfl.lang_id" . "\n group by jfc.reference_table, jfc.reference_id, jfc.language_id" . "\n limit 0, 50";
     $db->setQuery($sql);
     if ($rows = $db->loadObjectList()) {
         foreach ($rows as $row) {
             $unpublished = array();
             $unpublished['reference_table'] = $row->reference_table;
             $unpublished['catid'] = $row->reference_table;
             $unpublished['reference_id'] = $row->reference_id;
             $unpublished['language_id'] = $row->language_id;
             $unpublished['language'] = $row->language;
             $unpublishedTranslations[] = $unpublished;
         }
     }
     $sqlnative = $db->getQuery(true);
     $sqlnative->select('jfc.reference_table,  jfc.reference_id, jfc.translation_id, jfc.language AS langcode, jfl.title AS language, jfl.lang_id AS language_id');
     $sqlnative->from('#__jf_translationmap AS jfc');
     $sqlnative->join('', '#__languages AS jfl ON jfc.language = jfl.lang_code');
     $celements = JoomFishManager::getInstance()->getContentElements();
     $where = array();
     foreach ($celements as $contentElement) {
         if ($contentElement->getTarget() == "native") {
             $sqlnative->leftJoin('#__' . $contentElement->getTableName() . ' AS jf' . $contentElement->getTableName() . ' ON jfc.reference_table=\'' . $contentElement->getTableName() . '\'' . ' AND jf' . $contentElement->getTableName() . '.' . $contentElement->getReferenceId() . '= jfc.translation_id' . ' AND jf' . $contentElement->getTableName() . '.' . $contentElement->getPublishedField() . '=0');
             $where[] = 'jf' . $contentElement->getTableName() . '.' . $contentElement->getPublishedField() . '=0';
             $sqlnative->select('jf' . $contentElement->getTableName() . '.' . $contentElement->getPublishedField() . ' AS published');
         }
     }
     $where = implode(' OR ', $where);
     $sqlnative->where($where);
     $db->setQuery($sqlnative);
     if ($rowsnative = $db->loadObjectList()) {
         foreach ($rowsnative as $row) {
             $unpublished = array();
             $unpublished['reference_table'] = $row->reference_table;
             $unpublished['catid'] = $row->reference_table;
             $unpublished['reference_id'] = $row->reference_id;
             $unpublished['language_id'] = $row->language_id;
             $unpublished['language'] = $row->language;
             $unpublishedTranslations[] = $unpublished;
         }
     }
     return $unpublishedTranslations;
 }
 function _determineLanguage($getLang = null, $redir = false, $useMainLang = false)
 {
     // set the language for JoomFish
     if (SEFTools::JoomFishInstalled()) {
         $sefConfig =& SEFConfig::getConfig();
         $registry =& JFactory::getConfig();
         // Check if the Jfrouter is enabled
         $jfrouterEnabled = JPluginHelper::isEnabled('system', 'jfrouter');
         // save the default language of the site if needed
         if (!$jfrouterEnabled) {
             $locale = $registry->getValue('config.language');
             $GLOBALS['mosConfig_defaultLang'] = $locale;
             $registry->setValue("config.defaultlang", $locale);
         }
         // get instance of JoomFishManager to obtain active language list and config values
         $jfm =& JoomFishManager::getInstance();
         // Get language from request
         if (!empty($getLang)) {
             $lang = $getLang;
         }
         // Try to get language code from JF cookie
         if ($sefConfig->jfLangCookie) {
             $jfCookie = JRequest::getVar('jfcookie', null, 'COOKIE');
             if (isset($jfCookie['lang'])) {
                 $cookieCode = $jfCookie['lang'];
             }
         }
         // Try to find language from browser settings
         if ($sefConfig->jfBrowserLang && isset($_SERVER['HTTP_ACCEPT_LANGUAGE']) && !empty($_SERVER['HTTP_ACCEPT_LANGUAGE'])) {
             $active_iso = array();
             $active_isocountry = array();
             $active_code = array();
             $activeLanguages = $jfm->getActiveLanguages();
             if (count($activeLanguages) > 0) {
                 foreach ($activeLanguages as $alang) {
                     $active_iso[] = $alang->iso;
                     if (preg_match('/[_-]/i', $alang->iso)) {
                         $iso = str_replace('_', '-', $alang->iso);
                         $isocountry = explode('-', $iso);
                         $active_isocountry[] = $isocountry[0];
                     }
                     $active_code[] = $alang->shortcode;
                 }
                 // figure out which language to use - browser languages are based on ISO codes
                 $browserLang = explode(',', $_SERVER["HTTP_ACCEPT_LANGUAGE"]);
                 foreach ($browserLang as $blang) {
                     if (in_array($blang, $active_iso)) {
                         $client_lang = $blang;
                         break;
                     }
                     $shortLang = substr($blang, 0, 2);
                     if (in_array($shortLang, $active_isocountry)) {
                         $client_lang = $shortLang;
                         break;
                     }
                     // compare with code
                     if (in_array($shortLang, $active_code)) {
                         $client_lang = $shortLang;
                         break;
                     }
                 }
                 if (!empty($client_lang)) {
                     if (strlen($client_lang) == 2) {
                         $browserCode = SEFTools::getLangLongCode($client_lang);
                     } else {
                         $browserCode = $client_lang;
                     }
                 }
             }
         }
         if (!$jfrouterEnabled && $redir && $sefConfig->langPlacement != _COM_SEF_LANG_DOMAIN && (isset($cookieCode) || isset($browserCode)) && $sefConfig->mainLanguage != '0') {
             if (isset($cookieCode)) {
                 $sc = SEFTools::getLangCode($cookieCode);
             } else {
                 $sc = SEFTools::getLangCode($browserCode);
             }
             // Check the referer to see if we should redirect
             $shouldRedir = false;
             if (isset($_SERVER['HTTP_REFERER'])) {
                 $refUri = new JURI($_SERVER['HTTP_REFERER']);
                 $uri = JURI::getInstance();
                 $refHost = $refUri->getHost();
                 $host = $uri->getHost();
                 if ($refHost != $host) {
                     $shouldRedir = true;
                 }
             } else {
                 $shouldRedir = true;
             }
             if ($shouldRedir) {
                 if (!empty($lang) && $sc != $lang || empty($lang) && $sc != $sefConfig->mainLanguage) {
                     // Redirect to correct site
                     $mainframe =& JFactory::getApplication();
                     $href = JRoute::_('index.php?lang=' . $sc, false);
                     $mainframe->redirect($href);
                     exit;
                 }
             }
         }
         // Check if language is selected
         if (empty($lang) && !$jfrouterEnabled) {
             // If route and query string are empty, use the main language
             // note: removed  && $redir  - it was not possible to switch language to main language
             // on other page than homepage (let's see if it causes any other problem)
             // note: added $useMainLang - now it should work for both the VM checkout and using
             // main language with component's own router
             if ($useMainLang && (empty($code) || !JLanguage::exists($code))) {
                 if ($sefConfig->mainLanguage != '0') {
                     $code = SEFTools::GetLangLongCode($sefConfig->mainLanguage);
                 }
             }
             // Try to get language code from JF cookie
             if (empty($code) || !JLanguage::exists($code)) {
                 if (isset($cookieCode)) {
                     $code = $cookieCode;
                 }
             }
             // Try to get language from browser if needed
             if (empty($code) || !JLanguage::exists($code)) {
                 if (isset($browserCode)) {
                     $code = $browserCode;
                 }
             }
             // Get language from configuration if needed
             if (empty($code) || !JLanguage::exists($code)) {
                 if ($sefConfig->mainLanguage != '0') {
                     $code = SEFTools::GetLangLongCode($sefConfig->mainLanguage);
                 }
             }
             // Get default language if needed
             if (empty($code) || !JLanguage::exists($code)) {
                 $code = $registry->getValue('config.language');
             }
         }
         // get language long code if needed
         if (empty($code)) {
             if (empty($lang)) {
                 return;
             }
             $code = SEFTools::getLangLongCode($lang);
         }
         if (!empty($code)) {
             $jfrparams = $registry->getValue('jfrouter.params');
             // set the site language
             $resetLang = false;
             if ($code != SEFTools::getLangLongCode()) {
                 if (!$jfrouterEnabled || $jfrouterEnabled && $jfrparams->get('sefordomain', 'sefprefix') == 'sefprefix') {
                     $language =& JFactory::getLanguage();
                     $language->setLanguage($code);
                     $language->load();
                     // set the backward compatible language
                     $backLang = $language->getBackwardLang();
                     $GLOBALS['mosConfig_lang'] = $backLang;
                     $registry->setValue("config.lang", $backLang);
                     $resetLang = true;
                 }
             }
             // set joomfish language if needed
             if ($resetLang || !$jfrouterEnabled) {
                 $jfLang = TableJFLanguage::createByJoomla($code);
                 $registry->setValue("joomfish.language", $jfLang);
                 // set some more variables
                 $mainframe =& JFactory::getApplication();
                 $registry->setValue("config.multilingual_support", true);
                 $mainframe->setUserState('application.lang', $jfLang->code);
                 $registry->setValue("config.jflang", $jfLang->code);
                 $registry->setValue("config.lang_site", $jfLang->code);
                 $registry->setValue("config.language", $jfLang->code);
                 $registry->setValue("joomfish.language", $jfLang);
                 // overwrite global config with values from $jfLang if set to in JoomFish
                 $jfparams = JComponentHelper::getParams("com_joomfish");
                 $overwriteGlobalConfig = $jfparams->get('overwriteGlobalConfig', 0);
                 if ($overwriteGlobalConfig) {
                     // We should overwrite additional global variables based on the language parameter configuration
                     $langParams = new JParameter($jfLang->params);
                     $paramarray = $langParams->toArray();
                     foreach ($paramarray as $key => $val) {
                         $registry->setValue("config." . $key, $val);
                         if (defined("_JLEGACY")) {
                             $name = 'mosConfig_' . $key;
                             $GLOBALS[$name] = $val;
                         }
                     }
                 }
                 // set the cookie with language
                 if (!$jfrouterEnabled && $sefConfig->jfLangCookie || $jfrouterEnabled && $jfrparams->get('enableCookie', 1)) {
                     setcookie("lang", "", time() - 1800, "/");
                     setcookie("jfcookie", "", time() - 1800, "/");
                     setcookie("jfcookie[lang]", $code, time() + 24 * 3600, '/');
                 }
             }
         }
     }
 }
Exemple #21
0
 /**
  * 
  */
 function checkstatus()
 {
     $type = JRequest::getString('type', '');
     $phase = JRequest::getInt('phase', 1);
     $statecheck_i = JRequest::getInt('statecheck_i', -1);
     $htmlResult = JText::_('MANAGEMENT_INTRO');
     $link = '';
     // get the view
     $this->_view = $this->getView("statistics");
     $this->_model = $this->getModel('statistics');
     switch ($type) {
         case 'translation_status':
             $message = '';
             $session = JFactory::getSession();
             $translationStatus = $session->get('translationState', array());
             $translationStatus = $this->_model->testTranslationStatus($translationStatus, $phase, $statecheck_i, $message);
             $session->set('translationState', $translationStatus);
             $htmlResult = $this->_view->renderTranslationStatusTable($translationStatus, $message);
             if ($phase <= 3) {
                 $link = 'index3.php?option=com_joomfish&task=statistics.check&type=translation_status&phase=' . $phase;
                 if ($statecheck_i > -1) {
                     $link .= '&statecheck_i=' . $statecheck_i;
                 }
             } else {
                 $session->set('translationState', null);
             }
             break;
         case 'original_status':
             $message = '';
             $session = JFactory::getSession();
             $originalStatus = $session->get('originalStatus', array());
             $langCodes = array();
             $jfManager = JoomFishManager::getInstance();
             $languages = $jfManager->getLanguages(false);
             foreach ($languages as $lang) {
                 $langCodes[] = $lang->getLanguageCode();
             }
             $originalStatus = $this->_model->testOriginalStatus($originalStatus, $phase, $statecheck_i, $message, $languages);
             $session->set('originalStatus', $originalStatus);
             $htmlResult = $this->_view->renderOriginalStatusTable($originalStatus, $message, $langCodes);
             if ($phase <= 2) {
                 $link = 'index3.php?option=com_joomfish&task=statistics.check&type=original_status&phase=' . $phase;
                 if ($statecheck_i > -1) {
                     $link .= '&statecheck_i=' . $statecheck_i;
                 }
             } else {
                 $session->set('originalStatus', null);
             }
             break;
     }
     // Set the layout
     $this->_view->setLayout('result');
     $this->_view->assignRef('htmlResult', $htmlResult);
     $this->_view->assignRef('reload', $link);
     $this->_view->display();
 }
 /**
  * Version information of the component
  *
  */
 public function version()
 {
     return JoomFishManager::getVersion();
 }
Exemple #23
0
function shSetJfLanguage($requestlang)
{
    if (empty($requestlang)) {
        return;
    }
    // get instance of JoomFishManager to obtain active language list and config values
    $jfm =& JoomFishManager::getInstance();
    $activeLanguages = $jfm->getActiveLanguages();
    // get the name of the language file for joomla
    $jfLang = TableJFLanguage::createByShortcode($requestlang, true);
    // set Joomfish stuff
    // Get the global configuration object
    global $mainframe;
    $registry =& JFactory::getConfig();
    $params = $registry->getValue("jfrouter.params");
    $enableCookie = empty($params) ? 1 : $params->get('enableCookie', 1);
    if ($enableCookie) {
        setcookie("lang", "", time() - 1800, "/");
        setcookie("jfcookie", "", time() - 1800, "/");
        setcookie("jfcookie[lang]", $jfLang->shortcode, time() + 24 * 3600, '/');
    }
    $GLOBALS['iso_client_lang'] = $jfLang->shortcode;
    $GLOBALS['mosConfig_lang'] = $jfLang->code;
    $mainframe->setUserState('application.lang', $jfLang->code);
    $registry->setValue("config.jflang", $jfLang->code);
    $registry->setValue("config.lang_site", $jfLang->code);
    $registry->setValue("config.language", $jfLang->code);
    $registry->setValue("joomfish.language", $jfLang);
    // Force factory static instance to be updated if necessary
    $lang =& JFactory::getLanguage();
    if ($jfLang->code != $lang->getTag()) {
        $lang = JFactory::_createLanguage();
    }
    $lang16 =& shjlang16Helper::getLanguage();
    if ($jfLang->code != $lang16->getTag()) {
        $lang16 = Jlanguage16::createLanguage();
    }
    // overwrite with the valued from $jfLang
    $params = new JParameter($jfLang->params);
    $paramarray = $params->toArray();
    foreach ($paramarray as $key => $val) {
        $registry->setValue("config." . $key, $val);
        if (defined("_JLEGACY")) {
            $name = 'mosConfig_' . $key;
            $GLOBALS[$name] = $val;
        }
    }
    // set our own data
    $GLOBALS['shMosConfig_lang'] = $lang->get('backwardlang', 'english');
    $GLOBALS['shMosConfig_locale'] = $jfLang->code;
    $GLOBALS['shMosConfig_shortcode'] = $jfLang->shortcode;
}
Exemple #24
0
 /**
  * Testing if old installation is found and upgraded?
  * This method is rebuild and checks now for old JoomFish installations not MambelFish anymore!
  * @return int		0 := component not installed, 1 := installed but not upgraded, 2 := installed and upgraded
  */
 private function _testOldInstall()
 {
     $db = JFactory::getDBO();
     $oldInstall = 0;
     $db->setQuery("SHOW TABLES LIKE '%jf_%'");
     $db->query();
     $rows = $db->loadResultArray();
     foreach ($rows as $row) {
         if (preg_match('/mbf_content/i', $row)) {
             $oldInstall = 1;
             break;
         }
     }
     $jfManager = JoomFishManager::getInstance();
     if ($oldInstall == 1 && $jfManager->getCfg('mbfupgradeDone')) {
         $oldInstall = 2;
     }
     return $oldInstall;
 }
Exemple #25
0
 /**
  * Constructor 
  */
 function __construct()
 {
     //jimport('JoomfishManager.class');
     $this->_joomfishManager =& JoomFishManager::getInstance();
 }
Exemple #26
0
 /**
  * This method copies originals content items to one selected language
  *
  * @param unknown_type $original2languageInfo
  * @param unknown_type $phase
  * @param unknown_type $statecheck_i
  * @param unknown_type $message
  * @return array	Information result array
  */
 function copyOriginalToLanguage($original2languageInfo, &$phase, &$state_catid, $language_id, $overwrite, &$message)
 {
     $db = JFactory::getDBO();
     $jfManager = JoomFishManager::getInstance();
     $sql = '';
     switch ($phase) {
         case 1:
             $original2languageInfo = array();
             $sql = "select distinct CONCAT('" . $db->getPrefix() . "',reference_table) from #__jf_content";
             $db->setQuery($sql);
             $tablesWithTranslations = $db->loadResultArray();
             $sql = "SHOW TABLES";
             $db->setQuery($sql);
             $tables = $db->loadResultArray();
             $allContentElements = $jfManager->getContentElements();
             foreach ($allContentElements as $catid => $ce) {
                 $ceInfo = array();
                 $ceInfo['name'] = $ce->Name;
                 $ceInfo['catid'] = $catid;
                 $ceInfo['total'] = '??';
                 $ceInfo['existing'] = '??';
                 $ceInfo['processed'] = '0';
                 $ceInfo['copied'] = '0';
                 $ceInfo['copy'] = false;
                 $contentTable = $ce->getTable();
                 $tablename = $db->getPrefix() . $contentTable->Name;
                 if (in_array($tablename, $tables)) {
                     // get total count of table entries
                     $sql = 'SELECT COUNT(*) FROM ' . $tablename . ' AS c';
                     if ($contentTable->Filter != '') {
                         $sql .= ' WHERE ' . $contentTable->Filter;
                     }
                     $db->setQuery($sql);
                     $ceInfo['total'] = $db->loadResult();
                 }
                 $original2languageInfo[$catid] = $ceInfo;
             }
             $phase = 1;
             // stays with 1 as the second phase needs the bottom to be clicked
             $message = JText::_('COPY2LANGUAGE_INFO');
             break;
         case 2:
             if ($state_catid != '') {
                 // removing all content information which are not to be copied!
                 $celements = explode(',', $state_catid);
                 if (count($celements) < count($original2languageInfo)) {
                     $shortList = array();
                     foreach ($celements as $element) {
                         $shortList[$element] = $original2languageInfo[$element];
                     }
                     $original2languageInfo = $shortList;
                 }
             }
             $phase = 3;
         case 3:
             if ($state_catid != '') {
                 $celements = explode(',', $state_catid);
                 // copy the information per content element file, starting with the first in the list
                 $catid = array_shift($celements);
                 $catidCompleted = false;
                 // coyping the information from the selected content element
                 if ($catid != '' && $language_id != 0) {
                     // get's the config settings on how to store original files
                     $storeOriginalText = $jfManager->getCfg('storageOfOriginal') == 'md5' ? false : true;
                     // make sure we are only transfering data within parts (max 100 items at a time)
                     $ceInfo =& $original2languageInfo[$catid];
                     if (intval($ceInfo['processed']) < intval($ceInfo['total'])) {
                         $contentElement = $jfManager->getContentElement($catid);
                         $db->setQuery($contentElement->createContentSQL($language_id, null, $ceInfo['processed'], 10, array()));
                         $rows = $db->loadObjectList();
                         if ($db->getErrorNum()) {
                             JError::raiseError(500, JTEXT::_('Invalid Content SQL : ') . $db->getErrorMsg());
                             return false;
                         } else {
                             for ($i = 0; $i < count($rows); $i++) {
                                 $contentObject = new ContentObject($language_id, $contentElement);
                                 $contentObject->readFromRow($rows[$i]);
                                 if ($overwrite || $contentObject->translation_id == 0) {
                                     $contentObject->copyContentToTranslation($rows[$i], $rows[$i]);
                                     $contentObject->store();
                                     $ceInfo['copied'] += 1;
                                 }
                                 $rows[$i] = $contentObject;
                             }
                             $ceInfo['processed'] += $i;
                             if ($ceInfo['processed'] >= $ceInfo['total']) {
                                 $catidCompleted = true;
                             }
                         }
                     }
                 }
                 if ($catidCompleted) {
                     if (count($celements) > 0) {
                         $state_catid = implode(',', $celements);
                     } else {
                         $state_catid = '';
                     }
                 }
             }
             $message = JText::_('COPY2LANGUAGE_PROCESS');
             if ($state_catid == '') {
                 $phase = 4;
                 // Successfully finished phase 3
                 $message = JText::_('COPY2LANGUAGE_COMPLETED');
             }
             break;
     }
     return $original2languageInfo;
 }
Exemple #27
0
','clear');"><span class="icon-32-delete"></span><?php 
                    echo JText::_('Delete');
                    ?>
</a>

					<?php 
                }
            }
            ?>
					</td>
		    </tr>
	      	<?php 
        } else {
            // Special Params handling
            // if translated value is blank then we always copy across the original value
            $joomFishManager =& JoomFishManager::getInstance();
            if ($joomFishManager->getCfg('copyparams', 1) && $translationContent->value == "") {
                $translationContent->value = $field->originalValue;
            }
            ?>
		    <tr class="<?php 
            echo "row{$k}";
            ?>
">
		      <td colspan="3">
		      <table class='translateparams'>
			      <tr>
				      <td valign="top" style="text-align:center!important"><?php 
            echo JText::_('ORIGINAL');
            ?>
</td>
Exemple #28
0
 /**
  * Method to initialize the language depended image (flag) browser
  * The browser is initialized with the default root path based on the Joomfish configuration
  * @param $tpl
  */
 public function filebrowser($tpl = null)
 {
     $document = JFactory::getDocument();
     $livesite = JURI::base();
     $document->addStyleSheet($livesite . 'components/com_joomfish/assets/css/joomfish.css');
     $document->addStyleSheet(JURI::root(true) . '/media/media/css/popup-imagelist.css');
     JHtml::_('behavior.modal');
     JHTML::script('com_joomfish/joomfish.mootools.js', true, true);
     $jfManager = JoomFishManager::getInstance();
     $root = $jfManager->getCfg('directory_flags');
     $current = JRequest::getVar('current', '');
     if ($current != '') {
         $root = dirname($current);
     }
     // remove leading / in case it exists
     $root = preg_replace('/^\\/(.*)/', "\$1", $root);
     $flagField = JRequest::getVar('flagField', '');
     $folder = JRequest::getVar('folder', $root, 'default', 'path');
     $type = JRequest::getCmd('type', 'image');
     if (JString::trim($folder) == "") {
         $path = JPATH_SITE . DS . JPath::clean('/');
     } else {
         $path = JPATH_SITE . DS . JPath::clean($folder);
     }
     JPath::check($path);
     $title = JText::_('BROWSE_LANGUAGE_FLAGS');
     $filter = '.jpg|png|gif|xcf|odg|bmp|jpeg';
     if (JFolder::exists($path)) {
         $folderList = JFolder::folders($path);
         $filesList = JFolder::files($path, $filter);
     }
     if (!empty($folder)) {
         $parent = substr($folder, 0, strrpos($folder, '/'));
     } else {
         $parent = '';
     }
     $this->assignRef('folders', $folderList);
     $this->assignRef('files', $filesList);
     $this->assignRef('parent', $parent);
     $this->assignRef('path', $folder);
     $this->assignRef('type', $type);
     $this->assignRef('title', $title);
     $this->assignRef('flagField', $flagField);
     parent::display($tpl);
 }
if (!JoomfishExtensionHelper::isJoomFishActive()) {
    return;
}
$db = JFactory::getDBO();
$db->_profile("langmod", true);
// Include the helper functions only once
JLoader::import('helper', dirname(__FILE__), 'jfmodule');
JLoader::register('JoomFishVersion', JOOMFISH_ADMINPATH . DS . 'version.php');
$type = trim($params->get('type', 'rawimages'));
$layout = JModuleHelper::getLayoutPath('mod_jflanguageselection', $type);
$inc_jf_css = intval($params->get('inc_jf_css', 1));
$type = trim($params->get('type', 'dropdown'));
$show_active = intval($params->get('show_active', 1));
$spacer = trim($params->get('spacer', '&nbsp;'));
jimport('joomla.filesystem.file');
$jfManager = JoomFishManager::getInstance();
$langActive = $jfManager->getActiveLanguages(true);
// setup Joomfish plugins
$dispatcher = JDispatcher::getInstance();
JPluginHelper::importPlugin('joomfish');
$dispatcher->trigger('onAfterModuleActiveLanguages', array(&$langActive));
$outString = '';
if (!isset($langActive) || count($langActive) == 0) {
    // No active languages => nothing to show :-(
    return;
}
// check for unauthorised access to inactive language
$curLanguage = JFactory::getLanguage();
if (!array_key_exists($curLanguage->getTag(), $langActive)) {
    reset($langActive);
    //$currentlang = current($langActive);
 /**
  * Description
  *
  * @access public
  * @return int The number of rows returned from the most recent query.
  */
 function getNumRows($cur = null, $translate = true, $language = null)
 {
     $count = parent::getNumRows($cur);
     if (!$translate) {
         return $count;
     }
     // setup Joomfish plugins
     $dispatcher =& JDispatcher::getInstance();
     JPluginHelper::importPlugin('joomfish');
     // must allow fall back for contnent table localisation to work
     $allowfallback = true;
     $refTablePrimaryKey = "";
     $reference_table = "";
     $ids = "";
     $jfm =& JoomFishManager::getInstance();
     $this->_setLanguage($language);
     $registry =& JFactory::getConfig();
     $defaultLang = $registry->getValue("config.defaultlang");
     if ($defaultLang == $language) {
         $rows = array($count);
         $dispatcher->trigger('onBeforeTranslation', array(&$rows, $ids, $reference_table, $language, $refTablePrimaryKey, $this->_getRefTables(), $this->_sql, $allowfallback));
         $count = $rows[0];
         return $count;
     }
     $rows = array($count);
     $dispatcher->trigger('onBeforeTranslation', array(&$rows, $ids, $reference_table, $language, $refTablePrimaryKey, $this->_getRefTables(), $this->_sql, $allowfallback));
     $dispatcher->trigger('onAfterTranslation', array(&$rows, $ids, $reference_table, $language, $refTablePrimaryKey, $this->_getRefTables(), $this->_sql, $allowfallback));
     $count = $rows[0];
     return $count;
 }