Drupal 7 开发内部培训资料, 分头诗人

怎样建立一个图片展示区块让里面的图片随机改变位置及大小?

赞成!
0
否决!

如图,怎样让图中的三张图片随机调换位置,调整大小?

1 个回答

赞成!
0
否决!

这个不是三言两语的事情,你可以做一个content type专门放图片的,在这个content type 下新建三个node,

然后在后台图片样式那里设置两种大小的图片样式( admin/config/media/image-styles),举例分别是 big跟small

再建一个模块,模块读取这个图片的content type的三条文章,并且随机显示,随机到第一条的,默认用 big 样式,另外两个用small 样式。

 

举例:

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
function ils_list(){
$output = '';
$query = db_select('node','n')->extend('PagerDefault');
$query->leftJoin('field_data_field_ils_image', 'i', 'n.nid = i.entity_id');
$query->fields('n')->fields('i');
$query->condition('n.status', 1)
  ->limit(3);//限制三条
$query->orderRandom();//随机排序
$objects = $query->execute()->fetchAll();
$rows = array();
$i = 1;
foreach ($objects as $key=>$object) {
  $row = array();
  $row['nid'] = $object -> nid;
  if($i == 1){
    //如果第一条数据,用big 样式。
    $row['ils_image'] = '<img src="'.image_style_url('big',gw_file_uri($object -> field_ils_image_fid)).'"/>';
  }
else{
    //其他数据,用small 样式。
    $row['ils_image'] = '<img src="'.image_style_url('small',gw_file_uri($object -> field_ils_image_fid)).'"/>';
  }
  $rows[] = $row;
  $i ++;
}
$output .= theme('ils', array('rows' => $rows));
return $output;
}