Ejemplo n.º 1
0
 /**
  * Wrap a block of text.
  * Allows you to set the width, and indenting on a block of text.
  *
  * ### Options
  *
  * - `width` The width to wrap to. Defaults to 72
  * - `wordWrap` Only wrap on words breaks (spaces) Defaults to true.
  * - `indent` Indent the text with the string provided. Defaults to null.
  *
  * @param string $text Text the text to format.
  * @param string|integer|array $options Array of options to use, or an integer to wrap the text to.
  * @return string Wrapped / indented text
  * @see String::wrap()
  * @link http://book.cakephp.org/2.0/en/console-and-shells.html#Shell::wrapText
  */
 public function wrapText($text, $options = array())
 {
     return String::wrap($text, $options);
 }
Ejemplo n.º 2
0
    /**
     * test wrap() indenting
     *
     * @return void
     */
    public function testWrapIndent()
    {
        $text = 'This is the song that never ends. This is the song that never ends. This is the song that never ends.';
        $result = String::wrap($text, array('width' => 33, 'indent' => "\t", 'indentAt' => 1));
        $expected = <<<TEXT
This is the song that never ends.
\tThis is the song that never ends.
\tThis is the song that never ends.
TEXT;
        $this->assertTextEquals($expected, $result);
    }
Ejemplo n.º 3
0
 /**
  * Looks for a skeleton template of a Cake application,
  * and if not found asks the user for a path. When there is a path
  * this method will make a deep copy of the skeleton to the project directory.
  *
  * @param string $path Project path
  * @param string $skel Path to copy from
  * @param string $skip array of directories to skip when copying
  * @return mixed
  */
 public function bake($path, $skel = null, $skip = array('empty'))
 {
     if (!$skel && !empty($this->params['skel'])) {
         $skel = $this->params['skel'];
     }
     while (!$skel) {
         $skel = $this->in(__d('cake_console', "What is the path to the directory layout you wish to copy?"), null, CAKE . 'Console' . DS . 'Templates' . DS . 'skel');
         if (!$skel) {
             $this->err(__d('cake_console', 'The directory path you supplied was empty. Please try again.'));
         } else {
             while (is_dir($skel) === false) {
                 $skel = $this->in(__d('cake_console', 'Directory path does not exist please choose another:'), null, CAKE . 'Console' . DS . 'Templates' . DS . 'skel');
             }
         }
     }
     $app = basename($path);
     $this->out(__d('cake_console', '<info>Skel Directory</info>: ') . $skel);
     $this->out(__d('cake_console', '<info>Will be copied to</info>: ') . $path);
     $this->hr();
     $looksGood = $this->in(__d('cake_console', 'Look okay?'), array('y', 'n', 'q'), 'y');
     switch (strtolower($looksGood)) {
         case 'y':
             $Folder = new Folder($skel);
             if (!empty($this->params['empty'])) {
                 $skip = array();
             }
             if ($Folder->copy(array('to' => $path, 'skip' => $skip))) {
                 $this->hr();
                 $this->out(__d('cake_console', '<success>Created:</success> %s in %s', $app, $path));
                 $this->hr();
             } else {
                 $this->err(__d('cake_console', "<error>Could not create</error> '%s' properly.", $app));
                 return false;
             }
             foreach ($Folder->messages() as $message) {
                 $this->out(String::wrap(' * ' . $message), 1, Shell::VERBOSE);
             }
             return true;
         case 'n':
             unset($this->args[0]);
             $this->execute();
             return false;
         case 'q':
             $this->out(__d('cake_console', '<error>Bake Aborted.</error>'));
             return false;
     }
 }
Ejemplo n.º 4
0
 /**
  * Get the help as formatted text suitable for output on the command line.
  *
  * @param integer $width
  *        	The width of the help output.
  * @return string
  */
 public function text($width = 72)
 {
     $parser = $this->_parser;
     $out = array();
     $description = $parser->description();
     if (!empty($description)) {
         $out[] = String::wrap($description, $width);
         $out[] = '';
     }
     $out[] = __d('cake_console', '<info>Usage:</info>');
     $out[] = $this->_generateUsage();
     $out[] = '';
     $subcommands = $parser->subcommands();
     if (!empty($subcommands)) {
         $out[] = __d('cake_console', '<info>Subcommands:</info>');
         $out[] = '';
         $max = $this->_getMaxLength($subcommands) + 2;
         foreach ($subcommands as $command) {
             $out[] = String::wrap($command->help($max), array('width' => $width, 'indent' => str_repeat(' ', $max), 'indentAt' => 1));
         }
         $out[] = '';
         $out[] = __d('cake_console', 'To see help on a subcommand use <info>`cake %s [subcommand] --help`</info>', $parser->command());
         $out[] = '';
     }
     $options = $parser->options();
     if (!empty($options)) {
         $max = $this->_getMaxLength($options) + 8;
         $out[] = __d('cake_console', '<info>Options:</info>');
         $out[] = '';
         foreach ($options as $option) {
             $out[] = String::wrap($option->help($max), array('width' => $width, 'indent' => str_repeat(' ', $max), 'indentAt' => 1));
         }
         $out[] = '';
     }
     $arguments = $parser->arguments();
     if (!empty($arguments)) {
         $max = $this->_getMaxLength($arguments) + 2;
         $out[] = __d('cake_console', '<info>Arguments:</info>');
         $out[] = '';
         foreach ($arguments as $argument) {
             $out[] = String::wrap($argument->help($max), array('width' => $width, 'indent' => str_repeat(' ', $max), 'indentAt' => 1));
         }
         $out[] = '';
     }
     $epilog = $parser->epilog();
     if (!empty($epilog)) {
         $out[] = String::wrap($epilog, $width);
         $out[] = '';
     }
     return implode("\n", $out);
 }
Ejemplo n.º 5
0
	<h4>
		<?php 
    echo $HTML->link($Comment->BlogPost->detailPageUri() . '#Comments', $Comment->BlogPost->get('headline'));
    ?>
	</h4>
	<?php 
}
?>
	<h3>
		<?php 
echo $this->element('gravatar', array('email' => $Comment->get('email'), 'size' => $avatarSize));
echo date(__('d.m.Y H:i'), $Comment->created) . '<br />';
if ($Comment->url) {
    echo $HTML->link('http://' . $Comment->url, $Comment->get('name'), array('rel' => 'external'));
} else {
    echo $Comment->get('name');
}
?>
	</h3><br />
	<?php 
$text = $Comment->text;
$text = Sanitizer::html($text);
$text = nl2br($text);
$text = Text::autoURLs($text);
$text = String::wrap($text, 55, true);
if (isset($truncated)) {
    $text = String::truncate($text, $truncated !== true ? $truncated : 120, '…');
}
echo Sanitizer::html($text);
?>
</li>
Ejemplo n.º 6
0
 /**
  * Looks for a skeleton template of a Cake application,
  * and if not found asks the user for a path. When there is a path
  * this method will make a deep copy of the skeleton to the project directory.
  *
  * @param string $path Project path
  * @param string $skel Path to copy from
  * @param string $skip array of directories to skip when copying
  * @return boolean
  */
 protected function _bake($path, $skel, $skip = array())
 {
     $Folder = new Folder($skel);
     $app = basename($path);
     if (!$Folder->copy(array('to' => $path, 'skip' => $skip))) {
         $this->err(__d('cake_console', "<error>Could not create</error> '%s' properly.", $app));
         return false;
     }
     foreach ($Folder->messages() as $message) {
         $this->out(String::wrap(' * ' . $message), 1, Shell::VERBOSE);
     }
     return true;
 }
Ejemplo n.º 7
0
 /**
  * Looks for a skeleton template of a Cake application,
  * and if not found asks the user for a path. When there is a path
  * this method will make a deep copy of the skeleton to the project directory.
  * A default home page will be added, and the tmp file storage will be chmod'ed to 0777.
  *
  * @param string $path Project path
  * @param string $skel Path to copy from
  * @param string $skip array of directories to skip when copying
  * @access private
  */
 function bake($path, $skel = null, $skip = array('empty'))
 {
     if (!$skel) {
         $skel = $this->params['skel'];
     }
     while (!$skel) {
         $skel = $this->in(__("What is the path to the directory layout you wish to copy?\nExample: %s", APP, null, ROOT . DS . 'myapp' . DS));
         if ($skel == '') {
             $this->err(__('The directory path you supplied was empty. Please try again.'));
         } else {
             while (is_dir($skel) === false) {
                 $skel = $this->in(__('Directory path does not exist please choose another:'));
             }
         }
     }
     $app = basename($path);
     $this->out(__('<info>Skel Directory</info>: ') . $skel);
     $this->out(__('<info>Will be copied to</info>: ') . $path);
     $this->hr();
     $looksGood = $this->in(__('Look okay?'), array('y', 'n', 'q'), 'y');
     if (strtolower($looksGood) == 'y') {
         $Folder = new Folder($skel);
         if (!empty($this->params['empty'])) {
             $skip = array();
         }
         if ($Folder->copy(array('to' => $path, 'skip' => $skip))) {
             $this->hr();
             $this->out(__('<success>Created:</success> %s in %s', $app, $path));
             $this->hr();
         } else {
             $this->err(__("<error>Could not create</error> '%s' properly.", $app));
             return false;
         }
         foreach ($Folder->messages() as $message) {
             $this->out(String::wrap(' * ' . $message), 1, Shell::VERBOSE);
         }
         return true;
     } elseif (strtolower($looksGood) == 'q') {
         $this->out(__('Bake Aborted.'));
     } else {
         $this->execute(false);
         return false;
     }
 }
Ejemplo n.º 8
0
    /**
     * test wrap() indenting
     *
     * @return void
     */
    function testWrapIndent()
    {
        $text = 'This is the song that never ends. This is the song that never ends. This is the song that never ends.';
        $result = String::wrap($text, array('width' => 33, 'indent' => "\t", 'indentAt' => 1));
        $expected = <<<TEXT
This is the song that never ends.
\tThis is the song that never ends.
\tThis is the song that never ends.
TEXT;
    }