fix in login and pluginregistry

This commit is contained in:
dev-ronald
2017-07-24 16:29:18 -04:00
committed by Ronald Quenta
parent 519e9e477f
commit c979a43d36
6 changed files with 48 additions and 11 deletions

View File

@@ -358,7 +358,7 @@ class WebApplication
}
// hook to get rest api classes from plugins
if (class_exists('PMPluginRegistry') && file_exists(PATH_DATA_SITE . 'plugin.singleton')) {
if (class_exists('PMPluginRegistry')) {
$pluginRegistry = \PMPluginRegistry::loadSingleton(PATH_DATA_SITE . 'plugin.singleton');
$plugins = $pluginRegistry->getRegisteredRestServices();
@@ -370,8 +370,9 @@ class WebApplication
$loader->add($pluginSourceDir);
foreach ($plugin as $class) {
if (class_exists($class['namespace'])) {
$this->rest->addAPIClass($class['namespace'], strtolower($pluginName));
$className = is_object($class) ? $class->namespace: $class['namespace'];
if (class_exists($className)) {
$this->rest->addAPIClass($className, strtolower($pluginName));
}
}
}

View File

@@ -386,7 +386,7 @@ class headPublisher
*/
// Load external/plugin css
// NOTE is necesary to move this to decorator server
if (class_exists('PMPluginRegistry') && PATH_DATA != PATH_C) {
if (class_exists('PMPluginRegistry') && defined('SYS_SYS')) {
$oPluginRegistry = & PMPluginRegistry::getSingleton();
$registeredCss = $oPluginRegistry->getRegisteredCss();
foreach ($registeredCss as $cssFile) {
@@ -550,7 +550,7 @@ class headPublisher
$this->extJsScript[] = '/extjs/' . $cacheName;
//hook for registered javascripts from plugins
if (class_exists('PMPluginRegistry') && PATH_DATA != PATH_C) {
if (class_exists('PMPluginRegistry') && defined('SYS_SYS')) {
$oPluginRegistry = & PMPluginRegistry::getSingleton();
$pluginJavascripts = $oPluginRegistry->getRegisteredJavascriptBy($filename);
} else {

View File

@@ -108,7 +108,7 @@ class PluginsRegistry extends BasePluginsRegistry
public static function update($aData)
{
$oConnection = Propel::getConnection(UsersPropertiesPeer::DATABASE_NAME);
$oConnection = Propel::getConnection(PluginsRegistryPeer::DATABASE_NAME);
try {
$oPluginsRegistry = PluginsRegistryPeer::retrieveByPK($aData['PR_UID']);
if ($oPluginsRegistry) {
@@ -135,4 +135,36 @@ class PluginsRegistry extends BasePluginsRegistry
throw ($oError);
}
}
public static function enable($pr_uid)
{
$oConnection = Propel::getConnection(PluginsRegistryPeer::DATABASE_NAME);
try {
$oPluginsRegistry = PluginsRegistryPeer::retrieveByPK($pr_uid);
if ($oPluginsRegistry) {
$aData['PLUGIN_ENABLE'] = true;
$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() . '<br />';
}
throw (new Exception('The registry cannot be updated!<br />' . $sMessage));
}
} else {
throw (new Exception('This row doesn\'t exist!'));
}
} catch (Exception $oError) {
$oConnection->rollback();
throw ($oError);
}
}
}

View File

@@ -790,7 +790,7 @@ class SkinEngine
$sWspaceSelect = trim($aFotoSelect['WORKSPACE_LOGO_NAME']);
}
}
if (class_exists('PMPluginRegistry')) {
if (class_exists('PMPluginRegistry') && defined("SYS_SYS")) {
$oPluginRegistry = &PMPluginRegistry::getSingleton();
if ( isset($sFotoSelect) && $sFotoSelect!='' && !(strcmp($sWspaceSelect, SYS_SYS)) ){
$sCompanyLogo = $oPluginRegistry->getCompanyLogo($sFotoSelect);

View File

@@ -40,11 +40,11 @@ class PluginAdapter
{
$this->pluginRegistry = \G::json_decode(\G::json_encode($pluginsSingleton->iterateVisible()));
foreach ($this->pluginRegistry->_aPluginDetails as $nameSpace => $value) {
$this->savePluginOld($nameSpace, $this->pluginRegistry);
$this->savePluginMigrate($nameSpace, $this->pluginRegistry);
}
}
public function savePluginOld($sNamespace, $pluginRegistry)
public function savePluginMigrate($sNamespace, $pluginRegistry)
{
$structurePlugin = $this->getOldPluginStructure($sNamespace, $pluginRegistry);
$plugin = $this->diffFieldTable($structurePlugin);
@@ -126,6 +126,10 @@ class PluginAdapter
$plugin->pluginName == $nameSpace
) {
$structurePlugins[$propertyName][] = $plugin;
} elseif (is_array($plugin) && $key == $nameSpace) {
$structurePlugins[$propertyName][$key] = $plugin;
} elseif (is_bool($plugin) && $key == $nameSpace) {
$structurePlugins[$propertyName][$key] = $plugin;
} elseif (is_string($plugin) && $plugin == $nameSpace) {
$structurePlugins[$propertyName][] = $plugin;
}
@@ -240,7 +244,7 @@ class PluginAdapter
property_exists($oPlugins, $nameAttribute) &&
$plugin->_aPluginDetails[$namePlugin]->enabled
) {
$oPlugins->{$nameAttribute} = array_merge($oPlugins->{$nameAttribute}, $detail);
$oPlugins->{$nameAttribute} = array_merge($oPlugins->{$nameAttribute}, (array)$detail);
}
}
}

View File

@@ -144,7 +144,7 @@ class PluginsRegistry extends Plugins
* get the plugin details, by filename
*
* @param string $sFilename
* @return null
* @return null|PluginDetail
*/
public function getPluginDetails($sFilename)
{