public static function getAlias($title, $type = 'post', $id = '0') { $items = explode(' ', $title); foreach ($items as $index => $item) { if (strpos($item, '*') !== false) { $items[$index] = 'censored'; } } $title = implode($items, ' '); $alias = DiscussHelper::permalinkSlug($title); // Make sure no such alias exists. $i = 1; while (DiscussRouter::_isAliasExists($alias, $type, $id)) { $alias = DiscussHelper::permalinkSlug($title) . '-' . $i; $i++; } return $alias; }
public static function getPostAlias($id, $external = false) { static $loaded = array(); if (!isset($loaded[$id])) { $config = DiscussHelper::getConfig(); $db = DiscussHelper::getDBO(); $data = DiscussHelper::getTable('Posts'); $data->load($id); // Empty alias needs to be regenerated. if (empty($data->alias)) { $data->alias = JFilterOutput::stringURLSafe($data->title); $i = 1; while (DiscussRouter::_isAliasExists($data->alias, 'post', $id)) { $data->alias = JFilterOutput::stringURLSafe($data->title) . '-' . $i; $i++; } $query = 'UPDATE #__discuss_posts SET alias=' . $db->Quote($data->alias) . ' ' . 'WHERE ' . $db->nameQuote('id') . '=' . $db->Quote($id); $db->setQuery($query); $db->Query(); } $loaded[$id] = $data->alias; } if ($external) { $uri = JURI::getInstance(); return $uri->toString(array('scheme', 'host', 'port')) . '/' . $loaded[$id]; } return $loaded[$id]; }