/** * Lists the plugins * * @param string $search Search query * @param bool $showDeleted Show deleted domains * @param string $strOrderby OrderBy Column * @param string $strOrderMode Order mode (asc or desc) * @return array */ public function do_list($search = null, $showInactive = false, $entityName = null, $eventName = null, $strOrderby = 'Name', $strOrderMode = 'asc') { $user = $this->requireUser(); $account = $user->getAccount(); $query = new PluginQuery(); $query->filterByAccount($account); if ($strOrderMode !== 'asc') { $strOrderMode = 'desc'; } switch ($strOrderby) { case 'Identifier': break; case 'Entity': $query->orderByEntity($strOrderMode); break; case 'Event': $query->orderByEvent($strOrderMode); break; case 'Priority': $query->orderByPriority($strOrderMode); break; default: // Name $query->orderByName($strOrderMode); break; } $query->orderByIdentifier($strOrderMode); if ((string) $search !== '') { $query->filterByName('%' . $search . '%', Criteria::LIKE)->_or()->filterByIdentifier('%' . $search . '%', Criteria::LIKE); } if (!$showInactive) { $query->filterByActive(0, Criteria::NOT_EQUAL); } if ((string) $entityName !== '') { $query->filterByEntity($entityName); } if ((string) $eventName !== '') { $query->filterByEvent($eventName); } $result = array(); foreach ($query->find() as $plugin) { /* @var $plugin Plugin */ $result[] = array('Id' => $plugin->getId(), 'AccountId' => $plugin->getAccountId(), 'Entity' => $plugin->getEntity(), 'Event' => $plugin->getEvent(), 'Priority' => $plugin->getPriority(), 'Identifier' => $plugin->getIdentifier(), 'Name' => $plugin->getName(), 'Active' => $plugin->getActive()); } return $result; }