Proste adresy
Wyniki 1 do 7 z 7

Temat: Proste adresy

  1. #1
    Wiarus Robster awatar
    Dołączył
    30-01-2010
    Skąd
    Częstochowa
    Wpisy
    2 136
    Punkty
    135

    Domyślny Proste adresy

    To znowu ja

    Tym razem pytanie odnośnie prostych adresów. Zrobiłem je w swoim komponencie i wszystko ładnie działa. Problem pojawia się gdy wyłączę proste adresy na zapleczu. Wtedy komponent dalej chce działać na prostych adresach. I teraz pytanie właściwe. Problem ten rozwiązuje się tworząc dwie definicje adresów w instrukcji warunkowej, sprawdzającej czy SEF są włączone i wyświetlającej odpowiedni adres w zależności od otrzymanej odpowiedzi czy w jakiś inteligentniejszy sposób?

    Pozdrawiam
    Nic co jest warte posiadania nie przychodzi łatwo.
    http://robertmatuszewski.pl

  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
    Przeglądacz
    Dołączył
    11-06-2007
    Wpisy
    30
    Punkty
    10

    Domyślny

    Standardowo joomla ma takie rozwiazanie. Jesli tylko zrobiles adresowanie zgodnie ze standardami joomli to nie powinno byc problemu. Od tego jest JRoute i prawidlowo zrobiony plik route.php (ktory zawiera dwie funkcje, budujaca link oraz parsujaca). Jesli zamiast tych rzeczy statycznie wstawiales SEF adresy w templatce no to coz

    Pozdrawiam

  4. #3
    Wiarus Robster awatar
    Dołączył
    30-01-2010
    Skąd
    Częstochowa
    Wpisy
    2 136
    Punkty
    135

    Domyślny

    Postępowałem według wytycznych z tego tematu - http://docs.joomla.org/Supporting_SE...your_component i komponent nie działa po wyłączeniu prostych adresów.
    Opisałem zresztą wszystko tutaj - http://robertmatuszewski.pl/blog/joo...m-komponencie/ . Można sobie zobaczyć kod, albo ściągnąć gotowy komponent. Wydaje mi się, że wykonałem wszystko zgodnie ze wskazówkami zawartymi w dokumentacji Joomla!
    Nic co jest warte posiadania nie przychodzi łatwo.
    http://robertmatuszewski.pl

  5. #4
    Wyjadacz pawelSafiStudio awatar
    Dołączył
    27-09-2010
    Wpisy
    646
    Punkty
    90

    Domyślny

    @Robster pobrałem komponent i niestety jest w nim trochę błędów. Nie wczytuje listy miast. Ale za to działa mi na prostych adresach i kanonicznych też Pytanie czy nie masz u siebie włączonego cache dla strony? Wówczas jak zaczytało szablony z prostymi adresami to dalej Ci będzie je pokazywać, mimo zmiany w konfiguracji.
    "Twoja strategia jest do bani (głównie dlatego, że nie poświęcasz jej wystarczająco dużo czasu)" - Mitch Joel

  6. #5
    Wiarus Robster awatar
    Dołączył
    30-01-2010
    Skąd
    Częstochowa
    Wpisy
    2 136
    Punkty
    135

    Domyślny

    pawelSafiStudio ja właśnie o tym przypadku mówię, a raczej piszę. Przy włączonych prostych adresach miasta są wczytywane (uboga baza miast zaraz po instalacji komponentu), ale przy wyłączonym SEF nie wczytuje miast. I teraz nie wiem czy jest to spowodowane błędami w route.php, w takim pojęciu, że są źle zaprojektowane, czy jest to wina jakiegoś innego czynnika.

    Co do błędów w komponencie (tak w ogóle), to wiem, że dla doświadczonych programistów, jest to bluźnierstwo, ale komponent był tworzony w celach edukacyjnych (głównie moich, a nie użytkowników bloga). Chociaż nadal mało wiem, to teraz zaprojektowałbym go całkiem inaczej, czyni się to głównie kodu php w widokach.
    Nic co jest warte posiadania nie przychodzi łatwo.
    http://robertmatuszewski.pl

  7. #6
    Wyjadacz pawelSafiStudio awatar
    Dołączył
    27-09-2010
    Wpisy
    646
    Punkty
    90

    Domyślny

    @Robster błąd nie leży w router.php, bo jak wyłączysz SEF to ten plik nie jest wykorzystywany. Błąd leży w samym komponencie. Przykład widoku miast. Adres dla europy wygląda następująco:

    index.php?view=miasta&catid=7-europa&option=com_katalog

    Natomiast w widoku miast odwołujesz się do metody getCityList podając jako id kontynentu JRequest::getVar('id').
    Kod PHP:
    $getCityList $model->getCityList('id_miasta, nazwa_miasta, id_kontynentu','miasta'JRequest::getVar('id')); 
    Czyli odwołujesz się do parametru, który nie istnieje w adresie kanonicznym. Mniemam, że w router.php pobrałeś sobie slug i ID przypisałeś faktycznie jako parametr id Przez pomyłkę powstała niezgodność obsługi parametrów dla SEF i non-SEF.
    Nawet jak zmienisz sobie na JRequest::getVar('catid') to nie będzie to ok. Parametr catid przybiera postać 7-europa, a w SQL odwołujesz się bezpośrednio do ID. Więc tego stringa musisz sobie rozbić aby otrzymać czyste ID.

    Sprawdź model, jakie parametry przekazujesz i zachowaj te same parametry w router.php
    "Twoja strategia jest do bani (głównie dlatego, że nie poświęcasz jej wystarczająco dużo czasu)" - Mitch Joel

  8. #7
    Wiarus Robster awatar
    Dołączył
    30-01-2010
    Skąd
    Częstochowa
    Wpisy
    2 136
    Punkty
    135

    Domyślny

    pawelSafiStudio masz rację! Ale ze mnie ciołek Teraz sobie uświadomiłem, że poprzerabiałem adresy, żeby sobie ładnie slugi zrobić i ładnie kontynent i miasto wyświetlić. Dzięki serdeczna za pomoc i poświęcony czas
    Nic co jest warte posiadania nie przychodzi łatwo.
    http://robertmatuszewski.pl

Podobne tematy

  1. Proste adresy
    przez traabbit na forum Administracja - ogólne
    Odpowiedzi: 0
    Ostatni post/autor: 10-03-2012, 12:30
  2. mod_rewrite, proste adresy i adresy z przyrostkiem...
    przez Drapeta na forum Administracja - ogólne
    Odpowiedzi: 9
    Ostatni post/autor: 19-11-2010, 23:54
  3. Proste Adresy
    przez frater na forum Administracja - ogólne
    Odpowiedzi: 18
    Ostatni post/autor: 15-06-2010, 12:28
  4. Proste adresy
    przez benek99 na forum Instalacja, aktualizacja, migracje
    Odpowiedzi: 1
    Ostatni post/autor: 06-10-2009, 17:36

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
  •