Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]Wyświetlanie elementu tylko na danej stronie
Forum PHP.pl > Forum > Przedszkole
krzysiuus
Panowie może mnie nakierujecie jak wykonać coś takiego aby dany element div był dostępny tylko na stronie głownej a nie na podstronach?


Uwaga nie ma za bardzo możliwości przypisania id dla osobnej podstrony.
Używam systemu getsimplecms jakby komuś to pomogło.

modern-web
W tablicy $_SERVER znajdziesz adres żądania, możesz na jego podstawie stwierdzić czy jest to strona główna, czy też nie. Wyrażenie regularne może się przydać.
krzysiuus
  1. <?php
  2.  
  3. $_SERVER['SERVER_NAME'];
  4.  
  5. if ($_SERVER['SERVER_NAME'] == 'http://strona.pl/')
  6. {
  7. echo 'OK';
  8. }
  9. else
  10. {
  11. echo 'blad';
  12. }
  13.  
  14. ?>


Coś w tym stylu?
modern-web
Sprawdzałbym jednak wyrażeniem regularnym ile masz "/" albo coś, chyba że chcesz uzależnić swój skrypt od domeny.
krzysiuus
Tak może być uzależniony od domeny.

Głównie chodzi mi o to że jeżeli np. jestem na stronie głównej domeny to wyświetla mi się "<div class="AAA">cos tam</div>" a jeżeli jestem na podstronach to ma się wyświetlać "<div class="BBB">cos tam jeszcze innego</div>"
ikssde
A jak wygląda odnośnik do podstrony?
krzysiuus
Np.
Kod
http://strona.pl/category/budownictwo


lub

Kod
http://strona.pl/budowa/


Tylko że w htccess jest:
Kod
RewriteRule ^category/([^/.]+)/?$ index.php?id=index&category=$1 [L]
ikssde
Prawdopodobnie masz tam też inne zapisy, dla Ciebie interesujący jest ten fragment index.php?id=index&category=$1. To na jakiej stronie jesteś możesz sprawdzić np. takim kodem:

  1. if(isset($_GET['category']) && $_GET['category'] == 'budownictwo') { ... }


Prawdopodobnie strona główna będzie miała pustą tablicę $_GET, ale musisz to sprawdzić w pliku htaccess.
krzysiuus
  1. # Set the default handler.
  2. DirectoryIndex index.php
  3. <IfModule mod_rewrite.c>
  4. RewriteEngine on
  5.  
  6. # Usually RewriteBase is just '/', but
  7. # replace it with your subdirectory path
  8. RewriteBase /
  9. RewriteRule ^post/([^/.]+)/?$ index.php?id=index&post=$1 [L]
  10. RewriteRule ^tag/([^/.]+)/?$ index.php?id=index&tag=$1 [L]
  11. RewriteRule ^page/([^/.]+)/?$ index.php?id=index&page=$1 [L]
  12. RewriteRule ^archive/([^/.]+)/?$ index.php?id=index&archive=$1 [L]
  13. RewriteRule ^category/([^/.]+)/?$ index.php?id=index&category=$1 [L]
  14. RewriteCond %{REQUEST_FILENAME} !-f
  15. RewriteCond %{REQUEST_FILENAME} !-d
  16. RewriteRule /?([A-Za-z0-9_-]+)/?$ index.php?id=$1 [QSA,L]
  17. </IfModule>
  18.  


ok Panowie udało mi się naskrobać coś takiego i fajnie działa:

  1. <?php
  2. $www="http://".$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI'];
  3. if ($www == 'http://strona.idl.pl/' || $www == 'http://www.strona.idl.pl/' || $www == 'strona.idl.pl/' || $www == 'www.strona.idl.pl/') :
  4. ?>
  5.  
  6. tresc do pokazania tylko na stronie glownej
  7.  
  8.  
  9. <?php endif; ?>



Jednak chciałbym dodać do tego raunek else (jeżeli jestem obecnie na podstronie to pojawia sie inny box.

  1. <?php
  2. $www="http://".$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI'];
  3. if ($www == 'http://strona.idl.pl/' || $www == 'http://www.strona.idl.pl/' || $www == 'strona.idl.pl/' || $www == 'www.strona.idl.pl/') :
  4. ?>
  5.  
  6. tresc do pokazania tylko na stronie glownej
  7.  
  8.  
  9. <?php
  10. else {
  11. echo 'tresc na podstronach';
  12. } ?>


Ale coś nie bardzo funkcjonuje... można to zrobić ten sposób co pokazałem czy trzeba wszystko wziąść w kod php i "tresc do pokazania tylko na stronie glownej" dać w echo?
ikssde
Zrób w ten sposób:

  1. <?php
  2. $www="http://".$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI'];
  3. if ($www == 'http://strona.idl.pl/' || $www == 'http://www.strona.idl.pl/' || $www == 'strona.idl.pl/' || $www == 'www.strona.idl.pl/') :
  4. ?>
  5.  
  6. tresc do pokazania tylko na stronie glownej
  7.  
  8.  
  9. <?php else: ?>
  10.  
  11. tresc na podstronach
  12.  
  13. <?php endif; ?>


Jeśli chodzi o warunek to możesz zastąpić go prostszym:

  1. if(empty($_GET)) -> strona główna


Czyli całość przyjmie postać:

  1. <?php if(empty($_GET)): ?>
  2. Strona główna
  3. <?php else: ?>
  4. Inna strona
  5. <?php endif;?>
krzysiuus
ok, dziękuję wszystkim za poświęcony czas.
Można zamknąć.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.