[РЕШЕНО]Определение последней выводимой ноды на странице

Главные вкладки

Аватар пользователя muaddip muaddip 11 апреля 2012 в 1:04

Вопрос следующего характера:
Есть в файле node.tpl.php в конце див <div class="mydiv"></div>, который выводит только рисунок, завершающий ноду. Нужно определить, что эта нода на главной странице материалов последняя, и этот div не выводить.
Также на странице ноды, где она (нода) одна, тоже определять, что это нода последняя из выводимых и не выводить div.
Каким это образом сделать, пока не представляю.

Комментарии

Аватар пользователя muaddip muaddip 11 апреля 2012 в 13:07

К сожалению псевдокласс действует только в пределах родительского контейнера (тега). Поэтому в данном случае не подойдет. Так как на странице где выводиться блог лента очень много различных дивов и т.д.

Аватар пользователя symbiosss symbiosss 13 апреля 2012 в 13:12

вот этот код рабочий. сделайте примерно так же. Здесь выбирается последняя нода и у нее убирается mydiv

<!doctype html>
<html>
  <head>
    <title>Пример страницы на HTML5</title>
    <meta charset=utf-8>
    <style type="text/css">
      div.section .node:last-child .mydiv {
        display:none;
      }
    </style>
  </head>
  <body class="front">
    <div class="section">
      <div class="node">
        первая нода
        <div class="mydiv">test</div>
      </div>
      <div class="node">
        вторая нода
        <div class="mydiv">test</div>
      </div>
      <div class="node">
        третья нода
        <div class="mydiv">test</div>
      </div>
    </div>
  </body>
</html>
Аватар пользователя muaddip muaddip 13 апреля 2012 в 15:44

Логично, сам не додумался. Маловато еще опыта в верстке. Только выпала следующая проблема, в Опере и Мозиле обрабатывается псевдоэлемент :last-child нормально, Гугл Хром начинает видеть все элементы как :last-child, а ИЕ 8 не видит элемент :last-child. Вот такая вот фигня твориться.

Аватар пользователя symbiosss symbiosss 13 апреля 2012 в 16:15

подключите библиотеку jquery, и этот скрипт

$('.div.section .node:last-child').addClass('last-node');

к диву последней ноды будет добавляться класс last-node и потом пишите свойства

<!doctype html>
<html>
  <head>
    <title>Пример страницы на HTML5</title>
    <meta charset=utf-8>
    <style type="text/css">
      .last-node .mydiv {
        display:none;
      }
    </style>
  </head>
  <body class="front">
    <div class="section">
      <div class="node">
        первая нода
        <div class="mydiv">test</div>
      </div>
      <div class="node">
        вторая нода
        <div class="mydiv">test</div>
      </div>
      <div class="node">
        третья нода
        <div class="mydiv">test</div>
      </div>
    </div>
  </body>
</html>
Аватар пользователя muaddip muaddip 26 апреля 2012 в 16:07

Спасибо, так и сделал. Только насколько вычитал библиотека jQuery в 7 Друпале идет встроенная, и ее включать не надо. И мне как новичку, не имевшим дело с jQuery до этого, пришлось почитать немного, прежде чем сообразить, что полный код будет следующий: jQuery(document).ready(function() {jQuery("div.content .postspace:last-child").addClass("last-node");});. но огромное спасибо, что подсказали в какую сторону рыть.

Аватар пользователя muaddip muaddip 26 апреля 2012 в 16:10

На этот метод тоже смотрел, еще до того как подсказали. Но как определить количество выводимых нод, для конкретно этой страницы, тоже не знаю. Smile