CakePHP
  • Documentation
    • Book
    • API
    • Videos
    • Reporting Security Issues
    • Privacy Policy
    • Logos & Trademarks
  • Business Solutions
  • Swag
  • Road Trip
  • Team
  • Community
    • Community
    • Get Involved
    • Issues (GitHub)
    • Bakery
    • Featured Resources
    • Training
    • Meetups
    • My CakePHP
    • CakeFest
    • Newsletter
    • Linkedin
    • YouTube
    • Facebook
    • Twitter
    • Mastodon
    • Help & Support
    • Forum
    • Stack Overflow
    • Slack
    • Paid Support
CakePHP

C CakePHP 1.3 API

  • Overview
  • Tree
  • Deprecated
  • Version:
    • 1.3
      • 4.2
      • 4.1
      • 4.0
      • 3.9
      • 3.8
      • 3.7
      • 3.6
      • 3.5
      • 3.4
      • 3.3
      • 3.2
      • 3.1
      • 3.0
      • 2.10
      • 2.9
      • 2.8
      • 2.7
      • 2.6
      • 2.5
      • 2.4
      • 2.3
      • 2.2
      • 2.1
      • 2.0
      • 1.3
      • 1.2

Classes

  • AclBase
  • AclBehavior
  • AclComponent
  • AclNode
  • AclShell
  • Aco
  • AcoAction
  • AjaxHelper
  • ApcEngine
  • ApiShell
  • App
  • AppController
  • AppHelper
  • AppModel
  • Aro
  • AuthComponent
  • BakeShell
  • BakeTask
  • BehaviorCollection
  • Cache
  • CacheEngine
  • CacheHelper
  • CakeErrorController
  • CakeLog
  • CakeRoute
  • CakeSchema
  • CakeSession
  • CakeSocket
  • ClassRegistry
  • Component
  • Configure
  • ConnectionManager
  • ConsoleShell
  • ContainableBehavior
  • Controller
  • ControllerTask
  • CookieComponent
  • DataSource
  • DbAcl
  • DbConfigTask
  • DboMssql
  • DboMysql
  • DboMysqlBase
  • DboMysqli
  • DboOracle
  • DboPostgres
  • DboSource
  • DboSqlite
  • Debugger
  • EmailComponent
  • ErrorHandler
  • ExtractTask
  • File
  • FileEngine
  • FileLog
  • FixtureTask
  • Folder
  • FormHelper
  • Helper
  • HtmlHelper
  • HttpSocket
  • I18n
  • I18nModel
  • I18nShell
  • Inflector
  • IniAcl
  • JavascriptHelper
  • JqueryEngineHelper
  • JsBaseEngineHelper
  • JsHelper
  • L10n
  • MagicDb
  • MagicFileResource
  • MediaView
  • MemcacheEngine
  • Model
  • ModelBehavior
  • ModelTask
  • MootoolsEngineHelper
  • Multibyte
  • NumberHelper
  • Object
  • Overloadable
  • Overloadable2
  • PagesController
  • PaginatorHelper
  • Permission
  • PluginShortRoute
  • PluginTask
  • ProjectTask
  • PrototypeEngineHelper
  • RequestHandlerComponent
  • Router
  • RssHelper
  • Sanitize
  • Scaffold
  • ScaffoldView
  • SchemaShell
  • Security
  • SecurityComponent
  • SessionComponent
  • SessionHelper
  • Set
  • Shell
  • String
  • TemplateTask
  • TestSuiteShell
  • TestTask
  • TextHelper
  • ThemeView
  • TimeHelper
  • TranslateBehavior
  • TreeBehavior
  • Validation
  • View
  • ViewTask
  • XcacheEngine
  • Xml
  • XmlElement
  • XmlHelper
  • XmlManager
  • XmlNode
  • XmlTextNode

Functions

  • mb_encode_mimeheader
  • mb_stripos
  • mb_stristr
  • mb_strlen
  • mb_strpos
  • mb_strrchr
  • mb_strrichr
  • mb_strripos
  • mb_strrpos
  • mb_strstr
  • mb_strtolower
  • mb_strtoupper
  • mb_substr
  • mb_substr_count
  1: <?php
  2: /**
  3:  * RSS Helper class file.
  4:  *
  5:  * Simplifies the output of RSS feeds.
  6:  *
  7:  * CakePHP(tm) : Rapid Development Framework (http://cakephp.org)
  8:  * Copyright 2005-2012, Cake Software Foundation, Inc. (http://cakefoundation.org)
  9:  *
 10:  * Licensed under The MIT License
 11:  * Redistributions of files must retain the above copyright notice.
 12:  *
 13:  * @copyright     Copyright 2005-2012, Cake Software Foundation, Inc. (http://cakefoundation.org)
 14:  * @link          http://cakephp.org CakePHP(tm) Project
 15:  * @package       cake
 16:  * @subpackage    cake.cake.libs.view.helpers
 17:  * @since         CakePHP(tm) v 1.2
 18:  * @license       MIT License (http://www.opensource.org/licenses/mit-license.php)
 19:  */
 20: App::import('Helper', 'Xml');
 21: 
 22: /**
 23:  * XML Helper class for easy output of XML structures.
 24:  *
 25:  * XmlHelper encloses all methods needed while working with XML documents.
 26:  *
 27:  * @package       cake
 28:  * @subpackage    cake.cake.libs.view.helpers
 29:  * @link http://book.cakephp.org/1.3/en/The-Manual/Core-Helpers/RSS.html#RSS
 30:  */
 31: class RssHelper extends XmlHelper {
 32: 
 33: /**
 34:  * Helpers used by RSS Helper
 35:  *
 36:  * @var array
 37:  * @access public
 38:  */
 39:     var $helpers = array('Time');
 40: 
 41: /**
 42:  * Base URL
 43:  *
 44:  * @access public
 45:  * @var string
 46:  */
 47:     var $base = null;
 48: 
 49: /**
 50:  * URL to current action.
 51:  *
 52:  * @access public
 53:  * @var string
 54:  */
 55:     var $here = null;
 56: 
 57: /**
 58:  * Parameter array.
 59:  *
 60:  * @access public
 61:  * @var array
 62:  */
 63:     var $params = array();
 64: 
 65: /**
 66:  * Current action.
 67:  *
 68:  * @access public
 69:  * @var string
 70:  */
 71:     var $action = null;
 72: 
 73: /**
 74:  * POSTed model data
 75:  *
 76:  * @access public
 77:  * @var array
 78:  */
 79:     var $data = null;
 80: 
 81: /**
 82:  * Name of the current model
 83:  *
 84:  * @access public
 85:  * @var string
 86:  */
 87:     var $model = null;
 88: 
 89: /**
 90:  * Name of the current field
 91:  *
 92:  * @access public
 93:  * @var string
 94:  */
 95:     var $field = null;
 96: 
 97: /**
 98:  * Default spec version of generated RSS
 99:  *
100:  * @access public
101:  * @var string
102:  */
103:     var $version = '2.0';
104: 
105: /**
106:  * Returns an RSS document wrapped in `<rss />` tags
107:  *
108:  * @param array $attrib `<rss />` tag attributes
109:  * @return string An RSS document
110:  * @access public
111:  */
112:     function document($attrib = array(), $content = null) {
113:         if ($content === null) {
114:             $content = $attrib;
115:             $attrib = array();
116:         }
117:         if (!isset($attrib['version']) || empty($attrib['version'])) {
118:             $attrib['version'] = $this->version;
119:         }
120: 
121:         return $this->elem('rss', $attrib, $content);
122:     }
123: 
124: /**
125:  * Returns an RSS `<channel />` element
126:  *
127:  * @param array $attrib `<channel />` tag attributes
128:  * @param mixed $elements Named array elements which are converted to tags
129:  * @param mixed $content Content (`<item />`'s belonging to this channel
130:  * @return string An RSS `<channel />`
131:  * @access public
132:  */
133:     function channel($attrib = array(), $elements = array(), $content = null) {
134:         $view =& ClassRegistry::getObject('view');
135: 
136:         if (!isset($elements['title']) && !empty($view->pageTitle)) {
137:             $elements['title'] = $view->pageTitle;
138:         }
139:         if (!isset($elements['link'])) {
140:             $elements['link'] = '/';
141:         }
142:         if (!isset($elements['description'])) {
143:             $elements['description'] = '';
144:         }
145:         $elements['link'] = $this->url($elements['link'], true);
146: 
147:         $elems = '';
148:         foreach ($elements as $elem => $data) {
149:             $attributes = array();
150:             if (is_array($data)) {
151:                 if (strtolower($elem) == 'cloud') {
152:                     $attributes = $data;
153:                     $data = array();
154:                 } elseif (isset($data['attrib']) && is_array($data['attrib'])) {
155:                     $attributes = $data['attrib'];
156:                     unset($data['attrib']);
157:                 } else {
158:                     $innerElements = '';
159:                     foreach ($data as $subElement => $value) {
160:                         $innerElements .= $this->elem($subElement, array(), $value);
161:                     }
162:                     $data = $innerElements;
163:                 }
164:             }
165:             $elems .= $this->elem($elem, $attributes, $data);
166:         }
167:         return $this->elem('channel', $attrib, $elems . $content, !($content === null));
168:     }
169: 
170: /**
171:  * Transforms an array of data using an optional callback, and maps it to a set
172:  * of `<item />` tags
173:  *
174:  * @param array $items The list of items to be mapped
175:  * @param mixed $callback A string function name, or array containing an object
176:  *     and a string method name
177:  * @return string A set of RSS `<item />` elements
178:  * @access public
179:  */
180:     function items($items, $callback = null) {
181:         if ($callback != null) {
182:             $items = array_map($callback, $items);
183:         }
184: 
185:         $out = '';
186:         $c = count($items);
187: 
188:         for ($i = 0; $i < $c; $i++) {
189:             $out .= $this->item(array(), $items[$i]);
190:         }
191:         return $out;
192:     }
193: 
194: /**
195:  * Converts an array into an `<item />` element and its contents
196:  *
197:  * @param array $attrib The attributes of the `<item />` element
198:  * @param array $elements The list of elements contained in this `<item />`
199:  * @return string An RSS `<item />` element
200:  * @access public
201:  */
202:     function item($att = array(), $elements = array()) {
203:         $content = null;
204: 
205:         if (isset($elements['link']) && !isset($elements['guid'])) {
206:             $elements['guid'] = $elements['link'];
207:         }
208: 
209:         foreach ($elements as $key => $val) {
210:             $attrib = array();
211:             
212:             $escape = true;
213:             if (is_array($val) && isset($val['convertEntities'])) {
214:                 $escape = $val['convertEntities'];
215:                 unset($val['convertEntities']);
216:             }
217:             
218:             switch ($key) {
219:                 case 'pubDate' :
220:                     $val = $this->time($val);
221:                 break;
222:                 case 'category' :
223:                     if (is_array($val) && !empty($val[0])) {
224:                         foreach ($val as $category) {
225:                             $attrib = array();
226:                             if (isset($category['domain'])) {
227:                                 $attrib['domain'] = $category['domain'];
228:                                 unset($category['domain']);
229:                             }
230:                             $categories[] = $this->elem($key, $attrib, $category);
231:                         }
232:                         $elements[$key] = implode('', $categories);
233:                         continue 2;
234:                     } else if (is_array($val) && isset($val['domain'])) {
235:                         $attrib['domain'] = $val['domain'];
236:                     }
237:                 break;
238:                 case 'link':
239:                 case 'guid':
240:                 case 'comments':
241:                     if (is_array($val) && isset($val['url'])) {
242:                         $attrib = $val;
243:                         unset($attrib['url']);
244:                         $val = $val['url'];
245:                     }
246:                     $val = $this->url($val, true);
247:                 break;
248:                 case 'source':
249:                     if (is_array($val) && isset($val['url'])) {
250:                         $attrib['url'] = $this->url($val['url'], true);
251:                         $val = $val['title'];
252:                     } elseif (is_array($val)) {
253:                         $attrib['url'] = $this->url($val[0], true);
254:                         $val = $val[1];
255:                     }
256:                 break;
257:                 case 'enclosure':
258:                     if (is_string($val['url']) && is_file(WWW_ROOT . $val['url']) && file_exists(WWW_ROOT . $val['url'])) {
259:                         if (!isset($val['length']) && strpos($val['url'], '://') === false) {
260:                             $val['length'] = sprintf("%u", filesize(WWW_ROOT . $val['url']));
261:                         }
262:                         if (!isset($val['type']) && function_exists('mime_content_type')) {
263:                             $val['type'] = mime_content_type(WWW_ROOT . $val['url']);
264:                         }
265:                     }
266:                     $val['url'] = $this->url($val['url'], true);
267:                     $attrib = $val;
268:                     $val = null;
269:                 break;
270:             }
271:             if (!is_null($val) && $escape) {
272:                 $val = h($val);
273:             }
274:             $elements[$key] = $this->elem($key, $attrib, $val);
275:         }
276:         if (!empty($elements)) {
277:             $content = implode('', $elements);
278:         }
279:         return $this->elem('item', $att, $content, !($content === null));
280:     }
281: 
282: /**
283:  * Converts a time in any format to an RSS time
284:  *
285:  * @param mixed $time
286:  * @return string An RSS-formatted timestamp
287:  * @see TimeHelper::toRSS
288:  */
289:     function time($time) {
290:         return $this->Time->toRSS($time);
291:     }
292: }
293: 
OpenHub
Rackspace
Rackspace
  • Business Solutions
  • Showcase
  • Documentation
  • Book
  • API
  • Videos
  • Reporting Security Issues
  • Privacy Policy
  • Logos & Trademarks
  • Community
  • Get Involved
  • Issues (GitHub)
  • Bakery
  • Featured Resources
  • Training
  • Meetups
  • My CakePHP
  • CakeFest
  • Newsletter
  • Linkedin
  • YouTube
  • Facebook
  • Twitter
  • Mastodon
  • Help & Support
  • Forum
  • Stack Overflow
  • Slack
  • Paid Support

Generated using CakePHP API Docs