-
Notifications
You must be signed in to change notification settings - Fork 0
/
mapping.php
executable file
·127 lines (119 loc) · 6.22 KB
/
mapping.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
<?php
/**
* Chronolabs Cooperative Entitisms Repository Services REST API
*
* You may not change or alter any portion of this comment or credits
* of supporting developers from this source code or any supporting source code
* which is considered copyrighted (c) material of the original comment or credit authors.
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
*
* @copyright Chronolabs Cooperative http://syd.au.snails.email
* @license ACADEMIC APL 2 (https://sourceforge.net/u/chronolabscoop/wiki/Academic%20Public%20License%2C%20version%202.0/)
* @license GNU GPL 3 (http://www.gnu.org/licenses/gpl.html)
* @package entities-api
* @since 2.2.1
* @author Dr. Simon Antony Roberts <simon@snails.email>
* @version 2.2.8
* @description A REST API for the storage and management of entities + persons + beingness collaterated!
* @link http://internetfounder.wordpress.com
* @link https://github.com/Chronolabs-Cooperative/Emails-API-PHP
* @link https://sourceforge.net/p/chronolabs-cooperative
* @link https://facebook.com/ChronolabsCoop
* @link https://twitter.com/ChronolabsCoop
*/
global $version, $output, $name, $clause, $callback, $mode, $state;
require_once __DIR__ . DIRECTORY_SEPARATOR . 'header.php';
$help=false;
if (isset($_GET['output']) || !empty($_GET['output']) ) {
$version = isset($_GET['version'])?(string)$_GET['version']:'v2';
$output = isset($_GET['output'])?(string)$_GET['output']:'';
$name = isset($_GET['name'])?(string)$_GET['name']:'';
$clause = isset($_GET['clause'])?(string)$_GET['clause']:'';
$callback = isset($_REQUEST['callback'])?(string)$_REQUEST['callback']:'';
$mode = isset($_GET['mode'])?(string)$_GET['mode']:'';
$state = isset($_GET['state'])?(string)$_GET['state']:'';
switch($output)
{
default:
case "html":
if (in_array($mode, array('mapping')) && !in_array($_SERVER["REQUEST_METHOD"], array('POST', 'post')))
$help=true;
break;
}
} else {
header("Location: " . API_URL);
exit(0);
}
if ($help==false) {
switch($_POST['op'])
{
case "mapping":
$category = false;
$sql = sprintf("SELECT * FROM `" . $GLOBALS['APIDB']->prefix('imports') . "` WHERE md5(concat(`maps-id`, `import-id`)) LIKE '%s'",$clause);
if (!$results = $GLOBALS['APIDB']->queryF($sql))
die('SQL Failed: ' . $sql);
if (!$import = $GLOBALS['APIDB']->fetchArray($results))
die('Recordset Failed: ' . $sql);
$sql = "SELECT * FROM `" . $GLOBALS['APIDB']->prefix('imports_maps') . "` WHERE `maps-id` LIKE '".$import['maps-id']."'";
if (!$results = $GLOBALS['APIDB']->queryF($sql))
die('SQL Failed: ' . $sql);
if (!$maps = $GLOBALS['APIDB']->fetchArray($results))
die('Recordset Failed: ' . $sql);
$columns = array();
$sql = "SELECT * FROM `" . $GLOBALS['APIDB']->prefix('imports_columns') . "` WHERE `maps-id` LIKE '".$import['maps-id']."' ORDER BY `position` ASC";
if (!$results = $GLOBALS['APIDB']->queryF($sql))
die('SQL Failed: ' . $sql);
while ($column = $GLOBALS['APIDB']->fetchArray($results))
{
$sql = "UPDATE `" . $GLOBALS['APIDB']->prefix('imports_columns') . "` SET `field` = '" . $_POST['field'][$column['column-id']] . "', `type` = '" . $_POST['type'][$column['column-id']] . "' WHERE `column-id` = '" . $column['column-id'] . "'";
if (!$GLOBALS['APIDB']->queryF($sql))
die('SQL Failed: ' . $sql);
if ($_POST['field'][$column['column-id']] == "Category")
$category = true;
$sql = "SELECT * FROM `" . $GLOBALS['APIDB']->prefix('peers') . "` WHERE `peer-id` NOT LIKE '%s' AND `polinating` = 'Yes'";
if ($GLOBALS['APIDB']->getRowsNum($results = $GLOBALS['APIDB']->queryF(sprintf($sql, mysql_escape_string($GLOBALS['peerid']))))>=1)
{
while($other = $GLOBALS['APIDB']->fetchArray($results))
{
@getURIData(sprintf($other['callback'], 'mapping-columns-update'), 145, 145, array('peer-id'=>$GLOBALS['peerid'], 'field'=> $_POST['field'][$column['column-id']], 'type' => $_POST['type'][$column['column-id']], 'column-id' => $column['column-id']));
}
}
}
if ($category==false)
{
$sql = "SELECT * FROM `" . $GLOBALS['APIDB']->prefix('peers') . "` WHERE `peer-id` NOT LIKE '%s' AND `polinating` = 'Yes'";
if ($GLOBALS['APIDB']->getRowsNum($results = $GLOBALS['APIDB']->queryF(sprintf($sql, mysql_escape_string($GLOBALS['peerid']))))>=1)
{
while($other = $GLOBALS['APIDB']->fetchArray($results))
{
@getURIData(sprintf($other['callback'], 'mapping-maps-update'), 145, 145, array('peer-id'=>$GLOBALS['peerid'], 'title'=> mysql_escape_string($_POST['title']), 'state' => 'Defined', 'maps-id' => $maps['maps-id']));
}
}
$sql = "UPDATE `" . $GLOBALS['APIDB']->prefix('imports_maps') . "` SET `title` = '" . mysql_escape_string($_POST['title']) . "', `state` = 'Defined' WHERE `maps-id` = '" . $maps['maps-id'] . "'";
if (!$GLOBALS['APIDB']->queryF($sql))
die('SQL Failed: ' . $sql);
} else {
$sql = "SELECT * FROM `" . $GLOBALS['APIDB']->prefix('peers') . "` WHERE `peer-id` NOT LIKE '%s' AND `polinating` = 'Yes'";
if ($GLOBALS['APIDB']->getRowsNum($results = $GLOBALS['APIDB']->queryF(sprintf($sql, mysql_escape_string($GLOBALS['peerid']))))>=1)
{
while($other = $GLOBALS['APIDB']->fetchArray($results))
{
@getURIData(sprintf($other['callback'], 'mapping-maps-update'), 145, 145, array('peer-id'=>$GLOBALS['peerid'], 'title'=> mysql_escape_string($_POST['title']), 'state' => 'Waiting', 'maps-id' => $maps['maps-id']));
}
}
$sql = "UPDATE `" . $GLOBALS['APIDB']->prefix('imports_maps') . "` SET `title` = '" . mysql_escape_string($_POST['title']) . "', `state` = 'Waiting' WHERE `maps-id` = '" . $maps['maps-id'] . "'";
if (!$GLOBALS['APIDB']->queryF($sql))
die('SQL Failed: ' . $sql);
header("Location: " . API_URL . '/v2/categories/'.$clause."/html.api");
exit;
}
break;
}
}
if (function_exists('http_response_code'))
http_response_code(400);
include dirname(__FILE__).'/mapper.php';
exit;
?>