<?php namespace phpList\plugin\Common; /** * CommonPlugin for phplist. * * This file is a part of CommonPlugin. * * @category phplist * * @author Duncan Cameron * @copyright 2011-2018 Duncan Cameron * @license http://www.gnu.org/licenses/gpl.html GNU General Public License, Version 3 */ /** * This class overrides some methods of the WebblerListing class. */ class WebblerListing extends \WebblerListing { /* * Constructor. * Work-around for Trevelyn theme to stop links being displayed as buttons */ public function __construct($title = '', $help = '') { global $pagefooter; parent::__construct($title, $help); $pagefooter[basename(__FILE__)] = <<<'END' <script> $(document).ready(function(){ $('a.nobutton').removeClass('btn btn-xs btn-primary'); }); </script> END; } public function setTitle($title) { $this->title = $title; } /** * Extend parent method to convert url to html entities. */ public function addElement($element, $url = '', $colsize = '') { parent::addElement($element, htmlspecialchars($url), $colsize); parent::setClass($element, 'row1'); } /** * Extend parent method. * Construct the link here in order to be able to specify attributes and fallback to 'nobutton' class. */ public function addColumn($name, $column_name, $value, $url = '', $align = '', array $attributes = []) { $columnValue = $url ? $this->createLink($url, $value, $value, $attributes) : htmlspecialchars($value, ENT_QUOTES); parent::addColumn($name, $column_name, $columnValue, '', $align); } /** * Extend parent method to convert value and url to html entities. */ public function addRow($name, $row_name, $value, $url = '', $align = '', $class = '') { parent::addRow($name, $row_name, nl2br(htmlspecialchars($value, ENT_QUOTES)), htmlspecialchars($url), $align, $class); } /** * Convenience method to shorten an email address when used as the value. */ public function addColumnEmail($name, $column_name, $value, $url = '', $align = '') { $maxLength = 29; if (strlen($value) > $maxLength) { $middle = '…'; $outerLength = (int) (($maxLength - strlen($middle)) / 2); $shortValue = substr($value, 0, $outerLength) . $middle . substr($value, -$outerLength); } else { $shortValue = $value; } $columnValue = $url ? $this->createLink($url, $shortValue, $value) : htmlspecialchars($shortValue, ENT_QUOTES); parent::addColumn($name, $column_name, $columnValue, '', $align); } /** * Convenience method when the value is already valid html. */ public function addColumnHtml($name, $column_name, $value, $url = '', $align = '') { parent::addColumn($name, $column_name, $value, htmlspecialchars($url), $align); } /** * Convenience method when the value is already valid html. */ public function addRowHtml($name, $row_name, $value, $url = '', $align = '', $class = '') { parent::addRow($name, $row_name, $value, htmlspecialchars($url), $align, $class = ''); } /** * Create a link with attributes adding nobutton class and title. * * @param string $url value for the href attribute * @param string $value the link value treated as text * @param string $title value for the title attribute * @param array $attributes attributes for the link * * @return an html a element */ private function createLink($url, $value, $title, array $attributes = []) { $additionalAttributes = ['class' => 'nobutton', 'title' => $title]; return new PageLink($url, htmlspecialchars($value, ENT_QUOTES), $attributes + $additionalAttributes); } }
Name | Type | Size | Permission | Actions |
---|---|---|---|---|
DAO | Folder | 0755 |
|
|
BaseController.php | File | 936 B | 0644 |
|
Config.php | File | 1003 B | 0644 |
|
Container.php | File | 509 B | 0644 |
|
Context.php | File | 1.18 KB | 0644 |
|
Controller.php | File | 2.43 KB | 0644 |
|
ControllerFactory.php | File | 479 B | 0644 |
|
ControllerFactoryBase.php | File | 1.4 KB | 0644 |
|
DAO.php | File | 692 B | 0644 |
|
DB.php | File | 2.47 KB | 0644 |
|
DBResultIterator.php | File | 931 B | 0644 |
|
Exception.php | File | 1.03 KB | 0644 |
|
ExportCSV.php | File | 962 B | 0644 |
|
ExportCSVAsync.php | File | 4.3 KB | 0644 |
|
ExportXML.php | File | 1.4 KB | 0644 |
|
FPDF.php | File | 1.03 KB | 0644 |
|
FileNotFoundException.php | File | 631 B | 0644 |
|
FileServer.php | File | 2.21 KB | 0644 |
|
FrontendTranslator.php | File | 1.46 KB | 0644 |
|
HelpManager.php | File | 2.61 KB | 0644 |
|
HtmlToPdf.php | File | 683 B | 0644 |
|
I18N.php | File | 5.05 KB | 0644 |
|
IChartable.php | File | 447 B | 0644 |
|
IExportable.php | File | 569 B | 0644 |
|
IMailClient.php | File | 1.33 KB | 0644 |
|
IPopulator.php | File | 517 B | 0644 |
|
ImageTag.php | File | 894 B | 0644 |
|
Listing.php | File | 1.23 KB | 0644 |
|
Logger.php | File | 2.88 KB | 0644 |
|
MailSender.php | File | 7.12 KB | 0644 |
|
Main.php | File | 1.21 KB | 0644 |
|
Model.php | File | 2.17 KB | 0644 |
|
PageLink.php | File | 1.33 KB | 0644 |
|
PageURL.php | File | 1.87 KB | 0644 |
|
Pager.php | File | 7.46 KB | 0644 |
|
Paginator.php | File | 1.53 KB | 0644 |
|
Populator.php | File | 1.34 KB | 0644 |
|
StringCallback.php | File | 559 B | 0644 |
|
StringStream.php | File | 3.41 KB | 0644 |
|
Tabs.php | File | 707 B | 0644 |
|
Toolbar.php | File | 2.62 KB | 0644 |
|
UniqueLogger.php | File | 1.14 KB | 0644 |
|
View.php | File | 669 B | 0644 |
|
WebblerListing.php | File | 3.85 KB | 0644 |
|
Widget.php | File | 1.12 KB | 0644 |
|
about.tpl.php | File | 553 B | 0644 |
|
depends.php | File | 1.45 KB | 0644 |
|
helpmanager.tpl.php | File | 676 B | 0644 |
|
pager.tpl.php | File | 2.14 KB | 0644 |
|
toolbar.tpl.php | File | 1.04 KB | 0644 |
|
widget_attributeform.tpl.php | File | 3.42 KB | 0644 |
|