static function process($request) { if (isset($request['q'])) { $query = $request['q']; } else { $query = ''; } $escapedQuery = $query; echo "\n\t\t<form method='POST' action='index.php' onsubmit='return validateForm(this);'>\n\t\t\t<table cellpadding='0' cellspacing='1'>\n\t\t\t\t<tr valign=top>\n\t\t\t\t\t<td>Try a query like: select firstname, lastname from Leads order by firstname desc limit 0,2; or <a href='index.php?action=queryExamples'>have a look at our tests and examples.</a><br/><textarea name='q' rows='5' cols='80'>{$escapedQuery}</textarea></td>\n\t\t\t\t</tr>\n\t\t\t\t<tr>\n\t\t\t\t\t<td><input type='submit' value='Execute »' name='__submitButton' class='btn btn-primary btn-large'></td>\n\t\t\t\t</tr>\n\t\t\t</table>\n\t\t</form>"; if (!empty($query)) { $loginModel = Session_Controller::getLoginContext(); $client = new Vtiger_WSClient($loginModel->getURL()); $login = $client->doLogin($loginModel->getUsername(), $loginModel->getAccessKey()); if ($login) { $result = $client->doQuery($query); if (is_array($result)) { if (count($result) == 0) { echo "<div class='alert alert-info'><strong>No results found!</strong></div>"; } else { echo "<table cellpadding='3' cellspacing='0' class='table table-striped small'>"; $columns = $client->getResultColumns($result); echo "<tr>"; foreach ($columns as $column) { echo sprintf("<th nowrap='nowrap'>%s</th>", $column); } echo "</tr>"; foreach ($result as $row) { echo "<tr>"; foreach ($row as $k => $v) { if ($v === '') { $v = ' '; } echo sprintf("<td nowrap='nowrap'>%s</td>", $v); } echo "</tr>"; } echo "</table>"; } } else { $lastError = $client->lastError(); echo "<div class='alert alert-danger'><strong>ERROR:</strong> " . $lastError['message'] . "</div>"; } } else { echo "<div class='alert alert-danger'><strong>ERROR:</strong> Login failure!</div>"; } } }
static function process($request) { $loginModel = Session_Controller::getLoginContext(); $client = new Vtiger_WSClient($loginModel->getURL()); $login = $client->doLogin($loginModel->getUsername(), $loginModel->getAccessKey()); if ($login) { $modules = $client->doListTypes(); asort($modules); if ($modules) { $modOptions = ''; foreach ($modules as $module) { $modOptions .= "<option value='" . $module['name'] . "'>" . $module['name'] . "</option>"; } foreach ($modules as $module) { echo "<div class='row' id='" . $module['name'] . "' style='vertical-align:bottom;'><span class='span5 pull-left'><h3>" . $module['name'] . "</h3></span>"; echo "<span class='span1 pull-right' style='margin-left:10px;margin-right:60px;margin-top: 30px;'>"; echo "<a href='#top'><img src='assets/go_top.png'></a>"; echo "</span>"; echo "<span class='span4 pull-right' style='margin-top: 30px;'>"; echo "<select onchange=\"\$('.modqaselect').val(this.value);document.location='#'+this.value\" class='small modqaselect'>" . $modOptions . "</select>"; echo "</span>"; echo "</div>"; echo "<table class='table table-striped small table-condensed'>"; echo "<tr><th>REST ID</th><th>Can Create</th><th>Can Update</th><th>Can Delete</th><th>Can Retrieve</th></tr>"; echo "<tr>"; $desc = $client->doDescribe($module['name']); if (is_array($desc)) { echo sprintf("<td nowrap='nowrap'>%s</td>", $desc['idPrefix'] . 'x'); echo sprintf("<td nowrap='nowrap'>%s </td>", $desc['createable']); echo sprintf("<td nowrap='nowrap'>%s </td>", $desc['updateable']); echo sprintf("<td nowrap='nowrap'>%s </td>", $desc['deleteable']); echo sprintf("<td nowrap='nowrap'>%s </td>", $desc['retrieveable']); echo "</tr></table>"; echo "<table class='table table-striped small table-condensed'>"; echo "<tr><th>Field</th><th>Information</th><th>Block</th><th>Type</th><th width='30%'>Reference/Values</th></tr>"; foreach ($desc['fields'] as $field) { $fieldname = $field['label']; echo "<tr><td nowrap='nowrap'><b>" . $fieldname . '</b><br>' . $field['name'] . '</td>'; echo "<td>"; $fielddesc = "Mandatory: "; $fielddesc .= ($field['mandatory'] ? 'yes' : 'no') . "<br>Null: " . ($field['nullable'] ? 'yes' : 'no'); $fielddesc .= "<br>Editable: " . ($field['editable'] ? 'yes' : 'no'); if (isset($field['sequence'])) { $fielddesc .= "<br>Sequence: " . $field['sequence']; } echo $fielddesc . "</td><td>"; if (isset($field['block'])) { $blockddesc = "ID: " . $field['block']['blockid'] . '<br>'; $blockddesc .= 'Sequence: ' . $field['block']['blocksequence'] . '<br>'; $blockddesc .= 'Label: ' . $field['block']['blocklabel'] . '<br>'; $blockddesc .= 'Name: ' . $field['block']['blockname']; echo $blockddesc; } echo "</td><td>"; $fielddesc = "Type: " . $field['type']['name']; if (isset($field['typeofdata'])) { $fielddesc .= " (" . $field['typeofdata'] . ')'; } if (isset($field['uitype'])) { $fielddesc .= "<br>UIType: " . $field['uitype']; } if (isset($field['type']['format'])) { $fielddesc .= "<br>Format: " . $field['type']['format']; } if (isset($field['default'])) { $fielddesc .= "<br>Default: " . $field['default']; } echo $fielddesc . '</td><td>'; $addinfo = ''; if (isset($field['type']['refersTo'])) { foreach ($field['type']['refersTo'] as $capts) { $addinfo .= "{$capts}, "; } } if (isset($field['type']['picklistValues'])) { foreach ($field['type']['picklistValues'] as $plvs => $plvn) { $addinfo .= $plvn['value'] . ", "; } } echo $addinfo . '</td>'; echo "</tr>"; } } echo "</table>"; } } else { $lastError = $client->lastError(); echo "<div class='alert alert-danger'>ERROR: " . $lastError['message'] . "</div>"; } } else { echo "<div class='alert alert-danger'>ERROR: Login failure!</div>"; } }