* @author Dennis Eichhorn * @copyright 2013 Dennis Eichhorn * @license OMS License 1.0 * @version 1.0.0 * @link http://orange-management.com */ namespace phpOMS\Module; use phpOMS\DataStorage\Database\DatabaseType; use phpOMS\DataStorage\Database\DatabasePool; /** * Installer Abstract class. * * @category Framework * @package phpOMS\Module * @author OMS Development Team * @author Dennis Eichhorn * @license OMS License 1.0 * @link http://orange-management.com * @since 1.0.0 */ class ActivateAbstract { /** * Deactivate module. * * @param Pool $dbPool Database instance * @param InfoManager $info Module info * * @return void * * @since 1.0.0 * @author Dennis Eichhorn */ public static function activate(DatabasePool $dbPool, InfoManager $info) { self::activateRoutes(ROOT_PATH . '/Web/Routes.php', ROOT_PATH . '/Modules/' . $info->getDirectory() . '/Admin/Routes/http.php'); self::activateInDatabase($dbPool, $info); } /** * Install routes. * * @param string $destRoutePath Destination route path * @param string $srcRoutePath Source route path * * @return void * * @since 1.0.0 * @author Dennis Eichhorn */ private static function activateRoutes(string $destRoutePath, string $srcRoutePath) { // todo: remove route } /** * Deactivate module in database. * * @param Pool $dbPool Database instance * @param InfoManager $info Module info * * @return void * * @since 1.0.0 * @author Dennis Eichhorn */ public static function activateInDatabase(DatabasePool $dbPool, InfoManager $info) { switch ($dbPool->get()->getType()) { case DatabaseType::MYSQL: $dbPool->get()->con->beginTransaction(); $sth = $dbPool->get()->con->prepare( 'UPDATE `' . $dbPool->get()->prefix . 'module` SET `module_active` = :active WHERE `module_id` = :internal;' ); $sth->bindValue(':internal', $info->getInternalName(), \PDO::PARAM_INT); $sth->bindValue(':active', 1, \PDO::PARAM_INT); $sth->execute(); $dbPool->get()->con->commit(); break; } } }