Deprecated: Methods with the same name as their class will not be constructors in a future version of PHP; GeSHi has a deprecated constructor in /var/www/u2955091/data/www/drupalfly.ru/libraries/geshi/geshi.php on line 259

Блоки одинаковой высоты независимо от содержимого.

23.05.2016

Всем привет! Помогите пожалуйста разобраться со следующей задачей.

Необходимо создать вот такую страницу: https://yadi.sk/i/-ktAWQuVrvWAk

Проблема заключается в том что блоки должны быть одинаковой высоты, при этом дизайн адаптивный.

При адаптивной дизайне мы не можем использовать таблицу или сетку модуля views, остаются HTML-список и Неформатированный список, но как в них объединить 3 элемента в одну строку не понимаю. Объединять их нужно чтобы задать вертикальные градиенты родительскому элементу этих блоков. Так можно будет сделать их визуально одинаковой высоты, при этом элементы нижней строки по высоте тоже будут на одном уровне.

Если верстать то мы получим такой html код:

..Первая новость..
..Вторая новость..
..Третья новость..
..Первая новость..
..Вторая новость..
..Третья новость..
..Первая новость..
..Вторая новость..
..Третья новость..

В стилях классу .row задаются градиенты, а блокам свои стили...

Узнавай о новых статьях сайта - первым. Просто подпишись на рассылку.

Комментарии (12)

Profile picture for user gamidovich
gamidovich
23.05.2016

Я знаю про настройку Views - Тема оформления: Информация, но как там переопределить так чтобы 3 новости объединялись в общий div представить не могу.

Profile picture for user pantey
pantey
24.05.2016

Переопределяете шаблон

views-view-unformatted.tpl.php

и изменяете формат вывода

$new_rows = array_chunk($rows, 3);
      foreach($new_rows as $new_row){
        print_r($new_row);
      }
Profile picture for user gamidovich
gamidovich
30.05.2016

Спасибо большое Павел!

Profile picture for user gamidovich
gamidovich
10.06.2016

Вместо $rows написал $fields, он вывел массив прямо на страницу.
Вот часть:
Array ( [0] => stdClass Object ( [handler] => views_handler_field_field Object ( [items] => Array ( ) [field_info] => Array ( [translatable] => 0 [entity_types] => Array ( ) [settings] => Array ( [display_field] => 0 [display_default] => 0 [uri_scheme] => public ) [storage] => Array ( [type] => field_sql_storage [settings] => Array ( ) [module] => field_sql_storage [active] => 1 [details] => Array ( [sql] => Array ( [FIELD_LOAD_CURRENT] => Array ( [field_data_field_file] => Array ( [fid] => field_file_fid [display] => field_file_display [description] => field_file_description ) ) [FIELD_LOAD_REVISION] => Array ( [field_revision_field_file] => Array ( [fid] => field_file_fid [display] => ......

Что делать?
Помогите пожалуйста!

Profile picture for user gamidovich
gamidovich
10.06.2016

Просто с rows он не работал, выдавал ошибку.

Profile picture for user gamidovich
gamidovich
10.06.2016

Причина была в print_r
В общем запутался!

Задача стоит вывести во views 3 записи в одну строку, при этом вывести с собственной темизацией.

Как решение нашел материалы http://php-include.ru/stati/temizatsiya-shablona-views но как скрестить то что в этом материале и предложенный Павлом решение не понимаю.

Profile picture for user gamidovich
gamidovich
12.06.2016

Заработало!
Только теперь ломаю голову как вокруг каждой строки добавить div.

Помогите пожалуйста!

Profile picture for user pantey
pantey
12.06.2016
$new_rows = array_chunk($rows, 3);
      foreach($new_rows as $new_row){
        print '
' .$new_row .'
' ; }
Profile picture for user gamidovich
gamidovich
12.06.2016

Спасибо большое Павел что помогаете!
К сожалению данный код выводит - Array...

Profile picture for user gamidovich
gamidovich
12.06.2016

Исправил, получилось вывести, но он не объединился в строки:

$new_rows = array_chunk($rows, 2);
foreach($new_rows as $new_row){
foreach ( $new_row as $k=>$v )
{
echo "$k : $v
";
};

}

Profile picture for user pantey
pantey
12.06.2016
<?php

  $new_row = array_chunk($rows, 3);
  $output = '<div class="page">';
  
  foreach($new_row as $row){
    
    $output .= '<div class="row">';
    foreach($row as $item){
      $output .= '<div>' .$item .'</div>';
    }
    $output .= '</div>';
    
  }
  
  $output .= '</div>';
  print $output;
  
?>
Profile picture for user gamidovich
gamidovich
12.06.2016

Спасибо большое Павел! Вы не представляете как вы меня выручили!
Хорошо что есть на свете такие люди как вы!

Почему-то мне казалось что вокруг foreach нельзя переменные добавлять, в общем отсутствие опыта программирования... Поэтому тупил....

Еще раз спасибо!