/** * Method to instantiate the model. * * @param JContentFactory $factory The content factory. * @param JDatabaseDriver $db The database adpater. * @param JRegistry $state The model state. * * @since 1.0 */ public function __construct(JContentFactory $factory = null, JDatabaseDriver $db = null, JRegistry $state = null) { parent::__construct($state); // Set factory if ($factory == null) { $this->factory = JContentFactory::getInstance(); } else { $this->factory = $factory; } // Set database if ($db == null) { $this->db = JFactory::getDbo(); } else { $this->db = $db; } }
/** * Method to instantiate the object. * * @param string $prefix The custom prefix. * @param object $type The JContentType object for the content object. * @param mixed $factory An optional argument to provide dependency injection for the content * factory. If the argument is a JContentFactory that object will become * the content factory, otherwise the default factory will be used. * @param mixed $db An optional argument to provide dependency injection for the database * adapter. If the argument is a JDatbase adapter that object will become * the database adapter, otherwise the default adapter will be used. * @param mixed $app An optional argument to provide dependency injection for the application. * If the argument is a JApplicationWeb instance that object will become the application, * otherwise the default application will be used. * @param mixed $user An optional argument to provide dependency injection for the user. If the * argument is a JUser instance that object will become the user, otherwise the * default user will be used. * * @since 12.1 * @throws RuntimeException */ public function __construct($prefix, $type, JContentFactory $factory = null, JDatabase $db = null, JApplicationWeb $app = null, JUser $user = null) { // Check if the type table is defined. if (!empty($type->table)) { // Add the type table and key. $this->tables['secondary'] = $type->table; $this->keys['secondary'] = array('primary' => 'content_id'); } parent::__construct($db); // Set the content properties. $this->type = $type; $this->prefix = $prefix; // If an application object is given, use it. if ($app instanceof JApplicationWeb) { $this->app = $app; } else { $this->app = JFactory::getApplication(); } // If a user object is given, use it. if ($user instanceof JUser) { $this->user = $user; } else { $this->user = JFactory::getUser(); } // If a factory object is given, use it. if ($factory instanceof JContentFactory) { $this->factory = $factory; } else { $this->factory = JContentFactory::getInstance($this->prefix, $this->db, $this->app, $this->user); } // Get an authoriser from the factory. $this->authoriser = JAuthorisationFactory::getInstance()->getAuthoriser(); // Set the cache group. $this->cacheGroup = $this->type->alias; // Register the dump properties. $this->dump[] = 'route'; $this->dump[] = 'config'; }