/home/altere25/usaigc.com/wp-content/plugins/wpdatatables/source
NameSizeModeActions
lang/-0755rm
class.chartjs.wpdatachart.php417320644editdlrm
class.date.wpdatacolumn.php17680644editdlrm
class.datetime.wpdatacolumn.php18570644editdlrm
class.email.wpdatacolumn.php11960644editdlrm
class.feedback.php5670644editdlrm
class.float.wpdatacolumn.php17770644editdlrm
class.google.wpdatachart.php227600644editdlrm
class.image.wpdatacolumn.php11640644editdlrm
class.int.wpdatacolumn.php16740644editdlrm
class.link.wpdatacolumn.php75430644editdlrm
class.sql.php76900644editdlrm
class.string.wpdatacolumn.php8860644editdlrm
class.time.wpdatacolumn.php16390644editdlrm
class.tpl.php20160644editdlrm
class.wdtbrowsechartstable.php221040644editdlrm
class.wdtbrowsetable.php197980644editdlrm
class.wdtconfigcontroller.php604010644editdlrm
class.wdtexception.php3880644editdlrm
class.wdtnestedjson.php88590644editdlrm
class.wdtsettingscontroller.php54310644editdlrm
class.wdttools.php607360644editdlrm
class.wpdatachart.php415160644editdlrm
class.wpdatacolumn.php174330644editdlrm
class.wpdatatable.php1108050644editdlrm
class.wpdatatablecache.php117520644editdlrm
class.wpdatatablerows.php185710644editdlrm
class.wpdatatablestemplates.php4871360644editdlrm
class.wpexcelcolumn.php93590644editdlrm
Edit: /home/altere25/usaigc.com/wp-content/plugins/wpdatatables/source/class.wdtnestedjson.php (8859B)
url)) $this->setUrl($params->url); if (isset($params->method)) $this->setMethod($params->method); if (isset($params->authOption)) $this->setAuthOption($params->authOption); if (isset($params->username)) $this->setUsername($params->username); if (isset($params->password)) $this->setPassword($params->password); if (isset($params->customHeaders)) $this->setCustomHeaders($params->customHeaders); if (isset($params->root)) $this->setRoot($params->root); } /** * @return mixed */ public function getUrl() { return $this->_url; } /** * @param mixed $url */ public function setUrl($url) { $this->_url = $url; } /** * @return string */ public function getMethod() { return $this->_method; } /** * @param string $method */ public function setMethod($method) { $this->_method = $method; } /** * @return string */ public function getAuthOption() { return $this->_authOption; } /** * @param string $authOption */ public function setAuthOption($authOption) { $this->_authOption = $authOption; } /** * @return string */ public function getUsername() { return $this->_username; } /** * @param string $username */ public function setUsername($username) { $this->_username = $username; } /** * @return string */ public function getPassword() { return $this->_password; } /** * @param string $password */ public function setPassword($password) { $this->_password = $password; } /** * @return array */ public function getCustomHeaders() { return $this->_customHeaders; } /** * @param mixed $customHeaders */ public function setCustomHeaders($customHeaders) { $this->_customHeaders = $customHeaders; } /** * @return string */ public function getRoot() { return $this->_root; } /** * @param string $root */ public function setRoot($root) { $this->_root = $root; } /** * Prepare Endpoint arguments * @return array */ public function prepareEndPointArgs($tableID) { $endPointArgs = array( 'method' => strtoupper($this->getMethod()), 'sslverify' => false, 'timeout' => 100 ); if ($this->getUsername() !== '' && $this->getPassword() !== '') { $endPointArgs['headers'] = array('Authorization' => 'Basic ' . base64_encode($this->getUsername() . ':' . $this->getPassword())); } if ($this->getCustomHeaders() !== []) { $customHeaders = $this->getCustomHeaders(); if (!empty($customHeaders)) { foreach ($customHeaders as $customHeader) { $headerKey = $customHeader->setKeyName; $headerValue = $customHeader->setKeyValue; $endPointArgs['headers'][$headerKey] = $headerValue; } } } return apply_filters('wpdatatables_filter_nested_json_endpoint_args', $endPointArgs, $this->getAllArgs(), $tableID); } /** * Get all JSON arguments */ public function getAllArgs() { $args = new stdClass(); $args->url = $this->getUrl(); $args->method = $this->getMethod(); $args->authOption = $this->getAuthOption(); $args->username = $this->getUsername(); $args->password = $this->getPassword(); $args->customHeaders = $this->getCustomHeaders(); $args->root = $this->getRoot(); return $args; } /** * Get data from JSON * * @throws Exception */ public function getData($tableID) { $response = $this->getResponse($tableID); if ($response === '' || $response === null) { throw new Exception('Response is empty. Please check is valid URL.'); } if (!is_array($response)) { throw new Exception($response); } return $this->getRowsByRootPath($response, $tableID); } /** * Get response from JSON API */ public function getResponse($tableID) { $endPointArgs = $this->prepareEndPointArgs($tableID); $response = wp_remote_request($this->getUrl(), $endPointArgs);; if (is_wp_error($response) || !in_array(intval($response['response']['code']), array(200, 201), true)) { return wp_remote_retrieve_response_message($response); } $response_body = wp_remote_retrieve_body($response); return json_decode($response_body, true); } /** * Get data by filtering array with root path */ private function getDataByRootPath($response, $root) { $filteredDataByChosenRoot = $response; foreach ($root as $tag) { if (array_key_exists($tag, $filteredDataByChosenRoot)) { $filteredDataByChosenRoot = $filteredDataByChosenRoot[$tag]; } else { $temp = array(); for ($depth = 0; $depth < count($filteredDataByChosenRoot); $depth++) { if (!isset($filteredDataByChosenRoot[$depth][$tag])) { continue; } $temp[] = $filteredDataByChosenRoot[$depth][$tag]; } $filteredDataByChosenRoot = $temp; } } if (empty($filteredDataByChosenRoot)) { $filteredDataByChosenRoot = $response; } return $filteredDataByChosenRoot; } /** * Get rows by filtering array with root path * @throws Exception */ private function getRowsByRootPath($response, $tableID) { $root = explode('->', $this->getRoot()); if (count($root) > 1) { array_shift($root); } $filteredDataByChosenRoot = $this->getDataByRootPath($response, $root); $data = $this->getFinalArray($filteredDataByChosenRoot, $tableID); $rows = $this->prepareFinalArrayWithSameStructure($data); return apply_filters('wpdatatables_filter_nested_json_rows_by_root_path', $rows, $this->getRoot(), $response); } /** * Get final array data from response */ private function getFinalArray($filteredDataByChosenRoot, $tableID) { $oneLevelDeepArrayValues = apply_filters('wpdatatables_get_one_level_deep_json_data_from_array_as_string', false, $this->getUrl(), $tableID); $arrayValuesSeparator = apply_filters('wpdatatables_set_one_level_deep_json_data_separator', '
', $this->getUrl(), $tableID); $isArrayContainsOnlyArrays = array_filter($filteredDataByChosenRoot, 'is_array') === $filteredDataByChosenRoot; $data = []; if (!$isArrayContainsOnlyArrays) { $tempData = array(); foreach ($filteredDataByChosenRoot as $filteredDataKey => $value) { if (is_array($value)) { if ($oneLevelDeepArrayValues) { foreach ($value as $keyVal => $val) { if (is_array($val)) { unset($value[$keyVal]); } else { if (!is_numeric($keyVal)) { $value[$keyVal] = $keyVal . ' = ' . $val; } } } $value = implode($arrayValuesSeparator, $value); } else { continue; } } $tempData[$filteredDataKey] = $value; } if(!empty($tempData)) $data[] = $tempData; } else { foreach ($filteredDataByChosenRoot as $filteredData) { $tempData = array(); foreach ($filteredData as $key => $value) { if (is_array($value)) { if ($oneLevelDeepArrayValues) { foreach ($value as $keyVal => $val) { if (is_array($val)) { unset($value[$keyVal]); } else { if (!is_numeric($keyVal)) { $value[$keyVal] = $keyVal . ' = ' . $val; } } } $value = implode($arrayValuesSeparator, $value); } else { continue; } } $tempData[$key] = $value; } if(!empty($tempData)) $data[] = $tempData; } } return apply_filters('wpdatatables_filter_nested_json_final_array', $data, $filteredDataByChosenRoot, $tableID); } /** * Prepare final array with same structure * @throws Exception */ private function prepareFinalArrayWithSameStructure($data) { $keys = array(); $rows = array(); foreach ($data as $el) { if (empty($el)) return $rows; if (empty($keys)) { $keys = array_keys($el); continue; } $keys = array_intersect($keys, array_keys($el)); } foreach ($data as $el) { $row = array(); foreach ($el as $key => $value) { if (in_array($key, $keys, true)) { $row[$key] = $value; } } $rows[] = $row; } if (empty($rows[0]) || isset($rows[0][0])) throw new Exception('Unable to retrieve data for chosen root path.'); return $rows; } /** * Get root elements from JSON URL */ public function prepareRoots($parent, $now, $root, $array) { if (is_null($array)) { return null; } $root[] = $parent; foreach ($array as $key => $value) { if (is_array($value) && !empty($value)) { if (!is_numeric($key)) { $now = sprintf('%s%s%s', $parent, '->', $key); $root[] = $now; } else { $now = $parent; } $root = $this->prepareRoots($now, $key, $root, $value); } } return array_unique($root); } }