Apelsin-ko 0 Опубликовано: 12 августа 2013 Рассказать Опубликовано: 12 августа 2013 Доброго времени суток. Есть скрипт <?php #Сервер $data_server = 'worldoftanks.ru'; #Версия API $api_version = 1.9; #Никнэйм $nickname = '05865086'; ###########################################################3 #Соединится $fp = fsockopen($data_server, 80, $errno, $errstr, 30); if($fp) { $out = "GET /community/accounts/search/?type=table&_=".time().rand(100,999)."&offset=0&limit=1&order_by=name&search=".$nickname."&echo=3&id=accounts_index HTTP/1.0\r\n"; $out.= "Accept: text/html, */*\r\n"; $out.= "User-Agent: Mozilla/3.0 (compatible; easyhttp)\r\n"; $out.= "X-Requested-With: XMLHttpRequest\r\n"; $out.= "Host: ".$data_server."\r\n"; $out.= "Connection: Close\r\n\r\n"; fwrite($fp, $out); $res=''; while (!feof($fp)) { $res.= fgets($fp, 128); } fclose($fp); } #Обрезать лишнее преобразовать в объект preg_match_all('/\{(.*?)\}$/', $res,$json_temp); $json_temp = '{'.$json_temp[1][0].'}'; $json = json_decode($json_temp); $js = $json->request_data->items; #Получить первый ID в списке foreach ($js[0] as $k=>$v) { if(preg_match('/^'.$nickname.'$/is',$v)) { foreach ($js[0] as $key=>$value) { if($key == 'id') $id = $value; } } } #Если ID получен загрузить страницу if($id) { $data = file_get_contents('http://'.$data_server.'/uc/accounts/'.$id.'/api/'.$api_version.'/?source_token=Intellect_Soft-WoT_Mobile-unofficial_stats'); } #Преобразуем в объект $n = json_decode($data); $count_battles = $n->data->summary->battles_count; //Боев $count_damage = $n->data->battles->damage_dealt; //Дамаг $count_kill = $n->data->battles->frags; //Уничтожено $count_search = $n->data->battles->spotted; //Обнаружено $count_zaxv = $n->data->battles->capture_points; //Захват $count_hits = $n->data->battles->hits_percents; //Попадания $count_save = $n->data->battles->dropped_capture_points; //Защита $count_wins = $n->data->summary->wins; //Побед $count_live = $n->data->summary->survived_battles; //Выжил $date_reg = $n->data->created_at; //Регистрация $date_update = $n->data->updated_at; //Обновлено $user_nickname = $n->data->name; //Ник $t = $n->data->vehicles; //Танки #Уровни танков foreach ($t as $key=>$value) { foreach ($value as $k=>$v) { if($k == 'level') $tank_level[] = $v; //Уровни танков if($k == 'battle_count') $tank_battles[] = $v; //Количество боев } } #Массив с танками по уровням $total = array(1=>0,2=>0,3=>0,4=>0,5=>0,6=>0,7=>0,8=>0,9=>0,10=>0); $total_level = array(1=>0,2=>0,3=>0,4=>0,5=>0,6=>0,7=>0,8=>0,9=>0,10=>0); for($i=0; $i<count($tank_level); $i++) { if($tank_level[$i] == 1) $total_level[1] += $tank_battles[$i]; if($tank_level[$i] == 2) $total_level[2] += $tank_battles[$i]; if($tank_level[$i] == 3) $total_level[3] += $tank_battles[$i]; if($tank_level[$i] == 4) $total_level[4] += $tank_battles[$i]; if($tank_level[$i] == 5) $total_level[5] += $tank_battles[$i]; if($tank_level[$i] == 6) $total_level[6] += $tank_battles[$i]; if($tank_level[$i] == 7) $total_level[7] += $tank_battles[$i]; if($tank_level[$i] == 8) $total_level[8] += $tank_battles[$i]; if($tank_level[$i] == 9) $total_level[9] += $tank_battles[$i]; if($tank_level[$i] == 10) $total_level[10] += $tank_battles[$i]; } ###################################################################### $middle_level = 0; for($i=1;$i<=10;$i++) { $middle_level += $total_level[$i] * $i; } $middle_tank_level = $middle_level / $count_battles; #Средний уровень танка $middle_damge = $count_damage / $count_battles; #Средний дамаг $middle_destr = $count_kill / $count_battles; #В среднем уничтожено $middle_det = $count_search / $count_battles; #В среднем обнаружено $middle_cap = $count_zaxv / $count_battles; #В среднем захвачено $middle_def = $count_save / $count_battles; #В среднем защита $proc_wins = ($count_wins / $count_battles) * 100; #Процент побед $percent_lived = $count_live / $count_battles * 100; #Процент выживаемости $battles_in_day = $count_battles / ((time() - $date_reg)/86400); #Боев в день #Формула расчета эффективности $eff = $middle_damge * (10/($middle_tank_level+2)) * (0.23+2*($middle_tank_level/100)) + ($middle_destr * 250) + ($middle_det * 150) + (log(($middle_cap+1),1.732) * 150) + ($middle_def * 150); #Получить первый ID в списке foreach ($js[0] as $k=>$v) { //if(preg_match('/^'.$nickname.'$/is',$v)) //{ foreach ($js[0] as $key=>$value) { if($key == 'id') $id = $value; } //} } echo "Мой процент побед = $proc_wins<br>"; echo "Мой процент выживаемости = $percent_lived<br>"; echo "Боев в день = $battles_in_day<br>"; echo "Мой средний дамаг = $middle_damge<br>"; echo "Боев проведено = $count_battles<br>"; echo "Средний уровень танков = $middle_tank_level<br>"; echo "В среднем уничтоженно = $middle_destr<br>"; echo "В среднем обнаруженно = $middle_det<br>"; echo "В среднем захвачено = $middle_cap<br>"; echo "В среднем защита = $middle_def"; ?> собственно не так важо, подскажите в какие файлы движка нужно внести изменения что бы движок нормально запускал скрипт (я не прошу большей информации чем обязана мне дать тех.поддержка). Спасибо. Цитата Ссылка на сообщение Поделиться на других сайтах
Apelsin-ko 0 Опубликовано: 13 августа 2013 Рассказать Опубликовано: 13 августа 2013 Автор Если скрипт запускаешь отдельно http://apelsin-ko.com/wot2.php (то есть он работает), но когда тот же самый скрипт прописываешь в main.tpl вот таким образом [aviable=main]{include file="wot.php"}[/aviable] [not-aviable=main]{content}[/not-aviable] он не работает, то есть не может связаться, делать запросы, что то блокирует, пример - http://apelsin-ko.com/ что может его блокировать, куда нужно что прописать что бы открыть доступ. Цитата Ссылка на сообщение Поделиться на других сайтах
alex32 942 Опубликовано: 13 августа 2013 Рассказать Опубликовано: 13 августа 2013 файл надо положить в папку engine/modules а в майн тпл запускать так {include file="engine/modules/wot.php"} Цитата Ссылка на сообщение Поделиться на других сайтах
Apelsin-ko 0 Опубликовано: 13 августа 2013 Рассказать Опубликовано: 13 августа 2013 (изменено) Автор файл надо положить в папку engine/modules а в майн тпл запускать так {include file="engine/modules/wot.php"} Сделал как вы сказали, результат тот же, http://apelsin-ko.com/ то есть его так же нет Изменено 13 августа 2013 пользователем Apelsin-ko Цитата Ссылка на сообщение Поделиться на других сайтах
Captain 623 Опубликовано: 13 августа 2013 Рассказать Опубликовано: 13 августа 2013 http://dle-news.ru/tips/33-ispolzovanie_ljubykh_php_vstavok_v_shablonakh.html Цитата Ссылка на сообщение Поделиться на других сайтах
Apelsin-ko 0 Опубликовано: 13 августа 2013 Рассказать Опубликовано: 13 августа 2013 Автор http://dle-news.ru/t...shablonakh.html полезная вещь, но это замена мыла на шило, скрипт теперь можно вставить в main.tpl ,в тегах пхп и он будет отображаться точно так же как и отображался раньше include, скрипт работает, что то не дает ему делать запросы, возможно где то надо еще прописать что то, может что в .htaccessУважаемая тех. поддержка вопрос на прямую связан с вашими обязанностями, дайте ответ. Цитата Ссылка на сообщение Поделиться на других сайтах
celsoft 6 068 Опубликовано: 13 августа 2013 Рассказать Опубликовано: 13 августа 2013 скрипт работает, что то не дает ему делать запросы, возможно где то надо еще прописать что то, может что в .htaccess Уважаемая тех. поддержка вопрос на прямую связан с вашими обязанностями, дайте ответ. Вынужден ваш огорчить, это не в компетенции службы тех. поддержки, потому что неработает ваш скрипт, а не скрипт DLE, и DLE ему ничем не мешает. Поиск ошибок в ваших скриптах в компетенцию службы поддержки не входит. Служба поддержки оказывает помощь только по работе DLE и работе стандартных функций DLE http://dle-news.ru/support.html а не по вашим написанным вами скриптам. Цитата Ссылка на сообщение Поделиться на других сайтах
Apelsin-ko 0 Опубликовано: 13 августа 2013 Рассказать Опубликовано: 13 августа 2013 Автор скрипт работает, что то не дает ему делать запросы, возможно где то надо еще прописать что то, может что в .htaccess Уважаемая тех. поддержка вопрос на прямую связан с вашими обязанностями, дайте ответ. Вынужден ваш огорчить, это не в компетенции службы тех. поддержки, потому что неработает ваш скрипт, а не скрипт DLE, и DLE ему ничем не мешает. Поиск ошибок в ваших скриптах в компетенцию службы поддержки не входит. Служба поддержки оказывает помощь только по работе DLE и работе стандартных функций DLE http://dle-news.ru/support.html а не по вашим написанным вами скриптам. скрипт полностью работоспособен, я не прошк разбираться в скрипте но наглядно http://apelsin-ko.com/wot2.php работает, а если его внедряешь в шаблон то он не обрабатывается, или не делает запросы, или чем то блокируется, проблема в движке. Почему вы не оказываете должную поддержку, от вас я ничего дельного не услышал кроме отговорок по неработоспособности скрипта, который полностью исправен, за что я оплачивал расширенную лицензию не пойму, дюди не являющиеся тех. поддержкой и то привели примеры и доводы о возможно неправильных путях, привели свои варианты решения проблемы. Исходя из этого могу сказать что помощи от вас весомо никакой. Цитата Ссылка на сообщение Поделиться на других сайтах
Captain 623 Опубликовано: 13 августа 2013 Рассказать Опубликовано: 13 августа 2013 Apelsin-ko, не порите чушь, с проблемами сторонних скриптов ТП не занимается. Техническая поддержка оказывает помощь только по вопросам касающимся непосредственно PHP скрипта DLE 1 Цитата Ссылка на сообщение Поделиться на других сайтах
celsoft 6 068 Опубликовано: 14 августа 2013 Рассказать Опубликовано: 14 августа 2013 скрипт полностью работоспособен, я не прошк разбираться в скрипте но наглядно http://apelsin-ko.com/wot2.php работает Это полная ерунда. Ваш скрипт написан неправильно. Хотите знать почему ваш скрипт не работает? Потому что в вашем скрипте вместо строчки: $api_version = 1.9; [/CODE] должна быть строчка [CODE] $api_version = "1.9"; И после этого удивительным образом заработает ваш скрипт как в DLE при подключении через {include file="wot.php"} в шаблоне, так и без него. Это чистый баг вашего скрипта. В PHP есть такое понятие как типы переменных, а вы это в своем скрипте даже не учитываете. Исходя из этого могу сказать что помощи от вас весомо никакой. Повторю вам еще раз. Техническая поддержка не ищет ошибок в ваших скриптах. Потому что это ваши скрипты, а не те что вы купили у нас. Техническая поддержка оказывает помощь только по DLE, и только по кодам DLE, а не по каким то сторонним кодам. Техническая поддержка это не ваш персональный программист, которая будет писать вам скрипты на заказ, или искать ошибки в ваших скриптах. Сейчас я вам указал где ошибка в вашем скрипте, исправляйте ее и все у вас заработает. Но на будущее не нужно обращаться к тех. поддержки по подобным вопросам, больше я не буду искать где и какие ошибки у вас в ваших скриптах или в ваших модификациях. Цитата Ссылка на сообщение Поделиться на других сайтах
Apelsin-ko 0 Опубликовано: 14 августа 2013 Рассказать Опубликовано: 14 августа 2013 Автор скрипт полностью работоспособен, я не прошк разбираться в скрипте но наглядно http://apelsin-ko.com/wot2.php работает Это полная ерунда. Ваш скрипт написан неправильно. Хотите знать почему ваш скрипт не работает? Потому что в вашем скрипте вместо строчки: $api_version = 1.9; должна быть строчка $api_version = "1.9"; И после этого удивительным образом заработает ваш скрипт как в DLE при подключении через {include file="wot.php"} в шаблоне, так и без него. Это чистый баг вашего скрипта. В PHP есть такое понятие как типы переменных, а вы это в своем скрипте даже не учитываете. Исходя из этого могу сказать что помощи от вас весомо никакой. Повторю вам еще раз. Техническая поддержка не ищет ошибок в ваших скриптах. Потому что это ваши скрипты, а не те что вы купили у нас. Техническая поддержка оказывает помощь только по DLE, и только по кодам DLE, а не по каким то сторонним кодам. Техническая поддержка это не ваш персональный программист, которая будет писать вам скрипты на заказ, или искать ошибки в ваших скриптах. Сейчас я вам указал где ошибка в вашем скрипте, исправляйте ее и все у вас заработает. Но на будущее не нужно обращаться к тех. поддержки по подобным вопросам, больше я не буду искать где и какие ошибки у вас в ваших скриптах или в ваших модификациях. Большое человеческое спасибо. Цитата Ссылка на сообщение Поделиться на других сайтах
Рекомендованные сообщения
Присоединяйтесь к обсуждению
Вы можете опубликовать сообщение сейчас, а зарегистрироваться позже. Если у вас есть аккаунт, войдите в него для написания от своего имени.