true, self::CONFIG_TIMESTAMPS => false, ) + parent::getConfiguration(); } public function generatePHID() { return PhabricatorPHID::generateNewPHID( PhabricatorPHIDConstants::PHID_TYPE_WIKI); } public static function getSlugURI($slug) { if ($slug == '/') { return '/w/'; } else { return '/w/'.$slug; } } public static function normalizeSlug($slug) { // TODO: We need to deal with unicode at some point, this is just a very // basic proof-of-concept implementation. $slug = strtolower($slug); $slug = preg_replace('@/+@', '/', $slug); $slug = trim($slug, '/'); $slug = preg_replace('@[^a-z0-9/]+@', '_', $slug); $slug = trim($slug, '_'); return $slug.'/'; } public function setSlug($slug) { $this->slug = self::normalizeSlug($slug); $this->depth = substr_count($this->slug, '/'); return $this; } }