Blame view

protected/views/news/_photofact.php 2.41 KB
a1684257   Administrator   first commit
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>';
      }
  }
  ?>