1. Мы продолжаем публиковать интересные статьи на тему SocialEngine 4. Одна из статей посвящена правильному выбору сервера для вашей социальной сети, а другая содержит советы по увеличению производительности платформы. Также мы добавили большую статью о пользовательских уровнях. Ознакомиться со статьями вы можете в разделе Вопросы и Ответы SocialEngine 4.
  2. Вам кажется, что ваша версия SocialEngine 4, работает медленно?

    Голосуйте. Пишите свою версию системы, железо на чем работает и количество пользователей. Будем увеличивать производительность :-) Подробнее

  3. В связи с участившимися случаями попыток продажи пользователями форума различных "сборок" коммерческих социальных платформ, обычно основанных на SocialEngine 3, вводится новое правило для форума. Запрещается создание тем или размещение в уже созданных предложений о продаже или размещение ссылок на сайты, где происходит продажа "сборок". Пользователи, которые продолжат свою коммерческую деятельность в данном направлении, будут заблокированы. Подробнее.

Modification Youtube video в всплывающем окне

Discussion in 'Моды / Хаки - Mods / Hacks' started by jana, Mar 14, 2013.

  1. Controller User


    Offline
    Message Count:
    22
    Likes Received:
    5
    My version of SE:
    4.2.9
    Вообщем видео генерится в файле application/modules/Video/Model/Video.php (html также, просто посмотрите весь файл )
    Оно и для страницы просмотра и для ленты активности
    По мне более простым решением будет купить скачать плагин с лайтбоксом видео от SocialEngineAddons
    jana likes this.
  2. jana Thread starter User


    Offline
    Message Count:
    82
    Likes Received:
    18
    Wertos spasiba konewno, no ja tak ponila eto dlja foto albomov, no mne nada dlja video chtobe otkritj video youtube v vsplivajuschem okne. Da ix raznix v internete popolnim,no ja skolkonestavlu u menja nepoluchajetsa. ja neznaju koda php, vot izza etogo i problemi. Bilo b v html mozet b i razobralasj. No vseravno vsem spasiba za pomosch. Budut noviji ideji ilikto gotov pomoch, piwite! :hat:
  3. Wertos User


    Offline
    Message Count:
    16
    Likes Received:
    6
    My version of SE:
    4.2.9
    jana, все из этих плагинов поддерживают подгрузку в окне html-контента. Что есть видео от ютуба... тот же html контент !
    вот и грузи в окно
    HTML:
    <iframe width="640" height="360" src="http://www.youtube.com/embed/LDHR8FHzRY0?feature=player_detailpage" frameborder="0" allowfullscreen></iframe>
    например вот... это обычное html
  4. jana Thread starter User


    Offline
    Message Count:
    82
    Likes Received:
    18
    ex ladna, mne uze daze neudobno stala, dumoju chto nepoluchetsa u menja nichego, ja sama nenastolko silna v kodax chtobe gdeto chegoto vstavitj i gdeto ubratj, ja bojusj naportachitj jescho huze budet... ladna izvenite chto potrevozela, budu kakto ponemnogu sama probovatj :wcread:
  5. jana Thread starter User


    Offline
    Message Count:
    82
    Likes Received:
    18
    podskazite pozalujsta kuda i kak pravilno nada propisatj vot etu strochku class="fancybox" vot v etom kode chto v nizu. Nu mne nada chtobe nazimaja na malenkuju kartingu thumbnails perexodilo po etoj ssilke i bil b zadeistvovam etot class.


    Code:
              <?php
                if( $item->photo_id ) echo $this->htmlLink($item->getHref(), $this->itemPhoto($item, 'thumb.normal'));
                else echo '<img alt="" src="application/modules/Video/externals/images/video.png">';
              ?>
  6. Wertos User


    Offline
    Message Count:
    16
    Likes Received:
    6
    My version of SE:
    4.2.9
    jana, дак это не то скорее всего. Конструкция выводит скриншот видео, если есть, если нету то выводит стандартный рисунок... но не само видео...
  7. jana Thread starter User


    Offline
    Message Count:
    82
    Likes Received:
    18
    Wertos vi na verno kak vsegda prav, nravitsa mne umnije ljudi... Vot ja vilozu fail kotorij otobrozajet malenkije thumbnailsi vsex video, podskazite pozalujsta gde v kakoj strochke propisivatj class chtobe on zadeistvoval nu naprimer Lightbox. V Lightboxtam idjot takaja strochka rel=lightbox napisano chto etu strocku nada vstavitj v ssilku kotoraja perexodit na bolwoj vivod video. Ex kak slozno naverna napisala, sama uze zaputalasj... Vot kod vsex video prevjuwek.

    browser.tpl
    Code:
    <?php
    /**
    * SocialEngine
    *
    * @category  Application_Extensions
    * @package    Video
    * @copyright  Copyright 2006-2010 Webligo Developments
    * @license    http://www.socialengine.net/license/
    * @version    $Id: browse.tpl 8330 2011-01-28 23:21:05Z john $
    * @author    Jung
    */
    ?>
     
    <div class="headline">
      <h2>
      <img src="foto/iconas/video_icon.png"> <?php echo $this->translate('Videos');?>
      </h2>
      <div class="tabs">
        <?php
          // Render the menu
          echo $this->navigation()
            ->menu()
            ->setContainer($this->navigation)
            ->render();
        ?>
      </div>
    </div>
     
    <div class='layout_right'>
      <?php echo $this->form->render($this) ?>
      <?php if($this->can_create):?>
      <div class="quicklinks">
        <ul>
          <li>
         
        <img src="foto/iconas/bezmaksas-sludinajumi.jpg" border="0" alt=""> </ul>
      </div>
      <?php endif; ?><div><center><br><script type="text/javascript" src="http://show.adclick.lv/show?id=9tzinb919et2aqg89srgkrbzw7mpienj"></script></center></div>
    </div>
     
    <div class='layout_middle'>
      <?php if( $this->tag ): ?>
        <h3>
          <?php echo $this->translate('Videos using the tag') ?>
          #<?php echo $this->tag ?>
          <a href="<?php echo $this->url(array('module' => 'video', 'controller' => 'index', 'action' => 'browse'), 'default', true) ?>">(x)</a>
        </h3>
      <?php endif; ?>
     
      <?php if( $this->paginator->getTotalItemCount() > 0 ): ?>
     
      <ul class="videos_browse">
        <?php foreach( $this->paginator as $item ): ?>
          <li>
           
            <div class="video_thumb_wrapper">
              <?php if( $item->duration ): ?>
              <span class="video_length">
                <?php
                  if( $item->duration > 360 ) $duration = gmdate("H:i:s", $item->duration); else $duration = gmdate("i:s", $item->duration);
                  if( $duration[0] == '0' ) $duration = substr($duration,1);
                  echo $duration;
                ?>
              </span>
              <?php endif ?>
              <?php
                if( $item->photo_id ) echo $this->htmlLink($item->getHref(), $this->itemPhoto($item, 'thumb.normal'));
                else echo '<img alt="" src="application/modules/Video/externals/images/video.png">';
              ?>
            </div>
            <?php echo $this->htmlLink($item->getHref(), $item->getTitle(), array('class' => 'video_title')) ?>
            <div class="video_author">
              <?php echo $this->translate('By') ?>
              <?php echo $this->htmlLink($item->getOwner()->getHref(), $item->getOwner()->getTitle()) ?>
            </div>
            <div class="video_stats">
              <span class="video_views">
                <?php echo $this->translate(array('%1$s view', '%1$s views', $item->view_count), $this->locale()->toNumber($item->view_count)) ?>
              </span>
              <?php if( $item->rating > 0 ): ?>
                <?php for( $x=1; $x<=$item->rating; $x++ ): ?>
                  <span class="rating_star_generic rating_star"></span>
                <?php endfor; ?>
                <?php if( (round($item->rating) - $item->rating) > 0): ?>
                  <span class="rating_star_generic rating_star_half"></span>
                <?php endif; ?>
              <?php endif; ?>
            </div>
          </li>
        <?php endforeach; ?>
      </ul>
      <?php elseif( $this->category ):?>
        <div class="tip">
          <span>
            <?php echo $this->translate('Nobody has posted a video with that criteria.');?>
          </span>
        </div>
      <?php else:?>
        <div class="tip">
          <span>
            <?php echo $this->translate('Nobody has created a video yet.');?>
            <?php if ($this->can_create):?>
              <?php echo $this->translate('Be the first to %1$spost%2$s one!', '<a href="'.$this->url(array('action' => 'create'), "video_general").'">', '</a>'); ?>
            <?php endif; ?>
          </span>
        </div>
      <?php endif; ?>
      <?php echo $this->paginationControl($this->paginator, null, null, array(
          'query' => $this->formValues,
          'pageAsQuery' => true,
        )); ?>
    </div>
  8. jana Thread starter User


    Offline
    Message Count:
    82
    Likes Received:
    18
    Вот и сам video.php файл, посмотрите может кто подскажет где тут чего поменять чтобе подключить Lightbox и вывести видео в сплывающем окне Спасиба!
    Code:
     <?php
    /**
    * SocialEngine
    *
    * @category  Application_Extensions
    * @package    Video
    * @copyright  Copyright 2006-2010 Webligo Developments
    * @license    http://www.socialengine.net/license/
    * @version    $Id: Video.php 7869 2010-12-01 00:20:30Z shaun $
    * @author    Jung
    */
     
    /**
    * @category  Application_Extensions
    * @package    Video
    * @copyright  Copyright 2006-2010 Webligo Developments
    * @license    http://www.socialengine.net/license/
    */
    class Video_Model_Video extends Core_Model_Item_Abstract
    {
      protected $_parent_type = 'user';
     
      protected $_owner_type = 'user';
     
      protected $_parent_is_owner = true;
     
      public function getHref($params = array())
      {
        $params = array_merge(array(
          'route' => 'video_view',
          'reset' => true,
          'user_id' => $this->owner_id,
          'video_id' => $this->video_id,
          'slug' => $this->getSlug(),
        ), $params);
        $route = $params['route'];
        $reset = $params['reset'];
        unset($params['route']);
        unset($params['reset']);
        return Zend_Controller_Front::getInstance()->getRouter()
          ->assemble($params, $route, $reset);
      }
     
      public function getRichContent($view = false, $params = array())
      {
        // if video type is youtube
        if ($this->type == 1){
          $videoEmbedded = $this->compileYouTube($this->code, $view);
        }
        // if video type is vimeo
        if ($this->type == 2){
          $videoEmbedded = $this->compileVimeo($this->code, $view);
        }
     
        // if video type is uploaded
        if ($this->type ==3){
          $video_location = Engine_Api::_()->storage()->get($this->file_id, $this->getType())->getHref();
          $videoEmbedded = $this->compileFlowPlayer($video_location, $view);
        }
     
        // $view == false means that this rich content is requested from the activity feed
        if($view==false){
        // prepare the duration
        //
        $video_duration = "";
        if($this->duration){
          if($this->duration>360) $duration = gmdate("H:i:s", $this->duration);
          else $duration = gmdate("i:s", $this->duration);
          if ($duration[0] =='0') $duration= substr($duration,1);
          $video_duration = "<span class='video_length'>".$duration."</span>";
        }
       
        // prepare the thumbnaile
        $thumb = Zend_Registry::get('Zend_View')->itemPhoto($this, 'thumb.video.activity');
     
        if ($this->photo_id){
          $thumb = Zend_Registry::get('Zend_View')->itemPhoto($this, 'thumb.video.activity');
        }
        else {
          $thumb = '<img alt="" src="application/modules/Video/externals/images/video.png">';
        }
     
        $thumb = '<a id="video_thumb_'.$this->video_id.'" style="" href="javascript:void(0);" onclick="javascript:var myElement = $(this);myElement.style.display=\'none\';var next = myElement.getNext(); next.style.display=\'block\';">
                  <div class="video_thumb_wrapper">'.$video_duration.$thumb.'</div>
                  </a>';
     
        // prepare title and description
        $title = "<a href='".$this->getHref($params)."'>$this->title</a>";
        $tmpBody = strip_tags($this->description);
        $description = "<div class='video_desc'>".(Engine_String::strlen($tmpBody) > 255 ? Engine_String::substr($tmpBody, 0, 255) . '...' : $tmpBody)."</div>";
     
        $videoEmbedded = $thumb.'<div id="video_object_'.$this->video_id.'" style="display:none;">'.$videoEmbedded.'</div><div class="video_info">'.$title.$description.'</div>';
        }
       
        return $videoEmbedded;
      }
     
      public function compileYouTube($code, $view){
        //560 x 340
        $embedded = '
        <object width="'.($view?"640":"425").'" height="'.($view?"420":"344").'">
        <param name="movie" value="http://www.youtube.com/v/'.$code.'&autoplay=1&hl=en_US&feature=player_embedded&fs=1"/>
        <param name="allowFullScreen" value="true"/>
        <param name="allowScriptAccess" value="always"/>
        <embed src="http://www.youtube.com/v/'.$code.'&autoplay=1&hl=en_US&feature=player_embedded&fs=1'.($view?"":"&autoplay=1").'" type="application/x-shockwave-flash" allowfullscreen="true" allowScriptAccess="always" width="'.($view?"640":"425").'" height="'.($view?"420":"344").'" wmode="transparent"/>
        <param name="wmode" value="transparent" />
        </object>';
     
        return $embedded;
      }
      public function compileVimeo($code, $view){
        //640 x 360
        $embedded = '
        <object width="'.($view?"640":"400").'" height="'.($view?"360":"230").'">
        <param name="allowfullscreen" value="true"/>
        <param name="allowscriptaccess" value="always"/>
        <param name="movie" value="http://vimeo.com/moogaloop.swf?clip_id='.$code.'&amp;server=vimeo.com&amp;show_title=1&amp;show_byline=1&amp;show_portrait=0&amp;color=&amp;fullscreen=1" />
        <embed src="http://vimeo.com/moogaloop.swf?clip_id='.$code.'&amp;server=vimeo.com&amp;show_title=1&amp;show_byline=1&amp;show_portrait=0&amp;color=&amp;fullscreen=1'.($view?"":"&amp;autoplay=1").'" type="application/x-shockwave-flash" allowfullscreen="true" allowscriptaccess="always" width="'.($view?"640":"400").'" height="'.($view?"360":"230").'" wmode="transparent"/>
        <param name="wmode" value="transparent" />
        </object>';
     
        return $embedded;
      }
     
      public function compileFlowPlayer($location, $view){
        //    php echo $this->baseUrl() /externals/flowplayer/flowplayer-3.1.5.swf"
        $embedded = "
        <script type='text/javascript'>
        en4.core.runonce.add(function(){\$('video_thumb_".$this->video_id."').removeEvents('click').addEvent('click', function(){flashembed('video_object_$this->video_id',{src: '".Zend_Registry::get('Zend_View')->baseUrl()."/externals/flowplayer/flowplayer-3.1.5.swf', width: ".($view?"480":"420").", height: ".($view?"386":"326").", wmode: 'transparent'},{config: {clip: {url: '$location',autoPlay: ".($view?"false":"true").", duration: '$this->duration', autoBuffering: true},plugins: {controls: {background: '#000000',bufferColor: '#333333',progressColor: '#444444',buttonColor: '#444444',buttonOverColor: '#666666'}},canvas: {backgroundColor:'#000000'}}});})});
        </script>";
     
        return $embedded;
      }
     
      public function getKeywords($separator = ' ')
      {
        $keywords = array();
        foreach( $this->tags()->getTagMaps() as $tagmap ) {
          $tag = $tagmap->getTag();
          $keywords[] = $tag->getTitle();
        }
     
        if( null === $separator ) {
          return $keywords;
        }
     
        return join($separator, $keywords);
      }
     
      // Interfaces
     
      /**
      * Gets a proxy object for the comment handler
      *
      * @return Engine_ProxyObject
      **/
      public function comments()
      {
        return new Engine_ProxyObject($this, Engine_Api::_()->getDbtable('comments', 'core'));
      }
     
      /**
      * Gets a proxy object for the like handler
      *
      * @return Engine_ProxyObject
      **/
      public function likes()
      {
        return new Engine_ProxyObject($this, Engine_Api::_()->getDbtable('likes', 'core'));
      }
     
      /**
      * Gets a proxy object for the tags handler
      *
      * @return Engine_ProxyObject
      **/
      public function tags()
      {
        return new Engine_ProxyObject($this, $this->api()->getDbtable('tags', 'core'));
      }
    }
  9. Wertos User


    Offline
    Message Count:
    16
    Likes Received:
    6
    My version of SE:
    4.2.9
    jana, я нашёл нужный код ! котел написать, но мне форум сказал что нет прав и отредактировать предыдущий пост я не смог !
    Смысл в этом коде, это превьюшка скриншота видео
    PHP:

    $thumb 
    '<a id="video_thumb_'.$this->video_id.'" style="" href="javascript:void(0);" onclick="javascript:var myElement = $(this);myElement.style.display=\'none\';var next = myElement.getNext(); next.style.display=\'block\';">
    <div class="video_thumb_wrapper">'
    .$video_duration.$thumb.'</div>
    </a>'
    ;
    По клику на нём оно вот этот блок делает видимым, а это и есть плеер ютуба/мивео
    PHP:

    $videoEmbedded 
    $thumb.'<div id="video_object_'.$this->video_id.'" class="video_object">'.$videoEmbedded.'</div><div class="video_info">'.$title.$description.'</div>';
    тебе же надо чтобы по клику инициализировалось модальное окно... Если бы ты точно указала какую библиотеку хочешь использовать я бы попробовал написать функцию для onclick в ссылке.

    PS. Настоятельно НЕ рекомендую мешать mootools с jquery ! Есть всякие прикольные вещи на mootools(только вот к великому сожалению я с ним очень мало знаком, я работал только с jquery) !
    jana likes this.
  10. jana Thread starter User


    Offline
    Message Count:
    82
    Likes Received:
    18
    Дорогой ты мой Wertosik, если все получется постораюсь тебя както одблагодарить, я б хотела на вот этом и думою он подойдет для видео, да и у меня уже на нем зделана всплывающая фотка профиля. Вот с этим: http://lokeshdhakar.com/projects/lightbox2/ Wertos, будет время напишите пожалуйста где и на что поменять и в каких фойлах. Ok?

Share This Page

All rights reserved SocEngine.ru ©