Source for file multilangstatus.php

Documentation is available at multilangstatus.php

  1. <?php
  2. /**
  3.  * @package     Joomla.Administrator
  4.  * @subpackage  com_languages
  5.  *
  6.  * @copyright   Copyright (C) 2005 - 2013 Open Source Matters, Inc. All rights reserved.
  7.  * @license     GNU General Public License version 2 or later; see LICENSE.txt
  8.  */
  9.  
  10. defined('_JEXEC'or die;
  11.  
  12. /**
  13.  * Multilang status helper.
  14.  *
  15.  * @package     Joomla.Administrator
  16.  * @subpackage  com_languages
  17.  * @since       1.7.1
  18.  */
  19. abstract class MultilangstatusHelper
  20. {
  21.     public static function getHomes()
  22.     {
  23.         // Check for multiple Home pages
  24.         $db JFactory::getDbo();
  25.         $query $db->getQuery(true)
  26.             ->select('COUNT(*)')
  27.             ->from($db->quoteName('#__menu'))
  28.             ->where('home = 1')
  29.             ->where('published = 1')
  30.             ->where('client_id = 0');
  31.         $db->setQuery($query);
  32.         return $db->loadResult();
  33.     }
  34.  
  35.     public static function getLangswitchers()
  36.     {
  37.         // Check if switcher is published
  38.         $db JFactory::getDbo();
  39.         $query $db->getQuery(true)
  40.             ->select('COUNT(*)')
  41.             ->from($db->quoteName('#__modules'))
  42.             ->where('module = ' $db->quote('mod_languages'))
  43.             ->where('published = 1')
  44.             ->where('client_id = 0');
  45.         $db->setQuery($query);
  46.         return $db->loadResult();
  47.     }
  48.  
  49.     public static function getContentlangs()
  50.     {
  51.         // Check for published Content Languages
  52.         $db JFactory::getDbo();
  53.         $query $db->getQuery(true)
  54.             ->select('a.lang_code AS lang_code')
  55.             ->select('a.published AS published')
  56.             ->from('#__languages AS a');
  57.         $db->setQuery($query);
  58.         return $db->loadObjectList();
  59.     }
  60.  
  61.     public static function getSitelangs()
  62.     {
  63.         // check for published Site Languages
  64.         $db JFactory::getDbo();
  65.         $query $db->getQuery(true)
  66.             ->select('a.element AS element')
  67.             ->from('#__extensions AS a')
  68.             ->where('a.type = ' $db->quote('language'))
  69.             ->where('a.client_id = 0')
  70.             ->where('a.enabled = 1');
  71.         $db->setQuery($query);
  72.         return $db->loadObjectList('element');
  73.     }
  74.  
  75.     public static function getHomepages()
  76.     {
  77.         // Check for Home pages languages
  78.         $db JFactory::getDbo();
  79.         $query $db->getQuery(true)
  80.             ->select('language')
  81.             ->from($db->quoteName('#__menu'))
  82.             ->where('home = 1')
  83.             ->where('published = 1')
  84.             ->where('client_id = 0');
  85.         $db->setQuery($query);
  86.         return $db->loadObjectList('language');
  87.     }
  88.  
  89.     public static function getStatus()
  90.     {
  91.         //check for combined status
  92.         $db JFactory::getDbo();
  93.         $query $db->getQuery(true);
  94.  
  95.         // Select all fields from the languages table.
  96.         $query->select('a.*''l.home')
  97.             ->select('a.published AS published')
  98.             ->select('a.lang_code AS lang_code')
  99.             ->from('#__languages AS a');
  100.  
  101.         // Select the language home pages
  102.         $query->select('l.home AS home')
  103.             ->select('l.language AS home_language')
  104.             ->join('LEFT''#__menu  AS l  ON  l.language = a.lang_code AND l.home=1 AND l.published=1 AND l.language <> \'*\'')
  105.             ->select('e.enabled AS enabled')
  106.             ->select('e.element AS element')
  107.             ->join('LEFT''#__extensions  AS e ON e.element = a.lang_code')
  108.             ->where('e.client_id = 0')
  109.             ->where('e.enabled = 1')
  110.             ->where('e.state = 0');
  111.  
  112.         $db->setQuery($query);
  113.         return $db->loadObjectList();
  114.     }
  115.  
  116.     public static function getContacts()
  117.     {
  118.         $db JFactory::getDbo();
  119.         $query $db->getQuery(true)
  120.             ->select('u.name, count(cd.language) as counted, MAX(cd.language=' $db->quote('*'') as all_languages')
  121.             ->from('#__users AS u')
  122.             ->join('LEFT''#__contact_details AS cd ON cd.user_id=u.id')
  123.             ->join('LEFT''#__languages as l on cd.language=l.lang_code')
  124.             ->where('EXISTS (SELECT * from #__content as c where  c.created_by=u.id)')
  125.             ->where('(l.published=1 or cd.language=' $db->quote('*'')')
  126.             ->where('cd.published=1')
  127.             ->group('u.id')
  128.             ->having('(counted !=' count(JLanguageHelper::getLanguages()) ' OR all_languages=1)')
  129.             ->having('(counted !=1 OR all_languages=0)');
  130.         $db->setQuery($query);
  131.         return $db->loadObjectList();
  132.     }
  133. }

Documentation generated on Tue, 19 Nov 2013 15:09:03 +0100 by phpDocumentor 1.4.3