Uwaga! Od sierpnia 2017 forum jest w trybie tylko do odczytu.

Dlaczego? Dlatego, że społeczność TYPO3 przeniosła się na slack'a i stackoverflow:
  • Przeczytaj artykuł wprowadzający do slacka, w którym dowiesz gdzie i jak się zarejestrować.
  • Jeżeli masz pytania odnośnie Polskiej Społeczności TYPO3 zapraszamy na kanał slack'a #community-pl. Rozmawiamy tam w języku polskim.
  • Pytania dotyczące samego TYPO3 zadawaj po angielsku na stackoverflow oznaczając je tagiem "typo3". Następnie posługując się linkiem do tego pytania postaraj się zachęcić ludzi z kanału slack'a #typo3-cms lub bardziej pasujących kanałów tematycznych, żeby na nie odpowiedzieli.
  • Możesz też oczywiście zadawać pytania na slacku bez zakładania wątków na stackoverflow, ale wówczas wiedza ta nie jest indeksowana przez googla i część osób nie będzie chciała Ci z tego powodu pomagać.
  • Dla części osób dzielących się wiedzą ważne jest też budowanie reputacji na stackoverflow. Jest to kolejny powód dla którego powinieneś zadawać pytania na stackoverflow by zwiększyć swoje szanse na znalezienie odpowiedzi. Pamiętaj, żeby oceniać odpowiedzi!
Tematy bez nowych odpowiedzi

Rozne submenu z rozna zawartoscia w zaleznosci od tego jaki uzytkownik sie zalogowal na stronie.


Autor Wiadomość
Napisane: 04.10.2012 [09:24]
mwolanski
Twórca tematu
zarejestrowany: 23.11.2011
Posty: 88
Witam,

Jestem w trakcie budowania nowej strony. Po wejsciu na nia, powinien otwierac okno logowania, najlepiej w lightboxie bez tla oraz tak, aby dostep do pozostalych elementow strony nie byl utrudniony (ustawienia lightboxa w cssie zrobie, ale szukam modulu ktory pozwoli mi na umieszczenie okna logowania w lightboxie - ktory dziala!). Ciasteczka maja byc przechowywane w nieskoczonosc, tak aby kazdy zalogowany uzytkownik byl zapamietany za kazdym razem jak wchodzi na strone.
Bedzie 5 grup uzytkownikow, kazdy bedzie mial dostep do innej zawartosci. Zawartosc ta to submenu z podstronami ktore beda roznily sie zawartoscia w zaleznosci od danej grupy.

Po zalogowaniu uzytkownik jest przekieorwany na strone poczatkowa do ktorej dostal dostep po zalogowaniu sie.

W jaki sposob to rozwiazac?

Myslalem o stworzeniu roznych podstron i dac uprawnienia roznym grupom uzytkownikow.
Kazda grupa bedzie miala wlasna strone z podstronami, i te podstrony beda wyswietlane jako submenu po zalogowaniu - w jaki sposob zrobic to w TS aby wyswietlal rozne submenu w zaleznosci od uzytkownika ktory sie zalogowal?

Dziekuje za pomoc.
Napisane: 04.10.2012 [10:04]
mwolanski
Twórca tematu
zarejestrowany: 23.11.2011
Posty: 88
Poniewaz bede mial zawsze stala liczbe grup, a jest ich 5, to postanowilem stworzyc dla kazdej ze stron na ktora zostanie przekierowany uzytkownik osobne submenu:

TYPOSCRIPT
[PIDinRootline = 56,57,59,60,61]
 
###################################
###   SUBMENU - ÅF              ###
###################################
 
lib.submenu = HMENU
lib.submenu.special = list
lib.submenu.special.value = 57,59,60,61
lib.submenu {
  1 = TMENU
  1 {
    ### Remove 'onblur' attribute from links:
    noBlur = 1
    ### Wrap the resulting menu in an unordered list:
    wrap = <ul>|</ul>
    NO {
      ### Do not link whatever output we generate here:
      doNotLinkIt = 1
      ### Wrap each menu item and its children in a list item:
      wrapItemAndSub = <li>|</li>
      ### Use a CASE cObject to build the menu links:
      stdWrap.cObject = CASE
      stdWrap.cObject {
        ### Base the rendering on the value of the 'doktype' field in the page record; '3' is the External URL page type:
        key.field = uid
        ### The default rendering:
        default = HTML
        default {
          value {
            ### Set the link text to the value of the title field in the page record:
            field = title
            typolink {
              ### Set the parameter of the link to the uid field in the page record:
              parameter.data = field:uid
            }
          }
        }
        ### The special rendering for the External URL page type:
        ### Copy the default object into .13:
        13 < .default
        13 {
          value {
            typolink {
              parameter.data >
              #parameter.data = about-us/contact-us.html&tx_mkanydropdownmenu_pi1=Head office Kosta
              parameter.dataWrap = 31
              additionalParams.dataWrap = &tx_mkanydropdownmenu_pi1=Head office Kosta              
            }
          }
        }
        17 < .default
        17 {
          value {
            typolink {
              ### Add a class to the link
              ATagParams = class="rzcontent cboxElement"
              ATagParams.insertData = 1
              ATagParams.if.isFalse < .parameter.override              
              #ATagParams = class="rzcolorbox cboxElement"
              parameter {
                ### Unset the value of .data:
                data >
                ### Set the parameter of the link to the value of the url field and prepend it with "http://":
                dataWrap = index.php?id=17&ce=43
              }
            }
          }
        }
      }      
    }
    ACT = 1
    ACT.wrapItemAndSub = <li>|</li>  
    ACT.ATagParams = class="meny_a"
  }
} 
[end]
 
 
 
[PIDinRootline = 62,63,64,65,66]
 
###################################
###   SUBMENU - ÅF              ###
###################################
 
lib.submenu = HMENU
lib.submenu.special = list
lib.submenu.special.value = 63,64,65,66
lib.submenu {
  .......
  Reszta taka sama jak wyzej
  .......
} 
[end]


Czyli gdy uzytkownik z grupy 1 zostanie przekierowany na strone id=56 to zobaczy swoje wlasne dedykowane menu z wybranymi przeze mnie podstronami (submenu).

Wszytko by bylo super, gdyby nie to, ze submenu jest widoczne tylko dla strony na ktora zostanie przekierowany uzytkownik oraz przegladajac sama zawartosc podstron, ale co w przypadku jak uzytkownik wybierze inny dzial w glownym menu? wtedy dla tego "innego" page ID nie mam zadeklarowanego submenu i nie bedzie ono widoczne.

W jaki sposob moge to przerobic, aby submenu nie wyswietlalo sie biorac pod uwage warunek - "gdzie" a warunek "dla kogo" icon_smile.gif

Wie ktos?

[Ten temat był edytowany 1 razy. Ostatnio 04.10.2012 o 10:06.]
Napisane: 04.10.2012 [10:53]
mwolanski
Twórca tematu
zarejestrowany: 23.11.2011
Posty: 88
Wiec w moim przypadku powinno wystarczyc zmiane na nastepujacy warunek:


[usergroup = group1-uid, group2-uid, ...]


Napisane: 05.10.2012 [14:37]
mwolanski
Twórca tematu
zarejestrowany: 23.11.2011
Posty: 88
Moj temat rozwiazuje sie jak zwykle sam, poniewaz mi bardzo pomaga ten moment gdy probojac wyjasnic swoj problem opisuje go na forum, a pozniej sam wpadam na sensowne rozwiazanie i je wdrazam.


Wiec moj TS dla menu pokazujacego sie po zalogowaniu wyglada nastepujaco:

TYPOSCRIPT
[usergroup = 4]
 
lib.submenu = HMENU
lib.submenu.special = list
lib.submenu.special.value = 68,63,64,65,42,51
lib.submenu {
  1 = TMENU
  1 {
    noBlur = 1
    wrap = <ul>|</ul>
    NO {
      doNotLinkIt = 1
      wrapItemAndSub = <li>|</li>
      stdWrap.cObject = CASE
      stdWrap.cObject {
        key.field = uid
        default = HTML
        default {
          value {
            field = title
            typolink {
              parameter.data = field:uid
            }
          }
        }
      }
    }
    ACT = 1
    ACT.wrapItemAndSub = <li>|</li>  
    ACT.ATagParams = class="meny_a"
  }
} 
[end]


Mam 9 grup i kazda z grup widzi inne strony, czesc rzeczy widza wspolnych.
Kazda z podstron jest rowniez zablokowana dla poszczegolnej grupy, a wspolne strony maja przypisane wszystkie dostepne grupy itp itd. Kazda z grup ma ustawiona inna strone ktora jest widoczna jako przekierowanie po zalogowaniu.

Kwestie pojawiajacego sie okna logowania w stylu lightbox - rozwiazalem banalnie prosto.

Rozszerzenie: ts_dialogin
bazujace na zwyklym felogin oraz t3 jquery - sprawdza sie wysmienicie.

Link do strony: http://www.newwavesports.se/index.php?id=34

mozna sprobowac sie zalogowac jako:
login: user
pass: user


Moje nastepujace pytania:

- Jak ustawic maksymalny czas zycia ciasteczek aby uzytkownik nie byl wylogowywany wcale?
- Jak ustawic strone do przekierowania po wylogowaniu sie uzytkownika. - np. tak zeby po wylogowaniu trafial na strone startowa (aktualnie ogladajac strony zastrzezone - przy wylogowaniu sie jest pusto)

Dziekuje za pomoc! - o ile sam sobie wczesniej nie pomoge icon_razz.gif


[Ten temat był edytowany 1 razy. Ostatnio 05.10.2012 o 14:42.]
Napisane: 15.10.2012 [12:11]
mwolanski
Twórca tematu
zarejestrowany: 23.11.2011
Posty: 88
Witam,

Widze ze nikt nie jest w stanie mi chyba udzielic odpowiedzi na moje pytanie.

Znalazlem taka funkcje w obecnym JS od EXT: dialogin

JAVASCRIPT
/*
	* Send's Ajax Request to Typo3-Backend for Logout
	*
	* This Method can be used to Logout the user via Ajax Request.
	* It will Reload the current Page after that.
	* You can call this Method yourself if you
	* don't want to use the Logout-Button included.
	*
	*/
	try_logout: function()
	{
		post_data = {
			logintype: 'logout'
		};
 
		jQuery.post(location.href,post_data,function(data,textStatus,xmlHttpRequest) {
			location.reload();
		});
},


Zakladam, ze wystarczylo by przerobic funkcje location.reload na cos w tym stylu:

JAVASCRIPT
jQuery.post(location.href,post_data,function Redirect(url) {
			location.href = url;
		});


Poniewaz nie mam zielonego pojecia odnosnie JS i jego funkcjonalnosci, nie wiem w jaki sposob mam wskazac poprawny Redirect (url) np.

Redirect ("http://www.typo3.pl"icon_wink.gif;

Mam to zapisac w formie wywolania skrypu bezposrednio ze strony z ktorej uzytwkownik sie wyloguje ?

np.

JAVASCRIPT
<script type="text/javascript">
var Redirect ("http://www.typo3.pl&quot<img src="typo3conf/ext/mm_forum//res/smilies/icon_wink.gif" alt="icon_wink.gif" />;
</script>


ale to nie dziala niestety...

Mysle, ze jestem juz blisko - prosze o pomoc
Napisane: 17.10.2012 [08:56]
mwolanski
Twórca tematu
zarejestrowany: 23.11.2011
Posty: 88
Kolejny raz znalazlem rozwiazanie - tym razem pomogl mi bezposrednio tworca dialogin z trisinus.de


Rozwiazanie bylo bardziej banalne niz podejrzewalem:

JAVASCRIPT
try_logout: function()
	{
		post_data = {
			logintype: 'logout'
		};
 
		jQuery.post(location.href,post_data,function(data,textStatus,xmlHttpRequest) {
			location.href = '/index.php?id=34';
		});
	},


Wystarczylo zmienic location na href i przekierowanie odrazu zaczelo dzialac.

location.href = '/index.php?id=34';

Dalbym sobie reke uciac ze probowalem tego, ale byc moze wpisywalem to z jakims bledem dlatego stwierdzilem ze pewnie nie dziala icon_smile.gif

Dostalem rowniez wskazowke ze moglem ta funkcja sterowac bezposrednio ze strony (bez koniecznosci zmiany pliku js)

JAVASCRIPT
<script src="typo3conf/ext/ts_dialogin/ts_dialogin.js?1350397856" type="text/javascript"></script>
<script>
	tx_tsdialogin.try_logout = function() {...}
</script>


Temat zamkniety i rozwiazany