public function actionExport() { $this->requirePostRequest(); $result = new ArtVandelay_ExportedDataModel(array('assets' => $this->_exportAssets(), 'categories' => $this->_exportCategories(), 'fields' => $this->_exportFields(), 'globals' => $this->_exportGlobals(), 'sections' => $this->_exportSections(), 'tags' => $this->_exportTags())); $json = $result->toJson(); if (craft()->request->getParam('download')) { HeaderHelper::setDownload('export.json', strlen($json)); } JsonHelper::sendJsonHeaders(); echo $json; craft()->end(); }
/** * Re-runs a failed task. * * @return null */ public function actionRerunTask() { $this->requireAjaxRequest(); $this->requirePostRequest(); craft()->userSession->requirePermission('accessCp'); $taskId = craft()->request->getRequiredPost('taskId'); $task = craft()->tasks->rerunTaskById($taskId); if (!craft()->tasks->isTaskRunning()) { JsonHelper::sendJsonHeaders(); craft()->request->close(JsonHelper::encode($task->getInfo())); craft()->tasks->runPendingTasks(); } else { $this->returnJson($task->getInfo()); } craft()->end(); }
/** * Formats a PHP error into JSON before returning it to the client. * * @param integer $code error code * @param string $message error message * @param string $file error file * @param string $line error line */ public function returnAjaxError($code, $message, $file, $line) { if ($this->config->get('devMode')) { $outputTrace = ''; $trace = debug_backtrace(); // skip the first 3 stacks as they do not tell the error position if (count($trace) > 3) { $trace = array_slice($trace, 3); } foreach ($trace as $i => $t) { if (!isset($t['file'])) { $t['file'] = 'unknown'; } if (!isset($t['line'])) { $t['line'] = 0; } if (!isset($t['function'])) { $t['function'] = 'unknown'; } $outputTrace .= "#{$i} {$t['file']}({$t['line']}): "; if (isset($t['object']) && is_object($t['object'])) { $outputTrace .= get_class($t['object']) . '->'; } $outputTrace .= "{$t['function']}()\n"; } $errorArr = array('error' => $code . ' : ' . $message, 'trace' => $outputTrace, 'file' => $file, 'line' => $line); } else { $errorArr = array('error' => $message); } JsonHelper::sendJsonHeaders(); echo JsonHelper::encode($errorArr); $this->end(); }
/** * Outputs JSON encoded data to standard output stream, useful during AJAX requests * * @param array $variables */ public function returnJson($variables = array()) { JsonHelper::sendJsonHeaders(); // Output it into a buffer, in case TasksService wants to close the connection prematurely ob_start(); echo JsonHelper::encode($variables); craft()->end(); }
public function actionExport() { $this->requirePostRequest(); $fields = craft()->request->getParam('selectedFields'); $fieldsObj = craft()->fieldManager_export->export($fields); // Support PHP <5.4, JSON_PRETTY_PRINT = 128, JSON_NUMERIC_CHECK = 32 $json = json_encode($fieldsObj, 128 | 32); HeaderHelper::setDownload('export.json', strlen($json)); JsonHelper::sendJsonHeaders(); echo $json; craft()->end(); }
/** * Respond with JSON * * @param array $var The array to JSON-encode and return */ public function returnJson($var) { JsonHelper::sendJsonHeaders(); echo JsonHelper::encode($var); craft()->end(); }