Listing 22.1. Metoda setSlug() klasy Rozdzial
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);
}