Создание нового макета для модулей

Макте шаблона определяет выравнивание и пропорции набора модулей в определенной позиции.
Например, они могут быть выравнены вертикально или горизонтально. По умолчанию Warp Framework предлагает на выбор три различных макета модулей. Вы можете найти файлы для этих макетов в папке /warp/layouts/modules/layout/.

Основные макеты модулей

equal.php

Данный макет подразумевает, что в позиции каждый модуль имеет одинаковую размерность, и они отображаются на одной горизонтали рядом друг с другом. Существует поддержка до 6 модулей. И вы, конечно же, можете определить большее количество. Далее представлен пример кода, который определяет 4 модуля одинаковой размерности (100 делится на 4 равных части по 25)stack.php
Все модули имеет полную ширину и отображаются вертикально, один над другим. Пример кода:
case 4: 
printf('<div class="grid-box width25 grid-h">%s</div>', $modules[0]);
printf('<div class="grid-box width25 grid-h">%s</div>', $modules[1]);
printf('<div class="grid-box width25 grid-h">%s</div>', $modules[2]);
printf('<div class="grid-box width25 grid-h">%s</div>', $modules[3]);
break;

stack.php

Все модули имеет полный размер и отображаются на вертикали, один над другим. Пример кода:
printf('<div class="grid-box width100 grid-v">%s</div>', $module); 

double.php

Данный макет устанавливает различные пропорции для модулей в позиции. Например, если у вас з модуля, первый имеет вдвое больше размер, чем два другие. Пример кода, устанавливающий 3 модуля, у которых первый будет занимать вдвое больше места.
case 3: 
printf('<div class="grid-box width50 grid-h">%s</div>', $modules[0]);
printf('<div class="grid-box width25 grid-h">%s</div>', $modules[1]);
printf('<div class="grid-box width25 grid-h">%s</div>', $modules[2]);
break;

Как установить макет модулей на позицию

В настройках вашего шаблона у вас есть возможность установить различные макеты модулей для различных позиций. Просто нажмите на вкладке Профили (Profiles) , спуститесь вниз до настроек макетов (Layout Settings) и выберите для какой-нибудь позиции нужный макет из выпадающего списка, предварительно поставив галочку напротив позиции для возможности редактирования параметра.

Как добавить новый макет модулей

Чтобы создать новый макет модулей, добавьте новый файл в папку /layouts/modules/layouts. Лучший способ в данном случае - скопировать существующий файл одного из макетов модулей, переименовать его и отредактировать. Для примера, скопируйте файл /warp/layouts/modules/layouts/double.php в /warp/layouts/modules/layouts/double.php. Это новый и измененный макет модулей, переопределяющий значения макета по умолчанию. Или просто переименуйте его, тем самым будет создан новый макет. Вновь созданный макет модулей должен быть доступен в настройках шаблона.

Пример: КАк добавить больше Колонок

Общая идея будет заключаться в создании макета, поддерживающего больше чем 6 колонок. Скажем, вы хотите иметь 7 модулей одинакового размера, расположенных рядом друг с другом. В таком случае вы должны скопировать /warp/layouts/modules/layouts/equal.php в /layouts/modules/layouts/. В своей копии файла equal.php, найдите участок кода case 6 (в случае 6-ти), который должен выглядить вот так.
case 6: 
printf('<div class="grid-box width16 grid-h">%s</div>', $modules[0]);
printf('<div class="grid-box width16 grid-h">%s</div>', $modules[1]);
printf('<div class="grid-box width16 grid-h">%s</div>', $modules[2]);
printf('<div class="grid-box width16 grid-h">%s</div>', $modules[3]);
printf('<div class="grid-box width16 grid-h">%s</div>', $modules[4]);
printf('<div class="grid-box width16 grid-h">%s</div>', $modules[5]);
break;
Скопируйте полностью этот блок, и вставьте его непосредственно под копированным кодом, но обязательно до блока кода default. Затем продублируйте последнюю строчку с состоянием printf и измените в ней $modules[5] на $modules[6]. Теперь у вас есть 7 колонок вместо 6, и ширина каждого модуля должна быть подкорректирована. Если разделить 100% на 7, получится примерно по 14%, поэтому мы изменим CSS класс с width16 до width14. С перечисленными изменениями новый блок должен выглядить так.
case 7: printf('<div class="grid-box width14 grid-h">%s</div>', $modules[0]); printf('<div class="grid-box width14 grid-h">%s</div>', $modules[1]); printf('<div class="grid-box width14 grid-h">%s</div>', $modules[2]); printf('<div class="grid-box width14 grid-h">%s</div>', $modules[3]); printf('<div class="grid-box width14 grid-h">%s</div>', $modules[4]); printf('<div class="grid-box width14 grid-h">%s</div>', $modules[5]); printf('<div class="grid-box width14 grid-h">%s</div>', $modules[6]); break;
CSS класс в этом случае отсутствует (все существующие классы ширины расположены в /warp/css/layout.css), поэтому вы должны добавить следующий фрагмент в существующую таблицу стилей. Вы можете добавить его к существующему стилю css/layout.css, или добавить в новый, созданный вами стиль - которые будет сохранен при обновлении шаблона или фреймворка.
.width14 { width: 14.2%; } 

Пример: создание собственного размера для распределения модулей в позиции

По умолчанию, вы можете выбирать между тремя макетами для позиций модулей: equal, double, stack, которые описаны выше.Если вы желаете видеть собственное распределение модулей в позиции - допустим, 35%/ 30%/ 35% для трех модулей в ряду, то вам придется создать собственный макет модулей. Чтобы сделать это, создайте новый файл в /layouts/modules/layouts/ - назовем его для примера custom.php. Так как мы решили сделать макет для трех модулей в этом примере, содержание файла custom.php должно быть похоже на следующее:
<?php 
switch (count($modules)) {
case 3:
printf('<div class="grid-box width35 grid-h">%s</div>', $modules[0]);
printf('<div class="grid-box width30 grid-h">%s</div>', $modules[1]);
printf('<div class="grid-box width35 grid-h">%s</div>', $modules[2]);
break;
default: echo '<div class="grid-box width100 grid-h">Error: The current number of modules is not supported in this layout. If you need more you need to change this custom layout.</div>';
}
Как вы можете видеть, мы используем CSS классы width35 и width30. Они, соответственно, отсутствуют (все существующие классы ширины расположены в /warp/css/layout.css), поэтому вы должны добавить следующие фрагменты в существующую таблицу стилей. Вы можете добавить его к существующему файлу css/layout.css или к собственному стилю - который сохранится при обновлении шаблона или фреймворка.
.width30 { width: 30%; } .width35 { width: 35%; }
 
  • Четверг, 31 мая 2012

Оставить комментарий

Вы комментируете как Гость.

beget