mirror of
https://github.com/silverstripe/silverstripe-docsviewer
synced 2024-10-22 11:05:56 +02:00
Workaround search result matching.
This commit is contained in:
parent
95b982353b
commit
d68e523e72
@ -23,7 +23,7 @@ For more documentation on how to use the module please read /docs/Writing-Docume
|
|||||||
|
|
||||||
**Note** This module assumes you are using numeric values for your versions.
|
**Note** This module assumes you are using numeric values for your versions.
|
||||||
|
|
||||||
### Static Publisher
|
### HTML Publishing
|
||||||
|
|
||||||
If you wish to generate a truly static version of your documentation after it
|
If you wish to generate a truly static version of your documentation after it
|
||||||
has been rendered through the website, add the [Static Publisher](https://github.com/silverstripe-labs/silverstripe-staticpublisher)
|
has been rendered through the website, add the [Static Publisher](https://github.com/silverstripe-labs/silverstripe-staticpublisher)
|
||||||
|
@ -68,24 +68,30 @@ class DocumentationViewer extends Controller {
|
|||||||
private static $edit_links = array();
|
private static $edit_links = array();
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @return boolean
|
* @var boolean $separate_submenu
|
||||||
*/
|
*/
|
||||||
protected static $separate_submenu = true;
|
protected static $separate_submenu = true;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @return boolean
|
* @var bool $recursive_submenu
|
||||||
*/
|
*/
|
||||||
protected static $recursive_submenu = false;
|
protected static $recursive_submenu = false;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @param bool $separate_submenu
|
||||||
|
*/
|
||||||
public static function set_separate_submenu($separate_submenu = true) {
|
public static function set_separate_submenu($separate_submenu = true) {
|
||||||
self::$separate_submenu = $separate_submenu;
|
self::$separate_submenu = $separate_submenu;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @param bool $recursive_submenu
|
||||||
|
*/
|
||||||
public static function set_recursive_submenu($recursive_submenu = false) {
|
public static function set_recursive_submenu($recursive_submenu = false) {
|
||||||
self::$recursive_submenu = $recursive_submenu;
|
self::$recursive_submenu = $recursive_submenu;
|
||||||
}
|
}
|
||||||
|
|
||||||
function init() {
|
public function init() {
|
||||||
parent::init();
|
parent::init();
|
||||||
|
|
||||||
if(!$this->canView()) return Security::permissionFailure($this);
|
if(!$this->canView()) return Security::permissionFailure($this);
|
||||||
@ -129,10 +135,15 @@ class DocumentationViewer extends Controller {
|
|||||||
*
|
*
|
||||||
* @param $request
|
* @param $request
|
||||||
* @param $action
|
* @param $action
|
||||||
|
*
|
||||||
* @return SS_HTTPResponse
|
* @return SS_HTTPResponse
|
||||||
*/
|
*/
|
||||||
public function handleAction($request, $action) {
|
public function handleAction($request, $action) {
|
||||||
try {
|
try {
|
||||||
|
if(preg_match('/DocumentationSearchForm/', $request->getURL())) {
|
||||||
|
$action = 'results';
|
||||||
|
}
|
||||||
|
|
||||||
$response = parent::handleAction($request, $action);
|
$response = parent::handleAction($request, $action);
|
||||||
} catch(SS_HTTPResponse_Exception $e) {
|
} catch(SS_HTTPResponse_Exception $e) {
|
||||||
if(strpos($e->getMessage(), 'does not exist') !== FALSE) {
|
if(strpos($e->getMessage(), 'does not exist') !== FALSE) {
|
||||||
@ -758,7 +769,7 @@ class DocumentationViewer extends Controller {
|
|||||||
*
|
*
|
||||||
* @return Form
|
* @return Form
|
||||||
*/
|
*/
|
||||||
function LanguageForm() {
|
public function LanguageForm() {
|
||||||
$langs = $this->getLanguages();
|
$langs = $this->getLanguages();
|
||||||
|
|
||||||
$fields = new FieldList(
|
$fields = new FieldList(
|
||||||
@ -783,30 +794,30 @@ class DocumentationViewer extends Controller {
|
|||||||
* Process the language change
|
* Process the language change
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
function doLanguageForm($data, $form) {
|
public function doLanguageForm($data, $form) {
|
||||||
$this->Lang = (isset($data['LangCode'])) ? $data['LangCode'] : 'en';
|
$this->Lang = (isset($data['LangCode'])) ? $data['LangCode'] : 'en';
|
||||||
|
|
||||||
return $this->redirect($this->Link());
|
return $this->redirect($this->Link());
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @param String
|
* @param string
|
||||||
*/
|
*/
|
||||||
static function set_link_base($base) {
|
public static function set_link_base($base) {
|
||||||
self::$link_base = $base;
|
self::$link_base = $base;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @return String
|
* @return string
|
||||||
*/
|
*/
|
||||||
static function get_link_base() {
|
public static function get_link_base() {
|
||||||
return self::$link_base;
|
return self::$link_base;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @see {@link Form::FormObjectLink()}
|
* @see {@link Form::FormObjectLink()}
|
||||||
*/
|
*/
|
||||||
function FormObjectLink($name) {
|
public function FormObjectLink($name) {
|
||||||
return $name;
|
return $name;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -816,8 +827,11 @@ class DocumentationViewer extends Controller {
|
|||||||
*
|
*
|
||||||
* @return Form
|
* @return Form
|
||||||
*/
|
*/
|
||||||
function DocumentationSearchForm() {
|
public function DocumentationSearchForm() {
|
||||||
if(!DocumentationSearch::enabled()) return false;
|
if(!DocumentationSearch::enabled()) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
$q = ($q = $this->getSearchQuery()) ? $q->NoHTML() : "";
|
$q = ($q = $this->getSearchQuery()) ? $q->NoHTML() : "";
|
||||||
|
|
||||||
$entities = $this->getSearchedEntities();
|
$entities = $this->getSearchedEntities();
|
||||||
@ -876,7 +890,7 @@ class DocumentationViewer extends Controller {
|
|||||||
*
|
*
|
||||||
* @return array
|
* @return array
|
||||||
*/
|
*/
|
||||||
function getSearchedVersions() {
|
public function getSearchedVersions() {
|
||||||
$versions = array();
|
$versions = array();
|
||||||
|
|
||||||
if(!empty($_REQUEST['Versions'])) {
|
if(!empty($_REQUEST['Versions'])) {
|
||||||
@ -902,7 +916,7 @@ class DocumentationViewer extends Controller {
|
|||||||
*
|
*
|
||||||
* @return HTMLText|null
|
* @return HTMLText|null
|
||||||
*/
|
*/
|
||||||
function getSearchQuery() {
|
public function getSearchQuery() {
|
||||||
if(isset($_REQUEST['Search'])) {
|
if(isset($_REQUEST['Search'])) {
|
||||||
return DBField::create_field('HTMLText', $_REQUEST['Search']);
|
return DBField::create_field('HTMLText', $_REQUEST['Search']);
|
||||||
}
|
}
|
||||||
@ -911,7 +925,7 @@ class DocumentationViewer extends Controller {
|
|||||||
/**
|
/**
|
||||||
* Past straight to results, display and encode the query
|
* Past straight to results, display and encode the query
|
||||||
*/
|
*/
|
||||||
function results($data, $form = false) {
|
public function results($data, $form = false) {
|
||||||
$query = (isset($_REQUEST['Search'])) ? $_REQUEST['Search'] : false;
|
$query = (isset($_REQUEST['Search'])) ? $_REQUEST['Search'] : false;
|
||||||
|
|
||||||
$search = new DocumentationSearch();
|
$search = new DocumentationSearch();
|
||||||
@ -931,7 +945,7 @@ class DocumentationViewer extends Controller {
|
|||||||
*
|
*
|
||||||
* @return Form
|
* @return Form
|
||||||
*/
|
*/
|
||||||
function AdvancedSearchForm() {
|
public function AdvancedSearchForm() {
|
||||||
$entities = DocumentationService::get_registered_entities();
|
$entities = DocumentationService::get_registered_entities();
|
||||||
$versions = array();
|
$versions = array();
|
||||||
|
|
||||||
@ -995,7 +1009,7 @@ class DocumentationViewer extends Controller {
|
|||||||
*
|
*
|
||||||
* @return false|ArrayData
|
* @return false|ArrayData
|
||||||
*/
|
*/
|
||||||
function VersionWarning() {
|
public function VersionWarning() {
|
||||||
$version = $this->getVersion();
|
$version = $this->getVersion();
|
||||||
$entity = $this->getEntity();
|
$entity = $this->getEntity();
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user