Перейти к содержимому


Сворачиваем блок категорий на малых разрешениях экрана (3.1.3, дефолтовый шаблон)


  • Вы не можете ответить в тему
Сообщений в теме: 14

#1 badisoft

    Продвинутый пользователь

  • Assistent vsupport.club
  • PipPipPip
  • 5075 сообщений
Репутация: 786
Мастер

Отправлено 01 March 2015 - 05:37 PM

Для какого блока делать такое сворачивание задается строкой

{if $binfo[b].url == 'category_tree.tpl.html'}


Пример работы - http://new.badisoft.ru

Довольно не сложно чуть доделать админку управления блоками, чтобы не лезть в код менять условие, а задавать такие блоки "выставлением галки".

Прикрепленные файлы

  • Прикрепленный файл  blocks.tpl.html   1.94К   44 Количество загрузок:

  • 2
http://cpu.badisoft.ru (тестовый сайт), http://badisoft.ru (модули)

#2 Lada

    Продвинутый пользователь

  • Download User
  • PipPipPip
  • 107 сообщений
Репутация: 7
Начинающий
  • ГородЧита

Отправлено 02 March 2015 - 08:44 AM

Для какого блока делать такое сворачивание задается строкой


{if $binfo[b].url == 'category_tree.tpl.html'}

Вы - талант! Все получилось лучше - некуда!!! Возник вопрос по вышеуказанному. Например хочу, что бы так-же сворачивался блок поиска, который у меня распложен слева. Файл блока - blocks/search_form.tpl.html
Как и где мне прописать {if $binfo.url == 'search_form.tpl.html'} ?
  • 0

#3 badisoft

    Продвинутый пользователь

  • Assistent vsupport.club
  • PipPipPip
  • 5075 сообщений
Репутация: 786
Мастер

Отправлено 02 March 2015 - 12:50 PM

Вы - талант!

Разве для того, чтобы открыть документацию на русском языке, прочитать и сделать так, как там написано нужен какой-то особый талант? На мой вгляд, талант особого рода нужен как раз для обратного - чтобы занимаясь shopCMS несколько лет до сих пор не прочитать ни одной документации.

Как и где мне прописать {if $binfo.url == 'search_form.tpl.html'} ?

{if $binfo[b].url == 'category_tree.tpl.html' || $binfo.url == 'search_form.tpl.html'}

  • 1
http://cpu.badisoft.ru (тестовый сайт), http://badisoft.ru (модули)

#4 Lada

    Продвинутый пользователь

  • Download User
  • PipPipPip
  • 107 сообщений
Репутация: 7
Начинающий
  • ГородЧита

Отправлено 02 March 2015 - 02:05 PM

Небольшая поправочка:
не
{if $binfo[b].url == 'category_tree.tpl.html' || $binfo.url == 'search_form.tpl.html'}
а
{if $binfo[b].url == 'category_tree.tpl.html' || $binfo[b].url == 'search_form.tpl.html'}

Так у меня сработало, но когда в эту строку добавляешь еще блоки, то они перестают складываться... :(
  • 0

#5 badisoft

    Продвинутый пользователь

  • Assistent vsupport.club
  • PipPipPip
  • 5075 сообщений
Репутация: 786
Мастер

Отправлено 02 March 2015 - 03:13 PM

Довольно не сложно чуть доделать админку управления блоками, чтобы не лезть в код менять условие, а задавать такие блоки "выставлением галки".

В "Управлении блоками" появится колонка "На планшете" с селектами, где для каждого блока можно будет выбрать его состояние при "планшетном" разрешении экрана (<992px), когда все блоки выстраиваются в вертикаль.
Вариантов три:
- "Как есть". Ничего не меняется относительно штатного шаблона.
- "Свернут". Блок изначально будет свернут с кнопкой для разворачивания.
- "Развернут". Блок изначально будет развернут с кнопкой для сворачивания.
- "Отключен". Блок не показывается вообще.

Посмотреть как работает можно на http://new.badisoft.ru

Прикрепленный файл  1.JPG   120.35К   50 Количество загрузок:

1. копируем файлы:

addon.php -> core/includes/admin/ ("ALTER TABLE ".BLOCKS_TABLE." ADD collapse TINYINT(1) DEFAULT 0")
blocks.tpl.html -> core/tpl/user/[шаблон]/ (либо вносим изменения, если файл уже правился)


2. в файле blocks_functions.php в функции GetAllBlocksAttributes()

вместо строки


$q = db_query("select bid, title, bposition, active, which, sort, html, url, admin from ".BLOCKS_TABLE." ORDER BY sort ASC");


вставляем


# BEGIN Collapse-Blocks
#$q = db_query("select bid, title, bposition, active, which, sort, html, url, admin from ".BLOCKS_TABLE." ORDER BY sort ASC");
$q = db_query("select bid, title, bposition, active, which, sort, html, url, admin, collapse from ".BLOCKS_TABLE." ORDER BY sort ASC");
# END Collapse-Blocks




3. в файле conf_blocks_edit.php

перед строкой


SortBlocks();


вставляем


# BEGIN Collapse-Blocks
foreach (ScanPostVariableWithId(array("collapse")) as $key => $val)
db_query("UPDATE ".BLOCKS_TABLE." SET collapse=".(int)$val['collapse']." WHERE bid=".(int)$key);
# END Collapse-Blocks



4. в файле conf_blocks_edit.tpl.html

4.1. после строки


<td align="right">{$smarty.const.BLOCKS_ACTIVE}</td>


вставляем


{* BEGIN Collapse-Blocks *}
<td align="center">На планшете</td>
{* END Collapse-Blocks *}


4.2. после строки


<td align="right">{if $blocks_edit[i][3] eq 1}<span style="color: #339933">{$smarty.const.BLOCKS_ON}</span>{else}<span style="color: #BB0000">{$smarty.const.BLOCKS_OFF}</span>{/if}&nbsp;</td>


вставляем


{* BEGIN Collapse-Blocks *}
<td>
{if $blocks_edit[i][3] eq 1}
<select name="collapse_{$blocks_edit[i][0]}">
<option value="0" {if $blocks_edit[i].collapse == 0} selected{/if}>Как есть</option>
<option value="1" {if $blocks_edit[i].collapse == 1} selected{/if}>Свернут</option>
<option value="2" {if $blocks_edit[i].collapse == 2} selected{/if}>Развернут</option>
<option value="3" {if $blocks_edit[i].collapse == 3} selected{/if}>Отключен</option>
</select>
{/if}
</td>
{* END Collapse-Blocks *}





5. в файле blocks.php

вместо


$result = db_query("select bid, title, content, bposition, which, sort, html, url, admin, pages, dpages, categories, products FROM ".BLOCKS_TABLE." WHERE active=1 ORDER BY sort ASC");


вставляем


# BEGIN Collapse-Blocks
#$result = db_query("select bid, title, content, bposition, which, sort, html, url, admin, pages, dpages, categories, products FROM ".BLOCKS_TABLE." WHERE active=1 ORDER BY sort ASC");
$result = db_query("select * FROM ".BLOCKS_TABLE." WHERE active=1 ORDER BY sort ASC");
# END Collapse-Blocks

Прикрепленные файлы

  • Прикрепленный файл  addon.php   213байт   54 Количество загрузок:
  • Прикрепленный файл  blocks.tpl.html   2.23К   60 Количество загрузок:

  • 1
http://cpu.badisoft.ru (тестовый сайт), http://badisoft.ru (модули)

#6 Lada

    Продвинутый пользователь

  • Download User
  • PipPipPip
  • 107 сообщений
Репутация: 7
Начинающий
  • ГородЧита

Отправлено 02 March 2015 - 05:25 PM

Замечательно! А вот бы еще один пунктик добавить - Отключен... То есть при заходе с планшета что бы вообще не показывать какой-нибудь второстепенный блок... :) а при заходе с компа он бы был слева или справа...
Например блок "Просмотренные товары" при заходе с компа - пусть показывается, а при заходе с планшета гасится, будто его и нет.
  • 0

#7 badisoft

    Продвинутый пользователь

  • Assistent vsupport.club
  • PipPipPip
  • 5075 сообщений
Репутация: 786
Мастер

Отправлено 02 March 2015 - 07:37 PM

Замечательно! А вот бы еще один пунктик добавить - Отключен... То есть при заходе с планшета что бы вообще не показывать какой-нибудь второстепенный блок...

Да, хорошая мысль. сделал. Заодно:
- селекты показываются только у включенных блоков.
- колонка перенесена правее, рядом с колонкой "Включен/Выключен".

В исходном сообщении уже исправленное.
  • 1
http://cpu.badisoft.ru (тестовый сайт), http://badisoft.ru (модули)

#8 FusSheva

    Продвинутый пользователь

  • Assistent vsupport.club
  • PipPipPip
  • 210 сообщений
Репутация: 7
Начинающий

Отправлено 06 March 2015 - 01:05 PM

Все хорошо. Но есть один нюанс.
Это работает с блоками из файла. А в блоках созданных просто так (Создать блок) эта фишка не работает.
Верней она работает, но не так как нужно. А именно...
К примеру создаю простой блок и вставляю туда картинку. Выставляю сворачивать блок.
Сжимаю окно браузера блок сворачивается (как и должно быть) затем, разворачиваю окно браузера - блок разворачивается но его содержимое (вставленная картинка) не появляется.

Выхожу из ситуации создавая нужный блок_файл.tpl.html в папке с блоками. Но это как мне кажется не есть ГУД.
  • 0
Каждый человек способен на многое. Но к сожалению, не каждый знает на что он способен.

#9 badisoft

    Продвинутый пользователь

  • Assistent vsupport.club
  • PipPipPip
  • 5075 сообщений
Репутация: 786
Мастер

Отправлено 06 March 2015 - 04:12 PM

Но это как мне кажется не есть ГУД.

Пока могу только посочувствовать. Ближайшие дни мне, скорее всего, будет не до этой проблемы.
  • 1
http://cpu.badisoft.ru (тестовый сайт), http://badisoft.ru (модули)

#10 badisoft

    Продвинутый пользователь

  • Assistent vsupport.club
  • PipPipPip
  • 5075 сообщений
Репутация: 786
Мастер

Отправлено 06 March 2015 - 07:39 PM

Ближайшие дни мне, скорее всего, будет не до этой проблемы.

Глянул одним глазом - все банально. Я изначально делал это только для каталога, поэтому там остался код ТОЛЬКО для блоков-из-файла.
Исправил. Перезалил blocks.tpl.html
  • 2
http://cpu.badisoft.ru (тестовый сайт), http://badisoft.ru (модули)

#11 badisoft

    Продвинутый пользователь

  • Assistent vsupport.club
  • PipPipPip
  • 5075 сообщений
Репутация: 786
Мастер

Отправлено 12 March 2015 - 02:07 PM

В верхнем горизонтальном меню проставлено data-target=".navbar-collapse", т.е. сворачиваться-разворачиваться будут ВСЕ элементы с эти классом. Видимо, не задумываясь был склонирован пример из доки по bootstrap. Пока такое меню одно (а штатно оно одно), то и фиг с ним, но в этой теме описано, как точно такие же "сворачивания" сделать у заданных блоков.

Соответственно, при использовании этого дополнения разворачивание/сворачивание вернего меню приведет и к разворачиванию/сворачиванию все остальных "разворачиваемых" блоков.

Исправление:

В файле index.tpl.html

в строках

<button type="button" class="navbar-toggle" data-toggle="collapse" data-target=".navbar-collapse">
<a class="navbar-brand" data-toggle="collapse" data-target=".navbar-collapse" style="cursor: pointer">Меню</a>

меняем ".navbar-collapse" на "#topmenu",
а в строке

<div class="collapse navbar-collapse">

добавляем id="topmenu"

PS. Это по любому полезно сделать, т.к. любое появление еще одного такого меню на странице (а верхнее меню есть всегда) приведет к описанному эффекту.
  • 2
http://cpu.badisoft.ru (тестовый сайт), http://badisoft.ru (модули)

#12 badisoft

    Продвинутый пользователь

  • Assistent vsupport.club
  • PipPipPip
  • 5075 сообщений
Репутация: 786
Мастер

Отправлено 12 March 2015 - 08:48 PM

Да, хорошая мысль. сделал. Заодно: - селекты показываются только у включенных блоков.

Сделать-то сделал, а в инструкцию не добавил.
Теперь добавил.
п. 4.2.
  • 0
http://cpu.badisoft.ru (тестовый сайт), http://badisoft.ru (модули)

#13 FusSheva

    Продвинутый пользователь

  • Assistent vsupport.club
  • PipPipPip
  • 210 сообщений
Репутация: 7
Начинающий

Отправлено 12 March 2015 - 08:51 PM

Может быть отдельную тему создать по этому шаблону "Bootstap-ShopCMS". :)
Потому как уже скопилось много вопросов по шаблону, как и появилось много ответов.
Самый конечно оптимальный вариант - это изучать Bootstap, (ресурсов в сети по этому фреймворку валом), и самому во всем разбираться. Но для чего тогда наше сообщество? :)
  • 0
Каждый человек способен на многое. Но к сожалению, не каждый знает на что он способен.

#14 makki

    Продвинутый пользователь

  • Assistent vsupport.club
  • PipPipPip
  • 148 сообщений
Репутация: 7
Начинающий

Отправлено 10 February 2016 - 01:35 PM

Чтобы показывать блок только на планшете, добавляем еще одну опцию в select в файле conf_blocks_edit.tpl.html
<option value="4" {if $blocks_edit[i].collapse == 4} selected{/if}>Только на планшете</option>

В blocks.tpl.html добавляем условие. Правка будет выглядеть так:
{* BEGIN Collapse-Blocks *}
{if $binfo[b].collapse}
{if $binfo[b].collapse == 4}
<div class="panel panel-default visible-xs visible-sm">
{if $postheader ne ""}<div class="panel-heading">{$postheader}</div>{/if}
<div class="panel-body">{if $binfo[b].html eq 1}{include file="blocks/`$binfo[b].url`" blocknum=$smarty.section.b.index}{else}{$binfo[b].content}{/if}</div>
</div>
{else}
<div class="panel panel-default{if $binfo[b].collapse == 3} hidden-xs hidden-sm{/if}">
  {if $postheader ne ""}<div class="panel-heading hidden-xs hidden-sm">{$postheader}</div>{/if}
  <div class="navbar navbar-default" style="margin-bottom:0;border:0;border-bottom:1px solid transparent;">
    <div class="navbar-header visible-xs visible-sm" style="background-image: linear-gradient(to bottom,#FEFEFE 0px,#E7E7E7 100%);background-repeat:repeat-x;color:#333;background-color:#F5F5F5;border-color:#DDD;">
	  <button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#toggle_{$binfo[b].bid}">
	    <span class="icon-bar"></span>
	    <span class="icon-bar"></span>
	    <span class="icon-bar"></span>
	  </button>
	  {if $postheader ne ""}<div class="navbar-brand" data-toggle="collapse" data-target="#toggle_{$binfo[b].bid}" style="cursor: pointer">{$postheader}</div>{/if}
    </div>
    <div class="collapse{if $binfo[b].collapse == 2} in{/if} navbar-collapse panel-body" id="toggle_{$binfo[b].bid}" style="padding-bottom:20px;">{if $binfo[b].html eq 1}{include file="blocks/`$binfo[b].url`" blocknum=$smarty.section.b.index}{else}{$binfo[b].content}{/if}</div>
  </div>
</div>
{/if}
{else}
{* END Collapse-Blocks *}

  • 0

#15 jiykka

    Пользователь

  • Download User
  • PipPip
  • 29 сообщений
Репутация: 0
Начинающий

Отправлено 08 June 2016 - 09:14 PM

Подскажите пожалуйста как вывести блок который выводится "Только на планшете" не в развернутом виде а в сложенном?
  • 0