2012-01-31 2 views
0

Я использую CMS (elgg: http://www.elgg.org), работающий с представлением, эквивалентный теме/шаблону. Чтобы изменить тему я должен положить внутри URL термин вид = MyTheme, как:Как добавить пользовательское значение к текущему адресу

http://www.mydomain.com/index.php?view=mytheme

Если я не добавить просмотра = MyTheme, Elgg выбрать вид по умолчанию

Так? , мне нужна помощь, для конкретных пользователей я хочу перенаправить нас к пользовательскому представлению и не вижу вид по умолчанию.

Я делаю это в моем заголовке:

<?php 

    if ((string) $_SESSION['user']->type === '2') { 
    // ??? 
    } else { 
    echo 'do nothing'; 
    } 

Я не знаю, как взять текущий URL, и простой вид = MyTheme в конце добавить?

Когда пользователь имеет тип «2», и увидеть URL-адрес http://www.mydomain.com/index.php он должен быть вперед>http://www.mydomain.com/index.php?view=mytheme

Спасибо.

+2

Что это за CMS? Имеет ли он специальные функции для перенаправления? –

+1

Это elgg. Я считаю, что это CMS для социальных сетей. Я не знаю о каком-то конкретном переадресации, поскольку мой единственный опыт с ним - примерно четыре года назад. – Tim

+0

Извините, я редактирую свое сообщение, forgoit для точного его ELGG (1.7.14), и не знаю, есть ли у него специальные функции для перенаправления – Tomaw

ответ

1

Это своего рода грязный, но вы можете:

// Stole this from here: http://webcheatsheet.com/php/get_current_page_url.php 
function curPageURL() { 
    $pageURL = 'http'; 
    if ($_SERVER["HTTPS"] == "on") {$pageURL .= "s";} 
    $pageURL .= "://"; 
    if ($_SERVER["SERVER_PORT"] != "80") { 
     $pageURL .= $_SERVER["SERVER_NAME"].":".$_SERVER["SERVER_PORT"].$_SERVER["REQUEST_URI"]; 
    } else { 
     $pageURL .= $_SERVER["SERVER_NAME"].$_SERVER["REQUEST_URI"]; 
    } 
    return $pageURL; 
} 

$useCustomView = ((string)$_SESSION['user']->type) === '2'; 
$usingCustomView = isset($_GET["view"]); 
// Redirect to custom view if user type is 2 and view is not already set 
if ($useCustomView && !$usingCustomView) { 
     $newurl = curPageURL() . '?view=mytheme'; 
     header("Location: $newurl"); 
} 

Это самый простой пример, я могу думать, чтобы сделать то, что вы просите. Это не будет делать эту работу, если вы хотите, чтобы URL-адрес поддерживал более длинные строки запросов, поэтому для этого нужна определенная работа.

+0

Спасибо за ваш ответ Codemonkey, Есть что-то в: if ((string) $ _SESSION ['user'] -> type === '2' && ! Isset ($ _ GET ["view"]) { $ newurl = curPageURL(). '? View = mytheme'; header (" Расположение: $ NEWURL ");} это Elgg не кажется, как ... Я пишу это: если ({" $ _SESSION [ 'пользователя'] -> тип "} ===«2 ') { $ newurl = curPageURL().'? View = mytheme '; header ("Местоположение: $ newurl"); } и это работа, но это было для каждого запроса? View = mytheme ... кажется, это внутри! Isset ... – Tomaw

+0

Попробуйте обновить, это более чисто. Ни 'isset', ни' $ _GET' не имеет ничего общего с elgg, так что это не проблема. – Hubro

+0

Ты не обезьяна, а гениальная;) Спасибо Codemonkey – Tomaw

Смежные вопросы