Overview

Packages

  • CONTENIDO
  • Core
    • Authentication
    • Backend
    • Cache
    • CEC
    • Chain
    • ContentType
    • Database
    • Debug
    • Exception
    • Frontend
      • Search
      • URI
      • Util
    • GenericDB
      • Model
    • GUI
      • HTML
    • I18N
    • LayoutHandler
    • Log
    • Security
    • Session
    • Util
    • Validation
    • Versioning
    • XML
  • Module
    • ContentRssCreator
    • ContentSitemapHtml
    • ContentSitemapXml
    • ContentUserForum
    • NavigationTop
    • ScriptCookieDirective
  • mpAutoloaderClassMap
  • None
  • Plugin
    • ContentAllocation
    • CronjobOverview
    • FormAssistant
    • FrontendLogic
    • FrontendUsers
    • Linkchecker
    • ModRewrite
    • Newsletter
    • Repository
      • FrontendNavigation
      • KeywordDensity
    • SearchSolr
    • SmartyWrapper
    • UrlShortener
    • UserForum
    • Workflow
  • PluginManager
  • Setup
    • Form
    • GUI
    • Helper
      • Environment
      • Filesystem
      • MySQL
      • PHP
    • UpgradeJob
  • Smarty
    • Cacher
    • Compiler
    • Config
    • Debug
    • PluginsBlock
    • PluginsFilter
    • PluginsFunction
    • PluginsInternal
    • PluginsModifier
    • PluginsModifierCompiler
    • PluginsShared
    • Security
    • Template
    • TemplateResources
  • Swift
    • ByteStream
    • CharacterStream
    • Encoder
    • Events
    • KeyCache
    • Mailer
    • Mime
    • Plugins
    • Transport

Classes

  • Swift_FailoverTransport
  • Swift_LoadBalancedTransport
  • Swift_MailTransport
  • Swift_Plugins_Loggers_ArrayLogger
  • Swift_Plugins_Loggers_EchoLogger
  • Swift_SendmailTransport
  • Swift_SmtpTransport
  • Swift_Transport_AbstractSmtpTransport
  • Swift_Transport_Esmtp_Auth_CramMd5Authenticator
  • Swift_Transport_Esmtp_Auth_LoginAuthenticator
  • Swift_Transport_Esmtp_Auth_PlainAuthenticator
  • Swift_Transport_Esmtp_AuthHandler
  • Swift_Transport_EsmtpTransport
  • Swift_Transport_FailoverTransport
  • Swift_Transport_LoadBalancedTransport
  • Swift_Transport_MailTransport
  • Swift_Transport_SendmailTransport
  • Swift_Transport_SimpleMailInvoker
  • Swift_Transport_StreamBuffer

Interfaces

  • Swift_Plugins_Logger
  • Swift_Plugins_Pop_Pop3Exception
  • Swift_Transport
  • Swift_Transport_Esmtp_Authenticator
  • Swift_Transport_EsmtpHandler
  • Swift_Transport_IoBuffer
  • Swift_Transport_MailInvoker
  • Swift_Transport_SmtpAgent
  • Swift_TransportException
  • Overview
  • Package
  • Function
  • Todo
  • Download
  1: <?php
  2: /**
  3:  * Smarty plugin to format text blocks
  4:  *
  5:  * @package    Smarty
  6:  * @subpackage PluginsBlock
  7:  */
  8: 
  9: /**
 10:  * Smarty {textformat}{/textformat} block plugin
 11:  * Type:     block function<br>
 12:  * Name:     textformat<br>
 13:  * Purpose:  format text a certain way with preset styles
 14:  *           or custom wrap/indent settings<br>
 15:  * Params:
 16:  * <pre>
 17:  * - style         - string (email)
 18:  * - indent        - integer (0)
 19:  * - wrap          - integer (80)
 20:  * - wrap_char     - string ("\n")
 21:  * - indent_char   - string (" ")
 22:  * - wrap_boundary - boolean (true)
 23:  * </pre>
 24:  *
 25:  * @link   http://www.smarty.net/manual/en/language.function.textformat.php {textformat}
 26:  *         (Smarty online manual)
 27:  *
 28:  * @param array                    $params   parameters
 29:  * @param string                   $content  contents of the block
 30:  * @param Smarty_Internal_Template $template template object
 31:  * @param boolean                  &$repeat  repeat flag
 32:  *
 33:  * @return string content re-formatted
 34:  * @author Monte Ohrt <monte at ohrt dot com>
 35:  */
 36: function smarty_block_textformat($params, $content, $template, &$repeat)
 37: {
 38:     if (is_null($content)) {
 39:         return;
 40:     }
 41: 
 42:     $style = null;
 43:     $indent = 0;
 44:     $indent_first = 0;
 45:     $indent_char = ' ';
 46:     $wrap = 80;
 47:     $wrap_char = "\n";
 48:     $wrap_cut = false;
 49:     $assign = null;
 50: 
 51:     foreach ($params as $_key => $_val) {
 52:         switch ($_key) {
 53:             case 'style':
 54:             case 'indent_char':
 55:             case 'wrap_char':
 56:             case 'assign':
 57:                 $$_key = (string) $_val;
 58:                 break;
 59: 
 60:             case 'indent':
 61:             case 'indent_first':
 62:             case 'wrap':
 63:                 $$_key = (int) $_val;
 64:                 break;
 65: 
 66:             case 'wrap_cut':
 67:                 $$_key = (bool) $_val;
 68:                 break;
 69: 
 70:             default:
 71:                 trigger_error("textformat: unknown attribute '$_key'");
 72:         }
 73:     }
 74: 
 75:     if ($style == 'email') {
 76:         $wrap = 72;
 77:     }
 78:     // split into paragraphs
 79:     $_paragraphs = preg_split('![\r\n]{2}!', $content);
 80: 
 81:     foreach ($_paragraphs as &$_paragraph) {
 82:         if (!$_paragraph) {
 83:             continue;
 84:         }
 85:         // convert mult. spaces & special chars to single space
 86:         $_paragraph = preg_replace(array('!\s+!' . Smarty::$_UTF8_MODIFIER, '!(^\s+)|(\s+$)!' . Smarty::$_UTF8_MODIFIER), array(' ', ''), $_paragraph);
 87:         // indent first line
 88:         if ($indent_first > 0) {
 89:             $_paragraph = str_repeat($indent_char, $indent_first) . $_paragraph;
 90:         }
 91:         // wordwrap sentences
 92:         if (Smarty::$_MBSTRING) {
 93:             require_once(SMARTY_PLUGINS_DIR . 'shared.mb_wordwrap.php');
 94:             $_paragraph = smarty_mb_wordwrap($_paragraph, $wrap - $indent, $wrap_char, $wrap_cut);
 95:         } else {
 96:             $_paragraph = wordwrap($_paragraph, $wrap - $indent, $wrap_char, $wrap_cut);
 97:         }
 98:         // indent lines
 99:         if ($indent > 0) {
100:             $_paragraph = preg_replace('!^!m', str_repeat($indent_char, $indent), $_paragraph);
101:         }
102:     }
103:     $_output = implode($wrap_char . $wrap_char, $_paragraphs);
104: 
105:     if ($assign) {
106:         $template->assign($assign, $_output);
107:     } else {
108:         return $_output;
109:     }
110: }
111: 
CMS CONTENIDO 4.9.7 API documentation generated by ApiGen