本文整理汇总了PHP中wfResetOutputBuffers函数的典型用法代码示例。如果您正苦于以下问题:PHP wfResetOutputBuffers函数的具体用法?PHP wfResetOutputBuffers怎么用?PHP wfResetOutputBuffers使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了wfResetOutputBuffers函数的20个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的PHP代码示例。
示例1: wfStreamFile
/** */
function wfStreamFile($fname)
{
$stat = @stat($fname);
if (!$stat) {
header('HTTP/1.0 404 Not Found');
header('Cache-Control: no-cache');
header('Content-Type: text/html; charset=utf-8');
$encFile = htmlspecialchars($fname);
$encScript = htmlspecialchars($_SERVER['SCRIPT_NAME']);
echo "<html><body>\n<h1>File not found</h1>\n<p>Although this PHP script ({$encScript}) exists, the file requested for output \n({$encFile}) does not.</p>\n</body></html>\n";
return;
}
header('Last-Modified: ' . gmdate('D, d M Y H:i:s', $stat['mtime']) . ' GMT');
// Cancel output buffering and gzipping if set
wfResetOutputBuffers();
$type = wfGetType($fname);
if ($type and $type != "unknown/unknown") {
header("Content-type: {$type}");
} else {
header('Content-type: application/x-wiki');
}
if (!empty($_SERVER['HTTP_IF_MODIFIED_SINCE'])) {
$modsince = preg_replace('/;.*$/', '', $_SERVER['HTTP_IF_MODIFIED_SINCE']);
$sinceTime = strtotime($modsince);
if ($stat['mtime'] <= $sinceTime) {
header("HTTP/1.0 304 Not Modified");
return;
}
}
header('Content-Length: ' . $stat['size']);
readfile($fname);
}
开发者ID:negabaro,项目名称:alfresco,代码行数:33,代码来源:StreamFile.php
示例2: csvOutput
function csvOutput($res)
{
global $wgOut, $wgRequest;
$ts = wfTimestampNow();
$filename = "community_applications_{$ts}.csv";
$wgOut->disable();
wfResetOutputBuffers();
$wgRequest->response()->header("Content-disposition: attachment;filename={$filename}");
$wgRequest->response()->header("Content-type: text/csv; charset=utf-8");
$fh = fopen('php://output', 'w');
$fields = null;
foreach ($res as $row) {
$data = FormatJson::decode($row->ch_data, true);
$data = array('id' => $row->ch_id) + $data;
if (!is_array($fields)) {
$fields = array_keys($data);
fputcsv($fh, $fields);
}
$outData = array();
foreach ($fields as $k) {
$outData[] = isset($data[$k]) ? $data[$k] : null;
unset($data[$k]);
}
foreach ($data as $k => $v) {
$outData[] = "{$k}: {$v}";
}
fputcsv($fh, $outData);
}
fclose($fh);
}
开发者ID:realsoc,项目名称:mediawiki-extensions,代码行数:30,代码来源:SpecialCommunityApplications.php
示例3: streamAppleTouch
function streamAppleTouch()
{
global $wgAppleTouchIcon;
wfResetOutputBuffers();
if ($wgAppleTouchIcon === false) {
# That's not very helpful, that's where we are already
header('HTTP/1.1 404 Not Found');
faviconShowError('$wgAppleTouchIcon is configured incorrectly, ' . 'it must be set to something other than false \\n');
return;
}
$req = RequestContext::getMain()->getRequest();
if ($req->getHeader('X-Favicon-Loop') !== false) {
header('HTTP/1.1 500 Internal Server Error');
faviconShowError('Proxy forwarding loop detected');
return;
}
$url = wfExpandUrl($wgAppleTouchIcon, PROTO_CANONICAL);
$client = MWHttpRequest::factory($url);
$client->setHeader('X-Favicon-Loop', '1');
$status = $client->execute();
if (!$status->isOK()) {
header('HTTP/1.1 500 Internal Server Error');
faviconShowError("Failed to fetch URL \"{$url}\"");
return;
}
$content = $client->getContent();
header('Content-Length: ' . strlen($content));
header('Content-Type: ' . $client->getResponseHeader('Content-Type'));
header('Cache-Control: public');
header('Expires: ' . gmdate('r', time() + 86400));
echo $content;
}
开发者ID:nomoa,项目名称:operations-mediawiki-config,代码行数:32,代码来源:touch.php
示例4: execute
function execute($par)
{
global $wgMemc;
$tempToken = $this->getRequest()->getVal('token');
$logout = $this->getRequest()->getBool('logout');
# Don't cache error messages
$this->getOutput()->enableClientCache(false);
if (strlen($tempToken) == 0) {
$this->setHeaders();
$this->getOutput()->addWikiMsg('centralauth-autologin-desc');
return;
}
$key = CentralAuthUser::memcKey('login-token', $tempToken);
$data = $wgMemc->get($key);
$wgMemc->delete($key);
if (!$data) {
$msg = 'Token is invalid or has expired';
wfDebug(__METHOD__ . ": {$msg}\n");
$this->setHeaders();
$this->getOutput()->addWikiText($msg);
return;
}
$userName = $data['userName'];
$token = $data['token'];
$remember = $data['remember'];
if ($data['wiki'] != wfWikiID()) {
$msg = 'Bad token (wrong wiki)';
wfDebug(__METHOD__ . ": {$msg}\n");
$this->setHeaders();
$this->getOutput()->addWikiText($msg);
return;
}
$centralUser = new CentralAuthUser($userName);
$loginResult = $centralUser->authenticateWithToken($token);
if ($loginResult != 'ok') {
$msg = "Bad token: {$loginResult}";
wfDebug(__METHOD__ . ": {$msg}\n");
$this->setHeaders();
$this->getOutput()->addWikiText($msg);
return;
}
// Auth OK.
if ($logout) {
$centralUser->deleteGlobalCookies();
} else {
$centralUser->setGlobalCookies($remember);
}
$this->getOutput()->disable();
wfResetOutputBuffers();
header('Cache-Control: no-cache');
header('Content-Type: image/png');
global $wgCentralAuthLoginIcon;
if ($wgCentralAuthLoginIcon) {
readfile($wgCentralAuthLoginIcon);
} else {
readfile(dirname(__FILE__) . '/1x1.png');
}
}
开发者ID:realsoc,项目名称:mediawiki-extensions,代码行数:58,代码来源:SpecialAutoLogin.php
示例5: execute
function execute($par)
{
global $wgOut;
$this->setHideCookie();
$wgOut->disable();
wfResetOutputBuffers();
header('Content-Type: image/png');
header('Cache-Control: no-cache');
readfile(dirname(__FILE__) . '/../1x1.png');
}
开发者ID:realsoc,项目名称:mediawiki-extensions,代码行数:10,代码来源:SpecialHideBanners.php
示例6: getImage
/**
* getImage method
*
*/
public function getImage()
{
wfProfileIn(__METHOD__);
if ($this->wg->User->isLoggedIn()) {
# make proper thumb path: c/central/images/thumb/....
$path = sprintf("%s/%s/images", substr($this->wg->DBname, 0, 1), $this->wg->DBname);
# take thumb request from request
$img = $this->getVal('image');
if (preg_match('/^(\\/?)thumb\\//', $img)) {
# build proper thumb url for thumbnailer
$thumb_url = sprintf("%s/%s/%s", $this->wg->ThumbnailerService, $path, $img);
# call thumbnailer
$options = array('method' => 'GET', 'timeout' => 'default', 'noProxy' => 1);
$thumb_request = MWHttpRequest::factory($thumb_url, $options);
$status = $thumb_request->execute();
$headers = $thumb_request->getResponseHeaders();
if ($status->isOK()) {
if (!empty($headers)) {
foreach ($headers as $header_name => $header_value) {
if (is_array($header_value)) {
list($value) = $header_value;
} else {
$value = $header_value;
}
header(sprintf("%s: %s", $header_name, $value));
}
}
echo $thumb_request->getContent();
} else {
wfdebug("Cannot generate auth thumb");
$this->_access_forbidden('img-auth-accessdenied', 'img-auth-nofile', $img);
}
} else {
# serve original image
$filename = realpath(sprintf("%s/%s", $this->wg->UploadDirectory, $img));
$stat = @stat($filename);
if ($stat) {
wfResetOutputBuffers();
$fileinfo = finfo_open(FILEINFO_MIME_TYPE);
$imageType = finfo_file($fileinfo, $filename);
header(sprintf("Content-Disposition: inline;filename*=utf-8'%s'%s", $this->wg->ContLanguageCode, urlencode(basename($filename))));
header(sprintf("Content-Type: %s", $imageType));
header(sprintf("Content-Length: %d" . $stat['size']));
readfile($filename);
} else {
$this->_access_forbidden('img-auth-accessdenied', 'img-auth-nopathinfo', $img);
}
}
} else {
$this->_access_forbidden('img-auth-accessdenied', 'img-auth-public', '');
}
wfProfileOut(__METHOD__);
exit;
}
开发者ID:Tjorriemorrie,项目名称:app,代码行数:58,代码来源:AuthImageSpecialPageController.class.php
示例7: prepareForStream
/**
* Call this function used in preparation before streaming a file.
* This function does the following:
* (a) sends Last-Modified, Content-type, and Content-Disposition headers
* (b) cancels any PHP output buffering and automatic gzipping of output
* (c) sends Content-Length header based on HTTP_IF_MODIFIED_SINCE check
*
* @param $path string Storage path or file system path
* @param $info Array|false File stat info with 'mtime' and 'size' fields
* @param $headers Array Additional headers to send
* @param $sendErrors bool Send error messages if errors occur (like 404)
* @return int|false READY_STREAM, NOT_MODIFIED, or false on failure
*/
public static function prepareForStream($path, $info, $headers = array(), $sendErrors = true)
{
global $wgLanguageCode;
if (!is_array($info)) {
if ($sendErrors) {
header('HTTP/1.0 404 Not Found');
header('Cache-Control: no-cache');
header('Content-Type: text/html; charset=utf-8');
$encFile = htmlspecialchars($path);
$encScript = htmlspecialchars($_SERVER['SCRIPT_NAME']);
echo "<html><body>\n\t\t\t\t\t<h1>File not found</h1>\n\t\t\t\t\t<p>Although this PHP script ({$encScript}) exists, the file requested for output\n\t\t\t\t\t({$encFile}) does not.</p>\n\t\t\t\t\t</body></html>\n\t\t\t\t\t";
}
return false;
}
// Sent Last-Modified HTTP header for client-side caching
header('Last-Modified: ' . wfTimestamp(TS_RFC2822, $info['mtime']));
// Cancel output buffering and gzipping if set
wfResetOutputBuffers();
$type = self::contentTypeFromPath($path);
if ($type && $type != 'unknown/unknown') {
header("Content-type: {$type}");
} else {
// Send a content type which is not known to Internet Explorer, to
// avoid triggering IE's content type detection. Sending a standard
// unknown content type here essentially gives IE license to apply
// whatever content type it likes.
header('Content-type: application/x-wiki');
}
// Don't stream it out as text/html if there was a PHP error
if (headers_sent()) {
echo "Headers already sent, terminating.\n";
return false;
}
header("Content-Disposition: inline;filename*=utf-8'{$wgLanguageCode}'" . urlencode(basename($path)));
// Send additional headers
foreach ($headers as $header) {
header($header);
}
// Don't send if client has up to date cache
if (!empty($_SERVER['HTTP_IF_MODIFIED_SINCE'])) {
$modsince = preg_replace('/;.*$/', '', $_SERVER['HTTP_IF_MODIFIED_SINCE']);
if (wfTimestamp(TS_UNIX, $info['mtime']) <= strtotime($modsince)) {
ini_set('zlib.output_compression', 0);
header("HTTP/1.0 304 Not Modified");
return self::NOT_MODIFIED;
// ok
}
}
header('Content-Length: ' . $info['size']);
return self::READY_STREAM;
// ok
}
开发者ID:Tjorriemorrie,项目名称:app,代码行数:65,代码来源:StreamFile.php
示例8: wfProtectAdminNamespace
function wfProtectAdminNamespace(Parser $parser)
{
global $wgTitle, $wgUser, $wgOut, $mediaWiki;
if (is_object($wgTitle) && $wgTitle->getNamespace() == NS_ADMIN && !in_array('bureaucrat', $wgUser->getEffectiveGroups())) {
if (is_object($mediaWiki)) {
$mediaWiki->restInPeace();
}
$wgOut->disable();
wfResetOutputBuffers();
header("Location: http://wiki.ligmincha.org/");
}
return true;
}
开发者ID:uinerd,项目名称:Code,代码行数:13,代码来源:LigminchaInternationalSettings.php
示例9: setup
public function setup()
{
global $wgOut, $wgResourceModules, $wgAutoloadClasses, $wgExtensionAssetsPath, $IP, $wgUser, $wgAjaxCommentsPollServer, $wgAjaxCommentsLikeDislike, $wgAjaxCommentsCopyTalkpages, $wgAjaxCommentsAdmins;
// Determine if the current user is an admin for comments
self::$admin = count(array_intersect($wgAjaxCommentsAdmins, $wgUser->getEffectiveGroups())) > 0;
// If options set, hook into the new revisions to change talk page additions to ajaxcomments
if ($wgAjaxCommentsCopyTalkpages) {
Hooks::register('PageContentSave', $this);
}
// Create a hook to allow external condition for whether there should be comments shown
$title = array_key_exists('title', $_GET) ? Title::newFromText($_GET['title']) : false;
if (!array_key_exists('action', $_REQUEST) && self::checkTitle($title)) {
Hooks::register('BeforePageDisplay', $this);
} else {
$wgAjaxCommentsPollServer = -1;
}
// Create a hook to allow external condition for whether comments can be added or replied to (default is just user logged in)
$this->canComment = $wgUser->isLoggedIn();
Hooks::run('AjaxCommentsCheckWritable', array($title, &$this->canComment));
// Redirect talk pages with AjaxComments to the comments
if (is_object($title) && $title->getNamespace() > 0 && $title->getNamespace() & 1) {
$ret = true;
Hooks::run('AjaxCommentsCheckTitle', array($userpage, &$ret));
if ($ret) {
$userpage = Title::newFromText($title->getText(), $title->getNamespace() - 1);
global $mediaWiki;
if (is_object($mediaWiki)) {
$mediaWiki->restInPeace();
}
$wgOut->disable();
wfResetOutputBuffers();
$url = $userpage->getLocalUrl();
header("Location: {$url}#ajaxcomments");
wfDebugLog(__CLASS__, "Redirecting to {$url}");
exit;
}
}
// This gets the remote path even if it's a symlink (MW1.25+)
$path = $wgExtensionAssetsPath . str_replace("{$IP}/extensions", '', dirname($wgAutoloadClasses[__CLASS__]));
$wgResourceModules['ext.ajaxcomments']['remoteExtPath'] = $path;
$wgOut->addModules('ext.ajaxcomments');
$wgOut->addStyle("{$path}/styles/ajaxcomments.css");
// Add config vars to client side
$wgOut->addJsConfigVars('ajaxCommentsPollServer', $wgAjaxCommentsPollServer);
$wgOut->addJsConfigVars('ajaxCommentsCanComment', $this->canComment);
$wgOut->addJsConfigVars('ajaxCommentsLikeDislike', $wgAjaxCommentsLikeDislike);
$wgOut->addJsConfigVars('ajaxCommentsAdmin', self::$admin);
}
开发者ID:saper,项目名称:organic-extensions,代码行数:48,代码来源:AjaxComments.class.php
示例10: wfStreamFile
/**
* @param $fname string
* @param $headers array
*/
function wfStreamFile($fname, $headers = array())
{
wfSuppressWarnings();
$stat = stat($fname);
wfRestoreWarnings();
if (!$stat) {
header('HTTP/1.0 404 Not Found');
header('Cache-Control: no-cache');
header('Content-Type: text/html; charset=utf-8');
$encFile = htmlspecialchars($fname);
$encScript = htmlspecialchars($_SERVER['SCRIPT_NAME']);
echo "<html><body>\n<h1>File not found</h1>\n<p>Although this PHP script ({$encScript}) exists, the file requested for output\n({$encFile}) does not.</p>\n</body></html>\n";
return;
}
header('Last-Modified: ' . gmdate('D, d M Y H:i:s', $stat['mtime']) . ' GMT');
// Cancel output buffering and gzipping if set
wfResetOutputBuffers();
$type = wfGetType($fname);
if ($type and $type != "unknown/unknown") {
header("Content-type: {$type}");
} else {
header('Content-type: application/x-wiki');
}
// Don't stream it out as text/html if there was a PHP error
if (headers_sent()) {
echo "Headers already sent, terminating.\n";
return;
}
global $wgLanguageCode;
header("Content-Disposition: inline;filename*=utf-8'{$wgLanguageCode}'" . urlencode(basename($fname)));
foreach ($headers as $header) {
header($header);
}
if (!empty($_SERVER['HTTP_IF_MODIFIED_SINCE'])) {
$modsince = preg_replace('/;.*$/', '', $_SERVER['HTTP_IF_MODIFIED_SINCE']);
$sinceTime = strtotime($modsince);
if ($stat['mtime'] <= $sinceTime) {
ini_set('zlib.output_compression', 0);
header("HTTP/1.0 304 Not Modified");
return;
}
}
header('Content-Length: ' . $stat['size']);
readfile($fname);
}
开发者ID:eFFemeer,项目名称:seizamcore,代码行数:49,代码来源:StreamFile.php
示例11: wfStreamFile
/** */
function wfStreamFile($fname, $headers = array())
{
$stat = @stat($fname);
if (!$stat) {
header('HTTP/1.0 404 Not Found');
header('Cache-Control: no-cache');
header('Content-Type: text/html; charset=utf-8');
$encFile = htmlspecialchars($fname);
$encScript = htmlspecialchars($_SERVER['SCRIPT_NAME']);
echo "<html><body>\n<h1>File not found</h1>\n<p>Although this PHP script ({$encScript}) exists, the file requested for output \n({$encFile}) does not.</p>\n</body></html>\n";
return;
}
header('Last-Modified: ' . gmdate('D, d M Y H:i:s', $stat['mtime']) . ' GMT');
// Cancel output buffering and gzipping if set
wfResetOutputBuffers();
$type = wfGetType($fname);
if ($type and $type != "unknown/unknown") {
header("Content-type: {$type}");
} else {
header('Content-type: application/x-wiki');
}
global $wgContLanguageCode;
header("Content-Disposition: inline;filename*=utf-8'{$wgContLanguageCode}'" . urlencode(basename($fname)));
foreach ($headers as $header) {
header($header);
}
if (!empty($_SERVER['HTTP_IF_MODIFIED_SINCE'])) {
$modsince = preg_replace('/;.*$/', '', $_SERVER['HTTP_IF_MODIFIED_SINCE']);
$sinceTime = strtotime($modsince);
if ($stat['mtime'] <= $sinceTime) {
header("HTTP/1.0 304 Not Modified");
return;
}
}
$h = "";
foreach ($stat as $k => $v) {
$h .= "{$k}={$v},";
}
header('Content-Length: ' . $stat['size']);
header('X-stat-results: ' . $h);
header('X-Serving-host: ' . wfHostname());
header('Content-Length-true: ' . $stat['size']);
readfile($fname);
}
开发者ID:ErdemA,项目名称:wikihow,代码行数:45,代码来源:StreamFile.php
示例12: wfSpecialExport
/**
*
*/
function wfSpecialExport($page = '')
{
global $wgOut, $wgRequest, $wgSitename, $wgExportAllowListContributors;
global $wgExportAllowHistory, $wgExportMaxHistory;
$curonly = true;
$doexport = false;
if ($wgRequest->getCheck('addcat')) {
$page = $wgRequest->getText('pages');
$catname = $wgRequest->getText('catname');
if ($catname !== '' && $catname !== NULL && $catname !== false) {
$t = Title::makeTitleSafe(NS_MAIN, $catname);
if ($t) {
/**
* @fixme This can lead to hitting memory limit for very large
* categories. Ideally we would do the lookup synchronously
* during the export in a single query.
*/
$catpages = wfExportGetPagesFromCategory($t);
if ($catpages) {
$page .= "\n" . implode("\n", $catpages);
}
}
}
} else {
if ($wgRequest->wasPosted() && $page == '') {
$page = $wgRequest->getText('pages');
$curonly = $wgRequest->getCheck('curonly');
$rawOffset = $wgRequest->getVal('offset');
if ($rawOffset) {
$offset = wfTimestamp(TS_MW, $rawOffset);
} else {
$offset = null;
}
$limit = $wgRequest->getInt('limit');
$dir = $wgRequest->getVal('dir');
$history = array('dir' => 'asc', 'offset' => false, 'limit' => $wgExportMaxHistory);
$historyCheck = $wgRequest->getCheck('history');
if ($curonly) {
$history = WikiExporter::CURRENT;
} elseif (!$historyCheck) {
if ($limit > 0 && $limit < $wgExportMaxHistory) {
$history['limit'] = $limit;
}
if (!is_null($offset)) {
$history['offset'] = $offset;
}
if (strtolower($dir) == 'desc') {
$history['dir'] = 'desc';
}
}
if ($page != '') {
$doexport = true;
}
} else {
// Default to current-only for GET requests
$page = $wgRequest->getText('pages', $page);
$historyCheck = $wgRequest->getCheck('history');
if ($historyCheck) {
$history = WikiExporter::FULL;
} else {
$history = WikiExporter::CURRENT;
}
if ($page != '') {
$doexport = true;
}
}
}
if (!$wgExportAllowHistory) {
// Override
$history = WikiExporter::CURRENT;
}
$list_authors = $wgRequest->getCheck('listauthors');
if (!$curonly || !$wgExportAllowListContributors) {
$list_authors = false;
}
if ($doexport) {
$wgOut->disable();
// Cancel output buffering and gzipping if set
// This should provide safer streaming for pages with history
wfResetOutputBuffers();
header("Content-type: application/xml; charset=utf-8");
if ($wgRequest->getCheck('wpDownload')) {
// Provide a sane filename suggestion
$filename = urlencode($wgSitename . '-' . wfTimestampNow() . '.xml');
$wgRequest->response()->header("Content-disposition: attachment;filename={$filename}");
}
/* Split up the input and look up linked pages */
$inputPages = array_filter(explode("\n", $page), 'wfFilterPage');
$pageSet = array_flip($inputPages);
if ($wgRequest->getCheck('templates')) {
$pageSet = wfExportGetTemplates($inputPages, $pageSet);
}
/*
// Enable this when we can do something useful exporting/importing image information. :)
if( $wgRequest->getCheck( 'images' ) ) {
$pageSet = wfExportGetImages( $inputPages, $pageSet );
}
//.........这里部分代码省略.........
开发者ID:amjadtbssm,项目名称:website,代码行数:101,代码来源:SpecialExport.php
示例13: execute
//.........这里部分代码省略.........
} elseif ($request->getCheck('exportall') && $wgExportAllowAll) {
$this->doExport = true;
$exportall = true;
} elseif ($request->wasPosted() && $par == '') {
$page = $request->getText('pages');
$this->curonly = $request->getCheck('curonly');
$rawOffset = $request->getVal('offset');
if ($rawOffset) {
$offset = wfTimestamp(TS_MW, $rawOffset);
} else {
$offset = null;
}
$limit = $request->getInt('limit');
$dir = $request->getVal('dir');
$history = array('dir' => 'asc', 'offset' => false, 'limit' => $wgExportMaxHistory);
$historyCheck = $request->getCheck('history');
if ($this->curonly) {
$history = WikiExporter::CURRENT;
} elseif (!$historyCheck) {
if ($limit > 0 && ($wgExportMaxHistory == 0 || $limit < $wgExportMaxHistory)) {
$history['limit'] = $limit;
}
if (!is_null($offset)) {
$history['offset'] = $offset;
}
if (strtolower($dir) == 'desc') {
$history['dir'] = 'desc';
}
}
if ($page != '') {
$this->doExport = true;
}
} else {
// Default to current-only for GET requests.
$page = $request->getText('pages', $par);
$historyCheck = $request->getCheck('history');
if ($historyCheck) {
$history = WikiExporter::FULL;
} else {
$history = WikiExporter::CURRENT;
}
if ($page != '') {
$this->doExport = true;
}
}
if (!$wgExportAllowHistory) {
// Override
$history = WikiExporter::CURRENT;
}
$list_authors = $request->getCheck('listauthors');
if (!$this->curonly || !$wgExportAllowListContributors) {
$list_authors = false;
}
if ($this->doExport) {
$this->getOutput()->disable();
// Cancel output buffering and gzipping if set
// This should provide safer streaming for pages with history
wfResetOutputBuffers();
$request->response()->header("Content-type: application/xml; charset=utf-8");
if ($request->getCheck('wpDownload')) {
// Provide a sane filename suggestion
$filename = urlencode($wgSitename . '-' . wfTimestampNow() . '.xml');
$request->response()->header("Content-disposition: attachment;filename={$filename}");
}
$this->doExport($page, $history, $list_authors, $exportall);
return;
}
$out = $this->getOutput();
$out->addWikiMsg('exporttext');
$form = Xml::openElement('form', array('method' => 'post', 'action' => $this->getTitle()->getLocalUrl('action=submit')));
$form .= Xml::inputLabel(wfMsg('export-addcattext'), 'catname', 'catname', 40) . ' ';
$form .= Xml::submitButton(wfMsg('export-addcat'), array('name' => 'addcat')) . '<br />';
if ($wgExportFromNamespaces) {
$form .= Xml::namespaceSelector($nsindex, null, 'nsindex', wfMsg('export-addnstext')) . ' ';
$form .= Xml::submitButton(wfMsg('export-addns'), array('name' => 'addns')) . '<br />';
}
if ($wgExportAllowAll) {
$form .= Xml::checkLabel(wfMsg('exportall'), 'exportall', 'exportall', $request->wasPosted() ? $request->getCheck('exportall') : false) . '<br />';
}
$form .= Xml::element('textarea', array('name' => 'pages', 'cols' => 40, 'rows' => 10), $page, false);
$form .= '<br />';
if ($wgExportAllowHistory) {
$form .= Xml::checkLabel(wfMsg('exportcuronly'), 'curonly', 'curonly', $request->wasPosted() ? $request->getCheck('curonly') : true) . '<br />';
} else {
$out->addHTML(wfMsgExt('exportnohistory', 'parse'));
}
$form .= Xml::checkLabel(wfMsg('export-templates'), 'templates', 'wpExportTemplates', $request->wasPosted() ? $request->getCheck('templates') : false) . '<br />';
if ($wgExportMaxLinkDepth || $this->userCanOverrideExportDepth()) {
$form .= Xml::inputLabel(wfMsg('export-pagelinks'), 'pagelink-depth', 'pagelink-depth', 20, 0) . '<br />';
}
// Enable this when we can do something useful exporting/importing image information. :)
//$form .= Xml::checkLabel( wfMsg( 'export-images' ), 'images', 'wpExportImages', false ) . '<br />';
$form .= Xml::checkLabel(wfMsg('export-download'), 'wpDownload', 'wpDownload', $request->wasPosted() ? $request->getCheck('wpDownload') : true) . '<br />';
if ($wgExportAllowListContributors) {
$form .= Xml::checkLabel(wfMsg('exportlistauthors'), 'listauthors', 'listauthors', $request->wasPosted() ? $request->getCheck('listauthors') : false) . '<br />';
}
$form .= Xml::submitButton(wfMsg('export-submit'), Linker::tooltipAndAccesskeyAttribs('export'));
$form .= Xml::closeElement('form');
$out->addHTML($form);
}
开发者ID:yusufchang,项目名称:app,代码行数:101,代码来源:SpecialExport.php
示例14: doSpecialViewXML
static function doSpecialViewXML()
{
global $wgOut, $wgRequest, $wgUser, $wgContLang;
$skin = $wgUser->getSkin();
$namespace_labels = $wgContLang->getNamespaces();
$category_label = $namespace_labels[NS_CATEGORY];
$template_label = $namespace_labels[NS_TEMPLATE];
$name_str = str_replace(' ', '_', wfMsgForContent('dt_xml_name'));
$namespace_str = str_replace(' ', '_', wfMsg('dt_xml_namespace'));
$pages_str = str_replace(' ', '_', wfMsgForContent('dt_xml_pages'));
$form_submitted = false;
$page_titles = array();
$cats = $wgRequest->getArray('categories');
$nses = $wgRequest->getArray('namespaces');
if (count($cats) > 0 || count($nses) > 0) {
$form_submitted = true;
}
if ($form_submitted) {
$wgOut->disable();
// Cancel output buffering and gzipping if set
// This should provide safer streaming for pages with history
wfResetOutputBuffers();
header("Content-type: application/xml; charset=utf-8");
$groupings = self::getGroupings();
$simplified_format = $wgRequest->getVal('simplified_format');
$text = "<{$pages_str}>";
if ($cats) {
foreach ($cats as $cat => $val) {
if ($simplified_format) {
$text .= '<' . str_replace(' ', '_', $cat) . ">\n";
} else {
$text .= "<{$category_label} {$name_str}=\"{$cat}\">\n";
}
$titles = self::getPagesForCategory($cat, 10);
foreach ($titles as $title) {
$text .= self::getXMLForPage($title, $simplified_format, $groupings);
}
if ($simplified_format) {
$text .= '</' . str_replace(' ', '_', $cat) . ">\n";
} else {
$text .= "</{$category_label}>\n";
}
}
}
if ($nses) {
foreach ($nses as $ns => $val) {
if ($ns == 0) {
$ns_name = "Main";
} else {
$ns_name = MWNamespace::getCanonicalName($ns);
}
if ($simplified_format) {
$text .= '<' . str_replace(' ', '_', $ns_name) . ">\n";
} else {
$text .= "<{$namespace_str} {$name_str}=\"{$ns_name}\">\n";
}
$titles = self::getPagesForNamespace($ns);
foreach ($titles as $title) {
$text .= self::getXMLForPage($title, $simplified_format, $groupings);
}
if ($simplified_format) {
$text .= '</' . str_replace(' ', '_', $ns_name) . ">\n";
} else {
$text .= "</{$namespace_str}>\n";
}
}
}
$text .= "</{$pages_str}>";
print $text;
} else {
// set 'title' as hidden field, in case there's no URL niceness
global $wgContLang;
$mw_namespace_labels = $wgContLang->getNamespaces();
$special_namespace = $mw_namespace_labels[NS_SPECIAL];
$text = <<<END
\t<form action="" method="get">
\t<input type="hidden" name="title" value="{$special_namespace}:ViewXML">
END;
$text .= "<p>" . wfMsg('dt_viewxml_docu') . "</p>\n";
$text .= "<h2>" . wfMsg('dt_viewxml_categories') . "</h2>\n";
$categories = self::getCategoriesList();
foreach ($categories as $category) {
$title = Title::makeTitle(NS_CATEGORY, $category);
$link = $skin->makeLinkObj($title, $title->getText());
$text .= "<input type=\"checkbox\" name=\"categories[{$category}]\" /> {$link} <br />\n";
}
$text .= "<h2>" . wfMsg('dt_viewxml_namespaces') . "</h2>\n";
$namespaces = self::getNamespacesList();
foreach ($namespaces as $namespace) {
if ($namespace == 0) {
$ns_name = wfMsgHtml('blanknamespace');
} else {
$ns_name = htmlspecialchars($wgContLang->getFormattedNsText($namespace));
}
$ns_name = str_replace('_', ' ', $ns_name);
$text .= "<input type=\"checkbox\" name=\"namespaces[{$namespace}]\" /> {$ns_name} <br />\n";
}
$text .= "<br /><p><input type=\"checkbox\" name=\"simplified_format\" /> " . wfMsg('dt_viewxml_simplifiedformat') . "</p>\n";
$text .= "<input type=\"submit\" value=\"" . wfMsg('viewxml') . "\">\n";
//.........这里部分代码省略.........
开发者ID:realsoc,项目名称:mediawiki-extensions,代码行数:101,代码来源:DT_ViewXML.php
示例15: execute
function execute( $param ) {
global $wgOut, $wgRequest, $wgRecordAdmin, $wgSecurityProtectRecords;
if ( !isset( $wgSecurityProtectRecords ) ) $wgSecurityProtectRecords = false;
$this->setHeaders();
$type = $wgRequest->getText( 'wpType' ) or $type = $param;
$newtype = $wgRequest->getText( 'wpNewType' );
$invert = $wgRequest->getText( 'wpInvert' );
$record = $wgRecordAdmin->record = $wgRequest->getText( 'wpRecord' );
$title = $this->title = SpecialPage::getTitleFor( 'RecordAdmin' );
$action = $title->getLocalURL( 'action=submit' );
$wpTitle = trim( $wgRequest->getText( 'wpTitle' ) );
$this->template = Title::makeTitle( NS_TEMPLATE, $type );
$wgOut->addHTML(
'<div class="recordadmin-menubar"><a href="' . $title->getLocalURL() . "/$type\">" . wfMsg( 'recordadmin-newsearch', $type ) . '</a>'
. ' '
. '<a href="' . $title->getLocalURL() . '">' . wfMsg( 'recordadmin-newrecord' ) . '</a></div>'."\n"
);
# Get posted form values if any
$posted = array();
foreach ( $_REQUEST as $k => $v ) if ( preg_match( "|^ra_(\\w+)|", $k, $m ) ) $posted[$m[1]] = is_array( $v ) ? join( "\n", $v ) : $v;
# Read in and prepare the form for this record type if one has been selected
if ( $type ) $wgRecordAdmin->preProcessForm( $type );
# Extract the input names and types used in the form
$wgRecordAdmin->examineForm();
# Process Create New Type form if submitted and user permitted
if ( $newtype ) {
$wgRecordAdmin->createRecordType( $newtype );
$type = '';
}
# If no type selected, render form for record types and create record-type
if ( empty( $type ) ) {
$wgOut->addHTML( Xml::element( 'form', array( 'class' => 'recordadmin', 'action' => $action, 'method' => 'post' ), null ) );
$wgOut->addWikiText( "<div class='visualClear'></div>\n==" . wfMsg( 'recordadmin-select' ) . "==\n" );
# Render type select list
$options = "";
foreach( $wgRecordAdmin->getRecordTypes() as $option ) $options .= "<option>$option</option>";
if ( $options ) $wgOut->addHTML(
"<select name='wpType'>$options</select> "
. Xml::element( 'input', array( 'type' => 'submit', 'value' => wfMsg( 'recordadmin-submit' ) ) )
); else $wgOut->AddWikiText( wfMsg( 'recordadmin-noforms' ) );
# Render type create
$wgOut->addWikiText( "<br />\n==" . wfMsg( 'recordadmin-createtype' ) . "==\n" );
$wgOut->addHTML( Xml::element( 'input', array( 'name' => 'wpNewType', 'type' => 'text' ) )
. ' '
. Xml::element( 'input', array( 'type' => 'submit', 'value' => wfMsg( 'recordadmin-buttoncreate' ) ) )
. '</form>'
);
}
# Record type known, render form for searching or creating
else {
# Process Create submission
if ( count( $posted ) && $wgRequest->getText( 'wpCreate' ) ) {
if ( empty( $wpTitle ) ) $wpTitle = $wgRecordAdmin->guid;
$t = Title::newFromText( $wpTitle );
if ( is_object( $t ) ) {
if ( $t->exists() ) $wgOut->addHTML( "<div class='errorbox'>" . wfMsg( 'recordadmin-alreadyexist' , $wpTitle ) . "</div>\n" );
else {
# Attempt to create the article
$article = new Article( $t );
$summary = "[[Special:RecordAdmin/$type|" . wfMsgForContent( 'recordadmin' ) . "]]: " . wfMsg( 'recordadmin-summary-typecreated', $type );
$success = $article->doEdit( $wgRecordAdmin->valuesToText( $type, $posted ), $summary, EDIT_NEW );
# Redirect to view the record if successfully updated
if ( $success ) {
$wgOut->disable();
wfResetOutputBuffers();
header( "Location: " . $t->getFullUrl() );
}
# Or stay in edit view and report error
else $wgOut->addHTML( "<div class='errorbox'>" . wfMsg( 'recordadmin-createerror', $type ) . "</div>\n" );
}
} else $wgOut->addHTML( "<div class='errorbox'>" . wfMsg( 'recordadmin-badtitle' ) . "</div>\n" );
$wgOut->addHTML( "<br /><br /><br /><br />\n" );
}
# Populate the search form with any posted values
$wgRecordAdmin->populateForm( $posted );
# Process Find submission (select and render records)
if ( count( $posted ) && $wgRequest->getText( 'wpFind' ) ) {
$wgOut->addWikiText( "== " . wfMsg( 'recordadmin-searchresult' ) . " ==\n" );
$records = $wgRecordAdmin->getRecords( $type, $posted, '=', $wpTitle, $invert );
$wgOut->addHTML( $wgRecordAdmin->renderRecords( $records ) );
}
# Render the form
//.........这里部分代码省略.........
开发者ID:realsoc,项目名称:mediawiki-extensions,代码行数:101,代码来源:SpecialRecordAdmin.php
示例16: onUserGetRights
/**
* Permissions: For non-sysops lock all but a few specials down - return a 404 if not allowed to read
*/
function onUserGetRights($user, &$rights)
{
global $wgTitle, $wgOut, $wgContLang;
$specials = $wgContLang->getSpecialPageAliases();
$title = explode('/', $wgTitle->getText());
$title = $title[0];
if (is_object($wgTitle) && $wgTitle->getNamespace() == NS_SPECIAL && !self::sysop() && $title != $specials['Userlogin'][0] && $title != $specials['Userlogout'][0] && $title != $specials['ChangePassword'][0] && $title != $specials['PasswordReset'][0] && $title != $specials['Confirmemail'][0]) {
$wgOut->disable();
wfResetOutputBuffers();
$code = 404;
include dirname(__FILE__) . "/error.php";
die;
}
return true;
}
开发者ID:saper,项目名称:organic-extensions,代码行数:18,代码来源:UserProfiles.class.php
示例17: prepareCreatingDownloadableFile
/**
* Do preparations for getting outputted data as a downloadable file
* rather than written to the current page
*/
function prepareCreatingDownloadableFile()
{
global $wgOut;
// Disable MediaWikis theming
$wgOut->disable();
// Enables downloading as a stream, which is important for large dumps
wfResetOutputBuffers();
// Send headers telling that this is a special content type
// and potentially is to be downloaded as a file
$this->sendHeadersForOutputType($this->requestdata->outputtype);
}
开发者ID:rdfio,项目名称:RDFIO,
|
请发表评论