PDA

Zobacz pełną wersję : Odrębna strona główną dla zalogowanych użytkowników.



pawel_bryndza
02-12-2009, 22:03
Witam,
Poszukuje dodadku do Joomli za pomocą którego mógłbym ustawić odrębną stronę główną dla zalogowanych użytkowników.

Jola
02-12-2009, 22:23
Witam,
w module logowania mod_login wybierasz "Skocz po zalogowaniu do" taką pozycję menu, która będzie Twoją stroną główną dla zalogowanych.
W ustawieniach tej pozycji zaznaczasz Poziom dostępu:Rejestrowany

pawel_bryndza
02-12-2009, 23:50
Nie o to mi dokładnie chodzi. Teraz mam dwie pozycje Home w main menu ja bym chciał żeby mi podmieniało linki w pozycji Home, tzn. podmieniało stronę domyślną.

moje
03-12-2009, 14:43
A właśnie, ze o to chodzi.

Na początek zrób jak pisze jolaass, a teraz odpowiedz co ma być na stronie głównej, po zalogowaniu, to raz, czy to ma być różna treść, czy to mają być różne dodatki/moduły, czy to mają być różne komponenty?

pawel_bryndza
03-12-2009, 15:00
Tak zrobiłem.
Chce żeby główna stroną dla gości była strona domyślna joomli a dla zalogowanych użytkowników komponentu jomsocial.
Jeżeli gość kliknie Home w main menu to zobaczy stronę joomli, po zalogowaniu klikając na Home wyświetli mu sie jomsocial.

moje
03-12-2009, 15:02
A co ma być na tej stronie Home dla gości?

pawel_bryndza
03-12-2009, 15:09
Artykuły opis strony zdjęcia.
W jomsocial muszę dodawać wszystko do pliku strony głównej ręcznie (edytować plik).

pawel_bryndza
03-12-2009, 15:19
Znalazłem plik, który jet za to odpowiedzialny:libraries\joomla\application\menu.p hp

moje
03-12-2009, 15:29
Artykuły opis strony zdjęcia. ...
Czyli dokładnie co ma być w Home dla niezarejestrowanych? Nie mówię o stronie Opis/FAQ, Kontakt, O Nas itp., tylko o samej stronie Home.

EDIT:

W/w przez Ciebie plik zostaw w pokoju.

pawel_bryndza
03-12-2009, 19:41
czyli dokladnie

gosc: index.php?com_content&view=frontpage
user: index.php?option=com_community&view=frontpage&Itemid=1

wartosc Home ma byc podmieniana w zaleznosci od poziomu dostepu

ta czesc jest odpowiedzialna za strone domyslna
function __construct($options = array())
{
$this->load(); //load the menu items
foreach ($this->_items as $k => $item)
{
if ($item->home) {
//echo "<pre>".var_dump($item)."</pre>";
$this->_default = $item->id;
}
}
}

wyswietlilem zawartosc obiektu
object(stdClass)#13 (25) {
["id"]=> string(1) "1"
["menutype"]=> string(8) "mainmenu"
["name"]=> string(4) "Home"
["alias"]=> string(4) "home"
["link"]=> string(45) "index.php?option=com_community&view=frontpage"
["type"]=> string(9) "component"
["published"]=> string(1) "1"
["parent"]=> string(1) "0"
["componentid"]=> string(2) "34"
["sublevel"]=> string(1) "0"
["ordering"]=> string(1) "1"
["checked_out"]=> string(1) "0"
["checked_out_time"]=> string(19) "0000-00-00 00:00:00"
["pollid"]=> string(1) "0"
["browserNav"]=> string(1) "0"
["access"]=> string(1) "1"
["utaccess"]=> string(1) "3"
["params"]=> string(69) "page_title= show_page_title=0 pageclass_sfx= menu_image=-1 secure=0 "
["lft"]=> string(1) "0"
["rgt"]=> string(1) "0"
["home"]=> string(1) "1"
["component"]=> string(13) "com_community"
["tree"]=> array(1) {
[0]=> string(1) "1"
}
["route"]=> string(4) "home"
["query"]=> array(2) {
["option"]=> string(13) "com_community"
["view"]=> string(9) "frontpage"
}
}

moge sprawdzic poziom dostepu i podmienic link ["link"]=> string(45) "index.php?option=com_community&view=frontpage", ["access"], ["params"]

co myslicie??

pawel_bryndza
07-12-2009, 14:25
Znalazłem to co chciałem: http://techjoomla.com/view-document-details/1-logged-in-home-page.html

W pluginie ustawiłem link do alternatywnej strony tylko dla zalogowanych natomiast w menu kliknąłem Unpublish Item.

moje
08-12-2009, 19:38
pawel_bryndza, nie chodziło o wstawienia kodu, tylko opisanie jakie to treści mają być na tej stronie.

Dla potomnych zostawię rozwiązanie, które chodziło mi po głowie.

W szablonie kopiujemy pozycję left
<jdoc:include type="modules" name="left" style="xhtml" /> jednej zmienimy nazwę na left1, a drugiej na left2.

<jdoc:include type="modules" name="left1" style="xhtml" />
<jdoc:include type="modules" name="left2" style="xhtml" />

W pliku xml szablonu również kopiujemy linijkę kodu z left i dopisujemy cyfry.

<position>left1</position>
<position>left2</position>


Teraz oddajemy kod* w szablonie dla pozycji left1 i left2, tak, zęby left1 wyświetlało się dla niezalogowanych, a left2 dla zalogowanych.

Tworzymy dwa menu, w których nazwy linków są te same, a tylko odsyłasz w łączu "Strona Głowna" (czy jak sobie ją nazwiemy) wskazuje na inny komponent. Przepisujemy je odpowiednim pozycją.

* taki kod można podejrzeć w dodatkach do ukrywania treści/elementów strony dla określonych grup użytkowników itp. Np. Hider Content (PL) (http://joomla.pl/forum/showthread.php?t=30254), który pozwala również, na wyświetlanie treści tylko dla niezalogowanych osób.

Jeszcze tego rozwiązania nie testowałem ale powinno działać.

pawel_bryndza
08-12-2009, 20:19
Ja uzylem:
do ustawiena dwóch stron głównych http://techjoomla.com/view-document-details/1-logged-in-home-page.html
do ustawienia praw dostępu http://joomlacode.org/gf/project/noixacl/frs/?action=FrsReleaseBrowse&frs_package_id=4334

Jola
08-12-2009, 20:48
Witam,
można zastosować metodę redirect w szablonie strony startowej dla niezalogowanych.
Sprawdzenie czy użytkownik jest zalogowany,
jeśli nie to wczytanie szablonu,
jeśli tak - to przeniesienie pod wybrany adres (w podanym przykładzie do komponentu Sobi2).
Strona startowa ustawiona standardowo w Joomla:Articles >> Na startowej

W pliku components/com_content/views/frontpage/tmpl/default.php

defined('_JEXEC') or die('Restricted access');
if ($my->id){
$mainframe->redirect( 'index.php?option=com_sobi2&Itemid=37' );
}
else {
......//tutaj zawartość szablonu
.......
......
<?php
}
?>
Tak zmieniony szablon zapisać w odpowiednim miejscu katalogu html swojego szablonu - zgodnie z techniką nadpisywania szablonów.