[Rozwiązane] Zmiana strony startowej przy ponownych odwiedzinach
Wyniki 1 do 10 z 10

Temat: Zmiana strony startowej przy ponownych odwiedzinach

  1. #1
    Nowicjusz
    Dołączył
    13-05-2019
    Wpisy
    11
    Punkty
    2

    Domyślny Zmiana strony startowej przy ponownych odwiedzinach

    Dzień dobry!

    Chciałabym prosić o radę. Buduję stronę na najnowszej joomli. Chciałabym, aby użytkownik przy pierwszych odwiedzinach witryny został skierowany na stronę główną, a przy kolejnej i każdej następnej wizycie po wpisaniu głównej domeny został przekierowany na podstronę. Pytałam dostawcę hostingu, jednak polecił mi szukać rozwiązania w joomla lub "czysto programistycznego". Czy ktoś z Was ma może pomysł, jak uzyskać taki efekt? Będę wdzięczna za wszelkie wskazówki.

  2. Pani Reklamowa
    Pani Reklamowa jest aktywna
    Avatar Panny Google

    Dołączył
    19-08-2010
    Skąd
    Internet
    Postów
    milion
    Pochwał
    setki
  3. #2
    Wyga siristru awatar
    Dołączył
    28-05-2009
    Skąd
    Szczecin
    Wpisy
    3 238
    Punkty
    302

    Domyślny

    To jest możliwe przy wykorzystaniu ciasteczek. Jednak jeśli użytkownik skorzysta z innej przeglądarki lub oczyści historię przeglądania i pamięć podręczną lub ciasteczko straci ważność - proces się powtórzy czyli zobaczy stronę główną a przy następnej wizycie dopiero podstronę.

    Sprawdź to: https://stackoverflow.com/questions/...y-been-visited
    Na Forum pomagam bezpłatnie ad maiorem Joomla gloriam
    Mimo pomocy na forum nie dajesz rady? Potrzebujesz by ekspert "zrobił to" za Ciebie?
    Napisz do mnie na PW. Argentum et Aurum nie zawsze jest konieczne ;)

  4. #3
    Nowicjusz
    Dołączył
    13-05-2019
    Wpisy
    11
    Punkty
    2

    Domyślny

    Dziękuję, dokładnie o to mi chodzi! Jednak nie jestem sobie w stanie poradzić z tym kodem. Wiem jedynie, gdzie go wkleić Czy mogę prosić o pomoc w jego dostosowaniu?

  5. #4
    Wyga siristru awatar
    Dołączył
    28-05-2009
    Skąd
    Szczecin
    Wpisy
    3 238
    Punkty
    302

    Domyślny

    Jasne, chętnie pomogę.
    Daj mi chwilę by przetestować to na swoim serwerze.
    Jak opracuję gotową metodę to napisze instrukcję.

    Zapisuję to sobie na liście TODO.
    Na Forum pomagam bezpłatnie ad maiorem Joomla gloriam
    Mimo pomocy na forum nie dajesz rady? Potrzebujesz by ekspert "zrobił to" za Ciebie?
    Napisz do mnie na PW. Argentum et Aurum nie zawsze jest konieczne ;)

  6. #5
    Wyga siristru awatar
    Dołączył
    28-05-2009
    Skąd
    Szczecin
    Wpisy
    3 238
    Punkty
    302

    Domyślny

    Dobra, to idzie tak:

    0. Założenia: musisz posiadać jQuery. Z reguły Joomla domyślnie ładuje jQuery ale warto się upewnić czy tak jest faktycznie przeglądając kod strony (głównej wystarczy).

    1. Pobierasz wtyczkę stąd: https://github.com/carhartl/jquery-cookie

    Pobierz ZIP: http://prntscr.com/no1yev

    2. Rozpakuj u siebie na dysku.

    3. Skopiuj plik jquery.cookie.js z /jquery-cookie-master/src do swojego szablonu na serwerze ROOT/templates/<nazwa-szablonu>/js (jeśli nie masz tego katalogu to go utwórz)

    4. Edytuj plik index.php w ROOT/templates/<nazwa-szablonu>

    5. Odszukaj kod:

    Kod PHP:
    <jdoc:include type="head" /> 
    Pod nim dodaj:

    Kod PHP:
    <script type="text/javascript" src="<?php echo $this->baseurl ?>/templates/<?php echo $this->template ?>/js/jquery.cookie.js"></script>
        <?php
        $host 
    $_SERVER['REQUEST_URI'];
        if(
    $host == "/") {
        
    ?>
        <script type="text/javascript">
        jQuery(function() {
        var COOKIE_NAME = 'returning-cookie';
        $go = jQuery.cookie(COOKIE_NAME);
        if ($go == null) {
            jQuery.cookie(COOKIE_NAME, 'test', { path: '/', expires: 6 });
        }
        if ($go != null) {
            window.location = "/news.html"
        }
    });
        </script>
    <?php ?>
    W taki sposób: http://prntscr.com/no22ak

    Wyjaśnienia kodu

    1. Ten kawałek ładuje wtyczkę http://prntscr.com/no22q7

    2. Ten kawałek:

    Kod PHP:
        <?php
        $host 
    $_SERVER['REQUEST_URI'];
        if(
    $host == "/") {
        
    ?>
    To warunek sprawdzający czy jesteśmy na stronie głównej, bo chcemy by skrypt wykonywał się TYLKO na stronie głównej... w innym wypadku będzie nas przekierowywać w nieskończoność.

    2. Ten kawałek określa nazwę ciasteczka:

    Kod:
    var COOKIE_NAME = 'returning-cookie';
    Tekst returning-cookie możesz zmienić na inny byleby nie miał spacji i znaków diakrytycznych.

    3. Ten kawałek to znowu warunek w js sprawdzający czy zmienna $go zawiera wartość null czyli jest pusta

    Kod:
        if ($go == null) {
            jQuery.cookie(COOKIE_NAME, 'test', { path: '/', expires: 6 });
        }
    jeśli jest pusta tworzy ciasteczko z zawartością test i ważna na 6 dni. Możesz zmienić test na dowolna wartość ale bez znaków diakrytycznych. Tak samo 6 możesz zmienić na 365. Po roku ciasteczko straci ważność i użytkownik zostanie potraktowany jak nowy, nie powracający.

    4. Ten kawałek sprawdza czy wartość zmiennej $go jest różna od null czyli nie jest pusta:

    Kod:
        if ($go != null) {
            window.location = "/news.html"
        }
    jeśli nie jest to przekierowuje do lokalizacji /news.html. Możesz zmienić wartość "/news.html" na inną ale pamiętaj o początkowym slashu.

    Ograniczenia


    Należy pamiętać, że niektórzy wyłączając obsługę cookies w przeglądarce, usuwają cookies lub zmieniają przeglądarkę. W takiej sytuacji kod nie zadziała (brak obsługi cookie) lub potraktuje odwiedzającego jako nowego i wyświetli stronę startową a za kolejnym razem już przekieruje. Cookie musi mieć datę ważności (nie może być bezterminowe - patrz persistent cookie).

    Po utworzeniu ciasteczka przekierowanie będzie wcią ż działało więc np. jeśli ma się w menu pozycję dla pierwszej strony np. HOME to klikajac na nie... zostaniemy zawróceni na stronę docelową... nie da sie wyświetlic już strony HOME bez usunięcia ciasteczka.

    Skrypt jest wykonywany zaraz po załadowaniu części strony z kodem więc strona startowa może "mignąć" więc jakiś preload może się przydać do jej spowolnienia.

    Przykład

    http://siristru.prolusatia.pl

    1. Wejdź na stronę

    Zostanie załadowana strona startowa "home"

    2. Odśwież stronę

    Nastąpi przekierowanie do zakładki "News"
    Na Forum pomagam bezpłatnie ad maiorem Joomla gloriam
    Mimo pomocy na forum nie dajesz rady? Potrzebujesz by ekspert "zrobił to" za Ciebie?
    Napisz do mnie na PW. Argentum et Aurum nie zawsze jest konieczne ;)

  7. #6
    Wyjadacz terra awatar
    Dołączył
    26-05-2017
    Skąd
    Wrocław
    Wpisy
    920
    Punkty
    87

    Domyślny

    Nie wiem co masz na celu, ale myślę, że dużo lepsze jest rozwiązanie mieszania zawartości na stronie startowej niż zmiana przekierowań.

  8. #7
    Wyga siristru awatar
    Dołączył
    28-05-2009
    Skąd
    Szczecin
    Wpisy
    3 238
    Punkty
    302

    Domyślny

    A! Jest jeszcze inna opcja tzw. splash screen... czyli wchodzę na stronę i po jakiejś chwili pokazuje mi się a'la lightbox jakaś informacja. Tak jak na forum okienko z fan page na FB.
    Na Forum pomagam bezpłatnie ad maiorem Joomla gloriam
    Mimo pomocy na forum nie dajesz rady? Potrzebujesz by ekspert "zrobił to" za Ciebie?
    Napisz do mnie na PW. Argentum et Aurum nie zawsze jest konieczne ;)

  9. #8
    Nowicjusz
    Dołączył
    13-05-2019
    Wpisy
    11
    Punkty
    2

    Domyślny

    Siristru, fantastyczna instrukcja! Dokładnie o to mi chodziło! Działa doskonale, dziękuję!
    Tylko teraz jeszcze jedno pytanie. W tej chwili użytkownik jest przekierowany ze strony głównej do zakładki - pięknie. A czy jest możliwość, że będąc w tej pozycji zdecyduje, że chce odwiedzić stronę główną, to będzie mógł się na nią dostać? W takim układzie strona główna jest całkowicie zablokowana.

    Chodzi o to, że mam stronę, której sercem jest wyszukiwarka znajdująca się w zakładce. Na stronie głównej mam kilka informacji "organizacyjnych", ale wierzę, że przyszły użytkownik będzie korzystał przede wszystkim z wyszukiwarki, stąd przekierowanie. Nie chcę jednak całkowicie zablokować dostępu do strony głównej.

    Czy można dodać taki warunek do kodu?
    Jeszcze raz dziękuję za profesjonalną pomoc!

  10. #9
    Wyga siristru awatar
    Dołączył
    28-05-2009
    Skąd
    Szczecin
    Wpisy
    3 238
    Punkty
    302

    Domyślny

    Er... nie. Nie da się takiego warunku utworzyć bo to zaprzeczenie tego co warunek sprawdza.
    Ale możesz zrobić tak:

    - strona startowa (pierwsze wejście na stronę) daje się zobaczyć a tworzone jest ciasteczko
    - strona ta nie powinna być dostępna w menu jako pozycja menu (można ja ukryć np. dzięki CSS)
    - po ponownej wizycie sprawdzane jest ciasteczko i przekierowuje wracającego odwiedzającego do konkretnej zakładki
    - by strona startowa była widoczna musisz ją zdublować czyli utworzyć bliźniaczą, z takimi samymi ustawieniami i modułami etc
    - strona ta (pozycja w menu) będzie widoczna w menu (różnica między nią a ta prawdziwą startową jest taka, że ta druga startowa będzie miała alias, czyli nie cofnie do domeny tylko np. moja-domena.pl/start.html
    Na Forum pomagam bezpłatnie ad maiorem Joomla gloriam
    Mimo pomocy na forum nie dajesz rady? Potrzebujesz by ekspert "zrobił to" za Ciebie?
    Napisz do mnie na PW. Argentum et Aurum nie zawsze jest konieczne ;)

  11. #10
    Nowicjusz
    Dołączył
    13-05-2019
    Wpisy
    11
    Punkty
    2

    Domyślny

    Sprytne. Wszystko działa, dokładnie jak powinno. Siristru, dziękuję za pomoc!

Podobne tematy

  1. Problem przy otwieraniu strony startowej
    przez hadespl na forum Artykuły: aktualności, komentarze
    Odpowiedzi: 0
    Ostatni post/autor: 23-02-2012, 19:08
  2. Odpowiedzi: 0
    Ostatni post/autor: 02-09-2011, 12:04
  3. 60 000 żądań i 18 000 stron przy 400 odwiedzinach?
    przez zeisse na forum Wydajność, optymalizacja
    Odpowiedzi: 0
    Ostatni post/autor: 05-02-2011, 16:22
  4. Komunikat "Zasób zastrzeżony" przy wczytywaniu strony startowej
    przez azathoth na forum Szablony, wygląd, formatowanie
    Odpowiedzi: 3
    Ostatni post/autor: 31-08-2009, 20:22
  5. Seyret - zmiana strony startowej
    przez lukasz3r na forum Administracja składnikami
    Odpowiedzi: 0
    Ostatni post/autor: 18-02-2008, 16:31

Reguły pisania

  • Nie możesz zakładać nowych tematów
  • Nie możesz dodawać wypowiedzi
  • Nie możesz dodawać załączników
  • Nie możesz poprawiać swoich postów
  •