Skip to content

Commit

Permalink
filtering out data for plugins that are not active
Browse files Browse the repository at this point in the history
  • Loading branch information
dogmatic69 committed May 24, 2012
1 parent 6b61c7e commit a379473
Showing 1 changed file with 15 additions and 19 deletions.
34 changes: 15 additions & 19 deletions Core/Events/Model/Behavior/EventBehavior.php
Original file line number Diff line number Diff line change
Expand Up @@ -12,11 +12,14 @@ public function triggerEvent($Model, $eventName, $data = array()){
}

public function beforeFind($Model, $query) {
if(false && $Model->hasField('plugin')) {
$query['conditions'] = array_merge(
!empty($query['conditions']) ? (array)$query['conditions'] : array(),
$this->__getPossiblePlugins($Model, 'plugin')
);
$query['conditions'] = !empty($query['conditions']) ? (array)$query['conditions'] : array();

if($Model->hasField('plugin')) {
//$this->__getPossiblePlugins($Model, 'plugin', $query['conditions']);
}

if($Model->hasField('model')) {
$this->__getPossiblePlugins($Model, 'model', $query['conditions']);
}

if($Model->hasField('class')) {
Expand All @@ -39,21 +42,14 @@ public function beforeFind($Model, $query) {
*
* @return array conditions to add to a find
*/
private function __getPossiblePlugins($Model, $field) {
$camelCasePlugins = EventCore::getAvailablePlugins();
private function __getPossiblePlugins($Model, $field, &$conditions) {
$toIgnore = ClassRegistry::init('Installer.Plugin')->getInactiveInstalledPlugins();

$mixedCasePlugins = array('');
foreach($camelCasePlugins as $plugin) {
$mixedCasePlugins[] = $plugin;
$mixedCasePlugins[] = Inflector::underscore($plugin);
$return = array();
foreach($toIgnore as $plugin) {
$conditions[] = array(
sprintf('%s.%s NOT LIKE ', $Model->alias, $field) => sprintf('%%%s%%', $plugin)
);
}

return array(
'and' => array(
'or' => array(
$Model->alias . '.' . $field => $mixedCasePlugins,
)
)
);
}
}

0 comments on commit a379473

Please sign in to comment.