!$detect->isTablet()
разве не трактуется как не планшет?
Posted 31 January 2015 - 09:34
!$detect->isTablet()
разве не трактуется как не планшет?
JBZoo чат /
Разработка Joomla расширений и т.д.! / Рекомендую хостинг Joomla
Joomla расширение для Яндекс Турбо и Яндекс Дзен - помощь в настройке
Posted 31 January 2015 - 10:05
!$detect->isTablet()разве не трактуется как не планшет?
именно, в примере который я дал правильный коммент будет только на мобильных
Кстати, я этот класс Mobile_Detect вживил даже в JBlank. Мне нра, хотя подход к определению конечно не 100%
...но таких и не бывает (=
Денис а что не определяет? Я просто месяц назад когда ставил его на один из своих "самописов" долго проверял его хромовским отладчиком и всеми устройствами которые попадались под руку, разночтений в определении так и не нашел.
Posted 31 January 2015 - 10:12
Денис а что не определяет?
Класс ориентируется на http_user_agent а ему, как известно, нельзя доверять как и любым заголовкам/переменным http_*
Если человек сидит через проксю, например, которая потрошит заголовки, то чуда не произойдет.
Ну и +пачка расширений браузера, которые могут подделывать это все.
В общем, не точная наука =) Но более кошерного способа не найти.
У этого форума тоже регулярками определяется тип браузера и устройства, в целом проблем у меня тоже не наблюдалось с телефона и планшета. За исключением 2-3 случаев.
— Есть два типа людей: Кто еще не делает бекапы и кто уже делает бекапы.
Posted 31 January 2015 - 16:36
Мне кажется, это не пойдет мне.
Я использовал вот этот плагин:
http://www.blackredd...detector-plugin
Все здорово, особенно с мобильным шаблоном от того же разработчика. Если я поставлю паралельный вариант определения мобильных устройств, то может случиться такое, что в мобильном шаблоне окажется десктопная корзина или наоборот. В общем приятного мало. К тому же у меня есть возможность мануального переключения между мобильной и десктопной версией.
Итого: как можно привязать отображение той или иной структуры корзины в зависимости от шаблона или класса?
Posted 02 February 2015 - 09:51
Ребят, я понимаю, что у всех и своих дел навалом, но, все же, может кто-то сможет помочь с решением этой проблемы? это, в общем-то, последнее препятствие перед созданием полноценной мобильной версии)
Posted 02 February 2015 - 10:00
Ребят, я понимаю, что у всех и своих дел навалом, но, все же, может кто-то сможет помочь с решением этой проблемы? это, в общем-то, последнее препятствие перед созданием полноценной мобильной версии)
Возможно просто не понимают сути вопроса... цели...
Вы говорите:
как можно привязать отображение той или иной структуры корзины в зависимости от шаблона или класса?
Вариант 1: Отображать по разному можно по классам - классы можно вешать JS'ом - JS может брать классы пускай от того же mobile detect.
Вариант 2: Отображаение того или иного от класса - это медиа выражения CSS3 - в принципе по ширине окна верстать для каждого и ничего сложного.
Вариант 3: Отображать в зависимости от шаблона - а шаблон подставлять в зависимости от устройства (телефон, планшет, иное) - самым рабочим способ для меня это https://www.nonumber...templatemanager - в нем есть возможность детектить почти все. (у меня например даже стояла настройка с двух часов ночи до 7 утра менять шаблон на легковесный на новостнике - ночью боты ПС очень активны). И использовать advancedtemplatemanager например с шаблоном JBlank - в нем можно быстро и ЧИСТО написать структуру шаблона (использовать mobile detect в этом варианте не нужно).
JBZoo чат /
Разработка Joomla расширений и т.д.! / Рекомендую хостинг Joomla
Joomla расширение для Яндекс Турбо и Яндекс Дзен - помощь в настройке
Posted 02 February 2015 - 10:29
ок, я действительно не понятно выразился)
итак, с начала.
Вот так выглядит обычный шаблон корзины:
<div class="basket-item-list box1">
<div class="module-title">
<h2 class="title"><?php echo JText::_('JBZOO_CART_ITEMS'); ?></h1>
</div>
<table class="jbbasket-table jsJBZooBasket">
<thead>
<tr>
<th>#</th>
<th><?php echo JText::_('JBZOO_CART_ITEM_SKU'); ?></th>
<th></th>
<th><?php echo JText::_('JBZOO_CART_ITEM_NAME'); ?></th>
<th style="min-width: 120px;"><?php echo JText::_('JBZOO_CART_ITEM_PRICE'); ?></th>
<th><?php echo JText::_('JBZOO_CART_ITEM_QUANTITY'); ?></th>
<th style="min-width: 120px;"><?php echo JText::_('JBZOO_CART_ITEM_SUBTOTAL'); ?></th>
<th></th>
</tr>
</thead>
<tbody>
<?php
$i = 0;
$summa = 0;
$count = 0;
$currencyConvert = $view->appParams->get('global.jbzoo_cart_config.currency');
$imageElementId = $view->appParams->get('global.jbzoo_cart_config.element-image');
foreach ($view->basketItems as $hash => $basketItem) {
$item = $basketItem['item'];
$basketItem['price'] = $this->app->jbmoney->convert($basketItem['currency'], $currencyConvert, $basketItem['price']);
$count += $basketItem['quantity'];
$subtotal = $basketItem['quantity'] * $basketItem['price'];
$summa += $subtotal;
$image = $this->app->jbitem->renderImageFromItem($item, $imageElementId, true);
echo '<tr class="row-' . $hash . '" data-itemId="' . $item->id . '" data-hash="' . $hash . '">';
echo '<td class="cart-item-number">' . ++$i . '</td>';
echo '<td class="cart-item-sku">' . $basketItem['sku'] . '</td>';
echo '<td class="cart-item-image">' . $image . '</td>';
echo '<td class="cart-item-name">';
echo '<a href="' . $this->app->route->item($item) . '" title="' . $item->name . '">' . $item->name . '</a>';
if (isset($basketItem['priceParams']) && !empty($basketItem['priceParams'])) {
foreach ($basketItem['priceParams'] as $key => $value) {
if (!empty($value)) {
echo '<div><strong>' . $key . ':</strong> ' . $value . '</div>';
}
}
}
if (!empty($basketItem['priceDesc'])) {
echo '<br/><span class="price-description">' . $basketItem['priceDesc'] . '</span>';
}
echo '</td>';
if ($basketItem['price']) {
echo '<td class="jsPricevalue cart-item-price" price="' . $basketItem['price'] . '">'
. $this->app->jbmoney->toFormat($basketItem['price'], $currencyConvert)
. ' </td>';
} else {
echo '<td class="cart-item-price"> - </td>';
}
echo '<td class="cart-item-quantity"><input type="text" class="jsQuantity input-quantity" value="' . $basketItem['quantity'] . '" /></td>';
if ($basketItem['price']) {
echo '<td class="jsSubtotal">' . $this->app->jbmoney->toFormat($subtotal, $currencyConvert) . '</td>';
} else {
echo '<td> - </td>';
}
echo '<td class="cart-item-rembtn"><input type="button" class="jbbutton jsDelete" itemid="' . $item->id . '" value="' . JText::_('JBZOO_CART_DELETE') . '" /></td>';
echo "</tr>\n";
}
?>
</tbody>
<tfoot>
<tr>
<td colspan="5" class="right"><strong><span id="summ_delivery_label">Доставка:</span></strong></td>
<td> </td>
<td><span id="summ_delivery">0 р.</span></td>
<td> </td>
</tr>
<tr>
<td colspan="5" class="right"><strong><span id="summ_delivery_label"><?php echo JText::_('JBZOO_CART_TOTAL'); ?>:</span></strong></td>
<td class="jsTotalCount"><?php echo $count; ?></td>
<td class="jsTotalPrice"><span id="summ_full"><?php echo $this->app->jbmoney->toFormat($summa, $currencyConvert); ?></span></td>
<td>
<input type="button" class="button-default jsDeleteAll" value="<?php echo JText::_('JBZOO_CART_REMOVE_ALL'); ?>"/>
</td>
</tr>
</tfoot>
</table>
</div>
Т.е. это таблица (table, tbody, theader, etc.)
Мобильный шаблон сайта и так имеет кучу уникальных классов, так что стили привязать к ним - не проблема.
Но! пока корзина именно в виде таблицы, возможности здорово ограничены: я не могу растянуть ячейку на 100% ширины экрана, например, т.к. рядом другие ячейки имеются.
Цель:
В мобильной версии корзина должна отображаться не таблицей, а просто в блоках div, т.е. div для названия товара, div для цены и т.д.
Posted 02 February 2015 - 10:51
Вы же видите:
<table class="jbbasket-table jsJBZooBasket">
и прочие td ... переверстайте на div'ах, если конечно получится с mobile detect.
А вообще да, таблица менее гибкая, но все же почти все, что угодно можно через CSS же ей придать и скрыть.
<?php if ($tpl->isMobile()) : ?>
<!-- only for mobiles -->
<? endif; ?>
<?php if ($tpl->isTablet()) : ?>
<!-- only for tablets -->
<? endif; ?>
Edited by CB9TOIIIA, 02 February 2015 - 11:18.
JBZoo чат /
Разработка Joomla расширений и т.д.! / Рекомендую хостинг Joomla
Joomla расширение для Яндекс Турбо и Яндекс Дзен - помощь в настройке
Posted 02 February 2015 - 10:52
корзина должна отображаться не таблицей, а просто в блоках div
Извините,если не верно что-то понимаю, но что мешает переопределить шаблон вывода корзины?
Edited by Ursa, 02 February 2015 - 10:53.
Posted 03 February 2015 - 18:48
Извините,если не верно что-то понимаю, но что мешает переопределить шаблон вывода корзины?
Скрипты, например. Они к нему жестко привязаны. И классам вроде jsJBZooBasket.
"Это бессмысленно" - сказал разум. "Это нелепо" - заметил опыт. "Это бесполезно" - отрезал здравый смысл. "О! Вот так нормально!" - обрадовался клиент.