'; if ($debug) echo 'sh$board = '.$board.'
'; if ($debug) echo 'sh$topic = '.$topic.'
'; global $shCustomTitleTag, $shCustomDescriptionTag, $shCustomKeywordsTag, $shCustomLangTag, $shCustomRobotsTag; $shCustomLangTag = $shLangIso; // V 1.2.4.t bug #127 if (!function_exists('shGetSMFBoardName')) { function shGetSMFBoardName($board, $shLangIso, $shLangName, $option) { global $sefConfig, $database; $title = ''; if (!empty($board)) { if(sh404SEF_SMF_PARAMS_SIMPLE_URLS) { $title .= ' board ' . $sefConfig->replacement. $board; } else { if(strpos($board,'.') !== false ) { $page = substr($board, strpos($board,'.')+1); $board = substr($board, 0, strpos($board,'.')); } $query = 'SELECT name FROM '.sh404SEF_SMF_PARAMS_TABLE_PREFIX.'boards where ID_BOARD = '.$board.';'; $database->setQuery( $query ); if (!shTranslateUrl($option, $shLangName)) $database->loadObject($result, false); else $database->loadObject($result); if (!empty($result)) { if(isset($page) && ($page > 0)) { $page = ($page / $sefConfig->shSMFItemsPerPage) + 1; } $title .= ($sefConfig->shInsertSMFBoardId ? $board.' ' : '').$result->name. (empty($page)? '':' '.$page); } } } return $title; } } if (!function_exists('shGetSMFTopicName')) { function shGetSMFTopicName($topic, $shLangIso, $shLangName, $option){ global $sefConfig, $database; $title = array(); if (!empty($topic)) { if (strpos( $topic, 'cur_topic_id') !== false ) return ''; if(sh404SEF_SMF_PARAMS_SIMPLE_URLS) { $title[] = ' topic ' . $sefConfig->replacement. $topic; } else { // Split up the topic id and the starting value @list ($value, $start) = explode('.', $topic); if (strpos($start, 'msg') !== false) return ''; if(!isset($start)) $start = '0'; if(!is_numeric($value)) { $title[] = $value . '.' . $start; } else { $query = ' SELECT mf.subject, b.name FROM ('.sh404SEF_SMF_PARAMS_TABLE_PREFIX.'topics AS t, ' .sh404SEF_SMF_PARAMS_TABLE_PREFIX.'messages AS mf, ' .sh404SEF_SMF_PARAMS_TABLE_PREFIX.'boards AS b) WHERE t.ID_TOPIC = '.$value. ' AND mf.ID_MSG = t.ID_FIRST_MSG AND b.ID_BOARD = t.ID_BOARD'; $database->setQuery( $query ); if (!shTranslateUrl($option, $shLangName)) $database->loadObject($result, false); else $database->loadObject($result); if (!empty($result)) { $title[] = $result->name; $title[] = ($sefConfig->shInsertSMFTopicId ? $value.' ' : '').$result->subject; } } } } return $title; } } if (!function_exists('shGetSMFTopicDesc')) { function shGetSMFTopicDesc($topic, $shLangIso, $shLangName, $option) { global $sefConfig, $database; $desc = ''; if (!empty($topic)) { // Split up the topic id and the starting value @list ($value, $start) = explode('.', $topic); if(!isset($start)) $start = '0'; if(!is_numeric($value)) { $desc = $value . '.' . $start; } else { $query = ' SELECT mf.body FROM ('.sh404SEF_SMF_PARAMS_TABLE_PREFIX.'topics AS t, ' .sh404SEF_SMF_PARAMS_TABLE_PREFIX.'messages AS mf, ' .sh404SEF_SMF_PARAMS_TABLE_PREFIX.'boards AS b) WHERE t.ID_TOPIC = '.$value. ' AND mf.ID_MSG = t.ID_FIRST_MSG AND b.ID_BOARD = t.ID_BOARD'; $database->setQuery( $query ); if (!shTranslateUrl($option, $shLangName)) $database->loadObject($result, false); else $database->loadObject($result); if (!empty($result)) { $desc = $result->body; } } } return $desc; } } $shSMFName = shGetComponentPrefix($option); $shSMFName = empty($shSMFName) ? getMenuTitle($option, null, $Itemid, null, $shLangName ) : $shSMFName; $shSMFName = (empty($shSMFName) || $shSMFName == '/') ? 'SMF-Forum':$shSMFName; // V 1.2.4.t if (!empty($action)) { $tmp = explode(';', $action); if ($debug) var_dump($tmp); if (count($tmp) > 1) { $mainAction = $tmp[0]; $tmp = str_replace(";","&",str_replace(",","=",$action)); parse_str($tmp); // extract other variables if ($debug) echo '$tmp = '.$tmp.'
'; } else $mainAction = $action; } else $mainAction = ''; if ($debug) echo '$mainAction = '.$mainAction.'
'; switch ($mainAction) { case '': // no action $boardName = shGetSMFBoardName($board, $shLangIso, $shLangName, $option); $topicName = shGetSMFTopicName($topic, $shLangIso, $shLangName, $option); if ($sefConfig->shInsertSMFName) $title[] = $shSMFName; if (!empty($topicName)) { if (empty($title)) $title = $topicName; else $title = array_merge($title, $topicName); } elseif (!empty($boardName)) { $title[] = $boardName; } if (empty($title)) { $title[] = $shSMFName; } break; case 'search2': if ($sefConfig->shInsertSMFName) $title[] = $shSMFName; $title[] = $sh_LANG[$shLangIso]['_SH404SEF_SMF_ACTION_search2']; break; } $title = array_reverse( $title); $shCustomTitleTag = ltrim(implode( ' | ', $title), '/ | '); // description : if (!empty($topic)) { $shCustomDescriptionTag = shGetSMFTopicDesc( $topic, $shLangIso, $shLangName, $option); } // set robots tag if (!empty($context['robot_no_index'])) $shCustomRobotsTag = 'follow, noindex'; ?>