示例#1
0
 public function test_str_to_bool()
 {
     $this->assertTrue(util::str_to_bool('true'));
     $this->assertTrue(util::str_to_bool('yes'));
     $this->assertTrue(util::str_to_bool('y'));
     $this->assertTrue(util::str_to_bool('oui'));
     $this->assertTrue(util::str_to_bool('vrai'));
     $this->assertFalse(util::str_to_bool('false'));
     $this->assertFalse(util::str_to_bool('no'));
     $this->assertFalse(util::str_to_bool('n'));
     $this->assertFalse(util::str_to_bool('non'));
     $this->assertFalse(util::str_to_bool('faux'));
     $this->assertFalse(util::str_to_bool('test', false));
 }
示例#2
0
 public function getUri($title, $id = 0, $contenttypeslug = "", $fulluri = true, $allowempty = true)
 {
     $contenttype = $this->getContentType($contenttypeslug);
     $tablename = $this->getTablename($contenttype['slug']);
     $id = intval($id);
     $fulluri = \utilphp\util::str_to_bool($fulluri);
     $slug = makeSlug($title);
     // don't allow strictly numeric slugs.
     if (is_numeric($slug)) {
         $slug = $contenttype['singular_slug'] . "-" . $slug;
     }
     // Only add 'entry/' if $full is requested.
     if ($fulluri) {
         $prefix = "/" . $contenttype['singular_slug'] . "/";
     } else {
         $prefix = "";
     }
     $query = sprintf("SELECT id from %s WHERE slug=? and id!=?", $tablename);
     $res = $this->app['db']->executeQuery($query, array($slug, $id), array(\PDO::PARAM_STR, \PDO::PARAM_INT))->fetch();
     if (!$res) {
         $uri = $prefix . $slug;
     } else {
         for ($i = 1; $i <= 10; $i++) {
             $newslug = $slug . '-' . $i;
             $res = $this->app['db']->executeQuery($query, array($newslug, $id), array(\PDO::PARAM_STR, \PDO::PARAM_INT))->fetch();
             if (!$res) {
                 $uri = $prefix . $newslug;
                 break;
             }
         }
         // otherwise, just get a random slug.
         if (empty($uri)) {
             $slug = trimText($slug, 32, false, false) . "-" . $this->app['randomgenerator']->generateString(6, 'abcdefghijklmnopqrstuvwxyz01234567890');
             $uri = $prefix . $slug;
         }
     }
     // When storing, we should never have an empty slug/URI. If we can't make a nice one, set it to 'slug-XXXX'.
     if (!$allowempty && empty($uri)) {
         $uri = 'slug-' . $this->app['randomgenerator']->generateString(6, 'abcdefghijklmnopqrstuvwxyz01234567890');
     }
     return $uri;
 }