/** * Typesafe call to modify * @access private **/ protected function modifyImpl(Doctrine_Query &$o) { if ($this->groupfields) { $groups = explode(",", $this->groupfields); foreach ($groups as $group) { $o->addGroupBy($group); } } }
protected function modifyImpl(Doctrine_Query &$o) { if (!$this->ignoreIds) { $table = $o->getConnection()->getTable($this->getTarget()); $keys = $table->getIdentifierColumnNames(); $o->addSelect(implode($keys)); } else { $o->disableAutoIdentifierFields(true); } foreach ($this->additionalSelects as $alias => $select) { $o->addSelect($select . (is_numeric($alias) ? "" : " AS " . $alias)); } $db = $this->getContext()->getDatabaseManager()->getDatabase('icinga'); // check if retained state must be respected if (method_exists($db, "useRetained")) { /* * the core with idomod dumps 2 different config types * idomod.cfg:config_output_options * 1 = original config => config_type = 0 * 2 = retained config => config_type = 1 * 3 = both, both config_types are available */ if ($this->retainedAlias) { $o->andWhere($this->retainedAlias . ".config_type= ?", $db->useRetained() ? "1" : "0"); } } if ($this->getTarget() == "IcingaObjects") { $o->andWhere($this->mainAlias . ".is_active = 1"); } foreach ($this->forceGroup as $group) { $o->addGroupBy($group); } parent::modifyImpl($o); }