public function setSlug($slug) {
$slug = trim($slug);
if ($slug == '') {
$slug = myString::string2slug($this->getTytul());
} else {
$slug = myString::string2slug($slug);
}
$next_slug = $slug;
$c = new Criteria();
$c->add(RozdzialPeer::SLUG, $next_slug);
$c->add(RozdzialPeer::ROZDZIAL_ID, $this->getRozdzialId(), Criteria::NOT_EQUAL);
$ile = RozdzialPeer::doCount($c);
$unikatowy = ($ile == 0);
$min = 2;
$max = 1000;
while (!$unikatowy) {
$next_slug = $slug . '__' . $min;
$min++;
if ($min > $max + 1) {
die("****** ERROR RozdzialPeer::setSlug({$next_slug})");
};
$c->clear();
$c->add(RozdzialPeer::SLUG, $next_slug);
$c->add(RozdzialPeer::ROZDZIAL_ID, $this->getRozdzialId(), Criteria::NOT_EQUAL);
$ile = RozdzialPeer::doCount($c);
$unikatowy = ($ile == 0);
}
parent::setSlug($next_slug);
}
Listing 22.1. Metoda setSlug() klasy Rozdzial
Rozdział 22. Kontekstowe hiperłącza do edycji i usuwania rekordów