26 (2015-09-17 17:17:49 отредактировано pavlexx)

Re: UiKit framework. Что за зверь, и как подружить с GetSimple!?

0zz пишет:

тот же бутстрап выглядит логичнее в некоторых моментах:

<nav class="navbar navbar-default navbar-fixed-top">

UiKit:

<nav class="uk-navbar свой-класс-для-fixed">

или так:

<nav class="uk-navbar" data-uk-sticky>

и не путайте navbar-fixed-top из Bootstrap с data-uk-sticky из UiKit!
В UiKit за "фиксацию" элементов отвечает js-компонент, который предоставляет много возможностей в настройке поведения элементов на странице! wink

Поблагодарить за помощь можно через Яндекс!

Поделиться

27

Re: UiKit framework. Что за зверь, и как подружить с GetSimple!?

ну что-ж, по-тихоньку приучаюсь.. Часто приходится искать в мануалах. Несколько помогли видеоуроки на офиц.сайте... Хочется еще туториалов ))

Вопрос, как вы заменяете генерируемые GS названия классов на UiKit-овские? например, элемент открытой страницы в GS имеет класс "current", а в UiKit - "uk-active". Просто находите свойства и прописываете в своем CSS?

Поделиться

28 (2015-10-26 12:30:52 отредактировано pavlexx)

Re: UiKit framework. Что за зверь, и как подружить с GetSimple!?

Всем привет!

Продолжим верстать меню и сегодня покажу как сделать выпадающее меню не прибегая к плагинам (используем только возможности предоставленные UiKit, например компонент Dropdown).

1. Создаем компонент, например menu со следующим кодом:

<?php
$s = array('current', 'activepath', 'currentpath', 'open');
$r = array('uk-active', 'active', 'active',  'uk-parent');
$c = str_replace($s, $r, $item->classes);
?>
<?php if ($item->isOpen) { ?>
<li class="<?php echo $c; ?>" data-uk-dropdown>
    <a href="<?php echo htmlspecialchars($item->link); ?>">
      <?php echo htmlspecialchars($item->text); ?>
      <i class="uk-icon-caret-down"></i>
    </a>
<div class="uk-dropdown uk-dropdown-navbar">
    <ul class="uk-nav uk-nav-navbar">
      <?php $item->outputChildren(); ?>
    </ul>
</div>
</li>
  <?php } else { ?>
<li class="<?php echo $c; ?>">
    <a href="<?php echo htmlspecialchars($item->link); ?>">
      <?php echo htmlspecialchars($item->text); ?>
    </a>
</li>
<?php } ?>

2. В шаблоне заменяем код:

<ul class="uk-navbar-nav">
  <?php get_i18n_navigation(return_page_slug(),0,99,I18N_SHOW_NORMAL); ?>
</ul>

на следующий код:

<ul class="uk-navbar-nav">
  <?php get_i18n_navigation(return_page_slug(),0,1,I18N_SHOW_MENU, 'menu'); ?>
</ul>

Для стилизации выпадающего меню можно изменить следующие классы (для примера):

.uk-dropdown-navbar {
  width: 220px;
  background: #222;
}
.uk-dropdown-navbar li > a {
  color: #fff;
  padding: 10px 15px;
}
.uk-dropdown-navbar li > a:hover {
    color: #e7b963;
    background: #444;
}
.uk-dropdown-navbar .uk-active a {
    color: #e7b963;
}

или создаете свой класс и пропишите свойства, а лучше измените переменные в LESS/SASS и скомпилируйте CSS!

Расписывать подробно data-uk-dropdown и uk-dropdown, uk-dropdown-navbar не буду, попробуйте сами посмотреть описание на странице и разобраться, что выполняют те или иные классы и параметры data.

На сегодня все, спасибо за внимание! wink

Поблагодарить за помощь можно через Яндекс!
+ 0zz

Поделиться

29

Re: UiKit framework. Что за зверь, и как подружить с GetSimple!?

работает, спасибо! код в компоненте только для 2-х уровневого меню?

Поделиться

30 (2015-09-21 09:48:54 отредактировано pavlexx)

Re: UiKit framework. Что за зверь, и как подружить с GetSimple!?

0zz пишет:

работает, спасибо! код в компоненте только для 2-х уровневого меню?

Пожалуйста!

У меня пока не было необходимости делать меню более 2-х уровней!

Поблагодарить за помощь можно через Яндекс!

Поделиться

31

Re: UiKit framework. Что за зверь, и как подружить с GetSimple!?

Если вы хотите посмотреть как выглядит тот или иной элемент UiKit на странице
и с разными параметрами - перейдите на страницу с примерами
Наверху, в выпадающем списке выбираете нужный компонент, а рядом в поле - тему оформления.

Поблагодарить за помощь можно через Яндекс!

Поделиться

32 (2015-09-25 12:44:34 отредактировано pavlexx)

Re: UiKit framework. Что за зверь, и как подружить с GetSimple!?

Всем привет!

Продолжим разбирать разметку с использованием UiKit!
Чтобы правильно понимать концепцию UiKit - нужно уяснить главное, фреймворк разработан в соответствии с принципами подхода mobile-first, поэтому имейте это в виду при разработке своего сайта!
Внимательно посмотрите и запомните какие размеры устройств использует UiKit по умолчанию (хотя вы можете их заменить на свои значения).
UiKit использует сетку из 10 колонок. Размеры могут быть, например, от 1/10 до 9/10. Подробнее смотрите в мануале!

Принцип создания сетки UiKit: создается div с классом главного элемента .uk-grid, внутри этого div создаются дочерние элементы с классами .uk-width-* с указанием размерности, например .uk-width-1-2

Рассмотрим простой пример, когда имеется блок основного контента и сайдбар справа.
Если вы верстаете секциями, то создаем следующий блок:

<div class="uk-block">
  .....
</div>

и в него помещаете контейнер, который будет располагаться по центру и подстраивать свою ширину в зависимости от ширины экрана:

<div class="uk-block">
  <div class="uk-container uk-container-center">
    .....
  </div>
</div>

если вы не верстаете секциями - сразу размещаете контейнер:

<div class="uk-container uk-container-center">
  .....
</div>

далее, размещаем в контейнере сетку:

<div class="uk-container uk-container-center">
  <div class="uk-grid">
    .....
  </div>
</div>

для того, чтобы автоматически добавлялись отступы между блоками сетки - добавим data параметр:

<div class="uk-container uk-container-center">
  <div class="uk-grid" data-uk-grid-margin>
    .....
  </div>
</div>

добавляем блок основного контента (пусть он занимает 3/4 всей ширины) и сайдбар (1/4 ширины):

<div class="uk-container uk-container-center">
  <div class="uk-grid" data-uk-grid-margin>
     <div class="uk-width-3-4">...</div> // контент
     <div class="uk-width-1-4">...</div> // сайдбар
  </div>
</div>

Собственно на этом простая разметка с использованием сетки UiKit закончена!

Если нужна адаптивная сетка, то вы должны использовать немного другие классы.
И вот тут я хочу еще раз обратить внимание на то, что UiKit ...... mobile-first!

Если мы хотим чтобы основной контент занимал 3/4 всей ширины, сайдбар 1/4 ширины только на устройствах с размером экрана больше чем 768px, а на меньших экранах блоки занимали всю ширину экрана (т.е. располагались столбиком, друг под другом) - то наша разметка примет следующий вид:

<div class="uk-container uk-container-center">
  <div class="uk-grid" data-uk-grid-margin>
     <div class="uk-width-medium-3-4">...</div> // контент
     <div class="uk-width-medium-1-4">...</div> // сайдбар
  </div>
</div>

Нет необходимости прописывать классы для отображения на всех устройствах!
Главное понять, что указывая uk-width-medium-* - имеются ввиду устройства с экраном 768px и больше, т.е. 768px, 960px, 1200px ...!
Но если вы хотите, чтобы на больших экрана размеры блоков были другие, то нужно добавить еще один класс:

<div class="uk-container uk-container-center">
  <div class="uk-grid" data-uk-grid-margin>
     <div class="uk-width-medium-3-4 uk-width-large-4-6">...</div> // контент
     <div class="uk-width-medium-1-4 uk-width-large-2-6">...</div> // сайдбар
  </div>
</div>

Что мы получили: на устройствах с экраном до 768px блоки занимают всю ширину экрана (т.е. располагаются в один столбик), на устройствах с экраном 768px и больше - контент 3/4 всей ширины, сайдбар 1/4 ширины, а на устройствах с экраном 960px и больше - контент 4/6 всей ширины, сайдбар 2/6 ширины.
В мануале более подробно расписаны все возможности применения сетки UiKit, изучаем и пробуем!

На этом на сегодня все! Надеюсь, что все доходчиво пояснил!?

Поблагодарить за помощь можно через Яндекс!

Поделиться

33

Re: UiKit framework. Что за зверь, и как подружить с GetSimple!?

то что нужно, спасибо! а то я все классы прописывал - small, medium, large для каждого контейнера roll
Продолжайте, пожалуйста!
Если есть еще примеры интеграции с GS, как с меню, было бы интересно узнать!

Поделиться

34 (2015-09-26 01:57:02 отредактировано pavlexx)

Re: UiKit framework. Что за зверь, и как подружить с GetSimple!?

Всем привет!

Чтобы уже закончить тему с основной разметкой на UiKit - приведу пример оформления подвала сайта!

<div class="uk-container uk-container-center">
  <div class="uk-grid" data-uk-grid-margin>
  <?php get_footer(); ?>
    <div class="uk-width-medium-1-3">
      <div class="uk-panel uk-text-center">
        <h3>E-Mail</h3>
        <?php get_component('send-mail'); ?>
      </div>
    </div>
    <div class="uk-width-medium-1-3">
      <div class="uk-panel uk-text-center">
        <h3>Поделиться</h3>
        <?php get_component('follow-vk'); ?>
        <?php get_component('follow-tw'); ?>
        <?php get_component('follow-fb'); ?>
      </div>
    </div>
    <div class="uk-width-medium-1-3">
      <div class="uk-panel uk-text-center">
        <h3><?php get_site_name(); ?></h3>
        Copyright &copy; <?php echo date('Y'); ?> <a href="privacy-policy" >Privacy Policy</a>
      </div>
    </div>
  </div>
</div>

Для социальных кнопок я использую небольшой js плагин с некотрыми доработками. Вы можете скачать мой вариант и использовать в своих проектах.

Код компонентов с кнопками выглядит следующим образом:

follow-vk

<a href="#" class="goodshare" 
  data-type="vk" 
  data-url="http://site.ru"
  data-title="Сайт...... | Название">
  <i class="uk-icon-small uk-icon-vk"></i>
</a>

follow-fb

<a href="#" class="goodshare" 
  data-type="fb" 
  data-url="http://site.ru"
  data-title="Сайт...... | Название">
  <i class="uk-icon-small uk-icon-facebook"></i>
</a>

follow-tw

<a href="#" class="goodshare" 
  data-type="tw" 
  data-url="http://site.ru"
  data-title="Сайт...... | Название">
  <i class="uk-icon-small uk-icon-twitter"></i>
</a>

Для того, чтобы в окне "поделиться ссылкой" автоматом вставлялось подготовленное описание страницы и картинка - пропишите в секции head meta-описания разметки Open Graph:

<meta property="og:title" content="<?php get_page_clean_title(); ?> - <?php get_site_name(); ?>">
<meta property="og:description" content="Ваше описание страницы или сайта!">
<meta property="og:image" content="<?php get_site_url(); ?>data/uploads/site.jpg">
<meta property="og:type" content="website">
<meta property="og:url" content= "<?php get_site_url(); ?>">

На этом все! Спасибо за внимание и до новых встреч! wink

Поблагодарить за помощь можно через Яндекс!
+ 0zz

Поделиться

35

Re: UiKit framework. Что за зверь, и как подружить с GetSimple!?

А какая принципиальная разница между uk-block и uk-container?

Поделиться

36

Re: UiKit framework. Что за зверь, и как подружить с GetSimple!?

Ну если вы не видите разницы... - предлагаю вам заглянуть в код этих компонентов:

/* ========================================================================
   Component: Block
 ========================================================================== */
.uk-block {
  position: relative;
  box-sizing: border-box;
  padding-top: 20px;
  padding-bottom: 20px;
}
/* Phone landscape and bigger */
@media (min-width: 768px) {
  .uk-block {
    padding-top: 50px;
    padding-bottom: 50px;
  }
}
/*
 * Micro clearfix to make blocks more robust
 */
.uk-block:before,
.uk-block:after {
  content: "";
  display: table;
}
.uk-block:after {
  clear: both;
}
/* ========================================================================
   Component: Utility
 ========================================================================== */
/* Container
 ========================================================================== */
.uk-container {
  box-sizing: border-box;
  max-width: 980px;
  padding: 0 25px;
}
/* Large screen and bigger */
@media (min-width: 1220px) {
  .uk-container {
    max-width: 1200px;
    padding: 0 35px;
  }
}
/*
 * Micro clearfix
 */
.uk-container:before,
.uk-container:after {
  content: "";
  display: table;
}
.uk-container:after {
  clear: both;
}
/*
 * Center container
 */
.uk-container-center {
  margin-left: auto;
  margin-right: auto;
}

Если не понятно и сами не разберетесь - дайте знать, я распишу подробно! Но мне кажется, зная CSS, вы сами увидите разницу! wink

Поблагодарить за помощь можно через Яндекс!

Поделиться

37

Re: UiKit framework. Что за зверь, и как подружить с GetSimple!?

А можно стилизовать форму поиска и вывод результатов с классами от UiKit вместо дефолтных?
Использую, конечно, плагины от Mvlcek для вывода формы и результатов..

Поделиться

38

Re: UiKit framework. Что за зверь, и как подружить с GetSimple!?

Конечно можно!
Я для себя немного доработал плагин от Mvlcek, теперь можно задавать классы для блока результатов!
Могу выложить файлик измененный!

Поблагодарить за помощь можно через Яндекс!

Поделиться

39

Re: UiKit framework. Что за зверь, и как подружить с GetSimple!?

аа, ну так то да, я тоже пока вручную поменял имена классов в его файлах.. Но мне понравилось, как вы сделали это "на лету" в примере с навигацией выше.. ))

Поделиться

40

Re: UiKit framework. Что за зверь, и как подружить с GetSimple!?

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

Поблагодарить за помощь можно через Яндекс!

Поделиться

41

Re: UiKit framework. Что за зверь, и как подружить с GetSimple!?

Разместил здесь свое решение! Заходите, читайте, скачивайте и используйте в работе!

Поблагодарить за помощь можно через Яндекс!

Поделиться

42 (2015-11-18 18:51:30 отредактировано pavlexx)

Re: UiKit framework. Что за зверь, и как подружить с GetSimple!?

Всем доброго времени суток! wink

Хочу поделиться своим плагином для увеличения изображений по клику и создания простых галерей изображений.
Архив с плагином можно скачать по ссылке.
Устанавливается стандартно, в папку с плагинами, настроек никаких нет.

ВАЖНО!!!
Для корректной работы плагина разместите код

<?php get_footer(); ?>

после подключения jQuery и скриптов UiKit. И не забудьте подключить компонент Lightbox!

Все что от вас требуется - вставить в текст миниатюру изображения (нажав в визуальном редакторе соответствующую кнопку), а плагин сделает все сам!
Причем он будет отслеживать как вставлено изображение:
если это миниатюра - по клику изображение увеличивается, если вставлен оригинал картинки - никакого увеличения не будет!
Если нужно организовать галерею изображений и осуществлять перелистывание картинок - просто вписывайте в поле "Класс CSS" одинаковое слово на английском для группы изображений, например group1...
При заполнении поля "Альтернативный текст" - данная информация будет выводиться в подписи к изображению.

Так же, мой плагин удаляет теги <p>...</p> вокруг изображений.

Используйте этот плагин при разработке на UiKit.

Всем успехов в начинаниях! wink

Поблагодарить за помощь можно через Яндекс!
+ 0zz

Поделиться

43

Re: UiKit framework. Что за зверь, и как подружить с GetSimple!?

Подскажите, пожалуйста, как сделать, чтобы для определённого элемента в мобильной версии применялись другие стили? Ничего не пришло в голову лучше чем это:

<div id="block_outer" class="uk-width-medium-7-10">
    <div id="block_inner">
        some text...
    </div>
</div>

<style>
    #block_outer #block_inner {
        color: green;
    }

    #block_outer[style*="min-height"] #block_inner {
        color: red;
    }
<style>

Но иногда мигать начинает. Видимо есть более правильный способ это сделать, может быть через javascript. К сожалению, мои познания в uikit очень скромны.

Поделиться

44 (2016-02-07 11:18:51 отредактировано pavlexx)

Re: UiKit framework. Что за зверь, и как подружить с GetSimple!?

Приветствую!

Так, а причем здесь сразу UiKit? wink
Используйте медиа запросы, например так:

@media (max-width: 479px) {
  .pa-hidden-mini {
    display: none; 
  } 
}

А если желаете использовать только возможности UiKit - можете создать элемент и прописать класс uk-visible-small для того чтобы он был виден только на мобильных устройствах и прописывайте дополнительно свой класс.

О классах UiKit можете посмотреть например здесь.

Поблагодарить за помощь можно через Яндекс!

Поделиться

45

Re: UiKit framework. Что за зверь, и как подружить с GetSimple!?

Я только начал изучать UiKit, до этого Bootstrap пользовался, и первое что бросилось в глаза - это дублирование меню для мобильной и десктопной версии. Я правильно понял, это так?

Если так, то это не есть хорошо для ПС!

Поделиться

46

Re: UiKit framework. Что за зверь, и как подружить с GetSimple!?

gradov81 пишет:

Если так, то это не есть хорошо для ПС!

давайте-ка не будем голословны, и тут же всем объясним - почему это не хорошо, и желательно со ссылками на авторитетные источники smile

Поддержать GetSimple CMS по-русски ЯДом

Сайт olsv64

Поделиться

47 (2016-02-13 10:09:11 отредактировано pavlexx)

Re: UiKit framework. Что за зверь, и как подружить с GetSimple!?

Да, для мобильного меню создается дополнительный контейнер т.к. в UiKit меню сделано далеко не так как в Bootstrap!
И я, например, не вижу решения как его можно сделать в таком виде не прибегая к дополнительному контейнеру!?
Посмотрите Foundation, там тоже меню организовано таким же образом, а на этом фреймворке большинство проф. решений делается.
Мне тоже не понятно, почему это не хорошо для ПС!?

Если что, YOOtheme на UiKit делает многие платные темы для Joomla и WordPress!

Поблагодарить за помощь можно через Яндекс!

Поделиться

48 (2016-12-05 13:27:25 отредактировано shivos)

Re: UiKit framework. Что за зверь, и как подружить с GetSimple!?

pavlexx пишет:

2. В шаблоне заменяем код:

<ul class="uk-navbar-nav">
  <?php get_i18n_navigation(return_page_slug(),0,99,I18N_SHOW_NORMAL); ?>
</ul>

на следующий код:

<ul class="uk-navbar-nav">
  <?php get_i18n_navigation(return_page_slug(),0,1,I18N_SHOW_MENU, 'menu'); ?>
</ul>

Я так и сделал, в десктоп-версии всё ок, но в мобильной почему-то многоуровневое меню не получается многоуровневым, как у создателей - может подскажете что и где прописать (или на что обратить внимание), чтобы меню получилось выпадающим? Благодарю.

Поделиться

49

Re: UiKit framework. Что за зверь, и как подружить с GetSimple!?

потому что для мобильного меню код другой

<!-- .uk-nav-offcanvas -->
<ul class="uk-nav uk-nav-offcanvas uk-nav-parent-icon uk-margin-bottom uk-margin-top" data-uk-nav> 
<!-- data-uk-nav="{multiple:true}" -->
<?php function_exists('get_i18n_navigation') ? get_i18n_navigation(return_page_slug(),0,99,I18N_SHOW_MENU,'off-menu') : get_navigation(get_page_slug(FALSE)); ?> 
</ul>
<!-- /.uk-nav-offcanvas -->

компонент

<?php
$s = array('current', 'activepath', 'currentpath', 'open');
$r = array('uk-active', 'active', 'active', 'uk-parent');
$c = str_replace($s, $r, $item->classes);
?>
<li class="<?php echo $c; ?>">
  <?php if ($item->isOpen) { ?>
    <a href="<?php echo htmlspecialchars($item->link); ?>">
      <?php echo htmlspecialchars($item->text); ?>
    </a>
    <ul class="uk-nav-sub">
       <?php $item->outputChildren(); ?>
    </ul>    
  <?php } else { ?>
    <a href="<?php echo htmlspecialchars($item->link); ?>">
      <?php echo htmlspecialchars($item->text); ?>
    </a>    
  <?php } ?>
</li>
Поддержать GetSimple CMS по-русски ЯДом

Сайт olsv64

Поделиться

50

Re: UiKit framework. Что за зверь, и как подружить с GetSimple!?

YES!!!

Поделиться