在单独的列上制作php新闻列表

时间:2016-11-09 12:19:08

标签: php html function zurb-foundation

所以我有这个代码

$news_per_page = 30;
 $news_per_columns = $news_per_page / 3;
 $lower_bound = ($current_page * $news_per_page) - $news_per_page + 1;
$upper_bound = $current_page * $news_per_page;

echo '<div class="large-4 columns">';
echo list_news ($id_category,
                $lower_bound,
                $upper_bound,
                NULL,
                ( IsSet($_GET['title_subtitle']) && $_GET['title_subtitle'] != "" ? $_GET['title_subtitle'] : NULL ),
                ( IsSet($_GET['category']) && $_GET['category'] != 0 ? $_GET['category'] : NULL ),
                ( IsSet($_GET['datefrom_m']) && $_GET['datefrom_m'] != '' && IsSet($_GET['datefrom_d']) && $_GET['datefrom_d'] != '' && IsSet($_GET['datefrom_y']) && $_GET['datefrom_y'] != '' ? strtoupper($_GET['datefrom_m']).' '.$_GET['datefrom_d'].' '.$_GET['datefrom_y'] : NULL),
                ( IsSet($_GET['dateto_m']) && $_GET['dateto_m'] != '' && IsSet($_GET['dateto_d']) && $_GET['dateto_d'] != '' && IsSet($_GET['dateto_y']) && $_GET['dateto_y'] != '' ? strtoupper($_GET['dateto_m']).' '.$_GET['dateto_d'].' '.$_GET['dateto_y'] : NULL));

  echo '</div>';

我的问题是我如何才能使列表新闻功能显示在3列上。目前,此代码在另一个large-4 column上显示30条新闻。

3 个答案:

答案 0 :(得分:1)

Foundation的网格布局如下:

<div class="row">
  <div class="large-4 columns"></div>
  <div class="large-4 columns"></div>
  <div class="large-4 columns"></div>
</div>

您提供的代码只显示一列而不显示任何行。如果你想拥有3列,那么你需要填充所有三列,并在它们周围有一个行容器。

<div class="row">
  <div class="large-4 columns">News Item 1</div>
  <div class="large-4 columns">News Item 2</div>
  <div class="large-4 columns">News Item 3</div>
</div>

没有看到你的整个代码,你可以做这样的事情,

echo "<div class='row'><div class='large-4 columns'>";
for( $i = 1; $i < 31; $i++ )
{
  print "news";
  if( $i == 10 || $i == 20 )
  {
    echo "</div><div class='large-4 columns'>";
  }
}
echo "</div>";

这应该将“新闻”放入每一列10次,所有这些都将在一行内。

答案 1 :(得分:0)

正如基金会的文件中所述6框架(https://foundation.zurb.com/sites/docs/grid.html) 这就是网格布局应该看起来的样子:

<div class="row">
  <div class="large-4 columns"><!-- ... --></div>
  <div class="large-4 columns"><!-- ... --></div>
  <div class="large-4 columns"><!-- ... --></div>
</div>

现在您的代码打印出类似这样的内容:

<div class="large-4 columns">
    <!-- NEWS -->
    <!-- NEWS -->
    <!-- NEWS -->
</div>

所以你需要做的是一个用于打印3个系列的新闻的循环,这个新闻包含在带有'row'类的元素中。

答案 2 :(得分:0)

我已经完成了这项工作,但是当到达30页后,并没有停止。 我开始在3列

上显示我所有的5000多条新闻
  $news_per_page = 30;
  $news_per_columns = $news_per_page / 3;

  $lower_bound = ($current_page * $news_per_page) - $news_per_page + 1;
  $upper_bound = $current_page * $news_per_columns;

  while($news_per_page <= 30){
    echo "<div class='large-4 columns'>";
    echo list_news ($id_category,
                    $lower_bound,
                    $upper_bound,
                    NULL,
                    ( IsSet($_GET['title_subtitle']) && $_GET['title_subtitle'] != "" ? $_GET['title_subtitle'] : NULL ),
                    ( IsSet($_GET['category']) && $_GET['category'] != 0 ? $_GET['category'] : NULL ),
                    ( IsSet($_GET['datefrom_m']) && $_GET['datefrom_m'] != '' && IsSet($_GET['datefrom_d']) && $_GET['datefrom_d'] != '' && IsSet($_GET['datefrom_y']) && $_GET['datefrom_y'] != '' ? strtoupper($_GET['datefrom_m']).' '.$_GET['datefrom_d'].' '.$_GET['datefrom_y'] : NULL),
                    ( IsSet($_GET['dateto_m']) && $_GET['dateto_m'] != '' && IsSet($_GET['dateto_d']) && $_GET['dateto_d'] != '' && IsSet($_GET['dateto_y']) && $_GET['dateto_y'] != '' ? strtoupper($_GET['dateto_m']).' '.$_GET['dateto_d'].' '.$_GET['dateto_y'] : NULL));
      echo "</div>";

      $lower_bound = $lower_bound + $news_per_columns - 1;
      $upper_bound = $upper_bound + $news_per_columns;
    }