samo733792 19 Опубликовано: 22 марта 2014 Рассказать Опубликовано: 22 марта 2014 (изменено) Привет всем, со вчерашнего дня не как не могу редактировать материалы на сайте, вернее редактировать то можно, но когда нажимаю кнопку сохранить, идет долгая загрузка, то сайт становится не доступным то выдает ошибку MySQL error in file: /engine/inc/editnews.php at line 1698 Error Number: 2006 The Error returned was: MySQL server has gone away Перестроение публикации тоже не делает, пищит 0 ошибка отправки Но перестроение статистических страниц и кеша похожих новостей делает. Сайт www.androidsland.ru. Изменено 22 марта 2014 пользователем samo733792 Цитата Ссылка на сообщение Поделиться на других сайтах
alex32 942 Опубликовано: 22 марта 2014 Рассказать Опубликовано: 22 марта 2014 /engine/inc/editnews.php попробуйте оригинальный с дистриба залить Цитата Ссылка на сообщение Поделиться на других сайтах
samo733792 19 Опубликовано: 22 марта 2014 Рассказать Опубликовано: 22 марта 2014 Автор /engine/inc/editnews.php К сожалению не помог, с хостером уже час ломаем голову, нечего не получается. Самое интересное это то что он может отредактировать материалы а я не могу! (я дал доступ в админку) Как это вообще возможно? Цитата Ссылка на сообщение Поделиться на других сайтах
alex32 942 Опубликовано: 22 марта 2014 Рассказать Опубликовано: 22 марта 2014 Самое интересное это то что он может отредактировать материалы а я не могу! (я дал доступ в админку) Как это вообще возможно? это странно. в той строке запись в БД идет, и если он может, то БД доступна и прекрасно обновляется, значит баг надо искать у вас на компе. С другого компа, другой браузер пробовали? Цитата Ссылка на сообщение Поделиться на других сайтах
samo733792 19 Опубликовано: 22 марта 2014 Рассказать Опубликовано: 22 марта 2014 Автор С другого компа, другой браузер пробовали? Тоже пробовал, почему-то не помогает. Странная какая-то ситуация получается. Думаю разработчик смог бы что-то посоветовать но он молчит.Я нашел причину, оказывается дело в теге media, пример: [media=https://www.youtube.com/watch?v=jny3heAeo10] Когда подобный код присутствует в материале то его не возможно сохранить. Но как же решить эту проблему. Цитата Ссылка на сообщение Поделиться на других сайтах
alex32 942 Опубликовано: 22 марта 2014 Рассказать Опубликовано: 22 марта 2014 Это полтергейст Цитата Ссылка на сообщение Поделиться на других сайтах
celsoft 6 067 Опубликовано: 22 марта 2014 Рассказать Опубликовано: 22 марта 2014 samo733792, Не может этот тег влиять на быстродействие редактирования. Ваш хостинг провайдер может спокойно редактировать новости в которых этот тег? Или вы оба не можете редактировать новость если в нем данный тег. Или он может, а вы нет? Если проблема у обоих, то смотрите и проверяйте содержимое файла engine/data/videoconfig.php может быть он поврежден у вас. Цитата Ссылка на сообщение Поделиться на других сайтах
samo733792 19 Опубликовано: 22 марта 2014 Рассказать Опубликовано: 22 марта 2014 Автор Или он может, а вы нет? Мы оба не могли. Да полтергейст. Проблема была в файле parse.class.php, там была настроена микроразметка для видео уже где-то 5 месяцев, все работало нормально. Но почему-то вчера появилась такая проблема. Я заменил файл parse.class.php из оригинального дистрибьютора и все заработало. Микроразметка была настроена по этой инструкции почти 5 месяцев, но вчера появилась проблема, в чем может быть причина? Цитата Ссылка на сообщение Поделиться на других сайтах
celsoft 6 067 Опубликовано: 22 марта 2014 Рассказать Опубликовано: 22 марта 2014 Уже по надписи: Внимание, без подключенной бибилиотеки CURL, парсер работать не будет! понятно что данный сторонний модуль обращается за информацией к какому то стороннему внешнему сайту. Он видимо перестал работать, и соответственно у вас тоже все перестало работать. Цитата Ссылка на сообщение Поделиться на других сайтах
samo733792 19 Опубликовано: 22 марта 2014 Рассказать Опубликовано: 22 марта 2014 Автор обращается за информацией к какому то стороннему внешнему сайту Да похоже так и есть, хотя вот содержимое этого PHP файла, я не разбираюсь в PHP но похоже он обращается только к Youtube, ask и какому-то a9.com и все они нормально доступны. <?php /* ===================================================== Парсер данных Видеохостинга Youtube Для DLE ----------------------------------------------------- Copyright(c) 2013 Блог Дениса Максимова Maximoff.com.ua ===================================================== Данный код защищен авторскими правами ===================================================== Изначальная идея и реализация Класса - Mixlion (http://freehabr.ru/blog/php/797.html) ===================================================== Оригинальные ссылки на исходники в github (http://github.com/mixlion/Youtube-Tools/) ===================================================== Файл: youtube.class.php ----------------------------------------------------- Назначение: Парсинг информаци для микроразметки видео с Ютюб. ===================================================== */ if( ! defined( 'DATALIFEENGINE' ) ) { die( "Hacking attempt!" ); } class YT { /** * @var array $info - Video data */ private static $info; /** * @var string $id - Video id */ private static $id; /** * @var array $links - Links array */ private static $links = array(); /** * @var array $data - Media information about video */ private static $data = array(); /** * @var string $user_agent - useragent for getting data * Can be edited */ private static $user_agent = 'Youtube Tools v.1'; /** * @var bool $proxy - Use proxy * Can be edited (true, false) */ private static $proxy = true; /** * @var array $proxy_list - List of the proxy servers */ private static $proxy_list = array(); /** * @var int $proxy_attempts - Number of attempts to use a proxy (Determined automatically) */ private static $proxy_attempts = 0; /** * @var array $formats - Перечень возможных Вариантов формата видео */ private static $formats = array( '5'=>'flv', '6'=>'flv', '34'=>'flv', '35'=>'flv', '18'=>'mp4', '22'=>'mp4', '37'=>'mp4', '38'=>'mp4', '83'=>'mp4', '82'=>'mp4', '85'=>'mp4', '84'=>'mp4', '43'=>'webm', '44'=>'webm', '45'=>'webm', '46'=>'webm', '100'=>'webm', '101'=>'webm', '102'=>'webm', '13'=>'3gp', '17'=>'3gp', '36'=>'3gp' ); public static function init($id = null){ self::$data = self::$links = self::$info = null; if(self::$proxy){ $dir = realpath(dirname(__FILE__)); self::$proxy_list = is_file($dir.'/proxy.txt') ? file($dir.'/proxy.txt') : array(); if(empty(self::$proxy_list)) self::$proxy = false; self::$proxy_attempts = sizeof(self::$proxy_list); } self::$id = $id; } /** * Method for processing getting information about video * @param bool $proxy * @param int $i * @return array|null */ public static function get_info($proxy = false, $i = 0){ if(empty(self::$id)) die('Enter video id'); if(!empty(self::$info)) return self::$info; # Get video data $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, 'http://www.youtube.com/get_video_info?video_id='. self::$id); # Use proxy if($proxy && self::$proxy){ $proxy = self::$proxy_list[($i-1)]; curl_setopt($ch, CURLOPT_TIMEOUT, 3); curl_setopt($ch, CURLOPT_PROXY, trim($proxy)); } curl_setopt($ch, CURLOPT_USERAGENT, self::$user_agent); curl_setopt ($ch, CURLOPT_HEADER, 0); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); $data = curl_exec ($ch); curl_close ($ch); # Parsing data parse_str($data, $info); # Check the returned status and, if necessary, use a proxy if(@$info['status'] == 'ok') { self::$info = $info; return $info; } elseif($i<self::$proxy_attempts && self::$proxy) return self::get_info(true, ++$i); else return false; } /** * Method for getting direct links to video * @return array */ public static function get_links(){ if(!empty(self::$links)) return self::$links; if(empty(self::$info)) self::get_info(); $links_map = explode(',',self::$info['url_encoded_fmt_stream_map']); $fmt_list = explode(',',self::$info['fmt_list']); if(empty($links_map) || (sizeof($links_map) == 1 && empty($links_map[0]))) return false; foreach($links_map as $key => $link){ parse_str($link,$parts); $link = $parts['url'].='&signature='.$parts['sig']; $fmt_parts = explode('/', $fmt_list[$key],3); # Create array of information of video self::$links[self::$formats[$parts['itag']] .'-'. $fmt_parts[1]] = array(self::$formats[$parts['itag']], $fmt_parts[1], $link); } return self::$links; } /** * Method to save video to local path * @param $video - Video type * @param $path - Dir to save video * @param null|string $name - Name of video (without extension) */ public static function save($video, $path, $name = null){ if(empty(self::$links)) self::get_links(); if(!isset(self::$links[$video])) die('Video `'. $video .'` not found'); # Define name of video $name = empty($name) ? self::$info['title'] : $name; if($path[mb_strlen($path, '1251')-1] != '/') $path .= '/'; $url = self::$links[$video][2] . '&title='. urlencode($name); $ch = curl_init($url); # Handle for copy video $fo = fopen($path . $name . '.' . self::$links[$video][0], 'w'); curl_setopt($ch, CURLOPT_USERAGENT, self::$user_agent); curl_setopt($ch, CURLOPT_HEADER, 0); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt($ch, CURLOPT_FILE, $fo); curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1); curl_exec($ch); curl_close($ch); fclose($fo); } /** * Method for getting data about video * @return array */ public static function get_data(){ if(!empty(self::$data)) return self::$data; if(empty(self::$info)) self::get_info(); $entry = simplexml_load_file('http://gdata.youtube.com/feeds/mobile/videos/' . self::$id); $media = $entry->children('http://search.yahoo.com/mrss/'); $entry->registerXPathNamespace('feed', 'http://www.w3.org/2005/Atom'); $related = $entry->xpath("feed:link[@rel='http://gdata.youtube.com/schemas/2007#video.related']"); $related = (string)$related[0]['href']; $data = array( //'Ключевые слова' => self::$info ['keywords'], 'title' => (string)$entry->title, 'descr' => (string)$media->group->description, //'Категория' => (string)$media->group->category, 'time' => self::$info ['length_seconds'], //'Просмотров' => self::$info ['view_count'], //'Рейтинг' => self::$info ['avg_rating'], 'tumb' => (string)$media->group->thumbnail[0]->attributes()->url, # Link for get related videos //'related' => $related ); self::$data = $data; return $data; } /** * Method for search video * @param string $query - Query string * @param string $order - Type of order video (relevance, published, viewCount, rating) * @param int $start - Number of first element * @param int $count - Count of return results * @param array $need - Needed fields to return, may be id, title, description, author, thumbnails, keywords, player * @return array */ public static function search($query, $need = array('id', 'title', 'description', 'author', 'thumbnails', 'keywords', 'player', 'duration'), $order = 'published', $start = 1, $count = 10) { # Orders type $allowOrder = array('relevance', 'published', 'viewCount', 'rating'); if(!in_array($order, $allowOrder)) exit('Wrong type of order'); # Make url $url = 'http://gdata.youtube.com/feeds/api/videos?vq='. urlencode($query) .'&orderby='. $order .'&start-index='. intval($start) .'&format=1&max-results='. intval($count); # Get data $ch = curl_init($url); curl_setopt($ch, CURLOPT_USERAGENT, self::$user_agent); curl_setopt ($ch, CURLOPT_HEADER, 0); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); $data = curl_exec ($ch); curl_close ($ch); if(strpos($data, '<?xml') === false) exit('Can\'t processing video data'); $data = simplexml_load_string($data); # Total results $return = array('count' => (int)$data->children('http://a9.com/-/spec/opensearchrss/1.0/')->totalResults); # Parsing data if(sizeof($data->entry)>0){ foreach($data->entry as $entry){ $now = array(); if(in_array('id', $need)) $now += array('id' => basename($entry->id)); if(in_array('title', $need)) $now += array('title' => (string)$entry->title); if(in_array('description', $need)) $now += array('description' => (string)$entry->content); if(in_array('author', $need)) $now += array('author' => (string)$entry->author->name); if(in_array('thumbnails', $need) || in_array('keywords', $need) || in_array('player', $need)){ $media = $entry->children('http://search.yahoo.com/mrss/'); } if(in_array('keywords', $need)) $now += array('keywords' => (string)$media->group->keywords); if(in_array('player', $need)) $now += array('player' => (string)$media->group->player->attributes()->url); if(in_array('thumbnails', $need)) $now += array('thumbnails' => array( 'default' => (string)$media->group->thumbnail[0]->attributes()->url, 1 => (string)$media->group->thumbnail[1]->attributes()->url, 2 => (string)$media->group->thumbnail[2]->attributes()->url, 3 => (string)$media->group->thumbnail[3]->attributes()->url )); if(in_array('duration', $need)) $now += array('duration' => (int)$media->children('http://gdata.youtube.com/schemas/2007') ->duration->attributes()); $return[] = $now; } return $return; } else return array(); } /** * Method for getting video and output to browser (test method) * @param string $video - Type video for getting */ public static function get($video) { if(empty(self::$links)) self::get_links(); if(!isset(self::$links[$video])) die('Video `'. $video .'` not found'); $url = self::$links[$video][2]; $ch = curl_init($url); curl_setopt($ch, CURLOPT_NOBODY, 1); curl_setopt($ch, CURLOPT_HEADER, 1); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1); curl_exec($ch); $res = curl_getinfo($ch); curl_close($ch); if($res['content_type'] == 'video/webm') $ext = 'webm'; elseif($res['content_type'] == 'video/x-flv') $ext = 'flv'; elseif($res['content_type'] == 'video/mp4') $ext = 'mp4'; elseif($res['content_type'] == 'video/3gpp') $ext = '3gp'; header('Content-Type: '. $res['content_type']); header('Content-Length: '. $res['download_content_length']); header('Content-Disposition: attachment; filename='. urlencode(self::$info['title']).'.'.$ext); $ch = curl_init($res['url']); curl_setopt($ch, CURLOPT_USERAGENT, self::$user_agent); curl_setopt($ch, CURLOPT_HEADER, 0); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 0); curl_exec($ch); curl_close($ch); } } ?> Цитата Ссылка на сообщение Поделиться на других сайтах
celsoft 6 067 Опубликовано: 22 марта 2014 Рассказать Опубликовано: 22 марта 2014 Да похоже так и есть, хотя вот содержимое этого PHP файла, я не разбираюсь в PHP но похоже он обращается только к Youtube, ask и какому-то a9.com и все они нормально доступны. Это вам нужно обращаться к автору данного модуля. Я не буду изучать его код и искать где и в чем происходит проблема. Цитата Ссылка на сообщение Поделиться на других сайтах
samo733792 19 Опубликовано: 22 марта 2014 Рассказать Опубликовано: 22 марта 2014 Автор Хорошо, спасибо, я так и знал что вы сможете раскрутить этот полтергейст. Теперь хотя бы понятна в чем причина. Цитата Ссылка на сообщение Поделиться на других сайтах
Рекомендованные сообщения
Присоединяйтесь к обсуждению
Вы можете опубликовать сообщение сейчас, а зарегистрироваться позже. Если у вас есть аккаунт, войдите в него для написания от своего имени.