Differential D9294 Diff 22062 src/applications/system/controller/PhabricatorSystemSelectEncodingController.php
Changeset View
Changeset View
Standalone View
Standalone View
src/applications/system/controller/PhabricatorSystemSelectEncodingController.php
- This file was added.
<?php | |||||
final class PhabricatorSystemSelectEncodingController | |||||
extends PhabricatorController { | |||||
public function shouldRequireLogin() { | |||||
return false; | |||||
} | |||||
public function processRequest() { | |||||
$request = $this->getRequest(); | |||||
if (!function_exists('mb_list_encodings')) { | |||||
return $this->newDialog() | |||||
->setTitle(pht('No Encoding Support')) | |||||
->appendParagraph( | |||||
pht( | |||||
'This system does not have the "mbstring" extension installed, '. | |||||
'so character encodings are not supported. Install "mbstring" to '. | |||||
'enable support.')) | |||||
->addCancelButton('/'); | |||||
} | |||||
if ($request->isFormPost()) { | |||||
$result = array('encoding' => $request->getStr('encoding')); | |||||
return id(new AphrontAjaxResponse())->setContent($result); | |||||
} | |||||
$encodings = mb_list_encodings(); | |||||
$encodings = array_fuse($encodings); | |||||
asort($encodings); | |||||
unset($encodings['pass']); | |||||
unset($encodings['auto']); | |||||
$encodings = array( | |||||
'' => pht('(Use Default)'), | |||||
) + $encodings; | |||||
$form = id(new AphrontFormView()) | |||||
->setUser($this->getRequest()->getUser()) | |||||
->appendRemarkupInstructions(pht('Choose a text encoding to use.')) | |||||
->appendChild( | |||||
id(new AphrontFormSelectControl()) | |||||
->setLabel(pht('Encoding')) | |||||
->setName('encoding') | |||||
->setValue($request->getStr('encoding')) | |||||
->setOptions($encodings)); | |||||
return $this->newDialog() | |||||
->setTitle(pht('Select Character Encoding')) | |||||
->appendChild($form->buildLayoutView()) | |||||
->addSubmitButton(pht('Choose Encoding')) | |||||
->addCancelButton('/'); | |||||
} | |||||
} |