private function buildPreloadedTable($preLoadedResult, $build_assess_params, $columns, $chronicle_id = 0, $url = false) { if ($url) { $url = array('url' => array_pop($preLoadedResult['rows'])->row_data); echo json_encode($url); die; } $total = 0; if (isset($preLoadedResult['rows']) && isset($preLoadedResult['total'])) { $total = $preLoadedResult['total']; $preLoadedResult = $preLoadedResult['rows']; } $raw_columns = $columns; $columns = AssessHelper::addCompetitorColumns($columns, 1); $display_length = $build_assess_params->display_length; $output = array("sEcho" => 0, "iTotalRecords" => 0, "iTotalDisplayRecords" => 0, "iDisplayLength" => $display_length, "aaData" => array()); $result_table_rows_count = count($preLoadedResult); $i = 0; foreach ($preLoadedResult as $imported_data_id_key => $row) { $data = json_decode($row->row_data, true); $parsed_attributes = unserialize($data['parsed_attributes']); $arrPrice = array(); preg_match('/((\\$)?[\\d\\,]+[\\.\\d]*([\\s]*RUR)?)/i', $data['price_diff'], $arrPrice); if (!isset($data['currency']) || empty($data['currency'])) { $data['currency'] = '$'; } if ($data['currency'] == '$ - $') { $data['currency'] = '$'; } if ($data['currency'] == '$' || $data['currency'] == '£') { $data['price_diff'] = $arrPrice[0] != '0' ? $data['currency'] . ' ' . number_format(preg_replace('#[^0-9\\.]+#', '', $arrPrice[0]), 2, '.', ',') : ''; } else { $data['price_diff'] = $arrPrice[0] != '0' ? $data['currency'] . ' ' . number_format(round(preg_replace('#[^0-9\\.]+#', '', $arrPrice[0])), 0, '.', ',') : ''; } $data['price_diff'] = preg_replace('/\\s/', '', $data['price_diff']); if ($build_assess_params->display_competitor_columns) { $price_diff1 = number_format(preg_replace('#[^0-9\\.]+#', '', isset($data['competitors_prices'][0]) ? $data['competitors_prices'][0] : ''), 2, '.', ''); $data['price_diff1'] = $price_diff1 ? $data['currency'] . ' ' . $price_diff1 : ''; } if ($data['own_price'] == 0) { if ($data['currency'] == '$' || $data['currency'] == '£') { $data['own_price'] = $data['currency'] . ' ' . number_format(preg_replace('#[^0-9\\.]+#', '', $arrPrice[0]), 2, '.', ','); } else { $data['own_price'] = $data['currency'] . ' ' . number_format(round(preg_replace('#[^0-9\\.]+#', '', $arrPrice[0])), 0, '.', ','); } } $data['content_health_score_normalized'] = isset($data['content_health_score_normalized']) ? $data['content_health_score_normalized'] : $data['content_health_score_raw']; $category = $row->category_name; $data['brand'] = $row->brand; $data['product_name_length'] = isset($data['product_name']) ? mb_strlen(trim(strip_tags($data['product_name']))) : 0; $data['product_name_length1'] = isset($data['product_name1']) ? mb_strlen(trim(strip_tags($data['product_name1']))) : 0; $output['data'][$i] = $data; if ($parsed_attributes['attr_data']['image_urls']) { $output['data'][$i]['image_url'] = $parsed_attributes['attr_data']['image_urls'][0]; } else { $output['data'][$i]['image_url'] = ""; } if (isset($data['short_description'])) { $data['Short_Description'] = $data['short_description']; } if (isset($data['long_description'])) { $data['Long_Description'] = $data['long_description']; } if ($i < 1) { $theFirstRow = $data; } if ($category) { $data['prodcat'] = $category; } $tableData = AssessHelper::setTableData($columns, $data, $chronicle_id); $output['aaData'][$i] = $tableData['successes']; $i++; } if ($build_assess_params->all_columns) { $s_columns = explode(',', $build_assess_params->all_columns); $s_column_index_cmp = $build_assess_params->sort_columns; $s_column_index = intval($build_assess_params->sort_columns); $s_column = $s_columns[$s_column_index]; $this->sort_column = $s_column; $sort_direction = strtolower($build_assess_params->sort_dir); if ($s_column == 'price_diff') { if ($sort_direction == 'asc') { $this->sort_direction = 'desc'; } else { $this->sort_direction = 'asc'; } } else { $this->sort_direction = $sort_direction; } $this->sort_type = is_numeric($theFirstRow->{$s_column}) ? "num" : ""; } $output['sEcho'] = $this->input->post('sEcho'); $output['iTotalRecords'] = $total; $output['iTotalDisplayRecords'] = $total; // $output['aoColumns'] = array(); $output['display_competitor_columns'] = $build_assess_params->display_competitor_columns; // $output['getSelectableColumns'] = AssessHelper::getSelectableColumns($raw_columns); return $output; }
public function getColumns() { $cols = 1; $this->output->set_content_type('application/json')->set_output(json_encode(array('columns' => AssessHelper::addCompetitorColumns(AssessHelper::columns(), $cols)))); }