Russian TYPO3 community

Russian TYPO3 community (http://forum.typo3.ru/index.php)
-   Общие вопросы (http://forum.typo3.ru/forumdisplay.php?f=12)
-   -   PDA (КПК) версия сайта. (http://forum.typo3.ru/showthread.php?t=9323)

Gemini 04.03.2011 22:38

PDA (КПК) версия сайта.
 
Здравствуйте!

Есть у меня нужда в создании pda версии сайта - т.е. нужно мне сделать так, чтоб при заходе с pda показывался один шаблон, с ПК - другой.
Хочу я сделать для сайта меню в виде комбобокса (html select'а) - и с этим то я справился, но почему то условие [device=pda] в шаблоне не работает. Подскажите, в чем прикол. При этом на условие [browser = msie] - работает.
Шаблон:
Код:

page = PAGE
page.typeNum = 0

page.headerData.1 = COA
page.headerData.1.1 = TEXT
page.headerData.1.1.data = fullRootLine : 0, title
page.headerData.1.1.wrap = <title> | </title>

page.headerData.2 = TEXT
page.headerData.2.value = <link rel="stylesheet" type="text/css" href="fileadmin/template/style/style_all.css">

page.5 = FILE
page.5.file = fileadmin/template/s1.txt
page.6 = TEXT
page.6.value = <img src="./fileadmin/template/images/1.gif" border=0 alt="ШГПИ" onclick="location.href='./index.php'"><p id='p1' style="display: block;"><a href="ссылка">ссылка</a></p>
page.6.wrap = | </td></tr></table></div>

page.7 = HMENU
page.7.1 = TMENU
page.7.1 {
noBlur = 1
expAll = 0
collapse = 0
NO.allWrap = <p>  | </p>
SPC = 1
SPC.allWrap = <p> | </p>
CUR = 1
CUR.doNotLinkIt = 1
CUR.allWrap = <p> | </p>
}
page.7.wrap = <div class="menu"> | </div></div>

[device=pda]
page.5 = TEXT
page.5.value = &nbsp;
page.6 = TEXT
page.6.value = &nbsp;

page.7 = HMENU
page.7.1 = TMENU
page.7.1 {
noBlur = 1
expAll = 0
collapse = 0
NO {
    doNotLinkIt = 1
    stdWrap.cObject = COA
    stdWrap.cObject {
      10 = TEXT
      10.value = <option value="
      20 = TEXT
      20.typolink {
        parameter.field = uid
        returnLast = url
      }
      30 = TEXT
      30.dataWrap = ">{field:title}</option>
    }
  }
}
page.7.wrap = <select onChange="location = this.value;"> | </select>

[end]

page.10 = CONTENT
page.10.table = tt_content
page.10.wrap = <div class="main23"> | </div>

Рабочесть шаблона тестил с эмулятора КПК (PDA) - ОС windows mobile 6. И вот - показывает стандартный шаблон.

Андрей Аксенов 05.03.2011 09:56

может потому что с эмулятора...
Сам никогда не делал, но может это поможет:
http://dmitry-dulepov.com/article/cr...-web-site.html

Gemini 05.03.2011 12:25

Решил свою проблему.

Отловил в логах апача user-agent и по нему стал выбирать шаблон.
Для windows mobile правильное условие будет
Код:

[useragent = *IEMobile*]

dmartynenko 06.03.2011 18:32

В статье Дулепова есть пример TS условия по собственной PHP-функции. Смотрите в тексте его статьи [userFunc = user_isMobile].

Соответственно так у вас будет больше возможностей, чем в простых TS-условиях - например, использовать одну из PHP библиотек для определения или обращаться к сервису http://api.yandex.ru/detector/doc/dg...r-response.xml

А почему вы хотите делать мобильную версию на том же дереве что и обычную версию? Обычно практикуется отдельный поддомен.

Gemini 07.03.2011 11:40

А смысл в отдельном поддомене? Если есть возможность просто в шаблоне подгружать определенный стиль и сделать определенное, удобное управление.

Андрей Аксенов 07.03.2011 12:41

Цитата:

Сообщение от Gemini (Сообщение 30495)
А смысл в отдельном поддомене? Если есть возможность просто в шаблоне подгружать определенный стиль и сделать определенное, удобное управление.

Скажем, на обычном сайте могут быть различного рода галереи, форумы и т.д. А на поддомене для мобильных устройств могут быть другие сервисы... Всего через CSS не переопределить. Конечно можно полностью все переделать через TS и условия, но это не менее утомительно, чем делать отдельную ветвь...
Хотя здесь все зависит от конкретного сайта и его содержимого...


Часовой пояс GMT +4, время: 17:44.

Работает на vBulletin® версия 3.8.1.
Copyright ©2000 - 2021, Jelsoft Enterprises Ltd.
Перевод: zCarot