Helper::lineLimit PHP Method

lineLimit() public static method

public static lineLimit ( $string, integer $line_count, integer $protect, string $delimiter = " ", string $joiner = ', ' ) : string
$string
$line_count integer
$protect integer
$delimiter string
$joiner string
return string $result
    public static function lineLimit($string, $line_count, $protect = 0, $delimiter = "\n", $joiner = ', ')
    {
        if ($protect >= $line_count) {
            throw new InvalidArgumentException("protect must be less than the line_count");
        }
        $bits = explode($delimiter, $string);
        if (count($bits) <= $line_count) {
            return implode($delimiter, $bits);
        }
        $protected = array();
        for ($i = 0; $i < $protect; $i++) {
            array_unshift($protected, array_pop($bits));
        }
        while (count($bits) + $protect > $line_count) {
            $last = array_pop($bits);
            $bits[count($bits) - 1] .= $joiner . $last;
        }
        return implode($delimiter, array_merge($bits, $protected));
    }

Usage Example

Example #1
0
 /**
  * Element based name and value pair.
  *
  * @param \Event $event
  * @return array
  */
 protected function getStructuredDataForPrintPDF($event)
 {
     $data = array();
     $elements_array = array('Clinical', 'Clerical', 'ConsentSignature', 'Demographics');
     foreach ($elements_array as $el_name) {
         $element = $this->{"get{$el_name}ElementForEvent"}($event);
         if (method_exists($element, 'getStructuredDataForPrint')) {
             $data = array_merge($data, $element->getStructuredDataForPrint());
         }
     }
     $address = \Institution::model()->getCurrent()->getLetterAddress(array('include_name' => false, 'delimiter' => '\\n'));
     $data['hospitalAddress'] = \Helper::lineLimit($address, 2, 1, '\\n');
     $data['hospitalAddressMultiline'] = \Helper::lineLimit($address, 4, 1, '\\n');
     $data['hospitalNumber'] = $event->episode->patient->hos_num;
     return $data;
 }
All Usage Examples Of Helper::lineLimit