/** * Checks if value is unique * * @static * @access public * @param string $mValue * @param string $sDontCheckThisID * @param string $sTableClass * @param string $sColumn * @param string $sCommuniquePattern * @param string $sAdditionalWhere * @return boolean|string * @since 1.0.0-alpha * @version 1.0.0-alpha */ public static function unique($mValue, $sDontCheckThisID, $sTableClass, $sColumn, $sCommuniquePattern = NULL, $sAdditionalWhere = '') { // array if (is_array($mValue)) { $mParam = []; foreach ($mValue as $v) { if ($v != "" && !array_search($v, $mParam)) { $mParam[] = $v; } } if (count($mParam) == 0) { return TRUE; } $sOp = "IN (:param)"; // single value } else { if ($mValue == "") { return TRUE; } $mParam = $mValue; $sOp = "= :param"; } # build query $queryBuilder = DB::getEntityManager()->createQueryBuilder(); $query = $queryBuilder->select('t.id'); $query->from($sTableClass, 't'); $query->where("t." . $sColumn . " " . $sOp); $query->setParameter('param', $mParam); if ($sDontCheckThisID !== NULL) { $query->andWhere('t.id <> :selfid'); $query->setParameter('selfid', $sDontCheckThisID); } if ($sAdditionalWhere !== '') { $query->andWhere($sAdditionalWhere); } $queryResult = $query->getQuery()->execute(); // Checking result(s) if (count($queryResult) > 0) { if (empty($sCommuniquePattern)) { if (is_array($mValue)) { return __('One of the given values already exists in the database.'); } else { return __('This value already exists in the database.'); } } else { return __($sCommuniquePattern); } } return TRUE; }
/** * Update database. * * @static * @access public * @return View * @since 1.2.0-dev * @version 1.2.0-dev */ private static function makeUpdateNoExec() { $entityManager = DB::getEntityManager(); $tool = new ORM\Tools\SchemaTool($entityManager); $classes = []; // get list of Model classes foreach (DB::getModelsNames() as $sClass) { $classes[] = $entityManager->getClassMetadata($sClass); } // make schemas update try { $sql = $tool->getUpdateSchemaSql($classes); /* @var $sql array */ $tool->updateSchema($classes); $output = View::factory('db_update/backend/update_output')->bind('aSQL', $sql)->renderAndMinify(); } catch (\Exception $e) { $output = __('Error') . ': ' . $e->getMessage(); } // return output return $output; }
/** * Render toolbar. * * @access public * @return string * @since 1.0.0-dev, 2015-06-08 * @version 1.1.0-dev */ public function render() { $oSqlLogger = DB::getEntityManager()->getConnection()->getConfiguration()->getSQLLogger(); //* @var $oSqlLogger \Doctrine\DBAL\Logging\DebugStack */ $aRoutesList = Router::getRoutes(); $aModules = Router::getModules(); $aBenchmarkMarks = Benchmark::getAllMarks(); $aCustoms = static::getCustoms(); $cronJobs = CronJobsHelper::getCronJobs(); return View::factory('dev_toolbar/toolbar')->bind('oSqlLogger', $oSqlLogger)->bind('aRoutesList', $aRoutesList)->bind('aModules', $aModules)->bind('aCustoms', $aCustoms)->bind('aBenchmarkMarks', $aBenchmarkMarks)->bind('cronJobs', $cronJobs)->render(); }