Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Aspect ratio i resolution
Forum PHP.pl > Forum > Po stronie przeglądarki > JavaScript
Skorpiono
skad pobrac zmienna zawierajaca resolution mojego monitora? eventualnie ratio tez by sie przydalo. thx
JacekJagiello
PHP to język działający po stronie serwera, który standardowo nie otrzymuje informacji o roździelczości ekranu odwiedzającego. Ale możesz pobrać screen.width oraz screen.height w JavaScript, i wyśłać za pomocą Ajax do serwera.
ber32
Możesz też wysłać do ciasteczek link http://www.joomla-cms.com.pl/pl/class-php/responsivecss.html
linia 676 do 688 a potem odebrać w php

  1. $_COOKIE["width"]
JacekJagiello
Cytat
Możesz też wysłać do ciasteczek link http://www.joomla-cms.com.pl/pl/class-php/responsivecss.html

Nie nie radziłbym tego skryptu używać. Przecież on pogwałaca WSZELKIE zasady programowania obeiktowego... i programowania wogóle axesmiley.png
Skorpiono
dzieki widze ze koles tam napisal dokladnie to samo czego i ja potrzebowalem, jeszcze raz thx
ber32
Co w nim takiego złego ? Nie myślisz chyba o konstruktorze oneeyedsmiley02.png
JacekJagiello
Cytat
Nie myślisz chyba o konstruktorze

Myślę o wszystkim. Każdej jednej rzeczy, z nazewnicstwiem zmiennych włącznie.

Jeśli jest to Twój kod, to musisz naprawdę wziąść się do pracy. Jest taki termin jak kod spagetti. Ten skrypt do niego należy.

1. Trzymasz kod HTML w stałych. Żadna klasa nie powinna zawierać kodu HTML, chyba że jest to specjalna klasa służąca do wyświetlania dnaych w takiej formie. W programowaniu obiektowym chodzi miedzy innymi o to aby odzielić warstwę prezentacji(kod html) od logiki biznesowej(operacji na danych wykonywanych przez php). Polecam ten artyukł

2. Nazewnicstwo zmiennych
  1. ...
  2. public $css_1024;
  3. public $css_800;
  4. public $css_768;
  5. public $css_685;
  6. public $css_600;
  7. public $css_568;
  8. public $css_480;
  9. public $css_380;
  10. public $css_320;
  11. public $css_240;
  12. public $css_w3c_re;
  13. public $css_w3c_ver;
  14. public $css_1;
  15. public $css_2;
  16. public $css_3;
  17. public $css_4;
  18. public $css_5;
  19. ...

Nazwy tych zmiennych nic mi nie mówią o ich przeznaczeniu. Mają coś wspólnego z css.
Ponadto w tej klasie jest ok. 60 właściwości(exclamation.gif!), nie licząc stałych.
3. Łamanie zasad KISS oraz DRY
4. Ten kod nie ma nic wspólnego z zasadmi SOLID
5. Kod nie zawiera testów. Ale w sumie nie wiem czy taki kod da się testować...

To po prostu jest kod programowania strukturalego objęty w klasę. Widać nie rozumiesz na czym polega programowanie obiektowe. Klasy traktuje się jako moduły, osobna klasa pobiera dane, osobna je wyświetla... Osobna klasa pobiera dane x a osobna y itd. musisz bardziej zagłębić się w programownaie obiektowe.

Jeśli mi nie wieżysz, zapytaj się innych programistów na tym forum, dlaczego ten kod jest zły.
Skorpiono
CHodzi m o to aby obrazek wyswietlany byl zawsze na pelny ekran da sie tak?
JacekJagiello
Cytat
CHodzi m o to aby obrazek wyswietlany byl zawsze na pelny ekran da sie tak?

Trzeba było tak odrazu. Do tego nie potrzeba przecież PHP... blink.gif Wystarczy dodać elementowi img atrybut width="100%" oraz height="100%" z tym, że obrazek może się trochę zniekształcić.
Kshyhoo
Cytat(JacekJagiello @ 14.04.2014, 00:55:05 ) *
Wystarczy dodać elementowi img atrybut width="100%" oraz height="100%" z tym, że obrazek może się trochę zniekształcić.

Żeby obrazek zachował rozmiary:
  1. width: 100%; max-width: [rzeczywista szerokość]

Pobranie i zachowanie szerokości ekranu:
  1. <script type="text/javascript">
  2. document.cookie = 'res_width=' + screen.width;
  3. </script>
  4. <?php
  5. $res_width = '';
  6. if(isset($_COOKIE['g_res_width'])) {
  7. $res_width = $_COOKIE['res_width'];
  8. }
  9. $wScreen = isset($g_res_width) ? $res_width : "1000";
  10. ?>
  11.  
  12. ...
  13. style="width: <?php echo $wScreen ?>px"

Przenoszę.
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.