/** * @param String $slug * @param String|null $repositoryId * @return String mixed */ protected function uniquifySlug($slug, $repositoryId = null) { if ($repositoryId != null) { $res = dibi::query("SELECT [slug],[uuid] FROM [ajxp_repo] WHERE [uuid] != %s AND [slug] LIKE '" . $slug . "%'", $repositoryId); } else { $res = dibi::query("SELECT [slug],[uuid] FROM [ajxp_repo] WHERE [slug] LIKE '" . $slug . "%'"); } $existingSlugs = $res->fetchPairs(); $configSlugs = ConfService::reservedSlugsFromConfig(); if (in_array($slug, $configSlugs)) { $existingSlugs[$slug] = $slug; } if (!count($existingSlugs)) { return $slug; } $index = 1; $base = $slug; $slug = $base . "-" . $index; while (isset($existingSlugs[$slug])) { $index++; $slug = $base . "-" . $index; } return $slug; }