NotesWhat is notes.io?

Notes brand slogan

Notes - notes.io

<?
/********************************************************
Gplay2z - парсер приложений GooglePlay, AppStore, Windows Phone
Authors: seo2z & Progmer
Version: 4.5
Date update: 13.08.2013
********************************************************/
?>
<?
if(function_exists('date_default_timezone_set'))
date_default_timezone_set('Europe/Moscow');

if(!file_exists(dirname(__FILE__).'/config.php'))
header('LOCATION: settings.php');


include('config.php');

if(!isset($config['lang']))
$config['lang'] = 'ru';

include('langs/'.$config['lang'].'.php');

if(!isset($config['onpage']) || intval($config['onpage']) == 0)
$config['onpage'] = 30;

$cms_info = array(
'wp' => array(
'mw.newPost' => 'metaWeblog.newPost',
'mw.editPost' => 'metaWeblog.editPost',
'mw.getCategories' => 'metaWeblog.getCategories',
),
'dle' => array(
'mw.newPost' => 'metaWeblog.newPost',
'mw.editPost' => 'metaWeblog.editPost',
'mw.getCategories' => 'metaWeblog.getCategories',
),
'joomla' => array(
'mw.newPost' => 'metaWeblog.newPost',
'mw.editPost' => 'metaWeblog.editPost',
'mw.getCategories' => 'metaWeblog.getCategories',
),
'drupal' => array(
'mw.newPost' => 'metaWeblog.newPost',
'mw.editPost' => 'metaWeblog.editPost',
'mw.getCategories' => 'metaWeblog.getCategories',
),
);

$link = mysql_connect($config['db_server'], $config['db_user'], $config['db_pass'], $config['db_name']) or die('Reinstall parser please');
mysql_select_db($config['db_name']);
mysql_query("SET NAMES utf8");

if(isset($_POST['action']) && $_POST['action'] == 'get_apps') {
$params = array(
'page' => 1
);

if(isset($_POST['page']) && preg_match('/^[0-9]+$/', $_POST['page']))
$params['page'] = $_POST['page'];

if(isset($_POST['filters']['lang']) && !empty($_POST['filters']['lang']))
$params['lang'] = $_POST['filters']['lang'];

if(isset($_POST['filters']['source']) && !empty($_POST['filters']['source']))
$params['source'] = $_POST['filters']['source'];

if(isset($_POST['filters']['exportto']) && !empty($_POST['filters']['exportto']))
$params['exportto'] = $_POST['filters']['exportto'];

if(isset($_POST['filters']['category']) && !empty($_POST['filters']['category']))
$params['category'] = $_POST['filters']['category'];

die(json_encode(getApps($params)));
}

# Одиночное удаление приложения
if(isset($_POST['action']) && $_POST['action'] == 'delete_apps' && isset($_POST['ids']) && is_array($_POST['ids'])) {
mysql_query("DELETE FROM apps WHERE id IN(".implode(',', $_POST['ids']).")");

# скриншоты
if ($handle = opendir(dirname(__FILE__).'/screenshots')) {
while (false !== ($file = readdir($handle))) {
foreach($_POST['ids'] as $id) {
if(preg_match('/^'.$id.'-([0-9]+).jpg$/', $file))
unlink(dirname(__FILE__).'/screenshots/'.$file);
}
}
}

# Баннеры
foreach($_POST['ids'] as $id) {
if(file_exists('banners/'.$id.'.jpg'))
unlink('banners/'.$id.'.jpg');
}

# Иконки
foreach($_POST['ids'] as $id) {
if(file_exists('images/'.$id.'.jpg'))
unlink('images/'.$id.'.jpg');
}

$affected = mysql_affected_rows($link);
$res = mysql_query("SELECT id FROM projects");
while($r = mysql_fetch_assoc($res)) {
$rcount = mysql_fetch_assoc(mysql_query("SELECT COUNT(*) as count FROM apps WHERE exported LIKE '%".$r['id'].":%'"));
mysql_query("UPDATE projects SET apps_count = '".$rcount['count']."' WHERE id = '".$r['id']."'");
}

die(json_encode(array('count' => $affected, 'ids' => $_POST['ids'])));
}

# Перепарсить приложения
/*if(isset($_POST['action']) && $_POST['action'] == 'get_apps') {

$wheres = array();

if(isset($_POST['filters']['lang']) && in_array($_POST['filters']['lang'], array('ru', 'en')))
$wheres[] = "`lang` = '".$_POST['filters']['lang']."'";

if(isset($_POST['filters']['source']) && in_array($_POST['filters']['source'], array('googleplay', 'appstore', 'windowsphone')))
$wheres[] = "`source` = '".$_POST['filters']['source']."'";

if(count($wheres) > 0) $wheres = 'WHERE '.implode(' AND ', $wheres);
else $wheres = '';

$res = mysql_query("SELECT * FROM apps $wheres");
$result = array();
while($r = mysql_fetch_assoc($res)) {

$r['source'] = $r['source'] == 'googleplay' ? 'G' : 'A';

$screenshots = array();
if ($handle = opendir(dirname(__FILE__).'/screenshots')) {
while (false !== ($file = readdir($handle))) {
if(preg_match('/^'.$r['id'].'-([0-9]+).jpg$/', $file))
$screenshots[] = '<a target="_blank" href="screenshots/'.$file.'" class="zoom">'.$file.'</a>';
}
}

if(count($screenshots) > 0)
$r['screenshots'] = implode('<br />', $screenshots);

if(file_exists('images/'.$r['id'].'.jpg'))
$r['image'] = 'images/'.$r['id'].'.jpg';

if(file_exists('banners/'.$r['id'].'.jpg'))
$r['banner'] = 'banners/'.$r['id'].'.jpg';

$r['description'] = str_replace('"', "'", $r['description']);
$r['wnews'] = strip_tags($r['wnews']);

$r['link'] = !empty($r['link']) ? '<a href="'.$r['link'].'" target="_blank">Клац</a>' : '';

$result[] = $r;
}

die(json_encode($result));
}*/

# Очистка базы
if(isset($_POST['clear'])) {

# Удаляем файлы

$ids = array(); # идентификаторы записей, файлы которых необходимо удалить
$res = mysql_query("SELECT id FROM apps WHERE exported = ''");
while($r = mysql_fetch_assoc($res)) {
$ids[] = $r['id'];
}

# скриншоты
if ($handle = opendir(dirname(__FILE__).'/screenshots')) {
while (false !== ($file = readdir($handle))) {
foreach($ids as $id) {
if(preg_match('/^'.$id.'-([0-9]+).jpg$/', $file))
unlink(dirname(__FILE__).'/screenshots/'.$file);
}
}
}

# Баннеры
foreach($ids as $id) {
if(file_exists('banners/'.$id.'.jpg'))
unlink('banners/'.$id.'.jpg');
}

# Иконки
foreach($ids as $id) {
if(file_exists('images/'.$id.'.jpg'))
unlink('images/'.$id.'.jpg');
}

# Удаляем записи из базы
mysql_query("DELETE FROM apps WHERE exported = ''"); # удалим все приложения, которые еще небыли выгружены

die('OK');
}

# Генерация базы
if(isset($_GET['generate']) && isset($_GET['type'])) {

# Соберем идентификаторы
$ids = false;
foreach($_POST as $key => $value) {
if(preg_match('/chk([0-9]+)/', $key, $match)) {
if(!$ids) $ids = array();

$ids[] = $match[1];
}
}

switch($_GET['type']) {
case 'csv':
$file = array('ИД;Название;Разработчик;Размер;Рейтинг;Количество голосов;Дата обновления;Версия;ОС;Жанр;Установок;Цена;URL;Видео;Импорт;Источник;Описание;Возрастные ограничения;Email разработчика;Сайт разработчика');
$res = mysql_query("SELECT * FROM apps");
while($r = mysql_fetch_assoc($res)) {

if($ids && !in_array($r['id'], $ids))
continue;

foreach($r as $key => $value) {
$r[$key] = preg_replace('/[^a-zа-я0-9 ё,.;:`-=+'"@!#$%^&*()|?/_]+/iu', '', $r[$key]);
$r[$key] = str_replace('"', '""', $r[$key]);
}


$file[] = $r['id'].';"'.$r['name'].'";"'.$r['developer'].'";"'.$r['size'].'";"'.$r['rating'].'";"'.$r['ratigcount'].'";"'.$r['date_update'].'";"'.$r['version'].'";"'.$r['os'].'";"'.$r['category'].'";"'.$r['setups'].'";"'.$r['price'].'";"'.$r['link'].'";"'.$r['video'].'";"'.$r['exported'].'";"'.$r['source'].'";"'.$r['description'].'";"'.$r['age'].'";"'.$r['developer_email'].'";"'.$r['developer_site'].'"';
}

header("Content-Disposition: attachment; filename=gplay2z.csv");
header('Content-Type: application/force-download;');
die(iconv('UTF-8', 'windows-1251', implode("rn", $file)));

case 'json':
$array = array();
$res = mysql_query("SELECT * FROM apps");
while($r = mysql_fetch_assoc($res)) {
if($ids && !in_array($r['id'], $ids))
continue;
$array[] = $r;
}

header("Content-type: application/json");
die(json_encode($array));
case 'xml':
$xml = new DOMDocument('1.0','utf-8');
$root = $xml->createElement('applications' ,'');
$xml->appendChild($root);

$res = mysql_query("SELECT * FROM apps");
while($r = mysql_fetch_assoc($res)) {
if($ids && !in_array($r['id'], $ids))
continue;

$app = $xml->createElement('app');
foreach($r as $key => $value) {
$field = $xml->createElement($key, htmlspecialchars($value));
$app->appendChild($field);
}
$root->appendChild($app);
}
header("Content-type: text/xml");
die($xml->saveXML());
}
}

# Получить очередную пачку приложений
function getApps($params = array()) {
global $config, $lang;

$start = $params['page'] * $config['onpage'] - $config['onpage'];

$wheres = array();

$filters = array(
'lang' => '',
'source' => '',
'exportto' => '',
'category' => '',
);
if(isset($params['lang']) && in_array($params['lang'], array('ru', 'en'))) {
$wheres[] = "`lang` = '".$params['lang']."'";
$filters['lang'] = $params['lang'];
}

if(isset($params['source']) && in_array($params['source'], array('googleplay', 'appstore', 'windowsphone'))) {
$wheres[] = "`source` = '".$params['source']."'";
$filters['source'] = $params['source'];
}

if(isset($params['exportto']) && preg_match('/^[0-9,-]+$/', $params['exportto'])) {
$exportto = explode(',', $params['exportto']);
$w = array();
foreach($exportto as $idproj) {
if($idproj == '-')
$w[] = "`exported` = ''";
elseif(preg_match('/^[0-9]+$/', $idproj))
$w[] = "`exported` LIKE '%".$idproj.":%'";
}

if(count($w) > 0)
$wheres[] = '('.implode(' OR ', $w).')';

$filters['exportto'] = $params['exportto'];
}

if(isset($params['category']) && !empty($params['category'])) {
$category = explode(',', $params['category']);
$w = array();
foreach($category as $cat)
$w[] = "`category` = '".$cat."'";

if(count($w) > 0)
$wheres[] = '('.implode(' OR ', $w).')';

$filters['category'] = $params['category'];
}

if(count($wheres) > 0) $wheres = 'WHERE '.implode(' AND ', $wheres);
else $wheres = '';

$text = array();
$res = mysql_query("SELECT * FROM apps $wheres LIMIT $start, {$config['onpage']}");
//$text[] = "<tr><td colspan=10>SELECT * FROM apps $wheres LIMIT $start, {$config['onpage']}</td></tr>";
while($r = mysql_fetch_assoc($res)) {
if($r['source'] == 'googleplay') $source = 'G';
elseif($r['source'] == 'appstore') $source = 'A';
elseif($r['source'] == 'windowsphone') $source = 'W';

$screenshots = array();
if ($handle = opendir(dirname(__FILE__).'/screenshots')) {
while (false !== ($file = readdir($handle))) {
if(preg_match('/^'.$r['id'].'-([0-9]+).jpg$/', $file))
$screenshots[] = '<a target="_blank" href="screenshots/'.$file.'" title="Скриншот" rel="lightbox[app'.$r['id'].']">'.$file.'</a>';
}
}

if(file_exists('images/'.$r['id'].'.jpg'))
$r['image'] = 'images/'.$r['id'].'.jpg';

if(file_exists('banners/'.$r['id'].'.jpg'))
$r['banner'] = 'banners/'.$r['id'].'.jpg';

$r['exported'] = explode(',', $r['exported']);

$text[] = '<tr class="record">
<td><input type="checkbox" name="chk'.$r['id'].'" id="chk'.$r['id'].'" rel="chb" /></td>
<td>'.$r['id'].'</td>
<td>'.implode('<br />', $r['exported']).'</td>
<td>'.$source.' ('.$r['lang'].')</td>
<td>'.date('Y.m.d (H:i)', strtotime($r['update_ts'])).'</td>
<td><div class="baseico"><a href="'.$r['image'].'" rel="lightbox[app'.$r['id'].']" title="'.$lang['ch_icon'].'"><img src="'.$r['image'].'" /></a></div><br /><div class="basebanner"><a href="'.$r['banner'].'" rel="lightbox[app'.$r['id'].']" title="'.$lang['ch_banner'].'"><img width="35" src="'.$r['banner'].'" /></a></div></td>
<td>'.(!empty($r['link']) ? '<a href="'.$r['link'].'" target="_blank">'.$r['name'].'</a>' : '').'</td>
<td><a class="opisanie btn btn-primary btn-mini" rel="popover" data-placement="right" data-content="'.str_replace('"', "'", $r['description']).'" data-original-title="'.$lang['ch_description'].'">'.$lang['ch_description'].'</a><br /><a class="opisanie btn btn-primary btn-mini" rel="popover" data-placement="right" data-content="'.strip_tags($r['wnews']).'" data-original-title="'.$lang['ch_wnew'].'">Wts?</a></td>
<td>'.$r['developer'].'<br />'.$r['developer_email'].'<br />'.$r['developer_site'].'</td>
<td>'.$r['size'].'</td>
<td>'.$r['rating'].'</td>
<td>'.$r['ratingcount'].'</td>
<td>'.$r['age'].'</td>
<td>'.$r['date_update'].'</td>
<td>'.$r['version'].'<br />'.$r['os'].'<br />'.$r['requirements'].'</td>
<td>'.$r['category'].'</td>
<td>'.$r['setups'].'</td>
<td>'.$r['price'].'</td>
<td><a href="http://www.youtube.com/watch?v='.$r['video'].'" target="_blank">'.$r['video'].'</a></td>
<td>'.implode('<br />', $screenshots).'</td>
</tr>';
}

$res_total_count = mysql_fetch_assoc(mysql_query("SELECT COUNT(*) as count FROM apps $wheres"));


$mod = $res_total_count['count'] % $config['onpage'];
$count_pages = ($res_total_count['count'] - $mod) / $config['onpage'] + ($mod > 0 ? 1 : 0);

$pages = array();
for($i = 1; $i<=$count_pages; $i++) {
if($i == $params['page'])
$pages[] = '<li class="active"><a>'.$i.'</a></li>';
else {
$filters['page'] = $i;
$pages[] = '<li><a href="base.php?'.http_build_query($filters).'">'.$i.'</a></li>';
}
}
$pages = implode('', $pages);

return array('count' => mysql_num_rows($res), 'totalCount' => $res_total_count['count'], 'text' => implode('', $text), 'pages' => $pages);
}

# Получить категории
function getCategories($id = false) {
global $config, $cms_info;

$ch = curl_init();

$where = '';
if($id)
$where = ' WHERE id = '.$id;

$res = mysql_query("SELECT * FROM projects $where");


while($r = mysql_fetch_assoc($res)) {
$params = array('1', $r['cms_login'], $r['cms_pass']);
curl_setopt($ch, CURLOPT_URL, $r['xmlrpc']);

# построим запрос
$request = xmlrpc_encode_request($cms_info[$r['cms_type']]['mw.getCategories'], $params, array(
'escaping' => 'cdata',
'version' => 'xmlrpc',
"encoding" => "utf-8"
));

curl_setopt($ch, CURLOPT_POSTFIELDS, $request);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_TIMEOUT, 10);
$cat = xmlrpc_decode(curl_exec($ch));
$categories = array();
foreach($cat as $value)
$categories[] = $value['categoryName'];

mysql_query("UPDATE projects SET categories = '".implode('|', $categories)."' WHERE id = '".$r['id']."'");

}

curl_close($ch);
return $categories;
}

if(isset($_REQUEST['action']) && $_REQUEST['action'] == 'getCategories') {
$id = false;
if(isset($_REQUEST['id']) && preg_match('/[0-9]+/', $_REQUEST['id']))
$id = $_REQUEST['id'];

$categories = getCategories($id);
echo json_encode($categories);
die();
}

# выгрузка FTP
$ftp_conn = false;
function ftp_upload($data = array()) {
global $ftp_conn;

if(!is_resource($ftp_conn)) {
$ftp_conn = ftp_connect($data['ftp_server']);
$login_result = ftp_login($ftp_conn, $data['ftp_login'], $data['ftp_pass']);
}

# сначала перейдем в домашнюю папку картинок
$remote_root_dir = dirname(dirname($data['remote_file']));
ftp_chdir($ftp_conn, $remote_root_dir);

# проверим существование папки в которую надо будет выгрузить картинку и создадим ее
$remote_filename = basename($data['remote_file']);
$remote_dir = basename(dirname($data['remote_file']));
if(!ftp_chdir($ftp_conn, $remote_dir)) {
ftp_mkdir($ftp_conn, $remote_dir);
ftp_chdir($ftp_conn, $remote_dir);
}

# выгрузим картинку
if (ftp_put($ftp_conn, $data['remote_file'], $data['local_file'], FTP_BINARY))
$result = true;
else
$result = false;

ftp_chdir($ftp_conn, $remote_root_dir);


return $result;
}

# Выгрузка приложений
function export_to($params = array()) {
global $config, $ftp_conn, $cms_info;

$GLOBALS['xmlrpc_internalencoding'] = 'UTF-8';

# Соберем идентификаторы
$ids = array();
foreach($params as $key => $value) {
if(preg_match('/chk([0-9]+)/', $key, $match))
$ids[] = $match[1];
}
if(count($ids) == 0) {
echo 'Не выбраны приложения для выгрузки';
return false;
}

# Информация о проекте
$project = mysql_fetch_assoc(mysql_query("SELECT * FROM projects WHERE id = '".$params['projectid']."'"));

# Поля для выгрузки
if(!isset($params['fields'])) {
echo 'Не выбраны поля для выгрузки';
return false;
} else {
$fields = explode(',', $params['fields']);
$config['fields_export'] = $fields;
$config_text = var_export($config, true);
$config = <<<EOF
<?php
$config = {$config_text};
?>
EOF;

if(file_put_contents('config.php', $config))
include('config.php');
}

# текст результата
$res_text = array();

$res = mysql_query("SELECT * FROM apps WHERE id IN('".implode("','", $ids)."')");
while($r = mysql_fetch_assoc($res)) {

$ch = curl_init();

# Соберем скриншоты из папки
$screenshots = array();
if ($handle = opendir(dirname(__FILE__).'/screenshots')) {
while (false !== ($file = readdir($handle))) {
if(preg_match('/^'.$r['id'].'-([0-9]+).jpg$/', $file, $match))
$screenshots[$match[1]] = array('id' => $match[1], 'file' => $file);
}
ksort($screenshots);
}

# Была ли выгружена ранее эта запись
$exported = array_diff(explode(',', $r['exported']), array(''));
$projid = array(); // ID прокта
$projpostid = array(); // ID записи
foreach($exported as $export) {
$export = explode(':', $export);
$projid[] = $export[0];
$projpostid[] = $export[1];
}


switch($project['cms_type']) {
case 'wp':
$cflds = array();
if(in_array('image', $fields)) $cflds[] = array('key' => 'icon', 'value' => $project['img_icon'].$r['id'].'.jpg');
if(in_array('banner', $fields)) $cflds[] = array('key' => 'banner', 'value' => $project['img_banner'].$r['id'].'.jpg');
if(in_array('developer', $fields)) $cflds[] = array('key' => 'razrab', 'value' => $r['developer']);
if(in_array('developer', $fields)) $cflds[] = array('key' => 'developer_email', 'value' => $r['developer_email']);
if(in_array('developer', $fields)) $cflds[] = array('key' => 'developer_site', 'value' => $r['developer_site']);
if(in_array('size', $fields)) $cflds[] = array('key' => 'size', 'value' => $r['size']);
if(in_array('rating', $fields)) $cflds[] = array('key' => 'rating', 'value' => $r['rating']);
if(in_array('ratingcount', $fields)) $cflds[] = array('key' => 'votes', 'value' => $r['ratingcount']);
if(in_array('date_update', $fields)) $cflds[] = array('key' => 'update', 'value' => $r['date_update']);
if(in_array('version', $fields)) $cflds[] = array('key' => 'version', 'value' => $r['version']);
if(in_array('category', $fields)) $cflds[] = array('key' => 'category', 'value' => $r['category']);
if(in_array('setups', $fields)) $cflds[] = array('key' => 'installation', 'value' => $r['setups']);
if(in_array('link', $fields)) $cflds[] = array('key' => 'link', 'value' => $r['link']);
if(in_array('video', $fields)) $cflds[] = array('key' => 'youtube', 'value' => $r['video']);
if(in_array('price', $fields)) $cflds[] = array('key' => 'price', 'value' => $r['price']);
if(in_array('wnews', $fields)) $cflds[] = array('key' => 'whats_new', 'value' => $r['wnews']);
if(in_array('os', $fields)) $cflds[] = array('key' => 'os', 'value' => $r['os']);
if(in_array('gamecenter', $fields)) $cflds[] = array('key' => 'gamecenter', 'value' => $r['gamecenter']);
if(in_array('requirements', $fields)) $cflds[] = array('key' => 'requirements', 'value' => $r['requirements']);
if(in_array('age', $fields)) $cflds[] = array('key' => 'age', 'value' => $r['age']);

if(in_array('screenshots', $fields) && count($screenshots) > 0) {
$scr = array();
foreach($screenshots as $file)
$scr[] = '<img id="scr'.$file['id'].'" src="'.$project['img_screenshots'].$file['file'].'" alt="'.$r['name'].'" title="'.$r['name'].'" />';
$cflds[] = array('key' => 'screenshots', 'value' => implode('', $scr));
}

$content = array(
'post_type' => 'post',
'title' => $r['name'],
'mt_keywords' => !empty($params['tag_value']) ? $r[$params['tag_value']] : '',
'categories' => array($params['category']),
'custom_fields' => $cflds
);

if(in_array('description', $fields))
$content['description'] = $r['description'];

break;

case 'dle':
$xfields = array();
if(in_array('name', $fields) && !empty($r['name'])) $xfields[] = 'game_name|'.$r['name'];
if(in_array('image', $fields) && !empty($r['id'])) $xfields[] = 'icon|'.$project['img_icon'].$r['id'].'.jpg';
if(in_array('banner', $fields) && !empty($r['id'])) $xfields[] = 'banner|'.$project['img_banner'].$r['id'].'.jpg';
if(in_array('developer', $fields) && !empty($r['developer'])) $xfields[] = 'razrab|'.$r['developer'];
if(in_array('developer', $fields) && !empty($r['developer_email'])) $xfields[] = 'developer_email|'.$r['developer_email'];
if(in_array('developer', $fields) && !empty($r['developer_site'])) $xfields[] = 'developer_site|'.$r['developer_site'];
if(in_array('size', $fields) && !empty($r['size'])) $xfields[] = 'size|'.$r['size'];
if(in_array('rating', $fields) && !empty($r['rating'])) $xfields[] = 'rating|'.$r['rating'];
if(in_array('ratingcount', $fields) && !empty($r['ratingcount'])) $xfields[] = 'votes|'.$r['ratingcount'];
if(in_array('date_update', $fields) && !empty($r['date_update'])) $xfields[] = 'update|'.$r['date_update'];
if(in_array('version', $fields) && !empty($r['version'])) $xfields[] = 'version|'.$r['version'];
if(in_array('category', $fields) && !empty($r['category'])) $xfields[] = 'category|'.$r['category'];
if(in_array('setups', $fields) && !empty($r['setups'])) $xfields[] = 'installation|'.$r['setups'];
if(in_array('link', $fields) && !empty($r['link'])) $xfields[] = 'link|'.$r['link'];
if(in_array('video', $fields) && !empty($r['video'])) $xfields[] = 'youtube|'.$r['video'];
if(in_array('price', $fields) && !empty($r['price'])) $xfields[] = 'price|'.$r['price'];
if(in_array('wnews', $fields) && !empty($r['wnews'])) $xfields[] = 'whats_new|'.$r['wnews'];
if(in_array('os', $fields) && !empty($r['os'])) $xfields[] = 'os|'.$r['os'];
if(in_array('gamecenter', $fields) && !empty($r['gamecenter'])) $xfields[] = 'gamecenter|'.$r['gamecenter'];
if(in_array('requirements', $fields) && !empty($r['requirements'])) $xfields[] = 'requirements|'.$r['requirements'];
if(in_array('age', $fields) && !empty($r['age'])) $xfields[] = 'age|'.$r['age'];

if(in_array('screenshots', $fields) && count($screenshots) > 0) {
$scr = array();
foreach($screenshots as $file)
$scr[] = '<img id="scr'.$file['id'].'" src="'.$project['img_screenshots'].$file['file'].'" alt="'.$r['name'].'" title="'.$r['name'].'" />';
$xfields[] = 'screenshots|'.implode('', $scr);
}

$content = array(
'post_type' => 'post',
'title' => $r['name'],
'mt_keywords' => !empty($params['tag_value']) ? $r[$params['tag_value']] : '',
'categories' => array($params['category']),
'xfields' => implode('||', $xfields)
);

if(in_array('description', $fields))
$content['description'] = $r['description'];

break;

case 'drupal':
$content = array(
'type' => 'app',
'title' => $r['name'],
'mt_keywords' => !empty($params['tag_value']) ? $r[$params['tag_value']] : '',
'categories' => array($params['category']),
);

if(in_array('image', $fields) && !empty($r['id'])) $content['field_gimage'] = $project['img_icon'].$r['id'].'.jpg';
if(in_array('banner', $fields) && !empty($r['id'])) $content['field_gbanner'] = $project['img_banner'].$r['id'].'.jpg';
if(in_array('developer', $fields) && !empty($r['developer'])) $content['field_gdeveloper'] = $r['developer'];
if(in_array('size', $fields) && !empty($r['size'])) $content['field_gsize'] = $r['size'];
if(in_array('rating', $fields) && !empty($r['rating'])) $content['field_grating'] = $r['rating'];
if(in_array('ratingcount', $fields) && !empty($r['ratingcount'])) $content['field_gratingcount'] = $r['ratingcount'];
if(in_array('date_update', $fields) && !empty($r['date_update'])) $content['field_gdate_update'] = $r['date_update'];
if(in_array('version', $fields) && !empty($r['version'])) $content['field_gversion'] = $r['version'];
if(in_array('category', $fields) && !empty($r['category'])) $content['field_gcategory'] = $r['category'];
if(in_array('setups', $fields) && !empty($r['setups'])) $content['field_gsetups'] = $r['setups'];
if(in_array('link', $fields) && !empty($r['link'])) $content['field_glink'] = $r['link'];
if(in_array('video', $fields) && !empty($r['video'])) $content['field_gvideo'] = $r['video'];
if(in_array('price', $fields) && !empty($r['price'])) $content['field_gprice'] = $r['price'];
if(in_array('wnews', $fields) && !empty($r['wnews'])) $content['field_gwnews'] = $r['wnews'];
if(in_array('os', $fields) && !empty($r['os'])) $content['field_gos'] = $r['os'];
if(in_array('gamecenter', $fields) && !empty($r['gamecenter'])) $content['field_ggamecenter'] = $r['gamecenter'];
if(in_array('requirements', $fields) && !empty($r['requirements'])) $content['field_grequirements'] = $r['requirements'];
if(in_array('age', $fields) && !empty($r['age'])) $content['field_gage'] = $r['age'];

if(in_array('screenshots', $fields) && count($screenshots) > 0) {
$scr = array();
foreach($screenshots as $file)
$scr[] = '<img id="scr'.$file['id'].'" src="'.$project['img_screenshots'].$file['file'].'" alt="'.$r['name'].'" title="'.$r['name'].'" />';
$content['field_gscreenshots'] = implode('', $scr);
}

if(in_array('description', $fields))
$content['description'] = $r['description'];

$content['postid'] = 'app';

break;

case 'joomla':

$extra_fields = array();
if(!empty($r['name'])) $extra_fields['name'] = $r['name'];
if(!empty($r['id'])) $extra_fields['icon'] = $project['img_icon'].$r['id'].'.jpg';
if(!empty($r['id'])) $extra_fields['banner'] = $project['img_banner'].$r['id'].'.jpg';
if(!empty($r['developer'])) $extra_fields['developer'] = $r['developer'];
if(!empty($r['size'])) $extra_fields['size'] = $r['size'];
if(!empty($r['rating'])) $extra_fields['rating'] = $r['rating'];
if(!empty($r['ratigcount'])) $extra_fields['votes'] = $r['ratigcount'];
if(!empty($r['date_update'])) $extra_fields['date_update'] = $r['date_update'];
if(!empty($r['version'])) $extra_fields['version'] = $r['version'];
if(!empty($r['os'])) $extra_fields['os'] = $r['os'];
if(!empty($r['category'])) $extra_fields['category'] = $r['category'];
if(!empty($r['setups'])) $extra_fields['installation'] = $r['setups'];
if(!empty($r['link'])) $extra_fields['link'] = $r['link'];
if(!empty($r['video'])) $extra_fields['video'] = $r['video'];
if(!empty($r['price'])) $extra_fields['price'] = $r['price'];
if(!empty($r['wnews'])) $extra_fields['wnews'] = $r['wnews'];

$content = array(
'post_type' => 'post',
'title' => $r['name'],
'description' => $r['description'],
'mt_keywords' => !empty($params['tag_value']) ? $r[$params['tag_value']] : '',
'categories' => array($params['category']),
'extra_fields' => $extra_fields
);
$projid = array();
break;
}


$postid = false; # Новый пост

# найдем выгруженный ID
$poscms = array_search($params['projectid'], $projid);

if($poscms !== false)
$postid = $projpostid[$poscms];

curl_setopt($ch, CURLOPT_URL, $project['xmlrpc']);

curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_TIMEOUT, 10);

# Найдем пост в системе
/*if($postid > 0) {
$request_params = array($postid, $project['cms_login'], $project['cms_pass']); // Параметры для metaWeblog

$request = xmlrpc_encode_request('metaWeblog.getPost', $request_params, array(
'escaping' => 'cdata',
'version' => 'xmlrpc',
"encoding" => "utf-8"
));
curl_setopt($ch, CURLOPT_POSTFIELDS, $request);
$gettedPost = xmlrpc_decode_request(curl_exec($ch));

var_dump($gettedPost);
}*/

# построим запрос на создание/обновление
$request_params = array(isset($content['postid']) ? $content['postid'] : $postid, $project['cms_login'], $project['cms_pass'], $content, $params['status']); // Параметры для metaWeblog

if($postid === false ) { # Создать новый пост
$request = xmlrpc_encode_request($cms_info[$project['cms_type']]['mw.newPost'], $request_params, array(
'escaping' => 'cdata',
'version' => 'xmlrpc',
"encoding" => "utf-8"
));
} else { # редактировать существующий пост
$request = xmlrpc_encode_request($cms_info[$project['cms_type']]['mw.editPost'], $request_params, array(
'escaping' => 'cdata',
'version' => 'xmlrpc',
"encoding" => "utf-8"
));
}


curl_setopt($ch, CURLOPT_POSTFIELDS, $request);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_TIMEOUT, 10);
$response_id = $response_post = trim(curl_exec($ch)); # отправляем запрос
curl_close($ch);

//echo var_dump($response_post);

# Парсим ответ
if(preg_match('/<string>(.*?)</string>/', $response_post, $match_id))
$response_id = $match_id[1];
elseif(preg_match('/<boolean>(.*?)</boolean>/', $response_post, $match_id))
$response_id = $match_id[1];

# Создан новый пост
if($postid === false && $response_id > 0) {

$res_text[] = 'Ответ от сервера (пост создан): ID '.$response_id;

# запишем сведения о выгрузке
if($poscms === false) {
$exported[] = $params['projectid'].':'.$response_id;
mysql_query("UPDATE apps SET exported = '".implode(',', $exported)."' WHERE id = '".$r['id']."'");
}

} elseif($postid > 0)
$res_text[] = 'Ответ от сервера (пост ID '.$postid.' обновлен)';

if($response_id > 0) { // копируем картинки в любом случае, создание или обновление поста
# Копируем иконку
if(in_array('image', $fields) && file_exists(dirname(__FILE__).'/images/'.$r['id'].'.jpg')) {
if($project['ftp_server'] != '') {
$res_upload = ftp_upload(array(
'ftp_server' => $project['ftp_server'],
'ftp_login' => $project['ftp_login'],
'ftp_pass' => $project['ftp_pass'],
'local_file' => dirname(__FILE__).'/images/'.$r['id'].'.jpg',
'remote_file' => $project['ftp_folder'].'/images/'.$r['id'].'.jpg'
));
if($res_upload)
$res_text[] = 'Выгружена иконка на FTP сервер ('.$project['ftp_folder'].'/images/'.$r['id'].'.jpg'.')';
else
$res_text[] = '<font color="#F00">Ошибка выгрузки иконки на FTP сервер ('.$project['ftp_folder'].'/images/'.$r['id'].'.jpg'.')</font>';
} else {
if(!is_dir($project['ftp_folder'].'/images')) mkdir($project['ftp_folder'].'/images'); # Создаем папку, если ее нет

if(copy(dirname(__FILE__).'/images/'.$r['id'].'.jpg', $project['ftp_folder'].'/images/'.$r['id'].'.jpg'))
$res_text[] = 'Скопирована иконка в папку ('.$project['ftp_folder'].'/images/'.$r['id'].'.jpg'.')';
else
$res_text[] = '<font color="#F00">Ошибка копирования иконки в папку ('.$project['ftp_folder'].'/images/'.$r['id'].'.jpg'.')</font>';
}
}

# Копируем баннер
if(in_array('banner', $fields) && file_exists(dirname(__FILE__).'/banners/'.$r['id'].'.jpg')) {
if($project['ftp_server'] != '') {
$res_upload = ftp_upload(array(
'ftp_server' => $project['ftp_server'],
'ftp_login' => $project['ftp_login'],
'ftp_pass' => $project['ftp_pass'],
'local_file' => dirname(__FILE__).'/banners/'.$r['id'].'.jpg',
'remote_file' => $project['ftp_folder'].'/banners/'.$r['id'].'.jpg'
));

if($res_upload)
$res_text[] = 'Выгружен баннер на FTP сервер ('.$project['ftp_folder'].'/banners/'.$r['id'].'.jpg'.')';
else
$res_text[] = '<font color="#F00">Ошибка выгрузки баннера на FTP сервер ('.$project['ftp_folder'].'/banners/'.$r['id'].'.jpg'.')</font>';
} else {
if(!is_dir($project['ftp_folder'].'/banners')) mkdir($project['ftp_folder'].'/banners'); # Создаем папку, если ее нет

if(copy(dirname(__FILE__).'/banners/'.$r['id'].'.jpg', $project['ftp_folder'].'/banners/'.$r['id'].'.jpg'))
$res_text[] = 'Скопирован баннер в папку ('.$project['ftp_folder'].'/banners/'.$r['id'].'.jpg'.')';
else
$res_text[] = '<font color="#F00">Ошибка копирования баннера в папку ('.$project['ftp_folder'].'/banners/'.$r['id'].'.jpg'.')</font>';
}
}

# копируем скриншоты
if(in_array('screenshots', $fields)) {
foreach($screenshots as $file) {
if($project['ftp_server'] != '') {
$res_upload = ftp_upload(array(
'ftp_server' => $project['ftp_server'],
'ftp_login' => $project['ftp_login'],
'ftp_pass' => $project['ftp_pass'],
'local_file' => dirname(__FILE__).'/screenshots/'.$file['file'],
'remote_file' => $project['ftp_folder'].'/screenshots/'.$file['file']
));

if($res_upload)
$res_text[] = 'Выгружен скриншот на FTP сервер ('.$project['ftp_folder'].'/screenshots/'.$file['file'];
else
$res_text[] = '<font color="#F00">Ошибка выгрузки скриншота на FTP сервер ('.$project['ftp_folder'].'/screenshots/'.$file['file'].')</font>';
} else {
if(!is_dir($project['ftp_folder'].'/screenshots')) mkdir($project['ftp_folder'].'/screenshots'); # Создаем папку, если ее нет

if(copy(dirname(__FILE__).'/screenshots/'.$file['file'], $project['ftp_folder'].'/screenshots/'.$file['file']))
$res_text[] = 'Скопирован скриншот в папку ('.$project['ftp_folder'].'/screenshots/'.$file['file'].')';
else
$res_text[] = '<font color="#F00">Ошибка копирования скриншота в папку ('.$project['ftp_folder'].'/screenshots/'.$file['file'].')</font>';
}
}
}

if(is_resource($ftp_conn)) ftp_close($ftp_conn);
$ftp_conn = false;
}
}

$res_count = mysql_fetch_assoc(mysql_query("SELECT COUNT(*) as count FROM apps WHERE exported LIKE '%".$project['id'].":%'"));
mysql_query("UPDATE projects SET apps_count = '".$res_count['count']."' WHERE id = '".$project['id']."'");

return '<div class="container"><div class="alert alert-success"><button type="button" class="close" data-dismiss="alert">&times;</button>Выгружены приложения с ID: <b>'.implode(', ', $ids).'</b> в проект '.$project['name'].'<br />'.implode('<br />', $res_text).'</div></div>';
}

if(isset($_POST['btn_export']) && isset($_POST['projectid'])) {

echo export_to($_POST);

# Выгрузка комментариев
/*$res_comment = mysql_query("SELECT * FROM comments WHERE appid = '".$r['id']."'");
$comments = array();

//echo '"'.$response.'"';
if(mysql_num_rows($res_comment) > 0 && $response_id > 0) {

while($r = mysql_fetch_assoc($res_comment)) {

# выгрузка комментариев в WordPress
if(isset($_POST['btn_export_wp'])) {
$content = array(
'author' => $r['author'],
'content' => $r['comment'],
'author_email' => '[email protected]',
);



//$params = array('1', '', '', $response_id, $content);
$params = array('1', $config['wp_user'], $config['wp_pass'], $response_id, $content);

# построим запрос
$request = xmlrpc_encode_request('wp.newComment', $params, array(
'escaping' => 'cdata',
'version' => 'xmlrpc',
"encoding" => "utf-8"
));

$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $config['wp_xmlrpc']);
curl_setopt($ch, CURLOPT_POSTFIELDS, $request);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_TIMEOUT, 10);
$response_comment = curl_exec($ch);
curl_close($ch);
$res_text[] = 'Ответ от сервера (комментарий): '.$response_comment;

# выгрузка комментариев в DLE
} elseif(isset($_POST['btn_export_dle'])) {

}
}
}*/

}

if(!isset($config['fields_export']))
$config['fields_export'] = array();

$nowpage = 1;
if(isset($_GET['page']) && preg_match('/^[0-9]+$/', $_GET['page']) && $_GET['page'] > 0)
$nowpage = $_GET['page'];

?>
<html lang="en">
<head>
<title><?=$lang['title']?></title>
<meta charset="UTF-8" />

<link rel="stylesheet" href="css/bootstrap.css" />
<link rel="stylesheet" href="css/seo2z.css" />
<link rel="stylesheet" href="css/tablesorter/style.css" />
<link rel="stylesheet" href="css/lightbox.css" />
<link rel="stylesheet" href="css/introjs.css" />

<script type="text/javascript" src="//ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"></script>
<script type="text/javascript" src="js/bootstrap.js"></script>
<script type="text/javascript" src="js/seo2z.js"></script>
<script type="text/javascript" src="js/jquery.tablesorter.js"></script>
<script type="text/javascript" src="js/lightbox.js"></script>
<script type="text/javascript" src="js/intro.js"></script>
</head>
<body>
<script type="text/javascript">
var categories = {};
var fields_export = [<?=(count($config['fields_export']) ? "'".implode("', '", $config['fields_export'])."'" : '')?>];
var numpage = <?=$nowpage-1?>;
var checkedf = false;

/* Собрать идентификаторы выбранных приложений из таблицы */
function get_ids() {
var ids = [];

$('.record input[type=checkbox]').each(function(idx) {
var name = $('.record input[type=checkbox]').eq(idx).attr('name');
if($('.record input[type=checkbox]').eq(idx).is(':checked'))
ids.push(name.replace('chk', ''));
});
return ids;
}

/* Кнопка "Очистить базу" */
function clear_base() {

if(!confirm('<?=$lang['deleteAll']?>?'))
return false;

$('#clear\-loader').button('loading');
var request = $.ajax({
url: 'base.php',
type: "POST",
dataType: "html",
timeout: 300000, // таймаут 5 мин.
data: { clear:1 }
});

request.done(function(data, textStatus) {
if(data == 'OK') {
window.location.reload();
}
});
request.fail(function(jqXHR, textStatus) {
alert( "<?=$lang['error_query']?>: " + textStatus );
});

}

function selection(obj, lang) {

var source = $(obj).val();

if(source != '') {
$('.record-'+lang).hide();
$('.source-'+source).show();
} else
$('.record-'+lang).show();
}

// Получить категории
function getCategories(id, get_button) {
$('#getCatLoader').button('loading');
$('#category').html('<option></option>');

if(typeof get_button == 'undefined') {
if(typeof categories[id] != 'undefined') {
for(var i in categories[id]) {
$('#category').append('<option>'+categories[id][i]+'</option>');
}
$('#getCatLoader').button('reset');
return false;
}
}

var request = $.ajax({
url: 'base.php',
type: "POST",
dataType: "json",
timeout: 300000, // таймаут 5 мин.
data: { action: 'getCategories', id:id }
});

request.done(function(data, textStatus) {
categories[id] = [];
for(var i in data) {
$('#category').append('<option>'+data[i]+'</option>');
categories[id].push(data[i]);
}

$('#getCatLoader').button('reset');
});
request.fail(function(jqXHR, textStatus) {
alert( "<?=$lang['error_query']?>: " + textStatus );
});
}

/* Собрать поля для выгрузки */
function collect_fields() {
var fields = [];
$('.fields-export input').each(function(idx) {
var field = $('.fields-export input').eq(idx);
if(field.is(':checked'))
fields.push(field.attr('value'));
})
fields_export = fields;
}

/* Выгрузить в CMS */
function export_to(id) {
var data = {};

if($('#form_export').length == 0)
$('body').append('<form id="form_export"></form>');

var form = $('#form_export').html('');
var append = false;
$('.record input[type=checkbox]').each(function(idx) {
var name = $('.record input[type=checkbox]').eq(idx).attr('name');
var checked = $('.record input[type=checkbox]').eq(idx).is(':checked');
if(checked) {
form.append('<input type="hidden" name="'+name+'" value="on" />');
append = true;
}
});
form.append('<input type="hidden" name="fields" value="'+fields_export.join(',')+'" />'); // Выгружаемые поля
form.append('<input type="hidden" name="status" value="'+$('.post-status .active').attr('value')+'" />'); // Статус публикации
form.append('<input type="hidden" name="projectid" value="'+id+'" />'); // Проект для импорта
form.append('<input type="hidden" name="btn_export" value="1" />'); // Кнопка Выгрузить
form.append('<input type="hidden" name="category" value="'+$('#category').val()+'" />'); // Категория
form.append('<input type="hidden" name="tag_value" value="'+$('#tag_value').val()+'" />'); // Значение тега поста
form.attr('action', 'base.php').attr('method', 'post');

if(append)
form.submit();

}

/* Удалить выбранные приложения из базы */
function delete_selected_apps() {

var ids = get_ids();

if(ids.length == 0 ) return false;

if(!confirm('<?=$lang['deleteSelected']?>'))
return false;

var request = $.ajax({
url: 'base.php',
type: "POST",
dataType: "json",
timeout: 300000, // таймаут 5 мин.
data: { action: 'delete_apps', ids: ids }
});

request.done(function(data, textStatus) {
$('#messages').html('<div class="alert alert-success"><button type="button" class="close" data-dismiss="alert">&times;</button>Удалено приложений: '+data.count+'</div>');

if(data.count > 0) {
for(var i in data.ids)
$('#chk'+data.ids[i]).parents('tr').remove();
}
});

request.fail(function(jqXHR, textStatus) {
alert( "<?=$lang['error_query']?>: " + textStatus );
});
}

/* Перепарсить выбранные приложения */
function reparse() {
var ids = get_ids();
$('#btn-reparse').button('loading');

if(ids.length == 0) { $('#btn-reparse').button('reset'); return false; }

var request = $.ajax({
url: 'actions.php',
type: "POST",
dataType: "json",
timeout: 300000, // таймаут 5 мин.
data: { action:'reparse', ids:ids }
});

request.done(function(data, textStatus) {
$('#messages').html('<div class="alert alert-success"><button type="button" class="close" data-dismiss="alert">&times;</button><?=$lang['RefreshNextApps']?>:<br />'+data.join("<br />")+'</div>');
$('#btn-reparse').button('reset');
});
request.fail(function(jqXHR, textStatus) {
alert( "<?=$lang['error_query']?>: " + textStatus );
});


}

/* Сгенерировать базу в выбранном виде */
function generate(type) {
if($('#form_export').length == 0)
$('body').append('<form id="form_export"></form>');

var form = $('#form_export').html('');
$('.record input[type=checkbox]').each(function(idx) {
var name = $('.record input[type=checkbox]').eq(idx).attr('name');
var checked = $('.record input[type=checkbox]').eq(idx).is(':checked');
if(checked)
form.append('<input type="hidden" name="'+name+'" value="on" />');
});
form.attr('action', 'base.php?generate&type='+type).attr('method', 'post');
form.submit();
}

<?
$wheres = array();

$filters = array(
'lang' => '',
'source' => '',
'exportto' => '',
'category' => ''
);
if(isset($_GET['lang']) && in_array($_GET['lang'], array('ru', 'en')))
$filters['lang'] = $_GET['lang'];

if(isset($_GET['source']) && in_array($_GET['source'], array('googleplay', 'appstore', 'windowsphone')))
$filters['source'] = $_GET['source'];

if(isset($_GET['exportto']) && preg_match('/^[0-9,-]+$/', $_GET['exportto']))
$filters['exportto'] = $_GET['exportto'];

if(isset($_GET['category']))
$filters['category'] = $_GET['category'];

?>

var filters = {
lang:'<?=$filters['lang']?>',
source:'<?=$filters['source']?>',
exportto:'<?=$filters['exportto']?>',
category:'<?=$filters['category']?>'
};

var getting = false;
function getApps() {
if(getting)
return false;

getting = true;
var request = $.ajax({
url: 'base.php',
type: "POST",
dataType: "json",
timeout: 300000, // таймаут 5 мин.
data: { action:'get_apps', filters:filters, page: numpage+1 }
});

request.done(function(data, textStatus) {
$('#tableData').append(data.text);
$('.pagination').html('<ul>'+data.pages+'</ul>');
$('#apps_onpage').html(parseFloat($('#apps_onpage').html()) + data.count);
$('#apps_totalcount').html(data.totalCount);
$(".tablesorter").trigger("update");
numpage = numpage + 1;
getting = false;

$("a[rel=popover]").popover();
});
request.fail(function(jqXHR, textStatus) {
alert( "<?=$lang['error_query']?>: " + textStatus );
});
}

$(function() {
$(".tablesorter").tablesorter({ theme: 'blue' });
$('#btn\-group\-lang button[rel='+filters.lang+']').addClass('active');
$('#btn\-group\-source button[rel='+filters.source+']').addClass('active');

$('#exportto').val(filters.exportto.split(','));
$('#cat_genre').val(filters.category.split(','));

$('input[rel=chb]').on('change', function() {
$('#export_count').html( $('input[rel=chb]:checked').length );
});

/* Если есть выбранный проект, получим категории */
if(parseInt($('#project').val()) > 0)
getCategories($('#project').val());

$('#project').on('change', function() {
getCategories($(this).val());
});

/* Выставим поля для экспорта из конфига */
for(var i in fields_export)
$('.fields-export input[value='+fields_export[i]+']').attr('checked', true);

getApps(); // Подгрузим приложения
})

$(window).scroll(function() {
if (($(this).scrollTop()) > ($(document).height() - screen.height - 100))
getApps();

});


</script>

<div class="container">
<!--header go-->
<div class="navbar">
<div class="navbar-inner">
<div class="container">
<a class="btn btn-navbar" data-toggle="collapse" data-target=".nav-collapse">
<span class="icon-bar"></span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
</a>
<a class="brand" href="/gplay2z">Gplay2z</a>
<ul class="nav">
<li><a href="http://gplay2z.ru" target="_blank"><?=$lang['ofsite']?></a></li>
<li class="divider-vertical"></li>
<li><a href="#contact" role="button" data-toggle="modal"><?=$lang['connect_as']?></a></li>
<div id="contact" class="modal hide fade" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-hidden="true">×</button>
<h3 id="myModalLabel"><?=$lang['contacts']?></h3>
</div>
<div class="modal-body">
<p><?=$lang['Mail']?>: <span class="label label-info">[email protected]</span><br />
ICQ: <span class="label label-info">24444500</span>
</p>
</div>
</div>
</ul>
</div>
</div>
</div>
<div class="row">
<div class="span2">
<ul class="nav nav-list">
<li class="nav-header"><?=$lang['Menu']?></li>
<li><a href="/gplay2z"><i class="icon-globe"></i> <?=$lang['mnu_Parsers']?></a></li>
<li class="active"><a href="/gplay2z/base.php"><i class="icon-folder-open icon-white"></i> <?=$lang['mnu_BaseApp']?></a></li>
<li><a href="/gplay2z/projects.php"><i class="icon-briefcase"></i> <?=$lang['mnu_Projects']?></a></li>
<li><a href="/gplay2z/settings.php"><i class="icon-wrench"></i> <?=$lang['mnu_Settings']?></a></li>
<li><a href="http://gplay2z.ru/history" target="_blank"><i class="icon-time"></i> <?=$lang['mnu_Updates']?></a></li>
</ul>
<br /><a class="btn btn-primary" href="javascript:void(0);" onclick="javascript:introJs().start();"><i class="icon-question-sign icon-white"></i> <?=$lang['HelpThisPage']?></a>
</div>
<div class="span10">
<div class="border2z">
<div class="row-fluid">
<div class="container-fluid">
<div class="span6">
<div class="accordion-group" data-intro='<?=$lang['base_intro_step1']?>' data-step='1'>
<div class="accordion-heading">
<h2><a href="#filter" class="accordion-toggle" data-toggle="collapse"><?=$lang['1AppFilter']?></a></h2>
</div>
<div id="filter" class="accordion-body in collapse">
<div class="accordion-inner">
<dl class="dl-horizontal">
<dt><?=$lang['Language']?>:</dt>
<dd>
<div class="btn-group" id="btn-group-lang" data-toggle="buttons-radio" data-placement="right" rel="tooltip" title="<?=$lang['whatLanguage']?>" data-intro='<?=$lang['base_intro_step2']?>' data-step='2'>
<button type="button" class="btn" rel="" onclick="filters.lang=''"><?=$lang['noMatter']?></button>
<button type="button" class="btn" rel="ru" onclick="filters.lang='ru'"><?=$lang['Russian']?></button>
<button type="button" class="btn" rel="en" onclick="filters.lang='en'"><?=$lang['English']?></button>
</div>
</dd>
<dt><?=$lang['Source']?>:</dt>
<dd>
<div class="btn-group" id="btn-group-source" data-toggle="buttons-radio" data-placement="right" rel="tooltip" title="<?=$lang['tt_appshop']?>" data-intro='<?=$lang['base_intro_step3']?>' data-step='3'>
<button type="button" class="btn btn-mini" rel="" onclick="filters.source=''"><?=$lang['noMatter']?></button>
<button type="button" class="btn btn-mini" rel="googleplay" onclick="filters.source='googleplay'">Google Play</button>
<button type="button" class="btn btn-mini" rel="appstore" onclick="filters.source='appstore'">App Store</button>
<button type="button" class="btn btn-mini" rel="windowsphone" onclick="filters.source='windowsphone'">Windows Phone</button>
</div>
</dd>
<dt><?=$lang['Export']?>:</dt>
<dd>
<select multiple="multiple" id="exportto" data-intro='<?=$lang['base_intro_step4']?>' data-step='4'>
<option value=""><?=$lang['noMatter']?></option>
<option value="-"><?=$lang['withoutExport']?></option>
<?
$res_proj = mysql_query("SELECT * FROM projects");
while($r = mysql_fetch_assoc($res_proj)) {
?>
<option value="<?=$r['id']?>"><?=$r['name']?></option>
<?
}
?>
</select>
</dd>
<dt><?=$lang['Genres']?>:</dt>
<dd>
<select multiple="multiple" id="cat_genre">
<option value=""><?=$lang['noMatter']?></option>
<?
$res_cat = mysql_query("SELECT category FROM apps WHERE category <> '' GROUP BY category");
while($r = mysql_fetch_assoc($res_cat)) {
?>
<option value="<?=$r['category']?>"><?=$r['category']?></option>
<?
}
?>
</select>
</dd>
</dl>
<button class="btn btn-primary" onclick="filters.exportto = $('#exportto').val().toString(); filters.category = $('#cat_genre').val().toString(); window.location.href='<?=$_SERVER["PHP_SELF"]?>?'+$.param(filters)" id="btnGetApps" type="button" data-placement="right" rel="tooltip" title="<?=$lang['tt_selectByFilters']?>" data-intro='<?=$lang['base_intro_step5']?>' data-step='5'><i class="icon-filter icon-white"></i> <?=$lang['Apply']?></button>
</div>
</div>
</div>
</div>
<div class="span6">
<div class="accordion-group" data-intro='<?=$lang['base_intro_step7']?>' data-step='7'>
<div class="accordion-heading">
<h2><a href="#import" class="accordion-toggle" data-toggle="collapse"><?=$lang['exportToCMS']?> <span class="label" id="export_count">0</span></a></h2>
</div>
<div id="import" class="accordion-body in collapse">
<div class="accordion-inner">
<dl class="dl-horizontal">
<dt><?=$lang['Project']?></dt>
<dd>
<select id="project" data-intro='<?=$lang['base_intro_step8']?>' data-step='8'>
<?
$res_proj = mysql_query("SELECT * FROM projects");
while($r = mysql_fetch_assoc($res_proj)) {
?><option value="<?=$r['id']?>"><?=$r['name']?></option><?
}
?>
</select>
<button class="btn" type="button" href="#add" data-toggle="modal" data-intro='<?=$lang['base_intro_step9']?>' data-step='9'><i class="icon-plus"></i> <?=$lang['Create']?></button>
<div id="add" class="modal hide fade" tabindex="-1" role="dialog" aria-labelledby="myModalLabelc" aria-hidden="true">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-hidden="true">×</button>
<h3 id="myModalLabelc"><?=$lang['CreateProject']?></h3>
</div>
<form action="projects.php?reto=base.php" method="post">
<div class="modal-body">

<fieldset>
<dl class="dl-horizontal">
<dt><?=$lang['prj_title']?></dt>
<dd><input type="text" name="name" placeholder="<?=$lang['ph_title']?>" value="" requied=""></dd>
<dt>CMS</dt>
<dd>
<select name="cms_type">
<option value="wp">Wordpress</option>
<option value="dle">DLE</option>
<!--<option value="drupal">Drupal</option>
<option value="joomla">Joomla</option>-->
</select>
</dd>
<dt><?=$lang['prj_address']?></dt>
<dd><input type="text" name="xmlrpc" placeholder="http://www.site.ru/xmlrpc.php" value="" requied=""></dd>
<dt><?=$lang['prj_login']?></dt>
<dd><input type="text" name="cms_login" value="" placeholder="admin" requied=""></dd>
<dt><?=$lang['prj_pass']?></dt>
<dd><input type="password" name="cms_pass" value="" placeholder="<?=$lang['ph_pass']?>" requied=""></dd>
<dt><?=$lang['prj_ftp_server']?></dt>
<dd><input type="text" name="ftp_server" value="" rel="tooltip" title="<?=$lang['prj_ftp_server']?>" placeholder="<?=$lang['prj_ftp_server']?>"></dd>
<dt><?=$lang['prj_ftp_login']?></dt>
<dd><input type="text" name="ftp_login" value="" rel="tooltip" title="<?=$lang['prj_ftp_login']?>" placeholder="<?=$lang['prj_ftp_login']?>"></dd>
<dt><?=$lang['prj_ftp_pass']?></dt>
<dd><input type="password" name="ftp_pass" value="" rel="tooltip" title="<?=$lang['prj_ftp_pass']?>" placeholder="<?=$lang['ph_pass']?>"></dd>
<dt><?=$lang['prj_ftp_folder']?></dt>
<dd><input type="text" name="ftp_folder" value="" rel="tooltip" title="<?=$lang['tt_ftp_folder_images']?>" placeholder="<?=$lang['ph_yoursite_example']?>"></dd>
<dt><?=$lang['prj_way_icon']?></dt>
<dd><input type="text" name="img_icon" value="" rel="tooltip" title="<?=$lang['tt_way_image']?>" placeholder="<?=$lang['ph_media_images']?>"></dd>
<dt><?=$lang['prj_way_banner']?></dt>
<dd><input type="text" name="img_banner" value="" rel="tooltip" title="<?=$lang['tt_way_banner']?>" placeholder="<?=$lang['ph_media_banners']?>"></dd>
<dt><?=$lang['prj_way_screenshot']?></dt>
<dd><input type="text" name="img_screenshots" value="" rel="tooltip" title="<?=$lang['tt_way_screenshot']?>" placeholder="<?=$lang['ph_media_screenshots']?>"></dd>
</dl>
</fieldset>

</div>
<div class="modal-footer">
<button class="btn" data-dismiss="modal" aria-hidden="true"><?=$lang['Cancel']?></button>
<button class="btn btn-primary" type="submit" name="btn_add_project"><i class="icon-ok icon-white"></i> <?=$lang['CreateProject']?></button>
</div>
</form>
</div>
</dd>
<dt><?=$lang['Category']?></dt>
<dd>
<select id="category" data-intro='<?=$lang['base_intro_step10']?>' data-step='10'></select>
<button type="button" class="btn" id="getCatLoader" data-placement="left" rel="tooltip" onclick="getCategories($('#project').val(), true)" data-loading-text="<?=$lang['dl_GettingCategory']?>" title="<?=$lang['tt_get_category']?>"><i class="icon-list"></i> <?=$lang['Get']?></button>
</dd>
<dt><?=$lang['Tag_']?></dt>
<dd>
<select id="tag_value" data-intro='<?=$lang['base_intro_step11']?>' data-step='11'>
<option value=""></option>
<option value="name"><?=$lang['tag_title']?></option>
<option value="developer"><?=$lang['tag_developer']?></option>
<option value="category"><?=$lang['tag_genre']?></option>
</select>
</dd>
</dl>
<a href="#fields" role="button" class="btn" data-toggle="modal" rel="tooltip" title="<?=$lang['tt_export_fields']?>" data-intro='<?=$lang['base_intro_step12']?>' data-step='12'><i class="icon-ok-circle"></i> <?=$lang['Data']?></a>
<div id="fields" class="modal hide fade" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-hidden="true">&times;</button>
<h3><?=$lang['tt_export_fields']?></h3>
</div>
<div class="modal-body">
<p><?=$lang['description_fields_to_export']?></p>
<p><div class="well fields-export">
<legend><?=$lang['what_data_to_export']?></legend>
<label class="checkbox">
<input type="checkbox" value="image"> <?=$lang['ch_icon']?>
</label>
<label class="checkbox">
<input type="checkbox" value="description"> <?=$lang['ch_description']?>
</label>
<label class="checkbox">
<input type="checkbox" value="developer"> <?=$lang['ch_developer']?>
</label>
<label class="checkbox">
<input type="checkbox" value="rating"> <?=$lang['ch_rating']?>
</label>
<label class="checkbox">
<input type="checkbox" value="ratingcount"> <?=$lang['ch_ratingcount']?>
</label>
<label class="checkbox">
<input type="checkbox" value="date_update"> <?=$lang['ch_dateupdate']?>
</label>
<label class="checkbox">
<input type="checkbox" value="version"> <?=$lang['ch_version']?>
</label>
<label class="checkbox">
<input type="checkbox" value="os"> <?=$lang['ch_os']?>
</label>
<label class="checkbox">
<input type="checkbox" value="age"> <?=$lang['ch_age']?>
</label>
<label class="checkbox">
<input type="checkbox" value="category"> <?=$lang['ch_genre']?>
</label>
<label class="checkbox">
<input type="checkbox" value="setups"> <?=$lang['ch_installs']?>
</label>
<label class="checkbox">
<input type="checkbox" value="link"> <?=$lang['ch_link']?>
</label>
<label class="checkbox">
<input type="checkbox" value="gamecenter"> <?=$lang['ch_gamecenter']?>
</label>
<label class="checkbox">
<input type="checkbox" value="video"> <?=$lang['ch_video']?>
</label>
<label class="checkbox">
<input type="checkbox" value="requirements"> <?=$lang['ch_requirements']?>
</label>
<label class="checkbox">
<input type="checkbox" value="wnews"> <?=$lang['ch_wnew']?>
</label>
<label class="checkbox">
<input type="checkbox" value="price"> <?=$lang['ch_price']?>
</label>
<label class="checkbox">
<input type="checkbox" value="size"> <?=$lang['ch_size']?>
</label>
<label class="checkbox">
<input type="checkbox" value="banner"> <?=$lang['ch_banner']?>
</label>
<label class="checkbox">
<input type="checkbox" value="screenshots"> <?=$lang['ch_screenshots']?>
</label>
<hr>
<a onclick="$('.fields-export input:checkbox').prop('checked', !checkedf); checkedf = !checkedf" style="cursor: pointer"><?=$lang['checkAll']?></a>
</div></p>
</div>
<div class="modal-footer">
<a data-dismiss="modal" class="btn" aria-hidden="true"><?=$lang['Close']?></a>
<a onclick="collect_fields()" data-dismiss="modal" aria-hidden="true" class="btn btn-primary"><i class="icon-ok icon-white"></i> <?=$lang['Apply']?></a>
</div>
</div>
<div class="btn-group post-status" data-toggle="buttons-radio" data-intro='<?=$lang['base_intro_step13']?>' data-step='13'>
<button type="button" class="btn active" rel="tooltip" value="0" title="<?=$lang['status_0']?>"><i class="icon-pause"></i></button>
<button type="button" class="btn" rel="tooltip" value="1" title="<?=$lang['status_1']?>"><i class="icon-play"></i></button>
</div>
<button type="button" class="btn btn-primary" onclick="export_to($('#project').val())" data-placement="right" rel="tooltip" title="<?=$lang['tt_unload_selected_apps']?>" data-loading-text="<?=$lang['dl_unload']?>" data-intro='<?=$lang['base_intro_step14']?>' data-step='14'><i class="icon-share-alt icon-white"></i> <?=$lang['Unload']?></button>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
<?
$res_total_count = mysql_fetch_assoc(mysql_query("SELECT COUNT(*) as count FROM apps"));
$pages = array();
$mod = $res_total_count['count'] % $config['onpage'];
$count_pages = ($res_total_count['count'] - $mod) / $config['onpage'] + ($mod > 0 ? 1 : 0);
?>
<div class="container">
<div class="row-fluid">
<div class="border2z">
<h1><?=$lang['ApplicationBase']?> <span class="label"><span id="apps_onpage">0</span> <?=$lang['of']?> <span id="apps_totalcount"><?=$res_total_count['count']?></span></span></h1>
<div class="form-inline">
<button type="button" class="btn btn-primary" id="btn-reparse" rel="tooltip" title="<?=$lang['tt_refresh_sel_app']?>" onclick="reparse()" data-loading-text="<?=$lang['dl_update']?>" data-intro='<?=$lang['base_intro_step15']?>' data-step='15'><i class="icon-refresh icon-white"></i> <?=$lang['Refresh']?></button>
<span data-intro='<?=$lang['base_intro_step16']?>' data-step='16'><a class="btn" onclick="generate('csv')" rel="tooltip" title="<?=$lang['save_to_csv']?>"><i class="icon-download-alt"></i> csv</a>
<a class="btn" onclick="generate('json')" rel="tooltip" title="<?=$lang['save_to_json']?>"><i class="icon-download-alt"></i> json</a>
<a class="btn" onclick="generate('xml')" rel="tooltip" title="<?=$lang['save_to_xml']?>"><i class="icon-download-alt"></i> xml</a>
</span>
<span data-intro='<?=$lang['base_intro_step17']?>' data-step='17'><button type="button" class="btn btn-danger" rel="tooltip" title="<?=$lang['tt_del_sel_app']?>" onclick="delete_selected_apps()"><i class="icon-remove icon-white"></i> <?=$lang['Delete']?></button>
<button onclick="clear_base()" type="button" data-placement="right" class="btn btn-danger" data-placement="top" rel="tooltip" title="<?=$lang['deleteAll']?>" data-loading-text="<?=$lang['Cleaning']?>" id="clear-loader"><i class="icon-trash icon-white"></i> <?=$lang['CleanBase']?></button>
</span>
<div class="alert" style="display:none" id="clear-ru"> <button type="button" class="close" data-dismiss="alert">&times;</button> <strong><?=$lang['Done']?></strong> <?=$lang['base_app_cleaned']?></div>
</div>
<div id="messages"></div>
<div class="pagination"><ul></ul></div>
<table class="table table-striped table-hover tablesorter">
<thead>
<tr>
<th class="sorter-false"><input type="checkbox" onchange="$('input[rel=chb]').prop('checked', $(this).is(':checked')); $('#export_count').html( $('input[rel=chb]:checked').length ); "></th>
<th>ID</th>
<th><?=$lang['tbl_import']?></th>
<th><?=$lang['tbl_source']?></th>
<th><?=$lang['tbl_updated']?></th>
<th class="sorter-false"><?=$lang['tbl_icon']?><br /><?=$lang['tbl_banner']?></th>
<th><?=$lang['tbl_name']?></th>
<th class="sorter-false"><?=$lang['ch_description']?><br /><?=$lang['ch_wnew']?></th>
<th><?=$lang['ch_developer']?></th>
<th><?=$lang['ch_size']?></th>
<th><?=$lang['ch_rating']?></th>
<th><?=$lang['ch_ratingcount']?></th>
<th><?=$lang['ch_age']?></th>
<th><?=$lang['ch_dateupdate']?></th>
<th class="sorter-false"><?=$lang['ch_version']?><br /><?=$lang['ch_os']?><br /><?=$lang['ch_requirements']?></th>
<th><?=$lang['ch_genre']?></th>
<th><?=$lang['ch_installs']?></th>
<th><?=$lang['ch_price']?></th>
<th class="sorter-false"><?=$lang['ch_video']?></th>
<th class="sorter-false"><?=$lang['ch_screenshots']?></th>
</tr>
<tr data-intro='<?=$lang['base_intro_step6']?>' data-step='6'></tr>
</thead>
<tbody id="tableData"></tbody>
</table>
</div>
</div>
</div>
</body>
</html>
     
 
what is notes.io
 

Notes.io is a web-based application for taking notes. You can take your notes and share with others people. If you like taking long notes, notes.io is designed for you. To date, over 8,000,000,000 notes created and continuing...

With notes.io;

  • * You can take a note from anywhere and any device with internet connection.
  • * You can share the notes in social platforms (YouTube, Facebook, Twitter, instagram etc.).
  • * You can quickly share your contents without website, blog and e-mail.
  • * You don't need to create any Account to share a note. As you wish you can use quick, easy and best shortened notes with sms, websites, e-mail, or messaging services (WhatsApp, iMessage, Telegram, Signal).
  • * Notes.io has fabulous infrastructure design for a short link and allows you to share the note as an easy and understandable link.

Fast: Notes.io is built for speed and performance. You can take a notes quickly and browse your archive.

Easy: Notes.io doesn’t require installation. Just write and share note!

Short: Notes.io’s url just 8 character. You’ll get shorten link of your note when you want to share. (Ex: notes.io/q )

Free: Notes.io works for 12 years and has been free since the day it was started.


You immediately create your first note and start sharing with the ones you wish. If you want to contact us, you can use the following communication channels;


Email: [email protected]

Twitter: http://twitter.com/notesio

Instagram: http://instagram.com/notes.io

Facebook: http://facebook.com/notesio



Regards;
Notes.io Team

     
 
Shortened Note Link
 
 
Looding Image
 
     
 
Long File
 
 

For written notes was greater than 18KB Unable to shorten.

To be smaller than 18KB, please organize your notes, or sign in.