toArray($keyType); } return $plugins; } /** * Get all Plugins Enabled * @param string $keyType * @return array */ public static function getPluginsEnabled($keyType = BasePeer::TYPE_FIELDNAME) { $criteria = new Criteria(); $criteria->add(PluginsRegistryPeer::PLUGIN_ENABLE, true); $dataSet = PluginsRegistryPeer::doSelect($criteria); $plugins = []; /** @var PluginsRegistry $row */ foreach ($dataSet as $row) { $plugins[] = $row->toArray($keyType); } return $plugins; } /** * Load plugin with Uid * @param string $prUid * @return array * @throws Exception */ public static function load($prUid) { $oPluginsRegistry = PluginsRegistryPeer::retrieveByPK($prUid); if ($oPluginsRegistry) { /** @var array $aFields */ $aFields = $oPluginsRegistry->toArray(BasePeer::TYPE_FIELDNAME); return $aFields; } else { throw new Exception("Plugin does not exist!"); } } /** * Check if there is a plugin uid * @param $prUid * @return mixed|bool */ public static function exists($prUid) { $oPluginsRegistry = PluginsRegistryPeer::retrieveByPk($prUid); if ($oPluginsRegistry) { return true; } else { return false; } } /** * Load or creates if the record does not exist * Load and makes a union with the data sent * * @param string $prUid * @param array $pluginData * @return array */ public static function loadOrCreateIfNotExists($prUid, $pluginData = []) { if (!self::exists($prUid)) { $pluginData['PR_UID'] = $prUid; self::create($pluginData); } else { $fields = self::load($prUid); $pluginData = array_merge($fields, $pluginData); } return $pluginData; } /** * Creates a record in the PLUGINS_REGISTRY table * @param array $aData * @return bool * @throws Exception */ public static function create($aData) { $oConnection = Propel::getConnection(PluginsRegistryPeer::DATABASE_NAME); try { $oPluginsRegistry = new PluginsRegistry(); $oPluginsRegistry->fromArray($aData, BasePeer::TYPE_FIELDNAME); if ($oPluginsRegistry->validate()) { $oConnection->begin(); $oPluginsRegistry->save(); $oConnection->commit(); return true; } else { $sMessage = ''; $aValidationFailures = $oPluginsRegistry->getValidationFailures(); /** @var ValidationFailed $oValidationFailure */ foreach ($aValidationFailures as $oValidationFailure) { $sMessage .= $oValidationFailure->getMessage() . '
'; } throw (new Exception('The registry cannot be created!
' . $sMessage)); } } catch (Exception $oError) { $oConnection->rollback(); throw ($oError); } } /** * Modifies a record in the PLUGINS_REGISTRY table * @param array $aData * @return int * @throws Exception */ public static function update($aData) { $oConnection = Propel::getConnection(PluginsRegistryPeer::DATABASE_NAME); try { $oPluginsRegistry = PluginsRegistryPeer::retrieveByPK($aData['PR_UID']); if ($oPluginsRegistry) { $oPluginsRegistry->fromArray($aData, BasePeer::TYPE_FIELDNAME); if ($oPluginsRegistry->validate()) { $oConnection->begin(); $iResult = $oPluginsRegistry->save(); $oConnection->commit(); return $iResult; } else { $sMessage = ''; $aValidationFailures = $oPluginsRegistry->getValidationFailures(); /** @var ValidationFailed $oValidationFailure */ foreach ($aValidationFailures as $oValidationFailure) { $sMessage .= $oValidationFailure->getMessage() . '
'; } throw (new Exception('The registry cannot be updated!
' . $sMessage)); } } else { throw (new Exception('This row doesn\'t exist!')); } } catch (Exception $oError) { $oConnection->rollback(); throw ($oError); } } /** * Activate a plugin with your name * @param string $Namespace * @return int * @throws Exception */ public static function enable($Namespace) { $oConnection = Propel::getConnection(PluginsRegistryPeer::DATABASE_NAME); try { $oPluginsRegistry = PluginsRegistryPeer::retrieveByPK(md5($Namespace)); if ($oPluginsRegistry) { $oPluginsRegistry->fromArray(['PLUGIN_ENABLE' => true], BasePeer::TYPE_FIELDNAME); if ($oPluginsRegistry->validate()) { $oConnection->begin(); $iResult = $oPluginsRegistry->save(); $oConnection->commit(); return $iResult; } else { $sMessage = ''; $aValidationFailures = $oPluginsRegistry->getValidationFailures(); /** @var ValidationFailed $oValidationFailure */ foreach ($aValidationFailures as $oValidationFailure) { $sMessage .= $oValidationFailure->getMessage() . '
'; } throw (new Exception('The registry cannot be updated!
' . $sMessage)); } } else { throw (new Exception('This Plugin doesn\'t exist!')); } } catch (Exception $oError) { $oConnection->rollback(); throw ($oError); } } /** * Disable a plugin with your name * @param string $Namespace * @return int * @throws Exception */ public static function disable($Namespace) { $oConnection = Propel::getConnection(PluginsRegistryPeer::DATABASE_NAME); try { $oPluginsRegistry = PluginsRegistryPeer::retrieveByPK(md5($Namespace)); if ($oPluginsRegistry) { $oPluginsRegistry->fromArray(['PLUGIN_ENABLE' => false], BasePeer::TYPE_FIELDNAME); if ($oPluginsRegistry->validate()) { $oConnection->begin(); $iResult = $oPluginsRegistry->save(); $oConnection->commit(); return $iResult; } else { $sMessage = ''; $aValidationFailures = $oPluginsRegistry->getValidationFailures(); /** @var ValidationFailed $oValidationFailure */ foreach ($aValidationFailures as $oValidationFailure) { $sMessage .= $oValidationFailure->getMessage() . '
'; } throw (new Exception('The registry cannot be updated!
' . $sMessage)); } } else { throw (new Exception('This Plugin doesn\'t exist!')); } } catch (Exception $oError) { $oConnection->rollback(); throw ($oError); } } }