Приветствую всех!Уважаемые мастера прошу вашей пом
1.
igrovik1 (30.06.2017 / 23:29)
Суть проблемы такова.
Нужен скрипт который бы по определённому запросу к нему выводил бы нужную информацию.
Пример:
К примеру запрос будет такой http:// мойсайт.ру/player/player.php?4568 (4568 к примеру ид с кинопоиска), так вот если по запросу будет найдена новость с таким ид кинопоиска то чтобы скрипт выдал в ответ плеер с этой новости. Как это можно организовать??? Если кто может дать код хотябы примитивный, буду весьма благодарен.
p/s движек Dle.
Заранее всем спасибо.
2.
igrovik1 (01.07.2017 / 16:14)
horoshinkin, В php еще не очень силён, можно примерный код??
вот к примеру в админке дле будет доп поле с id кинопоиск, как мне это поле связать с данным кодом, чтобы после обращения к нему (http:// мойсайт.ру/player/player.php?4568) человеку было бы выведенно плеер??
Код плеера такой : <center> <div id="videoplayer176-1502" style="width:300px;height:340px;"></div>
<script type="text/javascript">this.player = new Uppod({m:"video",uid:"videoplayer176-1502",file:"здесь ссылка на видео",st:"uppodvideo176-1502"});</script>
</center>
3.
Александр (01.07.2017 / 16:45)
На кинопоиске привязка к IP. Прямую ссылку на видео не взять.
https://s39e.storage.yandex.net/video-kinopoisk-trailers/8/4/data-0.1:9506058318:92632716?ts=000553451518fd94&sign=72ab24bbb560e98dd3804c0abf044e51f77ee919a74dfc96e3eacd51017b30d3
4.
igrovik1 (01.07.2017 / 17:06)
Randy, Вы не поняли, смотрите к примеру у меня на моём сайте будет фильм Три богатыря на кинопоиске его ид 818570, и воту меня в админке будет дополнительное поле с этим ид 818570,
теперь когда у человека который поставит на свой сайт ссылку такого вида http:// мойсайт.ру/player/player.php?818570 должен вывестись мой плеер с моим видео ( то есть с фильмом Три богатыря) Такое используют видео базы типа moonwalk и им подобные.
Вот как это организовать не могу понять.
5.
Александр (01.07.2017 / 18:35)
Если в PHP не шаришь, то только на заказ и кто работает с DLE. Как минум в БД нужно добавить все ID с кинопоиска, которые сооствествуют уже фильму у тебя на сайте/БД.
6.
igrovik1 (01.07.2017 / 18:53)
Если в PHP не шаришь, то только на заказ и кто работает с DLE. Как минум в БД нужно добавить все ID с кинопоиска, которые сооствествуют уже фильму у тебя на сайте/БД.
В бд ид будут добавляться именно с доп поля, а вот как потом с бд вытянуть нужный ид?? и по нему вывести плеер.
Примерный код с которым думаю работать, нашарил в инете но в него нужно еще будет как-раз добавить функцию по поиску ид в бд и вывод плеера.Лан спасибо всем буду пытаться как-то.
Код api:
<?php
$status = 'OK';
$response = null;
$error = 0;
if(!isset($_GET['email'])){ // если не получили параметр
$status = 'ERROR';
$error = 1;
}else{
$email = $_GET['email'];
if(preg_match("|^[-0-9a-z_\.]+@[-0-9a-z_^\.]+\.[a-z]{2,6}$|i", $email)){ // проверяем корректрость e-mail
$response = true;
}else{
$response = false;
}
}
// массив для ответа
$result = array(
'status' => $status,
'response' => $response,
'error' => $error,
);
echo json_encode($result); // ответ в формате json
?>
ссылка тогда получиться такая
http://myService.ru/api.php?email=(здесь ид кинопоиск)
теперь мне нужно будет как-то после запроса этой ссылки
http://myService.ru/api.php?email= 1234 в коде вытянуть ид кинопоиск прогнать его через бд, если найдется в бд поле со значением 1234, дать коду дальнейшее действие на вывод плеера. Что-то типа такого наверное буду делать.
Еще раз спасибо, за ответы.
7.
Александр (01.07.2017 / 23:00)
igrovik1, что-то в этом роде ( с DLE ) не очень знаком. В корне создай файл
define('DATALIFEENGINE', true);
define('AUTOMODE', true);
define('LOGGED_IN', true);
define('ROOT_DIR', dirname (__FILE__));
define('ENGINE_DIR', ROOT_DIR.'/engine');
require_once ENGINE_DIR.'/classes/mysql.php';
require_once ENGINE_DIR.'/data/dbconfig.php';
require_once ENGINE_DIR.'/data/config.php';
require_once ENGINE_DIR.'/inc/include/functions.inc.php';
$id_kinopisk = int($_GET['id']);
$channels = $db->get_row($db->query("SELECT * FROM `dle_channels` WHERE `id` = '".$id_kinopisk."';"),0); // или $db->get_row("SELECT * FROM `dle_channels` WHERE `id` = '".$id_kinopisk."';");
echo $channels['id_zapisi_iz_pole'];
будет выводить ID: site.com/kinopoisk.php?id=ИД
8.
igrovik1 (01.07.2017 / 23:02)
Randy, Спасибо, буду пробовать.
9.
igrovik1 (01.07.2017 / 23:24)
Randy, Если я понял будет выводить именно ссылку site.com/kinopoisk.php?id=ИД????
Мне немного иное нужно чтобы с этого url site.com/kinopoisk.php?id=ИД скрипт выдирал именно ИД и проверял его в базе если такой Ид будет найден то скрипт отдает человеку ссылку на видео с иного поля (поле video) то есть ссылку на видео файл.
10.
Александр (02.07.2017 / 00:01)
igrovik1, новый запрос в БД и подставляй $channels['id_zapisi_iz_pole'], если данные с доп. поля хранятся не в одной таблице, если в одной, то:
define('DATALIFEENGINE', true);
define('AUTOMODE', true);
define('LOGGED_IN', true);
define('ROOT_DIR', dirname (__FILE__));
define('ENGINE_DIR', ROOT_DIR.'/engine');
require_once ENGINE_DIR.'/classes/mysql.php';
require_once ENGINE_DIR.'/data/dbconfig.php';
require_once ENGINE_DIR.'/data/config.php';
require_once ENGINE_DIR.'/inc/include/functions.inc.php';
$id_kinopisk = int($_GET['id']);
$video = $db->get_row($db->query("SELECT * FROM `dle_post` WHERE `pole` = '".$id_kinopisk."';"),0); // или $db->get_row("SELECT * FROM `dle_post` WHERE `pole` = '".$id_kinopisk."';");
echo $video['video'];
11.
Nervous (02.07.2017 / 00:05)
А я вот понял что у него id прописаны в базе, он их через админку добавляет.
Автор к тебе вопрос, тебе нужно чтобы было так твойсайт/video/id=5454645/ ну типа так, чтобы этот id 5454645 выводился на этой же странице? Как бы так страница с id например 4545 то и плеер в ней выводил id 4545 с кинопоиска верно ?
12.
Александр (02.07.2017 / 00:08)
Отрешенный NERVOUS., не. Ему нужно вытащить ID из БД из доп поле от кинопоиска и потом если ID есть, то вывести уже из поле video видос
13.
igrovik1 (02.07.2017 / 00:13)
Отрешенный NERVOUS., Не немного не так .Смотри знаешь такое moonwalk??? или getmovie?? Мне что-то подобное нужно как у них, то есть они дают человеку ссылку типа <script type="text/javascript" src="//сайт.ру/api/videos.js?тут_id_кинопоиска"></script>
<div id="getmovieplayer"></div> ну у них это идёт через api как я понял, но так как финансовый план мне не позволяет нанять кодера для написания api вот и ищу иное решение, для раздачи плеера.
14.
Александр (02.07.2017 / 00:20)
igrovik1, ну так выше код я дал, будет выводить ссылку на видео, которая хранится в поле video. Тебе надо тогда прописать еще:
вместо echo $video['video'];
Header('Location: '.$video['video']);
И при запросе будет редиректить на видеофайл (или код плеера пропиши и вставь $video['video'] на видеофайл) и при запросе site.com/kinopoisk.php?id=ИД будет выводить плеер.
15.
igrovik1 (02.07.2017 / 00:22)
Randy, Данные из доп полей в Dle хранятся в таблице post -->xfields как понял вытягиваю их такой функцией xfieldsdataload
Пример:
require_once __DIR__ . "/engine/api/api.class.php";
require_once ENGINE_DIR . '/modules/functions.php';
$field = 'имя доп поля';
$rows = $db->super_query( "SELECT xfields FROM ".PREFIX."_post", true );
$found = array();
foreach( $rows as $row )
{
$x = xfieldsdataload( $row['xfields'] );
if( $x[$field] ) $found[] = $x[$field];
}
$found = array_unique( $found );
natcasesort( $found );
$ty = join("\n<br/>", $found );
echo $ty;
16.
Александр (02.07.2017 / 00:25)
Randy, Данные из доп полей в Dle хранятся в таблице post -->xfields как понял вытягиваю их такой функцией xfieldsdataload
Пример:
require_once __DIR__ . "/engine/api/api.class.php";
require_once ENGINE_DIR . '/modules/functions.php';
$field = 'имя доп поля';
$rows = $db->super_query( "SELECT xfields FROM ".PREFIX."_post", true );
$found = array();
foreach( $rows as $row )
{
$x = xfieldsdataload( $row['xfields'] );
if( $x[$field] ) $found[] = $x[$field];
}
$found = array_unique( $found );
natcasesort( $found );
$ty = join("\n<br/>", $found );
echo $ty;
Зачем ты прицепился к этому API?
17.
igrovik1 (02.07.2017 / 00:29)
Randy, Да что-то мне кажется что немного не то так как данные из доп полей содержаться в post -->xfields, и в этом xfields может содержаться до 10 доп полей то есть год, режиссер, актеры, и т.д и т.п то есть если я сделаю такой запрос $video = $db->get_row($db->query("SELECT * FROM `dle_post` WHERE `
xfields` = '".$id_kinopisk."';"),0); то он будет скорее всего брать все что находиться в xfields. Или я ошибаюсь????
Добавлено через 01:56 сек.
Randy, Да некоторые говорили что это (то есть такая раздача плеера другим сайтам) делается только через api и никак иначе, вот и думаю.
18.
Александр (02.07.2017 / 00:32)
Randy, Да что-то мне кажется что немного не то так как данные из доп полей содержаться в post -->xfields, и в этом xfields может содержаться до 10 доп полей то есть год, режиссер, актеры, и т.д и т.п то есть если я сделаю такой запрос $video = $db->get_row($db->query("SELECT * FROM `dle_post` WHERE `xfields` = '".$id_kinopisk."';"),0); то он будет скорее всего брать все что находиться в xfields. Или я ошибаюсь????
Этого я не знаю... сейчас не могу посмотреть
19.
igrovik1 (02.07.2017 / 00:34)
Randy, Ясно, ну попробую если получится скомпонировать все что ты написал, мож и получиться таким образом.
20.
Александр (02.07.2017 / 00:34)
Добавлено через 01:56 сек.
Randy, Да некоторые говорили что это (то есть такая раздача плеера другим сайтам) делается только через api и никак иначе, вот и думаю.
Да нет
Добавлено через 01:14 сек.
Randy, Ясно, ну попробую если получится скомпонировать все что ты написал, мож и получиться таким образом.
Тебе главное поле нужно подствить, чтобы ID искался
21.
igrovik1 (02.07.2017 / 00:47)
Randy, По твоему примеру выбивает такое Fatal error: Call to undefined function int() in W:\domains\test\kinopoisk.php on line 14 Мож я что не так делаю:-(?
Или все же нужно к xfields делать запрос примерно такого типа как я приводил??
Типа так:
$field = 'txt';
$rows = $db->super_query( "SELECT xfields FROM ".PREFIX."_post", true );
$found = array();
foreach( $rows as $row )
{
$x = xfieldsdataload( $row['xfields'] );
if( $x[$field] ) $found[] = $x[$field];
}
$found = array_unique( $found );
natcasesort( $found );
$ty = join("\n<br/>", $found );
echo $ty; ????
Но как это все связать тогда во едино??? Ппц голова вообще не варит:-(
22.
Александр (02.07.2017 / 02:00)
igrovik1, Ты просто зарашиваешь файл kinopoisk.php без передачи ID (kinopoisk.php?id=1234).
Замени
$id_kinopisk = int($_GET['id']);
на
$id_kinopisk = intval($_GET['id']);
if ($id_kinopisk)
{
// сюда остальные данные помести, запрос в БД, вывод из БД
}
else
{
echo 'Ошибка';
}
23.
igrovik1 (03.07.2017 / 16:38)
Randy, Ничего у меня не получается:-(
24.
igrovik1 (03.07.2017 / 21:42)
Вот один человек дал код как он сказал под эти нужды самое оно, ну как с ним работать не пойму:-(
Как в него передать запрос с ссылки сайт.ру?kinopoisk.php?id=1234 и каким образом уже забирать нужное??? На данный вопрос ответа от него не последовало:-(
25.
igrovik1 (03.07.2017 / 21:44)
<?php
$xfield = empty($xfield) ? $db->safesql( htmlspecialchars(strip_tags( trim( $xfield ) ), ENT_QUOTES, $config['charset'] ) ) : false;
if (!$xfield) {
return;
}
$field = empty($field) ? $db->safesql( htmlspecialchars(strip_tags( trim( $field ) ), ENT_QUOTES, $config['charset'] ) ) : false;
if (!$field) {
return;
}
$cache = $xfield . $field;
$allow_cache = ($config['version_id'] >= '10.2') ? $config['allow_cache'] == '1' : $config['allow_cache'] == "yes";
if (!$allow_cache) {
if ($config['version_id'] >= '10.2')
$config['allow_cache'] = '1';
else
$config['allow_cache'] = "yes";
$is_change = true;
}
$xflist = dle_cache("news", $config["skin"] . $cache, false);
if ($xflist) {
echo $xflist;
return;
}
if (trim($xfield) != "") {
$where_str_xfield = "CHARACTER_LENGTH(SUBSTRING_INDEX( SUBSTRING_INDEX( xfields, '{$xfield}|', -1 ) , '||', 1 )) > 0 AND SUBSTRING_INDEX( SUBSTRING_INDEX( xfields, '{$xfield}|', -1 ) , '||', 1 ) NOT LIKE '%|%' AND CHARACTER_LENGTH(SUBSTRING_INDEX( SUBSTRING_INDEX( xfields, '{$field}|', -1 ) , '||', 1 )) > 0 AND SUBSTRING_INDEX( SUBSTRING_INDEX( xfields, '{$field}|', -1 ) , '||', 1 ) NOT LIKE '%|%'";
$select_str_xfield = "SUBSTRING_INDEX( SUBSTRING_INDEX( xfields, '{$field}|', -1 ) , '||', 1 ) as xf_{$field}";
}
else {
return;
}
if (!$field) {
return;
}
$thisdate = date ( "Y-m-d H:i:s", time () );
if($config['no_date'] && !$config['news_future'])
$where_date = " AND date < '" . $thisdate . "' ";
else
$where_date = "";
$db->query("SELECT {$select_str_xfield} FROM " . PREFIX . "_post WHERE approve=1 {$where_date} AND {$where_str_xfield}");
$xflist = array();
while ($row = $db->get_row()) {
if (!isset($xflist[$row["xf_{$field}"]])) {
$xflist[$row["xf_{$field}"]] = $row["xf_{$field}"];
}
}
$xf_list = implode($xflist);
create_cache("news", $xf_list, $config["skin"] . $cache, false);
if ($is_change) {
$config['allow_cache'] = false;
}
echo $xflist;
$db->free();
?>
26.
Александр (03.07.2017 / 23:31)
igrovik1, я с DLE не знаком. Может кто подскажет.
27.
igrovik1 (04.07.2017 / 13:54)
Randy, Спасибо хоть и на этом:-)
28.
igrovik1 (04.07.2017 / 23:28)
Randy, А можно тогда к тебе другой вопрос???
С таким нюансом не получается у меня сделать раздачу.А как можно тогда сделать чтобы раздача была такого типа сайт.ру/player/{id новости на своем сайте} то есть типа как здесь
http://datalock.ru/player/15628. На сайте данного плеере пишут такое
http://uppod.ru/help/q=embed-html5 А как тогда это сделать:-( Хоть так бы сделать раздачу:-) Заранее спасибо за любой ответ.
29.
Александр (05.07.2017 / 00:13)
igrovik1, задай на форуме uppod.ru этот вопрос, должны ребята ответить.
30.
igrovik1 (05.07.2017 / 00:18)
Randy, Да я почитал почти все кто задает такое вопрос получают тот же ответ что я привел в примере в ссылке!
31.
Александр (05.07.2017 / 00:48)
igrovik1, я тоже привел тебе пример
Тут выдергиваешь данные из БД и вставляешь ссылку на видеофайл в код плеера и будет запрос как раз site.com/kinopoisk.php?id=1234
32.
igrovik1 (05.07.2017 / 00:56)
Randy, Да я не спорю, ну суть в том что в Дле в базе данные с доп полей содержаться в таблице xfileds и как мне сказали чтобы их вытянуть нужно сделать разбор этой таблицы функцией xfieldsdataload или же так как я тебе выше писал, а простым запросом говорят не обойтись:-(
33.
igrovik1 (05.07.2017 / 19:45)
Randy, Все спасибо за то что предоставлял помощь, нашел код который выводит плеер таким образом сайт.ру/player.php?1234 . Вот сейчас застрял еще над одной проблемой, нужно в плеер загнать ссылку на видео через переменную $video на флеш плеере вставлялось норм, а вот на эту хрень
<center> <div id="videoplayer176-1502" style="width:300px;height:340px;"></div>
<script type="text/javascript">this.player = new Uppod({m:"video",uid:"videoplayer176-1502",file:"$video",st:"uppodvideo176-1502"});</script>
</center>
не хочет так :-(
Код запроса к базе и вывода нужного содержимого (Может кому-то тоже пригодиться):
<?php
@error_reporting(E_ALL ^ E_WARNING ^ E_DEPRECATED ^ E_NOTICE);
@ini_set('error_reporting', E_ALL ^ E_WARNING ^ E_DEPRECATED ^ E_NOTICE);
@ini_set('display_errors', true);
@ini_set('html_errors', false);
define('DATALIFEENGINE', true);
define('ROOT_DIR', dirname(__FILE__));
define('ENGINE_DIR', ROOT_DIR.'/engine');
$search_data = trim(strip_tags($_SERVER['QUERY_STRING']));
if (empty($search_data)){
die();
}
include(ENGINE_DIR.'/data/config.php');
require_once ENGINE_DIR.'/classes/mysql.php';
require_once ENGINE_DIR.'/data/dbconfig.php';
require_once ENGINE_DIR.'/modules/functions.php';
$xfields_search_name = 'imya'; //Имя доп. поля в котором искать
$xfields_print_name = 'info'; //Имя доп. поля которое выводить
$posts = $db->super_query("SELECT xfields FROM ".PREFIX."_post WHERE xfields LIKE '%".$db->safesql($xfields_search_name)."|".$db->safesql($search_data)."%'", true);
foreach ($posts as $post) {
$xfieldsdata = xfieldsdataload($post['xfields']);
if (isset($xfieldsdata[$xfields_print_name])) {
echo $xfieldsdata[$xfields_print_name].'<br>';
}
}
?>
34.
igrovik1 (05.07.2017 / 22:10)
И с плеером решил проблему, может кому пригодиться, не знаю верно сделано или нет но то что мне нужно было я добился:-)
Код плеера:
echo '<center> <div id="videoplayer176-1502" style="width:300px;height:340px;"></div>
<script type="text/javascript">this.player = new Uppod({m:"video",uid:"videoplayer176-1502",file:"';echo "$s"; echo '",st:"uppodvideo176-1502"});</script>
</center>';
35.
Александр (07.07.2017 / 12:51)
Только, например флешку лучше отдавать. На Opera 12.x не работает HTML5.
36.
igrovik1 (07.07.2017 / 13:56)
Randy, Привет, ну говорят что флешка нынче не хорошо, что нужно отдавать html 5.
URL:
https://visavi.net/topics/43633