ajout de la partie slam dans le dossier web
This commit is contained in:
		
							
								
								
									
										66
									
								
								ap23/web/doku/inc/Action/Sitemap.php
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										66
									
								
								ap23/web/doku/inc/Action/Sitemap.php
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,66 @@ | ||||
| <?php | ||||
|  | ||||
| namespace dokuwiki\Action; | ||||
|  | ||||
| use dokuwiki\Action\Exception\FatalException; | ||||
| use dokuwiki\Sitemap\Mapper; | ||||
|  | ||||
| /** | ||||
|  * Class Sitemap | ||||
|  * | ||||
|  * Generate an XML sitemap for search engines. Do not confuse with Index | ||||
|  * | ||||
|  * @package dokuwiki\Action | ||||
|  */ | ||||
| class Sitemap extends AbstractAction { | ||||
|  | ||||
|     /** @inheritdoc */ | ||||
|     public function minimumPermission() { | ||||
|         return AUTH_NONE; | ||||
|     } | ||||
|  | ||||
|     /** | ||||
|      * Handle sitemap delivery | ||||
|      * | ||||
|      * @author Michael Hamann <michael@content-space.de> | ||||
|      * @throws FatalException | ||||
|      * @inheritdoc | ||||
|      */ | ||||
|     public function preProcess() { | ||||
|         global $conf; | ||||
|  | ||||
|         if($conf['sitemap'] < 1 || !is_numeric($conf['sitemap'])) { | ||||
|             throw new FatalException('Sitemap generation is disabled', 404); | ||||
|         } | ||||
|  | ||||
|         $sitemap = Mapper::getFilePath(); | ||||
|         if(Mapper::sitemapIsCompressed()) { | ||||
|             $mime = 'application/x-gzip'; | ||||
|         } else { | ||||
|             $mime = 'application/xml; charset=utf-8'; | ||||
|         } | ||||
|  | ||||
|         // Check if sitemap file exists, otherwise create it | ||||
|         if(!is_readable($sitemap)) { | ||||
|             Mapper::generate(); | ||||
|         } | ||||
|  | ||||
|         if(is_readable($sitemap)) { | ||||
|             // Send headers | ||||
|             header('Content-Type: ' . $mime); | ||||
|             header('Content-Disposition: attachment; filename=' . \dokuwiki\Utf8\PhpString::basename($sitemap)); | ||||
|  | ||||
|             http_conditionalRequest(filemtime($sitemap)); | ||||
|  | ||||
|             // Send file | ||||
|             //use x-sendfile header to pass the delivery to compatible webservers | ||||
|             http_sendfile($sitemap); | ||||
|  | ||||
|             readfile($sitemap); | ||||
|             exit; | ||||
|         } | ||||
|  | ||||
|         throw new FatalException('Could not read the sitemap file - bad permissions?'); | ||||
|     } | ||||
|  | ||||
| } | ||||
		Reference in New Issue
	
	Block a user