Версии за таблет, мобилен, настолен?

meleto

Registered
Здравейте.

Понеже няма как при съществуваща структура на сайт, да променя просто големината на дивовете, търся алтернативни методи.

Искам да създам нови версии с друга визуализация.

Искам да прихвана резолюцията чрез PHP и ако е между широчина под 360 пиксела да пренасочва към версия за мобилни мобилна версия, ако е между 361 и 800 е друга структура на сайта
...
между 801-1024 трета
и над 1024 пиксела четвърта.

Как става прихващането на резолюцията с PHP, не искам да е javascript ?
 
Ето тук намерих същия въпрос.
Ако не вярваш, виж този линк:
https://www.google.com/search?q=get+window+size+php&oq=get+window+size+p&aqs=chrome.1.69i57j0l5.7235j0j7&sourceid=chrome&espv=210&es_sm=122&ie=UTF-8
Винаги тръгвай от гугъл, а след това пиши тук.
 
Аз това го видях, ама се зачудих дали все пак не може само с PHP.

Сега се замислям, дали не е по-добре да прихващам дали е мобилно устройство, намерих един клас, но още не съм решил.
 
Виж какво ми хрумна (ама е с js :?).

Сайтът ти има тази структура:
0. /redirect.php
1. /index.php
2. /page.php
3. /size1/index.php
4. /size1/page.php
5. /size2/index.php
6. /size2/page.php

0 - пренасочваща страница
1 и 2 - в тях има само един ред код - <?php include "redirect.php"; ?>
3 и 4 - един дизайн
5 и 6 - друг дизайн

Когато потребителят въведе sajt.com/page.php, от redirect.php ще се инклудне подходящата страница (от папката size1 или size2).

Остава само да видиш съдържанието на redirect.php:
PHP:
<?php
if(isset($_GET['x']) && isset($_GET['y'])) {
  $x = $_GET['x']; $y = $_GET['y'];
  if($x < 600 && $y < 200) {//започваме с най-малкия размер
    include "/size1/".$_SERVER["REQUEST_URI"];
  }
  elseif($x < 900 && $y < 600) { //среден размер
    include "size2".$_SERVER["REQUEST_URI"];
  }
  elseif(...) { //голям размер
    ...
  }
  else {//дотук не трябва да се стига, трябва в горния if да провериш дали x и y са в "нормалния" диапазон. (Ако не са, просто ще се премине към else-а)
  }
}
else {
  ?>
  <script>
  window.location = "<?=$_SERVER["REQUEST_URI"]?>?x=" + window.innerWidth + "&y=".window.innerHeight;//това ще рефрешне страницата, но с подадени $_GET['x'] и $_GET['y'], съдържащи размерите на страницата
  </script>
  <?php
}
?>

WARNING! Това е едно доста примитивно решение (имам предвид съдържанието на redirect.php). Представи си какво ще стане ако имаш post формуляр - страницата, към която е насочен, ще се презареди и post данните ще отидат на вятъра.
Препоръчвам ти да използваш сесии. Как? В redirect.php проверявай за съществуването им и прави проверките спрямо тях. Ако не същетсвуват, провери дали има $_GET['x'] и ако има, присвои на сесията тази стойност. :?:
 
Ако ще създаваш нови версии на сайта, насочи ъсилията си към Responsive Design-а, за да си спестиш такива главоблъсканици за в бъдеще :idea:
 
даа, упхеро е много прав. по-добре направи нов респонсиве дизайн, отколкото да си причиняваш главоболия :)
 

Back
Горе