[ Index ]

PHP Cross Reference of Joomla 4.2.2 documentation

title

Body

[close]

/administrator/components/com_finder/src/Model/ -> StatisticsModel.php (source)

   1  <?php
   2  
   3  /**
   4   * @package     Joomla.Administrator
   5   * @subpackage  com_finder
   6   *
   7   * @copyright   (C) 2011 Open Source Matters, Inc. <https://www.joomla.org>
   8   * @license     GNU General Public License version 2 or later; see LICENSE.txt
   9   */
  10  
  11  namespace Joomla\Component\Finder\Administrator\Model;
  12  
  13  use Joomla\CMS\Factory;
  14  use Joomla\CMS\MVC\Model\BaseDatabaseModel;
  15  use Joomla\CMS\Object\CMSObject;
  16  use Joomla\CMS\Plugin\PluginHelper;
  17  
  18  // phpcs:disable PSR1.Files.SideEffects
  19  \defined('_JEXEC') or die;
  20  // phpcs:enable PSR1.Files.SideEffects
  21  
  22  /**
  23   * Statistics model class for Finder.
  24   *
  25   * @since  2.5
  26   */
  27  class StatisticsModel extends BaseDatabaseModel
  28  {
  29      /**
  30       * Method to get the component statistics
  31       *
  32       * @return  CMSObject The component statistics
  33       *
  34       * @since   2.5
  35       */
  36      public function getData()
  37      {
  38          // Initialise
  39          $db = $this->getDatabase();
  40          $query = $db->getQuery(true);
  41          $data = new CMSObject();
  42  
  43          $query->select('COUNT(term_id)')
  44              ->from($db->quoteName('#__finder_terms'));
  45          $db->setQuery($query);
  46          $data->term_count = $db->loadResult();
  47  
  48          $query->clear()
  49              ->select('COUNT(link_id)')
  50              ->from($db->quoteName('#__finder_links'));
  51          $db->setQuery($query);
  52          $data->link_count = $db->loadResult();
  53  
  54          $query->clear()
  55              ->select('COUNT(id)')
  56              ->from($db->quoteName('#__finder_taxonomy'))
  57              ->where($db->quoteName('parent_id') . ' = 1');
  58          $db->setQuery($query);
  59          $data->taxonomy_branch_count = $db->loadResult();
  60  
  61          $query->clear()
  62              ->select('COUNT(id)')
  63              ->from($db->quoteName('#__finder_taxonomy'))
  64              ->where($db->quoteName('parent_id') . ' > 1');
  65          $db->setQuery($query);
  66          $data->taxonomy_node_count = $db->loadResult();
  67  
  68          $query->clear()
  69              ->select('t.title AS type_title, COUNT(a.link_id) AS link_count')
  70              ->from($db->quoteName('#__finder_links') . ' AS a')
  71              ->join('INNER', $db->quoteName('#__finder_types') . ' AS t ON t.id = a.type_id')
  72              ->group('a.type_id, t.title')
  73              ->order($db->quoteName('type_title') . ' ASC');
  74          $db->setQuery($query);
  75          $data->type_list = $db->loadObjectList();
  76  
  77          $lang  = Factory::getLanguage();
  78          $plugins = PluginHelper::getPlugin('finder');
  79  
  80          foreach ($plugins as $plugin) {
  81              $lang->load('plg_finder_' . $plugin->name . '.sys', JPATH_ADMINISTRATOR)
  82              || $lang->load('plg_finder_' . $plugin->name . '.sys', JPATH_PLUGINS . '/finder/' . $plugin->name);
  83          }
  84  
  85          return $data;
  86      }
  87  }


Generated: Wed Sep 7 05:41:13 2022 Chilli.vc Blog - For Webmaster,Blog-Writer,System Admin and Domainer