%PDF- %PDF-
Direktori : /home/lightco1/upgrade.lightco.com.au/libraries/fof30/Model/DataModel/Behaviour/ |
Current File : /home/lightco1/upgrade.lightco.com.au/libraries/fof30/Model/DataModel/Behaviour/Enabled.php |
<?php /** * @package FOF * @copyright 2010-2017 Nicholas K. Dionysopoulos / Akeeba Ltd * @license GNU GPL version 2 or later */ namespace FOF30\Model\DataModel\Behaviour; use FOF30\Event\Observer; use FOF30\Model\DataModel; use JDatabaseQuery; defined('_JEXEC') or die; /** * FOF model behavior class to filter access to items based on the enabled status * * @since 2.1 */ class Enabled extends Observer { /** * This event runs before we have built the query used to fetch a record * list in a model. It is used to apply automatic query filters. * * @param DataModel &$model The model which calls this event * @param JDatabaseQuery &$query The query we are manipulating * * @return void */ public function onBeforeBuildQuery(&$model, &$query) { // Make sure the field actually exists if (!$model->hasField('enabled')) { return; } $fieldName = $model->getFieldAlias('enabled'); $db = $model->getDbo(); $model->whereRaw($db->qn($fieldName) . ' = ' . $db->q(1)); } /** * The event runs after DataModel has retrieved a single item from the database. It is used to apply automatic * filters. * * @param DataModel &$model The model which was called * @param Array &$keys The keys used to locate the record which was loaded * * @return void */ public function onAfterLoad(&$model, &$keys) { // Make sure we have a DataModel if (!($model instanceof DataModel)) { return; } // Make sure the field actually exists if (!$model->hasField('enabled')) { return; } // Filter by enabled status if (!$model->getFieldValue('enabled', 0)) { $model->reset(true); } } }