Overview

Packages

  • Horde
  • None

Classes

  • Horde_Ajax_Application
  • Horde_Api
  • Horde_Block_Account
  • Horde_Block_Account_Base
  • Horde_Block_Account_Finger
  • Horde_Block_Account_Ldap
  • Horde_Block_Account_Localhost
  • Horde_Block_Cloud
  • Horde_Block_FbStream
  • Horde_Block_Feed
  • Horde_Block_Fortune
  • Horde_Block_Google
  • Horde_Block_Iframe
  • Horde_Block_Metar
  • Horde_Block_Moon
  • Horde_Block_Sunrise
  • Horde_Block_Time
  • Horde_Block_TwitterTimeline
  • Horde_Block_Vatid
  • Horde_Block_Weather
  • Horde_LoginTasks_SystemTask_GarbageCollection
  • Horde_LoginTasks_SystemTask_Upgrade
  • Horde_LoginTasks_Task_AdminCheck
  • Horde_LoginTasks_Task_LastLogin
  • Horde_LoginTasks_Task_TosAgreement
  • Horde_Prefs_Ui
  • Overview
  • Package
  • Class
  • Tree
  1: <?php
  2: /**
  3:  * @package Horde
  4:  */
  5: class Horde_Block_Fortune extends Horde_Core_Block
  6: {
  7:     /**
  8:      */
  9:     public $updateable = true;
 10: 
 11:     /**
 12:      */
 13:     public function __construct($app, $params = array())
 14:     {
 15:         parent::__construct($app, $params);
 16: 
 17:         $this->enabled = (isset($GLOBALS['conf']['fortune']['exec_path']) && is_executable($GLOBALS['conf']['fortune']['exec_path']));
 18:         $this->_name = _("Random Fortune");
 19:     }
 20: 
 21:     /**
 22:      */
 23:     protected function _title()
 24:     {
 25:         return _("Fortune");
 26:     }
 27: 
 28:     /**
 29:      */
 30:     protected function _params()
 31:     {
 32:         global $conf;
 33: 
 34:         $descriptions = array(
 35:             'art' => _("Art"),
 36:             'ascii-art' => _("Ascii Art"),
 37:             'bofh-excuses' => _("BOFH Excuses"),
 38:             'computers' => _("Computers"),
 39:             'cookie' => _("Cookie"),
 40:             'definitions' => _("Definitions"),
 41:             'drugs' => _("Drugs"),
 42:             'education' => _("Education"),
 43:             'ethnic' => _("Ethnic"),
 44:             'food' => _("Food"),
 45:             'fortunes' => _("Fortunes"),
 46:             'fortunes2' => _("Fortunes 2"),
 47:             'goedel' => _("Goedel"),
 48:             'humorists' => _("Humorists"),
 49:             'kernelnewbies' => _("Kernel Newbies"),
 50:             'kids' => _("Kids"),
 51:             'law' => _("Law"),
 52:             'limerick' => _("Limerick"),
 53:             'linuxcookie' => _("Linux Cookie"),
 54:             'literature' => _("Literature"),
 55:             'love' => _("Love"),
 56:             'magic' => _("Magic"),
 57:             'medicine' => _("Medicine"),
 58:             'miscellaneous' => _("Miscellaneous"),
 59:             'news' => _("News"),
 60:             'osfortune' => _("Operating System"),
 61:             'people' => _("People"),
 62:             'pets' => _("Pets"),
 63:             'platitudes' => _("Platitudes"),
 64:             'politics' => _("Politics"),
 65:             'riddles' => _("Riddles"),
 66:             'science' => _("Science"),
 67:             'songs-poems' => _("Songs & Poems"),
 68:             'sports' => _("Sports"),
 69:             'startrek' => _("Star Trek"),
 70:             'translate-me' => _("Translations"),
 71:             'wisdom' => _("Wisdom"),
 72:             'work' => _("Work"),
 73:             'zippy' => _("Zippy")
 74:         );
 75: 
 76:         $values = array();
 77: 
 78:         exec($conf['fortune']['exec_path'] . ' -f 2>&1', $output, $status);
 79:         if (!$status) {
 80:             for ($i = 1, $ocnt = count($output); $i < $ocnt; ++$i) {
 81:                 $fortune = substr($output[$i], strrpos($output[$i], ' ') + 1);
 82:                 $values[$fortune] = isset($descriptions[$fortune])
 83:                     ? $descriptions[$fortune]
 84:                     : $fortune;
 85:             }
 86:         }
 87: 
 88:         if (empty($values)) {
 89:             $values = $descriptions;
 90:         }
 91: 
 92:         asort($values);
 93:         $values = array_merge(array('' => _("All")), $values);
 94: 
 95:         return array(
 96:             'offend' => array(
 97:                 'type' => 'enum',
 98:                 'name' => _("Offense filter"),
 99:                 'default' => '',
100:                 'values' => array(
101:                     '' => _("No offensive fortunes"),
102:                     ' -o' => _("Only offensive fortunes"),
103:                     ' -a' => _("Both")
104:                 )
105:             ),
106:             'fortune' => array(
107:                 'type' => 'multienum',
108:                 'name' => _("Fortune type"),
109:                 'default' => array(''),
110:                 'values' => $values
111:             )
112:         );
113:     }
114: 
115:     /**
116:      */
117:     protected function _content()
118:     {
119:         global $conf;
120: 
121:         $cmdLine = $conf['fortune']['exec_path']
122:             . $this->_params['offend']
123:             . ' ' . implode(' ', $this->_params['fortune']);
124: 
125:         return '<span class="fixed"><small>'
126:             . nl2br($GLOBALS['injector']->getInstance('Horde_Core_Factory_TextFilter')->filter(shell_exec($cmdLine), array('space2html'), array(array('encode' => true))))
127:             . '</small></span>';
128:     }
129: 
130: }
131: 
API documentation generated by ApiGen