Beispiel #1
0
 /**
  * @param View $view
  */
 protected function _renderJsonp(View $view)
 {
     $content = $this->getResponse()->setContentType('application/json')->setJsonContent($view->getParamsToView())->getContent();
     $content = $this->request->get('callback') . '(' . $content . ')';
     $this->response->setContent($content)->send();
     $view->setRenderLevel(View::LEVEL_NO_RENDER);
 }
Beispiel #2
0
 /**
  * Renders the uncaught exception for browser consumption.
  * 
  * @param  Phalcon\Http\Response  $response
  * @param  \Exception $exception
  * @return void
  */
 protected function renderBrowser(Response $response, Exception $exception)
 {
     if ($this->config->debug) {
         $response->setContent($exception->getMessage() . ': ' . $exception->getTraceAsString());
     } else {
         $response->setContent('Sorry, an error has occured.');
     }
 }
Beispiel #3
0
 /**
  * 发送响应消息
  *
  * @param   string  $message    响应信息
  * @param   int     $status     响应状态码
  */
 public static function send($message = '', $status = 200)
 {
     if (self::$response === null) {
         self::init();
     }
     self::$response->setStatusCode(intval($status));
     self::$response->setContent(strval($message));
     self::$response->send();
 }
Beispiel #4
0
 public function reset()
 {
     static::$disableSession = false;
     static::$disableCsrfCheck = false;
     $this->cookies->reset();
     $this->response->setContent('')->resetHeaders()->setStatusCode(200);
 }
Beispiel #5
0
 public function rawAction()
 {
     $plain_response = new Response();
     $plain_response->setHeader("Content-Type", "text/plain");
     $plain_response->setContent($this->paste->content);
     return $plain_response;
 }
 /**
  * Get CSRF token for Ajax request.
  * @return a HTTP response object with JSON
  */
 public function getCsrfTokenAction()
 {
     $result = array('csrfTokenKey' => $this->security->getTokenKey(), 'csrfToken' => $this->security->getToken());
     $response = new Response();
     $response->setContent(json_encode($result));
     return $response;
 }
Beispiel #7
0
 /**
  * Exchange a request token for an access token.
  * The exchange is only succesful iff the request token has been authorized.
  *
  * Never returns, calls exit() when token is exchanged or when error is returned.
  */
 public function accessToken()
 {
     try {
         $this->verifyRequest(self::TOKEN_TYPE_REQUEST);
         $options = array();
         $ttl = $this->request->get('xoauth_token_ttl');
         if ($ttl) {
             $options['token_ttl'] = $ttl;
         }
         $verifier = $this->request->get('oauth_verifier');
         if ($verifier) {
             $options['verifier'] = $verifier;
         }
         $store = $this->store;
         $token = $store->exchangeConsumerRequestForAccessToken($this->request->getParam('oauth_token', true), $options);
         /** @var /Foundation/Oauth/Secrets $token */
         $content = array("oauth_token" => $token->token, "oauth_token_secret" => $token->token_secret);
         if ($token->ttl) {
             $content['xoauth_token_ttl'] = $token->ttl;
         }
         $this->response->setContent(http_build_query($content));
         $this->response->setStatusCode(200, "");
         $this->response->setContentType("application/x-www-form-urlencoded");
     } catch (OauthException $e) {
         $this->response->setStatusCode(401, "OAuth Verification Failed: " . $e->getMessage());
     }
     return $this->response;
 }
 /**
  * Default action.
  */
 public function indexAction()
 {
     $this->view->disable();
     $data = ['Hello', 'World'];
     $content = json_encode($data);
     $response = new Response();
     $response->setContent($content);
     return $response;
 }
 /**
  * Send response to client
  */
 public function respond($data, $status = 200)
 {
     $response = new Response();
     $response->setContentType('application/json');
     $response->setStatusCode($status);
     $data = $data instanceof SimpleResultSet ? $data->toArray() : $data;
     $response->setContent(json_encode($data));
     $response->send();
 }
 public function debugEnvAction()
 {
     //var_dump($_SERVER['REDIRECT_URL']);die();
     $actual_route = $_SERVER['REDIRECT_URL'];
     $response = new Response();
     $response->setStatusCode(404, "Not Found");
     $response->setContent("Sorry, the route: <b>" . $actual_route . " </b> doesn't exist");
     $response->send();
     return $response;
 }
Beispiel #11
0
 /**
  * 向Client发送响应的资源
  */
 public function send()
 {
     if (is_array($this->resource) || is_object($this->resource)) {
         $this->response->setHeader('Content-Type', 'text/json');
         $this->response->setContent(json_encode($this->resource, true));
     } else {
         $this->response->setContent($this->resource);
     }
     $this->response->send();
 }
Beispiel #12
0
 /**
  * @return Response
  */
 public function previewAction()
 {
     $response = new Response();
     if ($this->request->isPost()) {
         if ($this->session->get('identity')) {
             $content = $this->request->getPost('content');
             $response->setContent($this->markdown->render($this->escaper->escapeHtml($content)));
         }
     }
     return $response;
 }
 public function response($data = array(), $status = 200, $token = null)
 {
     $response = new Response();
     $response->setStatusCode($status);
     $response->setContent(!empty($this->_statuses[$status]) ? $this->_statuses[$status] : null);
     $response->setHeader('Content-type', 'application/json');
     $response->setHeader('api-version', '1.0');
     $response->setHeader('singou-token', $token);
     $response->setJsonContent($data);
     return $response;
 }
Beispiel #14
0
 /**
  * Выполняет все плагины по цепочке
  * 
  * @param \Phalcon\Http\Request $request
  * @return string
  */
 public function process(Request $request)
 {
     $response = new Response();
     $pluginResult = new PluginResult();
     foreach ($this->_arPlugins as $plugin) {
         $pluginResult = $plugin->process($request, $pluginResult);
         if ($pluginResult->terminate) {
             break;
         }
     }
     if ($pluginResult->error) {
         $response->setStatusCode($pluginResult->errorCode, $pluginResult->errorMessage);
         $response->setContent($pluginResult->errorMessage);
         return $response;
     } else {
         $response->setStatusCode(200, "OK");
     }
     $callback = $request->getQuery('callback');
     $result = '';
     if ($callback) {
         $response->setHeader('Content-Type', 'application/javascript');
         $result .= $callback . '(';
     } else {
         $response->setHeader('Content-Type', 'application/json');
     }
     $result .= json_encode(array('searchContext' => $pluginResult->searchContext, 'result' => $pluginResult->result));
     if ($callback) {
         $result .= ');';
     }
     if ($pluginResult->fileToSend) {
         $response->setFileToSend($pluginResult->fileToSend, 'data.txt');
     } else {
         $response->setContent($result);
     }
     return $response;
 }
Beispiel #15
0
    /**
     * Generate the website robots.txt
     */
    public function indexAction()
    {
        $response = new Response();
        $expireDate = new \DateTime();
        $expireDate->modify('+1 month');
        $response->setExpires($expireDate);
        $response->setHeader('Content-Type', "text/plain; charset=UTF-8");
        $baseUrl = rtrim($this->config->site->url, '/');
        $content = <<<EOL
User-agent: *
Allow: /
Sitemap: {$baseUrl}/sitemap
EOL;
        $response->setContent($content);
        return $response;
    }
Beispiel #16
0
 /**
  * Handles the RSS action. Constructs the rss feed of the latest posts. The
  * number of posts to return is stored in the configuration section
  *
  * @return Response
  */
 public function rssAction()
 {
     $feed = new RSS2();
     $feed->setEncoding('UTF-8');
     $feed->setTitle($this->config->rss->title);
     $feed->setDescription($this->config->rss->description);
     $feed->setLink($this->getFullUrl());
     $posts = $this->finder->getLatest(1);
     foreach ($posts as $post) {
         $feedItem = new Item();
         $feedItem->setTitle($post->getTitle());
         $feedItem->setLink($this->getFullUrl('/post/' . $post->getSlug()));
         $feedItem->setDescription($post->getContent());
         $feedItem->setDate($post->getDate());
         $feed->addItem($feedItem);
     }
     $response = new Response();
     $response->setHeader('Content-Type', 'application/xml');
     $response->setContent($feed->generateFeed());
     return $response;
 }
Beispiel #17
0
 /**
  * Generate the website sitemap
  */
 public function indexAction()
 {
     $response = new Response();
     $expireDate = new \DateTime();
     $expireDate->modify('+1 day');
     $response->setExpires($expireDate);
     $response->setHeader('Content-Type', "application/xml; charset=UTF-8");
     $sitemap = new \DOMDocument("1.0", "UTF-8");
     $urlset = $sitemap->createElement('urlset');
     $urlset->setAttribute('xmlns', 'http://www.sitemaps.org/schemas/sitemap/0.9');
     $urlset->setAttribute('xmlns:xsi', 'http://www.w3.org/2001/XMLSchema-instance');
     $baseUrl = $this->config->site->url;
     $url = $sitemap->createElement('url');
     $url->appendChild($sitemap->createElement('loc', $baseUrl));
     $url->appendChild($sitemap->createElement('changefreq', 'daily'));
     $url->appendChild($sitemap->createElement('priority', '1.0'));
     $urlset->appendChild($url);
     $karmaSql = 'number_views + ' . '((IF(votes_up IS NOT NULL, votes_up, 0) - IF(votes_down IS NOT NULL, votes_down, 0)) * 4) + ' . 'number_replies';
     $parametersPosts = ['conditions' => 'deleted != 1', 'columns' => "id, slug, modified_at, {$karmaSql} AS karma", 'order' => 'karma DESC'];
     $posts = Posts::find($parametersPosts);
     $parametersKarma = ['column' => $karmaSql, 'conditions' => 'deleted != 1'];
     $karma = Posts::maximum($parametersKarma);
     $modifiedAt = new \DateTime();
     $modifiedAt->setTimezone(new \DateTimeZone('UTC'));
     foreach ($posts as $post) {
         $modifiedAt->setTimestamp($post->modified_at);
         $postKarma = $post->karma / ($karma + 100);
         $url = $sitemap->createElement('url');
         $href = trim($baseUrl, '/') . '/discussion/' . $post->id . '/' . $post->slug;
         $url->appendChild($sitemap->createElement('loc', $href));
         $valuePriority = $postKarma > 0.7 ? sprintf("%0.1f", $postKarma) : sprintf("%0.1f", $postKarma + 0.25);
         $url->appendChild($sitemap->createElement('priority', $valuePriority));
         $url->appendChild($sitemap->createElement('lastmod', $modifiedAt->format('Y-m-d\\TH:i:s\\Z')));
         $urlset->appendChild($url);
     }
     $sitemap->appendChild($urlset);
     $response->setContent($sitemap->saveXML());
     return $response;
 }
Beispiel #18
0
    BaseController::run(new UserMetaController(), 'putUserMetaAction', array($uid, $meta_key, $meta_value));
});
$app->delete('/api/user/meta/{uid:[0-9]+}/{meta_key:[0-9a-zA-Z_]+}', function ($uid, $meta_key) {
    BaseController::auth();
    BaseController::run(new UserMetaController(), 'deleteUserMetaAction', array($uid, $meta_key));
});
/**
 * SSO API
 */
$app->get('/api/sso/ticket', function () use($app) {
    $var_name = isset($_GET['var']) ? $_GET['var'] : 'il_passport_ticket';
    $response = new Response();
    $response->setHeader("Content-Type", "text/javascript");
    if ($app->session->has("auth")) {
        $auth = $app->session->get("auth");
        $response->setContent("; var {$var_name} = \"{$auth['ticket']}\";");
    } else {
        $response->setContent("; var {$var_name} = null;");
    }
    $response->send();
});
$app->get('/api/sso/status/{ticket:[0-9A-Z]+}', function ($ticket) {
    BaseController::auth();
    BaseController::run(new SsoController(), 'getStatusAction', array($ticket));
});
$app->put('/api/sso/status/{ticket:[0-9A-Z]+}', function ($ticket) {
});
$app->delete('/api/sso/status/{ticket:[0-9A-Z]+}', function ($ticket) {
    BaseController::auth();
    BaseController::run(new SsoController(), 'deleteStatusAction', array($ticket));
});
 /**
  * Export language translations.
  *
  * @param int $id Language identity.
  *
  * @return void|ResponseInterface
  *
  * @Route("/export/{id:[0-9]+}", methods={"GET", "POST"}, name="admin-languages-export")
  */
 public function exportAction($id)
 {
     $item = Language::findFirst($id);
     if (!$item) {
         $this->flashSession->error($this->i18n->_('Language not found!'));
         return $this->response->redirect(['for' => "admin-languages"]);
     }
     $form = new Export($item);
     $this->view->form = $form;
     $this->disableFooter();
     if (!$this->request->isPost()) {
         return;
     }
     $scope = $this->request->get('scope', null, []);
     header("Content-disposition: attachment; filename=language-{$item->language}-{$item->locale}.json");
     header('Content - type: application / json');
     $response = new Response();
     $response->setContent($item->toJson($scope));
     return $response;
 }
 /**
  * @param array $data
  * @param int $status
  * @return Response
  */
 public function response($data = array(), $status = 200)
 {
     $response = new Response();
     $response->setStatusCode($status);
     $response->setContent(!empty($this->_statuses[$status]) ? $this->_statuses[$status] : null);
     $response->setHeader('Content-type', 'application/json');
     $response->setHeader('api-version', '1.0');
     $devDebug = $this->request->get('devDebug');
     if (true == $devDebug) {
         $profiles = $this->getDI()->get('profiler')->getProfiles();
         foreach ($profiles as $profile) {
             $data['SQL Statement'] = $profile->getSQLStatement();
             $data['Start Time'] = $profile->getInitialTime();
             $data['Final Time'] = $profile->getFinalTime();
             $data['Total Elapsed Time'] = $profile->getTotalElapsedSeconds();
         }
     }
     $response->setJsonContent($data, JSON_PRETTY_PRINT);
     return $response;
 }
 /**
  * Create an issue of a product.
  * @param  long $productId - the unique ID of the product
  * @return an HttpResponse contains data validation result
  */
 public function createIssueAction($productId)
 {
     $issueTitle = $this->getFilteredContent(strip_tags($this->request->getPost('issueTitle')));
     $issueCategorySlug = $this->getFilteredContent(strip_tags($this->request->getPost('issueCategory')));
     $productVersion = $this->getFilteredContent(strip_tags($this->request->getPost('productVersion')));
     $issueDescription = $this->getFilteredContent(strip_tags($this->request->getPost('issueDescription')));
     $isTokenValid = $this->security->checkToken();
     $productService = ServiceFactory::getService('ProductService');
     $issueService = ServiceFactory::getService('IssueService');
     $product = $productService->getProductObjectUsingId($productId);
     $hunter = $this->getCurrentUserObject($this->session);
     if ($product == NULL) {
         $this->forward('errors/resourceNotFound');
         return;
     }
     $result = $issueService->createIssue($product, $productVersion, $issueCategorySlug, $hunter, $issueTitle, $issueDescription, $isTokenValid);
     if ($isTokenValid) {
         $result['csrfTokenKey'] = $this->security->getTokenKey();
         $result['csrfToken'] = $this->security->getToken();
     }
     if ($isSuccessful) {
         $issueId = $result['issueId'];
         $ipAddress = $this->request->getClientAddress();
         $this->logger->log(sprintf('Issue #%d created by User[%s] at %s.', $issueId, $hunter, $ipAddress), Logger::INFO);
     }
     $response = new Response();
     $response->setHeader('Content-Type', 'application/json');
     $response->setContent(json_encode($result));
     return $response;
 }
Beispiel #22
0
use Phalcon\Mvc\Micro;
use Phalcon\Http\Response;
use Phalcon\Loader;
use Phalcon\DI\FactoryDefault;
use Phalcon\Db\Adapter\Pdo\Mysql as PdoMysql;
$loader = new Loader();
$loader->registerDirs(array(__DIR__ . '/models/'))->register();
$di = new FactoryDefault();
$di->set('db', function () {
    return new PdoMysql(array("host" => "localhost", "username" => "root", "password" => "", "dbname" => "classicmodels"));
});
$app = new Micro($di);
$app->get('/', function () {
    $response = new Response();
    $response->setContent('<h1 style="text-align:center">Sorry, the page doesn\'t exist</h1>');
    $response->send();
});
$app->get('/api/customers/top/{year}', function ($year) use($app) {
    $phql = "SELECT customers.customerNumber,customers.contactLastName, customers.contactFirstName, customers.customerName,SUM(orderdetails.quantityOrdered) FROM orders \n\t\t\t\t\t INNER JOIN customers on customers.customerNumber = orders.customerNumber\n\t\t\t\t\t INNER JOIN orderdetails on orderdetails.orderNumber = orders.orderNumber\n\t\t\t\t\t WHERE orders.orderDate BETWEEN :startDate: AND :endDate:\n\t\t\t\t\t AND orderdetails.quantityOrdered GROUP BY customers.customerNumber\n\t\t\t\t\t ORDER BY SUM(orderdetails.quantityOrdered) DESC LIMIT 5  ";
    $result = $app->modelsManager->executeQuery($phql, array('startDate' => $year . '-01-01', 'endDate' => $year . '-12-12'));
    $data = array();
    foreach ($result as $customer) {
        $data[] = array('id' => utf8_encode($customer->customerNumber), 'name' => utf8_encode($customer->customerName), 'contact_lname' => utf8_encode($customer->contactLastName), 'contact_fname' => utf8_encode($customer->contactFirstName));
    }
    echo json_encode($data);
});
$app->get('/api/productline/top/{productLine}', function ($productLine) use($app) {
    $phql = "\n\t\t\t SELECT orderdetails.productCode,products.productName,products.productLine,products.buyPrice, SUM(orderdetails.quantityOrdered) \n\t\t\t FROM orderdetails \n\t\t\t INNER JOIN products on products.productCode = orderdetails.productCode \n\t\t\t INNER JOIN orders on orders.orderNumber = orderdetails.orderNumber \n\t\t\t WHERE orders.orderDate BETWEEN '2003-01-01' AND '2005-12-12' AND products.productLine = :productLine:\n\t\t\t GROUP BY orderdetails.productCode ORDER BY SUM(orderdetails.quantityOrdered) DESC LIMIT 5";
    $results = $app->modelsManager->executeQuery($phql, array('productLine' => $productLine));
    $data = array();
 /**
  * Main run block that executes the micro application
  *
  */
 public function run()
 {
     // Handle any routes not found
     $this->notFound(function () {
         $response = new Response();
         $response->setStatusCode(404, 'Not Found')->sendHeaders();
         $response->setContent('Page doesn\'t exist.');
         $response->send();
     });
     $this->handle();
 }
Beispiel #24
0
 public function setContent($content)
 {
     return parent::setContent($content);
 }
Beispiel #25
0
 /**
  * Sitemap generator
  */
 public function sitemapAction()
 {
     $this->view->disable();
     $cacheKey = 'post-sitemap.cache';
     $sitemap = $this->utils->cacheGet($cacheKey);
     if (null === $sitemap) {
         /**
          * All posts
          */
         $template = 'http://www.niden.net/post/%s';
         $posts = $this->finder->getPosts();
         $data = [];
         foreach ($posts as $post) {
             $data[] = ['location' => sprintf($template, $post['slug']), 'lastModified' => $post['date'], 'changeFrequency' => 'monthly', 'priority' => 0.5];
         }
         $sitemap = $this->viewSimple->render('posts/sitemap', ['sitemap' => $data]);
         $this->cache->save($cacheKey, $sitemap);
     }
     $response = new Response();
     $response->setHeader('Content-Type', 'application/xml');
     $response->setContent($sitemap);
     return $response;
 }
 /**
  * Injects the web debug toolbar into the given Response.
  * Based on https://github.com/symfony/WebProfilerBundle/blob/master/EventListener/WebDebugToolbarListener.php
  *
  * @param Response $response
  */
 public function injectDebugbar(Response $response)
 {
     $content = $response->getContent();
     $renderer = $this->getJavascriptRenderer();
     if ($this->getStorage()) {
         $openHandlerUrl = $this->di['url']->get(array('for' => 'debugbar.openhandler'));
         $renderer->setOpenHandlerUrl($openHandlerUrl);
     }
     $renderedContent = $renderer->renderHead() . $renderer->render();
     $pos = strripos($content, '</body>');
     if (false !== $pos) {
         $content = substr($content, 0, $pos) . $renderedContent . substr($content, $pos);
     } else {
         $content = $content . $renderedContent;
     }
     $response->setContent($content);
 }
Beispiel #27
0
 /**
  * 发送常规文本格式的Http响应
  *
  * @param integer $statusCode Http状态码
  * @param string  $explain    状态描述
  * @param string  $content    内容
  * @return Response
  */
 protected function response($statusCode, $explain, $content = '')
 {
     $response = new Response();
     $response->setStatusCode($statusCode, $explain);
     $response->setContent($content);
     return $response;
 }
Beispiel #28
0
 /**
  * Create an invoice download response.
  *
  * @param array $data
  */
 public function download(array $data)
 {
     $filename = $data['product'] . '_' . $this->date()->month . '_' . $this->date()->year . '.pdf';
     $response = new Response();
     $response->setHeader('Content-Description', 'File Transfer');
     $response->setHeader('Content-Disposition', 'attachment; filename="' . $filename . '"');
     $response->setStatusCode(200, 'OK');
     $response->setContent($this->pdf($data));
     $response->setContentType('application/pdf');
     return $response->send();
 }
Beispiel #29
0
 /**
  *
  * @param type $fileName
  * @param type $fileTemp
  * @return type
  */
 private function download($fileName, $fileTemp)
 {
     $this->view->setRenderLevel(\Phalcon\Mvc\View::LEVEL_NO_RENDER);
     $response = new Response();
     $response->setHeader('Content-Type', 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet');
     $response->setHeader('Content-Disposition', 'attachment;filename="' . $fileName . '"');
     $response->setHeader('Cache-Control', 'max-age=0');
     //$response->setHeader('Cache-Control', 'max-age=1');
     $response->setContent(file_get_contents($fileTemp));
     unlink($fileTemp);
     return $response->send();
 }
Beispiel #30
0
<?php

use Phalcon\Mvc\Micro, Phalcon\Http\Response;
$app = new Micro();
//Return a response
$app->get('/welcome/index', function () {
    $response = new Response();
    $response->setStatusCode(401, "Unauthorized");
    $response->setContent("Access is not authorized");
    return $response;
});