Subversion Repositories web.creative

Rev

Blame | Last modification | View Log | Download

<?php namespace ProcessWire;

/**
 * ProcessWire Newlines to List Textformatter
 *
 * Converts each new line into a list item, then surrounds them all with a <ul> tag.
 * 
 * ProcessWire 3.x, Copyright 2016 by Ryan Cramer
 * https://processwire.com
 *
 *
 */

class TextformatterNewlineUL extends Textformatter {

  public static function getModuleInfo() {
    return array(
      'title' => 'Newlines to Unordered List', 
      'version' => 100, 
      'summary' => "Converts newlines to <li> list items and surrounds in an <ul> unordered list. ", 
    ); 
  }

  public function format(&$str) {
    $str = trim($str);
    if(!strlen($str)) return;
    $cnt = 0; 
    $str = preg_replace('/^(.+?)([\r\n]+|$)$/m', "\t<li>$1</li>", $str, -1, $cnt); 
    if($cnt) $str = "<ul>\n$str\n</ul>";
  }
}