Warning: This page has not been updated in over over a year and may be outdated or deprecated.
development:plugins:controllers
Differences
This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
development:plugins:controllers [2020/03/03 20:49] – [Example - How to add a new page to your theme] demiankatz | development:plugins:controllers [2021/08/03 14:04] (current) – demiankatz | ||
---|---|---|---|
Line 31: | Line 31: | ||
* Create a [[development: | * Create a [[development: | ||
- | * Create a new class in your module' | + | * Create a new class in your module' |
- | * In your module' | + | * If you used the code generator, you are now done. If you are setting things up manually, you will also need to add some configuration to activate your new class. |
< | < | ||
Line 38: | Line 38: | ||
' | ' | ||
' | ' | ||
- | ' | + | ' |
], | ], | ||
' | ' | ||
Line 51: | Line 51: | ||
Creating a new controller is much like overriding an existing one. | Creating a new controller is much like overriding an existing one. | ||
- | * As described above, create a custom module, build a new controller, and set up an invokables | + | * As described above, create a custom module, build a new controller, and set up a factory |
- | * Now you need to add routing rules so the framework knows how to find your controller and so you can conveniently link to it within templates. | + | * Now you need to add routing rules so the framework knows how to find your controller and so you can conveniently link to it within templates. |
==== Example - How to add a new page to your theme ==== | ==== Example - How to add a new page to your theme ==== | ||
- | :!: This example | + | :!: This example |
- | // Note: this example | + | // Note: this example |
- | * Create a new controller | + | * Create a new controller |
- | It extends AbstractBase and contains just a function that returns an array: | + | |
- | class TestController extends AbstractBase | + | php $VUFIND_HOME/public/ |
- | { | + | |
- | /** | + | |
- | * | + | |
- | * @return | + | |
- | */ | + | |
- | public function homeAction() | + | |
- | { | + | |
- | return $this-> | + | |
- | } | + | |
- | } | + | |
- | * In / | + | * This command will create a file called $VUFIND_HOME/module/MyModule/src/MyModule/ |
- | below the ' | + | |
- | add a new | + | |
- | ' | + | |
- | ' | + | |
- | and below | + | |
- | $staticRoutes = array( | + | |
- | add your template filename and path | + | |
- | ' | + | |
- | | + | <code php> |
- | * Put your contents in that file. For test you can try with | + | <?php |
- | '' | + | |
+ | namespace MyModule\Controller; | ||
+ | |||
+ | class TestController extends \VuFind\Controller\AbstractBase | ||
+ | { | ||
+ | /** | ||
+ | * | ||
+ | * @return \Laminas\View\Model\ViewModel | ||
+ | */ | ||
+ | public function homeAction() | ||
+ | { | ||
+ | return $this-> | ||
+ | } | ||
+ | } | ||
+ | </ | ||
+ | |||
+ | * Now set up a static route to this new controller action like this: | ||
+ | |||
+ | php $VUFIND_HOME/ | ||
+ | |||
+ | | ||
+ | * Put your contents in that file. For example, | ||
+ | |||
+ | <code php> | ||
+ | This is my test page -- it embeds behavior from the search page: | ||
+ | <? | ||
+ | </code> | ||
+ | |||
+ | * Now point your browser at <nowiki>http:// | ||
+ | |||
+ | ===== Related Video ===== | ||
+ | |||
+ | See the [[videos: | ||
---- struct data ---- | ---- struct data ---- | ||
+ | properties.Page Owner : | ||
---- | ---- | ||
development/plugins/controllers.1583268551.txt.gz · Last modified: 2020/03/03 20:49 by demiankatz