_photofact.php
2.41 KB
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
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
<?php
/**
* @var $this NewsController
* @var $galleryIds array
*/
?>
<?php
if (false) {
$fact = $this->getPhotoFact();
if ($fact !== null) {
echo '<p class="section-title">', Yii::t('site', 'Фотофакты'), '</p><div class="photofact">';
echo CHtml::link(CHtml::image($fact->imageBehavior->getFileUrl('preview')), array('news/view', 'link' => $fact->link));
echo '<p>', CHtml::link($fact->i18n->name, array('news/view', 'link' => $fact->link)), '</p>';
echo '</div>';
}
} else {
$criteria = new CDbCriteria(array(
'order' => 'rand()'
));
$criteria->addInCondition('gallery_id', $galleryIds);
/** @var $photos GalleryPhoto[] */
$photos = GalleryPhoto::model()->with('i18n')->findAll($criteria);
if (count($photos) > 0) {
echo '<p class="section-title">', Yii::t('site', 'Фотофакты'), '</p><div class="photofact">';
$data = array();
foreach ($photos as $photo) {
$data[] = array(
'image' => $photo->getUrl('small'),
'url' => $photo->i18n->link,
);
}
$data = CJavaScript::encode($data);
echo '<a href="#" id="photofact"><img class="image1"/><img class="image2"/></a>';
$cs = Yii::app()->getClientScript();
$cs->registerCoreScript('jquery');
$cs->registerScript('photofact', <<<JS
(function(){
var data = {$data};
var slider = $('#photofact').css({
'display':'block',
'position':'relative'
});
var image1 = $('.image1', slider);
var image2 = $('.image2', slider);
slider.attr('href',data[0]['url']);
image1.attr('src',data[0]['image']);
image2.attr('src',data[0]['image']).css({
'position': 'absolute',
'top': 0,
'left': 0,
'opacity':0
});
var i = 0;
setInterval(function(){
i=(i+1)%data.length;
slider.attr('href',data[i]['url']);
image2.attr('src',data[i]['image']);
image2.animate({
'opacity':1
},{
'duration':400,
'complete':function(){
image1.attr('src',data[i]['image']);
image2.css({
'opacity':0
})
}
})
},7000);
})();
JS
);
echo '</div>';
}
}
?>