Esempio n. 1
0
 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;
 }
Esempio n. 2
0
 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];
 }