예제 #1
0
 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;
 }
예제 #2
0
 public function getColumns()
 {
     $cols = 1;
     $this->output->set_content_type('application/json')->set_output(json_encode(array('columns' => AssessHelper::addCompetitorColumns(AssessHelper::columns(), $cols))));
 }