About Features Downloads Getting Started Documentation Events Support GitHub

Love VuFind®? Consider becoming a financial supporter. Your support helps build a better VuFind®!

Site Tools


Warning: This page has not been updated in over over a year and may be outdated or deprecated.
development:plugins:view_helpers

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
development:plugins:view_helpers [2020/03/13 19:48] demiankatzdevelopment:plugins:view_helpers [2020/03/19 21:53] (current) – [Building a View Helper] crhallberg
Line 12: Line 12:
   * Configure the new helper in the 'helpers' section of the theme.config.php file for your current theme.  This is a standard [[https://docs.laminas.dev/laminas-servicemanager/quick-start/|Laminas service manager]] configuration with invokables, factories, etc.   * Configure the new helper in the 'helpers' section of the theme.config.php file for your current theme.  This is a standard [[https://docs.laminas.dev/laminas-servicemanager/quick-start/|Laminas service manager]] configuration with invokables, factories, etc.
  
 +===== Commonly Used Helpers =====
 +
 +==== Slots ====
 +
 +Slots are designed to be the building blocks on interfaces. Their main feature is that they are not overridden once set, meaning you can set some customizations and be sure that they will be displayed in the interface. Slots can hold any kind of data and can also capture buffers to be displayed later. Here are a few examples.
 +
 +<code php>
 +$this->slot('demo')->set('one');
 +$this->slot('demo', 'two'); // set shortcut, not saved since 'one' is already set
 +    
 +echo $this->slot('demo')->get(); // 'one'
 +    
 +echo $this->slot('unset')->get('two'); // you can pass a default that returns if slot is empty
 +</code>
 +
 +<code php>
 +// --- custom file ---
 +<?php $this->slot('demo')->start(); // begin a buffer capture ?>
 +    <h2>Heading</h2>
 +    <p>Customization</p>
 +<?php $this->slot('demo')->end(); ?>
 +
 +<?php include $this->parentTemplate('footer.phtml'); ?> // pull a template from a parent theme
 +
 +// --- footer.phtml ---
 +<?php $this->slot('demo')->start(); ?>
 +    <p>Ignored default
 +<?php echo this->slot('demo')->end(); ?> // all slot actions return the slot's contents for easy display
 +</code>
 +
 +^ Method      ^ Description (all return slot contents)      ^
 +| set($value) | Save a value, if it's the first value written |
 +| get([$default]) | Get the contents of a slot or a default if the slot is empty |
 +| append($value) | Add a string to the end of a slot and after all previous appends |
 +| prepend($value) | Add a string to the start of a slot and before all previous appends |
 +| clear() | Empty a slot and return the previous contents |
 +| start()   | Start buffer capture to be saved in slot |
 +| end([$method]) | Ends a buffer capture. Method can be 'SET' (default), 'APPEND', or 'PREPEND' |
 +
 +==== appendScript/appendStylesheet ====
 +
 +When you want to add robust functionality to a page without loading lots of JS and CSS on every other page, headScript and headLink are the best way to go about it.
 +
 +<code php>
 +$this->headLink()->appendStylesheet('vendor/bootstrap-rtl.min.css');
 +$this->headScript()->appendFile("cart.js");
 +</code>
 ---- struct data ---- ---- struct data ----
 +properties.Page Owner : 
 ---- ----
  
development/plugins/view_helpers.txt · Last modified: 2020/03/19 21:53 by crhallberg