View file application/modules/Core/Model/DbTable/Modules.php

File size: 3.05Kb
<?php
/**
 * SocialEngine
 *
 * @category   Application_Core
 * @package    Core
 * @copyright  Copyright 2006-2020 Webligo Developments
 * @license    http://www.socialengine.com/license/
 * @version    $Id: Modules.php 9747 2012-07-26 02:08:08Z john $
 * @author     John
 */

/**
 * @category   Application_Core
 * @package    Core
 * @copyright  Copyright 2006-2020 Webligo Developments
 * @license    http://www.socialengine.com/license/
 */
class Core_Model_DbTable_Modules extends Engine_Db_Table
{
    protected $_modules;

    protected $_modulesAssoc = array();

    protected $_enabledModuleNames;

    protected $defaultModules = array (
        'activity',
        'album',
        'announcement',
        'authorization',
        'blog',
        'chat',
        'classified',
        'core',
        'event',
        'fields',
        'forum',
        'group',
        'invite',
        'messages',
        'mobi',
        'music',
        'network',
        'payment',
        'poll',
        'storage',
        'user',
        'video'
    );

    public function getModule($name)
    {
        if (null === $this->_modules) {
            $this->getModules();
        }

        if (!empty($this->_modulesAssoc[$name])) {
            return $this->_modulesAssoc[$name];
        }

        return null;
    }

    public function getModules()
    {
        if (null === $this->_modules) {
            $this->_modules = $this->fetchAll();
            foreach ($this->_modules as $module) {
                $this->_modulesAssoc[$module->name] = $module;
            }
        }

        return $this->_modules;
    }

    public function getModulesAssoc()
    {
        if (null === $this->_modules) {
            $this->getModules();
        }

        return $this->_modulesAssoc;
    }

    public function hasModule($name)
    {
        return !empty($this->_modulesAssoc[$name]);
    }

    public function isModuleEnabled($name)
    {
        return engine_in_array($name, $this->getEnabledModuleNames());
    }

    public function getEnabledModuleNames()
    {
        if (null === $this->_enabledModuleNames) {
            $this->_enabledModuleNames = array();
            $modules = $this->select()
                ->from($this, 'name')
                ->where('enabled = ?', true)
                ->query()
                ->fetchAll(Zend_Db::FETCH_COLUMN);

            foreach ($modules as $module) {
                if (defined('_ENGINE_DEFAULT_MODULES_ONLY') && !engine_in_array($module, $this->defaultModules)) {
                    continue;
                }
                $this->_enabledModuleNames[] = $module;
            }
        }

        return $this->_enabledModuleNames;
    }
    
    public function getAllModules($params = array()) {
    
      $select = $this->select()
                    ->from($this)
                    ->where('type = ?', 'extra')
                    ->order('title ASC');
      $data = array('' => '');
      foreach( $select->query()->fetchAll() as $category ) {
        $data[$category['name']] = $category['title'];
      }
      return $data;
    }
}