/** * Returns an array of parameters based on a template */ public static function astXMLFullParametersToArray($template) { // gather all parameters from PARAMETER db $allParametersArray = array(); $parameters = astParameterModel::all(); foreach ($parameters as $parameter) { array_push($allParametersArray, $parameter); } // create array of parameters in XML file $phoneParametersArray = array(); foreach ($allParametersArray as $parameter) { $needle = '_' . $parameter->NAME . '_'; if (!(strpos($template, $needle) === FALSE)) { array_push($phoneParametersArray, $parameter); } } return $phoneParametersArray; }
/** * Download CSV. */ public function downloadCSV() { $headers = ['Cache-Control' => 'must-revalidate, post-check=0, pre-check=0', 'Content-type' => 'text/csv', 'Content-Disposition' => 'attachment; filename=exportedPhoneList.csv', 'Expires' => '0', 'Pragma' => 'public']; $list = []; $topRow = ['template', 'output', '']; $fullParametersArray = astParameterModel::all(); $parameters = []; foreach ($fullParametersArray as $parameter) { if ($parameter->NAME != 'ignorePhoneType' && $parameter->NAME != 'ignoreLocation') { $modifiedParameter = '_' . $parameter->NAME . '_'; array_push($parameters, $modifiedParameter); array_push($topRow, $modifiedParameter); } else { $modifiedParameter = '_' . $parameter->NAME; array_push($parameters, $modifiedParameter); array_push($topRow, $modifiedParameter); } } array_push($list, $topRow); $macAddresses = Input::get('MAC'); if (count($macAddresses) > 0) { foreach ($macAddresses as $macAddress) { $phone = astPhoneModel::where('MAC', '=', $macAddress)->get(); $phone = $phone[0]; $newRow = [$phone->phoneTemplate->TEMPLATE_NAME, $phone->phoneModel->PSN . '-' . $phone->MAC, '']; foreach ($parameters as $parameter) { $parameterID = astParameterModel::where('NAME', '=', ltrim($parameter, '_'))->orWhere('NAME', '=', rtrim(ltrim($parameter, '_'), '_'))->get(); if (count($parameterID) > 0) { $parameterID = $parameterID[0]->PARAMETER_ID; $parameterValue = astPhoneParameterValueModel::where('PHONE_ID', '=', $phone->PHONE_ID)->where('PARAMETER_ID', '=', $parameterID)->get(); if (count($parameterValue) > 0) { $parameterValue = $parameterValue[0]->VALUE; if (strpos($parameterValue, ';') != false) { $parameterValue = '"' . $parameterValue . '"'; } array_push($newRow, $parameterValue); } else { array_push($newRow, ''); } } else { array_push($newRow, ''); } } array_push($list, $newRow); } $callback = function () use($list) { $FH = fopen('php://output', 'w'); foreach ($list as $row) { fputcsv($FH, $row, ','); } fclose($FH); }; return Response::stream($callback, 200, $headers); } else { return Redirect::route('exportCSV'); } }