Как сделать все мои видео видимыми с нумерацией страниц в приложении Ziggeo?

Поэтому мне нужна помощь от пользователя Ziggeo. Я зарегистрировал 8 видео на своем сервере ziggeo, и теперь я хочу отображать их на страницах, разделенных на 2 видео на странице.
Вот что я написал, но, к сожалению, он не показывает мне видео, но компилятор не сообщает об ошибке.

<?php include('./ziggeo/pagination.class.php');?>
<?php $myvideos = $ziggeo->videos();
$myarray = array($myvideos);?>
<div class="gallery">
<?php if(count($myarray)){
$pagination = new pagination($myarray, (isset($_GET['page'])?$_GET['page']:1), 3);
$videos = $pagination->getResults();
if(count($videos)!=0) {
echo $pageNumbers = '<h2>'.$pagination->getLinks().'</h2>';
foreach ($videos as $video) {?>
<div class="wall-of-videos-container">
<ziggeo ziggeo-video="<?= $video->token ?>"ziggeo-width=320 ziggeo-height=240 ziggeo-popup> </ziggeo>
<?= date("Y-m-d h:i a", $video->created) ?>
&middot;<?= $video->duration ?> seconds</div>
<? } echo $pageNumbers; } } ?>
</div><!-- End Gallery -->

Я включил все файлы, необходимые для конфигурации Ziggeo.
Кто может мне помочь? Большое спасибо!

1

Решение

Не видя содержимого файла ‘pagination.class.php’ и создаваемого вами вывода, трудно понять, что пошло не так, однако, чтобы создать нумерацию страниц в PHP с использованием Ziggeo PHP SDK, вы должны сделать что-то вроде этого:

<?php
require_once('Ziggeo.php');
$ziggeo = new Ziggeo('YOUR TOKEN', 'YOUR PRIVATE KEY', 'YOUR ENCRYPTION KEY');
?>
  • Вы можете получить токен и ключи от своей панели на ziggeo.com
  • Ziggeo.php можно получить из Ziggeo PHP SDK здесь: github.com/Ziggeo/ZiggeoPhpSdk

Теперь, глядя на ваш код, кажется, что это вызов, который вы делаете неправильно. Чтобы получить видео, вы должны сделать следующий звонок:

<?php $myvideos = $ziggeo->videos()->index(); ?>

Хорошо помнить, что по умолчанию вы получите только до 50 видео, поэтому, если вы ожидаете, что их будет больше, вам следует установить параметр limit.

Вы можете установить limit, skip, reverse, states а также tags

Если вы хотите получить до 100 видео (максимум на один звонок), вы должны сделать что-то вроде этого:

<?php
$myArguments = array('limit' => 100);
$myvideos = $ziggeo->videos()->index($myArguments);
?>

Теперь, чтобы перечислить их, вы должны сделать что-то вроде этого:

<?php
foreach ($myvideos as $video) {
?>
<ziggeo ziggeo-video="<?php echo $video->token; ?>" ziggeo-width=320 ziggeo-height=240 ziggeo-popup></ziggeo>
<?php
}
?>
  • Вы можете добавить чек с count($myvideos) прежде чем foreach, однако это не должно быть необходимо.

В общем, для создания страницы с 2 видео на страницу вы можете использовать что-то вроде этого:

<?php
$i = 0; //to have two videos per page
$j = 0; //to see how many we have
foreach ($myvideos as $video) {
$j++;
if($i === 0) { ?>
<div class="gallery_page">
<?php } ?>
<ziggeo ziggeo-video="<?php echo $video->token; ?>" ziggeo-width=320 ziggeo-height=240 ziggeo-popup></ziggeo>
<?php
$i++;
if($i === 2) { ?>
</div>
<div class="page_number"><?php echo $j/2; ?> </div>
<?php
$i = 0;
}
}
if($i !== 0) {
?>
<div class="page_number"><?php echo (($j-1)/2)+1; ?> </div>
<?php
}
?>
  • Хорошо отметить, что приведенный выше код не является полной системой подкачки страниц — это всего лишь простой пример, показывающий, как вы можете это сделать, однако его необходимо будет настроить и доработать, чтобы он соответствовал стилю галереи и т. П. ,

Глядя на ваш код, я думаю, что он должен работать, используя что-то вроде этого:

<?php
include('./ziggeo/pagination.class.php');
$myvideos = $ziggeo->videos()->index();
?>
<div class="gallery">
<?php
if(count($myvideos)) {
$pagination = new pagination($myarray, (isset($_GET['page']) ? $_GET['page']:1), 3);
$videos = $pagination->getResults();
if(count($videos)!=0) {
echo $pageNumbers = '<h2>'.$pagination->getLinks().'</h2>';
foreach ($videos as $video) { ?>
<div class="wall-of-videos-container">
<ziggeo ziggeo-video="<?php echo $video->token; ?>" ziggeo-width=320 ziggeo-height=240 ziggeo-popup></ziggeo>
<?php echo date("Y-m-d h:i a", $video->created); ?>
&middot;<?php echo $video->duration; ?> seconds</div>
<?php } echo $pageNumbers;
}
} ?>
</div><!-- End Gallery -->

Однако я предположил, что у вас есть заголовки, установленные в HTML-заголовке страницы, где будет показана галерея:

<link rel="stylesheet" href="//assets-cdn.ziggeo.com/v1-latest/ziggeo.css" />
<script src="//assets-cdn.ziggeo.com/v1-latest/ziggeo.js"></script>
<script type="text/javascript">ZiggeoApi.token="YOUR TOKEN"</script>

Если он отсутствует, HTML-код будет создан из приведенного выше PHP-кода, однако ваши видео не будут показаны из-за того, что среда Ziggeo не загружается на стороне клиента.

ОБНОВЛЕНИЕ (2016/05/31)

Поскольку вышеприведенное является просто общим способом сделать это, оно не включает в себя CSS и JavaScript.

В качестве такового я добавляю полный код, который можно использовать, и, как показано, другой способ сбора номеров страниц и оставляю вышеупомянутый, чтобы кто-то мог видеть оба.

<script type="text/javascript">
//Basic code needed to switch pages
var currentPage = 1;
function showPage(number) {
//If we are on the same page as the selected one, we just break away from the function, so that we do not hide the same.
if(currentPage === number) { return false; }

var toShow = document.getElementById('page_' + number);
var toHide = document.getElementById('page_' + currentPage);

toShow.style.display = 'block';
toHide.style.display = 'none';

currentPage = number;
}
</script>

<style type="text/css">
/* Code to hide the pages (all) and show first one only, as well as a bit of styling so that it has some basic frame */
.gallery_page > ziggeo {
float: left;
}
.gallery_page {
background-image: linear-gradient(-45deg, lightGray, white);
border-radius: 10px;
box-shadow: 0 0 2px gray;
box-sizing: border-box;
display: none;
min-height: 400px;
margin: 20px 0;
padding: 40px;
width: 720px;
}
.gallery_page:first-child {
display: block;
}
.page_number {
box-shadow: 0 0 3px gray;
float: left;
margin: 0 4px;
text-align: center;
width: 2em;
}
</style>

<div class="gallery">
<?php
//How many videos per page do we want to have?
$numberOfVideos = 2;
//How many videos was there in total?
$totalNumberOfVideos = 0; //only if we need it for something later on
//How many videos are approved / are shown
$totalNumberOfApprovedVideos = 0; //only if we need it for something later on
//which page are we working on?
$currentPage = 1;
//Will serve as buffer for page number elements
$pageNumbers = '';
//temporary videos counter
$i = 0;

foreach ($myvideos as $video) {
//to only show approved videos
if($video->approved === true) {
if($i === 0) { ?>
<div class="gallery_page" id="page_<?php echo $currentPage; ?>">
<?php } ?>

<ziggeo ziggeo-video="<?php echo $video->token; ?>" ziggeo-width=320 ziggeo-height=240 ziggeo-popup></ziggeo>

<?php

$i++;
if($i === $numberOfVideos) { ?>
<br style="float:none; clear:left;">
</div>
<?php
$pageNumbers .= '<div onclick="showPage(' . $currentPage . ');" class="page_number">' . $currentPage . '</div>';
$currentPage++;
$i = 0;
}

$totalNumberOfApprovedVideos++;
$totalNumberOfVideos++;
}
else {
//$video->moderation_reason
//If you want to check if there was a reason why the video was not approved, you can check the above, or alternatively, you could do something else at this point.
$totalNumberOfVideos++;
}
}
if($i !== 0) {
$pageNumbers .= '<div onclick="showPage(' . $currentPage . ')" class="page_number">' . $currentPage . '</div>';
}
?>
</div><!-- End Gallery -->

<?php echo $pageNumbers; ?>

<?php
//This is not needed for pagination to work, however you might want to show it, etc
echo '<br><br>';
echo 'Approved videos: ' . $totalNumberOfApprovedVideos . '<br>';
echo 'Total videos: ' . $totalNumberOfVideos . '<br>';
echo 'Total number of pages: ' . $currentPage . '<br>';
echo $numberOfVideos . ' videos per page<br>';
?>
  • Хорошо отметить, что это всего лишь фреймворк — поэтому упомянутый выше код будет работать так же, как и следующий код, однако оба требуют дополнительного стиля и кода, чтобы он выглядел хорошо и вел себя так, как мы этого хотим.
1

Другие решения

После добавления сценария Java ниже:

<script type="text/javascript">
var currentPage = 1;
function showPage(number){
var toShow = document.getElementById('page_' + number);
var toHide = document.getElementById('page_' + currentPage);
toShow.style.display = 'block';
toHide.style.display = 'none';
currentPage = number;}
</script>

И правильные ссылки на галерею div, теперь все работает. Спасибо, Бэйн.

0

По вопросам рекламы [email protected]