Source code for /home/gipetto1/top-frog.com/public_html/script_src/files/lipsum.php

  1.  <?php
  2.  /*
  3.  Plugin Name: Lipsum
  4.  Plugin URI: http://top-frog.com/
  5.  Description: Tired of copy/pasting lipsum text? Me too. There is a 10 paragraph limit for practical reasons. Effective on the creation and editing of comments, posts, pages. Simply enter <em>{lipsum}</em> to get 3 paragraphs of text or <em>{lipsum:2}</em> (up to 10) to get a specific number of paragraphs. New in version 2 you can also get pre built HTML elements: <em>ol</em>, <em>ul</em>, <em>dl</em>, <em>table</em> and <em>blockquote</em>. For example: <em>{lipsum:dl}</em> inserts a definition list. Also available is <em>all</em> for a combination of elements and <em>pages</em> for multiple pages of mixed elements.
  6.  Author: Shawn Parker
  7.  Version: 2
  8.  Author URI: http://top-frog.com/
  9.  */
  10.  
  11.  // Code
  12.  
  13.   /**
  14.   * Stupid function for entering lipsum text on comment, post and page save
  15.   * simply create a post body with {lipsum} in it and it'll be replaced by
  16.   * a paragraph of lipsum text.
  17.   * {lipsum:3} will replace it with 3 paragaphs of lipsum text
  18.   *
  19.   * Options:
  20.   * - integer: number of lipsum paragraphs to output (up to 10)
  21.   * - ul: unordered list
  22.   * - ol: ordered list
  23.   * - blockquote: blockquote with nested paragraph
  24.   * - table: semantic table sample
  25.   * - dl: definition list
  26.   * - all: everything in one post, with a read-more break
  27.   * - pages: all on the first page with 3 more pages of text
  28.   *
  29.   * @param int $post_id - the id of the post or comment that we're working on
  30.   */
  31.   function sp_lipsum_replace($post_id) {
  32.   global $wpdb;
  33.   $string = false;
  34.   $library = new sp_lipsumLibrary;
  35.   $queries = array('post' => "UPDATE {$wpdb->posts} SET post_content='%s' WHERE ID='%d'",
  36.   'comment' => "UPDATE {$wpdb->comments} SET comment_content='%s' WHERE comment_ID='%d'"
  37.   );
  38.  
  39.   if(isset($_POST['content']) && strpos($_POST['content'],'{lipsum') !== false) {
  40.   $string = $_POST['content'];
  41.   if(isset($_POST['action']) && $_POST['action'] == 'editedcomment') { $type = 'comment'; }
  42.   else { $type = 'post'; }
  43.   }
  44.   elseif(isset($_POST['comment']) && strpos($_POST['comment'],'{lipsum') !== false) {
  45.   $string = $_POST['comment'];
  46.   $type = 'comment';
  47.   }
  48.  
  49.   if($string != false) {
  50.   if(preg_match_all('/({lipsum:[a-z0-9]+?}|{lipsum})/i',$string,$matches)) {
  51.   foreach($matches[0] as $match){
  52.   if(strpos($match,':')) {
  53.   $parts = explode(':',str_replace(array('{','}'),'',$match));
  54.   $lipsum_type = $parts[1];
  55.   }
  56.   else {
  57.   $lipsum_type = 3;
  58.   }
  59.   $string = str_replace($match,$library->get_lipsum($lipsum_type),$string);
  60.   }
  61.   }
  62.   $wpdb->query(sprintf($queries[$type],$wpdb->escape(trim($string)),$post_id));
  63.   }
  64.   }
  65.   add_action('save_post','sp_lipsum_replace');
  66.   add_action('comment_post','sp_lipsum_replace');
  67.   add_action('edit_comment','sp_lipsum_replace');
  68.  
  69.  // Library
  70.  
  71.   class sp_lipsumLibrary {
  72.  
  73.   /**
  74.   * Get a block of lipsum
  75.   *
  76.   * @param mixed $type
  77.   * @return string
  78.   */
  79.   function get_lipsum($type=3) {
  80.   $text = false;
  81.  
  82.   if(method_exists($this,'lipsum_'.$type)) {
  83.   $text = $this->{'lipsum_'.$type}();
  84.   }
  85.   elseif(isset($this->{'lipsum_'.$type})) {
  86.   $text = $this->{'lipsum_'.$type};
  87.   }
  88.   elseif(is_numeric($type)) {
  89.   $type = intval($type);
  90.   if(!$this->lipsum_parts) { $this->explode_lipsum(); }
  91.  
  92.   // for now we're limited to the count of the lipsum parts.
  93.   // @TODO: implement wrap around by telling explode_parts how many parts we need
  94.   if($type > count($this->lipsum_parts)) { $type = count($this->lipsum_parts); }
  95.  
  96.   for($i = 0; $i <= $type; $i++) {
  97.   $text .= $this->lipsum_parts[$i]."\n\n";
  98.   }
  99.   }
  100.  
  101.   return apply_filters('lipsum_text',$text,$type);
  102.   }
  103.  
  104.   /**
  105.   * Cram together an ouput of the whole ball of wax
  106.   *
  107.   * @return string
  108.   */
  109.   function lipsum_all() {
  110.   if(!$this->lipsum_parts) { $this->explode_lipsum(); }
  111.   $nl = "\n\n";
  112.  
  113.   $string = '<a href="http://wordpress.com">'.
  114.   '<image class="alignright" align="right" src="http://i35.tinypic.com/990wtx.png" alt="WordPress!" />'.
  115.   '</a>'.
  116.   $this->lipsum_parts[1].$nl.
  117.   $this->lipsum_parts[2].$nl.
  118.   $this->lipsum_ol.
  119.   $this->lipsum_parts[3].$nl.
  120.   '<!--more-->'.
  121.   $this->lipsum_blockquote.
  122.   $this->lipsum_parts[4].$nl.
  123.   $this->lipsum_ul.
  124.   $this->lipsum_parts[5].$nl.
  125.   $this->lipsum_parts[6].$nl.
  126.   $this->lipsum_table.
  127.   $this->lipsum_parts[7].$nl.
  128.   $this->lipsum_code.
  129.   $this->lipsum_parts[8].$nl.
  130.   $this->lipsum_dl.
  131.   $this->lipsum_parts[9].$nl;
  132.   return $string;
  133.   }
  134.  
  135.   /**
  136.   * Lipsum formatted for WordPress pagination
  137.   *
  138.   * @return string
  139.   */
  140.   function lipsum_pages() {
  141.   return $this->lipsum_all().
  142.   '<!--nextpage-->'.
  143.   $this->lipsum_parts[1].$nl.
  144.   $this->lipsum_parts[2].$nl.
  145.   $this->lipsum_ul.
  146.   $this->lipsum_parts[3].$nl.
  147.   $this->lipsum_parts[4].$nl.
  148.   $this->lipsum_parts[5].$nl.
  149.   $this->lipsum_parts[6].$nl.
  150.   '<!--nextpage-->'.
  151.   $this->lipsum_parts[1].$nl.
  152.   $this->lipsum_parts[2].$nl.
  153.   $this->lipsum_parts[3].$nl.
  154.   $this->lipsum_table.
  155.   $this->lipsum_parts[4].$nl.
  156.   $this->lipsum_parts[5].$nl.
  157.   $this->lipsum_parts[6].$nl.
  158.   '<!--nextpage-->'.
  159.   $this->lipsum_parts[1].$nl.
  160.   $this->lipsum_parts[2].$nl.
  161.   $this->lipsum_dl.
  162.   $this->lipsum_parts[3].$nl.
  163.   $this->lipsum_parts[4].$nl.
  164.   $this->lipsum_ol.
  165.   $this->lipsum_parts[5].$nl.
  166.   $this->lipsum_parts[6].$nl;
  167.   }
  168.  
  169.   /**
  170.   * Break the lipsum graphs up in to parts
  171.   *
  172.   * @return bool
  173.   */
  174.   function explode_lipsum() {
  175.   return $this->lipsum_parts = explode("\n",$this->lipsum);
  176.   }
  177.  
  178.   /**
  179.   * Lipsum pars
  180.   *
  181.   * @var placeholder for broken up $lipsum parts
  182.   */
  183.   var $lipsum_parts = false;
  184.  
  185.   /**
  186.   * 10 Paragraphs of lipsum
  187.   *
  188.   * @var string
  189.   */
  190.   var $lipsum = "Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Integer ultricies. Sed sit amet nisi. Aliquam felis nibh, vestibulum sit amet, aliquet ut, tempus et, nunc. Mauris suscipit ultricies sapien. Vivamus et quam. Nulla facilisi. Ut volutpat diam eu <a href=\"#\">augue euismod</a> elementum. Aenean in justo. Phasellus id sem in felis lacinia facilisis. Aliquam pulvinar blandit metus. Phasellus rhoncus sollicitudin augue. Vestibulum ultrices, urna non suscipit dapibus, eros nisl cursus neque, ut venenatis velit orci quis erat. Maecenas convallis justo et velit. Quisque et lacus at dui accumsan eleifend. Donec justo nulla, porta at, imperdiet ut, suscipit ac, lacus. Integer vel sapien. Maecenas feugiat mattis nulla. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus.
  191.  Nullam justo magna, consequat non, placerat mattis, porta ut, dui. Phasellus diam. Sed convallis porttitor neque. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Sed sed nisl non felis euismod commodo. Ut sed magna sed turpis gravida tempus. Curabitur lacinia lectus in metus. Nullam facilisis dapibus odio. Quisque pharetra.
  192.  Suspendisse est pede, varius vel, <i>commodo sed</i>, hendrerit et, felis. In turpis mi, pellentesque sed, fringilla id, laoreet consequat, tellus. Fusce facilisis, est dapibus suscipit mollis, pede libero dapibus massa, eget dapibus metus ligula at sapien. Curabitur accumsan ultricies arcu. Etiam id nibh non risus interdum rhoncus. Nulla tincidunt erat aliquet elit. Integer turpis. Vestibulum sit amet tellus vitae ante scelerisque suscipit. Sed aliquam felis vitae dolor. <b>Etiam ultrices</b> erat sit amet dui.
  193.  Aenean mauris. Cum sociis natoque penatibus <abbr title=\"HyperText Markup Language\">HTML</abbr> et magnis dis parturient montes, nascetur ridiculus mus. Sed et nisi. <dfn title=\"Nullam vitae erat\">Nullam auctor</dfn> pharetra risus. Ut blandit neque ut ligula. Maecenas in neque vel risus convallis ornare. Nam leo. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Cras hendrerit velit in ante. Praesent bibendum, nunc non auctor consectetuer, enim arcu ultrices metus, sed condimentum lacus velit ut sem. Ut at risus rutrum purus eleifend aliquet. Aenean ultricies neque in augue. Cras euismod scelerisque nulla. Sed molestie nulla sit amet neque. Integer aliquet.
  194.  Nulla ante. <b>Vivamus</b> laoreet ornare leo. <ins>Cras egestas scelerisque sapien.</ins> Cras turpis. Integer nibh. Morbi quis tellus. Sed eget orci tristique nisl blandit pulvinar. Pellentesque lacus dolor, aliquet at, interdum quis, varius a, nisi. Etiam id felis sed lacus lobortis ultricies. Donec pede justo, feugiat nec, bibendum et, dignissim sed, massa. Vestibulum sagittis tempus orci. Proin fringilla molestie tortor. Curabitur pellentesque bibendum risus. Proin egestas varius diam.
  195.  Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Nullam vitae erat. Duis in libero ut mauris posuere volutpat. Vivamus nec libero sed mi volutpat pretium. In porta, velit et pulvinar sodales, ante sem dictum erat, a semper lorem odio ac mauris. Donec magna nibh, mollis ut, viverra eu, accumsan id, purus. In pharetra, pede convallis dictum lobortis, dui nisi congue arcu, vel commodo mauris lacus ut risus. Nulla fermentum libero eu urna. Quisque ullamcorper. Vivamus eleifend risus nec est. Nunc ut tortor in est molestie ultrices. Sed vitae diam. Nulla pede nunc, auctor vel, sodales vitae, varius in, libero. <a href=\"#\">Morbi non metus</a>.
  196.  Duis sit amet libero a massa tincidunt porta. Pellentesque eu mauris vitae risus vehicula mollis. Nullam blandit diam ac velit. Vivamus dapibus faucibus turpis. Vivamus semper. Curabitur elementum dui nec enim mollis laoreet. Praesent vel magna suscipit mi <cite>elementum rhoncus</cite>. Maecenas arcu. Cras hendrerit leo. Fusce purus tellus, tincidunt sit amet, dignissim ut, dapibus id, tortor. Aliquam risus tellus, consequat sed, fermentum quis, vestibulum eu, nisi. Aenean tempor elit et nibh.
  197.  Nulla suscipit rhoncus quam. Integer nec pede. Suspendisse velit felis, fermentum ac, feugiat non, egestas vel, lacus. Phasellus sed enim ut pede cursus imperdiet. Nulla molestie suscipit libero. Duis ut justo ac leo malesuada suscipit. Duis mi pede, luctus sit amet, adipiscing ut, ornare at, arcu. Nulla quam. Duis eu magna. Pellentesque ut mi ut sapien interdum aliquam. Maecenas dolor erat, porta nec, elementum ut, suscipit vitae, pede. Nulla nulla. <del>Quisque dictum augue molestie metus.</del> Nunc porta nibh a purus. Sed egestas, risus mattis dictum luctus, metus lacus viverra massa, sed consectetuer elit turpis a risus. Phasellus id felis ut erat rutrum accumsan. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Donec purus ante, pretium sit amet, porttitor a, cursus ac, tellus. Donec consectetuer euismod lectus. Donec rutrum.
  198.  Vivamus nisi quam, vestibulum ultricies, aliquam eleifend, consectetuer vitae, justo. Pellentesque diam. Vivamus ultricies adipiscing nisi. Aliquam erat volutpat. Proin nec velit. Cras quis orci eget pede scelerisque accumsan. Fusce dictum pharetra nunc. Etiam pulvinar, metus ac rutrum commodo, enim sem faucibus eros, sit amet pretium ipsum orci in eros. Mauris faucibus ornare sapien. Suspendisse felis mauris, feugiat et, adipiscing ut, pulvinar eu, pede. Nunc blandit enim at lorem. Curabitur ut orci. Duis fermentum. Phasellus malesuada, eros nec ornare sodales, tellus eros euismod sapien, eget bibendum ipsum lorem a nibh.
  199.  Suspendisse lacinia, metus ut ultrices commodo, velit justo pretium dui, sed posuere est mi ac diam. Nulla et sem. Aenean non arcu eu leo mattis facilisis. Fusce odio. Curabitur libero velit, sollicitudin sit amet, volutpat sed, faucibus ac, magna. Mauris cursus nisl vitae pede dignissim lobortis. Mauris rutrum posuere nunc. Quisque dictum ipsum vel sapien. Maecenas est. Sed in metus. Nunc faucibus. Nulla in metus sit amet enim tempor gravida. Nulla facilisi. Sed risus. Morbi nec leo. Donec gravida odio in sapien viverra varius. Proin posuere iaculis arcu.";
  200.  
  201.   /**
  202.   * Lipsum UL
  203.   *
  204.   * @var string
  205.   */
  206.   var $lipsum_ul = '
  207.  <ul>
  208.   <li>Lorem ipsum dolor sit amet, consectetuer adipiscing elit.</li>
  209.   <li>Aliquam tincidunt mauris eu risus.</li>
  210.  </ul>
  211.  ';
  212.  
  213.   /**
  214.   * Lipsum OL
  215.   *
  216.   * @var string
  217.   */
  218.   var $lipsum_ol = '
  219.  <ol>
  220.   <li>Lorem ipsum dolor sit amet, consectetuer adipiscing elit.</li>
  221.   <li>Aliquam tincidunt mauris eu risus.</li>
  222.  </ol>
  223.  ';
  224.  
  225.   /**
  226.   * Lipsum Blockquote
  227.   *
  228.   * @var string
  229.   */
  230.   var $lipsum_blockquote = '
  231.  <blockquote><p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vivamus magna. Cras in mi at felis aliquet congue. Ut a est eget ligula molestie gravida. Curabitur massa. Donec eleifend, libero at sagittis mollis, tellus est malesuada tellus, at luctus turpis elit sit amet quam. Vivamus pretium ornare est.</p></blockquote>
  232.  <cite><a href="#">Quote Source</a></cite>
  233.  ';
  234.  
  235.   /**
  236.   * Lipsum Definition List
  237.   *
  238.   * @var string
  239.   */
  240.   var $lipsum_dl = '
  241.  <dl>
  242.   <dt>Definition list</dt>
  243.   <dd>Consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna
  244.  aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea
  245.  commodo consequat.</dd>
  246.   <dt>Lorem ipsum dolor sit amet</dt>
  247.   <dd>Consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna
  248.  aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea
  249.  commodo consequat.</dd>
  250.  </dl>
  251.  ';
  252.  
  253.   /**
  254.   * Lipsum Table
  255.   *
  256.   * @var string
  257.   */
  258.   var $lipsum_table = '
  259.  <table summary="Table summary">
  260.   <caption>Caption sit amet</caption>
  261.   <thead>
  262.   <tr>
  263.   <th>Lorem</th>
  264.   <th>Ipsum</th>
  265.   <th>Dolor</th>
  266.   </tr>
  267.   </thead>
  268.   <tbody>
  269.   <tr>
  270.   <td>sit</td>
  271.   <td>amet</td>
  272.   <td>consecteteur</td>
  273.   </tr>
  274.   <tr>
  275.   <td>adipisicing</td>
  276.   <td>elit</td>
  277.   <td>vivamus</td>
  278.   </tr>
  279.   </tbody>
  280.  </table>
  281.  ';
  282.   /**
  283.   * Lipsum Code Block
  284.   *
  285.   * @var string
  286.   */
  287.   var $lipsum_code = '
  288.  <pre><code>
  289.  $var = "hello world";
  290.  echo $var;
  291.  </pre></code>
  292.  ';
  293.  
  294.  
  295.   }
  296.  ?>