簡體   English   中英

根據用戶組重定向到登錄頁面或主頁索引

[英]Redirecting to landing page or home page index based on User Group

我嘗試使用Googling並使用forums.joomla.org,因為我想確保自己不會在這里浪費時間,但是很遺憾,我沒有運氣。 這是我的問題:

對於我的網站,我既有登錄頁面,該登錄頁面僅具有免費注冊以成為會員的鏈接,還有一個適當的索引頁面,用戶注冊后即可訪問。 我將登錄頁面設置為kanadax.ca/,因為我希望人們在首次訪問該頁面時就可以將其登錄。 我的真實索引頁面位於kanadax.ca/index.php。 但是,現在,當用戶已經登錄並單擊網站徽標轉到根域時,他們將收到“找不到頁面”錯誤消息。

因此,我想做的是:-如果它是未注冊的訪客用戶,則將徽標重定向到位於kanadax.ca/的登錄頁面。 -用戶注冊后,無論何時訪問kanadax.ca/index.php,都應將其重定向到example.com/index.php。

基本上,我正在尋找基於用戶組的條件重定向。 有任何想法嗎?

現在顯然我實際上更喜歡example.com/ url作為主要索引頁面,而不是吸引力不那么的example.com/index.php,但這是我修復重定向之后的第二步。 我相信可以使用.htaccess來完成,但是對於來賓和注冊用戶而言,如果使用更復雜的登錄頁面-索引頁面結構,我認為可能會有些困難。 但是,如果您在此領域也有任何反饋,請務必提供反饋。

我應該提到我對php不太滿意,但是如果您想一步一步給我,我很樂於嘗試任何建議。 畢竟,我做這個網站的首要目標是學習!

謝謝堆!

附言:如有必要,我很樂意提供一個測試帳戶,以便您可以自行使用該網站。

**編輯:

嘿@Adam,我非常感謝您的投入和逐步的幫助,這正是我所需要的。 現在,我將第一部分放在index.php的開頭,但是對於后一部分,我不確定在哪里放置它。 當我在index.php中搜索與徽標相關的任何內容時,會出現兩個單獨的部分:

// Logo file or site title param
if ($this->params->get('logoFile'))
{
  $logo = '<img src="'. JURI::root() . $this->params->get('logoFile') .'" alt="'. $sitename .'" />';
}
elseif ($this->params->get('sitetitle'))
{
  $logo = '<span class="site-title" title="'. $sitename .'">'. htmlspecialchars($this->params->get('sitetitle')) .'</span>';
}
else
{
  $logo = '<span class="site-title" title="'. $sitename .'">'. $sitename .'</span>';
}

<div class="header">
        <div class="header-inner clearfix">
          <a class="brand pull-left" href="http://www.kanadax.ca/index.php/anasayfa">
            <?php echo $logo;?> <?php if ($this->params->get('sitedescription')) { echo '<div class="site-description">'. htmlspecialchars($this->params->get('sitedescription')) .'</div>'; } ?>
          </a>
          <div class="header-search pull-right">
            <jdoc:include type="modules" name="position-0" style="none" />
          </div>
        </div>
      </div>

第二部分在標題下。 您認為這兩個都是正確的部分嗎? 如果是這樣,我應該刪除其中的內容並替換為您的建議,還是保留它?

嘗試通過以下方式修改模板index.php文件:

  1. 將此添加到代碼的開頭

     $user = JFactory::getUser(); if(JFactory::getUser()->id) { //link to page for registered users $link = JRoute::_('index.php?option=com_content&view=article&id=3'); }else{ //link to page for default users $link = JRoute::_('index.php?option=com_content&view=article&id=1'); } 
  2. 在徽標應顯示的地方

     <a href="<?php echo $link; ?>"> <img src="images/path_to_image_name"/> </a> 

就是這樣! 當您較熟悉Joomla和PHP時,可以創建一個自定義模塊,而不是直接注入模板。

如果您不想黑客攻擊任何東西,也可以嘗試將一些重定向代碼粘貼到調試或其他位置的自定義html模塊中,但使用Advanced Module Manager僅將其加載給guest虛擬機或僅將其加載給登錄的用戶。 您可以使用AMM進行各種技巧來加載和不加載大量的參數。

亞當的答案比較干凈,但是有些人真的不願意破解他們的模板(或者,如果它是商業模板,那么找到合適的位置放入代碼可能真的很麻煩)。

您可以在這里閱讀有關AMM的更多信息: http : //www.nonumber.nl

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM