コード例 #1
0
 /**
  * @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;
 }