diff --git a/core/includes/theme.inc b/core/includes/theme.inc index 34e1ee5..4c0fbaa 100644 --- a/core/includes/theme.inc +++ b/core/includes/theme.inc @@ -2254,7 +2254,7 @@ function _theme_table_cell($cell, $header = FALSE) { $output = "$data"; } else { - $output = "$data"; + $output = "$data"; } return $output; diff --git a/core/themes/seven/style.css b/core/themes/seven/style.css index 380aec8..0117642 100644 --- a/core/themes/seven/style.css +++ b/core/themes/seven/style.css @@ -1014,3 +1014,97 @@ div.add-or-remove-shortcuts { -moz-border-radius: 8px; border-radius: 8px; } + +/* Responsive Tables */ + + +ul.admin-list.tabley li { + position: relative; + padding-left: 0; + padding-top: 9px; + background: none; /* LTR */ + list-style-type: none; + list-style-image: none; +} + +ul.admin-list.tabley > li > span:first-child { + float: left; + padding: 10px 10px 10px 0; +} +ul.admin-list.tabley .links.inline { + display: block; + text-align: right; +} +ul.admin-list.tabley .links.inline li { + border: 0 none; +} + +ul.admin-list.tabley .tabley-header { + display: none; +} + +@media screen and (min-width: 730px) { + ul.admin-list.tabley > li { + position: relative; + padding-left: 30px; /* LTR */ + padding-top: 9px; + border-top: 1px solid #ccc; + margin-left: 0; /* LTR */ + margin-bottom: 10px; + background: url(images/list-item.png) no-repeat 0 11px; /* LTR */ + list-style-type: none; + list-style-image: none; + } + + ul.admin-list.tabley > li > span:after, + ul.admin-list.tabley > li > span:before { + content: ""!important; + } + + ul.admin-list.tabley { + display: table; + width: 100%; + } + ul.admin-list.tabley > li, + ul.admin-list.tabley .tabley-header { + background: none; + display: table-row; + background: none repeat scroll 0 0 #F3F4EE; + border-color: #BEBFB9; + border-style: solid; + border-width: 0 1px; + } + ul.admin-list.tabley > li:nth-child(even) { + background: #FFF; + } + ul.admin-list.tabley > li > span, + ul.admin-list.tabley > li > span:first-child { + display: table-cell; + border: 0 none; + color: #000000; + padding: 8px 10px; + vertical-align: middle; + } + ul.admin-list.tabley .form-type-checkbox, ul.admin-list .links { + display: block; + } +} + +/* PAGE SPECIFIC STUFF */ +/*admin/content*/ +ul.admin-list > li > span:after { + content: " "; +} + +#node-admin-content ul.admin-list > li > span:nth-child(2) { + display: block; +} +#node-admin-content ul.admin-list > li > span:nth-child(3):before { + content: "An "; +} +#node-admin-content ul.admin-list > li > span:nth-child(4):before { + content: " by "; +} +#node-admin-content ul.admin-list > li > span:nth-child(5):after { + content: " on "; +} \ No newline at end of file diff --git a/core/themes/seven/template.php b/core/themes/seven/template.php index d47f57a..194d074 100644 --- a/core/themes/seven/template.php +++ b/core/themes/seven/template.php @@ -59,6 +59,131 @@ function seven_node_add_list($variables) { return $output; } +function seven_table($variables) { + $header = $variables['header']; + $rows = $variables['rows']; + $attributes = $variables['attributes']; + $caption = $variables['caption']; + $colgroups = $variables['colgroups']; + $sticky = $variables['sticky']; + $empty = $variables['empty']; + + $output = '
    \n"; + + if (isset($caption)) { + $output .= '' . $caption . "\n"; + } + + // Format the table columns: + if (count($colgroups)) { + foreach ($colgroups as $number => $colgroup) { + $attributes = array(); + + // Check if we're dealing with a simple or complex column + if (isset($colgroup['data'])) { + foreach ($colgroup as $key => $value) { + if ($key == 'data') { + $cols = $value; + } + else { + $attributes[$key] = $value; + } + } + } + else { + $cols = $colgroup; + } + + // Build colgroup + if (is_array($cols) && count($cols)) { + $output .= ' '; + $i = 0; + foreach ($cols as $col) { + $output .= ' '; + } + $output .= " \n"; + } + else { + $output .= ' \n"; + } + } + } + + // Add the 'empty' row message if available. + if (!count($rows) && $empty) { + $header_count = 0; + foreach ($header as $header_cell) { + if (is_array($header_cell)) { + $header_count += isset($header_cell['colspan']) ? $header_cell['colspan'] : 1; + } + else { + $header_count++; + } + } + $rows[] = array(array('data' => $empty, 'colspan' => $header_count, 'class' => array('empty', 'message'))); + } + + // Format the table header: + if (count($header)) { + $ts = tablesort_init($header); + // HTML requires that the thead tag has tr tags in it followed by tbody + // tags. Using ternary operator to check and see if we have any rows. + $output .= (count($rows) ? '
  • ' : '
  • '); + foreach ($header as $cell) { + $cell = tablesort_header($cell, $header, $ts); + $output .= '' . _theme_table_cell($cell, TRUE) . ''; + } + // Using ternary operator to close the tags based on whether or not there are rows + $output .= (count($rows) ? "
  • \n" : "\n"); + } + else { + $ts = array(); + } + + // Format the table rows: + if (count($rows)) { + $flip = array('even' => 'odd', 'odd' => 'even'); + $class = 'even'; + foreach ($rows as $number => $row) { + $attributes = array(); + + // Check if we're dealing with a simple or complex row + if (isset($row['data'])) { + foreach ($row as $key => $value) { + if ($key == 'data') { + $cells = $value; + } + else { + $attributes[$key] = $value; + } + } + } + else { + $cells = $row; + } + if (count($cells)) { + // Add odd/even class + if (empty($row['no_striping'])) { + $class = $flip[$class]; + $attributes['class'][] = $class; + } + + // Build row + $output .= '
  • '; + $i = 0; + foreach ($cells as $cell) { + $cell = tablesort_cell($cell, $header, $ts, $i++); + $output .= _theme_table_cell($cell); + } + $output .= "
  • \n"; + } + } + } + + $output .= "
\n"; + return $output; +} + /** * Overrides theme_admin_block_content(). *