diff --git a/.editorconfig b/.editorconfig index a760cdf84..924bcb60a 100644 --- a/.editorconfig +++ b/.editorconfig @@ -6,15 +6,11 @@ end_of_line = lf insert_final_newline = true trim_trailing_whitespace = true -[*.{css,js,json,sql}] +[*.{css,html,js,json,sql}] indent_style = tab -[*.html] -indent_size = 2 -indent_style = space - [*.{markdown,md}] -indent_size = 4 +indent_size = 2 indent_style = space max_line_length = off trim_trailing_whitespace = false diff --git a/.github/workflows/website.yml b/.github/workflows/website.yml new file mode 100644 index 000000000..2840e322f --- /dev/null +++ b/.github/workflows/website.yml @@ -0,0 +1,53 @@ +name: Docs + +on: + push: + branches: + - master + +jobs: + website: + runs-on: ubuntu-latest + + name: "Build website" + + steps: + - name: Checkout code + uses: actions/checkout@v2 + + - name: Install PHP with latest composer + uses: shivammathur/setup-php@v2 + with: + php-version: 8.1 + + - name: Build API docs + run: | + pushd docs/apigen + composer install + composer exec -- apigen + popd + + - name: Build website + run: | + cd docs + wget -q -O - "https://github.com/getzola/zola/releases/download/v0.16.1/zola-v0.16.1-x86_64-unknown-linux-gnu.tar.gz" | tar xzf - + ./zola build + + - name: Copy demo & SimplePie + run: | + cp -r autoloader.php idn/ src/ library/ demo/ docs/public/ + grep --perl-regexp --only-matching --null-data "(?s)(.+)(?=)" demo/index.php > docs/public/demo/index.php + grep --perl-regexp --only-matching --null-data "(?s)(.+)(?=)" docs/public/demo/index.html >> docs/public/demo/index.php + grep --perl-regexp --only-matching --null-data "(?s)(?<=)(.+)(?=)" demo/index.php >> docs/public/demo/index.php + grep --perl-regexp --only-matching --null-data "(?s)(?<=)(.+)" docs/public/demo/index.html >> docs/public/demo/index.php + rm docs/public/demo/index.html + + - name: Upload to web server + uses: SamKirkland/FTP-Deploy-Action@4.3.3 + with: + local-dir: docs/public/ + server: ${{ vars.SFTP_SERVER }} + port: ${{ vars.SFTP_SERVER }} + protocol: ftps + username: ${{ secrets.SFTP_USERNAME }} + password: ${{ secrets.SFTP_PASSWORD }} diff --git a/.gitignore b/.gitignore index 612cde94a..eeefb8bde 100644 --- a/.gitignore +++ b/.gitignore @@ -3,7 +3,10 @@ demo/cache/* SimplePie.compiled.php bin/ vendor/ -composer.lock +/composer.lock phpunit.xml .php-cs-fixer.cache .phpunit.result.cache +docs/public/ +docs/content/api/ +docs/static/api/ diff --git a/demo/index.php b/demo/index.php index c42f52567..97cf2d152 100644 --- a/demo/index.php +++ b/demo/index.php @@ -100,7 +100,7 @@
- +
@@ -234,6 +234,7 @@
+
diff --git a/docs/README.md b/docs/README.md new file mode 100644 index 000000000..1fee357ab --- /dev/null +++ b/docs/README.md @@ -0,0 +1,7 @@ +This directory contains the source for the SimplePie website hosted at . It is mostly written in [CommonMark](https://commonmark.org/) and built using [Zola](https://www.getzola.org) static site generator. + +After [installing Zola](https://www.getzola.org/documentation/getting-started/installation/), you can run `zola serve` in this directory to start a server that will allow you to preview the built site, automatically rebuilding on changes. + +To build API docs run `composer exec -- apigen` in the `apigen/` directory. + +You can also run `zola build`, which will generate the site inside the `public/` subdirectory. diff --git a/docs/apigen/apigen.neon b/docs/apigen/apigen.neon new file mode 100644 index 000000000..deb31de79 --- /dev/null +++ b/docs/apigen/apigen.neon @@ -0,0 +1,24 @@ +parameters: + paths: [ + '../../library', + '../../src', + ] + + exclude: [] + + excludeTagged: ['internal'] + + baseUrl: '/api/' + + outputDir: '%workingDir%/../content/api' + + themeDir: 'theme' + + title: 'SimplePie 1.8' + +# Override ApiGen implementation +services: + renderer.urlGenerator: + factory: SimplePie\ApiGen\MdUrlGenerator(ApiGen\Helpers::baseDir(%paths%), %baseUrl%) + renderer.latte.extension: + factory: SimplePie\ApiGen\LatteExtension diff --git a/docs/apigen/composer.json b/docs/apigen/composer.json new file mode 100644 index 000000000..3030a6025 --- /dev/null +++ b/docs/apigen/composer.json @@ -0,0 +1,14 @@ +{ + "require": { + "php": "^8.0", + "psr/simple-cache": "^3.0" + }, + "require-dev": { + "apigen/apigen": "^7.0.0-alpha.3" + }, + "autoload": { + "psr-4": { + "SimplePie\\ApiGen\\": "src" + } + } +} diff --git a/docs/apigen/composer.lock b/docs/apigen/composer.lock new file mode 100644 index 000000000..5720e91f5 --- /dev/null +++ b/docs/apigen/composer.lock @@ -0,0 +1,2021 @@ +{ + "_readme": [ + "This file locks the dependencies of your project to a known state", + "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies", + "This file is @generated automatically" + ], + "content-hash": "0728c3c99722218d4c9f40519a2c520f", + "packages": [ + { + "name": "psr/simple-cache", + "version": "3.0.0", + "source": { + "type": "git", + "url": "https://github.com/php-fig/simple-cache.git", + "reference": "764e0b3939f5ca87cb904f570ef9be2d78a07865" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/php-fig/simple-cache/zipball/764e0b3939f5ca87cb904f570ef9be2d78a07865", + "reference": "764e0b3939f5ca87cb904f570ef9be2d78a07865", + "shasum": "" + }, + "require": { + "php": ">=8.0.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "3.0.x-dev" + } + }, + "autoload": { + "psr-4": { + "Psr\\SimpleCache\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "PHP-FIG", + "homepage": "https://www.php-fig.org/" + } + ], + "description": "Common interfaces for simple caching", + "keywords": [ + "cache", + "caching", + "psr", + "psr-16", + "simple-cache" + ], + "support": { + "source": "https://github.com/php-fig/simple-cache/tree/3.0.0" + }, + "time": "2021-10-29T13:26:27+00:00" + } + ], + "packages-dev": [ + { + "name": "apigen/apigen", + "version": "v7.0.0-alpha.3", + "source": { + "type": "git", + "url": "https://github.com/ApiGen/ApiGen.git", + "reference": "b8fd0b11d2d8ade760b45052be177882b7a89ffd" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/ApiGen/ApiGen/zipball/b8fd0b11d2d8ade760b45052be177882b7a89ffd", + "reference": "b8fd0b11d2d8ade760b45052be177882b7a89ffd", + "shasum": "" + }, + "require": { + "ext-ctype": "*", + "ext-json": "*", + "ext-mbstring": "*", + "ext-tokenizer": "*", + "jetbrains/phpstorm-stubs": "^2022.1", + "latte/latte": "^3.0", + "league/commonmark": "^2.3", + "nette/di": "^3.0", + "nette/finder": "^2.5", + "nette/schema": "^1.2", + "nette/utils": "^3.2", + "nikic/php-parser": "^4.15", + "php": "^8.1", + "phpstan/php-8-stubs": "^0.3.9", + "phpstan/phpdoc-parser": "^1.5", + "symfony/console": "^6.0" + }, + "require-dev": { + "phpstan/phpstan": "^1.7", + "tracy/tracy": "^2.9" + }, + "suggest": { + "ext-pcntl": "for multiprocess rendering" + }, + "bin": [ + "bin/apigen" + ], + "type": "library", + "autoload": { + "psr-4": { + "ApiGen\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "ApiGen Contributors", + "homepage": "https://github.com/apigen/apigen/graphs/contributors" + }, + { + "name": "Jaroslav Hanslík", + "homepage": "https://github.com/kukulich" + }, + { + "name": "Ondřej Nešpor", + "homepage": "https://github.com/andrewsville" + }, + { + "name": "David Grudl", + "homepage": "https://davidgrudl.com" + } + ], + "description": "PHP source code API generator.", + "support": { + "issues": "https://github.com/ApiGen/ApiGen/issues", + "source": "https://github.com/ApiGen/ApiGen/tree/v7.0.0-alpha.3" + }, + "time": "2022-09-18T20:00:43+00:00" + }, + { + "name": "dflydev/dot-access-data", + "version": "v3.0.2", + "source": { + "type": "git", + "url": "https://github.com/dflydev/dflydev-dot-access-data.git", + "reference": "f41715465d65213d644d3141a6a93081be5d3549" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/dflydev/dflydev-dot-access-data/zipball/f41715465d65213d644d3141a6a93081be5d3549", + "reference": "f41715465d65213d644d3141a6a93081be5d3549", + "shasum": "" + }, + "require": { + "php": "^7.1 || ^8.0" + }, + "require-dev": { + "phpstan/phpstan": "^0.12.42", + "phpunit/phpunit": "^7.5 || ^8.5 || ^9.3", + "scrutinizer/ocular": "1.6.0", + "squizlabs/php_codesniffer": "^3.5", + "vimeo/psalm": "^4.0.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "3.x-dev" + } + }, + "autoload": { + "psr-4": { + "Dflydev\\DotAccessData\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Dragonfly Development Inc.", + "email": "info@dflydev.com", + "homepage": "http://dflydev.com" + }, + { + "name": "Beau Simensen", + "email": "beau@dflydev.com", + "homepage": "http://beausimensen.com" + }, + { + "name": "Carlos Frutos", + "email": "carlos@kiwing.it", + "homepage": "https://github.com/cfrutos" + }, + { + "name": "Colin O'Dell", + "email": "colinodell@gmail.com", + "homepage": "https://www.colinodell.com" + } + ], + "description": "Given a deep data structure, access data by dot notation.", + "homepage": "https://github.com/dflydev/dflydev-dot-access-data", + "keywords": [ + "access", + "data", + "dot", + "notation" + ], + "support": { + "issues": "https://github.com/dflydev/dflydev-dot-access-data/issues", + "source": "https://github.com/dflydev/dflydev-dot-access-data/tree/v3.0.2" + }, + "time": "2022-10-27T11:44:00+00:00" + }, + { + "name": "jetbrains/phpstorm-stubs", + "version": "v2022.2", + "source": { + "type": "git", + "url": "https://github.com/JetBrains/phpstorm-stubs.git", + "reference": "01006d9854679672fc8b85c6d5063ea6f25226ac" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/JetBrains/phpstorm-stubs/zipball/01006d9854679672fc8b85c6d5063ea6f25226ac", + "reference": "01006d9854679672fc8b85c6d5063ea6f25226ac", + "shasum": "" + }, + "require-dev": { + "friendsofphp/php-cs-fixer": "@stable", + "nikic/php-parser": "@stable", + "php": "^8.0", + "phpdocumentor/reflection-docblock": "@stable", + "phpunit/phpunit": "@stable" + }, + "type": "library", + "autoload": { + "files": [ + "PhpStormStubsMap.php" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "Apache-2.0" + ], + "description": "PHP runtime & extensions header files for PhpStorm", + "homepage": "https://www.jetbrains.com/phpstorm", + "keywords": [ + "autocomplete", + "code", + "inference", + "inspection", + "jetbrains", + "phpstorm", + "stubs", + "type" + ], + "support": { + "source": "https://github.com/JetBrains/phpstorm-stubs/tree/v2022.2" + }, + "time": "2022-07-25T13:18:36+00:00" + }, + { + "name": "latte/latte", + "version": "v3.0.3", + "source": { + "type": "git", + "url": "https://github.com/nette/latte.git", + "reference": "aad059390316d33c4c81a09703117303ce57f06c" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/nette/latte/zipball/aad059390316d33c4c81a09703117303ce57f06c", + "reference": "aad059390316d33c4c81a09703117303ce57f06c", + "shasum": "" + }, + "require": { + "ext-json": "*", + "ext-tokenizer": "*", + "php": ">=8.0 <8.3" + }, + "conflict": { + "nette/application": "<2.4.1" + }, + "require-dev": { + "nette/php-generator": "^3.6 || ^4.0", + "nette/tester": "^2.0", + "nette/utils": "^3.0", + "phpstan/phpstan": "^1", + "tracy/tracy": "^2.3" + }, + "suggest": { + "ext-fileinfo": "to use filter |datastream", + "ext-iconv": "to use filters |reverse, |substring", + "ext-mbstring": "to use filters like lower, upper, capitalize, ...", + "nette/php-generator": "to use tag {templatePrint}", + "nette/utils": "to use filter |webalize" + }, + "bin": [ + "bin/latte-lint" + ], + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "3.0-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause", + "GPL-2.0-only", + "GPL-3.0-only" + ], + "authors": [ + { + "name": "David Grudl", + "homepage": "https://davidgrudl.com" + }, + { + "name": "Nette Community", + "homepage": "https://nette.org/contributors" + } + ], + "description": "☕ Latte: the intuitive and fast template engine for those who want the most secure PHP sites. Introduces context-sensitive escaping.", + "homepage": "https://latte.nette.org", + "keywords": [ + "context-sensitive", + "engine", + "escaping", + "html", + "nette", + "security", + "template", + "twig" + ], + "support": { + "issues": "https://github.com/nette/latte/issues", + "source": "https://github.com/nette/latte/tree/v3.0.3" + }, + "time": "2022-09-12T22:35:05+00:00" + }, + { + "name": "league/commonmark", + "version": "2.3.5", + "source": { + "type": "git", + "url": "https://github.com/thephpleague/commonmark.git", + "reference": "84d74485fdb7074f4f9dd6f02ab957b1de513257" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/thephpleague/commonmark/zipball/84d74485fdb7074f4f9dd6f02ab957b1de513257", + "reference": "84d74485fdb7074f4f9dd6f02ab957b1de513257", + "shasum": "" + }, + "require": { + "ext-mbstring": "*", + "league/config": "^1.1.1", + "php": "^7.4 || ^8.0", + "psr/event-dispatcher": "^1.0", + "symfony/deprecation-contracts": "^2.1 || ^3.0", + "symfony/polyfill-php80": "^1.16" + }, + "require-dev": { + "cebe/markdown": "^1.0", + "commonmark/cmark": "0.30.0", + "commonmark/commonmark.js": "0.30.0", + "composer/package-versions-deprecated": "^1.8", + "embed/embed": "^4.4", + "erusev/parsedown": "^1.0", + "ext-json": "*", + "github/gfm": "0.29.0", + "michelf/php-markdown": "^1.4", + "nyholm/psr7": "^1.5", + "phpstan/phpstan": "^1.8.2", + "phpunit/phpunit": "^9.5.21", + "scrutinizer/ocular": "^1.8.1", + "symfony/finder": "^5.3 | ^6.0", + "symfony/yaml": "^2.3 | ^3.0 | ^4.0 | ^5.0 | ^6.0", + "unleashedtech/php-coding-standard": "^3.1.1", + "vimeo/psalm": "^4.24.0" + }, + "suggest": { + "symfony/yaml": "v2.3+ required if using the Front Matter extension" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "2.4-dev" + } + }, + "autoload": { + "psr-4": { + "League\\CommonMark\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Colin O'Dell", + "email": "colinodell@gmail.com", + "homepage": "https://www.colinodell.com", + "role": "Lead Developer" + } + ], + "description": "Highly-extensible PHP Markdown parser which fully supports the CommonMark spec and GitHub-Flavored Markdown (GFM)", + "homepage": "https://commonmark.thephpleague.com", + "keywords": [ + "commonmark", + "flavored", + "gfm", + "github", + "github-flavored", + "markdown", + "md", + "parser" + ], + "support": { + "docs": "https://commonmark.thephpleague.com/", + "forum": "https://github.com/thephpleague/commonmark/discussions", + "issues": "https://github.com/thephpleague/commonmark/issues", + "rss": "https://github.com/thephpleague/commonmark/releases.atom", + "source": "https://github.com/thephpleague/commonmark" + }, + "funding": [ + { + "url": "https://www.colinodell.com/sponsor", + "type": "custom" + }, + { + "url": "https://www.paypal.me/colinpodell/10.00", + "type": "custom" + }, + { + "url": "https://github.com/colinodell", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/league/commonmark", + "type": "tidelift" + } + ], + "time": "2022-07-29T10:59:45+00:00" + }, + { + "name": "league/config", + "version": "v1.1.1", + "source": { + "type": "git", + "url": "https://github.com/thephpleague/config.git", + "reference": "a9d39eeeb6cc49d10a6e6c36f22c4c1f4a767f3e" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/thephpleague/config/zipball/a9d39eeeb6cc49d10a6e6c36f22c4c1f4a767f3e", + "reference": "a9d39eeeb6cc49d10a6e6c36f22c4c1f4a767f3e", + "shasum": "" + }, + "require": { + "dflydev/dot-access-data": "^3.0.1", + "nette/schema": "^1.2", + "php": "^7.4 || ^8.0" + }, + "require-dev": { + "phpstan/phpstan": "^0.12.90", + "phpunit/phpunit": "^9.5.5", + "scrutinizer/ocular": "^1.8.1", + "unleashedtech/php-coding-standard": "^3.1", + "vimeo/psalm": "^4.7.3" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "1.2-dev" + } + }, + "autoload": { + "psr-4": { + "League\\Config\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Colin O'Dell", + "email": "colinodell@gmail.com", + "homepage": "https://www.colinodell.com", + "role": "Lead Developer" + } + ], + "description": "Define configuration arrays with strict schemas and access values with dot notation", + "homepage": "https://config.thephpleague.com", + "keywords": [ + "array", + "config", + "configuration", + "dot", + "dot-access", + "nested", + "schema" + ], + "support": { + "docs": "https://config.thephpleague.com/", + "issues": "https://github.com/thephpleague/config/issues", + "rss": "https://github.com/thephpleague/config/releases.atom", + "source": "https://github.com/thephpleague/config" + }, + "funding": [ + { + "url": "https://www.colinodell.com/sponsor", + "type": "custom" + }, + { + "url": "https://www.paypal.me/colinpodell/10.00", + "type": "custom" + }, + { + "url": "https://github.com/colinodell", + "type": "github" + } + ], + "time": "2021-08-14T12:15:32+00:00" + }, + { + "name": "nette/di", + "version": "v3.0.13", + "source": { + "type": "git", + "url": "https://github.com/nette/di.git", + "reference": "9878f2958a0a804b08430dbc719a52e493022739" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/nette/di/zipball/9878f2958a0a804b08430dbc719a52e493022739", + "reference": "9878f2958a0a804b08430dbc719a52e493022739", + "shasum": "" + }, + "require": { + "ext-tokenizer": "*", + "nette/neon": "^3.3 || ^4.0", + "nette/php-generator": "^3.5.4 || ^4.0", + "nette/robot-loader": "^3.2", + "nette/schema": "^1.1", + "nette/utils": "^3.1.6", + "php": ">=7.1 <8.2" + }, + "conflict": { + "nette/bootstrap": "<3.0" + }, + "require-dev": { + "nette/tester": "^2.2", + "phpstan/phpstan": "^0.12", + "tracy/tracy": "^2.3" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "3.0-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause", + "GPL-2.0-only", + "GPL-3.0-only" + ], + "authors": [ + { + "name": "David Grudl", + "homepage": "https://davidgrudl.com" + }, + { + "name": "Nette Community", + "homepage": "https://nette.org/contributors" + } + ], + "description": "💎 Nette Dependency Injection Container: Flexible, compiled and full-featured DIC with perfectly usable autowiring and support for all new PHP features.", + "homepage": "https://nette.org", + "keywords": [ + "compiled", + "di", + "dic", + "factory", + "ioc", + "nette", + "static" + ], + "support": { + "issues": "https://github.com/nette/di/issues", + "source": "https://github.com/nette/di/tree/v3.0.13" + }, + "time": "2022-03-10T02:43:04+00:00" + }, + { + "name": "nette/finder", + "version": "v2.5.4", + "source": { + "type": "git", + "url": "https://github.com/nette/finder.git", + "reference": "4a1236db9067d86a75c3dcc0d9c2aced17f9bde8" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/nette/finder/zipball/4a1236db9067d86a75c3dcc0d9c2aced17f9bde8", + "reference": "4a1236db9067d86a75c3dcc0d9c2aced17f9bde8", + "shasum": "" + }, + "require": { + "nette/utils": "^2.4 || ^3.0", + "php": ">=7.1" + }, + "conflict": { + "nette/nette": "<2.2" + }, + "require-dev": { + "nette/tester": "^2.0", + "phpstan/phpstan": "^0.12", + "tracy/tracy": "^2.3" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.5-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause", + "GPL-2.0-only", + "GPL-3.0-only" + ], + "authors": [ + { + "name": "David Grudl", + "homepage": "https://davidgrudl.com" + }, + { + "name": "Nette Community", + "homepage": "https://nette.org/contributors" + } + ], + "description": "🔍 Nette Finder: find files and directories with an intuitive API.", + "homepage": "https://nette.org", + "keywords": [ + "filesystem", + "glob", + "iterator", + "nette" + ], + "support": { + "issues": "https://github.com/nette/finder/issues", + "source": "https://github.com/nette/finder/tree/v2.5.4" + }, + "time": "2022-10-13T01:30:47+00:00" + }, + { + "name": "nette/neon", + "version": "v3.3.3", + "source": { + "type": "git", + "url": "https://github.com/nette/neon.git", + "reference": "22e384da162fab42961d48eb06c06d3ad0c11b95" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/nette/neon/zipball/22e384da162fab42961d48eb06c06d3ad0c11b95", + "reference": "22e384da162fab42961d48eb06c06d3ad0c11b95", + "shasum": "" + }, + "require": { + "ext-json": "*", + "php": ">=7.1" + }, + "require-dev": { + "nette/tester": "^2.0", + "phpstan/phpstan": "^0.12", + "tracy/tracy": "^2.7" + }, + "bin": [ + "bin/neon-lint" + ], + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "3.3-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause", + "GPL-2.0-only", + "GPL-3.0-only" + ], + "authors": [ + { + "name": "David Grudl", + "homepage": "https://davidgrudl.com" + }, + { + "name": "Nette Community", + "homepage": "https://nette.org/contributors" + } + ], + "description": "🍸 Nette NEON: encodes and decodes NEON file format.", + "homepage": "https://ne-on.org", + "keywords": [ + "export", + "import", + "neon", + "nette", + "yaml" + ], + "support": { + "issues": "https://github.com/nette/neon/issues", + "source": "https://github.com/nette/neon/tree/v3.3.3" + }, + "time": "2022-03-10T02:04:26+00:00" + }, + { + "name": "nette/php-generator", + "version": "v4.0.4", + "source": { + "type": "git", + "url": "https://github.com/nette/php-generator.git", + "reference": "80f158a2d2fa44c1785b16a3dcdabef3120b3e71" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/nette/php-generator/zipball/80f158a2d2fa44c1785b16a3dcdabef3120b3e71", + "reference": "80f158a2d2fa44c1785b16a3dcdabef3120b3e71", + "shasum": "" + }, + "require": { + "nette/utils": "^3.2.7 || ^4.0", + "php": ">=8.0 <8.3" + }, + "require-dev": { + "nette/tester": "^2.4", + "nikic/php-parser": "^4.15", + "phpstan/phpstan": "^1.0", + "tracy/tracy": "^2.8" + }, + "suggest": { + "nikic/php-parser": "to use ClassType::from(withBodies: true) & ClassType::fromCode()" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "4.0-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause", + "GPL-2.0-only", + "GPL-3.0-only" + ], + "authors": [ + { + "name": "David Grudl", + "homepage": "https://davidgrudl.com" + }, + { + "name": "Nette Community", + "homepage": "https://nette.org/contributors" + } + ], + "description": "🐘 Nette PHP Generator: generates neat PHP code for you. Supports new PHP 8.2 features.", + "homepage": "https://nette.org", + "keywords": [ + "code", + "nette", + "php", + "scaffolding" + ], + "support": { + "issues": "https://github.com/nette/php-generator/issues", + "source": "https://github.com/nette/php-generator/tree/v4.0.4" + }, + "time": "2022-10-06T21:43:12+00:00" + }, + { + "name": "nette/robot-loader", + "version": "v3.4.1", + "source": { + "type": "git", + "url": "https://github.com/nette/robot-loader.git", + "reference": "e2adc334cb958164c050f485d99c44c430f51fe2" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/nette/robot-loader/zipball/e2adc334cb958164c050f485d99c44c430f51fe2", + "reference": "e2adc334cb958164c050f485d99c44c430f51fe2", + "shasum": "" + }, + "require": { + "ext-tokenizer": "*", + "nette/finder": "^2.5 || ^3.0", + "nette/utils": "^3.0", + "php": ">=7.1" + }, + "require-dev": { + "nette/tester": "^2.0", + "phpstan/phpstan": "^0.12", + "tracy/tracy": "^2.3" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "3.4-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause", + "GPL-2.0-only", + "GPL-3.0-only" + ], + "authors": [ + { + "name": "David Grudl", + "homepage": "https://davidgrudl.com" + }, + { + "name": "Nette Community", + "homepage": "https://nette.org/contributors" + } + ], + "description": "🍀 Nette RobotLoader: high performance and comfortable autoloader that will search and autoload classes within your application.", + "homepage": "https://nette.org", + "keywords": [ + "autoload", + "class", + "interface", + "nette", + "trait" + ], + "support": { + "issues": "https://github.com/nette/robot-loader/issues", + "source": "https://github.com/nette/robot-loader/tree/v3.4.1" + }, + "time": "2021-08-25T15:53:54+00:00" + }, + { + "name": "nette/schema", + "version": "v1.2.2", + "source": { + "type": "git", + "url": "https://github.com/nette/schema.git", + "reference": "9a39cef03a5b34c7de64f551538cbba05c2be5df" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/nette/schema/zipball/9a39cef03a5b34c7de64f551538cbba05c2be5df", + "reference": "9a39cef03a5b34c7de64f551538cbba05c2be5df", + "shasum": "" + }, + "require": { + "nette/utils": "^2.5.7 || ^3.1.5 || ^4.0", + "php": ">=7.1 <8.2" + }, + "require-dev": { + "nette/tester": "^2.3 || ^2.4", + "phpstan/phpstan-nette": "^0.12", + "tracy/tracy": "^2.7" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.2-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause", + "GPL-2.0-only", + "GPL-3.0-only" + ], + "authors": [ + { + "name": "David Grudl", + "homepage": "https://davidgrudl.com" + }, + { + "name": "Nette Community", + "homepage": "https://nette.org/contributors" + } + ], + "description": "📐 Nette Schema: validating data structures against a given Schema.", + "homepage": "https://nette.org", + "keywords": [ + "config", + "nette" + ], + "support": { + "issues": "https://github.com/nette/schema/issues", + "source": "https://github.com/nette/schema/tree/v1.2.2" + }, + "time": "2021-10-15T11:40:02+00:00" + }, + { + "name": "nette/utils", + "version": "v3.2.8", + "source": { + "type": "git", + "url": "https://github.com/nette/utils.git", + "reference": "02a54c4c872b99e4ec05c4aec54b5a06eb0f6368" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/nette/utils/zipball/02a54c4c872b99e4ec05c4aec54b5a06eb0f6368", + "reference": "02a54c4c872b99e4ec05c4aec54b5a06eb0f6368", + "shasum": "" + }, + "require": { + "php": ">=7.2 <8.3" + }, + "conflict": { + "nette/di": "<3.0.6" + }, + "require-dev": { + "nette/tester": "~2.0", + "phpstan/phpstan": "^1.0", + "tracy/tracy": "^2.3" + }, + "suggest": { + "ext-gd": "to use Image", + "ext-iconv": "to use Strings::webalize(), toAscii(), chr() and reverse()", + "ext-intl": "to use Strings::webalize(), toAscii(), normalize() and compare()", + "ext-json": "to use Nette\\Utils\\Json", + "ext-mbstring": "to use Strings::lower() etc...", + "ext-tokenizer": "to use Nette\\Utils\\Reflection::getUseStatements()", + "ext-xml": "to use Strings::length() etc. when mbstring is not available" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "3.2-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause", + "GPL-2.0-only", + "GPL-3.0-only" + ], + "authors": [ + { + "name": "David Grudl", + "homepage": "https://davidgrudl.com" + }, + { + "name": "Nette Community", + "homepage": "https://nette.org/contributors" + } + ], + "description": "🛠 Nette Utils: lightweight utilities for string & array manipulation, image handling, safe JSON encoding/decoding, validation, slug or strong password generating etc.", + "homepage": "https://nette.org", + "keywords": [ + "array", + "core", + "datetime", + "images", + "json", + "nette", + "paginator", + "password", + "slugify", + "string", + "unicode", + "utf-8", + "utility", + "validation" + ], + "support": { + "issues": "https://github.com/nette/utils/issues", + "source": "https://github.com/nette/utils/tree/v3.2.8" + }, + "time": "2022-09-12T23:36:20+00:00" + }, + { + "name": "nikic/php-parser", + "version": "v4.15.1", + "source": { + "type": "git", + "url": "https://github.com/nikic/PHP-Parser.git", + "reference": "0ef6c55a3f47f89d7a374e6f835197a0b5fcf900" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/nikic/PHP-Parser/zipball/0ef6c55a3f47f89d7a374e6f835197a0b5fcf900", + "reference": "0ef6c55a3f47f89d7a374e6f835197a0b5fcf900", + "shasum": "" + }, + "require": { + "ext-tokenizer": "*", + "php": ">=7.0" + }, + "require-dev": { + "ircmaxell/php-yacc": "^0.0.7", + "phpunit/phpunit": "^6.5 || ^7.0 || ^8.0 || ^9.0" + }, + "bin": [ + "bin/php-parse" + ], + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "4.9-dev" + } + }, + "autoload": { + "psr-4": { + "PhpParser\\": "lib/PhpParser" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Nikita Popov" + } + ], + "description": "A PHP parser written in PHP", + "keywords": [ + "parser", + "php" + ], + "support": { + "issues": "https://github.com/nikic/PHP-Parser/issues", + "source": "https://github.com/nikic/PHP-Parser/tree/v4.15.1" + }, + "time": "2022-09-04T07:30:47+00:00" + }, + { + "name": "phpstan/php-8-stubs", + "version": "0.3.51", + "source": { + "type": "git", + "url": "https://github.com/phpstan/php-8-stubs.git", + "reference": "adbc565a47ea60d10f868de57e709bcd60e46ce6" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/phpstan/php-8-stubs/zipball/adbc565a47ea60d10f868de57e709bcd60e46ce6", + "reference": "adbc565a47ea60d10f868de57e709bcd60e46ce6", + "shasum": "" + }, + "type": "library", + "autoload": { + "classmap": [ + "Php8StubsMap.php" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT", + "PHP-3.01" + ], + "description": "PHP stubs extracted from php-src", + "support": { + "issues": "https://github.com/phpstan/php-8-stubs/issues", + "source": "https://github.com/phpstan/php-8-stubs/tree/0.3.51" + }, + "time": "2022-10-26T16:01:34+00:00" + }, + { + "name": "phpstan/phpdoc-parser", + "version": "1.13.0", + "source": { + "type": "git", + "url": "https://github.com/phpstan/phpdoc-parser.git", + "reference": "33aefcdab42900e36366d0feab6206e2dd68f947" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/phpstan/phpdoc-parser/zipball/33aefcdab42900e36366d0feab6206e2dd68f947", + "reference": "33aefcdab42900e36366d0feab6206e2dd68f947", + "shasum": "" + }, + "require": { + "php": "^7.2 || ^8.0" + }, + "require-dev": { + "php-parallel-lint/php-parallel-lint": "^1.2", + "phpstan/extension-installer": "^1.0", + "phpstan/phpstan": "^1.5", + "phpstan/phpstan-phpunit": "^1.1", + "phpstan/phpstan-strict-rules": "^1.0", + "phpunit/phpunit": "^9.5", + "symfony/process": "^5.2" + }, + "type": "library", + "autoload": { + "psr-4": { + "PHPStan\\PhpDocParser\\": [ + "src/" + ] + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "description": "PHPDoc parser with support for nullable, intersection and generic types", + "support": { + "issues": "https://github.com/phpstan/phpdoc-parser/issues", + "source": "https://github.com/phpstan/phpdoc-parser/tree/1.13.0" + }, + "time": "2022-10-21T09:57:39+00:00" + }, + { + "name": "psr/container", + "version": "2.0.2", + "source": { + "type": "git", + "url": "https://github.com/php-fig/container.git", + "reference": "c71ecc56dfe541dbd90c5360474fbc405f8d5963" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/php-fig/container/zipball/c71ecc56dfe541dbd90c5360474fbc405f8d5963", + "reference": "c71ecc56dfe541dbd90c5360474fbc405f8d5963", + "shasum": "" + }, + "require": { + "php": ">=7.4.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.0.x-dev" + } + }, + "autoload": { + "psr-4": { + "Psr\\Container\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "PHP-FIG", + "homepage": "https://www.php-fig.org/" + } + ], + "description": "Common Container Interface (PHP FIG PSR-11)", + "homepage": "https://github.com/php-fig/container", + "keywords": [ + "PSR-11", + "container", + "container-interface", + "container-interop", + "psr" + ], + "support": { + "issues": "https://github.com/php-fig/container/issues", + "source": "https://github.com/php-fig/container/tree/2.0.2" + }, + "time": "2021-11-05T16:47:00+00:00" + }, + { + "name": "psr/event-dispatcher", + "version": "1.0.0", + "source": { + "type": "git", + "url": "https://github.com/php-fig/event-dispatcher.git", + "reference": "dbefd12671e8a14ec7f180cab83036ed26714bb0" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/php-fig/event-dispatcher/zipball/dbefd12671e8a14ec7f180cab83036ed26714bb0", + "reference": "dbefd12671e8a14ec7f180cab83036ed26714bb0", + "shasum": "" + }, + "require": { + "php": ">=7.2.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.0.x-dev" + } + }, + "autoload": { + "psr-4": { + "Psr\\EventDispatcher\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "PHP-FIG", + "homepage": "http://www.php-fig.org/" + } + ], + "description": "Standard interfaces for event handling.", + "keywords": [ + "events", + "psr", + "psr-14" + ], + "support": { + "issues": "https://github.com/php-fig/event-dispatcher/issues", + "source": "https://github.com/php-fig/event-dispatcher/tree/1.0.0" + }, + "time": "2019-01-08T18:20:26+00:00" + }, + { + "name": "symfony/console", + "version": "v6.1.7", + "source": { + "type": "git", + "url": "https://github.com/symfony/console.git", + "reference": "a1282bd0c096e0bdb8800b104177e2ce404d8815" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/console/zipball/a1282bd0c096e0bdb8800b104177e2ce404d8815", + "reference": "a1282bd0c096e0bdb8800b104177e2ce404d8815", + "shasum": "" + }, + "require": { + "php": ">=8.1", + "symfony/deprecation-contracts": "^2.1|^3", + "symfony/polyfill-mbstring": "~1.0", + "symfony/service-contracts": "^1.1|^2|^3", + "symfony/string": "^5.4|^6.0" + }, + "conflict": { + "symfony/dependency-injection": "<5.4", + "symfony/dotenv": "<5.4", + "symfony/event-dispatcher": "<5.4", + "symfony/lock": "<5.4", + "symfony/process": "<5.4" + }, + "provide": { + "psr/log-implementation": "1.0|2.0|3.0" + }, + "require-dev": { + "psr/log": "^1|^2|^3", + "symfony/config": "^5.4|^6.0", + "symfony/dependency-injection": "^5.4|^6.0", + "symfony/event-dispatcher": "^5.4|^6.0", + "symfony/lock": "^5.4|^6.0", + "symfony/process": "^5.4|^6.0", + "symfony/var-dumper": "^5.4|^6.0" + }, + "suggest": { + "psr/log": "For using the console logger", + "symfony/event-dispatcher": "", + "symfony/lock": "", + "symfony/process": "" + }, + "type": "library", + "autoload": { + "psr-4": { + "Symfony\\Component\\Console\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Eases the creation of beautiful and testable command line interfaces", + "homepage": "https://symfony.com", + "keywords": [ + "cli", + "command line", + "console", + "terminal" + ], + "support": { + "source": "https://github.com/symfony/console/tree/v6.1.7" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2022-10-26T21:42:49+00:00" + }, + { + "name": "symfony/deprecation-contracts", + "version": "v3.1.1", + "source": { + "type": "git", + "url": "https://github.com/symfony/deprecation-contracts.git", + "reference": "07f1b9cc2ffee6aaafcf4b710fbc38ff736bd918" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/deprecation-contracts/zipball/07f1b9cc2ffee6aaafcf4b710fbc38ff736bd918", + "reference": "07f1b9cc2ffee6aaafcf4b710fbc38ff736bd918", + "shasum": "" + }, + "require": { + "php": ">=8.1" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "3.1-dev" + }, + "thanks": { + "name": "symfony/contracts", + "url": "https://github.com/symfony/contracts" + } + }, + "autoload": { + "files": [ + "function.php" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "A generic function and convention to trigger deprecation notices", + "homepage": "https://symfony.com", + "support": { + "source": "https://github.com/symfony/deprecation-contracts/tree/v3.1.1" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2022-02-25T11:15:52+00:00" + }, + { + "name": "symfony/polyfill-ctype", + "version": "v1.26.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/polyfill-ctype.git", + "reference": "6fd1b9a79f6e3cf65f9e679b23af304cd9e010d4" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/polyfill-ctype/zipball/6fd1b9a79f6e3cf65f9e679b23af304cd9e010d4", + "reference": "6fd1b9a79f6e3cf65f9e679b23af304cd9e010d4", + "shasum": "" + }, + "require": { + "php": ">=7.1" + }, + "provide": { + "ext-ctype": "*" + }, + "suggest": { + "ext-ctype": "For best performance" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "1.26-dev" + }, + "thanks": { + "name": "symfony/polyfill", + "url": "https://github.com/symfony/polyfill" + } + }, + "autoload": { + "files": [ + "bootstrap.php" + ], + "psr-4": { + "Symfony\\Polyfill\\Ctype\\": "" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Gert de Pagter", + "email": "BackEndTea@gmail.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony polyfill for ctype functions", + "homepage": "https://symfony.com", + "keywords": [ + "compatibility", + "ctype", + "polyfill", + "portable" + ], + "support": { + "source": "https://github.com/symfony/polyfill-ctype/tree/v1.26.0" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2022-05-24T11:49:31+00:00" + }, + { + "name": "symfony/polyfill-intl-grapheme", + "version": "v1.26.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/polyfill-intl-grapheme.git", + "reference": "433d05519ce6990bf3530fba6957499d327395c2" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/polyfill-intl-grapheme/zipball/433d05519ce6990bf3530fba6957499d327395c2", + "reference": "433d05519ce6990bf3530fba6957499d327395c2", + "shasum": "" + }, + "require": { + "php": ">=7.1" + }, + "suggest": { + "ext-intl": "For best performance" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "1.26-dev" + }, + "thanks": { + "name": "symfony/polyfill", + "url": "https://github.com/symfony/polyfill" + } + }, + "autoload": { + "files": [ + "bootstrap.php" + ], + "psr-4": { + "Symfony\\Polyfill\\Intl\\Grapheme\\": "" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony polyfill for intl's grapheme_* functions", + "homepage": "https://symfony.com", + "keywords": [ + "compatibility", + "grapheme", + "intl", + "polyfill", + "portable", + "shim" + ], + "support": { + "source": "https://github.com/symfony/polyfill-intl-grapheme/tree/v1.26.0" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2022-05-24T11:49:31+00:00" + }, + { + "name": "symfony/polyfill-intl-normalizer", + "version": "v1.26.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/polyfill-intl-normalizer.git", + "reference": "219aa369ceff116e673852dce47c3a41794c14bd" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/polyfill-intl-normalizer/zipball/219aa369ceff116e673852dce47c3a41794c14bd", + "reference": "219aa369ceff116e673852dce47c3a41794c14bd", + "shasum": "" + }, + "require": { + "php": ">=7.1" + }, + "suggest": { + "ext-intl": "For best performance" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "1.26-dev" + }, + "thanks": { + "name": "symfony/polyfill", + "url": "https://github.com/symfony/polyfill" + } + }, + "autoload": { + "files": [ + "bootstrap.php" + ], + "psr-4": { + "Symfony\\Polyfill\\Intl\\Normalizer\\": "" + }, + "classmap": [ + "Resources/stubs" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony polyfill for intl's Normalizer class and related functions", + "homepage": "https://symfony.com", + "keywords": [ + "compatibility", + "intl", + "normalizer", + "polyfill", + "portable", + "shim" + ], + "support": { + "source": "https://github.com/symfony/polyfill-intl-normalizer/tree/v1.26.0" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2022-05-24T11:49:31+00:00" + }, + { + "name": "symfony/polyfill-mbstring", + "version": "v1.26.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/polyfill-mbstring.git", + "reference": "9344f9cb97f3b19424af1a21a3b0e75b0a7d8d7e" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/9344f9cb97f3b19424af1a21a3b0e75b0a7d8d7e", + "reference": "9344f9cb97f3b19424af1a21a3b0e75b0a7d8d7e", + "shasum": "" + }, + "require": { + "php": ">=7.1" + }, + "provide": { + "ext-mbstring": "*" + }, + "suggest": { + "ext-mbstring": "For best performance" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "1.26-dev" + }, + "thanks": { + "name": "symfony/polyfill", + "url": "https://github.com/symfony/polyfill" + } + }, + "autoload": { + "files": [ + "bootstrap.php" + ], + "psr-4": { + "Symfony\\Polyfill\\Mbstring\\": "" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony polyfill for the Mbstring extension", + "homepage": "https://symfony.com", + "keywords": [ + "compatibility", + "mbstring", + "polyfill", + "portable", + "shim" + ], + "support": { + "source": "https://github.com/symfony/polyfill-mbstring/tree/v1.26.0" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2022-05-24T11:49:31+00:00" + }, + { + "name": "symfony/polyfill-php80", + "version": "v1.26.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/polyfill-php80.git", + "reference": "cfa0ae98841b9e461207c13ab093d76b0fa7bace" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/polyfill-php80/zipball/cfa0ae98841b9e461207c13ab093d76b0fa7bace", + "reference": "cfa0ae98841b9e461207c13ab093d76b0fa7bace", + "shasum": "" + }, + "require": { + "php": ">=7.1" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "1.26-dev" + }, + "thanks": { + "name": "symfony/polyfill", + "url": "https://github.com/symfony/polyfill" + } + }, + "autoload": { + "files": [ + "bootstrap.php" + ], + "psr-4": { + "Symfony\\Polyfill\\Php80\\": "" + }, + "classmap": [ + "Resources/stubs" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Ion Bazan", + "email": "ion.bazan@gmail.com" + }, + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony polyfill backporting some PHP 8.0+ features to lower PHP versions", + "homepage": "https://symfony.com", + "keywords": [ + "compatibility", + "polyfill", + "portable", + "shim" + ], + "support": { + "source": "https://github.com/symfony/polyfill-php80/tree/v1.26.0" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2022-05-10T07:21:04+00:00" + }, + { + "name": "symfony/service-contracts", + "version": "v3.1.1", + "source": { + "type": "git", + "url": "https://github.com/symfony/service-contracts.git", + "reference": "925e713fe8fcacf6bc05e936edd8dd5441a21239" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/service-contracts/zipball/925e713fe8fcacf6bc05e936edd8dd5441a21239", + "reference": "925e713fe8fcacf6bc05e936edd8dd5441a21239", + "shasum": "" + }, + "require": { + "php": ">=8.1", + "psr/container": "^2.0" + }, + "conflict": { + "ext-psr": "<1.1|>=2" + }, + "suggest": { + "symfony/service-implementation": "" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "3.1-dev" + }, + "thanks": { + "name": "symfony/contracts", + "url": "https://github.com/symfony/contracts" + } + }, + "autoload": { + "psr-4": { + "Symfony\\Contracts\\Service\\": "" + }, + "exclude-from-classmap": [ + "/Test/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Generic abstractions related to writing services", + "homepage": "https://symfony.com", + "keywords": [ + "abstractions", + "contracts", + "decoupling", + "interfaces", + "interoperability", + "standards" + ], + "support": { + "source": "https://github.com/symfony/service-contracts/tree/v3.1.1" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2022-05-30T19:18:58+00:00" + }, + { + "name": "symfony/string", + "version": "v6.1.7", + "source": { + "type": "git", + "url": "https://github.com/symfony/string.git", + "reference": "823f143370880efcbdfa2dbca946b3358c4707e5" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/string/zipball/823f143370880efcbdfa2dbca946b3358c4707e5", + "reference": "823f143370880efcbdfa2dbca946b3358c4707e5", + "shasum": "" + }, + "require": { + "php": ">=8.1", + "symfony/polyfill-ctype": "~1.8", + "symfony/polyfill-intl-grapheme": "~1.0", + "symfony/polyfill-intl-normalizer": "~1.0", + "symfony/polyfill-mbstring": "~1.0" + }, + "conflict": { + "symfony/translation-contracts": "<2.0" + }, + "require-dev": { + "symfony/error-handler": "^5.4|^6.0", + "symfony/http-client": "^5.4|^6.0", + "symfony/translation-contracts": "^2.0|^3.0", + "symfony/var-exporter": "^5.4|^6.0" + }, + "type": "library", + "autoload": { + "files": [ + "Resources/functions.php" + ], + "psr-4": { + "Symfony\\Component\\String\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Provides an object-oriented API to strings and deals with bytes, UTF-8 code points and grapheme clusters in a unified way", + "homepage": "https://symfony.com", + "keywords": [ + "grapheme", + "i18n", + "string", + "unicode", + "utf-8", + "utf8" + ], + "support": { + "source": "https://github.com/symfony/string/tree/v6.1.7" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2022-10-10T09:34:31+00:00" + } + ], + "aliases": [], + "minimum-stability": "stable", + "stability-flags": { + "apigen/apigen": 15 + }, + "prefer-stable": false, + "prefer-lowest": false, + "platform": { + "php": "^8.0" + }, + "platform-dev": [], + "plugin-api-version": "2.3.0" +} diff --git a/docs/apigen/src/LatteExtension.php b/docs/apigen/src/LatteExtension.php new file mode 100644 index 000000000..8c479de97 --- /dev/null +++ b/docs/apigen/src/LatteExtension.php @@ -0,0 +1,34 @@ + $this->markdownSafe(...), + ]); + } + + /** + * To use a consistent layout between API docs and the rest of the website, + * we are outputting the HTML produced by ApiGen into Markdown files. + * The HTML output is indented, though and Zola will interpret indented lines + * following a blank line in a Markdown document as a start of a code block, + * ruining the page content. + * + * This filter removes blank lines to prevent this from happening. + */ + private function markdownSafe(FilterInfo $info, $s): string { + return preg_replace('/([\t ]*\n)+/', "\n", $s); + } +} diff --git a/docs/apigen/src/MdUrlGenerator.php b/docs/apigen/src/MdUrlGenerator.php new file mode 100644 index 000000000..4954aeb28 --- /dev/null +++ b/docs/apigen/src/MdUrlGenerator.php @@ -0,0 +1,138 @@ +baseUrl . $this->getAssetPath($name, true); + } + + + public function getAssetPath(string $name, $forUrl = false): string + { + return ($forUrl ? '' : '../../static/api/') . "assets/$name"; + } + + + public function getIndexUrl(): string + { + return $this->baseUrl . $this->toZolaUrl($this->getIndexPath()); + } + + + public function getIndexPath(): string + { + return '_index.md'; + } + + + public function getTreeUrl(): string + { + return $this->baseUrl . $this->toZolaUrl($this->getTreePath()); + } + + + public function getTreePath(): string + { + return 'tree.md'; + } + + + public function getNamespaceUrl(NamespaceIndex $namespace): string + { + return $this->baseUrl . $this->toZolaUrl($this->getNamespacePath($namespace)); + } + + + public function getNamespacePath(NamespaceIndex $namespace): string + { + return 'namespace-' . strtr($namespace->name->full ?: 'none', '\\', '.') . '.md'; + } + + + public function getClassLikeUrl(ClassLikeInfo $classLike): string + { + return $this->baseUrl . $this->toZolaUrl($this->getClassLikePath($classLike)); + } + + + public function getClassLikePath(ClassLikeInfo $classLike): string + { + return strtr($classLike->name->full, '\\', '.') . '.md'; + } + + + public function getFunctionUrl(FunctionInfo $function): string + { + return $this->baseUrl . $this->toZolaUrl($this->getFunctionPath($function)); + } + + + public function getFunctionPath(FunctionInfo $function): string + { + return 'function-' . strtr($function->name->full, '\\', '.') . '.md'; + } + + + public function getSourceUrl(string $path, ?int $startLine, ?int $endLine): string + { + if ($startLine === null) { + $fragment = ''; + + } elseif ($endLine === null || $endLine === $startLine) { + $fragment = "#$startLine"; + + } else { + $fragment = "#$startLine-$endLine"; + } + + return $this->baseUrl . $this->toZolaUrl($this->getSourcePath($path)) . $fragment; + } + + + public function getSourcePath(string $path): string + { + $relativePath = $this->getRelativePath($path); + $relativePathWithoutExtension = substr($relativePath, 0, strrpos($relativePath, '.') ?: null); + return 'source-' . strtr($relativePathWithoutExtension, DIRECTORY_SEPARATOR, '.') . '.md'; + } +} diff --git a/docs/apigen/theme/blocks/layout.latte b/docs/apigen/theme/blocks/layout.latte new file mode 100644 index 000000000..a2af0019f --- /dev/null +++ b/docs/apigen/theme/blocks/layout.latte @@ -0,0 +1,34 @@ +{varType ApiGen\Index\Index $index} +{varType ApiGen\Renderer\Latte\Template\ConfigParameters $config} +{varType ApiGen\Renderer\Latte\Template\LayoutParameters $layout} + +{define layout} ++++ +title = "{ifset title}{include title|spaceless|replace: ['\\' => '\\\\', '"' => '\\"']} | {/ifset}{$config->title|spaceless|replace: ['\\' => '\\\\', '"' => '\\"']} API" ++++ +{block|markdownSafe} +
+
+ {include menu} +
+ +
+
+ {include navbar} +
+ +
+ {include content} +
+ + +
+ +
+ +
+
+{/block} +{/define} diff --git a/docs/config.toml b/docs/config.toml new file mode 100644 index 000000000..eec8c738f --- /dev/null +++ b/docs/config.toml @@ -0,0 +1,7 @@ +title = "SimplePie" +base_url = "https://simplepie.org" + +[slugify] +# Keep old and API-generated links working. +paths = "off" +anchors = "off" diff --git a/docs/content/_index.md b/docs/content/_index.md new file mode 100644 index 000000000..5934edd74 --- /dev/null +++ b/docs/content/_index.md @@ -0,0 +1,11 @@ ++++ +title = "Super-fast, easy-to-use, RSS and Atom feed parsing in PHP." ++++ + +
+ +![Standard Feed Icon](/images/feature_feed.png) + +
+ +**_SimplePie is a very fast and easy-to-use feed parser, written in PHP, that puts the 'simple' back into 'really simple syndication'._** Flexible enough to suit beginners and veterans alike, SimplePie is focused on [speed, ease of use, compatibility and standards compliance](/wiki/faq/what_is_simplepie). diff --git a/docs/content/blog/2006-01-09-scheduled-downtime.md b/docs/content/blog/2006-01-09-scheduled-downtime.md new file mode 100644 index 000000000..3a019b04b --- /dev/null +++ b/docs/content/blog/2006-01-09-scheduled-downtime.md @@ -0,0 +1,13 @@ ++++ +title = "Scheduled Downtime" +date = 2006-01-09T16:17:00Z + +[extra] +author = "Ryan Parman" ++++ + +[Dreamhost](http://www.dreamhost.com/r.cgi?skyzyx) (our webhost) as informed us that SimplePie.org will be down for scheduled maintenance for about an hour beginning Tuesday, Jan 10 at 11:00pm (Pacific; GMT-8:00). + +Across timezones, this is: **London:** Wednesday, Jan 11 at 10:00am (GMT), and **Melbourne:** Wednesday, Jan 11 at 5:00pm (GMT+10:00). Everyone else should be able to figure out where they fall in that schedule. + +If you have support issues, or simply can’t wait to download SimplePie again, please wait until after this window has passed. Thanks. diff --git a/docs/content/blog/2006-01-09-simplepie-org-is-live.md b/docs/content/blog/2006-01-09-simplepie-org-is-live.md new file mode 100644 index 000000000..290e114aa --- /dev/null +++ b/docs/content/blog/2006-01-09-simplepie-org-is-live.md @@ -0,0 +1,19 @@ ++++ +title = "SimplePie.org is live!" +date = 2006-01-09T10:10:00Z + +[extra] +author = "Ryan Parman" +cover_image = "/images/128/simplepie.png" +cover_image_alt = "Simplepie" ++++ + +After several months of development and stressing over bugs we couldn’t figure out (but finally did), we’re finally ready for the [1.0 Preview Release](/downloads/). + +This isn’t a final release of SimplePie 1.0… yet. We know that there are still a handful of quirks, and we want to get those worked out. If you’re interested in downloading and testing your favorite feeds, by all means, please do. We want the 1.0 release to be as bug-free as possible. + +If you don’t feel like downloading and installing anything, then feel free to use our ready-to-go [SimplePie Demo](/demo/). All we ask that you do is enter a feed URL (or just the website URL if the site has auto-discovery enabled), and hopefully the resulting page should come back with all links and such working as they’re supposed to. If not, please [file a bug report](http://support.simplepie.org/?CategoryID=2) so that we can get working on it. + +If you’re testing SimplePie, or looking through the [documentation](/docs/) and realize that SimplePie is missing some functionality, then please [let us know](http://support.simplepie.org/?CategoryID=3)! SimplePie will never be the best it can be unless people like you let us know what you want. + +We hope that you find this to be an awesome release. If you’re upgrading from an earlier version, you should know that we’ve made SimplePie object-oriented since 0.96, and some code tweaking (not overhauling) is in order. Be sure to read the setup and install docs to find out what you need to know. diff --git a/docs/content/blog/2006-01-10-version-10-preview-release-bugfix-1.md b/docs/content/blog/2006-01-10-version-10-preview-release-bugfix-1.md new file mode 100644 index 000000000..1acfc454e --- /dev/null +++ b/docs/content/blog/2006-01-10-version-10-preview-release-bugfix-1.md @@ -0,0 +1,9 @@ ++++ +title = "Version 1.0 Preview Release (Bugfix 1)" +date = 2006-01-10T09:42:00Z + +[extra] +author = "Ryan Parman" ++++ + +Just hours after we released version 1.0PR, one of our beta testers discovered a bug that could potentially throw PHP into an infinite loop causing crashes and such. Because of this, we’ve released an update that fixes this critical issue. If you’ve already downloaded the Preview Release, please [upgrade to this version](/downloads/) ASAP. diff --git a/docs/content/blog/2006-01-17-whats-coming-in-10-beta.md b/docs/content/blog/2006-01-17-whats-coming-in-10-beta.md new file mode 100644 index 000000000..3f9fc1ff5 --- /dev/null +++ b/docs/content/blog/2006-01-17-whats-coming-in-10-beta.md @@ -0,0 +1,14 @@ ++++ +title = "What’s coming in 1.0 Beta?" +date = 2006-01-17T07:18:00Z + +[extra] +author = "Ryan Parman" ++++ + +SimplePie 1.0 Beta will be a very exciting release for us! We’ve been hard at work fixing bugs in 1.0 PR, and SimplePie is a better quality product because of it. We’ve also been working on a few new features for this release that we’re pretty happy about. The ones that have already been implemented are: + +- **Multilingual Support:** Out of the box, SimplePie 1.0 Beta will support all of the character sets that PHP supports by default. These include UTF-8, ISO-8859-1, ISO-8859-15, Windows-1251, Windows-1252, cp866, KOI8-R, BIG5, BIG5-HKSCS, GB2312, Shift_JIS, and EUC-JP. +- **Ultra-Liberal Feed Locator:** We’ve been working to replicate Mark Pilgrim’s [Ultra-Liberal Feed Locator](http://diveintomark.org/archives/2002/08/15/ultraliberal_rss_locator) (points 1-6) in PHP. We’re still doing some bug hunting on it, but we believe that this is a solid replacement of standard RSS Auto-Discovery (points 1-2). + +There are a few other features that we’ve been working on, but they’re not finished yet, so we’ll comment on them later. We hope that you’re as excited about this next release as we are and, assuming all goes well, we’re expecting to release the 1.0 Beta on Monday, January 23rd. diff --git a/docs/content/blog/2006-01-21-new-tips-tricks-and-demos.md b/docs/content/blog/2006-01-21-new-tips-tricks-and-demos.md new file mode 100644 index 000000000..d3c046a77 --- /dev/null +++ b/docs/content/blog/2006-01-21-new-tips-tricks-and-demos.md @@ -0,0 +1,13 @@ ++++ +title = "New Tips, Tricks, and Demos" +date = 2006-01-21T11:49:00Z + +[extra] +author = "Ryan Parman" +cover_image = "/images/128/brain.png" +cover_image_alt = "Brain" ++++ + +As we get ready for the impending release of SimplePie 1.0 Beta, we’ve decided to put together a couple of new [ideas](/ideas/). The first discusses how to [display non-english feeds correctly](/ideas/tips-and-tricks/display-non-english-feeds-correctly/) (or even english feeds that just have different character encodings), while the other is a [Last.fm AJAX](/ideas/demos/last-fm-ajax/) demo built in the same vein as the earlier [Del.icio.us AJAX](/ideas/demos/delicious-ajax/) demo. + +Check ’em out! Maybe they’ll give you ideas for what else you can use SimplePie for… diff --git a/docs/content/blog/2006-01-27-simplepie-10-beta-coming-this-weekend.md b/docs/content/blog/2006-01-27-simplepie-10-beta-coming-this-weekend.md new file mode 100644 index 000000000..8317c5af5 --- /dev/null +++ b/docs/content/blog/2006-01-27-simplepie-10-beta-coming-this-weekend.md @@ -0,0 +1,13 @@ ++++ +title = "SimplePie 1.0 Beta coming this weekend!" +date = 2006-01-27T17:19:00Z + +[extra] +author = "Ryan Parman" +cover_image = "/images/128/osx-login.png" +cover_image_alt = "Info" ++++ + +The 1.0 Beta release will bring with it improved support for current features, as well as new features all-together. We’re putting the spit and polish on it as we speak, and are planning to have it out sometime over the weekend. + +As a note, this is still a beta, and some things may change a little or a lot by the time 1.0 hits the streets. We’re always open to suggestions, if you want to stop by the [SimplePie forums](http://support.simplepie.org/categories.php), and let us know how we can make it better! diff --git a/docs/content/blog/2006-01-28-simplepie-feed-url-has-changed.md b/docs/content/blog/2006-01-28-simplepie-feed-url-has-changed.md new file mode 100644 index 000000000..c98a51310 --- /dev/null +++ b/docs/content/blog/2006-01-28-simplepie-feed-url-has-changed.md @@ -0,0 +1,15 @@ ++++ +title = "SimplePie feed URL has changed" +date = 2006-01-28T04:01:00Z + +[extra] +author = "Ryan Parman" +cover_image = "/images/128/feed.png" +cover_image_alt = "Feed" ++++ + +If you’ve already subscribed to the SimplePie blog feed, please update your feed readers to use . + +I would just redirect it with `mod_rewrite`, but I’m not sure if that’ll foul up WordPress at all. Hopefully it wouldn’t, but please just update your feeds anyways. + +Thanks, and sorry for the hassle. diff --git a/docs/content/blog/2006-01-29-bypass-hotlink-blocking-when-displaying-a-feed.md b/docs/content/blog/2006-01-29-bypass-hotlink-blocking-when-displaying-a-feed.md new file mode 100644 index 000000000..660a26157 --- /dev/null +++ b/docs/content/blog/2006-01-29-bypass-hotlink-blocking-when-displaying-a-feed.md @@ -0,0 +1,90 @@ ++++ +title = "Bypass “hotlink blocking” when displaying a feed (Beta 1)" +date = 2006-01-29T23:46:00Z + +[extra] +author = "Ryan Parman" ++++ + +**Requirements:** SimplePie 1.0 Beta 1 + +
+ +_This tutorial has been superceded by [a newer version](/blog/2006/06/03/bypass-hotlink-blocking-when-displaying-a-feed-beta-2/)._ + +In my quest for making a feed parser that is intelligent, simple, and graceful, one thing that has always bugged me about online feed readers is that some people disable the ability to hotlink images. + +Now, I understand why they do this, because I do it too. You don’t want a bunch of your bandwidth sucked up by people who are stealing your images for their own nefarious purposes (mwah-hah-hah!). Rather, you’d prefer to keep the images for _your readers who are reading your content_. Well, that’s exactly what a feed parser is for, right? + +Desktop aggregators like [Feed Demon](http://www.feeddemon.com) and [NetNewsWire](http://ranchero.com/netnewswire/) are always able to just load up the images in context with the post that they’re reading, and it all makes sense. The only reason why online feed readers have a problem is because the browsers that run them respect the hotlinking rules—even if the reasons don’t make sense for the context (like trying to apply laws about CD’s to MP3’s—although they’re related, they’re different, and the rules need to be modified for the new medium). + +So, we’ve decided to solve the problem in our latest release. Here’s how to bypass hotlink protection for feeds that you’re trying to read online. We’ve added a new function called `display_image()` that will take the URL of the image and display it—blocked or not. + +Here’s how it’s done. First we want to take our page (I’ll be using the demo page that is included with the SimplePie download), and make a small modification to the head of the page. We’re going to take the source code, and add the bolded part below: + +```php +feed_url($_GET['feed']); + $feed->init(); + if (!headers_sent() && $feed->get_encoding()) { + header('Content-type: text/html; charset=' . $feed->get_encoding()); + } +} +else if (!empty($_GET['i'])) { + $feed->display_image($_GET['i']); +} +?> + + + +SimplePie: Demo +What did we just do? We told the page that: + +If we're not passing the feed parameter to the page (like index.php?feed=url_goes_here), then check for the i parameter. (I chose i because it's short for "image". You can choose anything you want.) +If the i parameter exists, pass it to the display_image() function. + +The display_image() function is an exception to standard SimplePie processing in that it doesn't return any value. It automatically echo's the image content to the page. So, if load up our page like index.php?i=url_of_image, we should see the image— and only the image—on the page. +Now, we just need to modify the value of all the <img src="" /> tags on the page, so that they all get passed through our new script. Specifically, we're looking for all off-site images, not our own local ones, so let's make sure to target those. +The simplest way is with JavaScript, although you're free to use other languages if you prefer. I wrote something that looks like this (I assumed an XHTML page, and I'm using an anonymous function): + +<script type="text/javascript"> +//<![CDATA[ + +(function(){ + + // Get an array of all of the <img> tags in the page + var img = document.getElementsByTagName('img'); + + // Count how many there are, and store that number for faster processing + var imgLength = img.length; + + // Loop through all of the images. Unfortuately, JavaScript doesn't have a foreach() function. + for (var x=0; x<imgLength; x++) { + + // Check to make sure that the image we have is off-site + if (img[x].src.substring(0,4) == 'http') { + + // Pass the URL as the value for the 'i' parameter. + img[x].src = '?i=' + img[x].src; + } + } +})(); + +//]]> +</script> +``` + +If you place this script at the very bottom of your page, right above the closing `</body>` tag, the script will re-write your external image URL's to have them pass through our function, and they'll all show up on your feed reader page, just like they do in the desktop aggregators. + +Have fun! This code has been implemented in the demo that comes with the [SimplePie 1.0 Beta download](/downloads/). + +</div> diff --git a/docs/content/blog/2006-01-29-delicious-ajax.md b/docs/content/blog/2006-01-29-delicious-ajax.md new file mode 100644 index 000000000..da41e045d --- /dev/null +++ b/docs/content/blog/2006-01-29-delicious-ajax.md @@ -0,0 +1,54 @@ ++++ +title = "Del.icio.us AJAX" +date = 2006-01-29T15:20:00Z + +[extra] +author = "Ryan Parman" ++++ + +<div class="chunk"> + +In this demo, I will show you how to use the Ajax capabilities of Moo.ajax with Prototype Lite in conjunction with SimplePie and del.icio.us. + +</div> + +<div class="chunk"> + +#### What you’ll need for this demo + +- A [del.icio.us](http://del.icio.us) account (preferably with bookmarks already in it) +- The [delicious-ajax](/downloads/delicious-ajax.zip) package +- And, of course, the latest [SimplePie](http://www.simplepie.org/downloads/) for the RSS parsing (1.0PR or later) + +</div> + +<div class="chunk"> + +#### What you need to do + +1. Unzip the `delicious-ajax.zip` file. +2. In the resulting package is a PHP folder. Drop the latest version of `simplepie.inc` into that folder. +3. Edit the parameters in the JavaScript function near the bottom of the `demo.php` source to list your own del.icio.us feed URL and number of entries to show. +4. Upload the whole `delicious` folder to your webserver (or your localhost) +5. Set the cache folder to server-writable. +6. Load the `demo.php` into your web browser, and voila! + +</div> + +<div class="chunk"> + +#### Live Demo + +→ [Del.icio.us AJAX Demo](/demo/demos/delicious-ajax/) + +</div> + +#### Use it in your own site + +I suppose I should also mention that this exact same code can be used for any feed — not just delicious feeds. Of course, you might want to fine-tune it for services like [Last.fm](http://www.last.fm) and [Flickr](http://www.flickr.com), but that shouldn’t be too hard. + +I made it a point to keep all of the various code languages as separate as possible. This should make it simple to bring this demo into your own webpages. + +The only things that are required for this to work are: (1) simplepie.inc, (2) process.php, (3) prototype.lite.js, (4) moo.ajax.js, and (5) delicious-ajax.js. These five files bring the backend and frontend pieces together so that all you have to worry about is coding a `<div>` with an `id` and calling the `process(id, url, qty)` function either at the end of the page’s source code, or have it fire on body onload. + +As simple as pie! diff --git a/docs/content/blog/2006-01-29-display-non-english-feeds-correctly.md b/docs/content/blog/2006-01-29-display-non-english-feeds-correctly.md new file mode 100644 index 000000000..64aa35dd5 --- /dev/null +++ b/docs/content/blog/2006-01-29-display-non-english-feeds-correctly.md @@ -0,0 +1,77 @@ ++++ +title = "Display non-english feeds correctly (PR/Beta 1)" +date = 2006-01-29T23:46:00Z + +[extra] +author = "Ryan Parman" ++++ + +**Requirements:** SimplePie 1.0 Preview Release (or newer) + +<div class="chunk noborder"> + +_This tutorial has been superceded by [a newer version](/blog/2006/06/03/display-non-english-feeds-correctly-beta-2/)._ + +Have you ever had problems displaying feeds properly on your pages? I ran into an issue a few times when I was trying to display an iTunes Music Store feed, and Beyoncé kept coming out as Beyonc\[enter-garbled-text-here\]. I soon realized that the problem occurred because my pages were being served as ISO-8859-1, and the iTMS feed was being sent as UTF-8. + +The solution is really quite simple. + +All you have to do is make sure that the page is being served and handled in the same character set that the feed is. Fortunately, SimplePie has a built-in function that lets you determine what the feed is being served in: `get_encoding()`. + +Ideally, when you’re loading a page with SimplePie in it, you’ll do that part at the very beginning of the page. Doing so will help you serve the page correctly. + +```php +<?php +// Start counting time for loading... +$starttime = explode(' ', microtime()); +$starttime = $starttime[1] + $starttime[0]; + +include('../simplepie.inc'); + +// Parse it +$feed = new SimplePie(); +if (!empty($_GET['feed'])) { + $feed->feed_url($_GET['feed']); + if (isset($_GET['xmldump'])) { + $feed->enable_xmldump($_GET['xmldump']); + } + $feed->init(); + + // This is the part to pay attention to + if (!headers_sent() && $feed->get_encoding()) { + header('Content-type: text/html; charset=' . $feed->get_encoding()); + } +} +?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> + +<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en-US" lang="en-US"> +<head> +``` + +We specifically want to focus in on this chunk: + +```php +if (!headers_sent() && $feed->get_encoding()) { + header('Content-type: text/html; charset=' . $feed->get_encoding()); +} +``` + +The logic here is simple: + +1. As long as page headers haven’t been sent yet +2. And the feed encoding has been detected +3. Then add the encoding to the headers and send them to the browser + +Make sense? Hopefully so, because it can’t get too much simpler. 🙂 + +</div> + +There’s another part of this that is also important: the `<meta>` tag. All we have to do is make sure that the right encoding is set in the right meta tag. Let’s take a look: + +```php +<meta http-equiv="Content-Type" content="text/html;charset=<?php echo $feed->get_encoding(); ?>" /> +``` + +Just make sure that this meta tag is included in your SimplePie-enabled pages, and your page will always be served with the correct character encoding for the page (as long as the character encoding is supported by SimplePie, and as of 1.0 Beta, a large number are). + +If you’re loading a feed into a page dynamically (like in our [Delicious AJAX](/ideas/demo/delicious-ajax/) demo), your best bet is to serve the page as UTF-8, since most languages are translated into UTF-8 inside SimplePie anyways. “When in doubt, serve as UTF-8.” diff --git a/docs/content/blog/2006-01-29-lastfm-ajax.md b/docs/content/blog/2006-01-29-lastfm-ajax.md new file mode 100644 index 000000000..ebc9c11ca --- /dev/null +++ b/docs/content/blog/2006-01-29-lastfm-ajax.md @@ -0,0 +1,9 @@ ++++ +title = "Last.fm AJAX" +date = 2006-01-29T15:21:00Z + +[extra] +author = "Ryan Parman" ++++ + +**Update (2 October 2007):** This demo is WAAAAAAAAYYY outdated, and didn’t work anymore with newer versions of SimplePie. Since then, we’ve released the awesome [SimplePie Live!](http://live.simplepie.org) service which is much better geared for AJAX-style uses. Check out the updated [Last.fm AJAX tutorial](/wiki/live/tutorial/lastfm). diff --git a/docs/content/blog/2006-01-29-simplepie-10-beta-now-available.md b/docs/content/blog/2006-01-29-simplepie-10-beta-now-available.md new file mode 100644 index 000000000..ad2661fa7 --- /dev/null +++ b/docs/content/blog/2006-01-29-simplepie-10-beta-now-available.md @@ -0,0 +1,13 @@ ++++ +title = "SimplePie 1.0 Beta now available!" +date = 2006-01-29T23:34:00Z + +[extra] +author = "Ryan Parman" +cover_image = "/images/128/star.png" +cover_image_alt = "Star" ++++ + +[SimplePie 1.0 Beta](/downloads/) is now available for public consumption. Lots of cool new things in this release, as you can check out in the [Version History](/docs/version_history.php). There’s also another entry in the Tips and Tricks section entitled [“Bypass ‘hotlink blocking’ when displaying a feed.”](http://www.simplepie.org/ideas/tips-and-tricks/bypass-hotlink-blocking-when-displaying-a-feed/), and the ever-popular [Del.icio.us](/ideas/demos/delicious-ajax/)/[Last.fm](/ideas/demos/last-fm-ajax/) AJAX demos are also taking advantage of the new features in this release. + +All existing SimplePie users are encouraged to upgrade ASAP. No existing functions were changed or depreciated, so you should be able to just drop the new file right in. We do recommend, however, that you take a look at our [Tips and Tricks](/ideas/tips-and-tricks/) section to find ways to optimize your use of SimplePie. diff --git a/docs/content/blog/2006-01-30-simplepie-has-a-new-license.md b/docs/content/blog/2006-01-30-simplepie-has-a-new-license.md new file mode 100644 index 000000000..2a9aacfcc --- /dev/null +++ b/docs/content/blog/2006-01-30-simplepie-has-a-new-license.md @@ -0,0 +1,15 @@ ++++ +title = "SimplePie has a new license" +date = 2006-01-30T00:15:00Z + +[extra] +author = "Ryan Parman" +cover_image = "/images/128/license.png" +cover_image_alt = "License" ++++ + +I had a couple of people ask me about the license that we were using. Some suggested that since it was a Share-alike license, that they wouldn’t be able to use SimplePie in their project because the licenses were different. + +After taking another look, I discussed possible solutions with [Geoffrey](http://geoffers.uni.cc). He suggested I look at the licenses at opensource.org. I looked through some of them—namely the zlib/libpng license, as well as the MIT license, but I felt that they were both a bit unstructured for what I was looking for. I went back to the [Creative Commons](http://creativecommons.org) site, and decided to settle on the Creative Commons [Attribution License](http://www.creativecommons.org/licenses/by/2.5/). Essentially, it’s as open as any of the “open source” licenses as far as use, copying, and distribution go, but it requires that users must leave all copyright notices intact—which was the main thing I was looking for. + +So there you go. You can use SimplePie however you want, in whatever projects you want, as long as the copyright notice in the source code stays in place. Happy distributing! diff --git a/docs/content/blog/2006-02-05-comments-temporarily-broken.md b/docs/content/blog/2006-02-05-comments-temporarily-broken.md new file mode 100644 index 000000000..d869e16e8 --- /dev/null +++ b/docs/content/blog/2006-02-05-comments-temporarily-broken.md @@ -0,0 +1,13 @@ ++++ +title = "Comments temporarily broken" +date = 2006-02-05T15:42:00Z + +[extra] +author = "Ryan Parman" +cover_image = "/images/128/crying.png" +cover_image_alt = "Crying" ++++ + +For some reason, when I upgraded this site to WordPress 2.0.1, the comments broke. I’ve posted a topic in the [WordPress forums](http://wordpress.org/support/topic/59452), and I’m hoping to get a response soon. In the meantime, I’ll be digging into the issue on my own as well and will hopefully get the comments working again ASAP. + +Sorry about this, for those of you who were desperately wanting to post a comment! diff --git a/docs/content/blog/2006-02-05-search-this-site-powered-by-google.md b/docs/content/blog/2006-02-05-search-this-site-powered-by-google.md new file mode 100644 index 000000000..55684ee63 --- /dev/null +++ b/docs/content/blog/2006-02-05-search-this-site-powered-by-google.md @@ -0,0 +1,19 @@ ++++ +title = "Search this site, powered by Google" +date = 2006-02-05T08:59:00Z + +[extra] +author = "Ryan Parman" +cover_image = "/images/128/search.png" +cover_image_alt = "Search" ++++ + +I decided to try my hand at adding a way to [search this site](/search/). The two that I really took a look at were [Yahoo](http://search.yahoo.com) and [Google](http://google.com). I decided to start with Yahoo, since they have an HTTP GET [REST](http://en.wikipedia.org/wiki/Representational_State_Transfer) interface that’s easy to work with, and the resulting XML can be easily parsed with [XMLize](http://hansanderson.com/php/xml/), my favorite software for XML parsing. + +I was able to get the Yahoo site search up, running, and fine-tuned in just a couple of hours (got it functional in 20 minutes, and spent the rest of the time tweaking it). That was great and all, but it seems that Yahoo only has about 3 pages of [SimplePie.org](http://simplepie.org) indexed. I went ahead and submitted this site so that it would be indexed, and decided to just wait. That was 2 weeks ago. + +So yesterday, I decided to take a look at Google’s search. At first, I was hesitant because Google uses a [SOAP](http://en.wikipedia.org/wiki/SOAP) interface which always seemed like a pain to use, so I always shyed away from it and went for REST interfaces instead. I took a brief look at MSN search as well, but they also use SOAP, so I figured I’d stick with the lesser of the two evils, and go with Google. + +I had some problems initially because I just switched SimplePie.org from PHP 4.4.1 to 5.0.4 yesterday, and apparently the PEAR extensions (that handle SOAP requests) are in a different spot than they were for PHP 4.x. To make a long story short (or ‘shorter’, rather), I found some software called [NuSOAP](http://sourceforge.net/projects/nusoap) that makes SOAP requests easy. Coupled with that, I also came across an article on Stylegala entitled [“Making a google search engine with standards”](http://stylegala.com/articles/making_a_google_search_engine_with_standards.htm) which uses NuSOAP in its example. + +So now, you can search this site for content the same as you would in the real Google, and it’s all powered by the NuSOAP library and a heavily modified version of the script available from Stylegala. It’s still a \*little\* buggy, but I’ll be working to fine-tune it a bit better over the coming weeks. Happy searching! diff --git a/docs/content/blog/2006-02-05-simplepie-mobile-beta.md b/docs/content/blog/2006-02-05-simplepie-mobile-beta.md new file mode 100644 index 000000000..43c77a5be --- /dev/null +++ b/docs/content/blog/2006-02-05-simplepie-mobile-beta.md @@ -0,0 +1,15 @@ ++++ +title = "SimplePie Mobile (Beta)" +date = 2006-02-05T16:11:00Z + +[extra] +author = "Ryan Parman" +cover_image = "/images/128/mobile.png" +cover_image_alt = "Mobile" ++++ + +We’ve taken the SimplePie demo, and stripped it down into the perfect online RSS and Atom feed reader for mobile devices. We call it [SimplePie Mobile](http://mobile.simplepie.org). Using XHTML and CSS, we were able to keep the page size small, and although the site may look funny in a desktop browser, it’s a perfect fit for my [Sony PSP](http://www.us.playstation.com/psp.aspx) and [Palm TX](http://www.palm.com/us/products/handhelds/tx/). + +We just put this together today, so there are bound to be some issues here and there. We’ll be working on perfecting this service over time. Also remember that SimplePie itself is still in Beta, and we’re working hard on upcoming releases. + +Got a PSP, Palm, or web-enabled cell phone? Take [SimplePie Mobile](http://mobile.simplepie.org) for a spin. diff --git a/docs/content/blog/2006-02-25-working-hard-on-simplepie-10-beta-2.md b/docs/content/blog/2006-02-25-working-hard-on-simplepie-10-beta-2.md new file mode 100644 index 000000000..4426f932e --- /dev/null +++ b/docs/content/blog/2006-02-25-working-hard-on-simplepie-10-beta-2.md @@ -0,0 +1,19 @@ ++++ +title = "Working hard on SimplePie 1.0 Beta 2" +date = 2006-02-25T23:41:00Z + +[extra] +author = "Ryan Parman" +cover_image = "/images/128/designer.png" +cover_image_alt = "Designer" ++++ + +It’s still in development, but we’re working hard on Beta 2. At the moment, Geoffrey is stripping out what little remaining “Parman code” is left from the 0.9x releases, and replacing it with all kinds of pure OO goodness. This will definitely mean some syntax changes when the release becomes available, but we believe that these are necessary changes that need to be made in order to preserve the longetivity of SimplePie. + +Our focuses are still speed and ease of use, but things like improved compatibility are also high on the priority list. One of the big pushes for this release is improved Atom 1.0 support. There are some parts of the Atom 1.0 spec that are more complicated to implement, so it’s taking a bit more time to make sure it all works as expected, but we want to make sure that we do it right. If you come across any feeds that are rendering funky with SimplePie, please let us know about it at the forums. + +SimplePie is not a validating feed parser, meaning that it doesn’t care if your feed follows the spec or not. We more-or-less subscribe to the Mark Pilgrim school of thought that feeds should be parsed at all costs—to a reasonable extent. It’s not the reader’s fault if the publisher is a moron and can’t put a feed together properly. Generally, if the feed resembles valid XML, we’ll do our best to parse out the feeds we support (we never had the intention of supporting ALL elements either—just the most commonly used ones, although that seems to be changing with these 1.0 pre-releases). The only reason we wouldn’t is if the feed is so bad that making the changes to SimplePie in order to parse out the feed would be unreasonable. I know this kinda follows the way Internet Explorer has traditionally handled HTML (which is generally regarded as a bad, bad, very bad thing), but it’s the publisher that should be educated—not the reader who should be punished. Maybe we’ll change our “damage control” handling so that it only kicks in if an error was encountered on the first pass of the feed… we’ll see. + +Additionally, one of our desires is to add developer hooks into SimplePie that will allow people like you to add support for elements and microformats that go beyond RSS 0.9x/1.0/2.0x and Atom 0.3/1.0. Custom namespaces like media:, dc:, sy:, and the iTunes podcast stuff are things that will be left up to extensions, so that we can focus on improving things like parsing, caching, speed, feed detection, and RSS/Atom specs. Again, this functionality is still on the drawing board and may or may not ever make it into SimplePie, but that’s something we really want to add as soon as we can figure out the best way to go about it. + +Be sure to visit the support forums if you have bugs, feature requests, or just have an opinion about SimplePie—positive or negative. We want SimplePie to be the best software in it’s genre, but we can’t do that without feedback. If you’re a blogger, keep blogging about it. We also keep track of what people are saying through services like del.icio.us, Technorati, and our stats-tracking software, so please keep talking. We’re listening. diff --git a/docs/content/blog/2006-03-01-comments-are-back-up.md b/docs/content/blog/2006-03-01-comments-are-back-up.md new file mode 100644 index 000000000..4643caef4 --- /dev/null +++ b/docs/content/blog/2006-03-01-comments-are-back-up.md @@ -0,0 +1,9 @@ ++++ +title = "Comments are back up!" +date = 2006-03-01T06:59:00Z + +[extra] +author = "Ryan Parman" ++++ + +They were broken, but now they’re fixed. If you were holding off from making a comment to this site, you can do it now! 🙂 diff --git a/docs/content/blog/2006-03-03-digg-wikipedia-and-irc.md b/docs/content/blog/2006-03-03-digg-wikipedia-and-irc.md new file mode 100644 index 000000000..82e868381 --- /dev/null +++ b/docs/content/blog/2006-03-03-digg-wikipedia-and-irc.md @@ -0,0 +1,13 @@ ++++ +title = "Digg, Wikipedia, and IRC" +date = 2006-03-03T13:05:00Z + +[extra] +author = "Ryan Parman" ++++ + +First off, [SimplePie has been dugg](http://digg.com/programming/SimplePie:_RSS_Parser_for_PHP_That_Trumps_Magpie) (or is it “digged”?). If you like SimplePie, or even care anything about it at all, please digg the article! We’re stoked that we’ve been ushered into the world of being paid attention to. + +Secondly, [SimplePie is now an entry at Wikipedia](http://en.wikipedia.org/wiki/SimplePie)! We’re still working on some of the details about the projects history and some features and stuff, but feel free to read what’s there and make ntoes of your own, if you so choose. + +Lastly, SimplePie now has it’s own [IRC channel](irc://irc.freenode.net:6667/simplepie) on irc.freenode.net, `#simplepie`. This address will be posted in the forums, as well as on our soon-coming contact page. If you’re into IRC, go check it out. diff --git a/docs/content/blog/2006-03-05-simplepie-contact-page.md b/docs/content/blog/2006-03-05-simplepie-contact-page.md new file mode 100644 index 000000000..eb9e355ab --- /dev/null +++ b/docs/content/blog/2006-03-05-simplepie-contact-page.md @@ -0,0 +1,9 @@ ++++ +title = "SimplePie Contact Page" +date = 2006-03-05T19:46:00Z + +[extra] +author = "Ryan Parman" ++++ + +Our [contact form](/contact/) is now up and running. Feel free to drop us a line anytime! diff --git a/docs/content/blog/2006-03-06-forums-powered-by-punbb.md b/docs/content/blog/2006-03-06-forums-powered-by-punbb.md new file mode 100644 index 000000000..cc425ecce --- /dev/null +++ b/docs/content/blog/2006-03-06-forums-powered-by-punbb.md @@ -0,0 +1,15 @@ ++++ +title = "Forums powered by PunBB" +date = 2006-03-06T20:44:00Z + +[extra] +author = "Ryan Parman" +cover_image = "/web/20190404091911im_/http://simplepie.org/images/128/punbb.png" +cover_image_alt = "PunBB" ++++ + +Previously, we were using Lussumo’s [Vanilla forum software](http://getvanilla.com/), but it never felt quite right to use, was difficult to customize, and I really just didn’t like it. [PunBB](http://punbb.org/), however, is solid forum software that feels like a forum, is well supported, and is easy to customize. I think that this is a good move for us. + +The flip-side of that is the fact that (a) <s>you’ll need to re-register at the forums, and</s> (b) I copy-pasted all of the forum topics from the old forum into the current forum, meaning that all old posts are said to have been made by me. Most of the old issues have been closed, so this shouldn’t be such a big deal, but if you see “Skyzyx” as the author for everything, then you know why. + +Anyways, sorry for any inconvenience this may have caused, but this should turn out to be a good move overall. diff --git a/docs/content/blog/2006-03-26-we-need-your-feeds.md b/docs/content/blog/2006-03-26-we-need-your-feeds.md new file mode 100644 index 000000000..a08649681 --- /dev/null +++ b/docs/content/blog/2006-03-26-we-need-your-feeds.md @@ -0,0 +1,11 @@ ++++ +title = "We need your feeds!" +date = 2006-03-26T15:32:00Z + +[extra] +author = "Ryan Parman" +cover_image = "/images/128/feed.png" +cover_image_alt = "Feeds" ++++ + +RSS and Atom feeds that aren’t either UTF-8 or ISO-8859-1 have proven difficult to find, so I’m calling out to all of you. If you read or publish feeds that are in a character set other than these two, please post them here in the comments. We’ve just finished adding `iconv` support to SimplePie, and want to test that support (it’s in the trunk build as of this moment). Any help along these lines would be appreciated. diff --git a/docs/content/blog/2006-03-28-more-simplepie-ideas.md b/docs/content/blog/2006-03-28-more-simplepie-ideas.md new file mode 100644 index 000000000..9269d7c84 --- /dev/null +++ b/docs/content/blog/2006-03-28-more-simplepie-ideas.md @@ -0,0 +1,17 @@ ++++ +title = "More SimplePie Ideas!" +date = 2006-03-28T10:01:00Z + +[extra] +author = "Ryan Parman" +cover_image = "/images/128/brain.png" +cover_image_alt = "Ideas" ++++ + +We’ve added a few more ideas to the [SimplePie Ideas](/ideas/) section. Most of these are examples on other sites, but people are doing some interesting things with SimplePie! + +- [écornifleur](/ideas/external-links/ecornifleur/ "écornifleur") +- [Integrate the Odeo Player](/ideas/external-links/integrate-the-odeo-player/ "Integrate the Odeo Player") +- [No Frills SimplePie](/ideas/external-links/no-frills-simplepie/ "No Frills SimplePie") +- [Organizing Several Feeds By Date](/ideas/external-links/organizing-several-feeds-by-date/ "Organizing Several Feeds By Date") +- [Put Google Video feeds on your site](/ideas/external-links/put-google-video-feeds-on-your-site/ "Put Google Video feeds on your site") diff --git a/docs/content/blog/2006-04-06-screenshots-of-simplepie-10-beta-2-in-action.md b/docs/content/blog/2006-04-06-screenshots-of-simplepie-10-beta-2-in-action.md new file mode 100644 index 000000000..64f0137e1 --- /dev/null +++ b/docs/content/blog/2006-04-06-screenshots-of-simplepie-10-beta-2-in-action.md @@ -0,0 +1,13 @@ ++++ +title = "Screenshots of SimplePie 1.0 Beta 2 in action" +date = 2006-04-06T23:14:00Z + +[extra] +author = "Ryan Parman" +cover_image = "/images/128/feed.png" +cover_image_alt = "Feeds" ++++ + +No, it hasn’t been released yet (as there are still some issues to work out and a couple more features to add), but everything you see in these screenshots is available in the trunk builds in our [subversion repository](/downloads/). These aren’t all the new features we’ve added, but this should give you a taste of what’s coming. Enjoy. + +[SimplePie 1.0 Beta 2 screenshots](http://flickr.com/photos/skyzyx/sets/72057594100877522/) diff --git a/docs/content/blog/2006-04-09-better-documentation.md b/docs/content/blog/2006-04-09-better-documentation.md new file mode 100644 index 000000000..4bd8f3f68 --- /dev/null +++ b/docs/content/blog/2006-04-09-better-documentation.md @@ -0,0 +1,19 @@ ++++ +title = "Better Documentation" +date = 2006-04-09T09:07:00Z + +[extra] +author = "Ryan Parman" +cover_image = "/images/128/textedit.png" +cover_image_alt = "Documentation" ++++ + +I’ve been working in usability since last May, but I’ve been studying usability independently for the last few years. At least one time during every usability test, we discover what we call a “head smacker”, which is essentially something that is so simple, and so right-on, but it was just overlooked for whatever reason. + +Due to time constraints and a $0 budget (we make zilch on SimplePie), I decided to simply trust my own usability experience when I was putting together the website and writing the content. What that means is that when this site launched in January, you all became our usability testers. Although we haven’t put together a survey or anything to see what your thoughts are, we do keep our ears to the blogosphere and pay attention to what people are saying. + +When we put together our documentation pages, we had assumed that our target audience was a little more PHP-savvy. As it turns out, as SimplePie gets more and more popular, we’re finding that many of our users are relatively new to PHP, and just want a simple method for getting feeds on their site. + +Now, there are many ways of doing this, and we’re mulling over a few ideas… some will wait for 1.0 final, but others can come sooner. But the ‘lowest hanging fruit’ solution was head-smackingly simple: better documentation. I’ve taken several hours over the last few days and rewritten a few pages to be clearer — mostly focusing around getting SimplePie installed in the first place. We’ve also put together a simple [SimplePie Compatibility Test](/docs/sp_compatibility_test.zip), which will make it dead-simple to know if your webhost has the necessaary pieces installed to run SimplePie. Next up, will be to add more tutorials and code samples to illustrate how to do both simple and more complex tasks with SimplePie. + +Please keep the feedback coming. We strive to be as responsive as possible in our [support forums](/support/), and we keep track of what people are saying about SimplePie via [Technorati](http://www.technorati.com/search/simplepie), [Feedster](http://feedster.com/search.php?q=simplepie&sort=&ie=UTF-8&hl=&content=full&&limit=50), [Digg](http://digg.com/search?search=simplepie), and our [Mint](http://haveamint.com) stats package. We’re listening. 🙂 diff --git a/docs/content/blog/2006-04-12-coming-in-beta-2-embedded-enclosures.md b/docs/content/blog/2006-04-12-coming-in-beta-2-embedded-enclosures.md new file mode 100644 index 000000000..04b3b2f58 --- /dev/null +++ b/docs/content/blog/2006-04-12-coming-in-beta-2-embedded-enclosures.md @@ -0,0 +1,17 @@ ++++ +title = "Coming in Beta 2: Embedded Enclosures" +date = 2006-04-12T13:25:00Z + +[extra] +author = "Ryan Parman" +cover_image = "/images/128/loop.png" +cover_image_alt = "Music" ++++ + +One of the new features coming in SimplePie 1.0 Beta 2 is embedded enclosures. What are embedded enclosures, you ask? Simple. When people publish podcasts and videocasts, they do so by adding an enclosure tag to their feed that tells the feed reader where to find the podcast. + +The next release of SimplePie will be able to handle these podcasts in two different ways. The first is the way that it currently handles them — it produces a URL that points to the podcast so that you can create a link with it and whatnot. The other way is to embed them directly into the page, so that people can listen to them without having to download and load into a separate player. + +Currently, we have support for all filetypes supported by QuickTime and Flash (which should cover most types of enclosures), as well as an integrated Odeo Player for Odeo RSS feeds. You can check out some [screenshots](http://flickr.com/photos/skyzyx/sets/72057594100877522/) whenever you get a chance. What we haven’t yet added (but is on the list) is support for Windows Media files. This support will be added as soon as I can find a feed with Windows Media enclosures to test with. 🙂 + +We’re also aware of the update that Microsoft pushed out yesterday for Internet Explorer that implements the changes required by the [Eolas lawsuit](http://www.devx.com/webdev/Article/30154?trk=DXRSS_WEBDEV). Our current embedded enclosures support is affected by this change, so we’re working to update the code to bypass the warning for the benefit of Internet Explorer users everywhere. diff --git a/docs/content/blog/2006-05-11-simplepie-mobile-is-now-simplereader-mobile.md b/docs/content/blog/2006-05-11-simplepie-mobile-is-now-simplereader-mobile.md new file mode 100644 index 000000000..ed11fe64b --- /dev/null +++ b/docs/content/blog/2006-05-11-simplepie-mobile-is-now-simplereader-mobile.md @@ -0,0 +1,15 @@ ++++ +title = "SimplePie Mobile is now SimpleReader Mobile" +date = 2006-05-11T13:44:00Z + +[extra] +author = "Ryan Parman" +cover_image = "/images/128/mobile.png" +cover_image_alt = "Mobile" ++++ + +While we wait for Beta 2 development to wrap up, we’ve gone back and updated SimplePie Mobile with the latest trunk build of SimplePie, revamped the stylesheet to make it more readable, and renamed it to [SimpleReader Mobile](http://mobile.simplereader.com). + +**SimpleReader Mobile** is a free, simple, no-nonsense feed reader designed for mobile devices. It has been tested on the Sony PSP, Palm TX’s Blazer browser, and Opera Mini on the Palm TX. If you’re on the go, or simply don’t want to walk over to the computer to read your feeds, you can go load up SimpleReader Mobile and punch in an address like [digg.com](http://digg.com), and instantly be reading the latest postings. + +If you have a web-enabled mobile device, why not check it out? diff --git a/docs/content/blog/2006-05-17-beta-2-has-not-yet-been-released.md b/docs/content/blog/2006-05-17-beta-2-has-not-yet-been-released.md new file mode 100644 index 000000000..26db2cc3e --- /dev/null +++ b/docs/content/blog/2006-05-17-beta-2-has-not-yet-been-released.md @@ -0,0 +1,13 @@ ++++ +title = "Beta 2 has NOT yet been released!" +date = 2006-05-17T10:09:00Z + +[extra] +author = "Ryan Parman" ++++ + +Although we’re very close, Beta 2 has not been officially released yet. The code available in our repository is unfinished code and does not represent the final product. + +We will, however, be releasing the final Beta 2 very soon. Keep in mind that after wrapping up development (which will most likely be this weekend), there is still the matter of updating the website with the Beta 2 documentation, as well as other changes that we’re planning to make to the site, which may end up taking most of next week to get everything in order. + +So hang on to your britches. You won’t find information about issues about Beta 2 by Googling, so hang on until we release it. 🙂 diff --git a/docs/content/blog/2006-06-02-simplepie-beta-2-is-now-available.md b/docs/content/blog/2006-06-02-simplepie-beta-2-is-now-available.md new file mode 100644 index 000000000..597fd4736 --- /dev/null +++ b/docs/content/blog/2006-06-02-simplepie-beta-2-is-now-available.md @@ -0,0 +1,17 @@ ++++ +title = "SimplePie Beta 2 is now available!" +date = 2006-06-02T23:23:00Z + +[extra] +author = "Ryan Parman" +cover_image = "/images/128/grin.png" +cover_image_alt = "Grin" ++++ + +After several months of toiling over this release, and the past few weekends pouring over the documentation, we are now very proud to release **SimplePie Beta 2!** + +Nearly every major feature has been enhanced, as well as the addition of several new ones. Be sure to read the [upgrade docs](/docs/upgrade/) if you’re upgrading from Beta 1 or the Preview Release. People who were using trunk builds should be able to just drop this file in as a replacement for any previous `simplepie.inc` file. + +We’ve also added a [WordPress plugin](/docs/installation/wordpress/) and a [MediaWiki extension](/docs/installation/mediawiki/) to the mix. And as always, if you have any questions, comments, or need clarification on anything, be sure to swing by the [support forums](/support/). We’re there a lot. 🙂 + +Enjoy! diff --git a/docs/content/blog/2006-06-03-bypass-hotlink-blocking-when-displaying-a-feed-beta-2.md b/docs/content/blog/2006-06-03-bypass-hotlink-blocking-when-displaying-a-feed-beta-2.md new file mode 100644 index 000000000..7851e0a0e --- /dev/null +++ b/docs/content/blog/2006-06-03-bypass-hotlink-blocking-when-displaying-a-feed-beta-2.md @@ -0,0 +1,48 @@ ++++ +title = "Bypass “hotlink blocking” when displaying a feed (Beta 2)" +date = 2006-06-03T10:15:00Z + +[extra] +author = "Ryan Parman" ++++ + +**Requirements:** SimplePie 1.0 Beta 2 + +<div class="chunk noborder"> + +In my quest for making a feed parser that is intelligent, simple, and graceful, one thing that has always bugged me about online feed readers is that some people disable the ability to hotlink images. + +Now, I understand why they do this, because I do it too. You don’t want a bunch of your bandwidth sucked up by people who are stealing your images for their own nefarious purposes (mwah-hah-hah!). Rather, you’d prefer to keep the images for _your readers who are reading your content_. Well, that’s exactly what a feed parser is for, right? + +Desktop aggregators like [Feed Demon](http://www.feeddemon.com) and [NetNewsWire](http://ranchero.com/netnewswire/) are always able to just load up the images in context with the post that they’re reading, and it all makes sense. The only reason why online feed readers have a problem is because the browsers that run them respect the hotlinking rules—even if the reasons don’t make sense for the context (like trying to apply laws about CD’s to MP3’s—although they’re related, they’re different, and the rules need to be modified for the new medium). + +So, we’ve decided to solve the problem in our latest release. We’ve added functionality that allows you to bypass hotlink protection for feeds that you’re trying to read online. But that isn’t what’s important. What’s important is that it’s been built in as a configuration option that is enabled by default. You don’t need to do anything to get this to work (and actually, if you’re using the JavaScript from the old version of the article, it may mess this up so be sure to remove it). + +However, if you want to make sure it’s working, or otherwise force it to be on, take a look at the following code: + +```php +<?php +// Start counting time for loading... +$starttime = explode(' ', microtime()); +$starttime = $starttime[1] + $starttime[0]; + +include('simplepie.inc'); + +// Parse it +$feed = new SimplePie(); +if (!empty($_GET['feed'])) { + $feed->feed_url($_GET['feed']); + $feed->bypass_image_hotlink(); + $feed->init(); +} +$feed->handle_content_type(); + +?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> + +<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en-US" lang="en-US"> +<head> +<title>SimplePie: Demo +Have fun! This code has been implemented in the demo that comes with the SimplePie Beta 2 download. +``` + +</div> diff --git a/docs/content/blog/2006-06-03-display-non-english-feeds-correctly-beta-2.md b/docs/content/blog/2006-06-03-display-non-english-feeds-correctly-beta-2.md new file mode 100644 index 000000000..6458aa870 --- /dev/null +++ b/docs/content/blog/2006-06-03-display-non-english-feeds-correctly-beta-2.md @@ -0,0 +1,65 @@ ++++ +title = "Display non-english feeds correctly (Beta 2)" +date = 2006-06-03T09:59:00Z + +[extra] +author = "Ryan Parman" ++++ + +**Requirements:** SimplePie 1.0 Beta 2 (or newer) + +<div class="chunk noborder"> + +Have you ever had problems displaying feeds properly on your pages? I ran into an issue a few times when I was trying to display an iTunes Music Store feed, and Beyoncé kept coming out as Beyonc\[enter-garbled-text-here\]. I soon realized that the problem occurred because my pages were being served as ISO-8859-1, and the iTMS feed was being sent as UTF-8. + +The solution is really quite simple. + +All you have to do is make sure that the page is being served and handled in the same character set that the feed is. Fortunately, SimplePie has a built-in function that handles this for you: `handle_content_type()`. + +Ideally, when you’re loading a page with SimplePie in it, you’ll do that part at the very beginning of the page. Doing so will help you serve the page correctly. + +```php +<?php +// Start counting time for loading... +$starttime = explode(' ', microtime()); +$starttime = $starttime[1] + $starttime[0]; + +include('../simplepie.inc'); + +// Parse it +$feed = new SimplePie(); +if (!empty($_GET['feed'])) { + $feed->feed_url($_GET['feed']); + $feed->init(); +} + +// This is the part to pay attention to +$feed->handle_content_type(); + +?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> + +<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en-US" lang="en-US"> +<head> +``` + +We specifically want to focus in on this chunk: + +```php +$feed->handle_content_type(); +``` + +What this does is: + +1. Checks to see if any content has been sent to the browser yet. +2. If not, it checks SimplePie’s output encoding (which as of this release is always UTF-8). +3. Creates the proper HTTP Headers that tell the browser to handle this page as UTF-8 and `text/html`. + +</div> + +You can also set the `<meta>` tag if you’d like, although the HTTP specification says that the information that gets sent by the server will override any `<meta>` tags that try to do the same thing. + +```php +<meta http-equiv="Content-Type" content="text/html;charset=<?php echo $feed->get_encoding(); ?>" /> +``` + +If you’re loading a feed into a page dynamically (like in our [Delicious AJAX](/ideas/demo/delicious-ajax/) demo), your best bet is to serve the page as UTF-8, since all languages are translated into UTF-8 inside SimplePie anyways. diff --git a/docs/content/blog/2006-06-09-updates-to-wordpress-and-mediawiki-plugins.md b/docs/content/blog/2006-06-09-updates-to-wordpress-and-mediawiki-plugins.md new file mode 100644 index 000000000..cf33c45cd --- /dev/null +++ b/docs/content/blog/2006-06-09-updates-to-wordpress-and-mediawiki-plugins.md @@ -0,0 +1,15 @@ ++++ +title = "Updates to WordPress and MediaWiki plugins" +date = 2006-06-09T12:06:00Z + +[extra] +author = "Ryan Parman" +cover_image = "/images/128/plugin.png" +cover_image_alt = "Plugin" ++++ + +We’ve gotten some feedback on our new [WordPress](/docs/installation/wordpress/) and [Mediawiki](/docs/installation/mediawiki/) plugins, so we’ve made a couple of updates. + +First is that both of these are better at handling things when a feed is unavailable or unparsable… essentially, it’s better contingency design. The second part is that they both now take an “error” keyword/attribute. This is a plain text error message to display when the error occurs. If you leave it out, it will simply use SimplePie’s built-in messages. + +Upgrade now! diff --git a/docs/content/blog/2006-06-10-200-downloads-in-one-week.md b/docs/content/blog/2006-06-10-200-downloads-in-one-week.md new file mode 100644 index 000000000..8323191f6 --- /dev/null +++ b/docs/content/blog/2006-06-10-200-downloads-in-one-week.md @@ -0,0 +1,15 @@ ++++ +title = "200 Downloads in One Week!" +date = 2006-06-10T21:07:00Z + +[extra] +author = "Ryan Parman" +cover_image = "/images/128/package.png" +cover_image_alt = "Package" ++++ + +We want to thank you all for what we consider a fairly successful launch of our Beta 2 release! In our first week, we had 208 downloads of SimplePie, which is good considering how little-known our project is up to this point. + +We’d love to see where SimplePie is being used! If you could drop us a line and let us know how you’re using it — even if you think it’s in a boring way — we’d love to hear about it. Also, although adding a link back to us is definitely not required, we would certainly appreciate it. The more people using this product, and the more feedback we get, the better we can make SimplePie! + +Thanks again for a great launch! diff --git a/docs/content/blog/2006-06-14-internationalized-domain-name-support-on-the-trunk.md b/docs/content/blog/2006-06-14-internationalized-domain-name-support-on-the-trunk.md new file mode 100644 index 000000000..a7eb71828 --- /dev/null +++ b/docs/content/blog/2006-06-14-internationalized-domain-name-support-on-the-trunk.md @@ -0,0 +1,46 @@ ++++ +title = "Internationalized Domain Name support on the trunk" +date = 2006-06-14T21:52:00Z + +[extra] +author = "Ryan Parman" +cover_image = "/images/128/friend.png" +cover_image_alt = "Japanese" ++++ + +[Bob Aman](http://sporkmonger.com) did a [review of SimplePie](http://sporkmonger.com/articles/2006/02/27/directory-of-feed-parsers) and several other feed parsers a while back. The version of SimplePie he reviewed was Beta 1. Bob’s comments were very helpful in letting us know what was important from software in SimplePie’s genre, and we were able to go back and improve SimplePie Beta 2 significantly because of his feedback. + +When we released Beta 2, I sent Bob an email asking him to take another look at SimplePie. Here was my message: + +> Bob, +> +> I’d invite you to check out and evaluate the latest version of SimplePie, Beta 2. (<http://simplepie.org>) +> +> We’ve gone back and added support for most of the things you mentioned in the comments from <http://sporkmonger.com/articles/2006/02/27/directory-of-feed-parsers> (among many other things). We’re still going through the feedparser.org unit tests though, but we’d be interested in your thoughts as a critic. +> +> Thanks! + +Shortly after I sent him the message, he replied with: + +> Heh, I pwned it on my first try: +> +> <http://www.???.com/feed> +> +> 🙂 +> +> I tried it on less scary feeds though, it looks like you guys have made a lot of improvements. Good job. Much appreciated. +> +> Cheers, +> Bob Aman + +Bob additionally had this to say on his blog: + +> “It’s probably one of the best choices for PHP-based parsers.” + +Thanks Bob! But I digress… + +Ah boy. [Internationalized Domain Names](http://en.wikipedia.org/wiki/Internationalized_domain_names) (IDN). When I first saw this, I realized it would be an important feature, but knew that for the kind of work that’d take, we would probably have to push it off to SimplePie 1.1. After Googling around a bit, I found a [PHP library that can translate IDN’s into friendlier domain names](http://idnaconv.phlymail.de/) that SimplePie (and more specifically, the CURL extension) can handle. + +I decided that with the size of the library, it probably wasn’t something that we’d build directly into SimplePie (especially considering how few people are likely to use it), but if you download and include the library, and enable the `enable_idn()` configuration option, the latest SimplePie trunk build will utilize the functionality without a hitch. + +The necessary files are being bundled with the SimplePie trunk build. We’ve also added Bob’s “scary” feed to the demo page for you to check out. As usual, we test the bleeding edge trunk and branch releases for [PHP 4](http://php4.skyzyx.net/simplepie/demo/) and [PHP 5](http://php5.skyzyx.net/simplepie/demo/) on our development domain. For all you bleeding edge folks, happy IDNing! diff --git a/docs/content/blog/2006-06-15-simplepie-plugin-for-textpattern.md b/docs/content/blog/2006-06-15-simplepie-plugin-for-textpattern.md new file mode 100644 index 000000000..11ec45c96 --- /dev/null +++ b/docs/content/blog/2006-06-15-simplepie-plugin-for-textpattern.md @@ -0,0 +1,15 @@ ++++ +title = "SimplePie Plugin for Textpattern" +date = 2006-06-15T19:18:00Z + +[extra] +author = "Ryan Parman" +cover_image = "/images/128/plugin.png" +cover_image_alt = "Plugin" ++++ + +Never one to be content with where we are, we’ve gone ahead and added a new member to our SimplePie family of plugins: the [SimplePie Plugin for Textpattern](/docs/installation/textpattern/). + +It’s as easy to install as the WordPress and Mediawiki plugins, and has near-identical syntax as the Mediawiki plugin (where, again, we’ve focused on flexibility and ease of use). SimplePie is considered by many to be one of the best PHP-based feed parsers available, and now you can have that speed, flexiblity and ease-of-use in an easily installable plugin. + +So if you’ve got a Textpattern blog, [check it out](/docs/installation/textpattern/)! diff --git a/docs/content/blog/2006-06-19-how-dowill-simplepie-version-numbers-work.md b/docs/content/blog/2006-06-19-how-dowill-simplepie-version-numbers-work.md new file mode 100644 index 000000000..9050de541 --- /dev/null +++ b/docs/content/blog/2006-06-19-how-dowill-simplepie-version-numbers-work.md @@ -0,0 +1,21 @@ ++++ +title = "How do SimplePie version numbers work?" +date = 2006-06-19T12:15:00Z + +[extra] +author = "Ryan Parman" +cover_image = "/images/128/xcode.png" +cover_image_alt = "XCode" ++++ + +We’ve gotten a handful of questions about how SimplePie version numbers have worked in the past, and how we plan to manage them in the future, so let’s go into it. There’s a geek in all of us, I suppose. + +- **SimplePie 0.8:** I thought I was almost done with it, so I released a Public Beta. People said that it was easy, but very slow. Need to rewrite parts of it to be faster. +- **SimplePie 0.9-0.96:** What SimplePie 0.1 – 0.7 should have been in the first place. This was just a matter of not understanding what I was getting into before I jumped in head-first with my eyes closed. +- **SimplePie 1.0 Preview Release:** We completely rewrote the entire parsing core for this release. While we were working on it, we were calling it 0.97. We moved from 0.8 to 0.9 when I rewrote the parsing core, so by the same logic we should have moved to 0.10 when we rewrote the core again. But 0.10 is a really ugly version number. We we decided to release it as a pre-beta beta… a preview release. +- **SimplePie 1.0 Betas:** These are pretty straightforward. They’re public betas that are mature, and getting better and better with each release. We’ve already had a Beta 1 and 2, and Beta 3 is coming shortly. +- **SimplePie 1.0 (RC1, RC2, etc.):** This is a release that we would consider fully production-ready. At this point, we will freeze the feature set. We will release it as RC1, and then fix bugs that get reported, and release an RC2 (if necessary). Once we’re pretty bug-free (from what we can tell), we’ll release 1.0 final. +- **SimplePie 1.0.1, 1.0.2, etc.:** These are what we call “point-point releases”, and will exclusively be bug fix releases. In development terms, we will create a 1.0 “branch” and apply all bug fixes to both the branch (which is otherwise unchanged) and the trunk (which is where all new development will happen). No new features or functionality will be added in these releases. +- **SimplePie 1.1, 1.2, etc.:** These are what we call “point releases”, and will be new features and additional functionality. In development terms, this will be the cumulation of all of the work that has happened on the trunk since the last release. All bug fixes that get put into the point-point releases will also end up here. + +Hopefully this answers any questions anybody has about our planned versioning for post-1.0 releases. It mostly follows the Mac OS X style (sticks to the v10, each new release is a point release, and bugfixes are point-point releases), and is similar to the [Linux kernel style](http://en.wikipedia.org/wiki/Linux_kernel#Versions), except that we don’t have alternating point-releases for stable and development releases. diff --git a/docs/content/blog/2006-06-19-lemon-meringue-is-coming-soon.md b/docs/content/blog/2006-06-19-lemon-meringue-is-coming-soon.md new file mode 100644 index 000000000..45eb61dc4 --- /dev/null +++ b/docs/content/blog/2006-06-19-lemon-meringue-is-coming-soon.md @@ -0,0 +1,17 @@ ++++ +title = "“Lemon Meringue” is coming soon!" +date = 2006-06-19T10:09:00Z + +[extra] +author = "Ryan Parman" +cover_image = "/images/128/calendar.png" +cover_image_alt = "Calendar" ++++ + +Although we weren’t planning to do a Beta 3 (we were just going to go straight into 1.0 RC1 next), we’ve made some under the hood changes to SimplePie that might need additional testing. This should not affect anybody’s existing Beta 2 code, so no worries about that, but we just want more of an opportunity to gather some bug reports. So we’ve decided to shuffle our schedule to meet that need. + +Additionally, many of the new features in 1.0 revolved around the ability to read and set HTTP Headers. This code will be landing on the trunk shortly, and then we’ll start working on everything that was dependent on this code. Most of it is relatively simple stuff, but will make SimplePie that much better and more reliable. So, instead of releasing a Beta 2 Bugfix release now, and having everything else wait for 1.0, we’ve decided to release a Beta 3 which will include all of our bugfixes from Beta 2, as well as several features that were originally scheduled for RC1. + +We’ll be releasing Beta 3 in the first weekend in July. We’re gonna get as much done as possible until then (which will hopefully be all of it), and will release what we have completed at that time. Anything we miss will be pushed to RC1 (which will be feature-frozen — only bugfixes will be allowed between RC1 and 1.0 final). + +[Read about what we’re planning for our “Lemon Meringue” release](/support/viewtopic.php?id=118) (otherwise known as Beta 3). diff --git a/docs/content/blog/2006-06-20-simplepie-plugins-updated-to-version-12.md b/docs/content/blog/2006-06-20-simplepie-plugins-updated-to-version-12.md new file mode 100644 index 000000000..ac668b404 --- /dev/null +++ b/docs/content/blog/2006-06-20-simplepie-plugins-updated-to-version-12.md @@ -0,0 +1,13 @@ ++++ +title = "SimplePie Plugins updated to version 1.2" +date = 2006-06-20T08:38:00Z + +[extra] +author = "Ryan Parman" +cover_image = "/images/128/plugin.png" +cover_image_alt = "Plugin" ++++ + +We’ve updated our plugins for [WordPress](/docs/plugins/wordpress/), [Textpattern](/docs/plugins/textpattern/), and [Mediawiki](/docs/plugins/mediawiki/) to version 1.2. In this release, we’ve added a couple of new keywords/attributes: `showtitle` can hide or show the feed’s title, and `alttitle` allows you to set a custom feed title. + +If you’re currently using one of these plugins, you can simply replace the old file with the new one to upgrade. If you haven’t taken the SimplePie plunge yet, these plugins make it easy to bring feeds into your sites. Check them out! diff --git a/docs/content/blog/2006-06-22-xmldump-the-quick-way.md b/docs/content/blog/2006-06-22-xmldump-the-quick-way.md new file mode 100644 index 000000000..93b9939a9 --- /dev/null +++ b/docs/content/blog/2006-06-22-xmldump-the-quick-way.md @@ -0,0 +1,32 @@ ++++ +title = "XMLdump the Quick Way (Beta 2)" +date = 2006-06-22T13:55:00Z + +[extra] +author = "Ryan Parman" ++++ + +**Requirements:** SimplePie 1.0 Beta 2 + +<div class="chunk noborder"> + +Early in the days of SimplePie development, I built-in functionality that I called “XMLdump” that would dump the post-processed, pre-cached XML to the screen as XML. When a feed is read, there is a certain amount of pre-cleaning we do to make sure that what we’re parsing more closely resembled valid RSS (or Atom). After this pre-cleaning is done, you can invoke XMLdump to see the XML that SimplePie will actually be parsing, just before it’s parsed. + +The only currently documented way is to use the [enable_xmldump()](/docs/reference/config/enable_xmldump/) configuration option. There is another way (as of Beta 2) to quickly snap your SimplePie-enabled pages into XMLdump mode. If the page’s URL already has a querystring appended to it (page.php?keyword=value&keyword2=value2), you’d append `&xmldump=true` to the end of the URL. If it’s a normal page with no querystring, append `?xmldump=true` to snap it into XMLdump mode. + +This only works under two conditions: + +1. The first thing in the source code must be a PHP block where SimplePie is being initialized. There cannot be any spaces or linebreaks, because that would throw a warning. +2. The second is that this was designed for a single feed per page. As such, if you have multiple feeds on a page, this will only display the first one. This is true for the whole XMLdump mode, not just this little trick. + +How do the SimplePie plugins work with this? Let’s see. Testing version 1.2 of the plugins: + +- **Textpattern:** Perfect +- **WordPress:** Kicks in after content has already been sent to the browser. As such, you get an XML error, but if you dig into the source, you can see the feed contents. +- **Mediawiki:** Doesn’t even try to do anything (at least with the non-clean URLs). + +We’ll be looking into working this out in an upcoming version of our plugins. + +So there you go. XMLdump has been a very handy debugging tool for us, and hopefully it can help you too. + +</div> diff --git a/docs/content/blog/2006-06-25-example-of-how-not-to-take-care-of-your-customers.md b/docs/content/blog/2006-06-25-example-of-how-not-to-take-care-of-your-customers.md new file mode 100644 index 000000000..6635ff7da --- /dev/null +++ b/docs/content/blog/2006-06-25-example-of-how-not-to-take-care-of-your-customers.md @@ -0,0 +1,29 @@ ++++ +title = "Example of how NOT to take care of your customers" +date = 2006-06-25T20:30:00Z + +[extra] +author = "Ryan Parman" ++++ + +I’m going to take a break from the usual SimplePie-oriented blog posts, and take a few minutes to talk about customer service. Watch this video, and come back when you’re done + +[Cancelling your AOL account →](http://youtube.com/watch?v=xIVZ9b0RgmY) + +How unbelievable was that? Interestingly enough, most of the time we have the opposite problem. The company, organization, group, developer, salesperson, etc., usually couldn’t care less about the customer. We usually deal with people who aren’t attentive enough, whereas this AOL person was a bit too attentive in the wrong way. + +My very first job was in a Burger King drive-thru. It didn’t take too long for me to see the HUGE miscommunication that occurred between the customers and the drive-thru folk: Customers think the drive-thru guy is an idiot (because he usually is), and drive-thru people are sick and tired of dealing with people who think they’re idiots. Personally, I decided to disprove the rule by being the best drive-thru guy in the world. It was probably because I was naive and saw the world in an idealistic light. + +Over the next couple of years that idealism took a dive. I dealt with so many idiot customers on a day-to-day basis that I ended up giving up on the retail world. When I was working as a pizza delivery guy (and later on, a manager), I encountered customers that would write bad checks, make prank orders, have idiots that didn’t seem to know where they lived, and all sorts of other negative things. I realized that these customers weren’t ideal, but I was going to _make_ them be ideal. If they didn’t give me the correct cross-street for a delivery (even though I knew what the cross-street was because I knew the town), I’d take my time and drive around the block a few times just to make it late. When they’d ask me why I was late, I’d tell them that it was because they didn’t give me the right directions, so they’d better get it right next time. I had even changed the “The customer is always right” maxim to “The customer must always be appeased.” + +There was a short time a few years ago when I lived in Daly City, CA, which is immediately south of San Francisco. Go to any restaurant in that entire town and you will encounter the worst customer service you’ve probably ever gotten. Most of the time I was treated like I didn’t even exist. One night after a particularly bad incident at the local Wendy’s fast-food restaurant, I went home, sat down, and while I was fuming, I thought back to those idealistic days at Burger King and wrote the “Fast Food Manifesto”. It was 12 pages long, printed, and it went over the fundamental basics of treating people right, <s>dealing with</s> _helping_ customers, and little things that help make the drive-thru experience infinitely better for the customer. It was a very “Jerry MacGuire” moment. The next day, I went down and had 50 copies printed. I went to every restaurant I could ever remember going to in that town, spoke to the manager, and handed them a copy of the Manifesto. + +They probably just threw it away as soon as I’d left, but if that Manifesto was able to help even one person get better at customer service, I had done my job. From that moment on, I decided to take another look at customers and customer service, learn whatever I could, and do the best job I possibly could. + +It was then that I learned something. Customers didn’t care whether they got a McDonald’s Big Mac or a Burger King Whopper — it’s fast food for Pete’s sake. What brought people back time and time again was the _service_ that they received. I also read a study that said that a customer who had a problem that was made right was more likely to become a loyal customer than one who had never had any problems at all. “Bad customers”, as it turns out, aren’t really bad customers, but rather customers who had a problem that was not resolved to their satisfaction. The catch-22 with that, is that out of every 10 customers who have a problem, only 1-2 ever take the time to bring it to your attention. The remaining 8-9 just get pissed, and leave, and never come back. + +This is why I ended up going into usability (in terms of user interaction), and it’s also why we SimplePie developers try to be so customer-minded. We know that if there’s one person who has a problem with SimplePie, there are 9 others who had the same problem and just didn’t say anything. If we have 5 people coming to the forums saying they can’t figure something out, chances are that there are 50 people — at a minimum – having the same problem. If there’s something you don’t understand about the documentation, it’s not a problem with you, it’s a problem with the documentation. This is why we ask for bug reports, and feature requests, and feedback. This is why there is a small handful of people I typically run documentation by before it goes out (or just after it goes out). This is why we try to be so responsive at the forums and in IRC, because if people are having a problem, they’re not going to wait around for long before going somewhere else. This is why we make it a point to _listen to our customers_. + +I’ve worked with developers who don’t care about end-users. The end users should “just know how it works”, and “should be smart enough to figure this out”. What they don’t realize is that not everybody is a developer. Not everybody “just knows”, not matter how smart they may be. Of course for those of us who care enough to try to help, we can’t do anything if we don’t know there’s a problem. + +So, if you’re a customer, be vocal about problems you have. We can’t improve if we don’t know about it. If you’re a developer, take the time to listen to your customers. You’re nothing without them. diff --git a/docs/content/blog/2006-06-25-simplepie-is-on-the-hot-100.md b/docs/content/blog/2006-06-25-simplepie-is-on-the-hot-100.md new file mode 100644 index 000000000..d748b69d4 --- /dev/null +++ b/docs/content/blog/2006-06-25-simplepie-is-on-the-hot-100.md @@ -0,0 +1,17 @@ ++++ +title = "SimplePie is on the Hot 100!" +date = 2006-06-25T16:26:00Z + +[extra] +author = "Ryan Parman" ++++ + +According to the [Museum of Modern Betas](http://momb.socio-kybernetics.net/), SimplePie has made the [“Hot 100” for the week ending on June 25th, 2006](http://momb.socio-kybernetics.net/hot-100). + +What is the Hot 100, you ask? + +> The hottest betas in the webosphere, as measured by the number of bookmarks at del.icio.us added within the last 7 days. This list will be updated each Sunday. + +SimplePie clocked in at number 65. We were bested by [Flickr](http://www.flickr.com/) (2), [Netvibes](http://www.netvibes.com/) (9), [Gmail](http://mail.google.com/mail/) (16), [Delicious](http://del.icio.us/) (24), [Newsvine](http://www.newsvine.com/) (36), [Google Maps](http://maps.google.com/) (39), and [Magnolia](http://ma.gnolia.com/) (54). However, we ranked higher than projects like [Writely](http://www.writely.com/) (70), [Windows Live](http://www.live.com/) (71), [Blinklist](http://www.blinklist.com/) (77), and [Yahoo! Podcasts](http://podcasts.yahoo.com/) (86). + +We’re proud to be on this list! Let’s see if we can rank higher next week! diff --git a/docs/content/blog/2006-07-01-followup-user-experience-customer-service.md b/docs/content/blog/2006-07-01-followup-user-experience-customer-service.md new file mode 100644 index 000000000..9a9241bad --- /dev/null +++ b/docs/content/blog/2006-07-01-followup-user-experience-customer-service.md @@ -0,0 +1,11 @@ ++++ +title = "Followup: User Experience = Customer Service" +date = 2006-07-01T12:21:00Z + +[extra] +author = "Ryan Parman" ++++ + +In the world of the web, you oftentimes don’t deal with people. If you have a problem, it’s not like you can walk to the counter and ask a clerk or sales person. Instead, you have the digital equivalent of customer service: user experience. + +In truth, they’re both essentially the same thing. Whereas [I wrote about customer service](/blog/2006/06/25/example-of-how-not-to-take-care-of-your-customers/) more generically, [Zeldman has written about it](http://zeldman.com/2006/06/29/the-power-of-positive-whining/) more specifically. diff --git a/docs/content/blog/2006-07-03-slipping-the-beta-3-schedule.md b/docs/content/blog/2006-07-03-slipping-the-beta-3-schedule.md new file mode 100644 index 000000000..a7d9fe38b --- /dev/null +++ b/docs/content/blog/2006-07-03-slipping-the-beta-3-schedule.md @@ -0,0 +1,13 @@ ++++ +title = "Slipping the Beta 3 schedule" +date = 2006-07-03T17:08:00Z + +[extra] +author = "Ryan Parman" +cover_image = "/images/128/calendar.png" +cover_image_alt = "Calendar" ++++ + +SimplePie “Lemon Meringue”, our upcoming Beta 3 release, was initially scheduled for this weekend. Unfortunately, it’s taking a bit longer than anticipated to get something solid together. We’ve been doing a lot of bug fixing and implementing some feature requests, but we’re also going through and re-organizing everything — streamlining things to make SimplePie a bit smaller and more efficient. + +Because of all of these changes, we haven’t been checking anything into the public repository for about 2 weeks now, as everything is still unstable. I would love to give a release date, but at the moment I can’t. All I can say is that it really is coming, and we should be checking in regular trunk builds again very soon with an official Beta 3 release coming soon afterwords. diff --git a/docs/content/blog/2006-07-06-simplepie-to-dos.md b/docs/content/blog/2006-07-06-simplepie-to-dos.md new file mode 100644 index 000000000..33f491599 --- /dev/null +++ b/docs/content/blog/2006-07-06-simplepie-to-dos.md @@ -0,0 +1,15 @@ ++++ +title = "SimplePie To-Do’s" +date = 2006-07-06T19:53:00Z + +[extra] +author = "Ryan Parman" +cover_image = "/images/128/desktop-mac.png" +cover_image_alt = "Check off" ++++ + +Since we use [Basecamp](http://basecamphq.com/?referrer=skyzyx) to manage SimplePie development, we’ve decided to hook directly into our to-do lists for the Beta 3 and RC1 releases, as well as the list for the next version of the plugin engine (which is shared between the WordPress, Textpattern, and Mediawiki plugins). + +These to-do lists are _live_! We have not added any sort of caching even (although this might have to change soon), so the lists in our new [Development](/development/) section are accurate up-to-the-instant. So if you’re interested in what _will actually be worked on_, check it out. It’ll be automatically updated as we check things off or add new items to the lists. + +I don’t think you can be a more transparent open-source project than that! 🙂 diff --git a/docs/content/blog/2006-07-12-1000-downloads-of-beta-2-recognition-and-a-progress-report.md b/docs/content/blog/2006-07-12-1000-downloads-of-beta-2-recognition-and-a-progress-report.md new file mode 100644 index 000000000..aa86b51a1 --- /dev/null +++ b/docs/content/blog/2006-07-12-1000-downloads-of-beta-2-recognition-and-a-progress-report.md @@ -0,0 +1,21 @@ ++++ +title = "1000 Downloads of Beta 2, Recognition, and a Progress Report" +date = 2006-07-12T12:22:00Z + +[extra] +author = "Ryan Parman" +cover_image = "/images/128/grin.png" +cover_image_alt = "Grin" ++++ + +It has only taken 1 month and 10 days to hit 1000 downloads of SimplePie Beta 2! Thank you all for getting the word out about it by writing blog posts, adding it to delicious and blinklist, and for otherwise linking to us. + +I’d like to specifically thank Mr. [Bruce McKenzie](http://www.bioneural.net/) for his many suggestions for improvement, bug reporting, and all-around pro-SimplePie propaganda! I’d also like to thank Mr. [Peter Janes](http://peterjanes.ca) for finding the craziest feeds to test SimplePie with, and reporting the multitude of bugs he’s found. SimplePie is a better product because of you. + +Of course that’s not to say that contributions from others are _invaluable_, just that these two have gone out of their way for this project. We really appreciate it, and we wanted to recognize these two publicly for their work. + +Beta 3 is off-schedule, yes, but we’ll be solidifying things as soon as possible. Geoffrey (who works on the parsing core of SimplePie) has just left for a two week vacation in Germany. Meanwhile, he’s just checked in a major reworking of SimplePie that I need to take some time to familiarize myself with. A week after he gets back, I’ll be going on vacation to Southern California. My hope is that we’ll be able to release Beta 3 during that week of overlap. + +Some pretty awesome new things are coming in Beta 3 such as improved cache efficiency (via the highly efficient HTTP Conditional Get and support for GZIP compression), better handling of embedded enclosures, more control over character encodings, support for internationalized domain names, more one-click subscriptions/bookmarks, favicon support, lots and lots of bug fixes, cleaner and easier-to-understand code, and more. We’ve also been getting several requests for the Magpie-like ability to dig through XML nodes for a specific element. We’ll look into implementing this in a future release. + +So, thanks again for the support, the downloads, the bug reports, the feature requests, and the IRC chats. We appreciate you. 🙂 diff --git a/docs/content/blog/2006-07-25-hax0rz.md b/docs/content/blog/2006-07-25-hax0rz.md new file mode 100644 index 000000000..e4970463d --- /dev/null +++ b/docs/content/blog/2006-07-25-hax0rz.md @@ -0,0 +1,13 @@ ++++ +title = "Hax0rz" +date = 2006-07-25T07:56:00Z + +[extra] +author = "Ryan Parman" +cover_image = "/images/128/sad.png" +cover_image_alt = "Sad" ++++ + +It would appear that someone has brute-forced our admin password, and has been using our webserver to send out a bunch of spam. Dreamhost alerted us of this, and I’ve gone back and changed a bunch of passwords. + +If you’ve been receiving spam from people at `@simplepie.org` email addresses, then we apologize. It’s not us. I’m going to make sure that everything appears kosher, and then re-enable our ability to send email for \*good\* purposes. 🙂 diff --git a/docs/content/blog/2006-08-05-simplepie-discussed-at-blogher-06.md b/docs/content/blog/2006-08-05-simplepie-discussed-at-blogher-06.md new file mode 100644 index 000000000..fcbda10a0 --- /dev/null +++ b/docs/content/blog/2006-08-05-simplepie-discussed-at-blogher-06.md @@ -0,0 +1,16 @@ ++++ +title = "SimplePie discussed at BlogHer ’06" +date = 2006-08-05T09:40:00Z + +[extra] +author = "Ryan Parman" +cover_image = "/images/128/blogher.gif" +cover_image_alt = "BlogHer" ++++ + +I’m getting reports around the blogosphere that SimplePie was discussed in the “[Primp your blog](http://blogher.org/node/7262)” workshop at the recent [BlogHer ’06](http://blogher.org/) conference in San Jose, CA, USA. I don’t have any transcripts of the conference, but here are a few blog posts that I’ve come across that include SimplePie: + +- [Blogaholics](http://www.blogaholics.ca/archives/2006/07/blogher-primp-your-blog.html) +- [This is going to be funny](http://thisisgoingtobefunny.blogspot.com/2006/07/blogher-puts-womens-issues-on-table.html) +- [Secondhand Tryptophan](http://www.secondhandkarl.com/2006/07/blogher_06_prim.html) +- [SLOlane](http://www.slolane.org/archives/2006/08/so_this_was_blo.html) diff --git a/docs/content/blog/2006-08-20-lemon-meringue-is-close-at-hand.md b/docs/content/blog/2006-08-20-lemon-meringue-is-close-at-hand.md new file mode 100644 index 000000000..db3adb8ed --- /dev/null +++ b/docs/content/blog/2006-08-20-lemon-meringue-is-close-at-hand.md @@ -0,0 +1,30 @@ ++++ +title = "“Lemon Meringue” is close at hand" +date = 2006-08-20T17:12:00Z + +[extra] +author = "Ryan Parman" +cover_image = "/images/128/lemon_meringue.png" +cover_image_alt = "Lemon Meringue" ++++ + +Our “Lemon Meringue” release (aka Beta 3) is coming ever-closer to completion. Although we know we’ve slipped the schedule quite a bit, it’s only because we want to get this release as solid as possible. With all of the new features we added in Beta 2, it wasn’t as stable as Beta 1. Our upcoming Beta 3 release is shaping up to be our best release yet. Here are a few things you can expect (mostly technical): + +- HTTP Conditional Get (a much more efficient cache management system) +- Better character set detection (including fixes for a few bugs in Beta 2) +- Allow the overriding of the input character encoding, as well as custom output encodings +- Support for GZIP-compressed feeds +- Support for Internationalized Domain Names (IDN) +- Better handling of audio/video podcasts +- A new get_favicon() function +- More one-click subscriptions and one-click bookmarks +- Support for `fsockopen()` for grabbing remote feeds +- Better handling of feeds with extremely long filenames (like ebay feeds) +- Improved Atom support +- More potentially dangerous tags and attributes are stripped by default (can be overridden) +- Tweaked some default settings for configuration options for improved reliability and security +- Lots and lots and lots of bugfixes and minor improvements + +For those of you who aren’t as technical, all of this essentially means that suddenly things will work better, faster, and more efficiently without you having to do anything. There won’t be too many fancy new features, per se, but there will be a few additional power-options for the technically inclined. + +We’ve also heard that [Kellan Elliott-McCrea](http://laughingmeme.org/) will soon be releasing a “preview release” of the next version of [MagpieRSS](http://magpierss.sourceforge.net/). We warmly welcome Kellan back to Feed-land (MagpieRSS has been silent since November 2005), and hope that the continued competition will help drive both products to be the best they can be. diff --git a/docs/content/blog/2006-08-23-sorting-multiple-feeds-by-time-and-date.md b/docs/content/blog/2006-08-23-sorting-multiple-feeds-by-time-and-date.md new file mode 100644 index 000000000..74d674910 --- /dev/null +++ b/docs/content/blog/2006-08-23-sorting-multiple-feeds-by-time-and-date.md @@ -0,0 +1,51 @@ ++++ +title = "Sorting multiple feeds by time and date" +date = 2006-08-23T09:20:00Z + +[extra] +author = "Ryan Parman" ++++ + +<div class="chunk"> + +**\*Update:** With the release of SimplePie 1.0, this tutorial became obsolete. [Please check out the new tutorial instead](/wiki/tutorial/sort_multiple_feeds_by_time_and_date).\* + +In this demo, I will show you how to parse multiple feeds and sort all of the posts from all feeds in reverse-chronological order (newest to oldest). + +</div> + +<div class="chunk"> + +#### What you’ll need for this demo + +- The Multifeeds package +- And, of course, the latest [SimplePie](http://www.simplepie.org/downloads/) for the RSS parsing (1.0 Beta 2 or later) + +</div> + +<div class="chunk"> + +#### What you need to do + +1. Unzip the `multifeeds.zip` file. +2. Drop the latest version of `simplepie.inc` into the resulting folder. +3. Edit — or don’t edit — the index.php file to your heart’s delight. (Maybe you should just let it run untouched the first time.) +4. Upload the whole `multifeed` folder to your webserver (or your localhost) +5. Set the cache folder to server-writable. +6. Load the `index.php` into your web browser, and voila! + +</div> + +<div class="chunk"> + +#### Notes + +1. The very first time you load the page will take more time than the subsequent load will because SimplePie needs to cache all of the feeds for the first time. +2. In the feeds you use, make sure that the items in that feed have a published or last modified date associated with them. If not, then those feed items will be shuffled out of order. +3. Because SimplePie Beta 3 has support for something called HTTP Conditional Get, cache handling is much improved over Beta 2, leading to better overall performance. + +</div> + +#### Live Demo + +→ [Multiple Feeds Demo](/demo/demos/multifeed/) diff --git a/docs/content/blog/2006-09-05-simplepie-wallpapers.md b/docs/content/blog/2006-09-05-simplepie-wallpapers.md new file mode 100644 index 000000000..98bfa56ed --- /dev/null +++ b/docs/content/blog/2006-09-05-simplepie-wallpapers.md @@ -0,0 +1,31 @@ ++++ +title = "SimplePie Wallpapers" +date = 2006-09-05T23:29:00Z + +[extra] +author = "Ryan Parman" +cover_image = "/images/128/simplepie.png" +cover_image_alt = "SimplePie" ++++ + +For those of you who are hardcore about SimplePie and want to show your SimplePie pride, we’ve created the first of (hopefully) many [wallpapers](http://www.flickr.com/photos/skyzyx/sets/72157594171190151/) for your computer desktop. The first one is called [“Dark Star”](http://www.flickr.com/photos/skyzyx/170829827/) and is available in several different sizes. + +Are you artistically gifted and want to design your own SimplePie wallpaper to share with the world? Let us know about it in the new [Wallpaper and Graphics](/support/viewforum.php?id=21) forum, and we’ll let the world know about it. Upload the various wallpapers and graphics to your website, we’ll pull them down, and upload them to our graphics repository. We’ll even post about it on the SimplePie blog! + +So that you can all have the necessary tools, the font we use is [Yanone Kaffeesatz](http://www.yanone.de/typedesign/kaffeesatz/) (kerned to -4) and the [SimplePie logo](/images/logo_simplepie_template.png) is an editable Macromedia Fireworks PNG (for smaller uses of the logo, I remove the outer border and the top layer). Since this is **our** logo, I would ask that you refrain from using our logo for anything other than SimplePie-related wallpapers and graphics. + +(The SimplePie logo is copyrighted by Ryan Parman. All rights reserved. A license to use this logo is granted exclusively for the designing of SimplePie-related graphics, and is not to be used for any other purpose.) + +If possible, when you create your wallpapers, please create them in the following sizes: + +- 480 x 272 (for PSP) +- 800 x 600 +- 1024 x 768 +- 1280 x 1024 +- 1440 x 900 +- 1600 x 1024 +- 1680 x 1050 +- 1920 x 1200 +- 2560 x 1600 + +Enjoy! diff --git a/docs/content/blog/2006-09-10-please-support-happy-developers.md b/docs/content/blog/2006-09-10-please-support-happy-developers.md new file mode 100644 index 000000000..72212b784 --- /dev/null +++ b/docs/content/blog/2006-09-10-please-support-happy-developers.md @@ -0,0 +1,11 @@ ++++ +title = "Please Support Happy Developers!" +date = 2006-09-10T20:29:00Z + +[extra] +author = "Ryan Parman" ++++ + +For those who are feeling charitable, and like seeing happy developers work on SimplePie, please consider donating in the form of wishlist gratification! ([Geoffrey](http://www.amazon.co.uk/gp/registry/wishlist/2ASV4RHBSM16H/) and [Ryan](http://www.amazon.com/gp/registry/wishlist/KAFYR57E8R81/ref=cm_wl_sortbar_v_page_1/102-2907233-6237735?ie=UTF8&filter=all&sort=priority&layout=standard&reveal=unpurchased)). + +If you’re not feeling charitable, that’s okay too. Just tell other people about how much you like SimplePie, and we’ll call it even. 😉 diff --git a/docs/content/blog/2006-09-13-support-questions.md b/docs/content/blog/2006-09-13-support-questions.md new file mode 100644 index 000000000..4c0abfc29 --- /dev/null +++ b/docs/content/blog/2006-09-13-support-questions.md @@ -0,0 +1,17 @@ ++++ +title = "Support Questions" +date = 2006-09-13T12:31:00Z + +[extra] +author = "Ryan Parman" +cover_image = "/images/128/bboard.png" +cover_image_alt = "Support" ++++ + +SimplePie’s community of users keeps getting larger and larger, and we think that’s just dandy. That also means that there have been flood of new questions at the support forums, and I just want to say two things about that. + +First is that there is a note near the top of the forum page that is highlighted in yellow, and has a link to the [Bug Reporting Guidelines](/support/viewtopic.php?id=3). Please, understand that it makes our lives MUCH simpler if we have that information when you post about your issue. I’ll oftentimes need to begin with asking someone what version of SimplePie they’re using because it simply wasn’t stated up front. + +Secondly, because the forum questions have picked up recently, from time to time, a forum question might get overlooked or missed. It’s not that we don’t want to help you, but occasionally something will get missed. If you think this may have happened, please bump the thread so that we can find your question again. + +Thanks for the questions, and we’ll continue to do the best we can to continue answering them. 🙂 diff --git a/docs/content/blog/2006-10-10-simplepie-trunk-is-very-very-icy.md b/docs/content/blog/2006-10-10-simplepie-trunk-is-very-very-icy.md new file mode 100644 index 000000000..3dcc33e3c --- /dev/null +++ b/docs/content/blog/2006-10-10-simplepie-trunk-is-very-very-icy.md @@ -0,0 +1,17 @@ ++++ +title = "SimplePie trunk is very, very icy…" +date = 2006-10-10T14:07:00Z + +[extra] +author = "Ryan Parman" +cover_image = "/images/128/xcode.png" +cover_image_alt = "XCode" ++++ + +Icy? What that means is that although it’s not outright _frozen_, the only changes to SimplePie will be in the form of last-minute fixes and tweaks as we get ready to go live with an official Beta 3 release. We’ll be focusing on bug testing as opposed to bug fixing at this point. + +If your bug or feature request didn’t make it into this round, don’t worry. We’ll soon be releasing very frequent release candidates in an effort to patch bugs and resolve issues leading up to our 1.0 release. There were a TON of bugs reported on Beta 2, and we’ve gotten to as many of them as we can up to this point, but we need to get a new release out soon, so some things must be left for the next release. If you have questions about what we’ve got on our roadmap as far as features, fixes, and bugs for the upcoming releases, please check out our [Development](/development/) page for more information. + +If those of you who are using the development builds think that there’s an outstanding issue with SimplePie that is serious enough to hold back the release, please post about it in the [Trunk Builds](/support/viewforum.php?id=12) forum with _\[BLOCKER\]_ in the subject line. Make sure that you’re using the absolute latest development build before you post, and be prepared to either fight for the blocker status, or come with a patch to fix it. We like patches. We’ll review the ones marked BLOCKER, and if the workload required to fix the bug before this release is justified, we’ll add it to our Beta 3 checklist. + +Thank you again to all of you who use SimplePie! We’re working as hard as we can to make it better and better with each new release, and it’s people who report bugs to the forums who help us accomplish that. 🙂 diff --git a/docs/content/blog/2006-10-28-lemon-meringue-has-been-branched-razzleberry-is-on-the-trunk.md b/docs/content/blog/2006-10-28-lemon-meringue-has-been-branched-razzleberry-is-on-the-trunk.md new file mode 100644 index 000000000..97728e938 --- /dev/null +++ b/docs/content/blog/2006-10-28-lemon-meringue-has-been-branched-razzleberry-is-on-the-trunk.md @@ -0,0 +1,15 @@ ++++ +title = "Lemon Meringue has been branched! Razzleberry is on the trunk!" +date = 2006-10-28T08:36:00Z + +[extra] +author = "Ryan Parman" +cover_image = "/images/128/lemon_meringue.png" +cover_image_alt = "Lemon Meringue" ++++ + +We’ve branched our Beta 3 “Lemon Meringue” release. There’s one more patch to apply to it before we release it, but we didn’t want to hold back work on our 1.0 “Razzleberry” release any more than we had to. Over the next few days we’ll be updating the documentation, testing the plugins, and making sure everything is ready to go for our Beta 3 release! + +Some things are changing in Razzleberry that break compatibility with prior trunk builds. If you grab a trunk build today, it won’t work as-is with your existing code, as we’ve made a few changes for the sake of consistency (these are Betas, after all). Once we hit 1.0 we won’t be breaking any existing API’s in the 1.x series of releases. We’ll save API breakage for our 2.0 release (whenever that happens to be). + +Rest assured that a new official release will be made public sometime in the next week. diff --git a/docs/content/blog/2006-10-31-4000-downloads-of-beta-2-hours-away-from-beta-3-release-more-on-10.md b/docs/content/blog/2006-10-31-4000-downloads-of-beta-2-hours-away-from-beta-3-release-more-on-10.md new file mode 100644 index 000000000..4dd2ff1a3 --- /dev/null +++ b/docs/content/blog/2006-10-31-4000-downloads-of-beta-2-hours-away-from-beta-3-release-more-on-10.md @@ -0,0 +1,17 @@ ++++ +title = "4000 Downloads of Beta 2, Hours Away From Beta 3 Release, More On 1.0" +date = 2006-10-31T16:00:00Z + +[extra] +author = "Geoffrey Sneddon" +cover_image = "/images/128/grin.png" +cover_image_alt = "Grin" ++++ + +With Beta 3 just hours away, Beta 2 has reached a mammoth 4000 downloads since June — that’s _over 25 downloads per day_. Not bad for any product, yet alone something with such a limited scope as a PHP library. With such a huge rate of increase of number of downloads, and with Beta 3 coming _very_ soon, we can only hope that that trend continues right up to 1.0 and beyond. + +As for Beta 3, there’s very little API breakage, as most of the changes are under-the-hood, so unless you’re modifying SimplePie itself, nothing should be that chaotic. The [release notes](/docs/misc/release-notes/beta3/) give an idea of what the more major changes are. + +As was mentioned in the previous post, the Trunk (1.0 “Razzleberry”) has introduced some major API changes, so those of you following trunk — be careful! Some of the methods names may well be changed again before release! As was also mentioned, once 1.0 is out, there will be no API breakage until SimplePie 2.0, and there will be at the very least one minor release on the 1.x branch, and more than likely more. See our [plans for versioning](/blog/2006/06/19/how-dowill-simplepie-version-numbers-work/). + +Lastly, for those of you wanting to add new methods to trunk and send in patches (preferably via the forums), [phpDocumentor](http://phpdoc.org/) comments have started to be added to the existing codebase (you can see the [automatically generated documentation for trunk](http://php5.simplepie.org/phpDoc/)), and we won’t be allowing any patches from here on in that add members/methods if they do not have phpDocumentor comments for them. diff --git a/docs/content/blog/2006-11-01-simplepie-beta-3-is-now-available.md b/docs/content/blog/2006-11-01-simplepie-beta-3-is-now-available.md new file mode 100644 index 000000000..ffa1c74e9 --- /dev/null +++ b/docs/content/blog/2006-11-01-simplepie-beta-3-is-now-available.md @@ -0,0 +1,13 @@ ++++ +title = "SimplePie Beta 3 is now available!" +date = 2006-11-01T16:26:00Z + +[extra] +author = "Ryan Parman" +cover_image = "/images/128/simplepie.png" +cover_image_alt = "SimplePie" ++++ + +**SimplePie 1.0 Beta 3 is now available!** This release took much longer than initially expected to wrap up, but we wanted to make sure we had as stable a release as possible. There are very few API _changes_, no breakages, and lots of additions. Check out the [Function Documentation](/docs/reference/) for all of the new functions, the [Upgrade Guide](/docs/upgrade/) for changes you might want to be aware of, the [Release Notes](/docs/misc/release-notes/beta3/) for Beta 3, and the [Credits](/docs/misc/credit/) where we make note of people and software whose efforts have made SimplePie possible! + +Beta 1 had over 1300 downloads, and Beta 2 had over 4000 in the same timeframe! Future releases will have shorter development cycles, but we’d love to see the same kind of success for future versions as we did with Beta 2! Thanks again to all of our users. It is your feedback, patches, bug reports, and other comments that have made SimplePie as successful as it is. We truly appreciate your support! diff --git a/docs/content/blog/2006-11-14-simplepie-beta-31-the-bugfix-release.md b/docs/content/blog/2006-11-14-simplepie-beta-31-the-bugfix-release.md new file mode 100644 index 000000000..9d554ad42 --- /dev/null +++ b/docs/content/blog/2006-11-14-simplepie-beta-31-the-bugfix-release.md @@ -0,0 +1,13 @@ ++++ +title = "SimplePie Beta 3.1: The Bugfix Release" +date = 2006-11-14T15:26:00Z + +[extra] +author = "Ryan Parman" +cover_image = "/images/128/designer.png" +cover_image_alt = "Designer" ++++ + +We’re very happy about how few bugs have been reported about our recent Beta 3 release! There have been a few, however, so we wanted to fix them and get them out to you before too long. As we learn about new bugs that can be reasonably fixed on the current branch code, we’ll get bugfix releases out to resolve them in regular intervals. Some issues are a bit bigger and will be fixed in our 1.0 release. + +What was fixed here? Mostly just two bugs — both related to our gzip support. One was an issue related to how `fsockopen()` handles gzipped data, the other was how cURL handles gzipped data. There was also some tweaking to improve support for handling a bug in how Microsoft IIS/6.0 sends gzipped data. This isn’t a MUST HAVE update, but if you’ve been encountering issues with gzipped feeds or “incorrect headers”, this should squash those issues. diff --git a/docs/content/blog/2006-11-24-simplepie-beta-32-the-return-of-the-bugfix-release.md b/docs/content/blog/2006-11-24-simplepie-beta-32-the-return-of-the-bugfix-release.md new file mode 100644 index 000000000..5f225f1fa --- /dev/null +++ b/docs/content/blog/2006-11-24-simplepie-beta-32-the-return-of-the-bugfix-release.md @@ -0,0 +1,18 @@ ++++ +title = "SimplePie Beta 3.2: The Return of the Bugfix Release" +date = 2006-11-24T16:29:00Z + +[extra] +author = "Ryan Parman" +cover_image = "/images/128/heart.png" +cover_image_alt = "Heart" ++++ + +Following quickly after Beta 3.1 comes our 3.2 release. Bugfix releases are coming more quickly these days so that people like you and me don’t have to wait 5 months for the next release to fix a bug that was discovered the day after the current release came out (we ended up doing that for Beta 2, and it sucked). + +Beta 3.2 fixes two bugs in the current Beta 3 release: + +1. [Bug 403](/support/viewtopic.php?id=403) – Occassionally, PHP4’s XML parser will choke on characters that are not part of the current character set, while PHP5’s XML parser will pass them as question marks. +2. [Bug 431](/support/viewtopic.php?id=431) – If a title tag is embedded inside another title tag, or if there are multiple title tags inside of a feed item, SimplePie will use the latter of the two. + +Meanwhile, one of the coolest features of Beta 3 is the ability to extend and override the built-in SimplePie classes (parsing, auto-discovery, feed cleaning, etc.). Documentation for those should come shortly. 🙂 diff --git a/docs/content/blog/2006-11-27-random-statistics-about-simplepieorg.md b/docs/content/blog/2006-11-27-random-statistics-about-simplepieorg.md new file mode 100644 index 000000000..fb201c652 --- /dev/null +++ b/docs/content/blog/2006-11-27-random-statistics-about-simplepieorg.md @@ -0,0 +1,58 @@ ++++ +title = "Random statistics about SimplePie.org" +date = 2006-11-27T11:38:00Z + +[extra] +author = "Ryan Parman" ++++ + +For those of you interested in statistical data for SimplePie.org (which is probably only me), I was digging through my stats this morning, and learned the following: + +##### Firefox is the most popular browser. + +1. 64.7% Firefox +2. 21.8% Internet Explorer +3. 8.5% Safari +4. 2.3% Opera +5. 1.1% Mozilla (not including SeaMonkey) +6. 1.6% Everything else + +Firefox users are nearly **triple** the number of IE users, and the Mac-only Safari is nearly at 10%! Additionally, I’m surprised that there are even 1.1% of people still on the old Mozilla browser. + +##### Windows users still dominate, but not like everywhere else. + +1. 75.7% Windows +2. 17.3% Mac (WOW!) +3. 6.4% Linux +4. 0.7% Everything else + +Mac and Linux users are roughly 25% of all visits! Windows users are still the most prevalent, but with not nearly the lead that have in other markets. + +##### It’s all about the midrange. + +98% of all SimplePie users have a screen resolution of 1024×768 or larger, but 62% of those are either at 1024×768 or 1280×1024. That means that SimplePie’s website will have to stay 1024×768-friendly for quite some time to come. + +##### Flash 8 is still on top, with Flash 9 coming up quick. + +1. 53.6% Flash 8 +2. 37.3% Flash 9 +3. 8.3% Flash 7 +4. 0.7% Everything else + +If this in any indicator of the Flash usage (which it probably is), over 99% of all SimplePie users will be able to support the new software we’re using to support Flash Video (.flv) and MP3’s on the trunk (to be 1.0). Cool! + +##### Other random statistics about SimplePie.org + +Since we launched SimplePie.org with our Preview Release last January: + +- 297,418 visits +- 39,601 of those were unique +- Top 5 most popular pages are: Homepage, Demo, Downloads, Support Forums, and the Installation instructions +- Top 5 most popular external searches (i.e. Google) are: ‘simplepie’, ‘online rss reader’, ‘simple pie’, ‘wordpress rss plugin’, and ‘online feed reader’ +- Top 5 most popular internal searches are: ‘cache’, ‘curl_setopt’, ‘wordpress’, ‘itunes’, and ‘flickr’ +- Top 5 things that people leave the site clicking on: [svn.simplepie.org/simplepie/](http://svn.simplepie.org/simplepie/), undefined(???), [james.cridland.net/code/google-calendar.html](http://james.cridland.net/code/google-calendar.html), [bioneural.net/2006/07/01/baking-simplepie-with-favicon-topping/](http://www.bioneural.net/2006/07/01/baking-simplepie-with-favicon-topping/), and [mobile.simplereader.com](http://mobile.simplereader.com/) +- Top 5 referring domains: [google.com](http://google.com), [stumbleupon.com](http://stumbleupon.com), [del.icio.us](http://del.icio.us), [google.co.uk](http://google.co.uk), and [hotscripts.com](http://hotscripts.com) +- Top 5 non-SimplePie downloads: SimplePie Plugin for WordPress, SimplePie Compatibility Test, Multifeeds sample code, SimplePie Plugin for Textpattern, and the Delicious AJAX sample code. +- Traffic tripled between April and June, while October was the highest trafficked month ever with over 50,000 visits. + +That is all. 🙂 diff --git a/docs/content/blog/2006-12-01-more-on-method-names.md b/docs/content/blog/2006-12-01-more-on-method-names.md new file mode 100644 index 000000000..d7b83ed20 --- /dev/null +++ b/docs/content/blog/2006-12-01-more-on-method-names.md @@ -0,0 +1,21 @@ ++++ +title = "More on Method Names" +date = 2006-12-01T13:58:00Z + +[extra] +author = "Geoffrey Sneddon" +cover_image = "/images/128/designer.png" +cover_image_alt = "Designer" ++++ + +<div lang="en-GB"> + +A month or two ago, we ran a poll with three options: drop `get_` from method names, add `set_` to others, or leave it as is. The result was overwhelmingly for the second option, adding `set_`. + +One month ago, I changed the methods that directly interact with the SimplePie class. This proved controversial, despite the fact people writing PHP _really_ should know that development code should _not_ be relied upon, knowing that it may not work, or break backwards compatibility without warning. There’s been various <s>discussions</s> <u>arguments</u> about whether other verbs (such as enable) should be used in some of the method names. Anyone got any thoughts? + +The second issue is to do with SimplePie_Item::get_description(). If we’re to have two methods – one that gets the description, and another that gets the content (or description, if that doesn’t exist), what should the methods be called? I’m in favour of the description method being SimplePie_Item::get_description() and the content method being SimplePie_Item::get_content(), thereby breaking backwards compatibility; however, I’m open to suggestions. + +Lastly, anyone interested in mailing lists, for either announcements or support? + +</div> diff --git a/docs/content/blog/2006-12-05-simplepie-mentioned-on-the-looseendsshowcom-podcast.md b/docs/content/blog/2006-12-05-simplepie-mentioned-on-the-looseendsshowcom-podcast.md new file mode 100644 index 000000000..5764a17ab --- /dev/null +++ b/docs/content/blog/2006-12-05-simplepie-mentioned-on-the-looseendsshowcom-podcast.md @@ -0,0 +1,15 @@ ++++ +title = "SimplePie mentioned on the LooseEndsShow.com Podcast!" +date = 2006-12-05T13:17:00Z + +[extra] +author = "Ryan Parman" +cover_image = "/images/128/itunes7.png" +cover_image_alt = "Podcast" ++++ + +In episode \#64 of the [Loose Ends Show](http://looseendsshow.com/index.php?post_id=157843) podcast, Tom Sidock talks about WordPress and says that “SimplePie is awesome!” + +The segment on WordPress begins around 10:05, while the SimplePie Plugin for WordPress is mentioned at 22:30 and is talked about for around 45 seconds or so. + +The entire WordPress segment is good (didn’t listen to the rest of the podcast), so check it out! diff --git a/docs/content/blog/2007-02-18-updates-upcoming-features-multifeeds-2-and-simplepie-lite.md b/docs/content/blog/2007-02-18-updates-upcoming-features-multifeeds-2-and-simplepie-lite.md new file mode 100644 index 000000000..3b440747d --- /dev/null +++ b/docs/content/blog/2007-02-18-updates-upcoming-features-multifeeds-2-and-simplepie-lite.md @@ -0,0 +1,27 @@ ++++ +title = "Updates: Upcoming features, Multifeeds 2, and SimplePie Lite" +date = 2007-02-18T14:32:00Z + +[extra] +author = "Ryan Parman" +cover_image = "/images/128/simplepie.png" +cover_image_alt = "SimplePie" ++++ + +I just realized how long it’s been since we’ve had a real blog posting here. Work on 1.0 is coming along, albeit a bit slower than with previous releases. But that’s mostly been an issue of time available, rather than any particular technical challenges. + +Geoffrey has been hard at work with re-writing SimplePie’s core engine, and that’s been available in the trunk builds for several weeks now. Among other things, it includes the MagpieRSS-like ability to parse out ALL elements within the feed into a huge data array. Because of that, we now have access to things like `geo:`, `media:` and `itunes:` data, although we haven’t yet built any easy-to-use API functions for them yet. + +Geoffrey has also been working hard on improved standards-compliance within SimplePie. In addition to going over more bug reports, RFCs and specification documents than I care to count, he’s also been working on our [automated testing system](http://php5.simplepie.org/trunk/test2/test.php), which significantly helps with things like regression testing and proper support for third-party testing suites (like [Mark Pligrim’s](http://diveintomark.org/) [Universal Feed Parser](http://feedparser.org/) [unit tests](http://feedparser.org/tests/)). This system has already been immensely helpful, and will really help us move forward into awesomeness in 2007. + +I (Ryan) have been working on a number of consumer-oriented functions, such as one that will allow us to shorten descriptions by character or word while maintaining existing HTML. I’ve also been working on code for ‘Multifeeds 2’, which will allow feed mashing in a cleaner and simpler manner than the current Multifeeds code. I’m also in the process of refreshing and realigning the SimplePie website. After going through the statistics provided from [Mint](http://haveamint.com/) and [Google Analytics](http://www.google.com/analytics/), we’ve decided to make some adjustments to several areas of the site in an effort to improve the overall usefulness. Expect to see those changes with the release of our 1.0 Release Candidate. + +Lastly, we’re getting ready to release a preview of what we’re calling _SimplePie Lite_. SimplePie Lite is a web service providing a JavaScript interface for SimplePie. Here are a few features and advantages: + +- It is a hosted service. There is nothing to install, and no futzing with installing missing PHP extensions. Everything runs on [Dreamhost](http://dreamhost.com/r.cgi?skyzyx) servers, which have everything installed. +- When passed a feed, SimplePie Lite returns a gzip-compressed [JSON](http://en.wikipedia.org/wiki/JSON) object, which is perfect for integrating into your AJAX apps. On average, the gzipped data is anywhere from 70–90% smaller than the uncompressed data. Couple that with SimplePie’s caching and ‘HTTP conditional get’ support, and you’re looking at some very small, very fast downloads. +- ALL of the relevant SimplePie PHP functions have been made available in SimplePie Lite, albeit _JavaScriptized_. Where SimplePie has `$item->get_permalink()`, SimplePie Lite has `item.getPermalink()`. All of the relevant configuration options are also available, the only exceptions being those which need to be static for optimal efficiency for the server. +- After the guts are finished, we’ll be building a user interface which allows people to enter a few bits of information, click a few checkboxes, and generate code that can be copy-pasted into webpage or profile where JavaScript is allowed. +- This also means that SimplePie is no longer solely available to those building with PHP. SimplePie Lite can be used with Ruby (on Rails), Java, ASP/ASP.Net, Coldfusion, and virtually any other web programming language. + +The preview will be available in the coming weeks, and will be formally launched sometime after SimplePie 1.0 goes gold. diff --git a/docs/content/blog/2007-03-28-simplepie-razzleberry-draws-ever-closer.md b/docs/content/blog/2007-03-28-simplepie-razzleberry-draws-ever-closer.md new file mode 100644 index 000000000..de769e37a --- /dev/null +++ b/docs/content/blog/2007-03-28-simplepie-razzleberry-draws-ever-closer.md @@ -0,0 +1,31 @@ ++++ +title = "SimplePie “Razzleberry” draws ever closer!" +date = 2007-03-28T19:20:00Z + +[extra] +author = "Ryan Parman" ++++ + +SimplePie is getting ever closer to releasing 1.0 final! We expect to have the first release candidate available in the next few weeks, and we’ll be asking the community to report bugs so that we can fix them for when 1.0 goes gold! Here is a list of features, changes, and improvements that are already in the latest trunk builds: + +- A completely re-written parsing core which is _faster_ and supports the standards better than ever before. +- Access to ALL of the available XML elements (just like MagpieRSS does). +- Multifeeds support integrated into the core, and has access to all standard SimplePie methods (Multifeeds 1 didn’t). +- Support for embedding Flash Video (.flv) enclosures. +- Faster-loading Flash-based MP3 playback. +- Better compliance and support for feed auto-discovery. +- Full support of the date/time parts of ISO-8601. +- More accurate support for XML mime types (RFC 3023). +- Improved xml:base and XHTML support. +- Literally hundreds of other bug fixes and other minor improvements. + +We’ve also got a few “blockers” on the list, meaning that we won’t launch 1.0 until we have support for these: + +- Support for iTunes and MediaRSS elements. +- Complete support for GeoRSS elements. +- Image and Favicon caching. +- A few other minor bugs and feature requests. + +This will definitely be our most exciting release so far, and we hope that you guys will be happy with it as well! If you want to keep up with what’s on the list, what’s not on the list, and what’s already been done, you can keep track of our progress and test your feeds in the latest builds on the [Development](/development/) page. + +The upcoming SimplePie Lite service will be based on 1.0 code, as well as updated versions of the Plugins for WordPress, Textpattern and Mediawiki. diff --git a/docs/content/blog/2007-03-29-handbrake-doesnt-care-about-black-people-i-mean-end-users.md b/docs/content/blog/2007-03-29-handbrake-doesnt-care-about-black-people-i-mean-end-users.md new file mode 100644 index 000000000..1ab42fbb0 --- /dev/null +++ b/docs/content/blog/2007-03-29-handbrake-doesnt-care-about-black-people-i-mean-end-users.md @@ -0,0 +1,27 @@ ++++ +title = "Handbrake is frustrated with bad end-users" +date = 2007-03-29T17:21:00Z + +[extra] +author = "Ryan Parman" +cover_image = "/images/128/whimper.png" +cover_image_alt = "[Whimper]" ++++ + +_This post was originally entitled “Handbrake doesn’t care about black people… I mean end-users.” After reading through some of the comments made by the Handbrake developers at the bottom of this page, it seems that they do care about end-users… they’re just frustrated by bad end-users. Thanks for the dialog and clarification, Handbrake team!_ + +First off, I need to clarify that the title of this post is a joke in reference to idiot rapper [Kanye West’s claim](http://youtube.com/watch?v=zIUzLpO1kxI) that “George Bush doesn’t care about black people.” + +Now that we have that settled, I came across a [posting on Handbrake’s support forums](http://handbrake.m0k.org/forum/viewtopic.php?t=501) that irritated me to no end, and I felt I need to share. If you’ve never heard of Handbrake, the team describes their project as “…an open-source, GPL-licensed, multiplatform, multithreaded DVD to MPEG-4 ripper/converter, available for MacOS X, Linux and Windows.” It’s a cool piece of software for exercising your fair use rights that the DMCA has attempted to take away from us. + +If you haven’t read the above linked post, please read it before moving on. I’ll wait. + +My first response when I read this was “No, no, no, no, no!” Now, the posting begins with a few bullet points that I generally agree with. Yes, software innovation is good. Yes, code inspection by other peers is good. No, it’s not cool when people come and begin demanding features immediately. No, it’s not cool to hassle or insult the developers. But from there, the author completely misses the point of writing software for other people to use. + +Now, maybe the author has reached that point because the Handbrake community has had a number of “bad egg” users who hassle the developers like they owe them something. I feel very fortunate to be part of the SimplePie community which rarely ever has bad eggs or raving lunatics demanding features be built right this second. But even then, who are they building the software for? + +Communities are very important to software projects. Bug reports, patches, feature requests, and all sorts of other things are important parts of the growth of a product. No, we don’t always have time to answer support forums in the timeliest of manners, and no we can’t implement every single feature that gets asked for. But we certainly listen, and we certainly try to work in the more relevant and useful features, and we’re always looking for ways to make things simpler for people either by a change in SimplePie or a tutorial and/or code sample of some sort. Why? Because this project would never have become as good as it has without our users and their feedback. + +Handbrake’s team seems to think that they are just fine without end-user support. They seem to believe that they already know what is best for Handbrake, and that there’s no suggestion their users can make that they haven’t already thought of. GIVE. ME. A. BREAK. SimplePie started out as one guy scratching an itch and opening up the source for code review and suggestions. It was built around a series of functions, only supported one feed per page, and had maybe 5 users. Nowadays, SimplePie is being used by thousands and thousands of people all over the world, it’s fully object-oriented, supports all sorts of specifications, supports several feeds per page, and a whole variety of other cool features. Why? Because we already know what’s best and don’t want your input? No, no, no. SimplePie is successful because we listen to our users. I never envisioned SimplePie would be able to do the things it can now. We know that we’ve got good people in our community who have all sorts of ideas about how SimplePie could be better — and it shows! + +So, best of luck to Handbrake. They seem like they know how successful they want their project to be. As for myself, I’ve deleted my copy of Handbrake and will look elsewhere for my video transcoding needs. diff --git a/docs/content/blog/2007-04-02-simplepie-and-magpie-are-not-merging.md b/docs/content/blog/2007-04-02-simplepie-and-magpie-are-not-merging.md new file mode 100644 index 000000000..9f9e57a17 --- /dev/null +++ b/docs/content/blog/2007-04-02-simplepie-and-magpie-are-not-merging.md @@ -0,0 +1,13 @@ ++++ +title = "SimplePie and Magpie are NOT merging." +date = 2007-04-02T11:23:00Z + +[extra] +author = "Ryan Parman" ++++ + +Just for the record, SimplePie and MagpieRSS are not actually merging. Geoffrey and I came up with the idea for the April Fool’s joke on Friday, and I got in touch with Kellan (from the MagpieRSS project). He said he was cool with the joke, but unfortunately wouldn’t have time to update the MagpieRSS site with a similar notice. + +There were a few blog posts from around the web that we saw, as well as [a new digg](http://digg.com/software/SimplePie_and_Magpie_are_joining_the_forces_ultimate_RSS_reader_soon)! No, NeoPie doesn’t actually exist, and no our teams are not merging. We just thought it’d be a funny prank. 🙂 + +Thanks to Kellan for being cool about the joke and playing along. diff --git a/docs/content/blog/2007-05-07-wrapping-up-10.md b/docs/content/blog/2007-05-07-wrapping-up-10.md new file mode 100644 index 000000000..9d1b4e0d3 --- /dev/null +++ b/docs/content/blog/2007-05-07-wrapping-up-10.md @@ -0,0 +1,15 @@ ++++ +title = "Wrapping up 1.0" +date = 2007-05-07T21:18:00Z + +[extra] +author = "Ryan Parman" ++++ + +We’re wrapping up 1.0 development as we speak. There is still one major feature and a few bugs to take care of, but for the most part SimplePie 1.0 is ready to go! If you’ve got any bugs to report on the development trunk, now is the time to report them! We’ll be releasing the first release candidate shortly along with a refresh of our website (the information is starting to grow larger than the site was built for!). + +We’ll also be moving all of our documentation to a wiki so that documentation, tutorials, and tips and tricks can be a community effort. We’ve been fortunate to attract some very knowledgeable users over the last year-and-a-half since our Preview Release, and we want to make room for the power users to be able to contribute more than they’re currently able to. + +Our plug-in collection has also grown tremendously in the last year! Not only do we have plug-ins for WordPress, Textpattern, and Mediawiki, but we’ve also got various plug-ins for Joomla, Drupal, MODx, PunBB, CakePHP, and we’ve even been integrated directly into projects such as Dokuwiki (among others)! If you’re a user of one of these plug-ins, thank the awesome members of our community for making it happen! + +Anyways, enough of the chit-chat. Back to work for us. diff --git a/docs/content/blog/2007-05-10-trunk-problems-with-php-446-447-and-522.md b/docs/content/blog/2007-05-10-trunk-problems-with-php-446-447-and-522.md new file mode 100644 index 000000000..5c04198fa --- /dev/null +++ b/docs/content/blog/2007-05-10-trunk-problems-with-php-446-447-and-522.md @@ -0,0 +1,22 @@ ++++ +title = "Trunk Problems with PHP 4.4.6, 4.4.7, and 5.2.2" +date = 2007-05-10T18:24:00Z + +[extra] +author = "Ryan Parman" ++++ + +**\*Update:** This issue has been worked-around in r706.\* + +For anyone who has recently upgraded to PHP versions 4.4.6, 4.4.7, or 5.2.2 (including pretty much everybody on Dreamhost), running the trunk/development version of SimplePie causes something called a “segmentation fault”, which essentially means that PHP crashes when running the trunk/dev version. This does not appear to affect the current stable release (Beta 3.2), nor does it seem to affect any other versions of PHP. If you’re running a different version of PHP and this is happening, please let us know in the “Bug Reports – Trunk” forum. + +For those who care about the nitty-gritty details, it seems that these versions of PHP include a new version of PCRE — the Perl-compatible regular expression engine that is used by SimplePie, and some of the regular exressions (particularly the ones that strip RFC822 comments) are causing servers to return an HTTP 500 error. + +We’ve filed a bug report to PHP, and we’ll be working on some sort of workaround for this, however in the meantime you can make the following change to the simplepie.inc file. You’ll find it near line 50. + +```php +//define('SIMPLEPIE_BUILD', gmdate('YmdHis', SimplePie_Misc::parse_date('$Date: 2007-02-22 14:03:17 -0800 (Thu, 22 Feb 2007) $'))); +define('SIMPLEPIE_BUILD', 12345678901234); +``` + +Apologies to everyone who has been affected by this (ourselves included), and we hope to have this worked out ASAP. diff --git a/docs/content/blog/2007-05-22-faqs-and-tutorials.md b/docs/content/blog/2007-05-22-faqs-and-tutorials.md new file mode 100644 index 000000000..9a36eb8cf --- /dev/null +++ b/docs/content/blog/2007-05-22-faqs-and-tutorials.md @@ -0,0 +1,11 @@ ++++ +title = "FAQs and Tutorials" +date = 2007-05-22T22:57:00Z + +[extra] +author = "Ryan Parman" ++++ + +We’re in the process of moving all of our documentation over to a wiki in preparation of our 1.0 launch. There have been requests in the forums for a wiki for a while, and we agree that it’ll be a better way of managing documentation (and allowing it to become a community effort). + +We were going through the forums to find frequently asked questions and frequently requested tutorials, and wanted to get your input as well. What questions do you think we should add to a FAQ? What tutorials do you think should be made available? Post about them in the comments, and we’ll get working on them. 🙂 diff --git a/docs/content/blog/2007-06-21-release-candidate-this-weekend.md b/docs/content/blog/2007-06-21-release-candidate-this-weekend.md new file mode 100644 index 000000000..2f41bb8ac --- /dev/null +++ b/docs/content/blog/2007-06-21-release-candidate-this-weekend.md @@ -0,0 +1,19 @@ ++++ +title = "Release Candidate this weekend" +date = 2007-06-21T10:35:00Z + +[extra] +author = "Ryan Parman" +cover_image = "/images/128/simplepie.png" +cover_image_alt = "SimplePie" ++++ + +We’ve been working hard to wrap up all of the last-minute stuff for our 1.0 launch, including bug fixes, feature tweaks, and writing loads and loads of new documentation and tutorials in an effort to make this the most exciting launch ever! We’ll be releasing the first release candidate sometime over the weekend, and we encourage everyone to upgrade to help us shake out the last-minute niggles. + +Oh, and by “everyone”, I mean “not people who are using the official plugins for WordPress, Textpattern, or Mediawiki”. We’re going to be releasing a 1.2.1 version of the plugins at the 1.0 launch so that people can make the move, but development of the 1.3 versions of the plugins will begin AFTER we go live with SimplePie 1.0. v1.3 will be a complete rewrite that will really take the plugins up several notches. 🙂 + +Also, for those of you who are still waiting to play with a preview of the previously-mentioned SimplePie Lite, we decided to hold off of making it public until we could port all of the code from Beta 3 to the new 1.0 codebase. It’s going to take a little more time, but you can bet it’s going to rock the pants off of Google’s AJAX Feed API! It even supports the same new fancy cross-domain AJAX support that’s built into Google’s service, and the API is near-identical to SimplePie for PHP. + +Lastly, SimplePie was recently mentioned in an article on InfoWorld.com called [“Building a bridge to the future”](http://www.infoworld.com/article/07/06/21/25OPentinsight_1.html). Although it was just a quick mention, we’re proud to have even been noted! + +Bigger and better things are just around the corner. 😉 diff --git a/docs/content/blog/2007-06-23-simplepie-10-release-candidate-is-here.md b/docs/content/blog/2007-06-23-simplepie-10-release-candidate-is-here.md new file mode 100644 index 000000000..c00726c12 --- /dev/null +++ b/docs/content/blog/2007-06-23-simplepie-10-release-candidate-is-here.md @@ -0,0 +1,29 @@ ++++ +title = "SimplePie 1.0 Release Candidate is here!" +date = 2007-06-23T18:39:00Z + +[extra] +author = "Ryan Parman" +cover_image = "/images/128/grin.png" +cover_image_alt = "Grin" ++++ + +It brings me great pleasure to announce that SimplePie 1.0 Release Candidate is now available! We’re calling this a “Release Candidate” because there are a couple more minor niggles to work out still, but we’ll be doing new release candidates every weekend for the next 2-3 weeks until we get the last of the (minor) issues worked out. + +There are a number of new things to talk about for [this release](/wiki/misc/release_notes/simplepie_1.0): + +- **A refresh of the website** — The homepage was completely revamped and the old WordPress-based documentation has been moved into a new wiki so that we can all contribute valuable information to the community. All of the other pages got a subtle facelift. +- **More ways to keep track of development** — For the many of you on the bleeding edge, we’re adding [Twitter updates](http://twitter.com/simplepie) to our Subversion notification methods, and we’re also generating a downloadable snapshot of the very latest revision for those who don’t use Subversion tools. +- **Integrated “Multifeeds” support** — Now, it’s as easy to mash feeds together as it is to parse a single feed. All of SimplePie’s native methods can be used instead of having to hack data arrays together. +- **Access ALL tags and attributes in the feed** — This was probably the most requested feature of all time. Not only do we make all of the data available, but we have a handful of methods available for easily getting to that data. +- **BSD-Licensed** — We now have a license that is about as non-restrictive as it gets. You can pretty much do whatever you want with SimplePie — commercial or otherwise — as long as you leave all copyright notices in place. +- **Media RSS and iTunes RSS support** — We have a 100% complete Media RSS implementation (which I believe is the first one… am I right?), and an 80% complete iTunes RSS implementation. +- **Better Podcast/Vidcast/Enclosure support** — We’ve added a “widescreen” configuration for video enclosures, as well as a handful of additional methods for better enclosure handling. We’ve also added support for the popular Flash Video format and faster-loading MP3 playback. +- **Image and Favicon caching** — This feature still needs a tad more polish, but SimplePie now sports improved favicon detection, and caching for both images and favicons using an XSS-safe method. +- **Performance Enhancements!** — We’ve spent a lot of time fine-tuning our performance by targetting high-cost function calls. And if that wasn’t enough, we’ve added the new `set_stupidly_fast()` configuration option which trades data cleaning for pure speed. The result is that SimplePie is the fastest it’s ever been, and gives everyone else a run for their money. +- **Lots o’ Configurability** — We’ve really listened to our hard-core power users, and we’ve implemented more customization than ever before to really allow savvy developers to take their feed-related apps to the next level! +- **Add-ons Galore!** — Over the next several weeks we’re going to begin seeing lots and lots of SimplePie Add-ons that take advantage of the extensible, configurable nature of SimplePie to allow people to do things they’ve never been able to (easily) do before! The first few will come from the SimplePie team, then I expect to see a number of Add-ons being developed by people like you! Feeds won’t know what hit them! + +I’ll be sending emails to a number of plugin developers shortly so that they can get started on updating their SimplePie plugins for use with SimplePie 1.0. We ourselves have not yet updated our own plugins, but we’ll be releasing a 1.2.1 update in the next few days to address this update. If you do decide to upgrade, we changed a handful of method names, so please look over the [Upgrade Guidelines](/wiki/setup/upgrade) as you update SimplePie. + +Enjoy! We’ll be fixing bugs this week, and will release the next release candidate this upcoming weekend. diff --git a/docs/content/blog/2007-07-01-simplepie-10-release-candidate-2.md b/docs/content/blog/2007-07-01-simplepie-10-release-candidate-2.md new file mode 100644 index 000000000..410e9739d --- /dev/null +++ b/docs/content/blog/2007-07-01-simplepie-10-release-candidate-2.md @@ -0,0 +1,15 @@ ++++ +title = "SimplePie 1.0 Release Candidate 2" +date = 2007-07-01T22:43:00Z + +[extra] +author = "Ryan Parman" +cover_image = "/images/128/simplepie.png" +cover_image_alt = "SimplePie" ++++ + +After being made aware of a few issues with our first release candidate, we’ve fixed a number of bugs and we now offer the second release candidate of SimplePie 1.0! + +We launched SimplePie 1.0 RC1 last weekend with relatively high hopes. But we were completely blown away to see that since last weekend, RC1 had **971** downloads the first week alone! That is almost 5 times the rate of Beta 3’s first week! Thanks so much! We had over 11,000 downloads of Beta 3 all-together, so there are still a number of people who have not yet upgraded, but we hope that time is fast approaching. 😉 + +Go ahead and grab RC2 to fix some minor issues with RC1. RC3 is in the pipe for next weekend, and will (hopefully) be our last release candidate before becoming 1.0 final. diff --git a/docs/content/blog/2007-07-03-simplereader-mobile-has-had-a-facelift.md b/docs/content/blog/2007-07-03-simplereader-mobile-has-had-a-facelift.md new file mode 100644 index 000000000..64fb15242 --- /dev/null +++ b/docs/content/blog/2007-07-03-simplereader-mobile-has-had-a-facelift.md @@ -0,0 +1,17 @@ ++++ +title = "SimpleReader Mobile has had a facelift!" +date = 2007-07-03T18:29:00Z + +[extra] +author = "Ryan Parman" +cover_image = "/images/128/mobile.png" +cover_image_alt = "Mobile" ++++ + +For those who have been using [SimpleReader Mobile](http://mobile.simplereader.com/) (or simply those who are looking for an iPhone, PSP, Palm, Blackberry, or phone-friendly web-based feed reader), we’ve given it a new facelift! Most devices (like phones, and Blackberrys and such) get a clean, fast, clutter-free view of their favorite feeds. For devices that can handle CSS (e.g. iPhone, PSP, Opera Mini), we’ve got the same thing except that it looks a lot nicer on these devices. + +Also for the first time, [SimpleReader Mobile](http://mobile.simplereader.com/) looks pretty good on desktop browsers as well. If you’ve got a mobile device with an internet data plan or WiFi support, give [SimpleReader Mobile](http://mobile.simplereader.com/) a try. Also, for devices that support Flash playback (e.g. PSP), we’ll soon be adding the ability to playback MP3 and FLV enclosures! + +[SimpleReader Mobile](http://mobile.simplereader.com/) is powered by the latest version of [SimplePie](/), which means that it supports all the cool, gee-whiz stuff like [Internationalized Domain Names](http://mobile.simplereader.com/?feed=http://www.xn--8ws00zhy3a.com/feed), solid [Atom 1.0 support](http://mobile.simplereader.com/?feed=http://www.tbray.org/ongoing/ongoing.atom), and [Feed Autodiscovery](http://mobile.simplereader.com/?feed=digg.com). Can your other mobile feed reader do that? 🙂 + +[Digg it!](http://digg.com/software/Easy_news_reader_for_iPhone_PSP_Blackberry_and_other_mobile_devices) diff --git a/docs/content/blog/2007-07-05-fix-for-curl-errors-in-10-rc2.md b/docs/content/blog/2007-07-05-fix-for-curl-errors-in-10-rc2.md new file mode 100644 index 000000000..3f0736481 --- /dev/null +++ b/docs/content/blog/2007-07-05-fix-for-curl-errors-in-10-rc2.md @@ -0,0 +1,11 @@ ++++ +title = "Fix for cURL errors in 1.0 RC2" +date = 2007-07-05T13:45:00Z + +[extra] +author = "Ryan Parman" ++++ + +A number of people (myself included) have suddenly started having problems with cURL errors when trying to fetch certain feeds. There weren’t any changes to the cURL code between RC1 and RC2, so we’re trying to track down where the issue is coming from. Until then, you can force SimplePie to use fsockopen() instead of cURL by setting the [force_fsockopen(true)](/wiki/reference/simplepie/force_fsockopen) configuration option. + +We’ll post an update as soon as we track down the source of the issue. diff --git a/docs/content/blog/2007-07-10-simplepie-10-release-candidate-3.md b/docs/content/blog/2007-07-10-simplepie-10-release-candidate-3.md new file mode 100644 index 000000000..c60214704 --- /dev/null +++ b/docs/content/blog/2007-07-10-simplepie-10-release-candidate-3.md @@ -0,0 +1,11 @@ ++++ +title = "SimplePie 1.0 Release Candidate 3" +date = 2007-07-10T10:37:00Z + +[extra] +author = "Ryan Parman" +cover_image = "/images/128/simplepie.png" +cover_image_alt = "SimplePie" ++++ + +SimplePie 1.0 RC3 is now available. This release fixes a number of bugs that turned up with cURL and date handling. We’re hoping that this will be our last release candidate, but please let us know at the forums if you come across any bugs. 🙂 diff --git a/docs/content/blog/2007-07-13-simplepie-is-going-php5-only.md b/docs/content/blog/2007-07-13-simplepie-is-going-php5-only.md new file mode 100644 index 000000000..3a3bc899e --- /dev/null +++ b/docs/content/blog/2007-07-13-simplepie-is-going-php5-only.md @@ -0,0 +1,21 @@ ++++ +title = "SimplePie is going PHP5-only!" +date = 2007-07-13T09:15:00Z + +[extra] +author = "Ryan Parman" +cover_image = "/images/128/php.gif" +cover_image_alt = "PHP" ++++ + +We’ve had this noted in our [Development Roadmap](/development/) for about 6 months now, but since many people don’t read the roadmap, I want to announce this officially: _SimplePie 1.5 will require PHP 5.2!_ There are a few reasons for this: + +1. **Bigger and better things:** There are lots of new things that we want to build to make SimplePie far better than it is today, but we can only do some of those things if we have a reliable codebase to build from. PHP 5.2 is that codebase. We want to be able to reliably strip out potentially dangerous tags and attributes, and we want the good tags to be whitelisted (which is much easier for all of us than the current blacklisting). We want to be able to support new and emerging technologies like [Microformats](http://microformats.org/). We want to be able to reliably shorten titles and descriptions in feeds, while maintaining HTML tags. We could either do a ton of hacking now, or we can move to a codebase that will enable us to do these things “the right way.” We’re opting for the right way. +2. **PHP 4.x End-of-Life:** Today, the PHP team [announced the End-of-Life for PHP 4.x as of the end of the year](http://www.php.net/archive/2007.php#2007-07-13-1). They want everybody to move over to the PHP5 codebase, and what better version of PHP5 to move to than one of the more recent ones. +3. **Go PHP5!** [GoPHP5.org](http://gophp5.org/) points out a number of things about PHP 4 and 5, specifically in the way of encouraging people to drop support for PHP 4.x so that better things can be built with PHP 5 and the upcoming PHP 6. Trying to support 2 platforms is difficult enough, but supporting 3 would be a nightmare. PHP 4.x is old, and we need to look to the future. Kinda like making the move to Web Standards for some people. It was tough to get away from those FONT tags and TABLEs for layout, but once you moved to CSS-based layouts, you realized that the doors just got blown open with all of that potential. Same thing here with us moving to PHP 5.2 and newer. + +We’re in the process of fixing the last few bugs in 1.0, and we’ve still got 1.1 and 1.2 releases scheduled. We don’t anticipate having SimplePie 1.5 out before the end of the year anyways, but I wanted to let you all know — several months in advance — that we’re going to be making a move, so everyone should start planning ahead for it. The stuff that we’re wanting to do, and the places we want to take this API are going to be very, very cool, and we want everybody to be able to come with us! + +_(One of the requirements of being listed on the GoPHP5! website is state our intention to stop supporting PHP versions less than 5.2 starting February 5th, 2008. While this hard-stop date is a bit silly, we are fully supporting the spirit of this initiative. We will not suddenly strip out support for PHP 4.x in whatever the official release is at the time, but we do expect a PHP5-only release of SimplePie 1.5 in early 2008.)_ + +It’s a brave new world out there! 🙂 diff --git a/docs/content/blog/2007-07-15-geoffrey-for-hire.md b/docs/content/blog/2007-07-15-geoffrey-for-hire.md new file mode 100644 index 000000000..cb9d0ac59 --- /dev/null +++ b/docs/content/blog/2007-07-15-geoffrey-for-hire.md @@ -0,0 +1,13 @@ ++++ +title = "Geoffrey for Hire!" +date = 2007-07-15T13:45:00Z + +[extra] +author = "Ryan Parman" ++++ + +Is your project in need of some help from a bona fide SimplePie expert? Of course it is! Geoffrey is your guy for hire! + +He is available for working remotely on a non-taxed independent contractor basis for 35 hours per week from August 6th – 19th (two weeks) for SimplePie-related work for a measly £1,000 GBP (roughly $2,000 USD) to be paid via PayPal! This is a very small investment to make for such a depth of knowledge of SimplePie, object-oriented programming in PHP, lots and lots of specification documents, and more! Specific details and expectations can be worked out by contacting him via email at <geoffers@gmail.com> (though he’ll likely be unavailable from July 19th ? 31st). + +Do you have a pet bug that needs to be fixed? Are there features that you’re tired of waiting for that you’d like to have sooner? Now is your chance to make those things happen much faster! Do your SimplePie-related project a favor and hire the best there is! diff --git a/docs/content/blog/2007-07-15-simplepie-10-is-here.md b/docs/content/blog/2007-07-15-simplepie-10-is-here.md new file mode 100644 index 000000000..77995f4d5 --- /dev/null +++ b/docs/content/blog/2007-07-15-simplepie-10-is-here.md @@ -0,0 +1,15 @@ ++++ +title = "SimplePie 1.0 is here!" +date = 2007-07-15T16:13:00Z + +[extra] +author = "Ryan Parman" +cover_image = "/images/128/simplepie.png" +cover_image_alt = "SimplePie" ++++ + +SimplePie 1.0 is now available. This release fixes the remainder of the bugs that we were made aware of (with the exception of one or two that actually stem from PHP bugs). + +This release comes 5 days short of the 3-year anniversary of the first public release of SimplePie! We’ve also had upwards of 2,500 downloads of the three release candidates over the past 3 weeks, so we’re thrilled to be able to deliver a solid release for all of us! + +Download away! diff --git a/docs/content/blog/2007-07-23-simplepie-101-the-bugfix-release.md b/docs/content/blog/2007-07-23-simplepie-101-the-bugfix-release.md new file mode 100644 index 000000000..c1298e7f0 --- /dev/null +++ b/docs/content/blog/2007-07-23-simplepie-101-the-bugfix-release.md @@ -0,0 +1,11 @@ ++++ +title = "SimplePie 1.0.1: The Bugfix Release" +date = 2007-07-23T09:46:00Z + +[extra] +author = "Ryan Parman" ++++ + +SimplePie 1.0.1 is now available. We fixed a few issues that we weren’t made aware of until after 1.0 had shipped, so if there were some things that were broken in 1.0, hopefully they’ve been fixed. We know that there are more issues that were encountered, and we’re doing our best to figure out what’s causing them so that we can fix them. + +Obviously, when posting to the forums, please use the Posting Guidelines (noted in the giant red box near the top of every forum page — it’s hard to miss), and give us as much information as possible. Thanks! 🙂 diff --git a/docs/content/blog/2007-07-27-new-iphone-specific-simplereader-mobile.md b/docs/content/blog/2007-07-27-new-iphone-specific-simplereader-mobile.md new file mode 100644 index 000000000..5ffdb7c35 --- /dev/null +++ b/docs/content/blog/2007-07-27-new-iphone-specific-simplereader-mobile.md @@ -0,0 +1,15 @@ ++++ +title = "New iPhone-specific SimpleReader Mobile" +date = 2007-07-27T03:56:00Z + +[extra] +author = "Ryan Parman" +cover_image = "/images/128/iphone.png" +cover_image_alt = "iPhone" ++++ + +I bought the wife an iPhone for her birthday, so I figured I would do some testing with it. Although SimpleReader Mobile looks cool on it, I felt it could use some polish to really make it fit with the rest of the iPhone’s user interface. I decided to spend some time with [iUI](http://www.joehewitt.com/iui/), a mini-framework for building webapps with an iPhone-friendly UI. iUI was created by Joe Hewitt — the same guy who developed the [Firebug](http://getfirebug.com) extension for Firefox. + +If you have an iPhone, you should find the SimpleReader Mobile interface now fits better with the rest of the iPhone UI. At the moment, internationalized domain names don’t work for the iPhone version (the main version still works fine), but I’ll make sure that gets fixed soon. + +Give it a whirl! diff --git a/docs/content/blog/2007-08-11-get-the-most-out-of-simplepie.md b/docs/content/blog/2007-08-11-get-the-most-out-of-simplepie.md new file mode 100644 index 000000000..3c9e89397 --- /dev/null +++ b/docs/content/blog/2007-08-11-get-the-most-out-of-simplepie.md @@ -0,0 +1,18 @@ ++++ +title = "Get the most out of SimplePie!" +date = 2007-08-11T23:18:00Z + +[extra] +author = "Ryan Parman" ++++ + +When we launched the first release candidate build of SimplePie 1.0 in June, we also pushed out a series of updates to our website — the biggest of which was a complete revamp of our documentation and moving it all to a [Dokuwiki](http://dokuwiki.org) installation. Over the past 6 weeks or so, we’ve continued to add more and more information to help people make the most of SimplePie. + +If you haven’t checked these out yet, I’d like to let you know about them. + +- **[Tips, Tricks, Tutorials, and Screencasts](/wiki/tutorial/)** — We’ve spent a lot of time adding helpful tutorials and code samples, as well as adding some narrated screencasts showing the actual creation of things. +- **[SimplePie Plugins](/wiki/plugins/)** — At the moment, there are a variety of software packages that either SimplePie has a plugin for, SimplePie has been integrated into the core of, or SimplePie can be easily added as a component of. The ones we’re aware of are discussed on this page, but we know there are lots more! +- **[SimplePie Add-ons](/wiki/addons/)** — SimplePie Add-ons extend SimplePie, allowing it to do new things! There are a handful of add-ons currently available, and as more people begin to see the benefits we expect this part of the SimplePie community to really grow. +- **[Ideas and Inspiration](/wiki/ideas/)** — People are using SimplePie for lots and lots of different projects, and we’re seeing SimplePie used in all sorts of ways that we never even imagined. This section contains links to sites that are using SimplePie, in an effort to stimulate new ideas and new inspiration. + +I’d encourage you to check these things out if you haven’t already as the community is adding new content all the time. If you have something cool or useful to contribute, please feel free to add it to the wiki yourself. diff --git a/docs/content/blog/2007-08-15-get-easy-access-to-simplepie-from-your-web-browser.md b/docs/content/blog/2007-08-15-get-easy-access-to-simplepie-from-your-web-browser.md new file mode 100644 index 000000000..613160acd --- /dev/null +++ b/docs/content/blog/2007-08-15-get-easy-access-to-simplepie-from-your-web-browser.md @@ -0,0 +1,13 @@ ++++ +title = "Get easy access to SimplePie from your web browser" +date = 2007-08-15T00:46:00Z + +[extra] +author = "Ryan Parman" +cover_image = "/images/128/firefox.png" +cover_image_alt = "Firefox" ++++ + +Looking for faster, easier ways to read your feeds with SimplePie? We’ve put together some bookmarklets for you to make the task very simple. Additionally, we’ve enabled all of you Firefox 2 users the ability to set SimplePie as your default feed handler! + +[Learn more](/demo/easy_access/) and [watch the video](/tutorials/simplepie_firefox.mov). diff --git a/docs/content/blog/2007-08-19-tutorial-request-setting-up-a-cron-job-with-simplepie.md b/docs/content/blog/2007-08-19-tutorial-request-setting-up-a-cron-job-with-simplepie.md new file mode 100644 index 000000000..0e1991d21 --- /dev/null +++ b/docs/content/blog/2007-08-19-tutorial-request-setting-up-a-cron-job-with-simplepie.md @@ -0,0 +1,13 @@ ++++ +title = "Tutorial Request: Setting up a cron job with SimplePie" +date = 2007-08-19T13:34:00Z + +[extra] +author = "Ryan Parman" ++++ + +We’re looking for information from you all on how you’re implementing cron jobs to work with SimplePie. We know that there are many of you doing this very thing, and we were thinking it would be nice to have such a tutorial on-hand. + +So, we’ve created a placeholder page in the wiki for [Setting up a cron job with SimplePie](/wiki/tutorial/setting_up_a_cron_job_with_simplepie). If you have any suggestions or tips for doing so, please begin editing the page for this tutorial in the wiki. If you come to the tutorial page and somebody has already written something up, please take a moment to read over it and see if there’s any other valuable information or tips that you can provide. + +SimplePie users from around the world would be most grateful. 🙂 diff --git a/docs/content/blog/2007-08-30-simplepie-blackberry-and-simplepie-live-beta-coming-this-weekend.md b/docs/content/blog/2007-08-30-simplepie-blackberry-and-simplepie-live-beta-coming-this-weekend.md new file mode 100644 index 000000000..486193a59 --- /dev/null +++ b/docs/content/blog/2007-08-30-simplepie-blackberry-and-simplepie-live-beta-coming-this-weekend.md @@ -0,0 +1,17 @@ ++++ +title = "SimplePie Blackberry and SimplePie Live Beta coming this weekend" +date = 2007-08-30T19:17:00Z + +[extra] +author = "Ryan Parman" +cover_image = "/images/128/simplepie.png" +cover_image_alt = "SimplePie" ++++ + +Development on SimplePie 1.1 (“Blackberry”) is wrapping up and we’re planning to push it live sometime over the weekend. This release consists of several bug fixes, including things that were originally scheduled for our 1.0 release that just didn’t make the cutoff. Few, if any, new features will be in this release but it will definitely resolve some of the long-standing issues we’ve had. + +This weekend will also see the unveiling of a NEW addition to the SimplePie product line: **[SimplePie Live!](http://live.simplepie.org)** For those who haven’t heard me talk about it before, SimplePie Live makes it easy to add feeds to your websites and webapps using asynchronous JavaScript. SimplePie Live integrates well with modern JavaScript libraries such as [Prototype](http://prototypejs.org/), [MooTools](http://mootools.net/), and [jQuery](http://jquery.com/), yet still maintains an API that existing SimplePie users will find familiar. + +We’ll be launching the very first public beta this weekend so it may still take a little time to work out bugs and document SPLive-specific notes. This is a product that has been a long time coming, and we’re very excited to share it with you all. We’ve got a temporary placeholder page in-place over at <http://live.simplepie.org> that talks about some of the features (technical and non-technical) and many of the ways where we meet or beat Google’s AJAX Feed API service. + +We’ll see you soon! 🙂 diff --git a/docs/content/blog/2007-09-03-delayed.md b/docs/content/blog/2007-09-03-delayed.md new file mode 100644 index 000000000..614b369cb --- /dev/null +++ b/docs/content/blog/2007-09-03-delayed.md @@ -0,0 +1,11 @@ ++++ +title = "Delayed." +date = 2007-09-03T10:01:00Z + +[extra] +author = "Ryan Parman" ++++ + +We’re slipping the SimplePie Blackberry/Live schedules by one week. I was unable to wrap up development on LIVE because my computer was in repair at Apple for 2 weeks. I just got it back on Friday, and spent the weekend getting everything re-installed from scratch. Geoffrey also spent the weekend getting his computer set up from scratch, but that’s because he got a brand-new MacBook Pro recently. + +Either way, we need a little more time to wrap things up on both fronts, so we’ll plan to have two awesome releases this upcoming weekend. 🙂 diff --git a/docs/content/blog/2007-09-14-introducing-simplepie-live-taking-your-feeds-to-a-whole-new-level.md b/docs/content/blog/2007-09-14-introducing-simplepie-live-taking-your-feeds-to-a-whole-new-level.md new file mode 100644 index 000000000..da840a66e --- /dev/null +++ b/docs/content/blog/2007-09-14-introducing-simplepie-live-taking-your-feeds-to-a-whole-new-level.md @@ -0,0 +1,19 @@ ++++ +title = "Introducing SimplePie Live! Taking your feeds to a whole new level." +date = 2007-09-14T16:24:00Z + +[extra] +author = "Ryan Parman" +cover_image = "/images/128/simplepie_live.png" +cover_image_alt = "SimplePie" ++++ + +**Introducing [SimplePie Live!](http://live.simplepie.org)** Now, it’s even easier to get started adding feeds to your websites using the software that has been called [“an invaluable tool”](http://www.hotscripts.com/review/60863.html), [“the new black this season”](http://forums.devnetwork.net/viewtopic.php?p=378371#378371), and [“almost certainly the best PHP-based parser right now”](http://sporkmonger.com/articles/2006/02/27/directory-of-feed-parsers). + +Like SimplePie, SimplePie Live is a tool for developers designed to be as easy to use as possible. SimplePie Live plays well with modern JavaScript frameworks such as [Prototype](http://prototypejs.org), [MooTools](http://mootools.net), [jQuery](http://jquery.com), and has a syntax that will feel familiar to existing SimplePie users. + +Have a look at the [Getting Started Guide](/wiki/live/setup/), the [API Reference](/wiki/live/reference/), and [find out if SimplePie Live! is the right product for you](/more/). Please note that SimplePie Live! is still in “Beta”, and as such may not be 100% reliable at this point. There will definitely be improvements and enhancements to the service which will be rolled out automatically, causing no work on your part. If we need to roll out an enhancement that will cause compatibility issues, we’ll roll it out as part of a new version, and will notify you via the SimplePie blog about the updates. + +Lastly, we’re moving as fast as we can on writing up the documentation. If there’s something unclear or hasn’t been documented yet, feel free to drop into the support forums or IRC and let us know. Also, we’re always open to suggestions for improvement, so please let us know if you have any of those too. Remember that if you think that any part of this sucks, we can’t improve it unless we know about it, so please speak up. + +Enjoy! 🙂 diff --git a/docs/content/blog/2007-09-28-simplepie-the-book.md b/docs/content/blog/2007-09-28-simplepie-the-book.md new file mode 100644 index 000000000..29ae1c69d --- /dev/null +++ b/docs/content/blog/2007-09-28-simplepie-the-book.md @@ -0,0 +1,25 @@ ++++ +title = "SimplePie: The Book?" +date = 2007-09-28T10:09:00Z + +[extra] +author = "Ryan Parman" ++++ + +For the past few months I’ve been kicking around the idea of writing a book about SimplePie. This was recently fueled by the mentions of SimplePie in [Professional Search Engine Optimization with PHP](http://www.cristiandarie.ro/seo-php/) as well as Cameron Moll’s recent thoughts on [self-publishing](http://cameronmoll.com/archives/2007/09/on_selfpublishing/). I’m comfortable working in QuarkXPress and InDesign, and I’ve been writing in some sort of fairly substantial capacity for several years now. Perhaps this is the next step to take? + +So, I wanted to gauge the interest level of the SimplePie community — you. If we were to write a book, in English, and release it in either PDF or paperback form (likely both), is it something you’d buy? If so, what would you be willing to spend for it? I’ve long been frustrated at the $50 USD technical books because they’re priced above the “easy” price range where you can easily justify spending the money. Books like “Designing with Web Standards” and “Don’t Make Me Think!” went for $35 USD when they first came out, and although that’s better, it still feels a few dollars too high. Initially I’m thinking $25-$30 per paperback copy and $15-20ish for a PDF copy, but of course I’m throwing those numbers out having not attempted to self-publish a book yet. 🙂 “Getting Real” by 37signals went for $17 USD for a PDF (if I remember correctly), so I think this price is in the right range. + +My first thoughts for chapters would include: + +1. A history of RSS and Atom, including what it is, politics, etc. +2. The story of the SimplePie project, how the developers met and started working together +3. Fundamental PHP basics that you need to understand to use SimplePie +4. Getting SimplePie set up and installed in a few different environments +5. Using SimplePie, basics +6. More advanced usages of SimplePie +7. Writing your own plugins for third-party software +8. Writing your own SimplePie Add-ons, extending and overriding SimplePie classes +9. The new SimplePie Live! (which should definitely be 1.0 by then) + +Again, that’s a first pass. I’m interested in finding out what YOU would be interested in learning from such a book. What topics should we delve into? What chapters would be good to have? What kinds of things would you like to know, or have in a book? What do you think about book prices? Too high/low? This book is for YOU and (hopefully) many, many others, so we need your feedback to know what kind of book to write — or if we should even go down such a path. If we wanted to go with a publisher, who do you think would be good to go with? diff --git a/docs/content/blog/2007-09-29-new-simplepie-plugin-for-wordpress-coming-soon.md b/docs/content/blog/2007-09-29-new-simplepie-plugin-for-wordpress-coming-soon.md new file mode 100644 index 000000000..e13080048 --- /dev/null +++ b/docs/content/blog/2007-09-29-new-simplepie-plugin-for-wordpress-coming-soon.md @@ -0,0 +1,31 @@ ++++ +title = "New SimplePie Plugin for WordPress coming soon!" +date = 2007-09-29T23:03:00Z + +[extra] +author = "Ryan Parman" ++++ + +There are a TON of people currently using the SimplePie Plugin for WordPress. It is _by far_ the most popular plugin we’ve developed, but it’s also the one that has been most complained about. When we first created the plugin back in the Beta 2 days, I put something together that was simple, basic, and got the job done. If you wanted to do something more complex, you were free to use the normal SimplePie API in your WordPress blogs and templates. + +What we’ve learned, however, is that although many people like the hand-holding of this plugin, they want more flexibility as well. There are also a number of features that have been requested that we haven’t been able to integrate without a complete re-write of the plugin. I’ve spent my entire day working on just such a re-write. + +Coming soon will be the all-new SimplePie Plugin for WordPress 2.0! + +There are several things that this new version addresses: + +- A configuration pane under the Options tab in the WordPress software. +- “Multifeeds” support. +- MUCH better control over the plugin’s output. Supports a simple templating system that allows: + - Simple, easy-to-use tags for nearly every piece of data that SimplePie can output. + - Support for multiple templates. + - Global configuration of default values for several configuration options. + - Ability to override the defaults for any given feed — including giving a feed it’s own output template. +- No need to manually set up cache folders. +- Support for internationalized domain names. +- Support for short descriptions is configurable. +- And more! + +While we believe that the long-awaited new version of this plugin is going to be fantastic for WordPress users, we are also announcing today that we will no longer be updating the plugins for Mediawiki and Textpattern. Why? Mostly because we don’t use Mediawiki and Textpattern. There are lots of intricate details about both pieces of software that need to be known and understood in order to make them compelling plugins. We believe that the people who use those software packages are the ones who could do a far better job than we ever could creating plugins for them. + +We’re sorry if you’ve been a happy user of either of these plugins and see this as disappointing. There are a few options available: (a) one SimplePie user has manually updated the Mediawiki plugin to support SimplePie 1.0. Since we’ve promised no API breakage for the entire series of 1.x releases, this version of the plugin should be in good shape until SimplePie 2.0 rolls around. (b) There is more than one plugin available for both of these software packages. Take a look at some of the other plugins available, and see if one of them does a better job. It probably will as these plugins were intentionally meant to be very basic. (c) Take over development yourself. I’d be happy to coordinate the hand-off of the plugins to a developer who wants to take the reins. We encourage it, actually! If you’re interested in such a thing, email me, post something here, or post something to the support forums, and we’ll get them handed off to new maintainers. diff --git a/docs/content/blog/2007-10-07-simplepie-plugin-for-wordpress-20.md b/docs/content/blog/2007-10-07-simplepie-plugin-for-wordpress-20.md new file mode 100644 index 000000000..974b76789 --- /dev/null +++ b/docs/content/blog/2007-10-07-simplepie-plugin-for-wordpress-20.md @@ -0,0 +1,13 @@ ++++ +title = "SimplePie Plugin for WordPress 2.0!" +date = 2007-10-07T23:25:00Z + +[extra] +author = "Ryan Parman" ++++ + +It is with great excitement that I release a brand new version of the [SimplePie Plugin for WordPress](/wiki/plugins/wordpress/simplepie_plugin_for_wordpress/)! As previously mentioned, this is a complete re-write with some great new features! This is definitely a must-have upgrade! + +It should also be noted that we’re now bundling the latest release of SimplePie with the plugin itself, so this should simply be a matter of downloading the plugin, uploading it to your WordPress plugins folder, and activating it. + +Check it out! 🙂 diff --git a/docs/content/blog/2007-11-09-status-update.md b/docs/content/blog/2007-11-09-status-update.md new file mode 100644 index 000000000..92e1687e0 --- /dev/null +++ b/docs/content/blog/2007-11-09-status-update.md @@ -0,0 +1,32 @@ ++++ +title = "Status Update" +date = 2007-11-09T08:44:00Z + +[extra] +author = "Ryan Parman" ++++ + +I just wanted to give everyone a status update about SimplePie: + +**SimplePie 1.1:** We were wanting to have SimplePie 1.1 done a few weeks ago, but it was suggested that we hold the release back a bit to catch more bugs first. At the same time Geoffrey and I have both been swamped with other things, so commits to the trunk have been more sparse. We are planning to release SimplePie 1.1 as soon as we can, however, and here are a few things to look forward to: + +- You can now get a feed-level author. This has been requested several times over the years, and it’s finally made it in. +- Atom contributors are now supported. +- Atom’s `<source>` tag is now supported, and works just like the rest of SimplePie. +- We have a working patch for PHP’s memory leak. We have the details about the leak on our FAQ page. +- mbstring and/or iconv support is optional again. +- An array of other bug fixes and such. + +**SimplePie Plugin for WordPress:** About a month ago, we decided to really begin driving forward with our most popular plugin, the SimplePie Plugin for WordPress. We’ve gotten many excellent comments from users of the new version 2, and we’re getting ready to make it even better with our upcoming 2.1 release. WordPress, currently the world’s most popular blogging software, is going to be a major platform for SimplePie in the future, and things are already looking very bright. + +**SimpleReader Mobile:** When we first launched SimpleReader Mobile over a year ago, we nearly canceled the project because of the seemingly tepid response. Now, SimpleReader Mobile is gaining usage with a number of different devices, and we believe this boost was launched by the release of Apple’s iPhone. We now have [our SimpleReader Mobile](http://www.apple.com/webapps/news/simplereadermobile.html) page on Apple’s webapp directory, and we hope to see continued growth with this product. + +**SimplePie Live!** SimplePie Live! is currently a beta-quality product, and is is essentially SimplePie geared for JavaScript and AJAX development. Again, the response thus far has been relatively tepid, and we haven’t done much to promote it just yet, but that marketing push is coming. We’re working on making it better, more useful, and eventually more consumer-friendly. With how popular widgets are these days, as well as the mass of AJAX-oriented websites, we think that this will become a very valuable tool as the word gets out more and more. + +**Plans for the Future:** Since the first release of SimplePie was launched in July 2004, we’ve grown rather significantly. Not only are we now considered one of the world’s best feed APIs, but we’re growing as a platform as well. Nobody can deny the Facebook platform, and recently Google announced the OpenSocial platform. Netvibes has a Universal Widget API which allows you to write a widget once, and have it work across several platforms on the desktop AND the web. In the future, we expect SimplePie to be an important component in this new world. We’re also wanting to re-invest time and energy into platforms like Textpattern and Mediawiki that we’ve had to leave behind for the time being, as well as new platforms that we haven’t yet explored. In order to do that successfully, we need more people. In order to get more people, we need to have money. + +Because of that, we’re planning to build a corporation around SimplePie. We’re going to create a non-profit Foundation to manage that portion. The Corporation will manage anything we do that makes money (similar to how the Mozilla Foundation/Corporation are set up). In the future, we plan to launch products that make money. It’s perfectly reasonable to make money from the hard work you put into something, and eventually I want SimplePie to be my full-time job. Although that time isn’t now, it’s getting closer as the days go by. + +Now before anyone freaks out, let me explain. The core SimplePie API for PHP — the one we all know and love — will always remain open-source. Geoffrey and I are in complete agreement on that, and we think it’s going to be very important for us moving forward to ensure that people like you can continue building awesome stuff with SimplePie without having to worry about an associated cost as a barrier to entry. + +So there you have it! SimplePie is moving along nicely, and we have some great plans for the future. Hopefully, Geoffrey will be able to stay alive long enough to make it through the oh-so-painful time of his life known as high school (well, here in the US it’s called high school anyway), and once he graduates he’ll be the CTO of a fledgling company. 🙂 diff --git a/docs/content/blog/2007-12-28-byepie.md b/docs/content/blog/2007-12-28-byepie.md new file mode 100644 index 000000000..4ba00559a --- /dev/null +++ b/docs/content/blog/2007-12-28-byepie.md @@ -0,0 +1,25 @@ ++++ +title = "ByePie" +date = 2007-12-28T15:23:00Z + +[extra] +author = "Geoffrey Sneddon" ++++ + +<div lang="en-gb-x-sneddy"> + +Having put a lot of thought into the matter over the past several weeks, I’ve made my decision to leave development of SimplePie. + +“Why!? Oh Why!?”, you scream (well, maybe not, but I’m not a telepathic seer). For a start, I haven’t actually really used SimplePie myself since early 2006 (now almost two years ago), and I now have less and less to do with PHP at all (and I totally hate it ? a recent bug in SP was caused by the fact that “0” == false ? and have therefore moved to (mainly) Python). + +Furthermore, over the past year, since March/April, my time has become increasingly limited, and SP has _de-facto_ been one of the things that I have cut a long time ago (the reason for the lack of commits from me much) ? the majority of my time is now spent on schoolwork, with what is left over being spent working on various specs (predominantly HTML 5 and Tolerant HTTP Parsing). + +However, what does the future of SP hold? Well, various decisions need to be made about the future direction ? do you try and improve 1.x further (it was already stretched to breaking point at 1.0, mainly held back by PHP itself ? a sad state to be in), or do you start on the vision of SP2? To take the former option, I doubt you could get much further than what is currently planned for 1.2 with the current 1.x base ? any further development requires a large amount of reworking the internals of SP (to the extreme of being questionable about whether there is any point of not starting from scratch). The latter option is probably the best (though ideally get 1.1 out as soon as it can be). + +One of the aims of SP2 is true modularity ? it should be possible to use (and load) nothing more the parser itself (i.e., give it raw XML data, and it gives you an API to access the title, description, etc. as they are in the feed without sanitising them at all) ? which has several advantages for deciding any successor to myself: get people to write various modules for it against pre-existing specs (most of which are only drafts and so will need further development over time). What exactly those modules will be I am mainly undecided (though it won’t, I assure you, be the more complex parts of the API itself ? the design of them is mainly unwritten and comes from knowledge of successes/failures from SP1’s API). I will myself continue maintaining a couple of the modules (namely, the Unicode and IRI ones, both of which I use outwith of SP ? though more may be added to that list). + +I’m more than willing to be around in a consulting role for a while ? my contact details are in the footer of [my site](http://gsnedders.com/), and I’ll stay around in the [IRC channel](irc://irc.freenode.net/simplepie) for a while ? as well as helping people around the SP1 codebase (though I’d like to see that totally feature frozen come the end of January, with a final non-bugfix release from it in February) ? which is horrifically uncommented in parts, and uses stupidly complex algorithms in others that without prior knowledge of them make no sense (I’ve had issues with some myself when coming back to them having not touched them in a while 🙂 ). + +Alas, there’s too much to write about the vision of SP2, so that will have to be done in another post; until then, g’nite. + +</div> diff --git a/docs/content/blog/2008-01-02-simplepie-11-is-now-available.md b/docs/content/blog/2008-01-02-simplepie-11-is-now-available.md new file mode 100644 index 000000000..4af210062 --- /dev/null +++ b/docs/content/blog/2008-01-02-simplepie-11-is-now-available.md @@ -0,0 +1,17 @@ ++++ +title = "SimplePie 1.1 is now available!" +date = 2008-01-02T16:02:00Z + +[extra] +author = "Ryan Parman" +cover_image = "/images/128/simplepie.png" +cover_image_alt = "SimplePie" ++++ + +[SimplePie 1.1 is now available.](/downloads/) This release adds some features that we’d wanted to put into 1.0, but didn’t have the time to. It also squashes lots of miscellaneous bugs. This release is API-compatible with previous 1.0.x releases, so it should be as simple as a drop-in replacement. Feel free to check out the [release notes](/wiki/misc/release_notes/simplepie_1.1) for more details. + +It should also be noted that PHP 4.x has been officially end-of-life’d, so as per [previous discussion on the topic](/blog/2007/07/13/simplepie-is-going-php5-only/), we’ll be phasing out PHP 4 support over the next release or two, and we’ll be nudging all of you still on PHP 4 to either upgrade to PHP 5 or change hosts (shameless plug: sign up for [Dreamhost](http://dreamhost.com/r.cgi?skyzyx) with the `SIMPLEPIE` promo code, and get $20 USD off the 1-year plan). + +We’re also looking at a much shorter schedule for the 1.2 release. In the meantime, if you’re interested in helping develop SimplePie as Geoffrey begins to transition off the project, please get in touch ASAP so we can begin getting you up-to-speed and working out the details. + +**Update:** We’re keeping track of [known issues](/wiki/misc/release_notes/simplepie_1.1#known_issues), if you want to see the list. diff --git a/docs/content/blog/2008-01-15-sp2-the-vision.md b/docs/content/blog/2008-01-15-sp2-the-vision.md new file mode 100644 index 000000000..b41fe06fe --- /dev/null +++ b/docs/content/blog/2008-01-15-sp2-the-vision.md @@ -0,0 +1,26 @@ ++++ +title = "SP2: The Vision" +date = 2008-01-15T08:29:00Z + +[extra] +author = "Geoffrey Sneddon" ++++ + +I’m sure that many of you will have by now heard me talking about SP2, whether in the context of how PHP4 is holding us back, or why SimplePie lacks modularity. But what is the idea of SP2? What will it actually have? + +- **Modularity**: I made brief mention of this in my previous post, but to go into more detail here: have each and every process in SimplePie properly seperated out (the main reason why this is not the case in SimplePie 1 is that it was never foreseen that we’d ever be trying to parse documents multiple times, or with different parsers. SimplePie 1’s design would make it hard to use different classes for different data formats (be it RSS or Atom feeds; or Atom feed or Atom entry ? the reason why we don’t support Atom entry documents). SimplePie 1 is hacked together in all sorts of places to try and get around limitations caused by this lack of modularity ? the entire options system is a good example (which, ideally, would be on a seperate object that could just be passed around by reference). +- **Expandability**: Adding anything to SimplePie 1 is very complex, in part due to the insane number of circular dependancies within the code-base. It is also difficult to add implementation specific functionality into SimplePie itself, as the only solution is to override classes/methods, which are often very large on their own. A likely solution to this would be some sort of plugin system. +- **Resource Efficiency**: While any feature will have a computational cost, this cost should be kept to the minimum possible. This should mean caching as much data as possible, as processed as possible. + +##### Implementation + +A question just a vital as what to actually have is how to implement it ? I would like to propose to have a core that did nothing but call plugins ? a core that was nothing more than a framework to call everything else. The details of the implementation will undoubtedly need to be very well thought out to overcome the short-comings of SimplePie 1 (for example, preferring content from an RSS element in an RSS feed ? something more complex than you might expect to implement if you want to avoid duplicating vast amounts of code). The modularity will also allow the parser to be truly used on its own, something that could never be done with SimplePie 1. + +The details of the implementation inevitably run on to the question of _who_ is going to implement it ? because of the modularity there is far less need for a single person to deal with a monolithic beast (like SimplePie 1), and different people can work on different parts. I, myself, will likely keep up the [XML5](http://annevankesteren.nl/2007/10/xml5) and [HTML5](http://www.whatwg.org/specs/web-apps/current-work/) parsers, as well as Unicode (including decoding non-Unicode formats) and IRI support (which will probably just map IRIs to URIs on PHP5, and store IRIs natively on PHP6). This means that undertaking any work on SP2 doesn’t mean making such a big commitment as that of undertaking any work on SimplePie 1 (though, inevitably, help with the either is warmly welcomed). + +##### My Involvement + +A lot of people have questioned what exactly my role will be within SimplePie, and part of the issue was some of the finer details weren’t finalised as of my previous post. So: + +- **SimplePie 1** maintenance was taken over by Ryan following the release of SimplePie 1.1, though there will likely be a second developer leading development of SimplePie 1. I, myself, will continue to make occasional small bug-fixes, though little more (as the case has been for several months now). +- **SP2** will initially be developed by me, though I expect to leave the role of lead developer after the core is done (though it will not have reached feature-parity with SimplePie 1). SP2 will be developed from a [distributed version control system](http://betterexplained.com/articles/intro-to-distributed-version-control-illustrated/) ? most likely [Mercurial](http://www.selenic.com/mercurial/), though [git](http://git.or.cz/) is also an option if people would prefer to use that. The current intention is that I will maintain the authoritative tree while all my minions do the coding for me. diff --git a/docs/content/blog/2008-01-17-simplereader-mobile-and-iphoneipod-touch-update.md b/docs/content/blog/2008-01-17-simplereader-mobile-and-iphoneipod-touch-update.md new file mode 100644 index 000000000..12b6099e8 --- /dev/null +++ b/docs/content/blog/2008-01-17-simplereader-mobile-and-iphoneipod-touch-update.md @@ -0,0 +1,14 @@ ++++ +title = "SimpleReader Mobile and iPhone/iPod touch update" +date = 2008-01-17T00:16:00Z + +[extra] +author = "Ryan Parman" ++++ + +We’ve made some minor updates to [SimpleReader Mobile](http://m.simplepie.org) for iPhone/iPod touch users. + +1. iPod touch now gets the fancy iPhone view. +2. Now that the latest firmware update (1.1.3) allows iPhone and iPod touch users to add websites to their home screen, we’ve added the blue SimpleReader logo as the default icon so it looks nice. This particular feature hasn’t yet been tested as I don’t have my wife’s iPhone on-hand to test with, but I’ve followed Apple’s documentation, so I’m assuming it’s right. If not, I’ll have it fixed as soon as I can get my hands on her iPhone. + +That is all. 🙂 diff --git a/docs/content/blog/2008-01-31-moving-the-simplepie-support-forums.md b/docs/content/blog/2008-01-31-moving-the-simplepie-support-forums.md new file mode 100644 index 000000000..26d3635c9 --- /dev/null +++ b/docs/content/blog/2008-01-31-moving-the-simplepie-support-forums.md @@ -0,0 +1,22 @@ ++++ +title = "Moving the SimplePie support forums" +date = 2008-01-31T11:24:00Z + +[extra] +author = "Ryan Parman" ++++ + +In the last post, I talked a little about transition. SimplePie is growing, and is the most popular it has ever been! This means two things: + +1. We’ve got to keep building the best RSS/Atom software available for PHP (and AJAX, and Mobile, and WordPress), and… +2. We’ve got a LOT of users to support, with a LOT of questions to answer. + +Personally, I’m currently in the process of wrapping up some work with the Yahoo! Messenger web team, and then ramping up fast on my company’s WarpShare project to try to have a technology preview ready in time for [South by Southwest: Interactive](http://2008.sxsw.com/). I’ve been swamped for the last two weeks, then I open up my feed reader this morning, and there are over 70 new SimplePie support requests. Quite frankly, I can’t keep up. + +I’ve already reached a point where I’m barely able to do any development on SimplePie because of all of the support and maintenance I’ve been doing, and I really want to get back to developing more. I’ve spent hours and hours and hours writing tutorials, FAQs, documentation, and example code. We moved all of our docs over to a wiki so that the community could more effectively contribute. I know that some of you help answer questions for others, and that’s appreciated more than you know. But as a whole, I don’t know if anyone but the development team is subscribed to the RSS feeds for the forum, and can help answer questions more effectively. And I can’t keep taking on this kind of load primarily by myself. + +So… in an effort to more effectively push support into the hands of those who are capable of helping, I’m going to begin the process of shutting down new registrations and posts on the existing support forum (thereby turning it into an archive), and opening up a new [Yahoo! Groups mailing list/forum](http://tech.groups.yahoo.com/group/simplepie-support/). Yahoo! Groups is pretty good, they’ve got a web-based forum-like view, but most importantly they’ve got mailing list support. + +In my experience, those who are subscribed to a mailing list are able to get more information, and are more capable of contributing to the discussions. And that’s what we want: more people contributing to the discussions. + +Again my schedule is a bit jumbled right now, so this will probably happen sometime over the next few weeks, but it’s coming. By spreading the SimplePie support load more effectively, we’ll have one more developer who can devote more time to improving SimplePie… and really, I think that’s what we all want. 🙂 diff --git a/docs/content/blog/2008-01-31-welcome-steve-minutillo.md b/docs/content/blog/2008-01-31-welcome-steve-minutillo.md new file mode 100644 index 000000000..200272c6f --- /dev/null +++ b/docs/content/blog/2008-01-31-welcome-steve-minutillo.md @@ -0,0 +1,17 @@ ++++ +title = "Welcome Steve Minutillo!" +date = 2008-01-31T11:04:00Z + +[extra] +author = "Ryan Parman" ++++ + +As I’m sure you’re aware by now, SimplePie is in a bit of a transition. The project is growing, and we’re up to 4 public products right now (SimplePie, SimplePie Live!, SimplePie for WordPress, and SimpleReader Mobile), we’ve got a good product in SimplePie 1.1, and we’ve got our sights set on SimplePie 2. + +As we’ve previously discussed, we’re looking for some new development help. Particularly, people who can help us grow toward our vision — not people who want to maintain old PHP 4.x releases after we’ve moved to pure PHP5. The first person to come to mind when we started looking was Steve Minutillo. + +Steve is the developer of a web-based feed aggregator called [Feed on Feeds](http://feedonfeeds.com/) that is currently based on SimplePie, so he has experience in using SimplePie for complex projects. Steve has been a very valuable patch contributor up to this point, and he accepted our invitation to join the SimplePie development team. + +We’re still looking for a few more developers to help us grow this project out more. Particularly if you’ve got experience with PHP, RSS/Atom, mobile apps, JSON web service APIs, and the like, we’d love to have you on our team. The best way for us to notice you is to provide detailed bug reports with patches, so if you’re itching to get more involved in your spare time as a contributor/developer, this is the way to do it. + +Please take a moment to welcome Steve to the SimplePie team! 🙂 diff --git a/docs/content/blog/2008-02-26-moving-the-bug-tracking.md b/docs/content/blog/2008-02-26-moving-the-bug-tracking.md new file mode 100644 index 000000000..66e826ad3 --- /dev/null +++ b/docs/content/blog/2008-02-26-moving-the-bug-tracking.md @@ -0,0 +1,17 @@ ++++ +title = "Moving the bug tracking" +date = 2008-02-26T13:41:00Z + +[extra] +author = "Geoffrey Sneddon" ++++ + +Since SimplePie 1.0 Preview Release 1 was released back in January 2006, we’ve used the fora (running PunBB) as a bug tracker ? mainly because of my hatred of the usability of almost all bug trackers. A few weeks ago, I came across [Redmine](http://redmine.org/): _the first bug tracker I’ve ever been happy using_. I admit, I’m not overly pleased with 0.6.3 (the current release), as the link to submit a new issue is amazingly hidden, and it is impossible to upload anything from Safari 3 (and from other browsers in some circumstances). + +However, _the current development copy is far better_, and removes all the issues I had with it. Submitting a new issue is now very obvious (a “New Issue” tab within the project), and the other was [fixed](http://www.redmine.org/issues/show/593) in twenty minutes (now that is what I wish every project was like ? but we aren’t there ourselves). + +The [new bug tracker](http://bugs.simplepie.org/) has all issues that are scheduled to be (or already are) done in 1.1.1 and later. I think I’ve got all the bugs that currently affect SimplePie in it: if I haven’t, could you please either reply to a current thread on the fora about the bug, or add it to the new bug tracker? + +I hope this is far less [controversial](/blog/2008/01/31/moving-the-simplepie-support-forums/#comments) than the move of the support fora, but to defend that: I have posted **far** more to it than I would have if the support was still dealt with through fora. _I believe moving the bug tracking will be universally helpful to everyone either using SimplePie, or developing it._ + +Oh, and yes, this does mean I’m still around: I didn’t just disappear off the face of the earth at the end of December. I’m still around. I will be development lead of SimplePie 2 until it ships, and be involved with it for far longer than that (though doing very little development). My departure from SimplePie is far from immediate (though I have for the most part left SimplePie 1 development, following the release of 1.1 last month), and I knew without question that SimplePie would survive: there are enough people who want it to continue to keep it from dying, and there are plenty of people who already know the SimplePie 1 codebase well (such as Steve, who is now himself a developer) that I knew would help, if asked (myself and Ryan had discussed adding other developers around a year ago, before there was even any thought about me leaving). _Myself stepping down really doesn’t mean that much in terms of the future of SimplePie._ The decision wasn’t sudden, either: I first thought about leaving SimplePie back in November, and first spoke to anyone about doing so in mid-December ? _I want SimplePie to succeed more than most, I expect, despite not even having used it myself since 2006._ diff --git a/docs/content/blog/2008-02-27-support-community-update.md b/docs/content/blog/2008-02-27-support-community-update.md new file mode 100644 index 000000000..572173bef --- /dev/null +++ b/docs/content/blog/2008-02-27-support-community-update.md @@ -0,0 +1,17 @@ ++++ +title = "Support Community Update" +date = 2008-02-27T16:44:00Z + +[extra] +author = "Ryan Parman" ++++ + +This is just a note to let everyone know that the [old support site](/support/) has been officially moved to read-only status. No new registrations will be accepted on the old site, and no one is allowed to post. The site is still searchable, however, so that might be a good place to find answers before posting to the [new mailing list](http://tech.groups.yahoo.com/group/simplepie-support/). Bug reports should be directed to [bugs.simplepie.org](http://bugs.simplepie.org), as we finally have some REAL bug tracking software installed (as previously noted). + +I know that the move to [Yahoo! Groups](http://tech.groups.yahoo.com/group/simplepie-support/) has been a controversial one, but all-in-all, we’ve got nearly 70 members subscribed in a fairly short period of time. Things seem to be going okay for now, and hopefully things will only get better in the future — although I will miss some of you who are boycotting the new group. 🙁 + +We highly encourage you, if you’re not already, to make use of the **mailing list** feature of Y! Groups. Putting yourself on the mailing list allows you to see all of the questions AND answers that come through. It’s a great way to learn about SimplePie, even if you don’t post anything, and if you see a question that you can answer, then please do. Having a mailing list where people _actually use_ the mailing list, makes the give and take much better. + +Geoffrey, Steve, and I absolutely want everyone who has a question to be able to get an answer, even if we don’t have the time to give those answers ourselves (we’ve also got other jobs, other projects, time with family, and other important things that go on in our lives). This needs to become a support community that is _by users, for users_. I don’t know if anyone believes in karma, but if you want an answer, make sure you give an answer. Even if you’re new, you can always help another newcomer by pointing them to a tutorial or documentation or something. All of our documentation is in a wiki so that anyone can edit, clarify, improve, and add to the documentation. We encourage it! + +Thanks for reading, and we hope that this support community can be even better than the old fora/forums were! 🙂 diff --git a/docs/content/blog/2008-03-14-how-can-simplepies-api-improve.md b/docs/content/blog/2008-03-14-how-can-simplepies-api-improve.md new file mode 100644 index 000000000..9ec0dec3f --- /dev/null +++ b/docs/content/blog/2008-03-14-how-can-simplepies-api-improve.md @@ -0,0 +1,21 @@ ++++ +title = "How can SimplePie’s API improve?" +date = 2008-03-14T17:21:00Z + +[extra] +author = "Ryan Parman" +cover_image = "/images/128/xcode.png" +cover_image_alt = "[Development]" ++++ + +SimplePie is a tool that I use nearly every single day, in nearly every single project I work on. I use it partially because I work on it, and partially because I really believe that it’s the best tool for the job (when that job is RSS/Atom parsing). At the same time I know that there are things that I do that are very different from what other people are doing with SimplePie, such as processing thousands of feeds at a time, building web-based aggregators, building start pages (a la PopURLs, Original Signal, and others), and doing all sorts of other things that I may or may not even know about. + +I know that Geoffrey has talked a bit about SimplePie 2.0’s planned modularity (keeping the fetching, parsing, caching, and API components separate but being able to load them when necessary, or even be able to swap in your own components), and we’d like to see SimplePie 2.0 be better commented and slimmer code-wise, opting to move some of the more superfluous functionality into helpers and other outside classes. + +So my big question is: what can we do to make your job easier as it pertains to SimplePie? I know that there are some cool things that we’ve talked about for SimplePie 2.0, but there also things coming in SimplePie 1.2 that are cool. I’ve been thinking about the kinds of things that would make things easier for me and how we could bundle them as on-demand “helpers” instead of necessarily building them into the core (like how our Internationalized Domain Name support is separate). + +The first (very simple) thing that comes to mind is a function that that shortens text (e.g. titles and descriptions). This is something that has been asked for hundreds of times and we’ve got some sample code in the wiki for it, but what if we could bundle helpers like this in an on-the-side fashion? What kinds of things would you like to see? What kinds of tasks do you find yourself doing over and over that the community might be able to benefit from? + +Perhaps people parsing thousands of feeds might like to have (or contribute) their parsing scripts and/or cron jobs? Perhaps people building feed aggregators would like to see improved HTTP status code messages to know whether they should update a feed URL in a database? Perhaps it’d be nice to have some software-specific helpers for Drupal or CodeIgniter? + +Fire away! 🙂 diff --git a/docs/content/blog/2008-03-15-simplepie-111-is-now-available.md b/docs/content/blog/2008-03-15-simplepie-111-is-now-available.md new file mode 100644 index 000000000..25086c976 --- /dev/null +++ b/docs/content/blog/2008-03-15-simplepie-111-is-now-available.md @@ -0,0 +1,15 @@ ++++ +title = "SimplePie 1.1.1 is now available!" +date = 2008-03-15T15:11:00Z + +[extra] +author = "Ryan Parman" +cover_image = "/images/128/simplepie.png" +cover_image_alt = "SimplePie" ++++ + +[SimplePie 1.1.1](/downloads/) is now available (also in a [WordPress](http://wordpress.org/extend/plugins/simplepie-core/) flavor). This is a bugfix-only release that resolves some of the things that weren’t caught until we released 1.1. + +Fixes include the resolution of [blank enclosures](http://bugs.simplepie.org/issues/show/2), [“Feed not found” errors when the cache expired](http://bugs.simplepie.org/issues/show/5), [problems with UTF-16LE data in the set_raw_data() config option](http://bugs.simplepie.org/issues/show/20), and an [updated add_to_digg() URL](http://bugs.simplepie.org/issues/show/30). + +Grab [the latest release](/downloads/) to upgrade! diff --git a/docs/content/blog/2008-05-14-were-growing.md b/docs/content/blog/2008-05-14-were-growing.md new file mode 100644 index 000000000..a951663d0 --- /dev/null +++ b/docs/content/blog/2008-05-14-were-growing.md @@ -0,0 +1,13 @@ ++++ +title = "We’re Growing!" +date = 2008-05-14T06:47:00Z + +[extra] +author = "Ryan Parman" ++++ + +Our little team is growing! As of this week, we’ve added two more “official” members to the SimplePie development team: Ryan McCue and Michael Shipley! + +If you’ve spent any amount of time in SimplePie support mailing list, you’ll immediately recognize these names. They’ve both been very helpful and influential in the mailing list, they’ve shown a solid understanding of how SimplePie works, and they’re both using SimplePie in projects of theirs. + +We appreciate the time they’ve put into SimplePie up to this point, and we believe they’ll be even more valuable going forward as they begin to improve SimplePie itself. Let’s all take a moment to leave a comment and welcome them! 🙂 diff --git a/docs/content/blog/2008-06-11-peter-can-now-pick-a-peck-of-processes-processing.md b/docs/content/blog/2008-06-11-peter-can-now-pick-a-peck-of-processes-processing.md new file mode 100644 index 000000000..3617f62a5 --- /dev/null +++ b/docs/content/blog/2008-06-11-peter-can-now-pick-a-peck-of-processes-processing.md @@ -0,0 +1,9 @@ ++++ +title = "Peter Can Now Pick a Peck of Processes Processing" +date = 2008-06-11T07:43:00Z + +[extra] +author = "Michael Shipley" ++++ + +Just wanted to let everyone know there was an error in the documentation for the [SimplePie Plugin for WordPress](/wiki/plugins/wordpress/simplepie_plugin_for_wordpress/customization). The error was the per feed “process” override keyword was mislabeled “process**es**” when it should of been “process**ing**“. How did I figure this out? I’ll tell you how I figured this out: After hours of grueling work going over the source code with a fine toothed comb and finding Nada, I did the only thing I could, I guessed. diff --git a/docs/content/blog/2008-07-18-the-easy-way-to-display-single-items-using-simplepie.md b/docs/content/blog/2008-07-18-the-easy-way-to-display-single-items-using-simplepie.md new file mode 100644 index 000000000..f42a8b819 --- /dev/null +++ b/docs/content/blog/2008-07-18-the-easy-way-to-display-single-items-using-simplepie.md @@ -0,0 +1,11 @@ ++++ +title = "The Easy Way to Display Single Items Using SimplePie" +date = 2008-07-18T14:03:00Z + +[extra] +author = "Michael Shipley" ++++ + +Are you looking for an easy way to display single feed items when you click on them? Check out this new tutorial showing how to do this fast and easy, using SimplePie: + +[http://simplepie.org/wiki/tutorial/how_to_display_a_single_feed_item](/wiki/tutorial/how_to_display_a_single_feed_item) diff --git a/docs/content/blog/2008-08-16-twitter-bug.md b/docs/content/blog/2008-08-16-twitter-bug.md new file mode 100644 index 000000000..c537a49a1 --- /dev/null +++ b/docs/content/blog/2008-08-16-twitter-bug.md @@ -0,0 +1,17 @@ ++++ +title = "Twitter Bug" +date = 2008-08-16T13:00:00Z + +[extra] +author = "Ryan Parman" ++++ + +Just a heads-up for anyone noticing problems parsing Twitter feeds: + +SimplePie supports something called [HTTP Conditional Get](http://fishbowl.pastiche.org/2002/10/21/http_conditional_get_for_rss_hackers/), which is the process of asking a feed if it has changed before we re-download a fresh copy of the feed. Over the past couple of weeks, I’ve been noticing a problem with my Twitter status on my personal website, and finally had some time to run a test today to see if my instinct was correct. It was. + +When SimplePie asks Twitter for a feed the first time, everything works as expected. However, at the moment, when SimplePie asks Twitter if a feed \*has changed\*, Twitter says “yes” (whether it has or not), and then sends us a fresh copy of the feed that has \*no items in it.\* + +_\[Technical: This only seems to be a problem if we send the Last-Modified header as the value for If-Modified-Since in the request. If-None-Match and ETag seem to give the correct response\]._ + +I’ve notified Twitter of the issue, so hopefully it will be fixed soon. In the meantime, if Twitter support is critical between now and whenever they fix this bug, you can temporarily workaround this issue. See http://simplepie.org/wiki/faq/problematic_feeds for more information. diff --git a/docs/content/blog/2008-09-29-weigh-in-on-simplepie-2.md b/docs/content/blog/2008-09-29-weigh-in-on-simplepie-2.md new file mode 100644 index 000000000..fd98909fa --- /dev/null +++ b/docs/content/blog/2008-09-29-weigh-in-on-simplepie-2.md @@ -0,0 +1,13 @@ ++++ +title = "Weigh in on SimplePie 2" +date = 2008-09-29T17:04:00Z + +[extra] +author = "Ryan Parman" ++++ + +SimplePie 2 is both a fork and a ground-up re-write of SimplePie. The intention is to enhance the performance by trimming the fat, to build something more extensible, to make it easier to contribute, and to optimize for the kinds of tasks that we see people wanting to do frequently. + +That being said, I took some time to write down some thoughts about what should go into SimplePie 2, and I would really like to get your thoughts as well. Are there things that SP2 should do that SP1 doesn’t? Would you like to use SimplePie in ways that are currently more difficult than they should be? Are you somebody who has a different design philosophy and you think we should pay better attention to certain things? This is your chance to weigh in with your thoughts, opinions, comments, and other feedback. + +Please check out [Goals for SimplePie 2](/wiki/sp2/goals). Feel free to edit, change, and improve what’s there. Feel free to argue with what I’ve written. Let’s make this plan better together! 🙂 diff --git a/docs/content/blog/2008-11-16-simplepie-112-is-now-available.md b/docs/content/blog/2008-11-16-simplepie-112-is-now-available.md new file mode 100644 index 000000000..f14363f96 --- /dev/null +++ b/docs/content/blog/2008-11-16-simplepie-112-is-now-available.md @@ -0,0 +1,13 @@ ++++ +title = "SimplePie 1.1.2 is now available!" +date = 2008-11-16T09:42:00Z + +[extra] +author = "Geoffrey Sneddon" +cover_image = "/images/128/simplepie.png" +cover_image_alt = "SimplePie" ++++ + +My departure was never going to be immediate, but I didn’t expect to be doing this (as Ryan always does this); however, the time has come (for me!) to announce the immediate availability of [SimplePie 1.1.2](/downloads/) (“core” plug-ins will be updated soon). This is a bugfix-only release that resolves some of the things that weren’t caught until we after released 1.1.1 (including, interestingly, one very major bug that had existed for years ? it never ceases to amaze me how rarely the web is sensible enough to do what is obvious and should be done to hit such bugs). + +Download [the latest release](/downloads/) to upgrade! diff --git a/docs/content/blog/2008-12-20-simplepie-113-is-now-available.md b/docs/content/blog/2008-12-20-simplepie-113-is-now-available.md new file mode 100644 index 000000000..0d8efba18 --- /dev/null +++ b/docs/content/blog/2008-12-20-simplepie-113-is-now-available.md @@ -0,0 +1,13 @@ ++++ +title = "SimplePie 1.1.3 is now available!" +date = 2008-12-20T09:13:00Z + +[extra] +author = "Geoffrey Sneddon" +cover_image = "/images/128/simplepie.png" +cover_image_alt = "SimplePie" ++++ + +[SimplePie 1.1.3](/downloads/) is now available (like 1.1.2, “core” plugin will be updated soon). This is a bugfix-only release that resolves the one major issue that 1.1.2 created (gzip decoding errors while using fsockopen()), and fully resolves the other major issue that 1.1.2 didn’t fully address (a workaround of a libxml2 bug). + +Grab [the latest release](/downloads/) to upgrade! diff --git a/docs/content/blog/2009-02-20-deprecating-simplepie-live.md b/docs/content/blog/2009-02-20-deprecating-simplepie-live.md new file mode 100644 index 000000000..991c68e93 --- /dev/null +++ b/docs/content/blog/2009-02-20-deprecating-simplepie-live.md @@ -0,0 +1,11 @@ ++++ +title = "Deprecating SimplePie Live!" +date = 2009-02-20T18:14:00Z + +[extra] +author = "Ryan Parman" ++++ + +Although [SimplePie Live!](http://live.simplepie.org) was a cool concept, and something that I would have liked to see be successful, I simply haven’t had the time to put into it for nearly a year and a half now. One of these days I’d like to relaunch it when I have more time and resources to put into it, because I believe it could be a useful tool if executed properly. + +That being said, we’ll be shutting down the SimplePie Live! service in the next couple of weeks. This will be the only notice we’ll provide (which probably isn’t a big deal because there are nearly zero users). Instead, I would recommend either using SimplePie (for PHP) or a service like [Google AJAX Feed API](http://code.google.com/apis/ajaxfeeds/). diff --git a/docs/content/blog/2009-02-28-new-simplepie-screencasts.md b/docs/content/blog/2009-02-28-new-simplepie-screencasts.md new file mode 100644 index 000000000..f87854f4f --- /dev/null +++ b/docs/content/blog/2009-02-28-new-simplepie-screencasts.md @@ -0,0 +1,17 @@ ++++ +title = "New SimplePie Screencasts" +date = 2009-02-28T12:51:00Z + +[extra] +author = "Ryan Parman" ++++ + +It would appear that this is the season for SimplePie screencasts! In the past two days, I’ve discovered a few new SimplePie-related screencasts, and I want to share them (and a couple of older ones) with you. + +- **[Introduction to SimplePie](/tutorials/introduction_to_simplepie.mov)** ? Ryan Parman gives you a solid once-over about setting up SimplePie, merging feeds together, auto-discovery, and a few other popular features. +- **[Adding RSS Content with SimplePie](http://css-tricks.com/video-screencasts/55-adding-rss-content-with-simplepie/)** ? Chris Coyier discusses more of the basics from another developer’s perspective. +- **[Quick Tip: Super SimplePie!](http://www.nikibrown.com/designoblog/2009/02/10/quick-tip-16-super-simple-pie/)** ? Niki Brown quickly shows you how to drop RSS content into an existing page. +- **[CodeIgniter and SimplePie](http://www.viddler.com/explore/elliothaughin/videos/10/)** ? Elliot Haughin shows how to integrate SimplePie into your CodeIgniter projects. +- **[Extending SimplePie to Parse Unique RSS Feeds](http://net.tutsplus.com/videos/screencasts/extending-simplepie-to-parse-unique-rss-feeds/)** ? Jeffrey Way dives a bit deeper and talks about how to extend SimplePie’s functionality while playing with a little jQuery. + +You can find even more tips, tricks, tutorials, and screencasts in the [SimplePie wiki](/wiki/tutorial/). diff --git a/docs/content/blog/2009-05-15-openid-for-comments.md b/docs/content/blog/2009-05-15-openid-for-comments.md new file mode 100644 index 000000000..61fa9c2f7 --- /dev/null +++ b/docs/content/blog/2009-05-15-openid-for-comments.md @@ -0,0 +1,13 @@ ++++ +title = "OpenID for comments" +date = 2009-05-15T17:02:00Z + +[extra] +author = "Ryan Parman" ++++ + +We’re now supporting a technology called OpenID for comments. What does that mean for you? It means that you can sign-in and comment on our blog with your existing account from Google/Gmail, Yahoo!, Facebook, MySpace, Twitter, Windows Live, Hotmail, Flickr, AOL, Blogger, WordPress.com, and others! + +If you already have a registered account on our blog for commenting, you can sign-in with your existing account. From there, you can (optionally) add a third-party account that you can login with instead. + +That is all. 🙂 diff --git a/docs/content/blog/2009-07-11-simplepie-1-2-now-available.md b/docs/content/blog/2009-07-11-simplepie-1-2-now-available.md new file mode 100644 index 000000000..9bfcea104 --- /dev/null +++ b/docs/content/blog/2009-07-11-simplepie-1-2-now-available.md @@ -0,0 +1,17 @@ ++++ +title = "SimplePie 1.2 now available!" +date = 2009-07-11T02:06:00Z + +[extra] +author = "Geoffrey Sneddon" +cover_image = "/images/128/simplepie.png" +cover_image_alt = "SimplePie" ++++ + +[SimplePie 1.2 is now available](/downloads/). This release adds a few features that have been requested often, especially caching in MySQL (instead of on the filesystem) and the ability to autodetect more than one feed. Furthermore, a large number of bugs have been fixed, a mixture of low-priority bugs found throughout 1.1’s release-cycle, and a few larger bugs found after 1.1.3’s release. + +However, it removes support for hosts that were affected by the libxml2 issue in SimplePie 1.1.1 and below that run PHP versions prior to 5.1.0 (this is as we have a new workaround, which does not subtly change the feed). As a result, any host with a version of libxml2 of 2.7.0 or above with less than PHP 5.1.0 will be broken by this release (however, I expect this accounts for around zero hosts, as I expect those with an up-to-date libxml2 release will equally have an up-to-date PHP release). This leaves our support at better than SimplePie 1.1.1, and (theoretically, at least) worse than 1.1.2 and 1.1.3. Needless to say, this release is API-compatible with previous 1.x releases, so it should be as simple as a drop-in replacement. Feel free to check out the [release notes](/wiki/misc/release_notes/simplepie_1.2) for more details. + +The intention after 1.2’s release is to move almost all development work to SimplePie 2 (an announcement concerning that is forthcoming), and as such, lower-priority bug fixes will be accepted into future 1.2.x releases. However, as is the final non-bugfix release of SimplePie 1, regressions are unacceptable, so all patches will have be reviewed by at least one release manager (as of writing, myself and Ryan Parman) and one developer (as of writing, the two RMs and Ryan McCue). One person cannot fulfil both roles for one patch. + +Finally, as has been previously announced, SimplePie 2 will require (some as-of-yet undecided version of) PHP 5, so SimplePie 1.2 forms the final feature-release with support for PHP 4. PHP 4, has, however, been unsupported since 2007, so please encourage your host to upgrade (likewise, PHP 5 versions prior to PHP 5.2.10 are unsupported)! diff --git a/docs/content/blog/2009-09-26-simplepie-is-ceasing-development.md b/docs/content/blog/2009-09-26-simplepie-is-ceasing-development.md new file mode 100644 index 000000000..e4cc06339 --- /dev/null +++ b/docs/content/blog/2009-09-26-simplepie-is-ceasing-development.md @@ -0,0 +1,17 @@ ++++ +title = "SimplePie is ceasing development" +date = 2009-09-26T10:48:00Z + +[extra] +author = "Ryan Parman" ++++ + +A little over 5 years ago – July 20, 2004 to be exact – I posted the very first public version of SimplePie as a set of functions that sat on top of MagpieRSS, in an effort to make RSS parsing even easier and more accessible to PHP developers around the world. Since that time, SimplePie has become the de-facto RSS/Atom parsing software for PHP. The software is in use by hundreds of thousands of people all over the world, is integrated into more third-party software than I can keep track of, and has been used in everything from blogs and wikis to sites powered by some of the largest brands in the world. + +A couple of years ago I co-founded my first company and that has ended up taking a large portion of my time. As part of that, I’ve also released a new open-source project called [CloudFusion](http://getcloudfusion.com) (formerly Tarzan) that is beginning to take the Amazon Web Services and Cloud Computing world by storm. Geoffrey has spent a lot of time in school, building tools to help the [HTML 5](http://www.w3.org/TR/html5/) community, and now has a gig working for [Opera](http://opera.com). There quite simply isn’t much time for SimplePie anymore – for either of us. + +We’ve tried to build a community around SimplePie – one where people can help each other, provide tips and tricks, record screencasts, and eventually take over the development of the project. Parts of this were successful while other parts were not. Geoffrey and I have had the pleasure of working alongside some smart, talented people over the years including [Ryan McCue](http://ryanmccue.info), [Michael Shipley](http://www.michaelpshipley.com), [Steve Minutillo](http://minutillo.com/steve/weblog/) and many others, but for whatever reason we never developed enough steam to keep it all going despite Geoffrey and my best efforts and other commitments. + +So effective immediately, we are ceasing development of SimplePie and shutting down the project. We will shortly be pushing all code to [GitHub](http://github.com/skyzyx/simplepie). The [mailing list](http://tech.groups.yahoo.com/group/simplepie-support/) will continue to serve users for the time being, but my sincerest hope is that someone will take up the charge to fork SimplePie, fix all of its issues, and continue on with this project that’s been such a huge part of my life for the past 5 years. + +I’ll be around for a few more weeks to help ease the transition to GitHub and whatever community springs up around that. I’ll probably continue to keep an eye on the mailing list and help where I can, but that doesn’t mean that I’ll be able to answer everyone’s questions. Geoffrey and I sincerely appreciate all of the users we’ve had over the years, the kind words, and all of the cool Amazon wishlist purchases that have shown up on our doorsteps over the years. I hope someone else will take up the mantle for the RSS/Atom/PHP community like SimplePie and MagpieRSS before it. diff --git a/docs/content/blog/2011-10-14-simplepie-1-2-1-is-now-available.md b/docs/content/blog/2011-10-14-simplepie-1-2-1-is-now-available.md new file mode 100644 index 000000000..c9c3ff3c6 --- /dev/null +++ b/docs/content/blog/2011-10-14-simplepie-1-2-1-is-now-available.md @@ -0,0 +1,21 @@ ++++ +title = "SimplePie 1.2.1 is Now Available!" +date = 2011-10-14T20:22:00Z + +[extra] +author = "Ryan McCue" +cover_image = "/images/128/simplepie.png" +cover_image_alt = "SimplePie" ++++ + +I’m excited to finally announce the immediate availability of [SimplePie 1.2.1](/downloads/). This release fixes a few bugs, including a major URL parsing bug, where [URLs with query strings were parsed incorrectly](https://github.com/simplepie/simplepie/commit/76b5fd632f40c4516d68f3f1bdabcd76829117cc). For a full list of what has been changed in this version, see [the commits since 1.2](https://github.com/simplepie/simplepie/compare/1.2...1.2.1), and [the issues closed in 1.2.1](https://github.com/simplepie/simplepie/issues?state=closed&milestone=4). This is a recommended upgrade for all users. + +[Grab it now to upgrade!](/downloads/) + +So now, a quick status update on the project. Our last blog post noted that we were ceasing development, mainly due to the lack of time we had to devote to the project. However, I am pleased to report that [development has been continuing on GitHub](https://github.com/simplepie/simplepie). With the help of users and other developers, hacking has been taking place on our two main upcoming versions (1.2.1 and 1.3), with occasional development on [ComplexPie](https://github.com/gsnedders/complexpie), the future base of SimplePie 2.0. + +The major version undergoing changes is the `master` branch [(1.3-dev)](https://github.com/simplepie/simplepie/tree/master). The major change so far is the restructuring of SimplePie into a more maintainable structure, with one file per class. Major thanks goes to [Drak](https://github.com/drak) from the Zikula Foundation for undertaking the main body of work. All the classes have also been changed to use PHP 5 code, including proper visibility for methods and properties, and dropping any deprecated code. There are also a lot more unit tests, with more to come before release. + +In addition, the `one-dot-two` [branch](https://github.com/simplepie/simplepie/tree/one-dot-two) continues as the legacy PHP 4-compatible branch, with 1.2.1 hopefully our final release on the branch. Occasional bugfix releases will be made on this branch, but no major development is occurring here. [New issues are always welcome](https://github.com/simplepie/simplepie/issues?milestone=8&state=open)! + +Finally, if you’re reading this, the site has finally been migrated to a new server (thanks to [Matt](http://ma.tt/) for hosting!). If any brokenness is noticed, please feel free to file a [bug on the website bug tracker](https://github.com/simplepie/simplepie/issues?milestone=7&state=open). That’s all for now, look forward to the release of 1.2.1 in the upcoming future, and thanks for using SimplePie! diff --git a/docs/content/blog/2012-01-16-development-tools-now-available.md b/docs/content/blog/2012-01-16-development-tools-now-available.md new file mode 100644 index 000000000..bf4ea2daf --- /dev/null +++ b/docs/content/blog/2012-01-16-development-tools-now-available.md @@ -0,0 +1,15 @@ ++++ +title = "Development Tools Now Available" +date = 2012-01-16T05:01:00Z + +[extra] +author = "Ryan McCue" ++++ + +For anyone who is using the latest development version of SimplePie (known as 1.3-dev), you might have noticed that the readme mentions SimplePie.compiled.php in the same vein as our previous simplepie.inc. However, in the past, you had to check out the entire repository just to build this. + +I’m happy to announce that a pre-built version is now available at [dev.simplepie.org](http://dev.simplepie.org/SimplePie.compiled.php). This version is rebuilt within 5 minutes of pushing to GitHub, so it will always be up-to-date with our current development version. + +In addition, API documentation built from our PHPDoc comments is now available on [dev.simplepie.org](http://dev.simplepie.org/api/). This documentation is designed to give you a bit more of an insight into the SimplePie API, than the wiki. Don’t worry though, our wiki isn’t going anywhere any time soon! + +If you encounter any problems, as usual, let us know via the [issue tracker](https://github.com/simplepie/simplepie/issues). diff --git a/docs/content/blog/2012-07-07-one-dot-three.md b/docs/content/blog/2012-07-07-one-dot-three.md new file mode 100644 index 000000000..a0a20b257 --- /dev/null +++ b/docs/content/blog/2012-07-07-one-dot-three.md @@ -0,0 +1,55 @@ ++++ +title = "SimplePie 1.3 “Boysenberry” is now available!" +date = 2012-07-07T03:57:00Z + +[extra] +author = "Ryan McCue" +cover_image = "/images/128/simplepie.png" +cover_image_alt = "SimplePie" ++++ + +SimplePie 1.3 is [now available](/downloads/)! This release is our first to be PHP 5-only, and this brings with it a strengthened code base. A huge number of bugs have been fixed, along with plenty of new features. SimplePie 1.3 is almost completely backwards compatible with 1.2, so you have no excuse not to use it! + +One of the biggest changes with this release is the dropping of legacy support for PHP 4. SimplePie 1.3 requires at least PHP 5.2.0 to run, and we recommend 5.3+ (as some versions of 5.2 are known to be buggy). + +## API Changes + +With a new version comes some changes to the API, with features being added and legacy items being removed. + +One of the most important changes is that the `SimplePie` constructor no longer supports arguments. In the past, we’ve run in to a lot of issues with this feature, so we’ve decided to remove it. This may cause some breakages in your code, so watch out for this. + +When using multifeeds with SimplePie, the `SimplePie::error()` method now returns an array (indexed by the number URL which failed). This should make working with invalid feeds easier. + +If you’re using a custom caching system, it’s now much easier to use. Rather than overriding `SimplePie_Cache`, you can now [register your handler](/api/class-SimplePie_Cache.html#_register) and use the cache location option to pass options in. We’ve also bundled a Memcache-based cache handler with SimplePie (thanks to Matt Robenolt) to make it even easier to get SimplePie up and running. + +This is just a summary of the changes we’ve made to SimplePie. To look at a full list of changes, head on over to [the wiki](/wiki/misc/release_notes/simplepie_1.3) or for the full change list, check out [GitHub’s comparison view](https://github.com/simplepie/simplepie/compare/1.2...1.3). + +## Rearchitecture of the Codebase + +For anyone who has worked with the SimplePie codebase in the past, you’ll know it was a huge pain due to the entire project being in one file. With 1.3, we’ve split SimplePie up into one-class-per-file, enabling easy autoloading of the classes you need without needing to load them all. This means easier developing for us, and faster loading for you. A huge thanks must go to Drak from the [Zikula project](http://zikula.org/) for the work on this. + +If you’re one of the people who loved the monolithic file, don’t worry! We’ve baked a special compiled release which includes all the classes you need in a single file. If the compiled release is too big for you to handle, we’ve also baked a minified release which strips all the comments. + +## API Documentation Changes + +We’ve always prided ourselves on providing stellar documentation, and 1.3 is no different. Previously, an API reference was provided on the wiki, however this had occasionally fallen out of date, or not actually matched the code. With 1.3, we’re now generating this documentation directly from the PHPDoc comments in the code. + +[Head on over to the API documentation](/api/) right now to see it! You can also use PHP-style URLs, so `http://simplepie.org/api/SimplePie_Item` will redirect you to the correct page. + +## Looking Forward + +SimplePie 1.4 will focus on slimming down by removing legacy support for several features. + +In SimplePie 1.2, due to PHP 4 support class properties were declared with the `var` keyword, and access was restricted via the `@access` keyword. With 1.3 came the move to PHP 5 and strict properties, however for backwards compatibility, these properties were left as `var`. From 1.4 onwards, properties and methods with an `@access private` tag will have their visibility changed to `protected`. If you’re using any of these internal APIs, be aware that they will cease to be available. Proper methods are available for all pieces of data that you need to access, and we encourage you to move to those instead. + +1.4 will also involve the splitting off of the HTTP handling. SimplePie will bundle [Requests](http://requests.ryanmccue.info/), however will have a clearly defined interface to implement your own HTTP handler. + +We’ll also be attempting to increase our test coverage, with the aim to get up to at least 80% of the code covered by a test by 1.4. + +With the release of 1.3 also begins our new release schedule. A new major version of SimplePie is planned to be released every 6 months, with 1.4 to be released in January 2013. This is a schedule we’ll be trying extremely hard to stick to, and we’d love to get your help in doing so. Pull requests on GitHub will always be welcomed with open arms, as are bug reports and feature requests. + +--- + +Finally, I’d just like to personally thank all of you for using SimplePie. It’s a pleasure working on the project knowing that so many of you out there are using it. By far my favourite moment was when I accidentally pushed a piece of broken code up to GitHub, only to be alerted to it by a new issue on GitHub within minutes. You all make it worth every minute of my time. + +So, thanks to everyone, and I’ll see you all here for a new release in 6 months! diff --git a/docs/content/blog/2012-10-30-simplepie-1-3-1-is-now-available.md b/docs/content/blog/2012-10-30-simplepie-1-3-1-is-now-available.md new file mode 100644 index 000000000..0add75910 --- /dev/null +++ b/docs/content/blog/2012-10-30-simplepie-1-3-1-is-now-available.md @@ -0,0 +1,13 @@ ++++ +title = "SimplePie 1.3.1 is now available!" +date = 2012-10-30T10:10:00Z + +[extra] +author = "Ryan McCue" +cover_image = "/web/20210812123158im_/https://simplepie.org/images/128/simplepie.png" +cover_image_alt = "SimplePie" ++++ + +SimplePie 1.3.1 is [now available](https://simplepie.org/downloads/)! This is a bugfix release, which fixes a few bugs including [a URI-parsing bug](https://github.com/simplepie/simplepie/issues/214) and an [issue if DOMDocument doesn’t exist](https://github.com/simplepie/simplepie/issues/241). In addition, the various methods deprecated in 1.3 now fail with an `E_DEPRECATED` error rather than simply having the methods not exist. For a full list of what has been changed in this version, see [the commits since 1.3](https://github.com/simplepie/simplepie/compare/1.3...1.3.1), and [the issues closed in 1.3.1](https://github.com/simplepie/simplepie/issues?milestone=9&state=closed). This is a recommended upgrade for all users. + +[Grab it now to upgrade!](/downloads/) diff --git a/docs/content/blog/_index.md b/docs/content/blog/_index.md new file mode 100644 index 000000000..aaa91dc4e --- /dev/null +++ b/docs/content/blog/_index.md @@ -0,0 +1,6 @@ ++++ +title = "Weblog" +template = "blog.html" +page_template = "post.html" +sort_by = "date" ++++ diff --git a/docs/content/demo/_index.md b/docs/content/demo/_index.md new file mode 100644 index 000000000..b0416909b --- /dev/null +++ b/docs/content/demo/_index.md @@ -0,0 +1,9 @@ ++++ +title = "Demo (Online RSS and Atom Feed Reader)" + +[extra] +chunky = true ++++ + +<!-- BODY START --> +<!-- BODY END --> diff --git a/docs/content/demo/easy_access/_index.md b/docs/content/demo/easy_access/_index.md new file mode 100644 index 000000000..3e4de9e4d --- /dev/null +++ b/docs/content/demo/easy_access/_index.md @@ -0,0 +1,41 @@ ++++ +title = "Easy Access" + +[extra] +chunky = true ++++ + +<div class="chunk"> + +## ![Get Easy Access, All The Time. Integrate SimplePie into your workflow by adding it to your browser.](/images/copy_get_easy_access.gif "Get Easy Access, All The Time. Integrate SimplePie into your workflow by adding it to your browser.") + +</div> + +<div class="chunk"> + +#### Option 1: Add SimplePie to Firefox + +As the photo below shows, you can set SimplePie as a feed handler in Firefox 2 (and presumably newer versions). [Watch the 30-second video!](/tutorials/simplepie_firefox.mov) + +<div align="center"> + +<img src="/images/firefox_feed_handler.png" title="SimplePie as a feed handler in Firefox 2" style="padding:10px;" alt="Photo of SimplePie as the default feed handler in Firefox 2" /> + +</div> + +- <span id="firefox_demo">[Add the SimplePie Demo as a feed handler](/demo/easy_access/_index.md)</span> +- <span id="firefox_trunk">[Add the latest version of the SimplePie Trunk as a feed handler](/demo/easy_access/_index.md)</span> + +</div> + +<div class="chunk"> + +#### Option 2: Add SimplePie to Firefox, Safari, or Opera (and IE too!) + +If you're using Firefox, Safari, or Opera, you can simply drag these into your bookmarks bar. View a feed in your browser then click the new bookmark to read it with SimplePie. + +If you're still using Internet Explorer you can right-click and save the location of the bookmarklets and use it as the location when you create a new bookmark. + +[<img src="/images/bookmarklet_demo.png" title="Drag this to your bookmarks bar" data-border="0" alt="SimplePie" />](<javascript:location.href='http://simplepie.org/demo/?feed='+encodeURIComponent(location.href);>) [<img src="/images/bookmarklet_trunk.png" title="Drag this to your bookmarks bar" data-border="0" alt="SimplePie Trunk" />](<javascript:location.href='http://php5.simplepie.org/trunk/demo/?feed='+encodeURIComponent(location.href);>) + +</div> diff --git a/docs/content/development/_index.md b/docs/content/development/_index.md new file mode 100644 index 000000000..55bbad11d --- /dev/null +++ b/docs/content/development/_index.md @@ -0,0 +1,66 @@ ++++ +title = "Development" + +[extra] +chunky = true ++++ + +<div class="chunk"> + +## ![Developers, developers, developers! Check out the latest development code. See what's on our to-do lists.](/images/copy_developers_developers_developers.gif "Developers, developers, developers! Check out the latest development code. See what's on our to-do lists.") + +</div> + +<div class="chunk commits"> + +Git: <a href="feed://github.com/simplepie/simplepie/commits/master.atom" style="background-image:url(/images/mini/feed.png);">Atom</a> | <a href="http://twitter.com/simplepie" style="background-image:url(/images/twitter.png);">Twitter</a> | <a href="http://github.com/simplepie/simplepie/commits/master" style="background-image:url(/images/mini/time.png);">Commits</a> | <a href="http://github.com/simplepie/simplepie/network" style="background-image:url(/images/mini/chart_organisation.png);">Network</a> + +</div> + +<div class="chunk"> + +#### SimplePie Git Repository + +<div class="blogimage"> + +![Package](/images/128/metapackage.png) + +</div> + +Want to take a look at our in-development code? You can view the files on the web, or download them with a [Git](http://git-scm.com/) client like [msysgit](http://code.google.com/p/msysgit/) or [GitX](http://gitx.frim.nl/). A couple of notes: + +1. _The master version is always changing._ We try to maintain a relatively stable trunk at all times, but sometimes stuff is just broken. +2. We only support the _current "official" release and the <u>very latest</u> master build_. If a bug exists in a master build, make sure you're running the very latest build before reporting it. +3. You have _read-only access to the repository_. You do not have the ability to commit changes, although patches and suggestions are ALWAYS welcome at our [bug tracker](http://github.com/simplepie/simplepie/issues). +4. _New features may not be documented._ [Function documentation for the trunk build is available](http://php5.simplepie.org/phpDoc/), however if you have a question about how something should work, ask in support mailing list. +5. _Get the latest development code._ Grab it from [Git](http://github.com/simplepie/simplepie/) or download [as a tarball](http://github.com/simplepie/simplepie/tarball/master). + +</div> + +<div class="chunk"> + +#### Get Involved! + +SimplePie is an open-source project, and we encourage anyone who is interested to get more involved. Here are some links for getting more involved. + +- [**Documentation Wiki**](/wiki/_index) — The wiki is loaded with documentation, tutorials, code samples and other bits of information contributed by the SimplePie community. +- [**SimplePie Support List**](http://tech.groups.yahoo.com/group/simplepie-support/) — Whether you actually need support or not, there's a TON you can learn about using SimplePie simply by subscribing to the mailing list and reading what comes through. +- [**SimplePie Development List**](http://tech.groups.yahoo.com/group/simplepie-dev/) — This is the development-related mailing list. This is NOT for support issues, but rather for discussions about SimplePie as a development project. +- [**Bug Tracker**](http://github.com/simplepie/simplepie/issues) — This is where we keep track of bugs and feature requests for all SimplePie-related projects. +- [**IRC Chat**](irc://irc.freenode.net/simplepie/) — Sometimes questions or issues need a more immediate response, and for that we have our [IRC Channel](irc://irc.freenode.net/simplepie/). Looking for an IRC client? We recommend [Colloquy](http://colloquy.info/) for Mac OS X and [mIRC](http://www.mirc.com/) for Windows. + +</div> + +<div class="chunk"> + +#### Socially Attuned + +Add SimplePie as a friend on these popular online services! + +- **[MySpace](http://myspace.com/simplepieorg)** — Add us as a friend on this hugely popular social network. +- **[Facebook](http://www.facebook.com/group.php?gid=4219219878)** — Join the SimplePie group on Facebook. +- **[Viddler](http://viddler.com/simplepie)** — Videos we've been uploading, including screencasts and such. +- **[YouTube](http://youtube.com/simplepieorg)** — SimplePie on the world's most popular video sharing service. +- **[Twitter](http://twitter.com/simplepie)** — Keep track of new development by following us. + +</div> diff --git a/docs/content/downloads/_index.md b/docs/content/downloads/_index.md new file mode 100644 index 000000000..d5a7cf782 --- /dev/null +++ b/docs/content/downloads/_index.md @@ -0,0 +1,51 @@ ++++ +title = "Downloads" + +[extra] +chunky = true ++++ + +<div class="chunk"> + +## ![Ready to get the latest and greatest? Download the latest version of SimplePie right here.](/images/copy_latest_and_greatest.gif "Ready to get the latest and greatest? Download the latest version of SimplePie right here.") + +[Download](/downloads/_index.md?download) + +**Version 1.5** 180 KB zip file. Released on 17 April 2017. +Make sure you [meet the requirements](/wiki/setup/requirements). + +**Alternatively:** [Trunk & Branch Development Builds](/development/) | [SimplePie Plugin for WordPress](http://wordpress.org/extend/plugins/simplepie-plugin-for-wordpress/) + +</div> + +<div class="chunk"> + +#### SimplePie In Your Browser + +Get easy access to SimplePie [directly from your web browser!](/demo/easy_access/) + +</div> + +<div class="chunk"> + +#### SimplePie Tips, Tricks, Tutorials, and Screencasts + +We've worked extra hard to ensure that SimplePie is easy to use and easy to understand. That being said, it never hurts to get a little help to speed things up! We've got a collection of [tips, tricks, tutorials, and screencasts](/wiki/tutorial/) to help you along the way! + +</div> + +<div class="chunk"> + +#### SimplePie Plugins + +Looking to integrate SimplePie into your blogs, wikis, forums, or other sites? The SimplePie Community has created several plugins that allow you to use SimplePie with all sorts of other software! Check our [SimplePie Plugins](/wiki/plugins/) page for a list of what we're aware of. + +</div> + +<div class="chunk"> + +#### SimplePie Development Builds + +Feeling frisky? Is there a feature or bug fix available, but hasn't yet been officially released? Interested in keeping up with the latest and greatest? Grab a copy of our [in-development trunk build](/development/). + +</div> diff --git a/docs/content/support/_index.md b/docs/content/support/_index.md new file mode 100644 index 000000000..421e35802 --- /dev/null +++ b/docs/content/support/_index.md @@ -0,0 +1,27 @@ ++++ +title = "Support" + +[extra] +chunky = true ++++ + +<div class="chunk"> + +## ![Support? I don't need no stinking... Well, maybe you do. And that's okay. You're still a beautiful person.](/images/copy_support.gif "Support? I don't need no stinking... Well, maybe you do. And that's okay. You're still a beautiful person.") + +</div> + +<div class="chunk"> + +#### Our Many Methods of Support + +Something wrong with your (or our) code? We're here to help. + +- [**Documentation Wiki**](/wiki/_index) — The wiki is loaded with documentation, tutorials, code samples and other bits of information contributed by the SimplePie community. +- [**SimplePie Support List**](http://tech.groups.yahoo.com/group/simplepie-support/) — Whether you actually need support or not, there's a TON you can learn about using SimplePie simply by subscribing to the mailing list and reading what comes through. +- [**SimplePie Development List**](http://tech.groups.yahoo.com/group/simplepie-dev/) — This is the development-related mailing list. This is NOT for support issues, but rather for discussions about SimplePie as a development project. +- [**Bug Tracker**](http://github.com/simplepie/simplepie/issues) — This is where we keep track of bugs and feature requests for all SimplePie-related projects. +- [**IRC Chat**](irc://irc.freenode.net/simplepie/) — Sometimes questions or issues need a more immediate response, and for that we have our [IRC Channel](irc://irc.freenode.net/simplepie/). Looking for an IRC client? We recommend [Colloquy](http://colloquy.info/) for Mac OS X and [mIRC](http://www.mirc.com/) for Windows. +- [**Stack Overflow**](http://stackoverflow.com/questions/tagged/simplepie) — Like all great programmers, we use Stack Overflow for our programming questions — and you can too! We keep an eye on anything tagged "simplepie", so ask away! + +</div> diff --git a/docs/content/wiki/1.3/_index.md b/docs/content/wiki/1.3/_index.md new file mode 100644 index 000000000..e194f23e2 --- /dev/null +++ b/docs/content/wiki/1.3/_index.md @@ -0,0 +1,17 @@ ++++ +title = "SimplePie 1.3 \"Boysenberry\"" ++++ + +Also see [the release notes](@/wiki/misc/release_notes/simplepie_1.3.md). + +<div id="alphaindex"> + +--- + +## Index {#index} + +### C {#c} + +- [Caching and You!](@/wiki/1.3/caching.md) + +</div> diff --git a/docs/content/wiki/1.3/caching.md b/docs/content/wiki/1.3/caching.md new file mode 100644 index 000000000..d7cfd7798 --- /dev/null +++ b/docs/content/wiki/1.3/caching.md @@ -0,0 +1,92 @@ ++++ +title = "Caching and You!" ++++ + +To maximise performance, SimplePie includes a caching system which can be used with a file-based cache, database cache or a Memcache-backed cache system. + +## Built-in backends {#built-in_backends} + +### File-based {#file-based} + +File-based caching is the easiest way to set up caching for SimplePie. All you need is a server-writable directory (we usually call it `cache/`)! + +For example, let's say your script is at `/var/www/script.php`. To use file-based caching, you first need to make a new directory at `/var/www/cache`. Make sure this directory can be written to by <abbr title="Hypertext Preprocessor">PHP</abbr>. If you're using `cache/`, there's nothing else to set up, as SimplePie defaults to this directory. + +If you want to store your cache somewhere else, say `/var/www/somewhereelse`, you'll need to tell SimplePie to do that. Don't worry, it's super easy! + +```php +$feed->set_cache_location('/var/www/somewhereelse'); +``` + +<div class="warning"> + +If you use relative paths (i.e. they don't start with `/`, be aware that these are relative to where **your script** is, [not where SimplePie is](@/wiki/faq/i_m_getting_cache_error_messages.md). + +</div> + +### MySQL {#mysql} + +SimplePie also supports using MySQL as a database store for the cache. + +Before you get started, you'll need to create the correct schema for SimplePie. In your copy of SimplePie, find the file called `db.sql` and run the commands under the MySQL section on your database. + +Once you've done that, setting up SimplePie is easy as pie! + +```php +$feed->set_cache_location('mysql://username:password@hostname:port/database'); +``` + +Replace those placeholders with your actual values, and you're good to go! + +<div class="warning"> + +By default, the database tables are not prefixed. To set the prefix, add `?prefix=sp_` to your cache location (where `sp_` is your desired prefix). + +</div> + +### Memcache {#memcache} + +As of SimplePie 1.3, Memcache databases are supported right out of the box. + +To use Memcache for SimplePie's cache, simply set your cache location with a `memcache:` prefix: + +```php +$feed->set_cache_location('memcache://hostname:port/?timeout=3600&prefix=sp_'); +``` + +Replace the above placeholders as needed. The `timeout` value is how long you want the Memcache values to last for. We recommend setting this to the same as your value for `$feed→set_cache_duration()`, which defaults to 3600. + +## Custom backend {#custom_backend} + +SimplePie also makes it absurdly easy to write your own cache handler. To start, take a look at the Memcache handler (<a href="/api/SimplePie_Cache_Memcache" class="interwiki iw_api" title="http://simplepie.org/api/SimplePie_Cache_Memcache">''SimplePie_Cache_Memcache''</a>) as it's one of the easiest to understand. + +In a nutshell, here's what you need to do: + +### Implement the caching interface {#implement_the_caching_interface} + +<a href="/api/SimplePie_Cache_Base" class="interwiki iw_api" title="http://simplepie.org/api/SimplePie_Cache_Base">This interface</a> is your gateway to writing your own caching system. Follow the hints in the PHPDoc comments to ensure that you implement these methods correctly. + +### Pick a prefix {#pick_a_prefix} + +Every caching system has options given by a <abbr title="Uniform Resource Locator">URL</abbr>-style location. Your cache handler needs to have a distinctive and unique (for your system) prefix, which looks like a <abbr title="Uniform Resource Locator">URL</abbr> scheme. For example, the Memcache handler uses `memcache`, which means Memcache locations always start with `memcache://`. + +### Register your handler {#register_your_handler} + +Next, you need to let SimplePie know about your handler. Simply call `SimplePie_Cache::register()` (pretending that we picked `example` as a prefix, and our handler class is `ExampleCacheHandler`) + +```php +SimplePie_Cache::register('example', 'ExampleCacheHandler'); +``` + +### Use it {#use_it} + +Finally, tell SimplePie to use your cache handler. This is as easy as setting the cache location when you're using SimplePie. + +```php +$feed->set_cache_location('example://myhost/example'); +``` + +## See Also {#see_also} + +- [How does SimplePie's caching system work?](@/wiki/faq/how_does_simplepie_s_caching_http_conditional_get_system_work.md) +- [I'm getting cache error messages](@/wiki/faq/i_m_getting_cache_error_messages.md) diff --git a/docs/content/wiki/_index.md b/docs/content/wiki/_index.md new file mode 100644 index 000000000..69fd6477c --- /dev/null +++ b/docs/content/wiki/_index.md @@ -0,0 +1,54 @@ ++++ +title = "Documentation" ++++ + +We've seen far too many open-source projects have really poor documentation, if any at all. We don't want to be like that. Our goal is to provide you with everything you need to install, upgrade, get started with, and really push SimplePie to its limits. + +Besides documenting each and every single public function, we've also put together guides for various things to help you along. We decided to move everything into a wiki so that people can add their own notes, clarifications, and other helpful hints to the docs. Feel free to add your own tutorials and such, but please follow existing uses of wiki links and the [API documentation](/api/ "http://simplepie.org/api/"). + +<div class="warning"> + +**You can look up a specific class or method by going to [http://simplepie.org/api/](/api/ "http://simplepie.org/api/")\[class name\]** which is just like how you can look up <abbr title="Hypertext Preprocessor">PHP</abbr> functions by going to <http://php.net/>\[function name\]. + +</div> + +Ready to learn? You can begin by clicking on one of the documentation links below. + +## Frequently Asked Questions {#frequently_asked_questions} + +- **[Frequently Asked Questions](@/wiki/faq/_index.md)** +- [Typical Multifeed Gotchas](@/wiki/faq/typical_multifeed_gotchas.md) +- [Known Problematic Feeds](@/wiki/faq/problematic_feeds.md) +- [I'm getting memory leaks!](@/wiki/faq/i_m_getting_memory_leaks.md) +- [How does SimplePie's caching system work?](@/wiki/faq/how_does_simplepie_s_caching_http_conditional_get_system_work.md) +- [How do I change the file permissions for the cache directory to be server-writable?](@/wiki/faq/file_permissions.md) + +## Setup {#setup} + +- [Requirements and Getting Started](@/wiki/setup/_index.md) +- [Create a sample SimplePie-enabled page](@/wiki/setup/sample_page.md) +- [Upgrading from Beta 2, 3, 3.1, or 3.2](@/wiki/setup/upgrade.md) + +## Usage {#usage} + +- [API Documentation for 1.3](/api/ "http://simplepie.org/api/") +- [Other Documentation for 1.3](@/wiki/1.3/_index.md) +- [API Documentation for 1.2](@/wiki/reference/_index.md) +- [Tips, Tricks, Tutorials, and Screencasts](@/wiki/tutorial/_index.md) +- [Sites that have integrated SimplePie](@/wiki/ideas/_index.md) + +## Enhancements {#enhancements} + +- [SimplePie Plugins and Integration](@/wiki/plugins/_index.md) +- [SimplePie Add-ons](@/wiki/addons/_index.md) + +## Miscellaneous {#miscellaneous} + +- [Coding Standards](@/wiki/misc/coding_standards.md) +- [Release Notes](@/wiki/misc/release_notes/_index.md) +- [SimplePie Credits](@/wiki/misc/credits.md) +- [SimplePie in the Media](@/wiki/misc/in_the_media.md) + +## SimplePie Live! Documentation {#simplepie_live_documentation} + +- [SimplePie Live!](@/wiki/live/_index.md) diff --git a/docs/content/wiki/_media/tutorial/update_simplepie_cache.jpg b/docs/content/wiki/_media/tutorial/update_simplepie_cache.jpg new file mode 100644 index 000000000..467576d04 Binary files /dev/null and b/docs/content/wiki/_media/tutorial/update_simplepie_cache.jpg differ diff --git a/docs/content/wiki/addons/_index.md b/docs/content/wiki/addons/_index.md new file mode 100644 index 000000000..2ec9b1821 --- /dev/null +++ b/docs/content/wiki/addons/_index.md @@ -0,0 +1,36 @@ ++++ +title = "SimplePie Add-ons" ++++ + +## What makes SimplePie Add-ons so cool? {#what_makes_simplepie_add-ons_so_cool} + +SimplePie Add-ons allow you to add all sorts of cool new functionality to SimplePie _without ever having to edit a line of SimplePie!_ You can leave your `simplepie.inc` file untouched (making it easier to upgrade to newer releases), and still be able to extend it to your heart's delight with cool new functionality! + +Is there something that you'd like to SimplePie do that it doesn't already do out-of-the-box? Have you built an add-on for SimplePie that allows it to do cool, new things? This is a list of links for documentation for all of the SimplePie add-ons that we are aware of. **Let's try to keep this list alphabetized so that it stays well-organized.** + +Also, it may be in your best interest to look over the [What you should know about SimplePie Add-ons](@/wiki/addons/what_you_should_know_about_simplepie_add-ons.md) documentation. + +## Screencast Tutorial {#screencast_tutorial} + +These assume that you're already familiar with using SimplePie, and you've seen the _Introduction to SimplePie_ screencast (on the [Tips, Tricks, Tutorials, and Screencasts](@/wiki/tutorial/_index.md) page). + +- [Creating the Digg SimplePie Add-on](/tutorials/simplepie_digg_addon.mov "http://simplepie.org/tutorials/simplepie_digg_addon.mov") **(22:13)** + +## Add-ons {#add-ons} + +- [Cache Extras](@/wiki/addons/cache_extras.md) – Additional methods for interacting with your cache. +- [del.icio.us RSS](@/wiki/addons/del.icio.us.md) – Contains a category splitting fix in the de.icio.us rss feed. +- [Digg RSS](@/wiki/addons/digg.md) – Easily work with extra data in Digg's feeds. +- [Jaiku RSS](@/wiki/addons/jaiku.md) – Easily work with extra data in Jaiku feeds including a way to filter out your jaikus. +- [Shopify](@/wiki/addons/shopify.md) – Easily work with the custom invoice data in Shopify's feeds. +- [Yahoo! Weather](@/wiki/addons/yahoo_weather.md) – Easily work with Yahoo's weather feeds. +- [YouTube RSS](@/wiki/addons/youtube.md) – Easily work with extra data in YouTube's feeds. +- [Google Calendar](http://g4j.laoneo.net/docu/doku.php/id,docu;simplepie;gcalendar) – Adds new methods that make it easy to work with Google Calendar feeds. +- [Google Analytics](http://g4j.laoneo.net/docu/doku.php/id,docu;simplepie;ganalytics)– Adds new methods that make it easy to work with Google Analytics feeds. + +## Requested Add-ons {#requested_add-ons} + +- <a href="@/wiki/addons/better_favicons.md" class="wikilink2">Better Favicons</a> – Better detecting and caching of favicons. +- <a href="@/wiki/addons/strip_ads.md" class="wikilink2">Strip Ads</a> – Returns the strip_ads() functionality that was removed in SimplePie 1.0. +- <a href="@/wiki/addons/blogger_comments.md" class="wikilink2">Blogger Comments</a> – Parse Blogger comments as part of items. +- <a href="@/wiki/addons/filter_feed_items.md" class="wikilink2">Filter feed items</a> – searches and filters the feed items based on key words. diff --git a/docs/content/wiki/addons/cache_extras.md b/docs/content/wiki/addons/cache_extras.md new file mode 100644 index 000000000..42f26d212 --- /dev/null +++ b/docs/content/wiki/addons/cache_extras.md @@ -0,0 +1,168 @@ ++++ +title = "Cache Extras" ++++ + +## The Basics {#the_basics} + +<table class="inline"> +<tbody> +<tr> +<th>Author</th> +<td><a href="http://simplepie.org">Ryan Parman</a></td> +</tr> +<tr> +<th>Revision</th> +<td>1</td> +</tr> +<tr> +<th>SimplePie version</th> +<td>1.0 (not 1.1)</td> +</tr> +<tr> +<th>Classes Extended</th> +<td><a href="@/wiki/reference/simplepie/_index.md">SimplePie</a></td> +</tr> +</tbody> +</table> + +### About the Add-on {#about_the_add-on} + +This add-on adds additional cache-related methods to the SimplePie object such as cache file name, cache timestamp, and cache time remaining. + +## Installation {#installation} + +### Instructions {#instructions} + +1. Create a new file called `simplepie_cache_extras.inc` and place it in the same directory as your `simplepie.inc` file. +2. On the SimplePie-enabled page you want to use this extension on, make sure you include it in the same way that you include `simplepie.inc`. + +### Add-on Source Code {#add-on_source_code} + +```php +<?php +class SimplePie_Cache_Extras extends SimplePie +{ + function get_cache_object() + { + $cache =& new $this->cache_class($this->cache_location, call_user_func($this->cache_name_function, $this->feed_url), 'spc'); + return $cache; + } + + function get_cache_filename() + { + $cache = $this->get_cache_object(); + return $cache->name; + } + + function get_cache_timestamp() + { + $cache = $this->get_cache_object(); + return $cache->mtime(); + } + + function get_cache_time_remaining($format = false) + { + $cache = $this->get_cache_object(); + $remaining = ($cache->mtime() + $this->cache_duration) - time(); + + if ($format) + { + return SimplePie_Misc::time_hms($remaining); + } + else + { + return $remaining; + } + } +} +?> +``` + +## Using the Add-on {#using_the_add-on} + +### Methods {#methods} + +- `get_cache_object()` + Returns the [SimplePie_Cache](@/wiki/reference/simplepie_cache/_index.md) object that SimplePie is using. This is used by the other methods to return their data. +- `get_cache_filename()` + Returns the path and filename of the cache file for this feed. +- `get_cache_timestamp()` + Returns a UNIX timestamp for the time when the feed was cached. +- `get_cache_time_remaining()` + Returns the remaining time (in seconds) until the cache is considered stale, and SimplePie will re-check the feed for freshness. Optionally, you can pass `true` as the parameter, and it will return the remaining time in a `hh:mm:ss` format instead. + +### Example Code {#example_code} + +```php +<?php +require_once('simplepie.inc'); +require_once('simplepie_cache_extras.inc'); + +// Instead of a new SimplePie(), we'll do a new SimplePie_Cache_Extras() since we extended the SimplePie class. +$feed = new SimplePie_Cache_Extras('http://digg.com/rss/index.xml'); +$feed->handle_content_type(); + +// Let's display the filename of the cached feed. +echo 'Cached file name: ' . $feed->get_cache_filename() . '<br />'; + +// When was this cache file created? +echo 'File was cached at: ' . $feed->get_cache_timestamp() . ' (' . date('j F Y, g:i a', $feed->get_cache_timestamp()) . ')<br />'; + +// How long until the cache expires? +echo 'Time remaining until next cache check: ' . $feed->get_cache_time_remaining() . ' seconds (' . $feed->get_cache_time_remaining(true) . ' hh:mm:ss)<br />'; + +echo '<hr />'; + +foreach ($feed->get_items() as $item) +{ + echo '<a href="' . $item->get_permalink() . '">' . $item->get_title() . '</a><br />'; +} +?> +``` + +### Add-on Source Code (Modified - Sunday 6th June 2010 by Mark Bowen {#add-on_source_code_modified\_-_sunday_6th_june_2010_by_mark_bowen} + +For anyone who can't get this to work I managed to get it to work by doing the following below. I commented out the main line in the get_cache_object() function and added in the line as shown below which I found in the main simplepie.inc file. + +This worked right away and allowed all the cache functions to start working. Hopefully I've not done anything silly here though? + +```php +<?php +class SimplePie_Cache_Extras extends SimplePie +{ + function get_cache_object() + { +// $cache =& new $this->cache_class($this->cache_location, call_user_func($this->cache_name_function, $this->feed_url), 'spc'); + $cache = call_user_func(array($this->cache_class, 'create'), $this->cache_location, call_user_func($this->cache_name_function, $this->feed_url), 'spc'); + return $cache; + } + + function get_cache_filename() + { + $cache = $this->get_cache_object(); + return $cache->name; + } + + function get_cache_timestamp() + { + $cache = $this->get_cache_object(); + return $cache->mtime(); + } + + function get_cache_time_remaining($format = false) + { + $cache = $this->get_cache_object(); + $remaining = ($cache->mtime() + $this->cache_duration) - time(); + + if ($format) + { + return SimplePie_Misc::time_hms($remaining); + } + else + { + return $remaining; + } + } +} +?> +``` diff --git a/docs/content/wiki/addons/del.icio.us.md b/docs/content/wiki/addons/del.icio.us.md new file mode 100644 index 000000000..35baf0c64 --- /dev/null +++ b/docs/content/wiki/addons/del.icio.us.md @@ -0,0 +1,129 @@ ++++ +title = "del.icio.us RSS" ++++ + +## The Basics {#the_basics} + +<table class="inline"> +<tbody> +<tr> +<th>Author</th> +<td><a href="http://beta.sneakerpeet.com">Peet 'Sneaker Peet' Sneekes</a></td> +</tr> +<tr> +<th>Revision</th> +<td>1</td> +</tr> +<tr> +<th>SimplePie version</th> +<td>1.0</td> +</tr> +<tr> +<th>Classes Extended</th> +<td><a href="@/wiki/reference/simplepie_item/_index.md">SimplePie_Item</a></td> +</tr> +</tbody> +</table> + +### About the Add-on {#about_the_add-on} + +This Add-on does not really extend the functionality of SimplePie, but it does extend the get_categories() function. In the del.icio.us- <abbr title="Rich Site Summary">RSS</abbr> there are only spaces to seperate the 'Tags'. This is not handy when you want to iterate over them to give them a certain markup. This extention explodes the one category-element and inserts them into the SimplePie_Item like the rest of them. Also, it's got a 'is_delicious' variable to base diverting mark up on. + +## Installation {#installation} + +### Instructions {#instructions} + +1. Create a new file called `simplepie_delicious.inc` and place it in the same directory as your `simplepie.inc` file. +2. On the SimplePie-enabled page you want to use this extension on, make sure you include it in the same way that you include `simplepie.inc`. + +### Add-on Source Code {#add-on_source_code} + +```php +<?php +/** + * SimplePie Add-on for Delicious tags + * + * Copyright (c) 2004-2007, Peet Sneekes + * All rights reserved. License matches the current SimplePie license. + */ + +if (!defined('SIMPLEPIE_NAMESPACE_DELICIOUS')) +{ + define('SIMPLEPIE_NAMESPACE_DELICIOUS', 'http://purl.org/dc/elements/1.1/'); +} + +class SimplePie_Item_Delicious extends SimplePie_Item +{ + + /** + * @var bool is this a del.icio.us item? + * @access private + */ + var $is_delicious = true; + + // Overloading an existing method. + + function get_categories() + { + $categories = array(); + + foreach ((array) $this->get_item_tags(SIMPLEPIE_NAMESPACE_ATOM_10, 'category') as $category) + { + $term = null; + $scheme = null; + $label = null; + if (isset($category['attribs']['']['term'])) + { + $term = $this->sanitize($category['attribs']['']['term'], SIMPLEPIE_CONSTRUCT_TEXT); + } + if (isset($category['attribs']['']['scheme'])) + { + $scheme = $this->sanitize($category['attribs']['']['scheme'], SIMPLEPIE_CONSTRUCT_TEXT); + } + if (isset($category['attribs']['']['label'])) + { + $label = $this->sanitize($category['attribs']['']['label'], SIMPLEPIE_CONSTRUCT_TEXT); + } + $categories[] =& new $this->feed->category_class($term, $scheme, $label); + } + foreach ((array) $this->get_item_tags('', 'category') as $category) + { + $categories[] =& new $this->feed->category_class($this->sanitize($category['data'], SIMPLEPIE_CONSTRUCT_TEXT), null, null); + } + foreach ((array) $this->get_item_tags(SIMPLEPIE_NAMESPACE_DC_11, 'subject') as $category) + { + $exploded_categories = explode(' ', $this->sanitize($category['data'], SIMPLEPIE_CONSTRUCT_TEXT)); + foreach ((array) $exploded_categories as $exploded_category) { + $categories[] =& new $this->feed->category_class($exploded_category, null, null); + } + + } + foreach ((array) $this->get_item_tags(SIMPLEPIE_NAMESPACE_DC_10, 'subject') as $category) + { + $categories[] =& new $this->feed->category_class($this->sanitize($category['data'], SIMPLEPIE_CONSTRUCT_TEXT), null, null); + } + + if (!empty($categories)) + { + return SimplePie_Misc::array_unique($categories); + } + else + { + return null; + } + } +} + +?> +``` + +## Using the Add-on {#using_the_add-on} + +### Methods {#methods} + +- `get_categories()` + Now returns separate tags in stead of one line. + +### Example Code {#example_code} + +N.A. diff --git a/docs/content/wiki/addons/digg.md b/docs/content/wiki/addons/digg.md new file mode 100644 index 000000000..d26d8b4b6 --- /dev/null +++ b/docs/content/wiki/addons/digg.md @@ -0,0 +1,191 @@ ++++ +title = "Digg RSS" ++++ + +## The Basics {#the_basics} + +<table class="inline"> +<tbody> +<tr> +<th>Author</th> +<td><a href="http://simplepie.org">Ryan Parman</a></td> +</tr> +<tr> +<th>Revision</th> +<td>1</td> +</tr> +<tr> +<th>SimplePie version</th> +<td>1.0</td> +</tr> +<tr> +<th>Classes Extended</th> +<td><a href="@/wiki/reference/simplepie_item/_index.md">SimplePie_Item</a></td> +</tr> +</tbody> +</table> + +### About the Add-on {#about_the_add-on} + +This add-on makes it very easy to get access to Digg's custom <abbr title="Rich Site Summary">RSS</abbr> tags known as Digg <abbr title="Rich Site Summary">RSS</abbr>. Data includes the submitter, the submitter's avatar, the number of diggs, number of comments, and the Digg category. There is a screencast available that shows how this Add-on was created: [Creating the Digg SimplePie Add-on](/tutorials/simplepie_digg_addon.mov "http://simplepie.org/tutorials/simplepie_digg_addon.mov"). + +## Installation {#installation} + +### Instructions {#instructions} + +1. Create a new file called `simplepie_digg.inc` and place it in the same directory as your `simplepie.inc` file. +2. On the SimplePie-enabled page you want to use this extension on, make sure you include it in the same way that you include `simplepie.inc`. + +### Add-on Source Code {#add-on_source_code} + +```php +<?php +/** + * SimplePie Add-on for Digg + * + * Copyright (c) 2004-2007, Ryan Parman and Geoffrey Sneddon + * All rights reserved. License matches the current SimplePie license. + */ + +if (!defined('SIMPLEPIE_NAMESPACE_DIGG')) +{ + define('SIMPLEPIE_NAMESPACE_DIGG', 'http://digg.com/docs/diggrss/'); +} + +class SimplePie_Item_Digg extends SimplePie_Item +{ + // New method + function get_digg_count() + { + $data = $this->get_item_tags(SIMPLEPIE_NAMESPACE_DIGG, 'diggCount'); + return $data[0]['data']; + } + + // New method + function get_submitter_username() + { + $data = $this->get_item_tags(SIMPLEPIE_NAMESPACE_DIGG, 'submitter'); + $data = $data[0]['child'][SIMPLEPIE_NAMESPACE_DIGG]['username']; + return $data[0]['data']; + } + + // New method + function get_submitter_image() + { + $data = $this->get_item_tags(SIMPLEPIE_NAMESPACE_DIGG, 'submitter'); + $data = $data[0]['child'][SIMPLEPIE_NAMESPACE_DIGG]['userimage']; + return $data[0]['data']; + } + + // New method + function get_comment_count() + { + $data = $this->get_item_tags(SIMPLEPIE_NAMESPACE_DIGG, 'commentCount'); + return $data[0]['data']; + } + + // Overloading an existing method. + function get_categories() + { + $categories = array(); + + foreach ((array) $this->get_item_tags(SIMPLEPIE_NAMESPACE_DIGG, 'category') as $category) + { + $categories[] =& new $this->feed->category_class($this->sanitize($category['data'], SIMPLEPIE_CONSTRUCT_TEXT), null, null); + } + foreach ((array) $this->get_item_tags(SIMPLEPIE_NAMESPACE_ATOM_10, 'category') as $category) + { + $term = null; + $scheme = null; + $label = null; + if (isset($category['attribs']['']['term'])) + { + $term = $this->sanitize($category['attribs']['']['term'], SIMPLEPIE_CONSTRUCT_TEXT); + } + if (isset($category['attribs']['']['scheme'])) + { + $scheme = $this->sanitize($category['attribs']['']['scheme'], SIMPLEPIE_CONSTRUCT_TEXT); + } + if (isset($category['attribs']['']['label'])) + { + $label = $this->sanitize($category['attribs']['']['label'], SIMPLEPIE_CONSTRUCT_TEXT); + } + $categories[] =& new $this->feed->category_class($term, $scheme, $label); + } + foreach ((array) $this->get_item_tags('', 'category') as $category) + { + $categories[] =& new $this->feed->category_class($this->sanitize($category['data'], SIMPLEPIE_CONSTRUCT_TEXT), null, null); + } + foreach ((array) $this->get_item_tags(SIMPLEPIE_NAMESPACE_DC_11, 'subject') as $category) + { + $categories[] =& new $this->feed->category_class($this->sanitize($category['data'], SIMPLEPIE_CONSTRUCT_TEXT), null, null); + } + foreach ((array) $this->get_item_tags(SIMPLEPIE_NAMESPACE_DC_10, 'subject') as $category) + { + $categories[] =& new $this->feed->category_class($this->sanitize($category['data'], SIMPLEPIE_CONSTRUCT_TEXT), null, null); + } + + if (!empty($categories)) + { + return SimplePie_Misc::array_unique($categories); + } + else + { + return null; + } + } +} + +?> +``` + +## Using the Add-on {#using_the_add-on} + +### Methods {#methods} + +- `get_digg_count()` + This returns the number of Diggs the article has received. +- `get_submitter_username()` + The username of the person who submitted the article. +- `get_submitter_image()` + The avatar of the person who submitted the article. +- `get_comment_count()` + The number of comments this article has received. +- `get_categories()` + Same as the normal [get_categories()](@/wiki/reference/simplepie_item/get_categories.md), except that we've added the Digg category as the first item returned. Returns a [SimplePie_Category](@/wiki/reference/simplepie_category/_index.md) object. + +### Example Code {#example_code} + +```php +<?php +require_once('simplepie.inc'); +require_once('simplepie_digg.inc'); + +$feed = new SimplePie(); +$feed->set_feed_url('http://digg.com/rss/index.xml'); +$feed->set_item_class('SimplePie_Item_Digg'); +$feed->init(); +$feed->handle_content_type(); + +?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" + "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> +<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> +<head> + <title>Sample Page to test SimplePie add-on for Digg.com + + + +

get_title(); ?>

+ + get_items() as $item): ?> + +

<?php echo $item->get_submitter_username(); ?> get_title(); ?>

+

get_description(); ?>

+

Diggs: get_digg_count(); ?> | Submitted by: get_submitter_username(); ?> | Comments: get_comment_count(); ?> | Category: get_category(0); echo $category->get_label(); ?> | get_date('l, F jS Y, g:i a'); ?>

+
+ + + + + +``` diff --git a/docs/content/wiki/addons/google_calendar_methods.md b/docs/content/wiki/addons/google_calendar_methods.md new file mode 100644 index 000000000..f58d43feb --- /dev/null +++ b/docs/content/wiki/addons/google_calendar_methods.md @@ -0,0 +1,5 @@ ++++ +title = "GCalendar" ++++ + +The site has moved to [the G4J GCalendar docu](http://g4j.laoneo.net/content/docu/doku.php/id,docu;simplepie;gcalendar/). diff --git a/docs/content/wiki/addons/jaiku.md b/docs/content/wiki/addons/jaiku.md new file mode 100644 index 000000000..110881312 --- /dev/null +++ b/docs/content/wiki/addons/jaiku.md @@ -0,0 +1,288 @@ ++++ +title = "Jaiku RSS" ++++ + +## The Basics {#the_basics} + + + + + + + + + + + + + + + + + + + + +
AuthorPeet 'Sneaker Peet' Sneekes
Revision1
SimplePie version1.0
Classes ExtendedSimplePie SimplePie_Item
+ +### About the Add-on {#about_the_add-on} + +This add-on makes it very easy to get access to Jaiku's custom RSS tags known as Jaiku RSS. Data includes the comment count, user nick, first name, last name, avatar, time since. Also there is a 'is_jaiku' available in every item, so you can base format behavior on that. The SimplePie Object is also extended. This was done to filter out the jaikus from the other feeds in the Jaiku RSS. There is a screencast available that shows how a simelar Add-on was created: [Creating the Digg SimplePie Add-on](/tutorials/simplepie_digg_addon.mov "http://simplepie.org/tutorials/simplepie_digg_addon.mov"). + +## Installation {#installation} + +### Instructions {#instructions} + +1. Create a new file called `simplepie_jaiku.inc` and place it in the same directory as your `simplepie.inc` file. +2. On the SimplePie-enabled page you want to use this extension on, make sure you include it in the same way that you include `simplepie.inc`. + +### Add-on Source Code {#add-on_source_code} + +```php +multifeed_objects)) + { + return SimplePie::merge_items($this->multifeed_objects, $start, $end); + } + elseif (!isset($this->data['items'])) + { + if ($items = $this->get_feed_tags(SIMPLEPIE_NAMESPACE_ATOM_10, 'entry')) + { + $keys = array_keys($items); + foreach ($keys as $key) + { + $this->data['items'][] =& new $this->item_class($this, $items[$key]); + } + } + if ($items = $this->get_feed_tags(SIMPLEPIE_NAMESPACE_ATOM_03, 'entry')) + { + $keys = array_keys($items); + foreach ($keys as $key) + { + $this->data['items'][] =& new $this->item_class($this, $items[$key]); + } + } + if ($items = $this->get_feed_tags(SIMPLEPIE_NAMESPACE_RSS_10, 'item')) + { + $keys = array_keys($items); + foreach ($keys as $key) + { + $this->data['items'][] =& new $this->item_class($this, $items[$key]); + } + } + if ($items = $this->get_feed_tags(SIMPLEPIE_NAMESPACE_RSS_090, 'item')) + { + $keys = array_keys($items); + foreach ($keys as $key) + { + $this->data['items'][] =& new $this->item_class($this, $items[$key]); + } + } + if ($items = $this->get_channel_tags('', 'item')) + { + $keys = array_keys($items); + foreach ($keys as $key) + { + $this->data['items'][] =& new $this->item_class($this, $items[$key]); + } + } + } + if (!empty($this->data['items'])) + { + // If we want to order it by date, check if all items have a date, and then sort it + if ($this->order_by_date) + { + if (!isset($this->data['ordered_items'])) + { + $do_sort = true; + foreach ($this->data['items'] as $item) + { + if (!$item->get_date('U')) + { + $do_sort = false; + break; + } + } + $item = null; + $this->data['ordered_items'] = $this->data['items']; + if ($do_sort) + { + usort($this->data['ordered_items'], array(&$this, 'sort_items')); + } + } + $items = $this->data['ordered_items']; + } + else + { + $items = $this->data['items']; + } + if ($this->only_jaikus) { + + $tmp_items = array(); + foreach ($items as $item) + { + if (strstr($item->get_link(), 'jaiku.com')!=false) + { + array_push($tmp_items,$item); + } + } + $items = $tmp_items; + } + + + // Slice the data as desired + if ($end == 0) + { + return array_slice($items, $start); + } + else + { + return array_slice($items, $start, $end); + } + } + else + { + return array(); + } + } +} +class SimplePie_Item_Jaiku extends SimplePie_Item +{ + /** + * @var bool is this a jaiku item? + * @access private + */ + var $is_jaiku = true; + + // New method + function get_comment_count() + { + $data = $this->get_item_tags(SIMPLEPIE_NAMESPACE_JAIKUS, 'comment'); + return $data[0]['attribs']['']['count']; + } + + // New method + function get_user_nick() + { + $data = $this->get_item_tags(SIMPLEPIE_NAMESPACE_JAIKUS, 'user'); + return $data[0]['attribs']['']['nick']; + } + + // New method + function get_user_first_name() + { + $data = $this->get_item_tags(SIMPLEPIE_NAMESPACE_JAIKUS, 'user'); + return $data[0]['attribs']['']['first_name']; + } + + // New method + function get_user_last_name() + { + $data = $this->get_item_tags(SIMPLEPIE_NAMESPACE_JAIKUS, 'user'); + return $data[0]['attribs']['']['last_name']; + } + + // New method + function get_user_avatar() + { + $data = $this->get_item_tags(SIMPLEPIE_NAMESPACE_JAIKUS, 'user'); + return $data[0]['attribs']['']['avatar']; + } + + // New method + function get_user_url() + { + $data = $this->get_item_tags(SIMPLEPIE_NAMESPACE_JAIKUS, 'user'); + return $data[0]['attribs']['']['url']; + } + + // New method + function get_time_since() + { + $data = $this->get_item_tags(SIMPLEPIE_NAMESPACE_JAIKUS, 'timesince'); + return $data[0]['data']; + } +} +?> +``` + +## Using the Add-on {#using_the_add-on} + +### Methods {#methods} + +- `get_comment_count()` + This returns the number of comments the jaiku has received. +- `get_user_nick()` + The users nick name who submitted the article. +- `get_user_first_name()` + The first name of the person who submitted the article. +- `get_user_last_name()` + The last name of the person who submitted the article. +- `get_user_avatar()` + The uri to the avatar image of the person who submitted the article. +- `get_user_url()` + The uri to the jaiku-page of the person who submitted the article. +- `get_time_since()` + The time elapsed since the post was made + +### Example Code {#example_code} + +```php +set_feed_url ( 'http://sneakerpeet.jaiku.com/feed/rss'); +$jaikus->set_item_class('SimplePie_Item_Jaiku'); +$jaikus->init(); +$feed->handle_content_type(); + +?> + + + Sample Page to test SimplePie add-on for Jaiku.com + + + + + +

get_title(); ?>

+ + get_items() as $item): ?> + +

<?php echo $item->get_submitter_username(); ?> get_title(); ?>

+

get_description(); ?>

+

Comments: get_comment_count(); ?> | Submitted by: get_user_nick(); ?> | get_date('l, F jS Y, g:i a'); ?>

+
+ + + + + +``` diff --git a/docs/content/wiki/addons/shopify.md b/docs/content/wiki/addons/shopify.md new file mode 100644 index 000000000..cfe019566 --- /dev/null +++ b/docs/content/wiki/addons/shopify.md @@ -0,0 +1,848 @@ ++++ +title = "Shopify" ++++ + +## The Basics {#the_basics} + + + + + + + + + + + + + + + + + + + + +
AuthorRyan Parman
Revision1
SimplePie version1.0
Classes ExtendedSimplePie_Item
+ +### About the Add-on {#about_the_add-on} + +This add-on adds methods for easily working with Shopify feeds. + +## Installation {#installation} + +### Instructions {#instructions} + +1. Create a new file called `simplepie_shopify.inc` and place it in the same directory as your `simplepie.inc` file. +2. On the SimplePie-enabled page you want to use this extension on, make sure you include it in the same way that you include `simplepie.inc`. + +### Add-on Source Code {#add-on_source_code} + +```php +get_item_tags(SIMPLEPIE_NAMESPACE_SHOPIFY, 'order_id'); + if ($return = $data[0]['data']) + { + return $this->sanitize($return, SIMPLEPIE_CONSTRUCT_TEXT); + } + else + { + return null; + } + } + + function get_guid() + { + $data = $this->get_item_tags(SIMPLEPIE_NAMESPACE_SHOPIFY, 'guid'); + if ($return = $data[0]['data']) + { + return $this->sanitize($return, SIMPLEPIE_CONSTRUCT_TEXT); + } + else + { + return null; + } + } + + function get_email() + { + $data = $this->get_item_tags(SIMPLEPIE_NAMESPACE_SHOPIFY, 'email'); + if ($return = $data[0]['data']) + { + return $this->sanitize($return, SIMPLEPIE_CONSTRUCT_TEXT); + } + else + { + return null; + } + } + + function get_status() + { + $data = $this->get_item_tags(SIMPLEPIE_NAMESPACE_SHOPIFY, 'status'); + if ($return = $data[0]['data']) + { + return $this->sanitize($return, SIMPLEPIE_CONSTRUCT_TEXT); + } + else + { + return null; + } + } + + function get_financial_status() + { + $data = $this->get_item_tags(SIMPLEPIE_NAMESPACE_SHOPIFY, 'financial_status'); + if ($return = $data[0]['data']) + { + return $this->sanitize($return, SIMPLEPIE_CONSTRUCT_TEXT); + } + else + { + return null; + } + } + + function get_fulfillment_status() + { + $data = $this->get_item_tags(SIMPLEPIE_NAMESPACE_SHOPIFY, 'fulfillment_status'); + if ($return = $data[0]['data']) + { + return $this->sanitize($return, SIMPLEPIE_CONSTRUCT_TEXT); + } + else + { + return null; + } + } + + function get_closed_date($format = null) + { + $data = $this->get_item_tags(SIMPLEPIE_NAMESPACE_SHOPIFY, 'closed_at'); + if ($return = $data[0]['data']) + { + if ($format) + { + $return = date($format, SimplePie_Misc::parse_date($return)); + } + return $this->sanitize($return, SIMPLEPIE_CONSTRUCT_TEXT); + } + else + { + return null; + } + } + + function get_local_closed_date($format = null) + { + if ($return = $this->get_closed_date('U')) + { + if ($format) + { + $return = strftime($format, $return); + } + return $this->sanitize($return, SIMPLEPIE_CONSTRUCT_TEXT); + } + else + { + return null; + } + } + + function get_created_date($format = null) + { + $data = $this->get_item_tags(SIMPLEPIE_NAMESPACE_SHOPIFY, 'created_at'); + if ($return = $data[0]['data']) + { + if ($format) + { + $return = date($format, SimplePie_Misc::parse_date($return)); + } + return $this->sanitize($return, SIMPLEPIE_CONSTRUCT_TEXT); + } + else + { + return null; + } + } + + function get_local_created_date($format = null) + { + if ($return = $this->get_created_date('U')) + { + if ($format) + { + $return = strftime($format, $return); + } + return $this->sanitize($return, SIMPLEPIE_CONSTRUCT_TEXT); + } + else + { + return null; + } + } + + function get_updated_date($format = null) + { + $data = $this->get_item_tags(SIMPLEPIE_NAMESPACE_SHOPIFY, 'updated_at'); + if ($return = $data[0]['data']) + { + if ($format) + { + $return = date($format, SimplePie_Misc::parse_date($return)); + } + return $this->sanitize($return, SIMPLEPIE_CONSTRUCT_TEXT); + } + else + { + return null; + } + } + + function get_local_updated_date($format = null) + { + if ($return = $this->get_updated_date('U')) + { + if ($format) + { + $return = strftime($format, $return); + } + return $this->sanitize($return, SIMPLEPIE_CONSTRUCT_TEXT); + } + else + { + return null; + } + + } + + function get_note() + { + $data = $this->get_item_tags(SIMPLEPIE_NAMESPACE_SHOPIFY, 'note'); + if ($return = $data[0]['data']) + { + return $this->sanitize($return, SIMPLEPIE_CONSTRUCT_TEXT); + } + else + { + return null; + } + } + + function get_shipping_title() + { + $data = $this->get_item_tags(SIMPLEPIE_NAMESPACE_SHOPIFY, 'shipping_title'); + if ($return = $data[0]['data']) + { + return $this->sanitize($return, SIMPLEPIE_CONSTRUCT_TEXT); + } + else + { + return null; + } + } + + function get_total_price() + { + $data = $this->get_item_tags(SIMPLEPIE_NAMESPACE_SHOPIFY, 'total_price'); + if ($return = $data[0]['data']) + { + return $this->sanitize($return, SIMPLEPIE_CONSTRUCT_TEXT); + } + else + { + return null; + } + } + + function get_subtotal_price() + { + $data = $this->get_item_tags(SIMPLEPIE_NAMESPACE_SHOPIFY, 'subtotal_price'); + if ($return = $data[0]['data']) + { + return $this->sanitize($return, SIMPLEPIE_CONSTRUCT_TEXT); + } + else + { + return null; + } + } + + function get_total_tax() + { + $data = $this->get_item_tags(SIMPLEPIE_NAMESPACE_SHOPIFY, 'total_tax'); + if ($return = $data[0]['data']) + { + return $this->sanitize($return, SIMPLEPIE_CONSTRUCT_TEXT); + } + else + { + return null; + } + } + + function get_total_weight() + { + $data = $this->get_item_tags(SIMPLEPIE_NAMESPACE_SHOPIFY, 'total_weight'); + if ($return = $data[0]['data']) + { + return $this->sanitize($return, SIMPLEPIE_CONSTRUCT_TEXT); + } + else + { + return null; + } + } + + function get_shipping_price() + { + $data = $this->get_item_tags(SIMPLEPIE_NAMESPACE_SHOPIFY, 'shipping_price'); + if ($return = $data[0]['data']) + { + return $this->sanitize($return, SIMPLEPIE_CONSTRUCT_TEXT); + } + else + { + return null; + } + } + + function get_payments_total() + { + $data = $this->get_item_tags(SIMPLEPIE_NAMESPACE_SHOPIFY, 'payments_total'); + if ($return = $data[0]['data']) + { + return $this->sanitize($return, SIMPLEPIE_CONSTRUCT_TEXT); + } + else + { + return null; + } + } + + function _process_contact_info($data = null) + { + $data = $data[0]['child'][SIMPLEPIE_NAMESPACE_SHOPIFY]; + $first_name = null; + $last_name = null; + $address1 = null; + $address2 = null; + $phone = null; + $city = null; + $zip = null; + $province = null; + $country = null; + + if ($first_name = $data['first_name'][0]['data']) + { + $first_name = $this->sanitize($first_name, SIMPLEPIE_CONSTRUCT_TEXT); + } + if ($last_name = $data['last_name'][0]['data']) + { + $last_name = $this->sanitize($last_name, SIMPLEPIE_CONSTRUCT_TEXT); + } + if ($address1 = $data['address1'][0]['data']) + { + $address1 = $this->sanitize($address1, SIMPLEPIE_CONSTRUCT_TEXT); + } + if ($address2 = $data['address2'][0]['data']) + { + $address2 = $this->sanitize($address2, SIMPLEPIE_CONSTRUCT_TEXT); + } + if ($phone = $data['phone'][0]['data']) + { + $phone = $this->sanitize($phone, SIMPLEPIE_CONSTRUCT_TEXT); + } + if ($city = $data['city'][0]['data']) + { + $city = $this->sanitize($city, SIMPLEPIE_CONSTRUCT_TEXT); + } + if ($zip = $data['zip'][0]['data']) + { + $zip = $this->sanitize($zip, SIMPLEPIE_CONSTRUCT_TEXT); + } + if ($province = $data['province'][0]['data']) + { + $province = $this->sanitize($province, SIMPLEPIE_CONSTRUCT_TEXT); + } + if ($country = $data['country'][0]['data']) + { + $country = $this->sanitize($country, SIMPLEPIE_CONSTRUCT_TEXT); + } + + return new SimplePie_Shopify_Contact($first_name, $last_name, $address1, $address2, $phone, $city, $zip, $province, $country); + } + + function get_billing_info() + { + $data = $this->get_item_tags(SIMPLEPIE_NAMESPACE_SHOPIFY, 'billing_address'); + return $this->_process_contact_info($data); + } + + function get_shipping_info() + { + $data = $this->get_item_tags(SIMPLEPIE_NAMESPACE_SHOPIFY, 'shipping_address'); + return $this->_process_contact_info($data); + } + + function get_line_item($key = 0) + { + $line_items = $this->get_line_items(); + if (isset($line_items[$key])) + { + return $line_items[$key]; + } + else + { + return null; + } + } + + function get_line_items() + { + $return = array(); + $line_items = $this->get_item_tags(SIMPLEPIE_NAMESPACE_SHOPIFY, 'line_items'); + $line_items = $line_items[0]['child'][SIMPLEPIE_NAMESPACE_SHOPIFY]['line_items']; + + foreach ($line_items as $item) + { + $data = $item['child'][SIMPLEPIE_NAMESPACE_SHOPIFY]; + $sku = null; + $line_title = null; + $variant_title = null; + $quantity = null; + $price = null; + $vendor = null; + $grams = null; + + if ($sku = $data['sku'][0]['data']) + { + $sku = $this->sanitize($sku, SIMPLEPIE_CONSTRUCT_TEXT); + } + if ($line_title = $data['line_title'][0]['data']) + { + $line_title = $this->sanitize($line_title, SIMPLEPIE_CONSTRUCT_TEXT); + } + if ($variant_title = $data['variant_title'][0]['data']) + { + $variant_title = $this->sanitize($variant_title, SIMPLEPIE_CONSTRUCT_TEXT); + } + if ($quantity = $data['quantity'][0]['data']) + { + $quantity = $this->sanitize($quantity, SIMPLEPIE_CONSTRUCT_TEXT); + } + if ($price = $data['price'][0]['data']) + { + $price = $this->sanitize($price, SIMPLEPIE_CONSTRUCT_TEXT); + } + if ($vendor = $data['vendor'][0]['data']) + { + $vendor = $this->sanitize($vendor, SIMPLEPIE_CONSTRUCT_TEXT); + } + if ($grams = $data['grams'][0]['data']) + { + $grams = $this->sanitize($grams, SIMPLEPIE_CONSTRUCT_TEXT); + } + + $return[] = new SimplePie_Shopify_Line_Item($sku, $line_title, $variant_title, $quantity, $price, $vendor, $grams); + } + + return $return; + } +} + +class SimplePie_Shopify_Contact +{ + var $first_name; + var $last_name; + var $address1; + var $address2; + var $phone; + var $city; + var $zip; + var $province; + var $country; + + function SimplePie_Shopify_Contact($first_name, $last_name, $address1, $address2, $phone, $city, $zip, $province, $country) + { + $this->first_name = $first_name; + $this->last_name = $last_name; + $this->address1 = $address1; + $this->address2 = $address2; + $this->phone = $phone; + $this->city = $city; + $this->zip = $zip; + $this->province = $province; + $this->country = $country; + } + + function get_first_name() + { + return $this->first_name; + } + + function get_last_name() + { + return $this->last_name; + } + + function get_address1() + { + return $this->address1; + } + + function get_address2() + { + return $this->address2; + } + + function get_phone() + { + return $this->phone; + } + + function get_city() + { + return $this->city; + } + + function get_zip() + { + return $this->zip; + } + + function get_province() + { + return $this->province; + } + + function get_state() + { + return $this->get_province(); + } + + function get_country() + { + return $this->country; + } +} + +class SimplePie_Shopify_Line_Item +{ + var $sku; + var $line_title; + var $variant_title; + var $quantity; + var $price; + var $vendor; + var $grams; + + function SimplePie_Shopify_Line_Item($sku, $line_title, $variant_title, $quantity, $price, $vendor, $grams) + { + $this->sku = $sku; + $this->line_title = $line_title; + $this->variant_title = $variant_title; + $this->quantity = $quantity; + $this->price = $price; + $this->vendor = $vendor; + $this->grams = $grams; + } + + function get_sku() + { + return $this->sku; + } + + function get_line_title() + { + return $this->line_title; + } + + function get_variant_title() + { + return $this->variant_title; + } + + function get_quantity() + { + return $this->quantity; + } + + function get_price() + { + return $this->price; + } + + function get_vendor() + { + return $this->vendor; + } + + function get_grams() + { + return $this->grams; + } +} + +?> +``` + +## Using the Add-on {#using_the_add-on} + +### Methods {#methods} + +- `get_billing_info()` + Get the billing information for the order. Has sub-methods. +- `get_closed_date($format)` + Get the closing date of the order. The $format parameter takes anything that is supported by PHP's [date()](http://php.net/date) function. +- `get_created_date($format)` + Get the created date of the order. The $format parameter takes anything that is supported by PHP's [date()](http://php.net/date) function. +- `get_email()` + Get the email address for the order. +- `get_financial_status()` + Get the financial status for the order. +- `get_fulfillment_status()` + Get the fulfillment status for the order. +- `get_guid()` + Get the globally unique identifier for the order. +- `get_line_item()` + Get a single line item for the order. Has sub-methods. +- `get_line_items()` + Get all line items for the order. Has sub-methods. +- `get_local_closed_date($format)` + Get the localized closing date of the order. The $format parameter takes anything that is supported by PHP's [strftime()](http://php.net/strftime) function. To display in other languages, you need to change the locale with PHP's [setlocale()](http://php.net/setlocale) function. The available localizations depend on which ones are installed on your web server. +- `get_local_created_date($format)` + Get the localized created date of the order. The $format parameter takes anything that is supported by PHP's [strftime()](http://php.net/strftime) function. To display in other languages, you need to change the locale with PHP's [setlocale()](http://php.net/setlocale) function. The available localizations depend on which ones are installed on your web server. +- `get_local_updated_date($format)` + Get the localized date of the last update for the order. The $format parameter takes anything that is supported by PHP's [strftime()](http://php.net/strftime) function. To display in other languages, you need to change the locale with PHP's [setlocale()](http://php.net/setlocale) function. The available localizations depend on which ones are installed on your web server. +- `get_note()` + Get the notes for the order. +- `get_order_id()` + Get the order ID. +- `get_payments_total()` + Get the payment total for the order. +- `get_shipping_info()` + Get the shipping information for the order. Has sub-methods. +- `get_shipping_price()` + Get the shipping price for the order. +- `get_shipping_title()` + Get the shipping title for the order. +- `get_status()` + Get the status for the order. +- `get_subtotal_price()` + Get the subtotal for the order. +- `get_total_price()` + Get the grand total for the order. +- `get_total_tax()` + Get the VAT/Sales Tax for the order. +- `get_total_weight()` + Get the total weight (in grams) for the order. +- `get_updated_date($format)` + Get the date of the last update for the order. The $format parameter takes anything that is supported by PHP's [date()](http://php.net/date) function. + +### Sub-Methods for get_billing_info() and get_shipping_info() {#sub-methods_for_get_billing_info_and_get_shipping_info} + +- `get_first_name()` + Get the first name +- `get_last_name()` + Get the last name +- `get_address1()` + Get the street address (line 1) +- `get_address2()` + Get the street address (line 2) +- `get_phone()` + Get the phone number +- `get_city()` + Get the city +- `get_zip()` + Get the zip or postal code +- `get_province()` + Get the province +- `get_state()` + Alias for `get_province()`. This is more appropriate for places like the USA. +- `get_country()` + Get the country + +### Sub-Methods for get_line_item() and get_line_items() {#sub-methods_for_get_line_item_and_get_line_items} + +- `get_grams()` + Get the weight of the item in grams +- `get_line_title()` + Get the title of the item +- `get_price()` + Get the price of the item +- `get_quantity()` + Get the quantity ordered of the item +- `get_sku()` + Get the SKU number for the item +- `get_variant_title()` + Get the variant title of the item +- `get_vendor()` + Get the vendor for the item + +### Example Code {#example_code} + +```php +set_feed_url('http://shopify.com/your/shopify/rss/url/'); +$feed->set_item_class('SimplePie_Item_Shopify'); +$feed->init(); +$feed->handle_content_type(); + +$item = $feed->get_item(0); + +?> + + + Sample Shopify Page + + + +

Invoice No. get_order_id(); ?>

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Email Addressget_email(); ?>
Createdget_created_date('l, F jS Y, g:i a T')?>
Updatedget_updated_date('l, F jS Y, g:i a T')?>
Closedget_closed_date('l, F jS Y, g:i a T')?>
Billing + get_billing_info(); + if ($contact->get_address1()) + { + echo $contact->get_address1() . '
'; + } + if ($contact->get_address2()) + { + echo $contact->get_address2() . '
'; + } + if ($contact->get_city()) + { + echo $contact->get_city() . ', '; + } + if ($contact->get_state()) + { + echo $contact->get_state(); + } + if ($contact->get_zip()) + { + echo ' ' . $contact->get_zip(); + } + echo '
'; + if ($contact->get_country()) + { + echo $contact->get_country() . '
'; + } + ?> +
Shipping + get_shipping_info(); + if ($contact->get_address1()) + { + echo $contact->get_address1() . '
'; + } + if ($contact->get_address2()) + { + echo $contact->get_address2() . '
'; + } + if ($contact->get_city()) + { + echo $contact->get_city() . ', '; + } + if ($contact->get_state()) + { + echo $contact->get_state(); + } + if ($contact->get_zip()) + { + echo ' ' . $contact->get_zip(); + } + echo '
'; + if ($contact->get_country()) + { + echo $contact->get_country() . '
'; + } + ?> +
+ +

Items

+ + + get_line_items() as $line_item): ?> + + + + + + + + + + + + + + + + + + + + + + + + + + +
get_quantity(); ?>get_sku(); ?>get_line_title(); ?>get_price(); ?>
Subtotal:get_subtotal_price(); ?>
Sales Tax/VAT:get_total_tax(); ?>
Shipping and Handling:get_shipping_price(); ?>
Grand Total:get_total_price(); ?>
+ +

Notes:

+
get_note(); ?>
+ + + +``` diff --git a/docs/content/wiki/addons/what_you_should_know_about_simplepie_add-ons.md b/docs/content/wiki/addons/what_you_should_know_about_simplepie_add-ons.md new file mode 100644 index 000000000..433fc4050 --- /dev/null +++ b/docs/content/wiki/addons/what_you_should_know_about_simplepie_add-ons.md @@ -0,0 +1,13 @@ ++++ +title = "What you should know about SimplePie Add-ons" ++++ + +SimplePie Add-ons are really, really cool, but there is a base level of knowledge required that is above SimplePie's normal knowledge requirements. + +SimplePie is made up of a series of [classes](http://us.php.net/manual/en/ref.classobj.php) – each of which is geared for something different. [SimplePie_File](@/wiki/reference/simplepie_file/_index.md) is for getting files (like feeds), [SimplePie_Cache](@/wiki/reference/simplepie_cache/_index.md) is for caching them, [SimplePie_Parser](@/wiki/reference/simplepie_parser/_index.md) is for parsing them, and so on. You can get a complete list of these classes (and their methods) on the [API Reference](@/wiki/reference/_index.md) page. But these classes can also be extended ([PHP 4.x](http://php.net/manual/en/keyword.extends.php), [PHP 5.x](http://php.net/manual/en/language.oop5.basic.php#language.oop5.basic.extends)) to allow for new functionality to be added, or existing functionality to be altered. + +This is what these add-ons do. They're designed to add or alter existing functionality in new ways to allow SimplePie to better fit your needs. Anybody who can understand the documentation in the preceding links should be able to write their own extensions to SimplePie. + +To extend methods in specific classes, SimplePie has certain [configuration options](@/wiki/reference/_index.md#extending_classes_advanced) designed for exactly that, which tell SimplePie to use the extended version of the class instead of the built-in version. + +More documentation will likely be added about this topic in the future, but this should be enough to get you started for the time being. If you happen to be knowledgeable in this area, please feel free to bring value to this page by editing it. :) diff --git a/docs/content/wiki/addons/yahoo_weather.md b/docs/content/wiki/addons/yahoo_weather.md new file mode 100644 index 000000000..2f465402f --- /dev/null +++ b/docs/content/wiki/addons/yahoo_weather.md @@ -0,0 +1,499 @@ ++++ +title = "Yahoo! Weather" ++++ + +## The Basics {#the_basics} + + + + + + + + + + + + + + + + + + + + +
AuthorRyan Parman
Revision1
SimplePie version1.0
Classes ExtendedSimplePie_Item
+ +### About the Add-on {#about_the_add-on} + +This add-on adds methods for easily working with Yahoo! Weather feeds. Yahoo! Weather feeds can be found at . This add-on was heavily inspired by the [Get Yahoo! Weather with SimplePie](http://jivebay.com/2007/07/25/get-yahoo-weather-with-simplepie/) tutorial over at [JiveBay.com](http://jivebay.com). + +## Installation {#installation} + +### Instructions {#instructions} + +1. Create a new file called `simplepie_yahoo_weather.inc` and place it in the same directory as your `simplepie.inc` file. +2. On the SimplePie-enabled page you want to use this extension on, make sure you include it in the same way that you include `simplepie.inc`. + +### Add-on Source Code {#add-on_source_code} + +```php + data + function _get_location() + { + $feed = $this->get_feed(); + return $feed->get_channel_tags(SIMPLEPIE_NAMESPACE_YWEATHER, 'location'); + } + + function get_city() + { + $data = $this->_get_location(); + return $data[0]['attribs']['']['city']; + } + + function get_region() + { + $data = $this->_get_location(); + return $data[0]['attribs']['']['region']; + } + + function get_state() + { + return $this->get_region(); + } + + function get_country() + { + $data = $this->_get_location(); + return $data[0]['attribs']['']['country']; + } + + + // Get data + function _get_units() + { + $feed = $this->get_feed(); + return $feed->get_channel_tags(SIMPLEPIE_NAMESPACE_YWEATHER, 'units'); + } + + function get_units_temp() + { + $data = $this->_get_units(); + return $data[0]['attribs']['']['temperature']; + } + + function get_units_distance() + { + $data = $this->_get_units(); + return $data[0]['attribs']['']['distance']; + } + + function get_units_pressure() + { + $data = $this->_get_units(); + return $data[0]['attribs']['']['pressure']; + } + + function get_units_speed() + { + $data = $this->_get_units(); + return $data[0]['attribs']['']['speed']; + } + + + // Get data + function _get_wind() + { + $feed = $this->get_feed(); + return $feed->get_channel_tags(SIMPLEPIE_NAMESPACE_YWEATHER, 'wind'); + } + + function get_wind_chill() + { + $data = $this->_get_wind(); + return $data[0]['attribs']['']['chill']; + } + + function get_wind_direction_degrees() + { + $data = $this->_get_wind(); + return $data[0]['attribs']['']['direction']; + } + + function get_wind_direction() + { + $wind_direction = $this->get_wind_direction_degrees(); + + // Calculations taken from http://jivebay.com/2007/07/25/get-yahoo-weather-with-simplepie/ + if ($wind_direction == 0){ + $wind_direction_converted = "VAR"; + } + else if ($wind_direction > 348.75 || $wind_direction < 11.25) + $wind_direction_converted = "N"; + else if ($wind_direction > 11.25 && $wind_direction < 33.75) + $wind_direction_converted = "NNE"; + else if ($wind_direction > 33.75 && $wind_direction < 56.25) + $wind_direction_converted = "NE"; + else if ($wind_direction > 56.25 && $wind_direction < 78.75) + $wind_direction_converted = "ENE"; + else if ($wind_direction > 78.75 && $wind_direction < 101.25) + $wind_direction_converted = "E"; + else if ($wind_direction > 101.25 && $wind_direction < 123.75) + $wind_direction_converted = "ESE"; + else if ($wind_direction > 123.75 && $wind_direction < 146.25) + $wind_direction_converted = "SE"; + else if ($wind_direction > 146.25 && $wind_direction < 168.75) + $wind_direction_converted = "SSE"; + else if ($wind_direction > 168.75 && $wind_direction < 191.25) + $wind_direction_converted = "S"; + else if ($wind_direction > 191.25 && $wind_direction < 213.75) + $wind_direction_converted = "SSW"; + else if ($wind_direction > 213.75 && $wind_direction < 236.25) + $wind_direction_converted = "SW"; + else if ($wind_direction > 236.25 && $wind_direction < 258.75) + $wind_direction_converted = "WSW"; + else if ($wind_direction > 258.75 && $wind_direction < 281.25) + $wind_direction_converted = "W"; + else if ($wind_direction > 281.25 && $wind_direction < 303.75) + $wind_direction_converted = "WNW"; + else if ($wind_direction > 303.75 && $wind_direction < 326.25) + $wind_direction_converted = "NW"; + else if ($wind_direction > 326.25 && $wind_direction < 348.75) + $wind_direction_converted = "NNW"; + else $wind_direction_converted = null; + + return $wind_direction_converted; + } + + function get_wind_speed() + { + $data = $this->_get_wind(); + return $data[0]['attribs']['']['speed']; + } + + + // Get data + function _get_atmosphere() + { + $feed = $this->get_feed(); + return $feed->get_channel_tags(SIMPLEPIE_NAMESPACE_YWEATHER, 'atmosphere'); + } + + function get_humidity() + { + $data = $this->_get_atmosphere(); + return $data[0]['attribs']['']['humidity']; + } + + function get_visibility() + { + $data = $this->_get_atmosphere(); + return $data[0]['attribs']['']['visibility']; + } + + function get_pressure() + { + $data = $this->_get_atmosphere(); + return $data[0]['attribs']['']['pressure']; + } + + function get_rising() + { + $data = $this->_get_atmosphere(); + return $data[0]['attribs']['']['rising']; + } + + + // Get data + function _get_astronomy() + { + $feed = $this->get_feed(); + return $feed->get_channel_tags(SIMPLEPIE_NAMESPACE_YWEATHER, 'astronomy'); + } + + function get_sunrise() + { + $data = $this->_get_astronomy(); + return $data[0]['attribs']['']['sunrise']; + } + + function get_sunset() + { + $data = $this->_get_astronomy(); + return $data[0]['attribs']['']['sunset']; + } + + + // Get data + function _get_condition() + { + return $this->get_item_tags(SIMPLEPIE_NAMESPACE_YWEATHER, 'condition'); + } + + function get_condition() + { + $data = $this->_get_condition(); + return $data[0]['attribs']['']['text']; + } + + function get_condition_code() + { + $data = $this->_get_condition(); + return $data[0]['attribs']['']['code']; + } + + function get_condition_image() + { + return 'http://l.yimg.com/us.yimg.com/i/us/we/52/' . $this->get_condition_code() . '.gif'; + } + + function get_temperature() + { + $data = $this->_get_condition(); + return $data[0]['attribs']['']['temp']; + } + + function get_last_updated($format = null) + { + $data = $this->_get_condition(); + + if ($format) + { + return date($format, SimplePie_Misc::parse_date($data[0]['attribs']['']['date'])); + } + else + { + return $data[0]['attribs']['']['date']; + } + } + + + // Get data + function _get_forecast() + { + return $this->get_item_tags(SIMPLEPIE_NAMESPACE_YWEATHER, 'forecast'); + } + + function get_forecast($key = 0) + { + $forecasts = $this->get_forecasts(); + if (isset($forecasts[$key])) + { + return $forecasts[$key]; + } + else + { + return null; + } + } + + function get_forecasts() + { + $temp = array(); + $data = $this->_get_forecast(); + foreach ($data as $forecast) + { + $temp[] = new SimplePie_YWeather_Forecast($forecast['attribs']['']['date'], $forecast['attribs']['']['low'], $forecast['attribs']['']['high'], $forecast['attribs']['']['text'], $forecast['attribs']['']['code']); + } + return $temp; + } +} + +class SimplePie_YWeather_Forecast +{ + var $date; + var $low; + var $high; + var $label; + var $code; + + function SimplePie_YWeather_Forecast($date, $low, $high, $label, $code) + { + $this->date = $date; + $this->low = $low; + $this->high = $high; + $this->label = $label; + $this->code = $code; + } + + function get_date($format = null) + { + if ($format) + { + return date($format, SimplePie_Misc::parse_date($this->date)); + } + else + { + return $this->date; + } + } + + function get_low() + { + return $this->low; + } + + function get_high() + { + return $this->high; + } + + function get_label() + { + return $this->label; + } + + function get_code() + { + return $this->code; + } + + function get_image() + { + return 'http://l.yimg.com/us.yimg.com/i/us/we/52/' . $this->get_code() . '.gif'; + } +} + +?> +``` + +## Using the Add-on {#using_the_add-on} + +### Methods {#methods} + +- `get_city()` + The city the weather is for. +- `get_region()` + The region that the city is in. +- `get_state()` + Completely identical to `get_region()`. This might make better sense in the U.S. +- `get_country()` + The country that the city is in. +- `get_units_temp()` + The units used for the temperature. +- `get_units_distance()` + The units used for the distance. +- `get_units_pressure()` + The units used for the pressure. +- `get_units_speed()` + The units used for the speed. +- `get_wind_chill()` + The “feels like” temperature due to wind. +- `get_wind_direction_degrees()` + The degrees (out of a circular 360 degrees) marking the direction of the wind. +- `get_wind_direction()` + The human-understandable name of the direction of the wind. +- `get_wind_speed()` + The wind speed. +- `get_humidity()` + The current humidity. +- `get_visibility()` + The distance of visibility. +- `get_pressure()` + The air pressure. +- `get_rising()` + The rising +- `get_sunrise()` + The time of today's sunrise. +- `get_sunset()` + The time of today's sunset. +- `get_condition()` + Current conditions. +- `get_condition_code()` + Code for current conditions. +- `get_temperature()` + Get the current temperature. +- `get_last_updated($format)` + The timestamp of the last update. The `$format` parameter takes anything that is supported by PHP's function. +- `get_forecast()` + Get a single forecast (typically one of two). Has sub-methods. +- `get_forecasts()` + Get all forecasts (typically two) as an array. Has sub-methods. + +### Sub-Methods for get_forecast() and get_forecasts() {#sub-methods_for_get_forecast_and_get_forecasts} + +- `get_date($format)` + Gets the date of the forecast. The `$format` parameter takes anything that is supported by PHP's function. +- `get_low()` + Gets the “low” temperature of the forecast. +- `get_high()` + Gets the “high” temperature of the forecast. +- `get_label()` + Gets the human-readable description of the forecast. +- `get_code()` + Gets the code of the forecast. + +### Example Code {#example_code} + +```php +set_feed_url('http://weather.yahooapis.com/forecastrss?p=USCA0987'); + +// We're going to override the built-in SimplePie_Item class with the SimplePie_Item_YWeather class. +$feed->set_item_class('SimplePie_Item_YWeather'); + +// Initialize the feed +$feed->init(); + +// Since Y! Weather feeds only have one item, we'll base everything around that. +$weather = $feed->get_item(0); + +// Begin XHTML page +?> + + + Sample Yahoo Weather Page + + + +

get_title(); ?>

+
    +
  • Currently: get_condition(); ?>, get_temperature(); ?>°get_units_temp(); ?> (feels like get_wind_chill(); ?>°get_units_temp(); ?>)
  • +
  • Wind: get_wind_speed(); ?>get_units_speed(); ?>, get_wind_direction(); ?>
  • +
  • Sunrise: get_sunrise(); ?>
  • +
  • Sunset: get_sunset(); ?>
  • +
+ +

Forecast

+
    + get_forecasts() as $forecast): ?> + +
  • get_date('l, F jS'); ?> — Low: get_low(); ?>; High: get_high(); ?>; get_label(); ?>
  • + + +
+ + +``` diff --git a/docs/content/wiki/addons/youtube.md b/docs/content/wiki/addons/youtube.md new file mode 100644 index 000000000..e270d5651 --- /dev/null +++ b/docs/content/wiki/addons/youtube.md @@ -0,0 +1,197 @@ ++++ +title = "YouTube RSS" ++++ + +## The Basics {#the_basics} + + + + + + + + + + + + + + + + + + + + +
AuthorPeet 'Sneaker Peet' Sneekes
Revision1
SimplePie version1.0
Classes ExtendedSimplePie_Item
+ +### About the Add-on {#about_the_add-on} + +This add-on makes it very easy to get access to YouTube's custom RSS tags known as Yahoo Media RSS. Data includes the player, thumbnail, title, author and alternate categories. Also there is a 'is_youtube' available in every item, so you can base format behavior on that. There is a screencast available that shows how a simelar Add-on was created: [Creating the Digg SimplePie Add-on](/tutorials/simplepie_digg_addon.mov "http://simplepie.org/tutorials/simplepie_digg_addon.mov"). + +## Installation {#installation} + +### Instructions {#instructions} + +1. Create a new file called `simplepie_youtube.inc` and place it in the same directory as your `simplepie.inc` file. +2. On the SimplePie-enabled page you want to use this extension on, make sure you include it in the same way that you include `simplepie.inc`. + +### Add-on Source Code {#add-on_source_code} + +```php +get_item_tags(SIMPLEPIE_NAMESPACE_YOUTUBE, 'player'); + return $data[0]['attribs']['']['url']; + } + + // New method + function get_youtube_thumbnail_url() + { + $data = $this->get_item_tags(SIMPLEPIE_NAMESPACE_YOUTUBE, 'thumbnail'); + return $data[0]['attribs']['']['url']; + } + + // New method + function get_youtube_thumbnail_width() + { + $data = $this->get_item_tags(SIMPLEPIE_NAMESPACE_YOUTUBE, 'thumbnail'); + return $data[0]['attribs']['']['width']; + } + + // New method + function get_youtube_thumbnail_height() + { + $data = $this->get_item_tags(SIMPLEPIE_NAMESPACE_YOUTUBE, 'thumbnail'); + return $data[0]['attribs']['']['height']; + } + + // New method + function get_youtube_title() + { + $data = $this->get_item_tags(SIMPLEPIE_NAMESPACE_YOUTUBE, 'title'); + return $data[0]['date']; + } + + // New method + function get_youtube_author() + { + $data = $this->get_item_tags(SIMPLEPIE_NAMESPACE_YOUTUBE, 'credit'); + return $data[0]['data']; + } + + // Overloading the categories method + function get_categories() + { + $categories = array(); + + foreach ((array) $this->get_item_tags(SIMPLEPIE_NAMESPACE_ATOM_10, 'category') as $category) + { + $term = null; + $scheme = null; + $label = null; + if (isset($category['attribs']['']['term'])) + { + $term = $this->sanitize($category['attribs']['']['term'], SIMPLEPIE_CONSTRUCT_TEXT); + } + if (isset($category['attribs']['']['scheme'])) + { + $scheme = $this->sanitize($category['attribs']['']['scheme'], SIMPLEPIE_CONSTRUCT_TEXT); + } + if (isset($category['attribs']['']['label'])) + { + $label = $this->sanitize($category['attribs']['']['label'], SIMPLEPIE_CONSTRUCT_TEXT); + } + $categories[] =& new $this->feed->category_class($term, $scheme, $label); + } + foreach ((array) $this->get_item_tags('', 'category') as $category) + { + $categories[] =& new $this->feed->category_class($this->sanitize($category['data'], SIMPLEPIE_CONSTRUCT_TEXT), null, null); + } + foreach ((array) $this->get_item_tags(SIMPLEPIE_NAMESPACE_DC_11, 'subject') as $category) + { + $exploded_categories = explode(' ', $this->sanitize($category['data'], SIMPLEPIE_CONSTRUCT_TEXT)); + foreach ((array) $exploded_categories as $exploded_category) { + $categories[] =& new $this->feed->category_class($exploded_category, null, null); + } + + } + foreach ((array) $this->get_item_tags(SIMPLEPIE_NAMESPACE_YOUTUBE, 'category') as $category) + { + $exploded_categories = explode(' ', $this->sanitize($category['data'], SIMPLEPIE_CONSTRUCT_TEXT)); + foreach ((array) $exploded_categories as $exploded_category) { + $categories[] =& new $this->feed->category_class($exploded_category, null, null); + } + + } + foreach ((array) $this->get_item_tags(SIMPLEPIE_NAMESPACE_DC_10, 'subject') as $category) + { + $categories[] =& new $this->feed->category_class($this->sanitize($category['data'], SIMPLEPIE_CONSTRUCT_TEXT), null, null); + } + + if (!empty($categories)) + { + return SimplePie_Misc::array_unique($categories); + } + else + { + return null; + } + } +} + +?> +``` + +## Using the Add-on {#using_the_add-on} + +### Methods {#methods} + +- `get_youtube_player_url()` + This returns the player URL (the YouTube page). +- `get_youtube_thumbnail_url()` + This returns the thumbnail URL. +- `get_youtube_thumbnail_width()` + This returns the thumbnail width. +- `get_youtube_thumbnail_height()` + This returns the thumbnail height. +- `get_youtube_title()` + This returns the alternate title of the movie. +- `get_youtube_author()` + This returns the author name of the movie (no email, no, uri). +- `get_categories()` + This is extended to get the tags from the special media namespace and explode them accordingly. + +### Example Code {#example_code} + +N.A. + +### External Link {#external_link} + +The plugin Listed was not working when Playlist Rss feed is suplied to i am modifying the code, its listed here. + +SimplePie Youtube Addon - diff --git a/docs/content/wiki/extensions/ryanparman/_index.md b/docs/content/wiki/extensions/ryanparman/_index.md new file mode 100644 index 000000000..a5ac828b8 --- /dev/null +++ b/docs/content/wiki/extensions/ryanparman/_index.md @@ -0,0 +1,19 @@ ++++ +title = "Ryan Parman" ++++ + +Ryan is the creator, evangelist, and “lesser” developer of the SimplePie project. After Geoffrey came on board in June 2005, Ryan began to shift from a development-focused role to a people-focused role, where he currently works to ensure that people are aware of, and can easily understand and use SimplePie through support, documentation, tutorials, plugins, and evangelism. + +Ryan lives in California USA with his wife and kids, is an OCD [prefectionist](http://www.thinkgeek.com/tshirts/generic/894a/), has a very snarky and sarcastic sense of humor, has an [INFJ personality type](http://www.typelogic.com/infj.html), and can't wait until his 35th birthday so he can run for President of the United States on a pro-“technological progress” platform. + +Besides SimplePie, Ryan is best known for making the [standalone versions of Internet Explorer](http://en.wikipedia.org/wiki/Internet_explorer#.22Standalone.22_Internet_Explorer) available on his website, before handing them over to [Evolt's browser archive](http://browsers.evolt.org/?ie/32bit/standalone). Ryan is also the co-founder of a small web startup in Silicon Valley that will one day change the world as long as they don't get bought out. If they do get bought out, he'll walk away with a boatload of cash which he'll use to work on SimplePie full-time. He is on his way to becoming a Certified Usability Analyst, and is fascinated at how cool [OpenID](http://openid.net/) is. + +You can find out more about Ryan at . + +
+ +--- + +## Index {#index} + +
diff --git a/docs/content/wiki/faq/_index.md b/docs/content/wiki/faq/_index.md new file mode 100644 index 000000000..e642f80a6 --- /dev/null +++ b/docs/content/wiki/faq/_index.md @@ -0,0 +1,55 @@ ++++ +title = "Frequently Asked Questions" ++++ + +These are questions that are frequently asked about SimplePie. For discussions about _how_ to do things, check the [Tips, Tricks, Tutorials, and Screencasts](@/wiki/tutorial/_index.md) page. + +## General {#general} + +- [What is SimplePie?](@/wiki/faq/what_is_simplepie.md) +- [What are RSS and Atom feeds?](@/wiki/faq/what_are_rss_and_atom_feeds.md) +- [Who works on SimplePie?](@/wiki/faq/who_works_on_simplepie.md) +- [What versions of RSS or Atom do you support?](@/wiki/faq/what_versions_of_rss_or_atom_do_you_support.md) +- [Why would I use SimplePie over something else?](@/wiki/faq/why_would_i_use_simplepie_over_something_else.md) +- [Can SimplePie generate new feeds?](@/wiki/faq/can_simplepie_generate_new_feeds.md) +- [Can SimplePie parse raw XML feeds?](@/wiki/faq/can_simplepie_parse_raw_xml_feeds.md) +- [Where can I get some help with SimplePie?](@/wiki/faq/where_can_i_get_some_help_with_simplepie.md) +- [I love SimplePie! Do you take donations?](@/wiki/faq/i_love_simplepie_do_you_take_donations.md) + +## Licensing {#licensing} + +- [Can I include SimplePie with software I'm selling?](@/wiki/faq/can_i_include_simplepie_with_software_i_m_selling.md) + +## Caching {#caching} + +- [Default Cache Location](@/wiki/faq/default_cache_location.md) +- [I'm getting cache error messages](@/wiki/faq/i_m_getting_cache_error_messages.md) +- [How do I do database caching?](@/wiki/faq/how_do_i_do_database_caching.md) +- [How do I change the file permissions for the cache directory to be server-writable?](@/wiki/faq/file_permissions.md) +- [How does SimplePie's caching system work?](@/wiki/faq/how_does_simplepie_s_caching_http_conditional_get_system_work.md) + +## Troubleshooting {#troubleshooting} + +- [Typical Multifeed Gotchas](@/wiki/faq/typical_multifeed_gotchas.md) +- [Known Problematic Feeds](@/wiki/faq/problematic_feeds.md) +- [I'm seeing weird characters](@/wiki/faq/i_m_seeing_weird_characters.md) +- [I'm getting memory leaks!](@/wiki/faq/i_m_getting_memory_leaks.md) + +## How Stuff Works {#how_stuff_works} + +- [Can SimplePie handle raw XML feeds?](@/wiki/faq/can_simplepie_handle_raw_xml_feeds.md) +- [Can SimplePie parse microformats like hAtom?](@/wiki/faq/can_simplepie_parse_microformats_like_hatom.md) +- [Can SimplePie grab data from any element in the feed?](@/wiki/faq/can_simplepie_grab_data_from_any_element_in_the_feed.md) +- [Supported Character Encodings](@/wiki/faq/supported_character_encodings.md) +- [Supported XML Namespaces](@/wiki/faq/supported_xml_namespaces.md) +- [Supported Media Mime Types](@/wiki/faq/supported_media_mime_types.md) + +## See Also {#see_also} + + diff --git a/docs/content/wiki/faq/can_i_include_simplepie_with_software_i_m_selling.md b/docs/content/wiki/faq/can_i_include_simplepie_with_software_i_m_selling.md new file mode 100644 index 000000000..dc1d81894 --- /dev/null +++ b/docs/content/wiki/faq/can_i_include_simplepie_with_software_i_m_selling.md @@ -0,0 +1,13 @@ ++++ +title = "Can I include SimplePie with software I'm selling?" ++++ + +**Short Answer:** Yes + +**Long Answer:** SimplePie 1.0 is licensed under the [BSD license](http://www.opensource.org/licenses/bsd-license.html) where the only restrictions are: + +1. Redistributions must include a copy of the license (which includes the copyright notice). +2. You can't use the names of SimplePie or the SimplePie team to promote your product without explicit permission. +3. Regardless of what happens, we are not responsible for anything that happens as a result of your use of SimplePie. + +So yes, you can use SimplePie in a commercial project. No worries. :) diff --git a/docs/content/wiki/faq/can_simplepie_generate_new_feeds.md b/docs/content/wiki/faq/can_simplepie_generate_new_feeds.md new file mode 100644 index 000000000..4e3221c86 --- /dev/null +++ b/docs/content/wiki/faq/can_simplepie_generate_new_feeds.md @@ -0,0 +1,9 @@ ++++ +title = "Can SimplePie generate new feeds?" ++++ + +Sort of. + +Is there a way to hack together a new feed from SimplePie data? Yes. See [http://simplepie.org/support/viewtopic.php?id=1068](/support/viewtopic.php?id=1068 "http://simplepie.org/support/viewtopic.php?id=1068") + +Is there a clean, programmatic way of generating new feeds? Not yet. In SimplePie 2.0, we're planning to move to PHP's DOM extension, which will make things like this very easy with very little overhead. Until then, SimplePie will continue to strive to be the best way to manage the reading of feeds in PHP. diff --git a/docs/content/wiki/faq/can_simplepie_grab_data_from_any_element_in_the_feed.md b/docs/content/wiki/faq/can_simplepie_grab_data_from_any_element_in_the_feed.md new file mode 100644 index 000000000..5a96e3f2c --- /dev/null +++ b/docs/content/wiki/faq/can_simplepie_grab_data_from_any_element_in_the_feed.md @@ -0,0 +1,7 @@ ++++ +title = "Can SimplePie grab data from any element in the feed?" ++++ + +Beginning with SimplePie 1.0, you can now dig through SimplePie's internal data array to parse out data that isn't formally supported by SimplePie's public API methods. The methods designed for this are [get_channel_tags()](@/wiki/reference/simplepie/get_channel_tags.md), [get_feed_tags()](@/wiki/reference/simplepie/get_feed_tags.md), [get_image_tags()](@/wiki/reference/simplepie/get_image_tags.md), and [get_item_tags()](@/wiki/reference/simplepie_item/get_item_tags.md). + +[This tutorial](@/wiki/tutorial/grab_custom_tags_or_attributes.md) shows an example of how to grab custom data from a feed. diff --git a/docs/content/wiki/faq/can_simplepie_handle_raw_xml_feeds.md b/docs/content/wiki/faq/can_simplepie_handle_raw_xml_feeds.md new file mode 100644 index 000000000..95176f59d --- /dev/null +++ b/docs/content/wiki/faq/can_simplepie_handle_raw_xml_feeds.md @@ -0,0 +1,5 @@ ++++ +title = "Can SimplePie handle raw XML feeds?" ++++ + +SimplePie is designed for the specific purpose of handling RSS and Atom feeds. Although SimplePie's individual classes could be made to work together to parse a raw XML document, this is not what SimplePie was designed to do. For raw XML parsing, we would recommend either PHP5's [SimpleXML](http://php.net/simplexml) extension, or [XMLize](http://hansanderson.com/php/xml/) (which powered the 0.9x releases of SimplePie). diff --git a/docs/content/wiki/faq/can_simplepie_parse_microformats_like_hatom.md b/docs/content/wiki/faq/can_simplepie_parse_microformats_like_hatom.md new file mode 100644 index 000000000..745b5e662 --- /dev/null +++ b/docs/content/wiki/faq/can_simplepie_parse_microformats_like_hatom.md @@ -0,0 +1,9 @@ ++++ +title = "Can SimplePie parse microformats like hAtom?" ++++ + +Although [hAtom](http://microformats.org/wiki/hatom) is designed to allow webpages to be syndicated, parsing RSS and Atom data out of XML documents is fundamentally very different from parsing microformats from HTML/XHTML webpages. + +There have been discussions between the SimplePie team, [Alex Hillman](http://dangerouslyawesome.com/) and [Chris Messina](http://factoryjoe.com/blog/) about bringing microformats to SimplePie, but the limitations of parsing XHTML pages as XML have put those ambitions on hold for the time being. + +There are some things on the roadmap for SimplePie 2 that may allow for things like microformats, but we need to take the time to build the proper tools to enable them instead of just trying to hack stuff together. diff --git a/docs/content/wiki/faq/can_simplepie_parse_raw_xml_feeds.md b/docs/content/wiki/faq/can_simplepie_parse_raw_xml_feeds.md new file mode 100644 index 000000000..f9ad8f614 --- /dev/null +++ b/docs/content/wiki/faq/can_simplepie_parse_raw_xml_feeds.md @@ -0,0 +1,5 @@ ++++ +title = "Can SimplePie parse raw XML feeds?" ++++ + +SimplePie is designed to specifically parse RSS and Atom feeds, not raw XML. I know that there are popular services like [Last.fm](http://last.fm) and [Amazon](http://amazon.com) that offer data as XML web services, but these data feeds aren't RSS or Atom, and therefore SimplePie isn't the right tool for the job. In these cases, we highly recommend a piece of software called [XMLize](http://cvs.moodle.org/moodle/lib/xmlize.php?view=co) that is great at parsing out raw XML in an easy-to-use fashion. diff --git a/docs/content/wiki/faq/default_cache_location.md b/docs/content/wiki/faq/default_cache_location.md new file mode 100644 index 000000000..30e5ac5f8 --- /dev/null +++ b/docs/content/wiki/faq/default_cache_location.md @@ -0,0 +1,15 @@ ++++ +title = "Default Cache Location" ++++ + +There is some misunderstanding about where the default cache location is. + +Here is a rather ridiculous, but accurate explanation of where the cache directory should exist if you are using the default cache location: + +```text +/path/to/your/feed_page.php +/path/to/your/cache/ +/path/to/simplepie/that/is/way/off/someplace/else/autoloader.php +``` + +In short, using `./cache` (dot-slash-cache) means that the cache directory will be relative to the page that's calling SimplePie, not SimplePie itself. diff --git a/docs/content/wiki/faq/file_permissions.md b/docs/content/wiki/faq/file_permissions.md new file mode 100644 index 000000000..e946226a8 --- /dev/null +++ b/docs/content/wiki/faq/file_permissions.md @@ -0,0 +1,37 @@ ++++ +title = "Change the file permissions to be server-writable?" ++++ + +This setting varies from webhost to webhost. In the past, I've used [iPowerWeb](http://ipowerweb.com/), and they required file permissions of `777` in order to be server-writable. Currently, I use [Dreamhost](http://dreamhost.com/r.cgi?skyzyx), and they need permissions to be set to `755` to be server-writable. Again, if you're not sure, either go ask your host or you can try various settings yourself. The three to try are `755`, `775`, or `777`. + +The specific process of _how_ you change your file permissions differs from FTP application to FTP application. + +## Windows {#windows} + +On Windows I use [FlashFXP](http://flashfxp.com), and this is the process I use: + +1. Find the remote file or folder that you want to change the permissions of +2. Right-click on it. +3. Choose _Attributes (CHMOD)_ +4. Try `755`, `775`, and `777` in order until you find one that works. + +Your specific FTP application will most likely be something similar. + +## Mac OS X {#mac_os_x} + +On Mac OS X I use [Transmit](http://panic.com/transmit/), and this is the process I use: + +1. Find the remote file or folder that you want to change the permissions of +2. Right-click (or Ctrl-click for you one-button-mousers) on it +3. Choose _Get Info_. +4. Try `755`, `775`, and `777` in order until you find one that works. + +Your specific FTP application will most likely be something similar. + +## Linux {#linux} + +Once you have the files set up on your Linux box, and assuming you can SSH into the box to access your SimplePie files: + +1. Navigate to the directory above your `cache` directory. +2. Type `chmod -Rf 755 ./cache`. +3. If that doesn't work, try `775`, then `777` in order until you find one that works. diff --git a/docs/content/wiki/faq/how_do_i_do_database_caching.md b/docs/content/wiki/faq/how_do_i_do_database_caching.md new file mode 100644 index 000000000..7ab622708 --- /dev/null +++ b/docs/content/wiki/faq/how_do_i_do_database_caching.md @@ -0,0 +1,22 @@ ++++ +title = "How do I do database caching?" ++++ + +## Official Support {#official_support} + +As of version 1.1, SimplePie only officially supports file system caching. However, we have integrated [support for MySQL caching into the trunk](http://svn.simplepie.org/simplepie/trunk/) which is available via Subversion, and will be included as a standard part of the 1.2 release. + +If you simply want to cache to a database, the aforementioned development build is the way to go. By helping us work out the remaining bugs, we can get official database support integrated sooner. The important part to know is that the database location is set just like a normal URL: + +```php +$feed->set_cache_location('mysql://username:password@hostname:port/database'); +``` + +## Hacking Custom Support {#hacking_custom_support} + +If you're going to hack in your own database support, I would wholeheartedly recommend extending and overloading the [SimplePie_Cache](@/wiki/reference/simplepie_cache/_index.md) class to do it. SimplePie calls on methods in SimplePie_Cache for saving, loading, and checking the freshness of cached data. By overloading this class, you can have SimplePie do all of the things it needs to do while using your custom class. + +Check out the following links for tips on extending and overloading the SimplePie_Cache class: + +- [set_cache_location()](@/wiki/reference/simplepie/set_cache_location.md) +- [set_cache_class()](@/wiki/reference/simplepie/set_cache_class.md) diff --git a/docs/content/wiki/faq/how_does_simplepie_s_caching_http_conditional_get_system_work.md b/docs/content/wiki/faq/how_does_simplepie_s_caching_http_conditional_get_system_work.md new file mode 100644 index 000000000..b552c229f --- /dev/null +++ b/docs/content/wiki/faq/how_does_simplepie_s_caching_http_conditional_get_system_work.md @@ -0,0 +1,38 @@ ++++ +title = "How does SimplePie's caching system work?" ++++ + +SimplePie uses a combination of “HTTP Conditional Get” (hereafter known as “HTTPCG”) and caching for optimal efficiency. You can learn more about _HTTP Conditional Get_ at [The Fishbowl](http://fishbowl.pastiche.org/2002/10/21/http_conditional_get_for_rss_hackers). + +## Process {#process} + +1. You tell SimplePie what feed you want to get and where to cache it. +2. SimplePie looks to see if the feed is already cached: + 1. If the cache is fresh use that. + 2. If there is no cached copy at all, SimplePie will grab and cache the feed. + 3. If the cache is there but it's old (SimplePie defaults to 60 minutes; configurable with [set_cache_duration()](@/wiki/reference/simplepie/set_cache_duration.md)), then SimplePie will ask the feed if it has changed since the last time we grabbed it (this is the HTTPCG part). + 1. If it hasn't changed, we reset the timer on the cache's freshness and keep it for another 60 minutes before checking again. + 2. If the cache _has_ changed, SimplePie dumps the existing cache (since the cache is just a copy of the data object based on the feed), and grabs a new copy of the feed and uses it. + +## About HTTPCG {#about_httpcg} + +HTTPCG is a two-part process: + +1. First, SimplePie knows how to handle HTTPCG-aware feeds. We've got you covered here. +2. Secondly, the software that generates the feed needs to be configured to produce HTTPCG-aware feeds. If the software does not understand HTTPCG, then it effectively negates the benefits. + +We **know** that the following software is HTTPCG-aware: + +- [WordPress](http://wordpress.org) + +We have _absolutely no idea_ if the following software is HTTPCG-aware: FIXME + +- [Drupal](http://drupal.org) +- [Textpattern](http://textpattern.com) +- [Movable Type](http://movabletype.org) + +## Notes {#notes} + +If you want to utilize the HTTPCG support, but don't want a ton of caching, then set the caching down to 1 minute or a fraction thereof. SimplePie's cache will expire after that minute, and then begin asking the server for a fresh copy every minute from them on. + +It takes longer to ask if the feed has changed than it does to simply using the existing (fresh) cache, but it takes less time than fetching the entire feed from scratch. Although most feeds are updated a few times a day, once a day, once a week, or once a month, there are some feeds (such as [Digg.com](http://digg.com)) that update several times an hour. You can set the duration of the cache by using the [set_cache_duration()](@/wiki/reference/simplepie/set_cache_duration.md) configuration option. diff --git a/docs/content/wiki/faq/i_love_simplepie_do_you_take_donations.md b/docs/content/wiki/faq/i_love_simplepie_do_you_take_donations.md new file mode 100644 index 000000000..310693ce8 --- /dev/null +++ b/docs/content/wiki/faq/i_love_simplepie_do_you_take_donations.md @@ -0,0 +1,5 @@ ++++ +title = "I love SimplePie! Do you take donations?" ++++ + +Donations are a tricky thing. We've talked about setting up something with Paypal, but splitting things 50-50 and having the money converted between US Dollars and British Pounds Sterling is far too complicated for the time being. Instead, if you're looking to reward our hard work, please consider buying us something from our Amazon wishlists (see below). It's much easier that way, and getting random presents from strangers throughout the year is like having our birthdays and christmas a few times a year. :) diff --git a/docs/content/wiki/faq/i_m_getting_cache_error_messages.md b/docs/content/wiki/faq/i_m_getting_cache_error_messages.md new file mode 100644 index 000000000..482827b68 --- /dev/null +++ b/docs/content/wiki/faq/i_m_getting_cache_error_messages.md @@ -0,0 +1,27 @@ ++++ +title = "I'm getting cache error messages" ++++ + +The default cache directory is `./cache`. + +## Dot-slash-cache {#dot-slash-cache} + +Dot-slash-cache (`./cache`) means that the cache directory is in a location that is relative to the page calling SimplePie – not `simplepie.inc` itself. Dot-slash-cache is not relative to your root (like slash-cache (`/cache`) is). + +## Default file paths {#default_file_paths} + +As a simple explanation, the (default) cache directory needs to be [writable](@/wiki/faq/file_permissions.md) and in the same folder as your SimplePie-enabled page – not SimplePie itself. For example: + +```text +/path/to/mypage.php +/path/to/cache/ +/path/to/some/ridiculously/long/path/someplace/else/for/simplepie.inc +``` + +## Using a non-default path {#using_a_non-default_path} + +You can use [set_cache_location()](@/wiki/reference/simplepie/set_cache_location.md) to set the cache directory to a different location. This is particularly useful when you have several SimplePie-enabled pages in various locations and you want them all to share the same cache location. + +## WordPress plugin {#wordpress_plugin} + +See [Troubleshooting the SimplePie Plugin for WordPress](@/wiki/plugins/wordpress/simplepie_plugin_for_wordpress/troubleshooting.md). diff --git a/docs/content/wiki/faq/i_m_getting_memory_leaks.md b/docs/content/wiki/faq/i_m_getting_memory_leaks.md new file mode 100644 index 000000000..55c275a02 --- /dev/null +++ b/docs/content/wiki/faq/i_m_getting_memory_leaks.md @@ -0,0 +1,40 @@ ++++ +title = "I'm getting memory leaks!" ++++ + +When processing a large number of feeds, a memory leak can occur causing PHP to run out of memory. This is due to [PHP Bug \#33595](http://bugs.php.net/bug.php?id=33595) where PHP doesn't release memory when making recursive (i.e. self-referential) object calls. The problem is due to recursive references within SimplePie (and PHP's poor handling of said references). This issue affects all versions of PHP earlier than 5.3. + +In SimplePie 1.1 and above, you simply need to call the destructor method before unsetting the `$feed` and `$item` variables: + +```php +set_feed_url($url); + $feed->init(); + $feed->handle_content_type(); + $item = $feed->get_item(0); + + $feed->__destruct(); // Do what PHP should be doing on it's own. + unset($item); + unset($feed); + + echo "Memory usage: " . number_format(memory_get_usage()); +} +?> +``` + +## Other Notes {#other_notes} + +- SimplePie 1.2 has made many improvements in memory handling, so make sure you're running SimplePie 1.2 or newer to improve memory consumption. +- This PHP bug has been fixed in PHP 5.3. Upgrade if you can. +- Retrieving feeds from the cache uses less memory than pulling them down and parsing them in the first place. +- Pull fewer feeds all at once. This can be accomplished with a cron job and careful planning. Pull a smaller set of feeds first so that they can cache. Then pull another set. Then another. Let your pages pull directly from the cache, which uses less memory. +- If you have control over your php.ini file, allocate more system memory to PHP. This will give you more buffer. +- Many shared hosting plans have limited memory available to PHP per user anyway. You can't expect to parse 1000 feeds with 8 MB of RAM allocated. Take this into account. Perhaps a VPS would be better, or perhaps a cloud computing service like [Amazon EC2](http://aws.amazon.com/ec2/) or [Rackspace Cloud Servers](http://www.rackspacecloud.com/cloud_hosting_products/servers). + +## See Also {#see_also} + +- +- diff --git a/docs/content/wiki/faq/i_m_seeing_weird_characters.md b/docs/content/wiki/faq/i_m_seeing_weird_characters.md new file mode 100644 index 000000000..3aed991ad --- /dev/null +++ b/docs/content/wiki/faq/i_m_seeing_weird_characters.md @@ -0,0 +1,33 @@ ++++ +title = "I'm seeing weird characters" ++++ + +This happens when you have a character set (aka “character encoding”) mismatch between SimplePie's output and the settings for your page. + +By default, SimplePie outputs everything as UTF-8. To avoid display issues, you should also ensure that your web page is set to display as UTF-8. We chose UTF-8 as a default because it is a character set that contains a large number of characters from a variety of writing systems (Roman, Japanese, Chinese, Korean, Arabic, Hebrew, etc.) + +## How to fix it {#how_to_fix_it} + +### Change your page to UTF-8 {#change_your_page_to_utf-8} + +It's important that your page and SimplePie's content have the same settings, regardless of what they are. It is preferred and highly recommended that you ensure that your page is set to use UTF-8. There are three ways to fix this issue: + +1. Set a `` tag inside the `` section of your page that looks like the following: + + ```html + + ``` + +2. Use SimplePie's [handle_content_type()](@/wiki/reference/simplepie/handle_content_type.md) method to set the correct HTTP headers for you. This will also obey any [set_output_encoding()](@/wiki/reference/simplepie/set_output_encoding.md) setting you may have. This method only works if certain rules are followed so check out the [handle_content_type()](@/wiki/reference/simplepie/handle_content_type.md) documentation page for more details. + +3. Use PHP's built-in [header()](http://php.net/header) function to set the correct HTTP headers. + + ```php + header('Content-type:text/html; charset=utf-8'); + ``` + +### Change SimplePie's output to match your page {#change_simplepie_s_output_to_match_your_page} + +This should only be used by people who understand the potential drawbacks of not using a Unicode-based character set. If this sounds like gibberish to you, don't use this method. This is not the recommended solution because of potential complexities. + +1. Change SimplePie's output settings to match those of your page using [set_output_encoding()](@/wiki/reference/simplepie/set_output_encoding.md) in conjunction with [handle_content_type()](@/wiki/reference/simplepie/handle_content_type.md). For example, if your page is set to use `Windows-1252` and you want to maintain that, you can set SimplePie to output content as `Windows-1252` as well. See the [set_output_encoding()](@/wiki/reference/simplepie/set_output_encoding.md) documentation page for usage details. diff --git a/docs/content/wiki/faq/problematic_feeds.md b/docs/content/wiki/faq/problematic_feeds.md new file mode 100644 index 000000000..b568fcc6b --- /dev/null +++ b/docs/content/wiki/faq/problematic_feeds.md @@ -0,0 +1,67 @@ ++++ +title = "Known Problematic Feeds" ++++ + +This is a listing of all major services with feeds that SimplePie has a problem with for one reason or another, including any workarounds or status that we're aware of. Please keep this listing in alphabetical order. + +## Blogspot {#blogspot} + +### Problem {#problem} + +Some images and links and such are being displayed as plain text because the `<` and `>` brackets are being stripped from the output. + +### What's Happening? {#what_s_happening} + +As of early November 2008, a change was made by the Blogspot team that changed how feeds are created. This isn't a big deal in-and-of itself as the changes still produced valid feeds. But what causes the angle brackets in these Blogspot feeds to vanish is a known bug in the `libxml` extension (versions 2.7.0 – 2.7.2) where certain entities are stripped by the XML parsing extension itself – outside of SimplePie. SimplePie uses the `libxml` extension for parsing XML because of it's PHP 4.x support. You can read more in the following threads: + +- +- + +### Solution {#solution} + +A patch was applied to SimplePie 1.1.2 that resolved this issue for hosts with `libxml` 2.7.0 and 2.7.1. Shortly afterwards, it was discovered that this same issue also appeared to be affecting hosts with `libxml` 2.7.2 as well. A new patch is currently being tested for this last group of users. This issue should not affect users with previous versions of `libxml`. + +## FeedBurner {#feedburner} + +### Problem {#problem1} + +FeedBurner feeds are returning old/outdated versions of feeds that do not contain the latest items. + +### What's Happening? {#what_s_happening1} + +Because too many SimplePie users started fetching FeedBurner feeds with caching disabled, FeedBurner's Operations Team has decided to block any SimplePie user that isn't using caching. Unfortunately their logic is a bit backwards. They require SimplePie to send a request using an `ETag` and `LastModified` value ([How does SimplePie's caching system work?](@/wiki/faq/how_does_simplepie_s_caching_http_conditional_get_system_work.md)) before they'll send back up-to-date content. The problem is that SimplePie sends this back once it's already been cached (to ask if it has changed). It's a “cart before the horse before the cart” kind of situation. You can read more in the following threads: + +- +- +- + +### Solution/Workaround {#solutionworkaround} + +We've been told that one or more of the following methods might work. + +- Fetching the “raw XML” version of the FeedBurner feed by appending `?format=xml` to the end of the feed URL. +- Changing SimplePie's user-agent string to something that doesn't have the word “SimplePie” in it. Use [set_useragent()](@/wiki/reference/simplepie/set_useragent.md) to change the user-agent string. +- Another solution that I've heard works is forcing SimplePie to send `ETag` and `LastModified` headers before we even have them by sending fake data in the correct format. We've not yet verified this method, nor have we fleshed it out, but it might be worth rummaging around inside the [SimplePie_File](@/wiki/reference/simplepie_file/_index.md) class. + +## Twitter {#twitter} + +### Problem {#problem2} + +Twitter feeds are just fine the first time they're loaded and cached, but are missing some/all items when the cache expires and SimplePie tries to re-fetch the feed. + +### What's Happening? {#what_s_happening2} + +”[How does SimplePie's caching system work?](@/wiki/faq/how_does_simplepie_s_caching_http_conditional_get_system_work.md)” describes the process that SimplePie uses to ask the server if a feed has been updated or not, before re-downloading the whole thing. [This process is described in detail](http://fishbowl.pastiche.org/2002/10/21/http_conditional_get_for_rss_hackers/), and is used by several feed readers and other types of software as the standard by which the process should be followed. Over the summer '08, a bug was introduced in Twitter's feed system where when SimplePie asks Twitter if an updated feed is available, Twitter incorrectly responds with a feed with no items in it. + +### Solution/Workaround {#solutionworkaround1} + +Since Twitter gets confused when we send the Last-Modified header (and they've still not responded to my bug report), we need to comment out the portion that sends back the header. Look for this chunk of code: + +```php +if (isset($this->data['headers']['last-modified'])) +{ + $headers['if-modified-since'] = $this->data['headers']['last-modified']; +} +``` + +In SimplePie 1.1.3, it starts around line 1587. Later 1.1.x versions will probably be nearby, so look for the code instead of explicitly trying to comment out specific lines. diff --git a/docs/content/wiki/faq/supported_character_encodings.md b/docs/content/wiki/faq/supported_character_encodings.md new file mode 100644 index 000000000..345987d50 --- /dev/null +++ b/docs/content/wiki/faq/supported_character_encodings.md @@ -0,0 +1,831 @@ ++++ +title = "Supported Character Encodings" ++++ + +SimplePie has integrated support for PHP's mbstring and iconv extensions. We've formally added support for every single character encoding we could find, and at this point, character set translation is more limited by your server setup than by SimplePie. SimplePie supports _hundreds_ of character sets, and this is a complete listing of those that we expect to work out of the box (assuming your server/webhost supports it): + +1. `437` +2. `850` +3. `851` +4. `852` +5. `855` +6. `857` +7. `860` +8. `861` +9. `862` +10. `863` +11. `865` +12. `866` +13. `869` +14. `904` +15. `ADOBE-STANDARD-ENCODING` +16. `ADOBE-SYMBOL-ENCODING` +17. `AMI-1251` +18. `AMI1251` +19. `AMIGA-1251` +20. `AMIGA1251` +21. `ANSI_X3.4-1968` +22. `ANSI_X3.4-1986` +23. `ANSI_X3.110-1983` +24. `ARABIC` +25. `ARABIC7` +26. `ASCII` +27. `ASMO-708` +28. `ASMO_449` +29. `BIG5` +30. `BIG5-HKSCS` +31. `BOCU-1` +32. `BRF` +33. `BS_4730` +34. `BS_VIEWDATA` +35. `CA` +36. `CCSID00858` +37. `CCSID00924` +38. `CCSID01140` +39. `CCSID01141` +40. `CCSID01142` +41. `CCSID01143` +42. `CCSID01144` +43. `CCSID01145` +44. `CCSID01146` +45. `CCSID01147` +46. `CCSID01148` +47. `CCSID01149` +48. `CESU-8` +49. `CHINESE` +50. `CN` +51. `CP-AR` +52. `CP-GR` +53. `CP-IS` +54. `CP00858` +55. `CP00924` +56. `CP01140` +57. `CP01141` +58. `CP01142` +59. `CP01143` +60. `CP01144` +61. `CP01145` +62. `CP01146` +63. `CP01147` +64. `CP01148` +65. `CP01149` +66. `CP037` +67. `CP038` +68. `CP154` +69. `CP273` +70. `CP274` +71. `CP275` +72. `CP278` +73. `CP280` +74. `CP281` +75. `CP284` +76. `CP285` +77. `CP290` +78. `CP297` +79. `CP367` +80. `CP420` +81. `CP423` +82. `CP424` +83. `CP437` +84. `CP500` +85. `CP775` +86. `CP819` +87. `CP850` +88. `CP851` +89. `CP852` +90. `CP855` +91. `CP857` +92. `CP860` +93. `CP861` +94. `CP862` +95. `CP863` +96. `CP864` +97. `CP865` +98. `CP866` +99. `CP868` +100. `CP869` +101. `CP870` +102. `CP871` +103. `CP880` +104. `CP891` +105. `CP903` +106. `CP904` +107. `CP905` +108. `CP918` +109. `CP936` +110. `CP1026` +111. `CSA7-1` +112. `CSA7-2` +113. `CSADOBESTANDARDENCODING` +114. `CSASCII` +115. `CSA_T500-1983` +116. `CSA_Z243.4-1985-1` +117. `CSA_Z243.4-1985-2` +118. `CSA_Z243.4-1985-GR` +119. `CSBIG5` +120. `CSBOCU-1` +121. `CSBRF` +122. `CSCESU-8` +123. `CSDECMCS` +124. `CSDKUS` +125. `CSEBCDICATDEA` +126. `CSEBCDICCAFR` +127. `CSEBCDICDKNO` +128. `CSEBCDICDKNOA` +129. `CSEBCDICES` +130. `CSEBCDICESA` +131. `CSEBCDICESS` +132. `CSEBCDICFISE` +133. `CSEBCDICFISEA` +134. `CSEBCDICFR` +135. `CSEBCDICIT` +136. `CSEBCDICPT` +137. `CSEBCDICUK` +138. `CSEBCDICUS` +139. `CSEUCFIXWIDJAPANESE` +140. `CSEUCKR` +141. `CSEUCPKDFMTJAPANESE` +142. `CSGB2312` +143. `CSHALFWIDTHKATAKANA` +144. `CSHPDESKTOP` +145. `CSHPLEGAL` +146. `CSHPMATH8` +147. `CSHPPIFONT` +148. `CSHPPSMATH` +149. `CSHPROMAN8` +150. `CSIBBM904` +151. `CSIBM037` +152. `CSIBM038` +153. `CSIBM273` +154. `CSIBM274` +155. `CSIBM275` +156. `CSIBM277` +157. `CSIBM278` +158. `CSIBM280` +159. `CSIBM281` +160. `CSIBM284` +161. `CSIBM285` +162. `CSIBM290` +163. `CSIBM297` +164. `CSIBM420` +165. `CSIBM423` +166. `CSIBM424` +167. `CSIBM500` +168. `CSIBM851` +169. `CSIBM855` +170. `CSIBM857` +171. `CSIBM860` +172. `CSIBM861` +173. `CSIBM863` +174. `CSIBM864` +175. `CSIBM865` +176. `CSIBM866` +177. `CSIBM868` +178. `CSIBM869` +179. `CSIBM870` +180. `CSIBM871` +181. `CSIBM880` +182. `CSIBM891` +183. `CSIBM903` +184. `CSIBM905` +185. `CSIBM918` +186. `CSIBM1026` +187. `CSIBMEBCDICATDE` +188. `CSIBMSYMBOLS` +189. `CSIBMTHAI` +190. `CSINVARIANT` +191. `CSISO2INTLREFVERSION` +192. `CSISO4UNITEDKINGDOM` +193. `CSISO10SWEDISH` +194. `CSISO11SWEDISHFORNAMES` +195. `CSISO13JISC6220JP` +196. `CSISO14JISC6220RO` +197. `CSISO15ITALIAN` +198. `CSISO16PORTUGUESE` +199. `CSISO17SPANISH` +200. `CSISO18GREEK7OLD` +201. `CSISO19LATINGREEK` +202. `CSISO21GERMAN` +203. `CSISO25FRENCH` +204. `CSISO27LATINGREEK1` +205. `CSISO42JISC62261978` +206. `CSISO47BSVIEWDATA` +207. `CSISO49INIS` +208. `CSISO50INIS8` +209. `CSISO51INISCYRILLIC` +210. `CSISO57GB1988` +211. `CSISO58GB231280` +212. `CSISO60DANISHNORWEGIAN` +213. `CSISO60NORWEGIAN1` +214. `CSISO61NORWEGIAN2` +215. `CSISO69FRENCH` +216. `CSISO70VIDEOTEXSUPP1` +217. `CSISO84PORTUGUESE2` +218. `CSISO85SPANISH2` +219. `CSISO86HUNGARIAN` +220. `CSISO87JISX0208` +221. `CSISO88GREEK7` +222. `CSISO89ASMO449` +223. `CSISO90` +224. `CSISO91JISC62291984A` +225. `CSISO92JISC62991984B` +226. `CSISO93JIS62291984BADD` +227. `CSISO94JIS62291984HAND` +228. `CSISO95JIS62291984HANDADD` +229. `CSISO96JISC62291984KANA` +230. `CSISO99NAPLPS` +231. `CSISO102T617BIT` +232. `CSISO103T618BIT` +233. `CSISO111ECMACYRILLIC` +234. `CSISO121CANADIAN1` +235. `CSISO122CANADIAN2` +236. `CSISO123CSAZ24341985GR` +237. `CSISO128T101G2` +238. `CSISO139CSN369103` +239. `CSISO141JUSIB1002` +240. `CSISO143IECP271` +241. `CSISO146SERBIAN` +242. `CSISO147MACEDONIAN` +243. `CSISO150` +244. `CSISO150GREEKCCITT` +245. `CSISO151CUBA` +246. `CSISO153GOST1976874` +247. `CSISO158LAP` +248. `CSISO159JISX02121990` +249. `CSISO646BASIC1983` +250. `CSISO646DANISH` +251. `CSISO2022JP` +252. `CSISO2022JP2` +253. `CSISO2022KR` +254. `CSISO2033` +255. `CSISO5427CYRILLIC` +256. `CSISO5428GREEK` +257. `CSISO6937ADD` +258. `CSISO8859SUPP` +259. `CSISO10367BOX` +260. `CSISO10646UTF1` +261. `CSISO88596E` +262. `CSISO88596I` +263. `CSISO88598E` +264. `CSISO88598I` +265. `CSISO115481` +266. `CSISOLATIN1` +267. `CSISOLATIN2` +268. `CSISOLATIN3` +269. `CSISOLATIN4` +270. `CSISOLATIN5` +271. `CSISOLATIN6` +272. `CSISOLATINARABIC` +273. `CSISOLATINCYRILLIC` +274. `CSISOLATINGREEK` +275. `CSISOLATINHEBREW` +276. `CSISOTEXTCOMM` +277. `CSJISENCODING` +278. `CSKOI8R` +279. `CSKSC5636` +280. `CSKSC56011987` +281. `CSKZ1048` +282. `CSMACINTOSH` +283. `CSMICROSOFTPUBLISHING` +284. `CSMNEM` +285. `CSMNEMONIC` +286. `CSNATSDANO` +287. `CSNATSDANOADD` +288. `CSNATSSEFI` +289. `CSNATSSEFIADD` +290. `CSN_369103` +291. `CSPC8CODEPAGE437` +292. `CSPC8DANISHNORWEGIAN` +293. `CSPC8TURKISH` +294. `CSPC775BALTIC` +295. `CSPC850MULTILINGUAL` +296. `CSPC862LATINHEBREW` +297. `CSPCP852` +298. `CSPTCP154` +299. `CSSHIFTJIS` +300. `CSTSCII` +301. `CSUCS4` +302. `CSUNICODE` +303. `CSUNICODE11` +304. `CSUNICODE11UTF7` +305. `CSUNICODEASCII` +306. `CSUNICODEIBM1261` +307. `CSUNICODEIBM1264` +308. `CSUNICODEIBM1265` +309. `CSUNICODEIBM1268` +310. `CSUNICODEIBM1276` +311. `CSUNICODELATIN1` +312. `CSUNKNOWN8BIT` +313. `CSUSDK` +314. `CSVENTURAINTERNATIONAL` +315. `CSVENTURAMATH` +316. `CSVENTURAUS` +317. `CSVIQR` +318. `CSVISCII` +319. `CSWINDOWS30LATIN1` +320. `CSWINDOWS31J` +321. `CSWINDOWS31LATIN1` +322. `CSWINDOWS31LATIN2` +323. `CSWINDOWS31LATIN5` +324. `CUBA` +325. `CYRILLIC` +326. `CYRILLIC-ASIAN` +327. `DE` +328. `DEC` +329. `DEC-MCS` +330. `DIN_66003` +331. `DK` +332. `DK-US` +333. `DS2089` +334. `DS_2089` +335. `E13B` +336. `EBCDIC-AT-DE` +337. `EBCDIC-AT-DE-A` +338. `EBCDIC-BE` +339. `EBCDIC-BR` +340. `EBCDIC-CA-FR` +341. `EBCDIC-CP-AR1` +342. `EBCDIC-CP-AR2` +343. `EBCDIC-CP-BE` +344. `EBCDIC-CP-CA` +345. `EBCDIC-CP-CH` +346. `EBCDIC-CP-DK` +347. `EBCDIC-CP-ES` +348. `EBCDIC-CP-FI` +349. `EBCDIC-CP-FR` +350. `EBCDIC-CP-GB` +351. `EBCDIC-CP-GR` +352. `EBCDIC-CP-HE` +353. `EBCDIC-CP-IS` +354. `EBCDIC-CP-IT` +355. `EBCDIC-CP-NL` +356. `EBCDIC-CP-NO` +357. `EBCDIC-CP-ROECE` +358. `EBCDIC-CP-SE` +359. `EBCDIC-CP-TR` +360. `EBCDIC-CP-US` +361. `EBCDIC-CP-WT` +362. `EBCDIC-CP-YU` +363. `EBCDIC-CYRILLIC` +364. `EBCDIC-DE-273+EURO` +365. `EBCDIC-DK-277+EURO` +366. `EBCDIC-DK-NO` +367. `EBCDIC-DK-NO-A` +368. `EBCDIC-ES` +369. `EBCDIC-ES-284+EURO` +370. `EBCDIC-ES-A` +371. `EBCDIC-ES-S` +372. `EBCDIC-FI-278+EURO` +373. `EBCDIC-FI-SE` +374. `EBCDIC-FI-SE-A` +375. `EBCDIC-FR` +376. `EBCDIC-FR-297+EURO` +377. `EBCDIC-GB-285+EURO` +378. `EBCDIC-INT` +379. `EBCDIC-INTERNATIONAL-500+EURO` +380. `EBCDIC-IS-871+EURO` +381. `EBCDIC-IT` +382. `EBCDIC-IT-280+EURO` +383. `EBCDIC-JP-E` +384. `EBCDIC-JP-KANA` +385. `EBCDIC-LATIN9–EURO` +386. `EBCDIC-NO-277+EURO` +387. `EBCDIC-PT` +388. `EBCDIC-SE-278+EURO` +389. `EBCDIC-UK` +390. `EBCDIC-US` +391. `EBCDIC-US-37+EURO` +392. `ECMA-114` +393. `ECMA-118` +394. `ECMA-CYRILLIC` +395. `ELOT_928` +396. `ES` +397. `ES2` +398. `EUC-JP` +399. `EUC-KR` +400. `EXTENDED_UNIX_CODE_FIXED_WIDTH_FOR_JAPANESE` +401. `EXTENDED_UNIX_CODE_PACKED_FORMAT_FOR_JAPANESE` +402. `FI` +403. `FR` +404. `GB` +405. `GB2312` +406. `GB18030` +407. `GBK` +408. `GB_1988-80` +409. `GB_2312-80` +410. `GOST_19768-74` +411. `GREEK` +412. `GREEK-CCITT` +413. `GREEK7` +414. `GREEK7-OLD` +415. `GREEK8` +416. `HEBREW` +417. `HP-DESKTOP` +418. `HP-LEGAL` +419. `HP-MATH8` +420. `HP-PI-FONT` +421. `HP-ROMAN8` +422. `HU` +423. `HZ-GB-2312` +424. `IBM-1047` +425. `IBM-SYMBOLS` +426. `IBM-THAI` +427. `IBM00858` +428. `IBM00924` +429. `IBM01140` +430. `IBM01141` +431. `IBM01142` +432. `IBM01143` +433. `IBM01144` +434. `IBM01145` +435. `IBM01146` +436. `IBM01147` +437. `IBM01148` +438. `IBM01149` +439. `IBM037` +440. `IBM038` +441. `IBM273` +442. `IBM274` +443. `IBM275` +444. `IBM277` +445. `IBM278` +446. `IBM280` +447. `IBM281` +448. `IBM284` +449. `IBM285` +450. `IBM290` +451. `IBM297` +452. `IBM367` +453. `IBM420` +454. `IBM423` +455. `IBM424` +456. `IBM437` +457. `IBM500` +458. `IBM775` +459. `IBM819` +460. `IBM850` +461. `IBM851` +462. `IBM852` +463. `IBM855` +464. `IBM857` +465. `IBM860` +466. `IBM861` +467. `IBM862` +468. `IBM863` +469. `IBM864` +470. `IBM865` +471. `IBM866` +472. `IBM868` +473. `IBM869` +474. `IBM870` +475. `IBM871` +476. `IBM880` +477. `IBM891` +478. `IBM903` +479. `IBM904` +480. `IBM905` +481. `IBM918` +482. `IBM1026` +483. `IBM1047` +484. `IEC_P27-1` +485. `INIS` +486. `INIS-8` +487. `INIS-CYRILLIC` +488. `INVARIANT` +489. `IRV` +490. `ISO-2022-CN` +491. `ISO-2022-CN-EXT` +492. `ISO-2022-JP` +493. `ISO-2022-JP-2` +494. `ISO-2022-KR` +495. `ISO-8859-1` +496. `ISO-8859-1-WINDOWS-3.0-LATIN-1` +497. `ISO-8859-1-WINDOWS-3.1-LATIN-1` +498. `ISO-8859-2` +499. `ISO-8859-2-WINDOWS-LATIN-2` +500. `ISO-8859-3` +501. `ISO-8859-4` +502. `ISO-8859-5` +503. `ISO-8859-6` +504. `ISO-8859-6-E` +505. `ISO-8859-6-I` +506. `ISO-8859-7` +507. `ISO-8859-8` +508. `ISO-8859-8-E` +509. `ISO-8859-8-I` +510. `ISO-8859-9` +511. `ISO-8859-9-WINDOWS-LATIN-5` +512. `ISO-8859-10` +513. `ISO-8859-13` +514. `ISO-8859-14` +515. `ISO-8859-15` +516. `ISO-8859-16` +517. `ISO-10646` +518. `ISO-10646-J-1` +519. `ISO-10646-UCS-2` +520. `ISO-10646-UCS-4` +521. `ISO-10646-UCS-BASIC` +522. `ISO-10646-UNICODE-LATIN1` +523. `ISO-10646-UTF-1` +524. `ISO-11548-1` +525. `ISO-CELTIC` +526. `ISO-IR-2` +527. `ISO-IR-4` +528. `ISO-IR-6` +529. `ISO-IR-8-1` +530. `ISO-IR-8-2` +531. `ISO-IR-9-1` +532. `ISO-IR-9-2` +533. `ISO-IR-10` +534. `ISO-IR-11` +535. `ISO-IR-13` +536. `ISO-IR-14` +537. `ISO-IR-15` +538. `ISO-IR-16` +539. `ISO-IR-17` +540. `ISO-IR-18` +541. `ISO-IR-19` +542. `ISO-IR-21` +543. `ISO-IR-25` +544. `ISO-IR-27` +545. `ISO-IR-37` +546. `ISO-IR-42` +547. `ISO-IR-47` +548. `ISO-IR-49` +549. `ISO-IR-50` +550. `ISO-IR-51` +551. `ISO-IR-54` +552. `ISO-IR-55` +553. `ISO-IR-57` +554. `ISO-IR-58` +555. `ISO-IR-60` +556. `ISO-IR-61` +557. `ISO-IR-69` +558. `ISO-IR-70` +559. `ISO-IR-84` +560. `ISO-IR-85` +561. `ISO-IR-86` +562. `ISO-IR-87` +563. `ISO-IR-88` +564. `ISO-IR-89` +565. `ISO-IR-90` +566. `ISO-IR-91` +567. `ISO-IR-92` +568. `ISO-IR-93` +569. `ISO-IR-94` +570. `ISO-IR-95` +571. `ISO-IR-96` +572. `ISO-IR-98` +573. `ISO-IR-99` +574. `ISO-IR-100` +575. `ISO-IR-101` +576. `ISO-IR-102` +577. `ISO-IR-103` +578. `ISO-IR-109` +579. `ISO-IR-110` +580. `ISO-IR-111` +581. `ISO-IR-121` +582. `ISO-IR-122` +583. `ISO-IR-123` +584. `ISO-IR-126` +585. `ISO-IR-127` +586. `ISO-IR-128` +587. `ISO-IR-138` +588. `ISO-IR-139` +589. `ISO-IR-141` +590. `ISO-IR-142` +591. `ISO-IR-143` +592. `ISO-IR-144` +593. `ISO-IR-146` +594. `ISO-IR-147` +595. `ISO-IR-148` +596. `ISO-IR-149` +597. `ISO-IR-150` +598. `ISO-IR-151` +599. `ISO-IR-152` +600. `ISO-IR-153` +601. `ISO-IR-154` +602. `ISO-IR-155` +603. `ISO-IR-157` +604. `ISO-IR-158` +605. `ISO-IR-159` +606. `ISO-IR-199` +607. `ISO-IR-226` +608. `ISO-UNICODE-IBM-1261` +609. `ISO-UNICODE-IBM-1264` +610. `ISO-UNICODE-IBM-1265` +611. `ISO-UNICODE-IBM-1268` +612. `ISO-UNICODE-IBM-1276` +613. `ISO646-CA` +614. `ISO646-CA2` +615. `ISO646-CN` +616. `ISO646-CU` +617. `ISO646-DE` +618. `ISO646-DK` +619. `ISO646-ES` +620. `ISO646-ES2` +621. `ISO646-FI` +622. `ISO646-FR` +623. `ISO646-FR1` +624. `ISO646-GB` +625. `ISO646-HU` +626. `ISO646-IT` +627. `ISO646-JP` +628. `ISO646-JP-OCR-B` +629. `ISO646-KR` +630. `ISO646-NO` +631. `ISO646-NO2` +632. `ISO646-PT` +633. `ISO646-PT2` +634. `ISO646-SE` +635. `ISO646-SE2` +636. `ISO646-US` +637. `ISO646-YU` +638. `ISO5427CYRILLIC1981` +639. `ISO_646.BASIC:1983` +640. `ISO_646.IRV:1983` +641. `ISO_646.IRV:1991` +642. `ISO_2033-1983` +643. `ISO_5427` +644. `ISO_5427:1981` +645. `ISO_5428:1980` +646. `ISO_6937-2-25` +647. `ISO_6937-2-ADD` +648. `ISO_8859-1` +649. `ISO_8859-1:1987` +650. `ISO_8859-2` +651. `ISO_8859-2:1987` +652. `ISO_8859-3` +653. `ISO_8859-3:1988` +654. `ISO_8859-4` +655. `ISO_8859-4:1988` +656. `ISO_8859-5` +657. `ISO_8859-5:1988` +658. `ISO_8859-6` +659. `ISO_8859-6-E` +660. `ISO_8859-6-I` +661. `ISO_8859-6:1987` +662. `ISO_8859-7` +663. `ISO_8859-7:1987` +664. `ISO_8859-8` +665. `ISO_8859-8-E` +666. `ISO_8859-8-I` +667. `ISO_8859-8:1988` +668. `ISO_8859-9` +669. `ISO_8859-9:1989` +670. `ISO_8859-10:1992` +671. `ISO_8859-14` +672. `ISO_8859-14:1998` +673. `ISO_8859-15` +674. `ISO_8859-16` +675. `ISO_8859-16:2001` +676. `ISO_8859-SUPP` +677. `ISO_9036` +678. `ISO_10367-BOX` +679. `ISO_11548-1` +680. `ISO_TR_11548-1` +681. `IT` +682. `JIS_C6220-1969` +683. `JIS_C6220-1969-JP` +684. `JIS_C6220-1969-RO` +685. `JIS_C6226-1978` +686. `JIS_C6226-1983` +687. `JIS_C6229-1984-A` +688. `JIS_C6229-1984-B` +689. `JIS_C6229-1984-B-ADD` +690. `JIS_C6229-1984-HAND` +691. `JIS_C6229-1984-HAND-ADD` +692. `JIS_C6229-1984-KANA` +693. `JIS_ENCODING` +694. `JIS_X0201` +695. `JIS_X0208-1983` +696. `JIS_X0212-1990` +697. `JP` +698. `JP-OCR-A` +699. `JP-OCR-B` +700. `JP-OCR-B-ADD` +701. `JP-OCR-HAND` +702. `JP-OCR-HAND-ADD` +703. `JS` +704. `JUS_I.B1.002` +705. `JUS_I.B1.003-MAC` +706. `JUS_I.B1.003-SERB` +707. `KATAKANA` +708. `KOI7-SWITCHED` +709. `KOI8-E` +710. `KOI8-R` +711. `KOI8-U` +712. `KOREAN` +713. `KSC5636` +714. `KSC_5601` +715. `KS_C_5601-1987` +716. `KS_C_5601-1989` +717. `KZ-1048` +718. `L1` +719. `L2` +720. `L3` +721. `L4` +722. `L5` +723. `L6` +724. `L8` +725. `L10` +726. `LAP` +727. `LATIN-9` +728. `LATIN-GREEK` +729. `LATIN-GREEK-1` +730. `LATIN-LAP` +731. `LATIN1` +732. `LATIN1-2-5` +733. `LATIN2` +734. `LATIN3` +735. `LATIN4` +736. `LATIN5` +737. `LATIN6` +738. `LATIN8` +739. `LATIN10` +740. `MAC` +741. `MACEDONIAN` +742. `MACINTOSH` +743. `MICROSOFT-PUBLISHING` +744. `MNEM` +745. `MNEMONIC` +746. `MS936` +747. `MSZ_7795.3` +748. `MS_KANJI` +749. `NAPLPS` +750. `NATS-DANO` +751. `NATS-DANO-ADD` +752. `NATS-SEFI` +753. `NATS-SEFI-ADD` +754. `NC_NC00-10:81` +755. `NF_Z_62-010` +756. `NF_Z_62-010_(1973)` +757. `NO` +758. `NO2` +759. `NS_4551-1` +760. `NS_4551-2` +761. `OSD_EBCDIC_DF03_IRV` +762. `OSD_EBCDIC_DF04_1` +763. `OSD_EBCDIC_DF04_15` +764. `PC-MULTILINGUAL-850+EURO` +765. `PC8-DANISH-NORWEGIAN` +766. `PC8-TURKISH` +767. `PT` +768. `PT2` +769. `PT154` +770. `PTCP154` +771. `R8` +772. `REF` +773. `RK1048` +774. `ROMAN8` +775. `SCSU` +776. `SE` +777. `SE2` +778. `SEN_850200_B` +779. `SEN_850200_C` +780. `SERBIAN` +781. `SHIFT_JIS` +782. `STRK1048-2002` +783. `ST_SEV_358-88` +784. `T.61` +785. `T.61-7BIT` +786. `T.61-8BIT` +787. `T.101-G2` +788. `TSCII` +789. `UK` +790. `UNICODE-1-1` +791. `UNICODE-1-1-UTF-7` +792. `UNKNOWN-8BIT` +793. `US` +794. `US-ASCII` +795. `US-DK` +796. `UTF-7` +797. `UTF-8` +798. `UTF-16` +799. `UTF-16BE` +800. `UTF-16LE` +801. `UTF-32` +802. `UTF-32BE` +803. `UTF-32LE` +804. `VENTURA-INTERNATIONAL` +805. `VENTURA-MATH` +806. `VENTURA-US` +807. `VIDEOTEX-SUPPL` +808. `VIQR` +809. `VISCII` +810. `WINDOWS-31J` +811. `WINDOWS-936` +812. `WINDOWS-1250` +813. `WINDOWS-1251` +814. `WINDOWS-1252` +815. `WINDOWS-1253` +816. `WINDOWS-1254` +817. `WINDOWS-1255` +818. `WINDOWS-1256` +819. `WINDOWS-1257` +820. `WINDOWS-1258` +821. `X0201` +822. `X0201-7` +823. `X0208` +824. `X0212` +825. `YU` diff --git a/docs/content/wiki/faq/supported_media_mime_types.md b/docs/content/wiki/faq/supported_media_mime_types.md new file mode 100644 index 000000000..18b883c45 --- /dev/null +++ b/docs/content/wiki/faq/supported_media_mime_types.md @@ -0,0 +1,48 @@ ++++ +title = "Supported Media Mime Types" ++++ + +SimplePie 1.0 has improved support for embedding more media mime types. It also introduces some new methods like `get_handler()` which tells you which handler SimplePie would recommend you use when writing your own embed code, and `get_real_type()` which tells you what the mime type _actually_ is based on the file extension of the media file and some other variables. + +## Mime Types {#mime_types} + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
HandlerMime Types
Flashapplication/x-shockwave-flash, application/futuresplash
Flash Mediavideo/flv, video/x-flv
MP3audio/mp3, audio/x-mp3, audio/mpeg, audio/x-mpeg
Odeo(MP3's from the Odeo service)
QuickTimeaudio/3gpp, audio/3gpp2, audio/aac, audio/x-aac, audio/aiff, audio/x-aiff, audio/mid, audio/midi, audio/x-midi, audio/mp4, audio/m4a, audio/x-m4a, audio/wav, audio/x-wav, video/3gpp, video/3gpp2, video/m4v, video/x-m4v, video/mp4, video/mpeg, video/x-mpeg, video/quicktime, video/sd-video
Windows Mediaapplication/asx, application/x-mplayer2, audio/x-ms-wma, audio/x-ms-wax, video/x-ms-asf-plugin, video/x-ms-asf, video/x-ms-wm, video/x-ms-wmv, video/x-ms-wvx
+ +## How does this apply? {#how_does_this_apply} + +`get_real_type()` will check the file extension and return one of these listed mime types if its file extension (via `get_extension()`) is known to map to it (the right-side of the chart). `get_handler()` will return a value corresponding to the recommended handler for this particular mime type (the left side of the chart). + +The variable here is whether or not the path to `mediaplayer.swf` has been given to the `mediaplayer` option in `embed()` and `native_embed()`. If so, Flash Media support will be enabled, and MP3's will be handled by the Flash Media handler as well. If not, Flash Media support is disabled, and MP3's will be handled by QuickTime instead. diff --git a/docs/content/wiki/faq/supported_xml_namespaces.md b/docs/content/wiki/faq/supported_xml_namespaces.md new file mode 100644 index 000000000..5d1b82279 --- /dev/null +++ b/docs/content/wiki/faq/supported_xml_namespaces.md @@ -0,0 +1,84 @@ ++++ +title = "Supported XML Namespaces" ++++ + +SimplePie 1.0 introduces four new methods for getting data from _ANY_ element or attribute in the feed: [get_channel_tags()](@/wiki/reference/simplepie/get_channel_tags.md), [get_feed_tags()](@/wiki/reference/simplepie/get_feed_tags.md), [get_image_tags()](@/wiki/reference/simplepie/get_image_tags.md), and [get_item_tags()](@/wiki/reference/simplepie_item/get_item_tags.md). + +These are the methods that SimplePie uses internally, and they rely on the use of namespace URLs to find these elements. Because a number of these namespace URLs are used frequently by SimplePie, we've set up the following constants to make namespace stuff simpler. If you want to gain access to a namespaced element that isn't on this list, you can manually type (or copy-paste) the namespace URL. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
ConstantNamespace URL
SIMPLEPIE_NAMESPACE_XMLhttp://www.w3.org/XML/1998/namespace
SIMPLEPIE_NAMESPACE_ATOM_10http://www.w3.org/2005/Atom
SIMPLEPIE_NAMESPACE_ATOM_03http://purl.org/atom/ns#
SIMPLEPIE_NAMESPACE_RDFhttp://www.w3.org/1999/02/22-rdf-syntax-ns#
SIMPLEPIE_NAMESPACE_RSS_090http://my.netscape.com/rdf/simple/0.9/
SIMPLEPIE_NAMESPACE_RSS_10http://purl.org/rss/1.0/
SIMPLEPIE_NAMESPACE_RSS_10_MODULES_CONTENThttp://purl.org/rss/1.0/modules/content/
SIMPLEPIE_NAMESPACE_RSS_20(Blank. RSS 2.0 doesn't have a namespace.*)
SIMPLEPIE_NAMESPACE_DC_10http://purl.org/dc/elements/1.0/
SIMPLEPIE_NAMESPACE_DC_11http://purl.org/dc/elements/1.1/
SIMPLEPIE_NAMESPACE_W3C_BASIC_GEOhttp://www.w3.org/2003/01/geo/wgs84_pos#
SIMPLEPIE_NAMESPACE_GEORSShttp://www.georss.org/georss
SIMPLEPIE_NAMESPACE_MEDIARSShttp://search.yahoo.com/mrss/ Note
SIMPLEPIE_NAMESPACE_MEDIARSS_WRONGhttp://search.yahoo.com/mrss Note
SIMPLEPIE_NAMESPACE_ITUNEShttp://www.itunes.com/dtds/podcast-1.0.dtd
SIMPLEPIE_NAMESPACE_XHTMLhttp://www.w3.org/1999/xhtml
+ +\* Available in SimplePie 1.1.2 and later. Available in [trunk and 1.1.x branch builds](http://svn.simplepie.org/simplepie/) from r972. diff --git a/docs/content/wiki/faq/that_s_an_odd_logo._what_is_it.md b/docs/content/wiki/faq/that_s_an_odd_logo._what_is_it.md new file mode 100644 index 000000000..04b36f3b8 --- /dev/null +++ b/docs/content/wiki/faq/that_s_an_odd_logo._what_is_it.md @@ -0,0 +1,5 @@ ++++ +title = "That's an odd logo. What is it?" ++++ + +On Ryan's birthday in November 2005 (shortly before we launched the website), Ryan's co-workers decided to decorate his cubicle workspace with streamers and balloons. A month later, all that was left was a single green balloon that had been very slowly leaking air for the past 32 days laying on its side. Ryan had been trying to come up with an idea for a logo for SimplePie, and happened to glance at the last remaining balloon. He liked the shape, and as long as he removed the part of the balloon where you tie the bottom to keep the air in, it might be something cool. So he launched Macromedia Fireworks 2004, and an hour later he had the SimplePie logo. diff --git a/docs/content/wiki/faq/typical_multifeed_gotchas.md b/docs/content/wiki/faq/typical_multifeed_gotchas.md new file mode 100644 index 000000000..3f3844c12 --- /dev/null +++ b/docs/content/wiki/faq/typical_multifeed_gotchas.md @@ -0,0 +1,70 @@ ++++ +title = "Typical Multifeed Gotchas" ++++ + +Being able to merge the items from multiple feeds together simply and easily is really cool, but it also comes with some caveats that you need to watch out for. + +## Sorting by date {#sorting_by_date} + +One of the (very) common recurring threads we get in support is “I'm using Multifeeds, but the feeds are sorting by \[insert blame here\] instead of the date!” SimplePie IS, in fact, sorting by date, but in 100% of cases, a person is trying to merge in one or more feeds where the items don't have a date stamp. + +### What's going on? {#what_s_going_on} + +Internally, SimplePie uses PHP's [usort()](http://php.net/usort) function to compare the values of `$item→get_date('U')` for each item. If an item has a non-existent or invalid date stamp, SimplePie doesn't bother to fire the sorting function because the data isn't going to come out right anyway. + +### Solution {#solution} + +Remove the feed (or feeds) that doesn't have dates for all of its items from the list of feeds to process. + +A [bug report has been filed](http://bugs.simplepie.org/issues/show/34) to add additional logic to sort these unsorted items to the end of the array instead of the beginning. This is the ideal solution, but it doesn't exist yet. Add a patch to the aforementioned bug report if you take the time to do this yourself. + +## Missing data from $feed {#missing_data_from_feed} + +You're merging multiple feeds together and you try to access data from `$feed→get_title()` or `$feed→get_description()` but there doesn't seem to be anything. It's because when you're merging multiple feeds together, there is no single feed for $feed to contain data for. + +### What's going on? {#what_s_going_on1} + +Let's say that you're merging together 3 feeds, each with their own titles, descriptions, etc. We'll use Digg, Slashdot, and Apple as examples. Digg has its own title, so does Slashdot, and so does Apple. If there are 3 competing pieces of data, what should `$feed→get_title()` return? + +Well, put simply, SimplePie has no idea which data to show for `$feed→anything()`, so it returns `null`. + +### Solution {#solution1} + +The safest (and most consistent) way to always ensure that you can access feed-level data from within the context of an item (e.g. such as inside a `for()` or `foreach()` loop), is to access the item's parent data using `get_feed()`. + +```php +// Only works when you're handling a single feed. Has no value when using Multifeeds. +$feed->get_title(); + +// Always works, assuming you've defined $item as a feed item (such as in a foreach() loop). +$item->get_feed()->get_title(); +``` + +`$item→get_feed()` is a reference to that item's parent `$feed` object, which contains all of the data that is available for that feed. Use this instead of a plain `$feed` when you're using Multifeeds. + +
+ +As an example of something stupid and ridiculous that you _could_, but _should_ never do: + +
+ +```php +echo $feed->get_item(0)->get_feed()->get_item(0)->get_feed()->get_item(0)->get_feed()->get_item(0)->get_feed()->get_item(0)->get_feed()->get_item(0)->get_feed()->get_title(); +``` + +It's also always good practice to check to see if a method has a value before trying to output it: + +```php +if ($feed->get_title()) +{ + echo $feed->get_title(); +} +``` + +### Other Notes {#other_notes} + +For reasons outlined above, `$feed→data` doesn't exist, so if you're used to checking for it before doing anything, it'll return `false` every time. + +## Memory Leaks/Out of Memory Errors {#memory_leaksout_of_memory_errors} + +This issue is explained in greater detail here: [I'm getting memory leaks!](@/wiki/faq/i_m_getting_memory_leaks.md). diff --git a/docs/content/wiki/faq/what_are_rss_and_atom_feeds.md b/docs/content/wiki/faq/what_are_rss_and_atom_feeds.md new file mode 100644 index 000000000..159d7daf4 --- /dev/null +++ b/docs/content/wiki/faq/what_are_rss_and_atom_feeds.md @@ -0,0 +1,51 @@ ++++ +title = "What are RSS and Atom feeds?" ++++ + +
+ +The following text is a series of excerpts taken from . We have archived it here just in case something happens to the source article. We have not used the images from the source article, and we're not promoting SixApart, so the contents of this page have been modified to describe the former images and remove “salesy” talk to focus on the description and use of feeds. + +
+ +## About Feeds {#about_feeds} + +Many websites have links labeled “XML” or “RSS” or “Atom”. All of these are ways of saying that you can find out about updates to that site without having to visit the site in your web browser. + +This feature is referred to as “syndication” or “aggregation”. Sometimes it's just called “subscribing”. And these days, instead of one of these words, lots of sites will use a little orange button. The standard one looks like what you see in the right-hand side of your address bar in [Firefox](http://getfirefox.com), [Opera](http://opera.com), or [Internet Explorer 7](http://microsoft.com/ie) (an orange square with what looks like radio signals). If you have the [Safari](http://www.apple.com/safari/) web browser, you'll see a blue “RSS”. It's also common to see buttons that say “RSS” or “XML”. + +All these links and buttons mean the same thing: The site you're viewing has a feed available. + +We've provided a little bit of information here on how you can get easily get started reading feeds for free. We'll also tell you how you can publish a feed of your own, if you'd like. + +## Getting Started {#getting_started} + +### Who Publishes Feeds? {#who_publishes_feeds} + +Anyone that publishes on the web can publish a feed. Blogs (or weblogs) were one of the first types of sites to offer feeds. But most major newspapers and news websites, hobbyist sites, and even stores like Amazon.com all offer feeds, too. + +### What Do I Need? {#what_do_i_need} + +Just like when you want to watch a video clip or listen to music on the web, you need a “player” of some kind to subscribe to feeds. Good news: Most of these tools are free, and there are many to choose from, so you can find the one that best suits you. + +The “player” for a feed is called a feed reader. This tool lets you subscribe to any feeds you want, checks automatically to see when they're updated, and then displays the updates for you as they arrive. + +Feed readers can run on your computer or you can sign up to use a feed-reader that runs on the web. If you use one of the web-based readers, you can access your feeds from anywhere you go, just by signing into the website that manages your feeds. If you use a feed reading program that installs on your computer, your feeds can be stored for you even if you're not connected to the Internet. + +### What Feed Reader Should I Use? {#what_feed_reader_should_i_use} + +Here's a list some of the most popular tools our customers have told us they like. + +On the web: If you don't want to have to install a program, many people choose [My Yahoo!](http://my.yahoo.com), [iGoogle](http://igoogle.com), or [My MSN](http://my.msn.com) to read feeds right within the home page that their browser starts in. Other providers of web-based feed readers include [Rojo](http://rojo.com), [Bloglines](http://bloglines.com), [Attensa Online](http://attensa.com), or [NewsGator Online](http://newsgator.com). All of the web-based services are free. + +On your computer: If you want a feed reading program that runs on your own computer, there are a few options. Anyone using the Firefox web browser has support for feeds built-in, and Microsoft Windows users have support for feeds in Internet Explorer 7. Apple Macintosh users can also use the built-in support for feeds in the Safari web browser. + +If you want a separate program to read feeds, you can use [FeedDemon](http://www.newsgator.com/Individuals/FeedDemon/Default.aspx) or NewsGator for Microsoft Outlook or Attensa for Outlook if you're on Microsoft Windows. Both tools let you switch between these programs and the web-based reader at any time. If you're on a Macintosh running OS X, the most popular feed reader is [NetNewsWire](http://www.newsgator.com/Individuals/NewsGatorOnline/Default.aspx), which can also connect to the web-based services. + +## Subscribing to Feeds {#subscribing_to_feeds} + +Once you've got a tool to read feeds, you'll want to find some feeds worth reading. Many of the tools listed above provide some built-in feeds to get you started. Then, as you visit other sites on the web, you can keep your eyes open for links that say XML or RSS or Syndication, or for that orange button up above, and add the feeds you find interesting. + +## Publishing a Feed {#publishing_a_feed} + +If you're taken by the convenience and power of being able to deliver information regularly right to the screens of anyone who's interested, you might want to publish your own feed. The good news is, it's surprisingly easy. diff --git a/docs/content/wiki/faq/what_is_simplepie.md b/docs/content/wiki/faq/what_is_simplepie.md new file mode 100644 index 000000000..068756596 --- /dev/null +++ b/docs/content/wiki/faq/what_is_simplepie.md @@ -0,0 +1,56 @@ ++++ +title = "What is SimplePie?" ++++ + +
+ +**This page talks about the core SimplePie library, not necessarily our other SimplePie-based products and services.** + +
+ +## Setting your expectations properly {#setting_your_expectations_properly} + +### SimplePie IS: {#simplepie_is} + +- A code library, written in PHP, intended to make it ridiculously easy for people to manage. +- An easy to use API that handles all of the dirty work when it comes to fetching, caching, parsing, normalizing data structures between formats, handling character encoding translation, and sanitizing the resulting data. +- Free (i.e. no cost) open-source software, with a license more liberal than the GPL, that was built and improved over the course of years by people who have a passion for good software that makes people's lives easier +- Well documented with a complete API reference, tutorials and screencasts for popularly requested uses, and details about the inner workings of the library. +- Always looking for more people to contribute to the project in terms of code, patches, support, and evangelism. +- A solution where we've worked very hard to keep the bar as low as possible for people who want to use it, but at the same time you MUST have a fundamental grasp of the PHP language. If you don't know PHP, and are interested in getting a handle on the basics, we recommend PHP For the Absolute Beginner (begin with parts 1-3, then move onto parts 4-7 making sure you actually \*understand\* them). + +### SimplePie is NOT: {#simplepie_is_not} + +- A magical solution that will just “do it for you.” +- A copy-paste, “no code required” solution. +- A full-blown feed aggregator like Google Reader, NewsGator Online, Bloglines, and the like. + +If you don't know PHP, or are not willing to learn PHP, SimplePie (the core API library) is NOT the right solution for you. + +However, SimplePie integrates well with a variety of blogging systems, wikis, forums, and code frameworks. Many of these third-party software packages are more end-user focused, and require less (if any) actual programming. Check out our [SimplePie Plugins and Integration](@/wiki/plugins/_index.md) page to see if SimplePie integrates with software you already use, in a way that doesn't require much programming (if at all). + +## SimplePie's Goals {#simplepie_s_goals} + +### Be as fast as possible {#be_as_fast_as_possible} + +Speed is a big focus for us. The longer something takes, the less likely people are to use it – whether it's the developers using the library, or the end-users using the developer's product. The faster it all runs, the better it is for everybody. + +We don't claim to be _the fastest_ (although we certainly strive to be), but rather as fast as possible while balancing the needs of the other three goals. + +### Be as easy to use as possible {#be_as_easy_to_use_as_possible} + +Just like with speed, the harder something is to use, the less likely people are to use it. For us this extends not only to the programming API, but also to our website, our documentation, our code samples, our support forums, and every other aspect of this project. We strive to be as user-friendly as possible in _every_ aspect of working with us. + +Specifically in terms of the programming API, we've spent a lot of time thinking about the most _useful_ ways to handle blogs, news sites, and podcasts. We've chosen our function and method names very carefully, the order of the parameters very carefully, and made it a point to choose the most intelligent and/or useful defaults so that SimplePie will be “just right” out-of-the-box for 80% of our developers. For the other 20%, we have numerous configuration options available designed to allow you to fine-tune and hack away to your heart's content. + +### Be as compatible as possible {#be_as_compatible_as_possible} + +Just like HTML, the world of RSS and Atom is an imperfect one. If we only handled perfect feeds, we would be completely worthless because we wouldn't be able to handle most of the world's feeds. At the same time, we saw how bad the HTML world got when Microsoft Internet Explorer began accepting anything that even remotely resembled HTML – no matter how horrible or incorrect it was. We don't want to repeat Microsoft's mistake, but at the same time, we can't expect perfection from feeds. + +There's also a common misunderstanding among those who build tools for RSS: If a feed is imperfect and we throw an error without even _trying_, we're not punishing the feed publisher (like we want to)… we're punishing the person who just wants to read their favorite blog posts or news items. Why do we insist on punishing these people? + +So what do we do? SimplePie makes a _reasonable_ effort to correct imperfections in the feed while processing it. If it's too broken, we have no choice but to fail it. But if we can put forth reasonable effort and have it work, The only time when this is an issue is when it's a matter of compatibility vs. standards compliance. + +### Be as standards compliant as possible {#be_as_standards_compliant_as_possible} + +Much time has been spent on reading specification documents and writing unit tests to ensure that we live up to the goals that the standards bodies have set for us. Whether it's any of the 8 or so versions of RSS, or the two major versions of Atom, RFC 822, ISO 8601, RFC 3023 (and more), and we're focused on delivering the most standards-compliant feed-related software available. diff --git a/docs/content/wiki/faq/what_versions_of_rss_or_atom_do_you_support.md b/docs/content/wiki/faq/what_versions_of_rss_or_atom_do_you_support.md new file mode 100644 index 000000000..96fa7c063 --- /dev/null +++ b/docs/content/wiki/faq/what_versions_of_rss_or_atom_do_you_support.md @@ -0,0 +1,26 @@ ++++ +title = "What versions of RSS or Atom do you support?" ++++ + +We support all major versions of RSS and Atom. Specifically: + +- RSS 0.90 +- RSS 0.91 (Netscape) +- RSS 0.91 (Userland) +- RSS 0.92 +- RSS 1.0 +- RSS 2.0 +- Atom 0.3 +- Atom 1.0 + +Additionally, we support a number of namespaced elements out of the box: + +- Dublin Core 1.0 +- Dublin Core 1.1 +- GeoRSS +- iTunes RSS 1.0 (mostly complete) +- Media RSS 1.1.1 +- RSS 1.0 Content Module +- W3C WGS84 Basic Geo +- XML 1.0 +- XHTML 1.0 diff --git a/docs/content/wiki/faq/where_can_i_get_some_help_with_simplepie.md b/docs/content/wiki/faq/where_can_i_get_some_help_with_simplepie.md new file mode 100644 index 000000000..2cc008619 --- /dev/null +++ b/docs/content/wiki/faq/where_can_i_get_some_help_with_simplepie.md @@ -0,0 +1,12 @@ ++++ +title = "Where can I get some help with SimplePie?" ++++ + +There are a few places to get some good, solid help with SimplePie: + +1. **[API Reference](@/wiki/reference/_index.md)** + The API reference is a good place to start if you don't feel like talking to anybody. :) There's a lot of specific information packed into this section, so if you want to know if you can do something with SimplePie, a perusal over the methods listed here will help answer a number of questions that tend to come up. +2. **[Support Forums](/support/ "http://simplepie.org/support/")** + If you come to the support forums to ask a question, please take a moment to search first. Many of the questions that get asked have already been answered at one point or another. If you can't find what you're looking for, post your question to the forums using the [Posting Guidelines](/support/viewtopic.php?id=3 "http://simplepie.org/support/viewtopic.php?id=3"). The SimplePie developers check the forums multiple times a week, but we're not on all day, every day. :) There are also a number of other forum members who know what they're talking about. Look for the **SimplePie Superstar** under their names. +3. **SimplePie IRC Channel** + If you're looking to chat LIVE with the developers of SimplePie, open up your IRC client and visit `#simplepie` on freenode.net. We've usually got our IRC clients running in the background while we're working, so if you pop in please say hello. :) diff --git a/docs/content/wiki/faq/who_works_on_simplepie.md b/docs/content/wiki/faq/who_works_on_simplepie.md new file mode 100644 index 000000000..4148772a2 --- /dev/null +++ b/docs/content/wiki/faq/who_works_on_simplepie.md @@ -0,0 +1,5 @@ ++++ +title = "Who works on SimplePie?" ++++ + +Check out [SimplePie Credits](@/wiki/misc/credits.md). diff --git a/docs/content/wiki/faq/why_would_i_use_simplepie_over_something_else.md b/docs/content/wiki/faq/why_would_i_use_simplepie_over_something_else.md new file mode 100644 index 000000000..a3387233d --- /dev/null +++ b/docs/content/wiki/faq/why_would_i_use_simplepie_over_something_else.md @@ -0,0 +1,61 @@ ++++ +title = "Why would I use SimplePie over something else?" ++++ + +We've spent a tremendous amount of time trying to make SimplePie the best software in its field. Feed syndication is also significantly more complex than some people seem to understand. + +There are a variety of competing products out there, but we'll just focus on the ones that we hear the most about. + +## MagpieRSS {#magpierss} + +Most frequently, we get compared to the current market leader: [MagpieRSS](http://magpierss.sf.net). MagpieRSS came around about 2 years before SimplePie, and was far and away the best thing at the time (for PHP). Ryan has also exchanged emails with Kellan (of MagpieRSS) two or three times in the past, and he seems like a nice enough guy. Nothing here is intended to reflect poorly on him, however, if you pit MagpieRSS against SimplePie, SimplePie has a number of distinct advantages: + +- **SimplePie is being actively developed.** + The most recent development release of MagpieRSS was 2.0-alpha-alpha-alpha back in October 2006. The last stable release was in November 2005. +- **SimplePie doesn't require you to understand the XML guts.** + MagpieRSS offers you ONLY a data array based on the guts. +- **SimplePie fully supports AND normalizes all documented versions of RSS, and all popular versions of Atom.** + MagpieRSS has very limited Atom support, and doesn't do much normalizing. +- **SimplePie can correctly parse Tim Bray's Atom 1.0 feed.** + MagpieRSS doesn't come close. +- **SimplePie has a well-trafficked support forum, public SVN repository, and a TON of unit tests.** + Does ANYONE know what's going on with MagpieRSS? +- **SimplePie sanitizes the content of the feed to ensure safety against malicious feeds.** + MagpieRSS doesn't implement any kind of data sanitization. +- **SimplePie has a less restrictive license than MagpieRSS.** + MagpieRSS is licensed under the GPL which is more restrictive than SimplePie's BSD licensing. +- **SimplePie is contained in a single file for easier portability.** + MagpieRSS comes in 4 separate files making it harder to move around without issues. +- **SimplePie supports the detection and embedding of audio and video podcasts including the popular Media RSS and iTunes RSS elements.** + MagpieRSS has no explicit enclosure support. +- **SimplePie supports per-feed settings.** + The current MagpieRSS release version does not. [Magpie 2.0-alpha-alpha-alpha](http://magpiephp.com/blog/2006/10/17/magpie-20-alpha-alpha-alpha/) does. + +On the flip side, MagpieRSS is a bit faster than SimplePie – that's the trade off. MagpieRSS is faster because it doesn't do as much. According to our internal tests MagpieRSS 0.72 rocks the pants off of everything, but good luck finding out if your data is good. [Magpie 2.0-alpha-alpha-alpha](http://magpiephp.com/blog/2006/10/17/magpie-20-alpha-alpha-alpha/) does more in the way of flexibility and is therefore slower than MagpieRSS 0.72. SimplePie 1.0 already implements pretty much everything that is mentioned in the MP 2.0 blog posting already. In addition, SimplePie does more data sanitization to make sure your data is good to go, and we believe that better data is worth the cost against pure speed. If you don't care about sanitization and just want pure speed from SimplePie, you can use SimplePie's `set_stupidly_fast()` configuration option to skip the cleaning and achieve speeds that are on-par with Magpie 2.0. Our internal tests show SimplePie 1.0 and Magpie 2.0 clocking in neck-and-neck on a variety of feeds. + +## SimpleXML {#simplexml} + +[SimpleXML](http://php.net/simplexml) is a PHP5 extension that makes it easy to parse XML documents. Unfortunately, RSS and Atom feeds are rarely, if ever, correct XML documents. It doesn't do anything other than parse, and it doesn't normalize anything. SimplePie wails on this one: + +- **SimplePie intelligently switches between fsockopen() to cURL to fetch feed data.** + SimpleXML can't retrieve files. +- **SimplePie utilizes HTTP Conditional Get and data serialization for an optimal caching system.** + SimpleXML can't cache. +- **SimplePie can locate feeds for websites with its ultra liberal feed locator.** + SimpleXML can't locate anything. +- **SimplePie can parse imperfect RSS and Atom feeds.** + SimpleXML can't parse anything that isn't perfect XML. +- **SimplePie sanitizes the content of the feed to ensure safety against malicious feeds.** + SimpleXML can't sanitize anything. +- **SimplePie works well under PHP 4.3 and newer.** + SimpleXML requires PHP5 to function. + +Need I go on? + +## Universal Feed Parser {#universal_feed_parser} + +[Universal Feed Parser](http://feedparser.org) is pure awesomeness… but it's written in Python so if you're writing a site in PHP it isn't that much use. + +## Google AJAX Feed API {#google_ajax_feed_api} + +- [Why should I use SimplePie Live! over something else?](@/wiki/live/faq/why_should_i_use_simplepie_live_over_something_else.md) diff --git a/docs/content/wiki/future/_index.md b/docs/content/wiki/future/_index.md new file mode 100644 index 000000000..27dcf5d56 --- /dev/null +++ b/docs/content/wiki/future/_index.md @@ -0,0 +1,39 @@ ++++ +title = "The Future Of SimplePie" ++++ + +This page provides an outline regarding the general future direction of SimplePie. More information regarding SP2 can be found [here](@/wiki/sp2/_index.md). + +## System Requirements {#system_requirements} + +### SimplePie 1.1/1.2 {#simplepie_1112} + +- SHOULD support PHP 4.3 +- MUST support PHP 4.4 and 5.0–5.2 +- MUST require at most the PCRE and XML extensions + +### SimplePie 1.5 {#simplepie_15} + +- MUST support PHP 5.0–5.2 and 6.0 + +### SimplePie 2.0 {#simplepie_20} + +- SHOULD support PHP 5.2 +- MUST support PHP 6.0 + +## Coding Standards {#coding_standards} + +### SimplePie 1.1/1.2 {#simplepie_11121} + +- MUST run without any errors/warnings/notices under E_ALL on PHP 4.4 and 5.2 + +### SimplePie 1.5 {#simplepie_151} + +- MUST run without any errors/warnings/notices under E_ALL on PHP 5.2 +- SHOULD run without any notices under E_STRICT on PHP 5.2 + +### SimplePie 2.0 {#simplepie_201} + +- SHOULD run without any errors/warnings/notices under E_ALL | E_STRICT on PHP 5.2 +- MUST run without any errors/warnings/notices under E_ALL | E_STRICT on PHP 5.3 +- MUST run without any errors/warnings/notices under E_ALL on PHP 6.0 diff --git a/docs/content/wiki/ideas/_index.md b/docs/content/wiki/ideas/_index.md new file mode 100644 index 000000000..1a7c24359 --- /dev/null +++ b/docs/content/wiki/ideas/_index.md @@ -0,0 +1,88 @@ ++++ +title = "Sites that have integrated SimplePie" ++++ + +## Sites that have integrated SimplePie {#sites_that_have_integrated_simplepie} + +This may not be a complete list. + +- [Ino Reader](http://www.inoreader.com/) Light and fast RSS reader, inspired by. Supports Web Notifications. Also available in [Chrome Webstore](http://bit.ly/10ALLjH). +- [Metaskim](http://www.metaskim.com/) A user-friendly news aggregator powered by SimplePie with several unique features. +- [infonary](http://www.infonary.com/) A news aggregator powered by Simple Pie and Wordpress to display topic wise news on a single page. This site also uses simple pie to display aggregated search results. +- [Ars Grafik](http://www.arsgrafik.com/) Using SimplePie on WordPress to populate dynamic image navigation between sites within the Ars Network. +- [Alpine Camp Blogs](http://www.alpinecamp.com/blogs/category/summer-camp-staff/frequently-asked-questions-summer-camp-staff/) We used it with wordpress to dynamically populate FAQ, and info popUp's based on the feeds wordpress generates. +- [BordspelMania](http://www.bordspelmania.eu/): Dutch boardgaming platform where multiple external blogs are integrated in the home page +- [Buzzear](http://buzzear.net/): Buzzear is a blog directory and aggregator focused on the spanish speaking blogosphere. +- [Feed on Feeds](http://feedonfeeds.com/weblog/2006/07/28/putting-the-band-back-together/): FoF is an online feed aggregator that you install on your own webhost. New version coming soon! +- [BukoPie](http://rebelpixel.com/archives/2006/08/13/bukopie/): A new feed reader for WordPress allowing WP users to have their own XML feed reader right in the WordPress dash/admin pages. Uses SimplePie. +- [MonkeyChow](http://sourceforge.net/projects/monkeychow/): Branched from “Feed on Feeds”, and is a web-based aggregator. +- [Moonmoon](http://moonmoon.org/): Moonmoon is a basic feed aggregator system that can pull multiple feeds into a single page. +- [Ixprim CMS](http://ixprim-cms.org/): Ixprim is a content management system that has integrated SimplePie as it's core feed parser. +- [DokuWiki](https://www.dokuwiki.org/devel:simplepie): The latest development version of DokuWiki uses SimplePie for it's built-in feed aggregation. +- [RSS to PDF Newspaper](http://fivefilters.org/pdf-newspaper/): Free software (open source) project to turn RSS feeds into a PDF newspaper. +- [Full-Text RSS](http://fivefilters.org/content-only/): Converts any feed into a full-text RSS feed +- [Wildlife Photography Blog](http://wildlife-photography-blog.com/): Uses SimplePie (via a cron job) to aggregate and cache a growing number of wildlife photography blogs. +- [www.techforumnetwork.com](http://techforumnetwork.com/): A technology forum aggregator build on SimplePie. +- [www.zipforums.com](http://zipforums.com/): A top technology questions aggregator built using SimplePie and wordpress. + +## Tools and Apps that are powered by SimplePie {#tools_and_apps_that_are_powered_by_simplepie} + +This may not be a complete list. + +- [Pheedr.net](http://pheedr.net/): A minimalist, no-nonsense, RSS reader designed for reading. +- [WiFiDog](http://dev.wifidog.org/): The Wifidog project is an open source captive portal solution. It was designed primarily for wireless community groups, but caters to various other business models as well. +- [Manuela Hoffmann's lifestream](http://www.manuela-hoffmann.info/stream/): Manuela Hoffmann realisiert Grafik- und Webdesign-Projekte. Auf manuela-hoffmann.info erfahren Sie mehr über Kompetenzen und Leistungen, Projekte und Referenzen. +- [Adam's Lifestream](http://adam.stiskala.id.au/lifestream/): A new spin on the lifestream concept. +- [Independents Hall](http://indyhall.com/): The way that Philly does co-working! +- [Asia Blogging Network](http://asiablogging.com/live/): AsiaBlogging is a global new media network on a wide ranging of topics from movie and music to technology, sport and lifestyle. Based in Jakarta, Indonesia, AsiaBlogging invites bloggers, especially Asian bloggers to contribute their passionate postings. +- [MobileRSS.net](http://www.mobilerss.net/): MobileRSS.net provides mobile users with their favorite RSS content on any mobile device. +- [exPhone](http://exphone.org/about.php): Got your shiny new iPhone? Great! But what about your exPhone? Don't worry, we've got you covered. +- [Improve Your Phplist RSS-to-Email Feature By Using Simplepie Rather Than Onyx](http://whereelsetoputit.com/blog/upgrade-phplist-to-simplepie/): The phplist mailing list software includes built-in support for RSS-to-email by way of Onyx RSS, a pretty useful chunk of PHP code which is now around 5 years old. However, you can improve your RSS-to-email (and Atom-to-email) capabilities significantly by upgrading phplist to use SimplePie rather than Onyx. It's new, it's snazzy, and (unlike Onyx) it's being actively developed and supported. +- [Build Your Own RSS Thumbnail Gallery](http://www.darrenhoyt.com/2007/07/29/build-your-own-rss-thumbnail-gallery/): Places like CSSDrive, WebCreme and DailySlurp are great for this purpose ordinarily, but I wanted my own gallery adapted to my own tastes. +- [Zooomr RSS Plugin for Habari](http://blog.tinyau.net/archives/2007/07/29/habari-rn-zooomrrss-plugin/): This plugin show the images of Zooomr by using RSS provided by Zooomr. It used SimplePie to parse RSS. +- [MyNT](http://my.ntugo.com/): What is MyNT (say 'Mint')? Well, it's a Social Feed Reader (derived from the concept of Social Bookmarking). +- [feedmeplz](http://feedmeplz.com/): feedmeplz is really simple syndication. You give it your favorite sites and in return you get a public feed page with the latest updates from all your sites merged together into a simple list. You can set this page as your homepage and share it with others. +- [Scintilla](http://scintilla.nature.com/): Scintilla keeps you up to date with papers, news and science weblogs. Rate and recommend items to groups and colleagues. Discover information that you might have missed. +- [How to integrate feeds into your website using AJAX](http://blog.mcnicholl.com/2007/06/02/rss-how-to-integrate-feeds-into-your-website-with-ajax/): An AJAX-based implementation that lets you put feeds on your website using SimplePie. +- [Personal Zeitgeist](http://www.creativesynthesis.net/blog/projects/personal-zeitgeist/): Personal Zeitgeist is a very simple homepage for the person who leaves parts of themselves scattered all over the web. It is essentially a personal rss aggregator, with some basic structured information. +- [MiniBoxs](http://www.miniboxs.com/): A news aggregation site, much like theWebList.net and PopURLs. +- [The Stream](http://svenellingen.com/stream/): Similar in concept to a “Lifestream”, but different. Very cool use of syndication with SimplePie. +- [JetStream](http://labs.techbrew.net/jetstream/): Topical trends of A-List blogs and news sources. +- [WinAmpCast](http://www.financialaidpodcast.com/2007/02/14/winampcast-beta-1-released/): WinAmpCast uses SimplePie to convert podcast feeds to .m3u files for use in Winamp, iTunes, and other players. +- [Rapidshare Blogsearch](http://megatao.com/rapidshare.php): Searches blogs for Rapidshare links. +- [Packer Updates](http://packerupdates.com/): The latest news for the fans of the Green Bay Packers football team! +- [Local Thoughts](http://www.localthoughts.com/): Have you ever wished there was one site where you could find conversions, ideas and news relating to your city or even a particular topic that you are interested in? Welcome to Local Thoughts, you have found that site! +- [Universal Timeline Aggregator](http://timeline.to/): Shows a visual interpretation of postings in RSS and Atom feeds. +- [Counterjumper Blog Index](http://www.counterjumper.com/blogindex): Great looking index of several popular blogs! +- [FeedPostal.com](http://www.feedpostal.com): A free service alerting you of your subscribed Atom and RSS updates by e-mail. +- [186-kps](http://www.186-kps.com): A News, Politics and Tech “Headline” site with the option to submit headlines to twitter. + +## Plugins for Third-Party Software {#plugins_for_third-party_software} + +This may not be a complete list. You can also read about more plugins on our [SimplePie Plugins and Integration](@/wiki/plugins/_index.md) page. + +- [SimpleFeed module for Drupal](http://tedserbinski.com/2007/04/19/simplefeed): Feed parsing done right! This new Drupal module parses feeds into nodes. It uses the SimplePie library to do parse the feeds. +- [Feed Aggregator for PunBB](http://www.punres.org/files.php?pid=373): Easily add feeds to your PunBB-powered forums! +- [SimpleFeed Extension for Mediawiki](http://jonnylamb.com/2007/03/26/simplefeed/): An extension for Mediawiki that provides for more customization to the display than the official Mediawiki plugin. +- [WP-o-Matic. The Wordpress RSS Agreggator](http://devthought.com/projects/wordpress/wp-o-matic-the-wordpress-rss-agreggator/): WP-o-Matic is a Wordpress plugin that will allow you to create posts automatically from feeds. With its simple interface, you just type in the feed url, select in which categories you want to create the posts, and you're ready to go. +- [TARR module for Joomla](http://www.stroz.us/php/): Tabbed AJAX RSS Reader for Joomla +- [Slick RSS Joomla module](http://m-net.net.nz/slick-rss.php): Parse and Display RSS Feed News with Teaser Tooltip. +- [Simple RSS Feed Reader for Joomla](http://demo.joomlaworks.gr/content/view/33/2/): Adding RSS syndicated content inside your Joomla! website is now super-easy and simple with the “Simple RSS Feed Reader” Module from JoomlaWorks. All you have to do is insert the Feed (RSS) URLs of the websites you want to syndicate in the module's settin +- [Thick RSS Browser for Joomla](http://extensions.joomla.org/component/option,com_mtree/task,viewlink/link_id,1685/Itemid,35/): oomla module to show list of RSS-Feeds and display full-length news in a customizable thickbox window with navigation (browsing). Thickbox opens on your page, so the user does not have to leave your site or switch to another window to read all news provid +- [PieX plugin for MODx](http://www.petit-power.com/permalink/piex04.html): Adds an awesome news reader to your MODx CMS installation. Site is in Japanese. +- [Drupal Feedparser](http://drupal.org/project/feedparser): This Drupal module relies on SimplePie instead of Drupal's built-in parser. +- [Joomla AJAX RSS Reader module](http://extensions.joomla.org/component/option,com_mtree/task,viewlink/link_id,394/Itemid,35/): A really cool module that brings RSS and Atom feeds into your Joomla-based sites. +- [bit_rss plugin for Textpattern](http://bitdesigns.net/blog/articles/198/txp-plugin-bitrss): bit_rss is a SimplePie-based port of the tcm_rss plugin for Textpattern that used MagpieRSS. +- [Wordpress Widget: King RSS](http://www.blog.mediaprojekte.de/cms-systeme/wordpress-plugins/wordpress-widget-king-rss/): A SimplePie-powered feed widget for the new Wordpress Widgets system. +- [SimplePie module for CakePHP](http://cakeforge.org/snippet/detail.php?type=snippet&id=53): Here's a code snippet that pulls SimplePie into CakePHP. +- [TweetSimple - Drupal Twitter Module](http://drupal.org/project/tweetsimple): Creates a Twitter feed block using SimplePie for Drupal CMS +- [Moovieland - HTML5 website - Movies Aggregation - Module](http://www.moovieland.com) + +## See Also {#see_also} + + diff --git a/docs/content/wiki/live/_index.md b/docs/content/wiki/live/_index.md new file mode 100644 index 000000000..64fbd29c4 --- /dev/null +++ b/docs/content/wiki/live/_index.md @@ -0,0 +1,41 @@ ++++ +title = "SimplePie Live!" ++++ + +**NOTE:** SimplePie Live will be phased out soon. It was a fun experiment but it needs more work and better hardware before it's ready for primetime. Consider SimplePie Live deprecated from this point forward. + +**[SimplePie Live!](http://live.simplepie.org) allows you to add feeds to your websites using only JavaScript.** SimplePie Live! was created to make it even easier for people to get started using feeds in their websites by taking care of all of the setup and configuration on our end. + +SimplePie Live! is the SimplePie API re-factored as a hosted web service with the feel of modern JavaScript, that provides an AJAX-friendly interface for working with RSS and Atom feeds. With the power of SimplePie available in JavaScript form, you can do all sorts of cool things! + +- Create AJAX widgets out of your feeds. +- Add a scrolling ticker displaying the latest headlines. +- Integrate feeds into your existing web applications. +- Use SimplePie's feed handling in ANY environment, including Java, C#, ASP, Ruby on Rails, Adobe AIR, and Mozilla XULRunner. +- And much more! + +SimplePie Live! will start out serving the developer community first, then over time will become more and more consumer-friendly. We plan to roll out “templates” in the future which will allow people “cut-and-paste” ease when adding feeds to their websites. + +## Note about service and updates {#note_about_service_and_updates} + +
+ +**SimplePie Live! is still in early “Beta”, and as such is not 100% reliable at this point.** There will definitely be improvements and enhancements to the service which will be rolled out automatically, causing no work on your part. If we need to roll out an enhancement that will cause compatibility issues, we'll roll it out as part of a new version (new URL for `base.js`), and will notify you via the SimplePie blog about the updates. Once we launch a new version, we'll keep the old version around for 1 week before shutting off the old version. + +
+ +Ready to learn? You can begin by clicking on one of the documentation links below. + +## Frequently Asked Questions {#frequently_asked_questions} + +- **[Frequently Asked Questions](@/wiki/live/faq/_index.md)** + +## Setup {#setup} + +- [Requirements and Getting Started](@/wiki/live/setup/_index.md) +- [Technical Details](@/wiki/live/faq/technical_details.md) + +## Usage {#usage} + +- [API Reference](@/wiki/live/reference/_index.md) +- [Tips, Tricks, Tutorials, and Screencasts](@/wiki/live/tutorial/_index.md) diff --git a/docs/content/wiki/live/faq/_index.md b/docs/content/wiki/live/faq/_index.md new file mode 100644 index 000000000..4d7bd678a --- /dev/null +++ b/docs/content/wiki/live/faq/_index.md @@ -0,0 +1,15 @@ ++++ +title = "Frequently Asked Questions" ++++ + +These are questions that are frequently asked about SimplePie Live. For discussions about _how_ to do things, check the [Tips, Tricks, Tutorials, and Screencasts](@/wiki/live/tutorial/_index.md) page. For more general information about the SimplePie project (from which SimplePie Live! is based), check the [SimplePie FAQ](@/wiki/faq/_index.md). + +## General {#general} + +- [Why should I use SimplePie Live! over something else?](@/wiki/live/faq/why_should_i_use_simplepie_live_over_something_else.md) +- [Can I install SimplePie Live on my own web host?](@/wiki/live/faq/can_i_install_simplepie_live_on_my_own_web_host.md) +- [Technical Details](@/wiki/live/faq/technical_details.md) + +## Troubleshooting {#troubleshooting} + +- I'm seeing weird characters diff --git a/docs/content/wiki/live/faq/can_i_install_simplepie_live_on_my_own_web_host.md b/docs/content/wiki/live/faq/can_i_install_simplepie_live_on_my_own_web_host.md new file mode 100644 index 000000000..041c7eb80 --- /dev/null +++ b/docs/content/wiki/live/faq/can_i_install_simplepie_live_on_my_own_web_host.md @@ -0,0 +1,5 @@ ++++ +title = "Can I install SimplePie Live on my own web host?" ++++ + +We currently have no plans to release an installable version of SimplePie Live as we maintain the application (including all the updates, improvements, and configurations) so you don't have to worry about anything. However we do offer the PHP-based [SimplePie](http://simplepie.org) software for installation which allows you to tweak and configure to your heart's content. diff --git a/docs/content/wiki/live/faq/technical_details.md b/docs/content/wiki/live/faq/technical_details.md new file mode 100644 index 000000000..27f8a6b49 --- /dev/null +++ b/docs/content/wiki/live/faq/technical_details.md @@ -0,0 +1,26 @@ ++++ +title = "Technical Details" ++++ + +Here are some of the technical details that discuss how [SimplePie Live!](http://live.simplepie.org) works. + +- SimplePie Live! is a closed-source web application built on a custom MySQL-enabled branch of SimplePie. The MySQL functionality that we're using will be released as part of SimplePie 1.2. +- Currently, everything runs directly from our Dreamhost web hosting that has everything installed to run SimplePie optimally. ([Compatibility Test](http://live.simplepie.org/test.php)) +- Our asynchronous (AJAX/AJAJ) functionality is not based on [XMLHTTPRequest](http://www.google.com/search?q=xmlhttprequest) but rather on the [JSONP](http://bob.pythonmac.org/archives/2005/12/05/remote-json-jsonp/) concept, which enables this service to bypass cross-domain scripting prevention in the browser, allowing it to run exclusively in the browser. This is the same process that is used by Google in pretty much all of their AJAX-style services. +- We are using all default configuration settings for SimplePie, with the exception of the config options we allow to be changed via SimplePie Live, we have a 30 minute cache duration, and we have a custom MySQL caching location. We may tweak and modify these settings from time to time to improve performance and handling. This also specifically means: + - A 10-second timeout for fetching feeds (we may increase this to 30 seconds) + - A cache time of 30 minutes +- All output is UTF-8 by default, so it is recommended that you serve your pages as UTF-8. + +## How does the JSONP-based AJAX system work? {#how_does_the_jsonp-based_ajax_system_work} + +As mentioned before, SimplePie Live doesn't rely on [XMLHTTPRequest](http://www.google.com/search?q=xmlhttprequest) but rather on [JSONP](http://bob.pythonmac.org/archives/2005/12/05/remote-json-jsonp/). Here's a walkthrough for how it all comes together. + +1. We set up a global array called `_callback` because it needs to be accessible to the entire page. +2. When you initialize the `SimplePie()` constructor, you pass in a feed URL (or array of feed URLs), and a series of options including a callback handler for successful and failed responses. +3. A (hopefully) unique GUID is generated based on the timestamp +4. The `onSuccess()` and `onFailure()` callbacks are saved inside the global `_callback` array (indexed by the GUID), and are then set to `NULL` inside the SimplePie instance. +5. A query string is generated from all of the config options and the guid, and a ` +``` diff --git a/docs/content/wiki/live/reference/simplepie.md b/docs/content/wiki/live/reference/simplepie.md new file mode 100644 index 000000000..42cad8457 --- /dev/null +++ b/docs/content/wiki/live/reference/simplepie.md @@ -0,0 +1,60 @@ ++++ +title = "SimplePie" ++++ + +## Description {#description} + +Creates a new SimplePie object, optionally setting various settings (see their specific pages for more detail). + +
+ +**If you're merging multiple feeds together, they need to all have dates for the items or else PHP will sort them to the top.** + +
+ +## Parameters {#parameters} + +### feedUrl {#feedurl} + +Set the feed URL(s) that you want to use. Can either be a single `String` URL, or an `Array` of URLs. + +### options {#options} + +This is a JSON-formatted object that should contain configuration options and callback handlers. + +## Returns {#returns} + +Returns a handle for the SimplePie object. + +## Examples {#examples} + +Assuming you've already included the `base.js` file as noted in [Requirements and Getting Started](@/wiki/live/setup/_index.md)… + +```javascript + +``` diff --git a/docs/content/wiki/live/reference/syntax_notes.md b/docs/content/wiki/live/reference/syntax_notes.md new file mode 100644 index 000000000..d59b4a879 --- /dev/null +++ b/docs/content/wiki/live/reference/syntax_notes.md @@ -0,0 +1,45 @@ ++++ +title = "Syntax Notes" ++++ + +[SimplePie Live!](http://live.simplepie.org) aims to be near-syntax-compatible with SimplePie, but there are two additional considerations to take into account: + +1. SimplePie Live is a JavaScript service, and should feel like JavaScript. +2. Since SimplePie Live downloads and runs in the browser, file size is a major issue to take into account. + +Because of these considerations, we've made some simple but significant changes to the syntax and API in SimplePie Live! + +1. The constructor feels more like you're using [Ajax.Request()](http://prototypejs.org/api/ajax/request) than calling a PHP constructor. +2. There are different configuration options than the PHP version. +3. The API contains NO methods… everything is a property. +4. The `get_` has been removed from all names, and what's left has been camelCased. +5. All of the subscribing, bookmarking, data hacking, and data sanitizing methods have been removed (except for `feed.subscribeUrl`). +6. All singular methods have been removed; use the plural ones instead (as they're arrays). + +## Example Differences {#example_differences} + +See the following examples to see some of the differences: + +**Getting the title of the feed** + +```php +// SimplePie under PHP +$feed->get_title(); + +// SimplePie Live! +feed.title; +``` + +**Storing the first item's title in a 'title' variable** + +```php +// SimplePie under PHP 4.x +$item = $feed->get_item(0); +$title = $item->get_title(); + +// SimplePie under PHP 5.x +$title = $feed->get_item(0)->get_title(); + +// SimplePie Live! +var title = feed.items[0].title; +``` diff --git a/docs/content/wiki/live/setup/_index.md b/docs/content/wiki/live/setup/_index.md new file mode 100644 index 000000000..9122845fb --- /dev/null +++ b/docs/content/wiki/live/setup/_index.md @@ -0,0 +1,61 @@ ++++ +title = "Requirements and Getting Started" ++++ + +This section contains the first steps for getting started with SimplePie Live! Ready to get started? + +## Requirements {#requirements} + +1. A fundamental understanding of JavaScript is required, and an understanding of _JavaScript Object Notation_ (aka [JSON](http://json.org/js.html)) is highly recommended. +2. It would also be valuable to know how to generate HTML via JavaScript using DOM manipulation methods (so that you can dynamically add the feeds to your pages). +3. Lastly, it would be valuable for you to have the latest version of [Firefox](http://getfirefox.com) installed along with the [Firebug](http://getfirebug.com) extension. Firebug is **the best** JavaScript debugging tool on the face of the entire planet… and it's easy to use. Even if you're a hard-core user of another browser, you should still install this combination of tools to that you can more easily dig through the data. + +## Web Browsers {#web_browsers} + +Because SimplePie Live simply returns a JSON object of data, it is generally expected to work in ANY modern web browser. However, as we move forward, we will be following Yahoo's [Graded Browser Support](http://developer.yahoo.com/yui/articles/gbs/) in supporting A-grade web browsers. + +Older versions of these browsers may also work as well, but we're pretty sure that these versions DO. In truth, you're more likely to be restricted by the minimum requirements of any JavaScript Framework than you are by SimplePie Live! + +## Getting Started {#getting_started} + +SimplePie Live doesn't require you to download any packages or configure any installs. It pulls straight from our servers and runs entirely within your web browser. That being said, there are two steps: + +### Step 1: Load the base library {#step_1load_the_base_library} + +First, you need to load the `base.js` file from the server by adding it to the `` section of your page. + +```html + +``` + +This file is less than 1k and includes the base functionality for requesting feeds and handling callbacks. Besides gzipping it (to make it super small), we've also resisted the temptation to add non-critical code to it, so this file should always remain very small (our goal is to always stay at or below 1k). + +### Step 2: Call the function {#step_2call_the_function} + +Secondly, you can request a feed and define callback functions for successful and failed requests. If you've ever worked with a modern JavaScript framework like [Prototype](http://prototypejs.org), [jQuery](http://jquery.com), or [MooTools](http://mootools.net) this will look pretty familiar. I should also note that you don't need to use one of these frameworks to use SimplePie Live – you're free to use plain ol' JavaScript if you want. + +```javascript +var feed = new SimplePie(feedUrl, jsonOptions); +``` + +Or, if you're looking for a more realistic example: + +```javascript +var feed = new SimplePie('http://feeds.feedburner.com/simplepie', { + + // Set one configuration option + setTimeout: 30, + + // Set up a handler for a successful response + onSuccess: function(feed) { + alert(feed.title.toUpperCase() + "\n" + feed.description); + }, + + // Do this if we encounter an error + onFailure: function(feed) { + alert(feed.error); + } +}); +``` + +That's basically the gist of it. If you need help on what configuration options are available, or what properties are available in the API, check out [API Reference](@/wiki/live/reference/_index.md). diff --git a/docs/content/wiki/live/tutorial/_index.md b/docs/content/wiki/live/tutorial/_index.md new file mode 100644 index 000000000..2716ea590 --- /dev/null +++ b/docs/content/wiki/live/tutorial/_index.md @@ -0,0 +1,25 @@ ++++ +title = "Tips, Tricks, Tutorials, and Screencasts" ++++ + +There are all sorts of cool things you can do with SimplePie Live! and feeds. These are things that have been put together to show how SimplePie Live! can be used. Feel free to add your own, but if there's a similar one to what you're wanting to post, please see if you can merge your notes into the one that already exists. + +These are tutorials about _how_ to do things. For questions or issues that are frequently asked _about_ SimplePie Live, check the [Frequently Asked Questions](@/wiki/live/faq/_index.md) page. + +
+ +If you would like to see a tutorial for something here, add the title (in the same format as the other tutorial links) to the [Requested Tutorials](@/wiki/live/tutorial/_index.md#requested_tutorials) section. + +
+ +## Tips and Tricks {#tips_and_tricks} + +- [Avoid raw HTML entities](@/wiki/live/tutorial/avoid_raw_html_entities.md) – Learn to work around irritations with JavaScript's textnode creation methods. + +## Integrate Popular Services {#integrate_popular_services} + +- [Last.fm Demo](@/wiki/live/tutorial/lastfm.md) – Recent Last.fm tracks. +- delicious – Favorite Delicious bookmarks. +- magnolia – Favorite Magnolia bookmarks. + +## Requested Tutorials {#requested_tutorials} diff --git a/docs/content/wiki/live/tutorial/avoid_raw_html_entities.md b/docs/content/wiki/live/tutorial/avoid_raw_html_entities.md new file mode 100644 index 000000000..8cb8490e4 --- /dev/null +++ b/docs/content/wiki/live/tutorial/avoid_raw_html_entities.md @@ -0,0 +1,38 @@ ++++ +title = "Avoid raw HTML entities" ++++ + +Using JavaScript's built-in DOM methods can be a hassle when you're trying to add text to a new DOM node. The correct way of adding text to a node is to use `document.createTextNode()`, although a popular alternative is `element.innerHTML`. Additionally, some libraries (like [Scriptaculous](http://script.aculo.us)) have DOM creation helpers built-in for more easily creating new HTML dynamically. + +If you're trying to add text from [feed.title](@/wiki/live/reference/feed.title.md) (or another text-based value) that contains an HTML entity, you typically run into issues where the HTML entity is displayed literally instead of being converted to the intended character… and that sucks. The simplest way to work around such issues when generating HTML on-the-fly using DOM methods is to create empty nodes with id's assigned to them (i.e. `
`), and then use `innerHTML` to add the content to the nodes after they've been added to the DOM tree. + +## Examples {#examples} + +The following code will have the body of the page display “You & I.” + +```javascript +var phrase = "You & I."; +var span = document.createElement('span'); +span.appendChild(document.createTextNode(phrase)); +document.body.appendChild(span); +``` + +The following code will have the body of the page display “You & I.”, which is what we want. + +```javascript +var phrase = "You & I."; +var span = document.createElement('span'); +span.id = 'myId'; +document.body.appendChild(span); +document.getElementById('myId').innerHTML = phrase; +``` + +If you were using Scriptaculous' `Builder.node()` functionality, you'd do the following to get the translated HTML entities (like we want). + +```javascript +var phrase = "You & I."; +document.body.appendChild( + Builder.node('span', {'id':'myId'}) +); +$('myId').innerHTML = phrase; +``` diff --git a/docs/content/wiki/live/tutorial/lastfm.md b/docs/content/wiki/live/tutorial/lastfm.md new file mode 100644 index 000000000..2c55288ac --- /dev/null +++ b/docs/content/wiki/live/tutorial/lastfm.md @@ -0,0 +1,155 @@ ++++ +title = "Last.fm Demo" ++++ + +[Last.fm](http://last.fm) is a popular music service that has integration with a variety of desktop music players such as iTunes, Windows Media Player, Winamp, and many others. When you listen to music on your computer, it will automatically update on your Last.fm account. You can use this to easily display your most recent tracks on your website. + +There was an old version of this tutorial that was put together back when we were working on SimplePie Beta 2. Since SimplePie Live is _designed_ for AJAX-style uses, we'll replace that old tutorial with this new one. + +## Compatibility {#compatibility} + +- Requires SimplePie Live public beta. +- This demo uses native JavaScript DOM methods to provide the greatest amount of compatibility across browsers. + +## Example {#example} + +The following code sample can be previewed at the [Last.fm with SimplePie Live](http://live.simplepie.org/demo/lastfm/) demo. + +```javascript + + + + + Last.fm with SimplePie Live! + + + + + +

You are viewing the Last.fm with SimplePie Live! demo.

+ + +
+

Recent Last.fm Tracks

+
loading...
+
    +
    + + + + +``` diff --git a/docs/content/wiki/misc/_index.md b/docs/content/wiki/misc/_index.md new file mode 100644 index 000000000..9bb3639c7 --- /dev/null +++ b/docs/content/wiki/misc/_index.md @@ -0,0 +1,40 @@ ++++ +title = "Miscellaneous Documentation" ++++ + +
    + +--- + +## Index {#index} + +### C {#c} + +- [Coding Standards](@/wiki/misc/coding_standards.md) + +### R {#r} + +- Release notes + +### S {#s} + +- [SimplePie 0.8](@/wiki/misc/release_notes/simplepie_0.8.md) +- [SimplePie 0.9](@/wiki/misc/release_notes/simplepie_0.9.md) +- [SimplePie 0.91](@/wiki/misc/release_notes/simplepie_0.91.md) +- [SimplePie 0.92](@/wiki/misc/release_notes/simplepie_0.92.md) +- [SimplePie 0.93](@/wiki/misc/release_notes/simplepie_0.93.md) +- [SimplePie 0.94](@/wiki/misc/release_notes/simplepie_0.94.md) +- [SimplePie 0.95](@/wiki/misc/release_notes/simplepie_0.95.md) +- [SimplePie 0.96](@/wiki/misc/release_notes/simplepie_0.96.md) +- [SimplePie 1.0 "Razzleberry"](@/wiki/misc/release_notes/simplepie_1.0.md) +- [SimplePie 1.1 "Blackberry"](@/wiki/misc/release_notes/simplepie_1.1.md) +- [SimplePie 1.2 "Pecan"](@/wiki/misc/release_notes/simplepie_1.2.md) +- [SimplePie 1.3 "Boysenberry"](@/wiki/misc/release_notes/simplepie_1.3.md) +- [SimplePie Beta 1](@/wiki/misc/release_notes/simplepie_beta_1.md) +- [SimplePie Beta 2](@/wiki/misc/release_notes/simplepie_beta_2.md) +- [SimplePie Beta 3 "Lemon Meringue"](@/wiki/misc/release_notes/simplepie_beta_3.md) +- [SimplePie Credits](@/wiki/misc/credits.md) +- [SimplePie in the Media](@/wiki/misc/in_the_media.md) +- [SimplePie Preview Release](@/wiki/misc/release_notes/simplepie_preview_release.md) + +
    diff --git a/docs/content/wiki/misc/coding_standards.md b/docs/content/wiki/misc/coding_standards.md new file mode 100644 index 000000000..31a164b10 --- /dev/null +++ b/docs/content/wiki/misc/coding_standards.md @@ -0,0 +1,47 @@ ++++ +title = "Coding Standards" ++++ + +If you want to contribute a patch to SimplePie, please follow these coding guidelines. + +## Quotes {#quotes} + +Understand the [difference between single and double quotes](http://www.php.net/manual/en/language.types.string.php#language.types.string.syntax.single). Use whichever is more appropriate. + +## Indentation {#indentation} + +Indentation should follow the logical structure of the code. Use real tabs not spaces. + +## Brace Style {#brace_style} + +If there are 2 or more actions for the condition, brace style should be as follows: + +```php +if ((condition1) || (condition2)) +{ + action1; + action2; +} +elseif ((condition3) && (condition4)) +{ + action3; + action4; +} +else +{ + defaultaction1; + defaultaction2; +} +``` + +## Regular Expressions {#regular_expressions} + +[Perl compatible regular expressions (PCRE)](http://php.net/pcre) should be used instead of their POSIX counterparts. + +## No Shorthand PHP {#no_shorthand_php} + +Never, ever, use shorthand PHP start tags. The world will come to an end if you do. Always use `` + +## Ternary operators {#ternary_operators} + +Don't test if the statement is false. That becomes confusing fast. Also, don't put functions on either side of the semi-colon. diff --git a/docs/content/wiki/misc/credits.md b/docs/content/wiki/misc/credits.md new file mode 100644 index 000000000..3b5f60162 --- /dev/null +++ b/docs/content/wiki/misc/credits.md @@ -0,0 +1,70 @@ ++++ +title = "SimplePie Credits" ++++ + +SimplePie would never have become a reality if it wasn't for the fantastic work, feedback, and overall fanaticism of our users! + +## Development Team Bios {#development_team_bios} + +### Ryan Parman (Skyzyx) {#ryan_parman_skyzyx} + +Ryan is the creator, co-developer, and evangelist for the SimplePie project. After Geoffrey came on board in June 2005, Ryan began to shift from a development-focused role to a people-focused role, where he currently works to ensure that people are aware of, and can easily understand and use SimplePie through support, documentation, tutorials, plugins, and evangelism. + +He is also the co-founder of LifeNexus Digital, a startup in the digital media space that is developing a new service called [WarpShare](http://warpshare.com/) — a viable commercial solution that solves the ever-increasing rift between labels, studios, advertisers, and digital media consumers like you and me. + +Besides SimplePie and WarpShare, Ryan was the lead front-end developer for the Spring '08 re-launch of the [Yahoo! Messenger](http://messenger.yahoo.com/) website. He also had his 15 minutes of web developer fame as the guy who packaged the [standalone versions of Internet Explorer](http://en.wikipedia.org/wiki/Internet_explorer#.22Standalone.22_Internet_Explorer) into easy-to-use bundles and made them available on his website before handing them over to [Evolt's browser archive](http://browsers.evolt.org/?ie/32bit/standalone), [Quirksmode](http://www.quirksmode.org/browsers/multipleie.html), and [Tredosoft](http://tredosoft.com/Multiple_IE) to distribute. + +Ryan's background is as a front-end web developer with substantial experience with web standards, layered semantic markup, working with XML/JSON/PHP/REST-based web services, and content syndication and aggregation. He is experienced with organic SEO methods, front-end performance tuning, and usability and user-centered design principles. Ryan is participating in the [W3C HTML5 Working Group](http://www.w3.org/html/wg/), as well as the discussion lists for the [RSS Advisory Board](http://www.rssboard.org/), the [Data Portability](http://www.dataportability.org/) initiative, [Microformats.org](http://microformats.org/), and other industry groups. Ryan is a vocal and financial supporter of the [Electronic Frontier Foundation](http://eff.org/) and [Creative Commons](http://creativecommons.org/). + +Ryan lives in California's [Silicon Valley](http://maps.google.com/?ie=UTF8&ll=37.463959,-121.966095&spn=0.770644,1.661682&z=10) with his wife and kids, is a Christian and a [prefectionist](http://www.thinkgeek.com/tshirts/generic/894a/), has a very snarky and sarcastic sense of humor, has a technically-oriented [INFJ](http://www.typelogic.com/infj.html) personality type, and doesn't vote down party lines. + +You can find more about Ryan at . + +### Geoffrey Sneddon (gsnedders, Error 404) {#geoffrey_sneddon_gsnedders_error_404} + +Geoffrey joined development of SimplePie in June 2005 to help with the development of SimplePie 0.97 (later renamed “1.0 Preview Release”). Geoffrey pretty much drove nearly all the development of that release and continued to do so until the release of SimplePie 1.1, after which he [stepped down](/blog/2007/12/28/byepie/ "http://simplepie.org/blog/2007/12/28/byepie/") from development of SimplePie 1, moving on to focus on SimplePie 2, the first complete rewrite of SimplePie since 0.90 was released in 2004. Geoffrey is a PHP wizz-kid who has really focused on ensuring that SimplePie is fully standards compliant, does what it's supposed to do, is relevant in the real world, and is as fast as it can possibly be. + +Geoffrey is 15 and lives in Scotland with his parents, and often ends up doing [the fish slapping dance](http://en.wikipedia.org/wiki/The_Fish_slapping_dance) with Ryan in IRC. He is unbelievably witty, has an [INTJ personality type](http://www.typelogic.com/intj.html), and is Hixie's protégé 1), spending his spare time making standards suck less. + +You can find out more about Geoffrey at . + +### Steve Minutillo {#steve_minutillo} + +Steve joined development of SimplePie in January 2008 shortly after Geoffrey left development of SimplePie 1. He had previously provided a whole manner of bug reports and patches and generally been a useful guy. Nobody seems to know much about him, though you can find a little more about him at . + +### Michael Shipley {#michael_shipley} + +You can find out more about Michael at + +### Ryan McCue {#ryan_mccue} + +You can find out more about Ryan M. at + +## Feedback, Suggestions, and Patches {#feedback_suggestions_and_patches} + +- [Bob Aman](http://sporkmonger.com/articles/2006/02/27/directory-of-feed-parsers), [Phil Ringnalda](http://weblog.philringnalda.com/2006/01/09/another-google-loser-heard-from#comments), [Bruce McKenzie](http://www.bioneural.net/), [Peter Janes](http://peterjanes.ca/), [Bert Garcia](http://hcgtv.com/), [Steve Minutillo](http://minutillo.com/steve/), Ivo Beckers, “internet_star”, Mark IJbema, Alexander Turcic and others I've forgotten over the years. + +## Code/Software {#codesoftware} + +- **[MagpieRSS](http://magpierss.sf.net/):** + SimplePie started out as a set of functions that sat on top of Magpie. SimplePie would never have been created without it. +- **[IDNA Convert Library](http://phlymail.de/en/downloads/idna/download/):** + This library by phlyLabs enables SimplePie to handle Internationalized Domain Names, and it was super-easy to implement. Thanks! +- **[reWork](http://osteele.com/tools/rework/):** + This tool has been invaluable in testing regular expressions. Nearly all of the regex code was rewritten to be more efficient by using this tool. Five stars! +- **[Ultra-Liberal Feed Locator](http://diveintomark.org/archives/2002/08/15/ultraliberal_rss_locator):** + The usability concepts in this rant are what drove the development of the ultra-liberal feed locator that we developed for 1.0 Beta. +- **[RSS Auto-Discovery](http://keithdevens.com/weblog/archive/2002/Jun/03/RSSAuto-DiscoveryPHP):** + Auto-discovery was a major feature that SimplePie was lacking until I came across this. I hacked in support for discovering Atom and RSS 1.0 feeds, but the rest of the software works brilliantly as-is. This piece of software was abandoned in 1.0 Beta, when we replaced it with the ultra-liberal feed locator. +- **[XMLize](http://www.hansanderson.com/php/xml/):** + This brilliant piece of software handled all of the XML parsing in SimplePie 0.9–0.96. Instead of breaking down the XML file into a typical array like everyone else, XMLize has some very well thought-out syntax that makes it easy to read attributes, nodes, and subelements. + +
    + +
    + +1) No, please don't take this seriously. I have free will from the benevolent dictator Hixie. Sometimes, at least. + +
    + +
    diff --git a/docs/content/wiki/misc/in_the_media.md b/docs/content/wiki/misc/in_the_media.md new file mode 100644 index 000000000..1ee5eda28 --- /dev/null +++ b/docs/content/wiki/misc/in_the_media.md @@ -0,0 +1,18 @@ ++++ +title = "SimplePie in the Media" ++++ + +These are notes on books, major websites, and conferences that have discussed (or at least mentioned) SimplePie. If you know of other books, conferences, or major tech publications, please add them below. + +## Conferences {#conferences} + +- [BlogHer '06](http://www.blogher.org/), “Primp your Blog” session + +## Major Online Publications {#major_online_publications} + +- [Building a bridge to the future (InfoWorld)](http://www.infoworld.com/article/07/06/21/25OPentinsight_1.html) +- [Search Engine Optimization Wiki](http://en.seowiki.info) + +## Books {#books} + +- [Professional Search Engine Optimization with PHP: A Developer's Guide to SEO](http://cristiandarie.ro/seo-php/) by Jaimie Sirovich and Cristian Darie, Wrox, April 2007. diff --git a/docs/content/wiki/misc/release_notes/_index.md b/docs/content/wiki/misc/release_notes/_index.md new file mode 100644 index 000000000..a2411e2e6 --- /dev/null +++ b/docs/content/wiki/misc/release_notes/_index.md @@ -0,0 +1,34 @@ ++++ +title = "Release Notes" ++++ + +## Current Release {#current_release} + +- [SimplePie 1.3 "Boysenberry"](@/wiki/misc/release_notes/simplepie_1.3.md) – 7 July 2012 + +## Previous 1.x Releases {#previous_1x_releases} + +- [SimplePie 1.2 "Pecan"](@/wiki/misc/release_notes/simplepie_1.2.md) – 11 July 2009 +- [SimplePie 1.1 "Blackberry"](@/wiki/misc/release_notes/simplepie_1.1.md) – 2 January 2008 +- [SimplePie 1.0 "Razzleberry"](@/wiki/misc/release_notes/simplepie_1.0.md) – 23 June 2007 + +## Pre-1.0 Releases {#pre-10_releases} + +- [SimplePie Beta 3 "Lemon Meringue"](@/wiki/misc/release_notes/simplepie_beta_3.md) – 1 November 2006 +- [SimplePie Beta 2](@/wiki/misc/release_notes/simplepie_beta_2.md) – 2 June 2006 +- [SimplePie Beta 1](@/wiki/misc/release_notes/simplepie_beta_1.md) – 29 January 2006 +- [SimplePie Preview Release](@/wiki/misc/release_notes/simplepie_preview_release.md) – 10 January 2006 (Also known as 0.97 in development) + +## 0.9x Releases {#x_releases} + +- [SimplePie 0.96](@/wiki/misc/release_notes/simplepie_0.96.md) – 8 January 2005 +- [SimplePie 0.95](@/wiki/misc/release_notes/simplepie_0.95.md) – 10 October 2004 +- [SimplePie 0.94](@/wiki/misc/release_notes/simplepie_0.94.md) – 23 September 2004 +- [SimplePie 0.93](@/wiki/misc/release_notes/simplepie_0.93.md) – 2 September 2004 +- [SimplePie 0.92](@/wiki/misc/release_notes/simplepie_0.92.md) – 29 August 2004 +- [SimplePie 0.91](@/wiki/misc/release_notes/simplepie_0.91.md) – 28 August 2004 +- [SimplePie 0.9](@/wiki/misc/release_notes/simplepie_0.9.md) – 2 August 2004 + +## 0.8x Releases {#x_releases1} + +- [SimplePie 0.8](@/wiki/misc/release_notes/simplepie_0.8.md) – 20 July 2004 diff --git a/docs/content/wiki/misc/release_notes/simplepie_0.8.md b/docs/content/wiki/misc/release_notes/simplepie_0.8.md new file mode 100644 index 000000000..a97da9efa --- /dev/null +++ b/docs/content/wiki/misc/release_notes/simplepie_0.8.md @@ -0,0 +1,17 @@ ++++ +title = "SimplePie 0.8" ++++ + +## Changes {#changes} + +- First public release. +- Works on top of MagpieRSS. +- Shortened name from “Simple API for Magpie” to “SimplePie”. + +## Dependencies {#dependencies} + +- [MagpieRSS 0.6 alpha](http://magpierss.sf.net) + +## Announcement {#announcement} + +- diff --git a/docs/content/wiki/misc/release_notes/simplepie_0.9.md b/docs/content/wiki/misc/release_notes/simplepie_0.9.md new file mode 100644 index 000000000..e4b83a25a --- /dev/null +++ b/docs/content/wiki/misc/release_notes/simplepie_0.9.md @@ -0,0 +1,17 @@ ++++ +title = "SimplePie 0.9" ++++ + +## Changes {#changes} + +- Re-wrote software from scratch. +- Dropped dependency on [MagpieRSS](http://magpierss.sf.net), and built software around [XMLize](http://hansanderson.com/php/xml/). +- Removed all external dependencies (all necessary functions are built-in). +- Maintained functional backwards compatibility with SimplePie 0.8. +- Increased the RSS processing speed by 100 to over 200 times, depending on the power of the hosting server. +- Slimmed down overall RSS parsing package size by more than 75%. +- Created online demo to show speed differences between old architecture and new. + +## Announcement {#announcement} + +- diff --git a/docs/content/wiki/misc/release_notes/simplepie_0.91.md b/docs/content/wiki/misc/release_notes/simplepie_0.91.md new file mode 100644 index 000000000..4740b047e --- /dev/null +++ b/docs/content/wiki/misc/release_notes/simplepie_0.91.md @@ -0,0 +1,15 @@ ++++ +title = "SimplePie 0.91" ++++ + +Released on 28 August 2004 + +## Changes {#changes} + +- \[New\] Added support for reading local (relative URL) files. +- \[Changed\] Now wraps a CDATA section around \, \, and \ values. +- \[Fixed\] v0.9 processed feeds so fast that it didn't give itself a chance to completely read the XML file prior to parsing. This would frequently cause errors to occur. v0.91 makes a local copy of the feed before trying to parse it, but also slows it down a tad. + +## Announcement {#announcement} + +- diff --git a/docs/content/wiki/misc/release_notes/simplepie_0.92.md b/docs/content/wiki/misc/release_notes/simplepie_0.92.md new file mode 100644 index 000000000..bf4b4340b --- /dev/null +++ b/docs/content/wiki/misc/release_notes/simplepie_0.92.md @@ -0,0 +1,19 @@ ++++ +title = "SimplePie 0.92" ++++ + +Released on 29 August 2004 + +## Changes {#changes} + +- \[New\] Implemented a simple caching system that refreshes feeds older than 1 hour. Initial loads are about as fast as v0.91 speeds, while subsequent loads are as fast as v0.9 speeds (100-200 times faster than v0.8). +- \[New\] The project name, version, and URL can all be displayed through functions. This is useful for auto-updating “Powered by…” messages. +- \[New\] Better support for characters that are not part of the Latin-based alphabet. +- \[New\] A User Agent: `SimplePie/0.92 (RSS Parser; http://www.skyzyx.com/projects/simplepie/)` +- \[New\] A debug toggle in `simplepie()` that dumps the feed contents to the screen. Known as “XMLdump”. Defaults to false. +- \[Changed\] Removed functionality where SimplePie wrapped a CDATA section around \, \, and \ values. +- \[Changed\] Swaps out certain “smart” characters for their safer ASCII counterparts. This seems to resolve [The Dunstan Issue](http://blog.skyzyx.com/2004/08/29/the-battle-of-dunstan-vs-andrei-vs-mark/). + +## Announcement {#announcement} + +- diff --git a/docs/content/wiki/misc/release_notes/simplepie_0.93.md b/docs/content/wiki/misc/release_notes/simplepie_0.93.md new file mode 100644 index 000000000..4546718a7 --- /dev/null +++ b/docs/content/wiki/misc/release_notes/simplepie_0.93.md @@ -0,0 +1,21 @@ ++++ +title = "SimplePie 0.93" ++++ + +Released on 2 September 2004 + +## Changes {#changes} + +- \[New\] Added `sp_build()` to expose the build date, and `sp_useragent()` to expose the user agent string. +- \[New\] A debug toggle in `simplepie()` that controls whether caching is used. Defaults to true. +- \[New\] Transforms relative-to-the-root URL's (/archives/) into absolute URL's. Web browsers do this, and now SimplePie does too for links and images in the content. +- \[New\] Support for `` in RSS feeds. +- \[New\] Support for the auto-discovery of RSS and Atom feeds. SimplePie will load whichever is the first feed listed (for sites who offer multiple feeds). +- \[Changed\] The project build date is now in the user agent string: `SimplePie/0.93 (RSS Parser; http://www.skyzyx.com/projects/simplepie/) Build/20040902` +- \[Changed\] Changed `fix_protocol()` to allow URL's with no protocol to be handled as absolute URL's provided that they begin with `www.`. +- \[Changed\] Local (relative URL) files are no longer cached, since cache files and local files are essentially the same thing. There's no sense in having two copies of the same file on the same server now, is there? +- \[Fixed\] Improved support for certain types of poorly formatted RSS feeds. + +## Announcement {#announcement} + +- diff --git a/docs/content/wiki/misc/release_notes/simplepie_0.94.md b/docs/content/wiki/misc/release_notes/simplepie_0.94.md new file mode 100644 index 000000000..302df59ba --- /dev/null +++ b/docs/content/wiki/misc/release_notes/simplepie_0.94.md @@ -0,0 +1,18 @@ ++++ +title = "SimplePie 0.94" ++++ + +Released on 23 September 2004 + +## Changes {#changes} + +- \[New\] Implemented much better code for parsing and displaying non-English characters in feeds. +- \[New\] Support for automatically deleting cache files that have been unused for 7 days (can be changed via a parameter in the `simplepie()` function). +- \[New\] `application/xml` is now in the auto-discovery list (as this is what Mozilla.org uses). +- \[Changed\] As per [Mark Pilgrim's suggestions](http://diveintomark.org/archives/2003/06/12/how_to_consume_rss_safely) on how to improve the security of RSS, SimplePie now strips out the following tags prior to parsing: `!doctype`, `html`, `body`, `meta`, `style`, `script`, `noscript`, `embed`, `object`, `param`, `blink`, `marquee`, `frameset`, `frame`, `iframe`, `form`, `input,` and `font` +- \[Changed\] It also takes the time to remove the following attributes from all tags: `style`, `class`, and `id` +- \[Fixed\] Made significant improvements in parsing not-well-formed RSS feeds by rewriting `CDATA` sections in feeds. + +## Announcement {#announcement} + +- diff --git a/docs/content/wiki/misc/release_notes/simplepie_0.95.md b/docs/content/wiki/misc/release_notes/simplepie_0.95.md new file mode 100644 index 000000000..7f0819ea9 --- /dev/null +++ b/docs/content/wiki/misc/release_notes/simplepie_0.95.md @@ -0,0 +1,18 @@ ++++ +title = "SimplePie 0.95" ++++ + +Released on 10 October 2004 + +## Changes {#changes} + +- \[New\] Item/Entry dates (``, ``, ``) can now be formatted using standard PHP [date()](http://php.net/date) values via a new parameter in the `get_item_date()` function. +- \[Fixed\] Got the speed back to normal. +- \[Fixed\] Resolved glitches in the “bad feed compatibility mode” so that it doesn't jack up valid feeds. +- \[Fixed\] All markup inside `` tags now displays properly. For various other compatibility reasons, all `<`, `>`, `"`, and `&` entities are converted to their real values. Entities inside `` tags are now re-converted back to entities. +- \[Fixed\] Content inside `
    ` tags now obeys linebreaks, rather than displaying everything on a single line.
    +- \[Fixed\] The “Byte Order Mark” prelude in UTF-8 documents now gets stripped out when parsing feeds, which significantly improves feed compatibility.
    +
    +## Announcement {#announcement}
    +
    +- 
    diff --git a/docs/content/wiki/misc/release_notes/simplepie_0.96.md b/docs/content/wiki/misc/release_notes/simplepie_0.96.md
    new file mode 100644
    index 000000000..67d1d1e58
    --- /dev/null
    +++ b/docs/content/wiki/misc/release_notes/simplepie_0.96.md
    @@ -0,0 +1,28 @@
    ++++
    +title = "SimplePie 0.96"
    ++++
    +
    +Released on 8 January 2005
    +
    +## Changes {#changes}
    +
    +- \[New\] The `` and `` tags are now supported in `get_item_description()` (although I know that `` isn't actually a valid tag.).
    +- \[New\] Many more tags now get `CDATA` wrapped around them, including tags that SimplePie doesn't even parse. This aids compatibility in reading malformed feeds.
    +- \[Changed\] Changed how the XML Dump features works. Rather than dump the processed XML at the top of the source code, it now dumps the XML to the page and quits. Serves the XML as `text/xml`.
    +- \[Changed\] SimplePie now tries to grab data at 2kb at a time (the recommended size), rather 1MB at a time.
    +- \[Changed\] SimplePie will now clear the cache folder after 1 day by default, rather than after 7 days. This can still be changed using the appropriate `simplepie()` parameter.
    +- \[Changed\] Rather than convert all `&`, `<`, `>`, and other characters automatically before the feed gets parsed, this is now handled by PHP's `html_entity_encode()` function in the `get_item_description()` function.
    +- \[Changed\] Changed the process by which `CDATA` sections are (re-)applied to tags.
    +- \[Fixed\] Resolved a glitch in how certain dates are handled.
    +- \[Fixed\] Resolved an issue with having `©` inside a `` tag.
    +- \[Fixed\] Resolved an issue where encoded angle brackets were being resolved as tag endings.
    +- \[Fixed\] SimplePie now wraps `CDATA` around ALL of the elements that it tries to parse, rather than just a select few.
    +
    +## Known Issues {#known_issues}
    +
    +- Line breaks in `
    ` tags are no longer respected.
    +- You can't leave opened tags open in “example”-type tags like `` and `
    `.
    +
    +## Announcement {#announcement}
    +
    +- 
    diff --git a/docs/content/wiki/misc/release_notes/simplepie_1.0.md b/docs/content/wiki/misc/release_notes/simplepie_1.0.md
    new file mode 100644
    index 000000000..eaae85c78
    --- /dev/null
    +++ b/docs/content/wiki/misc/release_notes/simplepie_1.0.md
    @@ -0,0 +1,96 @@
    ++++
    +title = "SimplePie 1.0 \"Razzleberry\""
    ++++
    +
    +- RC1 released on 23 June 2007.
    +- RC2 released on 1 July 2007.
    +- RC3 released on 10 July 2007.
    +- Final released on 15 July 2007.
    +- 1.0.1 released on 23 July 2007.
    +
    +## New Features {#new_features}
    +
    +- New BSD Licensing. This license lets you pretty much do whatever you want, as long as you give us appropriate credit and leave all notices in-place. (RC1)
    +- Added the following constants: `SIMPLEPIE_BUILD`, `SIMPLEPIE_LINKBACK`, `SIMPLEPIE_NAME`, `SIMPLEPIE_URL`, `SIMPLEPIE_USERAGENT`, and `SIMPLEPIE_VERSION`. (RC1)
    +- Added `set_favicon_handler()` to enable the caching and displaying of favicons via `get_favicon()`. (RC1)
    +- Added `set_image_handler()` to enable the caching and displaying of images in a way that is much safer than the old `bypass_image_hotlink()` functionality. (RC1)
    +- `set_javascript()` enables you to change the JavaScript query string used in `embed()`. (RC1)
    +- Added `strip_comments()` to remove HTML/XML comments from feeds as they're being read. (RC1)
    +- Added `set_stupidly_fast()` which disables most of SimplePie's data sanitization, putting it roughly on par with [MagpieRSS](http://magpierss.sf.net)'s data sanitization (and therefore speed!). (RC1)
    +- Added `get_local_date()` that is capable of displaying a locale-specific time/datestamp. (RC1)
    +- Added support for [W3C WGS84 Basic Geo](http://www.w3.org/2003/01/geo/) and [GeoRSS](http://www.georss.org/georss). (RC1)
    +- Added support for accessing _ANY_ element or attribute in the feed via `get_channel_tags()`, `get_feed_tags()`, `get_image_tags()` and `get_item_tags()`. (RC1)
    +- Added the `SimplePie_Category` class which adds new methods to `get_category()` and `get_categories()`. (RC1)
    +- Added support for Flash Video enclosures, and began including the [JW Media Player](http://www.jeroenwijering.com/?item=JW_Media_Player) (formerly _Flash Media Player_). (RC1)
    +- Multifeeds support has been integrated directly into the core of SimplePie! (RC1)
    +- Faster-loading Flash-based MP3 playback. Falls back to QuickTime. (RC1)
    +- Better compliance and support for feed auto-discovery. (RC1)
    +- More accurate support for XML mime types (RFC 3023). (RC1)
    +- Full support of the date/time parts of ISO-8601. (RC1)
    +- Added support for the “Content-Language” HTTP header (RC1)
    +- Added the ability to get an item's parent feed via `get_feed()`. (RC1)
    +- Improved Base64 support. (RC1)
    +- Complete support for [Media RSS](http://search.yahoo.com/mrss) (RC1)
    +- Partial support for [iTunes RSS](http://www.apple.com/itunes/store/podcaststechspecs.html). We support everything that is relevant to feed management, but there are other things that are simply iTunes specific, and can't be normalized with anything. (RC1)
    +- New “widescreen” (16:9) preference for video podcast sizing. Defaults to 480×270. (RC1)
    +- Added `subscribe_itunes()`, which allows for automatic subscribing to podcasts in iTunes. (RC1)
    +- Support for as far back as PHP 4.1!
    +- Improved support for detecting if content is HTML or plain text. (RC2)
    +- More liberal HTTP header parser. Likely to now work in all circumstances rather than just most. (RC2)
    +- Added support for non-standard, relative HTTP “Location” headers (1.0.1)
    +
    +## Changes in this Release {#changes_in_this_release}
    +
    +- SimplePie's core has been re-written completely from scratch. (RC1)
    +- Changed the method names of several configuration options to match the verb-based names of many of the methods beginning with `get_`. (RC1)
    +- Removed the `bypass_image_hotlink()`, and replaced it with the much safer and more efficient image caching functionality. (RC1)
    +- `set_cache_duration()` (formerly `cache_max_minutes()`) now processes in seconds instead of minutes. (RC1)
    +- The amount of autodiscovery that SimplePie does can be configured using `set_autodiscovery_level()`. (RC1)
    +- The number of URLs that SimplePie looks at during the autodiscovery process can be configured using `set_max_checked_feeds()`. (RC1)
    +- Removed `feed_` from the feed-level methods, so that `get_feed_title()` becomes `get_title()`. (RC1)
    +- `get_description()` now prefers summaries, while the new `get_content()` prefers full content. (RC1)
    +- Improved the efficiency of the [IDN](http://en.wikipedia.org/wiki/Internationalized_domain_name) code. (RC1)
    +- Increased the default size of 4:3 video podcasts to 480×360. (RC1)
    +- Improved `xml:base` and XHTML support. (RC1)
    +- Improved HTTP/1.1 Status Code support (eg. when we have a bogus status code) (RC1)
    +- Removed `subscribe_pluck()`, as Pluck ended all RSS services in January 2007. (RC1)
    +- Removed `subscribe_feedlounge()` as they also have ended services. (RC1)
    +- Removed `add_to_smarking()` as they have also ended services. (RC1)
    +- Multiple improvements to `parse_date()`. (RC1)
    +- Improved support for HTTP/1.1 status codes. (RC1)
    +- Removed the `strip_ads()` functionality, as it really isn't appropriate for Core. (RC1)
    +- Significantly improved unit tests. Over 99% compliant on the things we're testing. (RC1)
    +- `get_id()` now always returns a value even if one wasn't in the feed. (RC1)
    +- Removed the `alternate` parameter for `get_favicon()`. Now, if a favicon isn't found in the default location, we return false. Speeds things up a bit. (RC2)
    +- Everything that used to be `sha1` hashed is now `md5` hashed by default for PHP 4.2 compliance. Users can opt to use `sha1` instead if they prefer. (RC2)
    +
    +## Fixes in this Release {#fixes_in_this_release}
    +
    +- [Bug 270](/support/viewtopic.php?id=270 "http://simplepie.org/support/viewtopic.php?id=270") - Missing CDATA opener (RC1)
    +- [Bug 403](/support/viewtopic.php?id=403 "http://simplepie.org/support/viewtopic.php?id=403") - PHP4 chokes on invalid characters, while PHP5 passes them. (RC1)
    +- [Bug 431](/support/viewtopic.php?id=431 "http://simplepie.org/support/viewtopic.php?id=431") - Feed image title in every item is confusing get_title(). (RC1)
    +- [Bug 483](/support/viewtopic.php?id=483 "http://simplepie.org/support/viewtopic.php?id=483") - Hanging on 404 page. RSS Locator getting invoked? (RC1)
    +- [Bug 501](/support/viewtopic.php?id=501 "http://simplepie.org/support/viewtopic.php?id=501") - MSN Spaces Live feeds are really slow. Horrid HTML. Tag stripping engine? (RC1)
    +- [Bug 542](/support/viewtopic.php?id=542 "http://simplepie.org/support/viewtopic.php?id=542") - When feed retrieval times out, SP should use the previously cached version instead. (RC1)
    +- [Bug 567](/support/viewtopic.php?id=567 "http://simplepie.org/support/viewtopic.php?id=567") - Fatal error in PHP 5.2 (RC1)
    +- [Bug 587](/support/viewtopic.php?id=587 "http://simplepie.org/support/viewtopic.php?id=587") - Regression. SP Hangs. (RC1)
    +- [Bug/Patch 853](/support/viewtopic.php?id=853 "http://simplepie.org/support/viewtopic.php?id=853") - fsockopen code problems. (RC1)
    +- [Bug 859](/support/viewtopic.php?id=859 "http://simplepie.org/support/viewtopic.php?id=859") - Regression on content encoding? (RC1)
    +- Fixed \ for autodiscovery (RC1)
    +- Fixed a minor glitch with embedding MP3 files via Flash Media Player (RC2)
    +- Improved date handling across the board (RC3)
    +- Fixed a number of cURL-specific issues (RC3)
    +- Fixed some caching issues for Windows (RC3)
    +- Fixed bug introduced with RC3 where favicon URLs were being incorrectly handled when favicon cache file exists but no favicon handler is set (Final)
    +- Fixed issues when the HTTP “Location” header is (incorrectly) a relative URI instead of an absolute URI (Final)
    +- Fixed issues with get_id() generating inconsistent hash values from refresh to refresh (Final)
    +- Fixed some issues where Media RSS support was broken in some circumstances (1.0.1)
    +- Fixed the parsing of local feeds (1.0.1)
    +- Literally _hundreds of other bugs_ that we failed to document…
    +
    +## Announcement {#announcement}
    +
    +- [http://simplepie.org/blog/2007/06/23/simplepie-10-release-candidate-is-here/](/blog/2007/06/23/simplepie-10-release-candidate-is-here/ "http://simplepie.org/blog/2007/06/23/simplepie-10-release-candidate-is-here/")
    +- [http://simplepie.org/blog/2007/07/01/simplepie-10-release-candidate-2/](/blog/2007/07/01/simplepie-10-release-candidate-2/ "http://simplepie.org/blog/2007/07/01/simplepie-10-release-candidate-2/")
    +- [http://simplepie.org/blog/2007/07/10/simplepie-10-release-candidate-3/](/blog/2007/07/10/simplepie-10-release-candidate-3/ "http://simplepie.org/blog/2007/07/10/simplepie-10-release-candidate-3/")
    +- [http://simplepie.org/blog/2007/07/15/simplepie-10-is-here/](/blog/2007/07/15/simplepie-10-is-here/ "http://simplepie.org/blog/2007/07/15/simplepie-10-is-here/")
    diff --git a/docs/content/wiki/misc/release_notes/simplepie_1.1.md b/docs/content/wiki/misc/release_notes/simplepie_1.1.md
    new file mode 100644
    index 000000000..8a6a8d39e
    --- /dev/null
    +++ b/docs/content/wiki/misc/release_notes/simplepie_1.1.md
    @@ -0,0 +1,57 @@
    ++++
    +title = "SimplePie 1.1 \"Blackberry\""
    ++++
    +
    +- 1.1 released on 2 January 2008.
    +- 1.1.1 released on 15 March 2008.
    +- 1.1.2 released on 16 November 2008.
    +- 1.1.3 released on 20 December 2008.
    +
    +This version is primarily made up of enhancements and minor bug fixes that didn't make the 1.0 release schedule. This is what 1.0 was intended to be. We also sat on this release for an additional 4 months to try to catch as many bugs as possible before releasing.
    +
    +## New Features {#new_features}
    +
    +- Support for feed-level authors.
    +- Support for item-level authors inheriting from the feed-level.
    +- Support for item-level copyright.
    +- Support for feed- and item-level contributors.
    +- Support for the `atom:source` element.
    +- Support for limiting the number of items returned per feed with Multifeeds.
    +- Support for [HTML 5 Content-Type Sniffing](http://www.whatwg.org/specs/web-apps/current-work/#content-type-sniffing).
    +
    +## Changes in this Release {#changes_in_this_release}
    +
    +- Improved XML declaration parsing.
    +- Improved character set detection.
    +- Improved date handling, including supporting dates in a variety of western european languages (i.e. English, Dutch, French, German, Italian, Spanish, Finnish, Hungarian, and Greek).
    +- Improved HTML entity handling.
    +- Caching system has become more modular, paving the way for more caching options in the future.
    +- [Bug \#49](http://bugs.simplepie.org/issues/show/49): text/plain should not be an allowed MIME type. (1.1.2)
    +- [Bug \#64](http://bugs.simplepie.org/issues/show/64): Support flv-application/octet-stream as a valid Flash Video mime type. (1.1.2)
    +- [Bug \#102](http://bugs.simplepie.org/issues/show/102): Support the “text/rdf” content-type. (1.1.2)
    +
    +## Fixes in this Release {#fixes_in_this_release}
    +
    +- A number of bugs related to feed detection and date parsing.
    +- Bugs revolving around some non-typical uses of Media RSS and iTunes RSS.
    +- [PHP memory leak](@/wiki/faq/i_m_getting_memory_leaks.md) caused by PHP objects with recursive references.
    +- [Bug \#2](http://bugs.simplepie.org/issues/show/2): Blank enclosures. (1.1.1)
    +- [Bug \#5](http://bugs.simplepie.org/issues/show/5): Feeds can't be found. (1.1.1)
    +- [Bug \#20](http://bugs.simplepie.org/issues/show/20): SimplePie::set_raw_data() fails with UTF-16LE data. (1.1.1)
    +- [Bug \#30](http://bugs.simplepie.org/issues/show/30): add_to_digg() needs an update. (1.1.1)
    +- [Bug \#26](http://bugs.simplepie.org/issues/show/26): GB2312 must be treated as GB18030. (1.1.2)
    +- [Bug \#58](http://bugs.simplepie.org/issues/show/58): Compressed fsockopen data stream not decoding. (1.1.2)
    +- [Bug \#75](http://bugs.simplepie.org/issues/show/75): Work-around bug in libxml 2.7.0/2.7.1 of parsing of predefined entities. (1.1.2)
    +- [Bug \#109](http://bugs.simplepie.org/issues/show/109): Extend libxml workaround to other versions. (1.1.3)
    +- [Bug \#110](http://bugs.simplepie.org/issues/show/110): Wrong decoding of gzip compressed data when using fsockopen. (1.1.3)
    +
    +## Known Issues {#known_issues}
    +
    +- All known issues are tracked in our [Bug Tracker](http://bugs.simplepie.org/projects/sp1/issues?query_id=1).
    +
    +## Announcement {#announcement}
    +
    +- [http://simplepie.org/blog/2008/01/02/simplepie-11-is-now-available/](/blog/2008/01/02/simplepie-11-is-now-available/ "http://simplepie.org/blog/2008/01/02/simplepie-11-is-now-available/")
    +- [http://simplepie.org/blog/2008/03/15/simplepie-111-is-now-available/](/blog/2008/03/15/simplepie-111-is-now-available/ "http://simplepie.org/blog/2008/03/15/simplepie-111-is-now-available/")
    +- [http://simplepie.org/blog/2008/11/16/simplepie-112-is-now-available/](/blog/2008/11/16/simplepie-112-is-now-available/ "http://simplepie.org/blog/2008/11/16/simplepie-112-is-now-available/")
    +- [http://simplepie.org/blog/2008/12/20/simplepie-113-is-now-available/](/blog/2008/12/20/simplepie-113-is-now-available/ "http://simplepie.org/blog/2008/12/20/simplepie-113-is-now-available/")
    diff --git a/docs/content/wiki/misc/release_notes/simplepie_1.2.md b/docs/content/wiki/misc/release_notes/simplepie_1.2.md
    new file mode 100644
    index 000000000..c602c291e
    --- /dev/null
    +++ b/docs/content/wiki/misc/release_notes/simplepie_1.2.md
    @@ -0,0 +1,53 @@
    ++++
    +title = "SimplePie 1.2 \"Pecan\""
    ++++
    +
    +- 1.2 released on 11 July 2009
    +- 1.2.1 released on 15 October 2011
    +
    +This version was originally intended to finish 1.x development, adding in the remaining features that were intended after 1.0 (1.1 having mainly been taken up with bug fixes and other comparatively small features which could be done fairly quickly after 1.0). As it turned out, 1.1 was good enough for most, and 1.2 development stagnated, leaving it with a lot less new features than originally intended. Eventually it was decided the best course of action was simply to ship 1.2, as what code there was was well-tested, and move almost all development to SimplePie 2.
    +
    +## New Features {#new_features}
    +
    +- [Bug \#7](http://bugs.simplepie.org/issues/show/7): SimplePie_Locator should be able to return all available feeds.
    +- [Bug \#18](http://bugs.simplepie.org/issues/show/18): MySQL caching.
    +- [Bug \#125](http://bugs.simplepie.org/issues/show/125): Parse RSS 2.0 category 'domain' attribute.
    +
    +## Changes in this Release {#changes_in_this_release}
    +
    +- [Bug \#25](http://bugs.simplepie.org/issues/show/25): HTTP status code is now checked, and we fail on HTTP errors.
    +- [Bug \#43](http://bugs.simplepie.org/issues/show/43): Pay attention to error_reporting settings in SimplePie_Misc::error().
    +- [Bug \#83](http://bugs.simplepie.org/issues/show/83): Test suite now runs on PHP 5.3.0.
    +- [Bug \#88](http://bugs.simplepie.org/issues/show/88): Always treat \ in RSS 2.0 as HTML.
    +- [Bug \#120](http://bugs.simplepie.org/issues/show/120): Remove previous libxml2/PHP bug workaround, as it broke test cases, and use XMLReader instead.
    +- [Bug \#135](http://bugs.simplepie.org/issues/show/135): Allow SimplePie to work with zend.ze1_compatibility_mode=On.
    +
    +## Fixes in this Release {#fixes_in_this_release}
    +
    +- [Bug \#22](http://bugs.simplepie.org/issues/show/22): Numeric entity causes issues when at end of string.
    +- [Bug \#24](http://bugs.simplepie.org/issues/show/24): Subscribe methods break on non-US-ASCII supersets.
    +- [Bug \#100](http://bugs.simplepie.org/issues/show/100): Passwords lowercased when normalizing URLs.
    +- [Bug \#115](http://bugs.simplepie.org/issues/show/115): Fatal error caused by call to a member function get_error_string() on a non-object.
    +- [Bug \#116](http://bugs.simplepie.org/issues/show/116): Incorrect encoding used on certain feeds.
    +- [Bug \#122](http://bugs.simplepie.org/issues/show/122): gzinflate() error on valid Content-Encoding: gzip response.
    +- [Bug \#124](http://bugs.simplepie.org/issues/show/124): SimplePie_Misc::normalize_url() causes PHP to crash on preg_replace_callback().
    +
    +## Fixes in SimplePie 1.2.1 {#fixes_in_simplepie_121}
    +
    +See [commit log](https://github.com/simplepie/simplepie/compare/1.2...1.2.1) and [issues closed](https://github.com/simplepie/simplepie/issues?milestone=4&state=closed).
    +
    +- [Issue \#112](https://github.com/simplepie/simplepie/issues/112): SimplePie_IRI::set_query() improperly decodes URLs passed in query string values. (See also [issue \#108](https://github.com/simplepie/simplepie/issues/108) and [issue \#58](https://github.com/simplepie/simplepie/issues/58))
    +- [Issue \#51](https://github.com/simplepie/simplepie/issues/51): change_encoding function has wrong case in string comparison
    +- [Issue \#23](https://github.com/simplepie/simplepie/issues/23): SimplePie does not find description tags in RSS 0.90 feeds
    +- [Issue \#28](https://github.com/simplepie/simplepie/issues/28): get_date() can returns false on failure, get_local_date() doesn't cope with this
    +- [Issue \#38](https://github.com/simplepie/simplepie/issues/38): Wrong encoding returned for EUC-JP.
    +- [Issue \#117](https://github.com/simplepie/simplepie/issues/117): Don't leak fsockopen's special HTTPS host in request headers.
    +- [Issue \#149](https://github.com/simplepie/simplepie/issues/149): SimplePie_gzdecode Code Typo
    +
    +## Known Issues {#known_issues}
    +
    +- All known issues are tracked in our [Bug Tracker](http://bugs.simplepie.org/projects/sp1/issues?query_id=2).
    +
    +## Announcement {#announcement}
    +
    +- [http://simplepie.org/blog/2009/07/11/simplepie-1-2-now-available/](/blog/2009/07/11/simplepie-1-2-now-available/ "http://simplepie.org/blog/2009/07/11/simplepie-1-2-now-available/")
    diff --git a/docs/content/wiki/misc/release_notes/simplepie_1.3.md b/docs/content/wiki/misc/release_notes/simplepie_1.3.md
    new file mode 100644
    index 000000000..d0002e539
    --- /dev/null
    +++ b/docs/content/wiki/misc/release_notes/simplepie_1.3.md
    @@ -0,0 +1,75 @@
    ++++
    +title = "SimplePie 1.3 \"Boysenberry\""
    ++++
    +
    +- 1.3 released on 7 July 2012
    +
    +This version was our first release to drop support for PHP 4. For this release, `simplepie.inc` was split into separate files, with one-class-per-file to enable autoloading. We've added a cache interface to make it much easier to implement your own cache backend.
    +
    +## New Features {#new_features}
    +
    +- [Commit 8aba553](https://github.com/simplepie/simplepie/commit/8aba553): Each class is now split into separate files. To autoload SimplePie, simply include or require `autoloader.php` in your project. You can also run `build/compile.php` to create a combined file much like `simplepie.inc`
    +- [Commit bbc83bd](https://github.com/simplepie/simplepie/commit/bbc83bd): We now use interfaces and abstract classes for caching classes. To add your own caching method, use `SimplePie_Cache::register()` and implement the `SimplePie_Cache_Base` interface.
    +- We [now support Memcache-based](https://github.com/simplepie/simplepie/pull/147) caching via `SimplePie_Cache_Memcache`. To use this, set your cache location to `memcache://localhost:11211/?timeout=3600&prefix=sp_` (for `localhost` on port 11211. All tables will be prefixed with `sp_` and data will expire after 3600 seconds).
    +- `SimplePie::error()` now returns an array if an error occurs while using multifeeds. The index of the array elements can be used to match up with the URL you passed in.
    +- `SimplePie_Item` now has `get_gmdate()` to get a date independent of your server's timezone.
    +- `SimplePie_Item` [now has a ''get_updated_date()'' method](https://github.com/simplepie/simplepie/pull/134) (there is also a corresponding `get_updated_gmdate()` method).
    +- `SimplePie_Item::get_description()` now has a new parameter: set `$description_only` (the first parameter) to true to avoid falling back to the content.
    +- Class overrides are now managed by a central registry. The old `set_*_class()` methods are still available, however new code is encouraged to use `$feed->get_registry()->register()` (see ''SimplePie_Registry::register()'' for details)
    +
    +## Changes in this Release {#changes_in_this_release}
    +
    +- The ability to pass parameters into the `SimplePie` constructor has been removed. Use the `SimplePie::set_feed_url()` method instead.
    +- The `SimplePie::get_favicon()` and `SimplePie::set_favicon_handler()` methods have been removed.
    +- `SimplePie::subscribe_*()` methods have also been removed (with the exception of `SimplePie::subscribe_url()`).
    +- [Commit d025026](https://github.com/simplepie/simplepie/commit/d025026): `SimplePie::enable_xml_dump()` has been removed and replaced with `SimplePie::get_raw_data()`. This new method is always available, and you can now continue to use SimplePie as normal.
    +- [Bug \#37](https://github.com/simplepie/simplepie/issues/37): We now use `DOMDocument` internally to parse HTML documents for autodiscovery. This may mean that sites which previously failed autodiscovery will work.
    +- We now use PHPUnit-style tests for all the new tests. Old-style tests have not been converted fully, but are still run via PHPUnit. All testing is now also automatically run by [Travis CI](http://travis-ci.org/#!/simplepie/simplepie) on push, on the latest versions of PHP 5.2, 5.3 and 5.4.
    +
    +## Fixes in this Release {#fixes_in_this_release}
    +
    +See [commit log](https://github.com/simplepie/simplepie/compare/1.2...1.3) and [issues closed](https://github.com/simplepie/simplepie/issues?milestone=5&state=closed) for the full list.
    +
    +- [Bug \#1](https://github.com/simplepie/simplepie/issues/1): Only Final Content-Type Should Be Used
    +- [Bug \#5](https://github.com/simplepie/simplepie/issues/5): Use strict-comparison where possible
    +- [Bug \#11](https://github.com/simplepie/simplepie/issues/11): Support Content-Encoding: chunked
    +- [Bug \#14](https://github.com/simplepie/simplepie/issues/14): can't override sort_items in multifeed + merge_items can't be overridden
    +- [Bug \#20](https://github.com/simplepie/simplepie/issues/20): Send Accept header
    +- [Bug \#26](https://github.com/simplepie/simplepie/issues/26): Quotes are removed from ETag headers
    +- [Bug \#31](https://github.com/simplepie/simplepie/issues/31): Warning: error_log() has been disabled for security reasons
    +- [Bug \#32](https://github.com/simplepie/simplepie/issues/32): Array element test needed
    +- [Bug \#33](https://github.com/simplepie/simplepie/issues/33): Latitude and longitude are not parsed if excess whitespace exists in the element data
    +- [Bug \#34](https://github.com/simplepie/simplepie/issues/34): XML declaration parsing bug
    +- [Bug \#36](https://github.com/simplepie/simplepie/issues/36): SimplePie_Sanitize::sanitize does not strip attributes correctly.
    +- [Bug \#48](https://github.com/simplepie/simplepie/issues/48): Fails Strict Standards - Multiple Errors
    +- [Bug \#60](https://github.com/simplepie/simplepie/issues/60): Fatal error: Call to undefined method SimplePie_File::SimplePie_File()
    +- [Bug \#62](https://github.com/simplepie/simplepie/issues/62): Option to force summary only in get_description()
    +- [Bug \#75](https://github.com/simplepie/simplepie/issues/75): patches for a couple of problems
    +- [Bug \#78](https://github.com/simplepie/simplepie/issues/78): set_cache_location - MySQL Cache string broken (url encode/decode)
    +- [Bug \#81](https://github.com/simplepie/simplepie/issues/81): \[BUG\] SimplePie\_URI
    +- [Bug \#92](https://github.com/simplepie/simplepie/issues/92): Non-static method should not be called statically errors
    +- [Bug \#129](https://github.com/simplepie/simplepie/issues/129): javascript output trigger is flawed and can break page views
    +- [Bug \#141](https://github.com/simplepie/simplepie/issues/141): RSS 1.0 miss some unique identifier
    +- [Bug \#145](https://github.com/simplepie/simplepie/issues/145): rowCount is a method of PDO, not property
    +- [Bug \#152](https://github.com/simplepie/simplepie/issues/152): PHP Parse error
    +- [Bug \#156](https://github.com/simplepie/simplepie/issues/156): SimplePie::merge_items should be a static method
    +- [Bug \#169](https://github.com/simplepie/simplepie/pull/169): Fix Strict errors shown by removing deprecated is_a()
    +- [Bug \#170](https://github.com/simplepie/simplepie/issues/170): Links to wrong version of BSD license
    +- [Bug \#175](https://github.com/simplepie/simplepie/issues/175): ATOM “updated”
    +- [Bug \#183](https://github.com/simplepie/simplepie/pull/183): Updated deflator, fixes “data error” (improved)
    +- [Bug \#195](https://github.com/simplepie/simplepie/issues/195): Testsuite broken
    +
    +## Fixes in SimplePie 1.3.1 {#fixes_in_simplepie_131}
    +
    +- [Bug \#214](https://github.com/simplepie/simplepie/issues/214): Call to a member function get_uri() on a non-object in simplepie/library/SimplePie/Misc.php on line 83
    +- [Bug \#219](https://github.com/simplepie/simplepie/issues/219): Well, it happened
    +- [Bug \#241](https://github.com/simplepie/simplepie/issues/241): DOMDocument can be disabled
    +- [Bug \#243](https://github.com/simplepie/simplepie/pull/243): Fix backwards compatibility with cache subclasses
    +
    +## Known Issues {#known_issues}
    +
    +- All known issues are tracked in our [Bug Tracker](https://github.com/simplepie/simplepie/issues?milestone=9&state=open).
    +
    +## Announcement {#announcement}
    +
    +- [http://simplepie.org/blog/2012/07/07/one-dot-three/](/blog/2012/07/07/one-dot-three/ "http://simplepie.org/blog/2012/07/07/one-dot-three/")
    diff --git a/docs/content/wiki/misc/release_notes/simplepie_beta_1.md b/docs/content/wiki/misc/release_notes/simplepie_beta_1.md
    new file mode 100644
    index 000000000..c0dd5f155
    --- /dev/null
    +++ b/docs/content/wiki/misc/release_notes/simplepie_beta_1.md
    @@ -0,0 +1,11 @@
    ++++
    +title = "SimplePie Beta 1"
    ++++
    +
    +Released on 29 January 2006.
    +
    +## New Features {#new_features}
    +
    +- Add to Digg, Furl, My Web 2.0, and Reddit
    +- One-click subscribing to My AOL, MSN, Newsburst, Odeo, and Podnova
    +- Support for `podcast: protocol * Ultra-Liberal Feed Locator * Support for iPhoto 6 photocasts * Ability to bypass image hotlink blocking when reading feeds. * Full support for feeds encoded as: `UCS-4`, `UCS-4BE`, `UCS-4LE`, `UCS-2`, `UCS-2BE`, `UCS-2LE`, `UCS-32`, `UCS-32BE`, `UCS-32LE`, `UCS-16`, `UCS-16BE`, `UCS-16LE`, `UTF-7`, `UTF7-IMAP`, `UTF-8`, `UTF-16`, `UTF-32`, `ASCII`, `EUC-JP`, `EUCJP-win`, `Shift_JIS`, `SJIS-win`, `ISO-2022-JP`, `JIS`, `ISO-8859-1`, `ISO-8859-2`, `ISO-8859-3`, `ISO-8859-4`, `ISO-8859-5`, `ISO-8859-6`, `ISO-8859-7`, `ISO-8859-8`, `ISO-8859-9`, `ISO-8859-10`, `ISO-8859-13`, `ISO-8859-14`, `ISO-8859-15`, `byte2be`, `byte2le`, `byte4be`, `byte4le`, `BASE64`, `HTML-ENTITIES`, `7bit`, `8bit`, `EUC-CN`, `EUC-TW`, `EUC-KR`, `BIG5`, `GB2312`, `BIG5-HKSCS`, `Windows-1251`, `Windows-1252`, `KOI8-R`, `HZ`, `ISO-2022-KR`, `CP866`, `CP936`, `CP959`, and `CP949`via PHP's mbstring support. ===== Changes in this Release ===== * Handling of entities from`htmlentities()`to`html_special_chars()`which significantly helped in supporting international character sets. *`DOCTYPE`s in feeds are now stripped out, since we don't do anything with them. * User-Agent has again changed to the following format: `SimplePie/1.0 Beta (Feed Parser; ; Allow like Gecko) Build/20060118'' ===== Fixes in this Release ===== \* Fixed an issue where cache files would stay for hours instead of minutes. \* Fixed an issue where extraneous space in a closing tag could crash the feed. \* Fixed a few other miscellaneous bugs ===== Announcement ===== \* [http://simplepie.org/blog/2006/01/29/simplepie-10-beta-now-available/](/blog/2006/01/29/simplepie-10-beta-now-available/ "http://simplepie.org/blog/2006/01/29/simplepie-10-beta-now-available/")
    diff --git a/docs/content/wiki/misc/release_notes/simplepie_beta_2.md b/docs/content/wiki/misc/release_notes/simplepie_beta_2.md
    new file mode 100644
    index 000000000..361377ce2
    --- /dev/null
    +++ b/docs/content/wiki/misc/release_notes/simplepie_beta_2.md
    @@ -0,0 +1,17 @@
    ++++
    +title = "SimplePie Beta 2"
    ++++
    +
    +Released on 2 June 2006.
    +
    +## New Features {#new_features}
    +
    +- Support for embedded enclosures. This is a different function from the old enclosures code, which is more basic. Utilizes QuickTime for most formats. Also supports Windows Media and Flash. Odeo MP3's utilize the Flash-based Odeo Player. Bypasses issues with the recently released Eolas changes to IE.
    +- You can now manually configure which tags and attributes are stripped from the feed content. Intelligent defaults are used otherwise.
    +- Support for namespaces: XML, RSS, RSS 2, RDF, Atom, Dublin Core, Content, and XHTML.
    +- Errors that occur when a feed cannot be found and when there is a parsing error are now caught in a special error property. Since these are SimplePie-specific errors, these are handled differently than other errors. These error messages can now be styled to fit your particular application.
    +- Option that allows you to encode potentially dangerous tags instead of stripping them.
    +- `handle_content_type`, when placed before any output to the page, will automatically set the proper character encoding for the feed output (UTF-8), as well as the correct mime-type (`text/html`). A different mime-type can be passed as a string parameter.
    +- Support for the [iconv](http://php.net/iconv) extension. This brings the total number of supported encodings to 98. See the supported character encodings chart for more details.
    +- Support for Basic Authentication.
    +- `pcast: is now a supported protocol. * Support for stripping certain kinds of advertisements from feeds. Namely Pheedo, AdSense, and the large image ad from InfoWorld.com. * Compatibility layer that allows existing Beta 1 installations to utilize the Beta 2 library without any rewriting (although moving to the Beta 2 syntax is recommended as Beta 1 is no longer supported). * SimplePie Compatibility Test that assists users in determining if their webhost supports everything they need to run SimplePie optimally. * One-click support for Netvibes, Blinklist, and Ma.gnolia. * Support for `xml:base`. ===== Changes in this Release ===== * SimplePie is now properly object-oriented. Some of the syntax has been slightly changed (i.e. each item is now an object with properties and methods), but it's all for the best. * `\`tags have been stripped by default for quite a while. Now, inline event handlers are as well by default. *`get_item_quantity()`now accepts a maximum value for the parameter. The function will either return the maximum value or the total number of items/entries in the feed—whichever is less. * The enclosures property of the item object is now an array that contains all available enclosures. * All feed output is served as UTF-8. All of it. This allows you to put multiple feeds on the same page without worrying about conflicts between UTF-8, ISO-8859-1, and US-ASCII. * The image hotlink block bypass is now fully integrated into the core of SimplePie, an is as easy as setting a configuration option. ===== Fixes in this Release ===== * Parsing core was completely re-written from scratch to better support Atom and other standards in general. * Relative URL's in feed content are now resolved back to the originating site instead of the SimplePie implementor's domain. * Issues with tag and attribute stripping. * CDATA sections within CDATA sections are now properly supported. * Images in Yahoo! News feeds are now supported. * A slew of issues with the Atom 1.0 feed from tbray.org * SimplePie is now fully RFC3339/ISO8601 complaint (for dates and timestamps and such). * Some glitches where tags with the same name, even if they are for different purposes, were getting confused with each other. * Other miscellaneous bugs and support forum issues. ===== Known Issues ===== * Does not support the ISO8601 datestamps in Blogger Beta feeds * Feeds where the items either don't have a datestamp or the datestamp is not understood will sort by oldest to newest, rather than the (better) newest to oldest. * Self-closing author tags will cause crashes *`get_version`is broken * Lots of bugs with rewritten image URLs for bypassing image hotlink blocks. This feature can be disabled by setting the following configuration option:`bypass_image_hotlink(false)'' \* Invalid dates return 31 December 1969 \* Feeds with superfluous spaces in around equals-signs cause parse issues \* Random issues with ISO-8859-1 feeds \* Some strtotime() RFC822 inconsistencies \* Various issues with  ===== Announcement ===== \* [http://simplepie.org/blog/2006/06/02/simplepie-beta-2-is-now-available/](/blog/2006/06/02/simplepie-beta-2-is-now-available/ "http://simplepie.org/blog/2006/06/02/simplepie-beta-2-is-now-available/")
    diff --git a/docs/content/wiki/misc/release_notes/simplepie_beta_3.md b/docs/content/wiki/misc/release_notes/simplepie_beta_3.md
    new file mode 100644
    index 000000000..1f1cd3901
    --- /dev/null
    +++ b/docs/content/wiki/misc/release_notes/simplepie_beta_3.md
    @@ -0,0 +1,50 @@
    ++++
    +title = "SimplePie Beta 3 \"Lemon Meringue\""
    ++++
    +
    +Released on 1 November 2006. Beta 3.1 released on 14 November 2006. Beta 3.2 released on 24 November 2006.
    +
    +## New Features {#new_features}
    +
    +- Support for Internationalized Domain Names (IDN)
    +- Vastly improved character set detection (HTTP Headers, Unicode BOM, Prologue, default to UTF-8)
    +- Support for `outlookfeed:` for Outlook 2007
    +- Support for HTTP Conditional Get
    +- Support for GZIP-encoded feeds
    +- Override the input encoding
    +- Allow custom output encoding
    +- Expose all data that we use for items and feeds. These should be accessible directly as `$item→data['summary']`, etc.
    +- Implemented get_favicon()
    +- One-click Bookmarks: Wists, Simpy, Blogmarks, Smarking, Segnalo
    +- One-click subscriptions: Feedlounge, Feedster, Feedfeeds, Gritwire, Eskobo
    +- Strip attributes: `bgsound`, `expr`, `onfinish`, `onerror`
    +- `$feed→errors` also catches errors about lots of other things.
    +- When embedding A/V podcasts, if the content type doesn't exist in our list of supported mime-types, check the file extension and make an educated guess before giving up.
    +- Atom 1.0 Categories
    +- [native_embed()](@/wiki/reference/simplepie_enclosure/native_embed.md) which uses the (invalid) embed-only method of embedding multimedia content, which bypasses issues with the object tag in IE.
    +
    +## Changes in this Release {#changes_in_this_release}
    +
    +- Cached filenames as SHA1 hashes.
    +- Change `fix_protocol()` to replace any scheme which is not http or https with http (of course keeping current checks to allow local URLs)
    +- `bypass_image_hotlink()` is disabled by default due to security and compatibility issues.
    +- Rewrote external JavaScript code for embedded podcasts using the more efficient [heredoc](http://php.net/heredoc) syntax
    +- To fetch remote files, we now try [cURL](http://php.net/curl), then [fsockopen()](http://php.net/fsockopen).
    +
    +## Fixes in this Release {#fixes_in_this_release}
    +
    +- Fixed a bug where if an item had a tag with a value, and there was a sub-element containing the same tag with a different value, the second tag would replace the value of the first (Beta 3.2)
    +- Fixed an issue where PHP 4's expat XML parser would hang on invalid characters even if PHP 5's parser would pass those same characters (Beta 3.2)
    +- Fixed some issues with handling gzipped feeds (Beta 3.1)
    +- Feeds where the items either don't have a datestamp or the datestamp is not understood now sort by newest to oldest.
    +- Problems with self-closing author tag
    +- Unable to modify `ini_set` for user agent string
    +- Various issues with relative links
    +- Problems with get_version
    +- Rewritten image URLs for bypassing image hotlink blocks
    +- RSS 0.9 namespace
    +- Invalid dates should return false
    +- SVG issues
    +- Issues with `strip_ads()`
    +- Superfluous spaces in prologue
    +- _TRANSLIT patch \* Multiple link tags in Atom feed. \* strtotime() RFC822 inconsistency. \* Various issues with tbray.org \* Base64 encoding in Atom 1.0 (patch by Peter Janes) \* Fix some of the quirks in the [embed()](@/wiki/reference/simplepie_enclosure/embed.md) function \* Improved support for more specific ISO8601 datestamps (tested with Blogger Beta feeds). \* Lots and lots and lots of Beta 3-specific, pre-release bugs. :) ===== Known Issues ===== \* Bug 270 - Under certain circumstances, SimplePie may throw an error when encountering an unclosed CDATA block inside a feed. \* Bug 403 - Occassionally, PHP4's XML parser will choke on characters that are not part of the current character set, while PHP5's XML parser will pass them as question marks. **Fixed in Beta 3.2** \* Bug 431 - If a title tag is embedded inside another title tag, or if there are multiple title tags inside of a feed item, SimplePie will use the latter of the two. **Fixed in Beta 3.2** \* Bug 454 - SimplePie does not properly handle custom DOCTYPEs in RDF/RSS 1.0 feeds. \* Bug 483 - It is possible for SimplePie to hang on 404 pages if the RSS Locator gets invoked and has to go through lots of links. \* Bug 494 - Errors while decoding gzipped feeds with fsockopen(). **Fixed in Beta 3.1** \* Bug 503 - Errors while decoding gzipped feeds with cURL. **Fixed in Beta 3.1** \* Bug 528 - Over-zealous attribute stripping when post contains example (X)HTML. \* Bug 542 - When feed retrieval times out, SP should use the previously cached version instead. \* Bug 567 - Fatal error in PHP 5.2 ===== Announcement ===== \* [http://simplepie.org/blog/2006/11/01/simplepie-beta-3-is-now-available/](/blog/2006/11/01/simplepie-beta-3-is-now-available/ "http://simplepie.org/blog/2006/11/01/simplepie-beta-3-is-now-available/")_
    diff --git a/docs/content/wiki/misc/release_notes/simplepie_preview_release.md b/docs/content/wiki/misc/release_notes/simplepie_preview_release.md
    new file mode 100644
    index 000000000..1dd504e3c
    --- /dev/null
    +++ b/docs/content/wiki/misc/release_notes/simplepie_preview_release.md
    @@ -0,0 +1,34 @@
    ++++
    +title = "SimplePie Preview Release"
    ++++
    +
    +Released on 10 January 2006. Was known as 0.97 during development.
    +
    +## New Features {#new_features}
    +
    +- Added support for Atom 1.0.
    +- Added support for [cURL](http://php.net/curl) for webhosts which have `allow_url_fopen` disabled.
    +- Added a timeout for remote feeds, so that slow servers don't hold up the page load for too long…
    +- Added support for PHP 5.x.
    +- Added support for one-click subscribing to several online aggregators.
    +- Added support for one-click adding to [del.icio.us](http://del.icio.us) and [Newsvine](http://newsvine.com).
    +- Added support for one-click searching for linkbacks on Technorati.
    +
    +## Changes in this Release {#changes_in_this_release}
    +
    +- The User-Agent has changed: `SimplePie/1.0PR (Feed Parser; http://www.simplepie.org) Build/20060108`
    +- Re-wrote the XML parsing core. No longer relies on [XMLize](http://hansanderson.com/php/xml/). This significantly helps with feed processing.
    +- Revamped the caching system to use serialized caching.
    +- SimplePie is now object-oriented. This will make it easier to implement, and have fewer conflicts with other software.
    +
    +## Fixes in this Release {#fixes_in_this_release}
    +
    +- Line breaks in `
    ` tags are respected.
    +- You can leave opened tags open in “example”-type tags like `` and `
    `.
    +- Caching can be disabled.
    +- Resolved an issue with feeds being cached for any amount of time other than 60 minutes.
    +- Resolved an issue where PHP could potentially go into an infinite loop if the cache file either can't be opened or is empty.
    +
    +## Announcement {#announcement}
    +
    +- [http://simplepie.org/blog/2006/01/10/version-10-preview-release-bugfix-1/](/blog/2006/01/10/version-10-preview-release-bugfix-1/ "http://simplepie.org/blog/2006/01/10/version-10-preview-release-bugfix-1/")
    diff --git a/docs/content/wiki/playground/playground.md b/docs/content/wiki/playground/playground.md
    new file mode 100644
    index 000000000..828f0eed8
    --- /dev/null
    +++ b/docs/content/wiki/playground/playground.md
    @@ -0,0 +1,3 @@
    ++++
    +title = "PlayGround"
    ++++
    diff --git a/docs/content/wiki/plugins/_index.md b/docs/content/wiki/plugins/_index.md
    new file mode 100644
    index 000000000..8306d005e
    --- /dev/null
    +++ b/docs/content/wiki/plugins/_index.md
    @@ -0,0 +1,172 @@
    ++++
    +title = "SimplePie Plugins and Integration"
    ++++
    +
    +This is a list of links for documentation for all of the SimplePie plugins and integrations that we are aware of. Let's try to keep this list alphabetized so that it stays well-organized.
    +
    +
    + +Also check out [SimplePie Add-ons](@/wiki/addons/_index.md) for enhancements to the core SimplePie functionality. + +
    + +Are you a plugin developer who wants to list a plugin here? Read [Guidelines for Developers](@/wiki/plugins/guidelines_for_developers.md). + +## Aggregators {#aggregators} + +- [Pheedr.net](http://pheedr.net) – A clean, readable, RSS client that's designed for reading. +- [Blogger Poster](http://bloggerposter.com) – Blogger Poster is a PowerFull Application which is Powered by Simple Pie! It Pulls content from the RSS Feeds, Google News, Yahoo News and several other sources and lets you to Automatically Post to your Blogger.com Blogs and WordPress Blogs! It not only allows you to Post also has a several other buch of tools to Customize the Content and enjoy the Power of Automated Blogging it Posts! One of Most Simple Pie Powered Application Ever Seen! + + + +- [PHP RSS Reader](http://www.phprssreader.com) – PHP RSS Reader is a SimplePie powered application which can crawl an unlimited number of feeds & presents them with an easy-to-use interface. For an organized navigation, It is possible to create categories & place feeds inside them. A handy feature is “keyword-based” categories which can auto-move items with the keywords mentioned into the related categories which is great for anyone who follows multiple feeds but hunts for specific keywords. +- [MyNewsCrawler](http://www.MyNewsCrawler.com) – SimplePie powered skinnable PHP/mySQL news aggregator script. Multi-language support, keyword filtered categories, RSS feed generator for filtered content, configurable AJAX powered scroller widgets, db maintenance features, editor's picks, AJAX powered admin functions at frontend, mootools accordion function, W3C compliance, installation service available, more… +- [feedmeplz](http://feedmeplz.com) – A hosted server-side aggregator, powered by SimplePie. +- [Feed on Feeds](http://feedonfeeds.com) – Server side, multi-user RSS and Atom aggregator. +- [Lilina](http://getlilina.org) – Not yet using SimplePie, but will be soon? ;) +- [Interdose RSS Reader](http://labs.interdose.com/rss_reader/) – Hosted RSS reader/aggregator - UI currently in development/alpha, RSS fetch bot using SimplePie is already in the wild (User Agent “interdose-rss-bot”). +- [MonkeyChow](http://www.monkeychow.org) – Feed Aggregator Reader (branched from FeedOnFeeds) with Social Bookmarks (del.icio.us, Blogger, Newsvine, Technorati, mailto), Article Starring, Feed Tagging, OPML, Article Search, Reblogging and Refeeding, Aging, and Edit feed attributes. + + + +- [OMGWTFBBQ](http://omgwtfbbq.googlecode.com) – An in-development RSS and Atom aggregator. + +## BitWeaver {#bitweaver} + +- Support for SimplePie is built into the BitWeaver software as of the [BitWeaver R2 release](http://www.bitweaver.org/wiki/RSSPackage). Uses the SimplePie 1.0.x release. +- [ReBlogPackage](@/wiki/plugins/bitweaver/reblogpackage.md) – The Reblog Package is an RSS feed aggregator. You use it to parse the items of RSS feeds and add the content to your site as blog posts. + +## CakePHP {#cakephp} + +- [SimplePHP](@/wiki/plugins/cakephp/simplepie_module.md) – Here's a code snippet that pulls SimplePie into CakePHP. + +## Zend {#zend} + +- [SimpleZend](@/wiki/plugins/zend/simplepie_module.md) – Library for Zend Framework using SimplePie. + +## CMS Made Simple {#cms_made_simple} + +- [CMSSimplePie Module](http://dev.cmsmadesimple.org/projects/simplepie) – CMS Made Simple's new RSS Reader. Allows for multiple feed templates. Number of feed items displayed can be specified in module call or use the default module preference. + +## CodeIgniter {#codeigniter} + +\* [CodeIgniter Spark](http://getsparks.org/packages/ci-simplepie/show) Use SimplePie within your CodeIgniter application + +## DokuWiki {#dokuwiki} + +- Support for SimplePie is built into the DokuWiki software as of the [DokuWiki 2006-11-06 release](http://wiki.splitbrain.org/wiki:rss). Uses the outdated SimplePie Beta 3 release. + +## Drupal {#drupal} + +- [Feed API](@/wiki/plugins/drupal/feedapi.md) – Feed API aggregates feeds on a Drupal website by generating items or nodes from feeds. +- [Feedparser](@/wiki/plugins/drupal/feedparser.md) – This Drupal module relies on SimplePie instead of Drupal's built-in parser. +- [SimpleFeed](@/wiki/plugins/drupal/simplefeed.md) – Feed parsing done right! This new Drupal module parses feeds into nodes. +- [SimplePie Core](@/wiki/plugins/drupal/simplepie_core.md) – Makes the SimplePie library available to other Drupal modules. + +## Facebook {#facebook} + +- [Flog Blog](@/wiki/plugins/facebook/flogblog.md) – Flog allows you to quickly and easily integrate an existing blog into your Facebook profile! +- [Simply RSS](@/wiki/plugins/facebook/simplyrss.md) – Simply RSS provides an easy way to add feeds to you profile. + +## Habari {#habari} + +- [RN FlickrRSS](@/wiki/plugins/habari/flickrrss.md) – Show the images of Flickr by using RSS. + +## Joomla! {#joomla} + +- Support for SimplePie is built into the Joomla! software as of the [Joomla! 1.5 release](http://dev.joomla.org/component/option,com_jd-wiki/Itemid,/id,references:3pd-libraries/). Uses the SimplePie 1.0.x release. +- [AJAX RSS Reader with Draggable Divs](@/wiki/plugins/joomla/ajax_rss_reader.md) – A really cool module that brings RSS and Atom feeds into your Joomla-based sites. +- [FeedReaderJP](@/wiki/plugins/joomla/feedreaderjp.md) – A module that uses SimplePie to parse feeds and jQuery for the interface. +- [FeedGator](@/wiki/plugins/joomla/feedgator.md) – FeedGator is an RSS Aggregator that accepts multiple feeds and creates native Joomla! content items. +- [Simple RSS Feed Reader](@/wiki/plugins/joomla/simple_rss_feed_reader.md) – Adding RSS syndicated content inside your Joomla! website is now super-easy and simple! +- [SimplePie Demo Way of Feeding](@/wiki/plugins/joomla/simplepie_demo_way_of_feeding.md) – A simple plugin based on the standard SimplePie demo page. +- [Slick RSS](@/wiki/plugins/joomla/slick_rss.md) – Parse and Display RSS Feed News with Teaser Tooltip. +- [TARR (Tabbed Ajax RSS Reader)](@/wiki/plugins/joomla/tarr.md) – Tabbed AJAX RSS Reader +- [Thick RSS Browser](@/wiki/plugins/joomla/thick_rss_browser.md) – Module to show list of RSS-Feeds and display full-length news in a customizable thickbox window with navigation. +- [GCalendar](@/wiki/plugins/joomla/gcalendar.md) – Full integration of a google calendar into a joomla based web site. + +## Mobile Devices {#mobile_devices} + +- [mobilerss](http://www.mobilerss.net) – mobilerss enables you to view RSS News anywhere on any mobile device. +- [SimpleReader Mobile](http://m.simplepie.org) – An online news feed reader designed for a variety of mobile devices (Blackberry, Palm, PSP, Opera, Windows Mobile, etc) with a slick interface designed especially for the iPhone and the iPod touch. SimpleReader Mobile is very fast, easy to use, and supports all of the most popular types of news feeds. To get started, just enter the URL of a website that has a news feed. + +## MODx {#modx} + +- [PieX](@/wiki/plugins/modx/piex.md) – Adds an awesome news reader to your MODx CMS installation. + +## Mediawiki {#mediawiki} + +- [SimpleFeed](@/wiki/plugins/mediawiki/simplefeed.md) – An extension for Mediawiki that provides for more customization to the display than the official Mediawiki plugin. +- [SimplePie Plugin for Mediawiki](@/wiki/plugins/mediawiki/simplepie_plugin_for_mediawiki.md) – An intentionally simple plugin that displays feed items as a list. Allows for a small amount of customization. + +## Nucleus {#nucleus} + +- [NP_SimplePie](@/wiki/plugins/nucleus/np_simplepie.md) – Nucleus plugin. + +## Omeka {#omeka} + +- [SimplePieCore](http://groups.google.com/group/omeka-dev/t/198977bb72e552a) – Makes the SimplePie library available to other Omeka plugins. + +## PHP-Nuke {#php-nuke} + +- [nukePIE](@/wiki/plugins/php-nuke/nukepie.md) – Replace limited PHP-Nuke RSS block feed reader with SimplePie and BoxOver tooltips. + +## phpwcms {#phpwcms} + +- Support for SimplePie (v1.2) is built into [phpwcms](http://www.phpwcms.org) (as of [r284](http://code.google.com/p/phpwcms/source/detail?r=284)). + +## PlanetPlanet/PopURLs Clones {#planetplanetpopurls_clones} + +- [Couple of Minutes](http://www.coupleofminutes.com) – Entertainment and TV News! +- [1-TM](http://www.1-tm.com) – Boulevard World News +- [gmachina](http://gmachina.com) – gaming feeds in bulk +- [MiniBoxs](http://www.miniboxs.com) – “The Net's first RSS magazine!” +- [MoonMoon](http://moonmoon.org) – Personal PlanetPlanet-style software. +- [MyNT](http://my.ntugo.com) – An RSS reader with a twist. It's simplified, but powerful, and you can read your feeds without even logging in! +- [NewsBlocks Demo](@/wiki/tutorial/how_to_replicate_popurls.md "http://simplepie.org/wiki/tutorial/how_to_replicate_popurls") – Sample code that you can use to create your very own PopURLs clone! +- [Scintilla](http://scintilla.nature.com) – Nature and Science news. +- [The Web List](http://theweblist.net) – What people are clicking on today! +- [Toko bunga](http://toko-bunga-jakarta.net) + +## Plume CMS {#plume_cms} + +- [The Hotaru Project](@/wiki/plugins/plumecms/hotaru.md) – The Hotaru Project is a collection of plugins for Plume CMS, which includes a SimplePie plugin. + +## PunBB {#punbb} + +- [Feed Aggregator](@/wiki/plugins/punbb/feed_aggregator.md) – Easily add feeds to your PunBB-powered forums! + +## SilverStripe {#silverstripe} + +- Support for SimplePie is built into the SilverStripe software as of the [SilverStripe 2.x release](http://doc.silverstripe.com/doku.php?id=simplepie). Uses the outdated SimplePie Beta 3 release. + +## Simple Machines Forum {#simple_machines_forum} + +- [RSS Feeder](@/wiki/plugins/simplemachinesforum/rss_feeder.md) – RSS Feeder for SMF powered forums allow you to add feeds that will automatically post to your boards. + +## Textpattern {#textpattern} + +- [bit_rss](@/wiki/plugins/textpattern/bit_rss.md) – bit_rss is a SimplePie-based port of the tcm_rss plugin for Textpattern that used MagpieRSS. +- [SimplePie Plugin for Textpattern](@/wiki/plugins/textpattern/simplepie_plugin_for_textpattern.md) – An intentionally simple plugin that displays feed items as a list. Allows for a small amount of customization. +- [mka_simplepie](@/wiki/plugins/textpattern/mka_simplepie.md) – mka_simplepie - Embed RSS-Feeds with SimplePie. + +## WordPress {#wordpress} + +
    + +**Interested in creating a new WordPress plugin using SimplePie? [Read this!](@/wiki/plugins/wordpress/simplepie_core.md)** + +
    + +- [Dashboard Last News](@/wiki/plugins/wordpress/dashboard_last_news.md) – Allows you to display the last items of several feeds in your dashboard. +- [King RSS](@/wiki/plugins/wordpress/king_rss.md) – A feed widget for the new Wordpress Widgets system. +- [Lenky Related Links](@/wiki/plugins/wordpress/lenky_related_links.md) – Adds relevant external links to your blog posts. +- [MyTwitter](@/wiki/plugins/wordpress/mytwitter.md) – Plugin that displays your Twitter “tweets” in your WP blog. +- [RSS Combiner](@/wiki/plugins/wordpress/rss_combiner.md) – Wordpress RSS Combiner is a Wordpress-Plugin that lets you merge several RSS-Feeds into one. +- [RSS Image Widget](@/wiki/plugins/wordpress/rss_image_widget.md) – Displays images from feeds. +- [SimpleLife](@/wiki/plugins/wordpress/simplelife.md) – A very simple Wordpress Plugin adapted from a custom php script for lifestreams. +- [SimplePie Core](@/wiki/plugins/wordpress/simplepie_core.md) – Makes the SimplePie library available to other WordPress plugins. +- [SimplePie Plugin for WordPress](@/wiki/plugins/wordpress/simplepie_plugin_for_wordpress/_index.md) – A full-fledged WordPress plugin that allows you to a variety of options for displaying feeds on your site. +- [WP-o-Matic](@/wiki/plugins/wordpress/wp-o-matic.md) – WP-o-Matic is a Wordpress plugin that will allow you to create posts automatically from feeds. With its simple interface, you just type in the feed url, select in which categories you want to create the posts, and you're ready to go. +- [WP Theme OneNews](@/wiki/plugins/wordpress/wp_theme_onenews.md) – Build your own popurls-like news aggregator with this WordPress theme. +- [WP category feed](@/wiki/plugins/wordpress/wp_category_feed.md) – Add a feed field to wordpress category editor and use it to get feed in your category page . diff --git a/docs/content/wiki/plugins/bitweaver/_index.md b/docs/content/wiki/plugins/bitweaver/_index.md new file mode 100644 index 000000000..afb7b09f5 --- /dev/null +++ b/docs/content/wiki/plugins/bitweaver/_index.md @@ -0,0 +1,19 @@ ++++ +title = "BitWeaver" ++++ + +_“Bitweaver is an open source content management system. Its speed and power are ideal for large-scale community websites and corporate applications, but it is simple enough for non-technical small site users to set up and administrate. It comes fully featured on install but is easy to extend.”_ + + + +
    + +--- + +## Index {#index} + +### R {#r} + +- [ReBlogPackage](@/wiki/plugins/bitweaver/reblogpackage.md) + +
    diff --git a/docs/content/wiki/plugins/bitweaver/reblogpackage.md b/docs/content/wiki/plugins/bitweaver/reblogpackage.md new file mode 100644 index 000000000..74688f8af --- /dev/null +++ b/docs/content/wiki/plugins/bitweaver/reblogpackage.md @@ -0,0 +1,48 @@ ++++ +title = "ReBlogPackage" ++++ + +## The Basics {#the_basics} + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Main pageReBlogPackage
    AuthorUnknown
    Plugin VersionBeta 1
    Compatible BitWeaver versionRelease 2
    DownloadDownload
    Required SimplePie version1.0
    Optional HelpersUnknown
    Plugin SupportUnknown
    + +### About the Plugin {#about_the_plugin} + +The author has not yet updated this page with complete information. Please check out the “Main Page” URL listed above. + +If you are the author or maintainer of this software and want to update this documentation, please take a moment to read [Guidelines for Developers](@/wiki/plugins/guidelines_for_developers.md) to get a feel for the quality of documentation we're looking for. :) diff --git a/docs/content/wiki/plugins/cakephp/_index.md b/docs/content/wiki/plugins/cakephp/_index.md new file mode 100644 index 000000000..a5c8ec976 --- /dev/null +++ b/docs/content/wiki/plugins/cakephp/_index.md @@ -0,0 +1,19 @@ ++++ +title = "CakePHP" ++++ + +_“Cake is a rapid development framework for PHP which uses commonly known design patterns like ActiveRecord, Association Data Mapping, Front Controller and MVC. Our primary goal is to provide a structured framework that enables PHP users at all levels to rapidly develop robust web applications, without any loss to flexibility.”_ + + + +
    + +--- + +## Index {#index} + +### S {#s} + +- [SimplePHP](@/wiki/plugins/cakephp/simplepie_module.md) + +
    diff --git a/docs/content/wiki/plugins/cakephp/simplepie_module.md b/docs/content/wiki/plugins/cakephp/simplepie_module.md new file mode 100644 index 000000000..d7d17fa1a --- /dev/null +++ b/docs/content/wiki/plugins/cakephp/simplepie_module.md @@ -0,0 +1,91 @@ ++++ +title = "SimplePHP" ++++ + +## The Basics {#the_basics} + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Main pageSimplePHP
    AuthorMatt Curry (based on work by Scott Sansoni)
    Plugin Version1.0
    Compatible CakePHP version1.x
    DownloadDownload
    Required SimplePie version1.0
    Optional HelpersUnknown
    Plugin SupportNone
    + +### About the Plugin {#about_the_plugin} + +SimplePHP is a PHP class for retrieval and parsing of RSS feeds. This is a wrapper to that class making it easy to use in the CakePHP framwork. Much of this component is taken from the work of Scott Sansoni (). This is mostly an update so the component works with the lastest version of SimplePie. + +### What Do I Need To Know? {#what_do_i_need_to_know} + +These instructions assume that you have a familiarity with working with the CakePHP framework. + +## Installation {#installation} + +### Fresh Installation {#fresh_installation} + +#### Step 1: Download both the required files above {#step_1download_both_the_required_files_above} + +Download SimplePie and unzip the contents. Move the `simplepie.inc` file to one of the vendors folders. Rename the file to `simplepie.php`. I like to put the file in the subfolder with the README.txt and LICENSE.txt for easy reference. + +Download the SimplePHP component and unzip it to `app/controllers/components`. + +#### Step 2: Include it {#step_2include_it} + +Include the component in any controller that will need it. + +## Usage {#usage} + +### How to use it {#how_to_use_it} + +In your Controller Class: + +```php +Simplepie->feed('http://feeds.feedburner.com/pseudocoder'); + +?> +``` + +In your View Template: + +```php +link($item->get_title(), $item->get_permalink()) . '
    '; +} + +?> +``` diff --git a/docs/content/wiki/plugins/drupal/_index.md b/docs/content/wiki/plugins/drupal/_index.md new file mode 100644 index 000000000..68318b626 --- /dev/null +++ b/docs/content/wiki/plugins/drupal/_index.md @@ -0,0 +1,25 @@ ++++ +title = "Drupal" ++++ + +_“Drupal is a free software package that allows an individual or a community of users to easily publish, manage and organize a wide variety of content on a website. Tens of thousands of people and organizations have used Drupal to power scores of different web sites, including community web portals, discussion sites, corporate web sites, and more!”_ + + + +
    + +--- + +## Index {#index} + +### F {#f} + +- [Feed API](@/wiki/plugins/drupal/feedapi.md) +- [Feedparser](@/wiki/plugins/drupal/feedparser.md) + +### S {#s} + +- [SimpleFeed](@/wiki/plugins/drupal/simplefeed.md) +- [SimplePie Core](@/wiki/plugins/drupal/simplepie_core.md) + +
    diff --git a/docs/content/wiki/plugins/drupal/feedapi.md b/docs/content/wiki/plugins/drupal/feedapi.md new file mode 100644 index 000000000..63e20572f --- /dev/null +++ b/docs/content/wiki/plugins/drupal/feedapi.md @@ -0,0 +1,48 @@ ++++ +title = "Feed API" ++++ + +## The Basics {#the_basics} + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Main pageFeed API
    AuthorAron Novak
    Plugin Version0.3 beta
    Compatible Drupal version5.x
    DownloadDownload
    Required SimplePie version1.0.x
    Optional HelpersUnknown
    Plugin Supporthttp://drupal.org/project/issues/feedapi?categories=support&states=all
    + +### About the Plugin {#about_the_plugin} + +The author has not yet updated this page with complete information. Please check out the “Main Page” URL listed above. + +If you are the author or maintainer of this software and want to update this documentation, please take a moment to read [Guidelines for Developers](@/wiki/plugins/guidelines_for_developers.md) to get a feel for the quality of documentation we're looking for. :) diff --git a/docs/content/wiki/plugins/drupal/feedparser.md b/docs/content/wiki/plugins/drupal/feedparser.md new file mode 100644 index 000000000..f9397afae --- /dev/null +++ b/docs/content/wiki/plugins/drupal/feedparser.md @@ -0,0 +1,48 @@ ++++ +title = "Feedparser" ++++ + +## The Basics {#the_basics} + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Main pageFeedparser
    AuthorMike Carter
    Plugin VersionAlpha
    Compatible Drupal version4.7.x, 5.x
    DownloadDownload (4.7.x), Download (5.x)
    Required SimplePie versionUnknown (1.0?)
    Optional HelpersUnknown
    Plugin Supporthttp://drupal.org/project/issues/feedparser?categories=support&states=all
    + +### About the Plugin {#about_the_plugin} + +The author has not yet updated this page with complete information. Please check out the “Main Page” URL listed above. + +If you are the author or maintainer of this software and want to update this documentation, please take a moment to read [Guidelines for Developers](@/wiki/plugins/guidelines_for_developers.md) to get a feel for the quality of documentation we're looking for. :) diff --git a/docs/content/wiki/plugins/drupal/simplefeed.md b/docs/content/wiki/plugins/drupal/simplefeed.md new file mode 100644 index 000000000..0c1af45df --- /dev/null +++ b/docs/content/wiki/plugins/drupal/simplefeed.md @@ -0,0 +1,46 @@ ++++ +title = "SimpleFeed" ++++ + +## The Basics {#the_basics} + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Main pageSimpleFeed
    AuthorsTed Serbinski and Bill O'Connor
    Plugin Version1.0
    Compatible Drupal version5.x
    DownloadDownload
    Required SimplePie version1.0 or 1.1
    Plugin Supporthttp://drupal.org/project/issues/simplefeed
    + +### About the Plugin {#about_the_plugin} + +SimpleFeed is a super easy to use Drupal module that uses the SimplePie parsing engine to create feeds as nodes and then parse those feeds into feed item nodes. + +Sites using SimpleFeed: + +1. [Mom Blog Network](http://www.momblognetwork.com/) diff --git a/docs/content/wiki/plugins/drupal/simplepie_core.md b/docs/content/wiki/plugins/drupal/simplepie_core.md new file mode 100644 index 000000000..5ba439acd --- /dev/null +++ b/docs/content/wiki/plugins/drupal/simplepie_core.md @@ -0,0 +1,48 @@ ++++ +title = "SimplePie Core" ++++ + +## The Basics {#the_basics} + + + + + + + + + + + + + + + + + + + + + + + + +
    Main pageSimplePie Core
    AuthorMustafa Ulu
    Plugin VersionUnknown (Development Snapshot?)
    Compatible Drupal version5.x
    DownloadDownload
    + +### About the Plugin {#about_the_plugin} + +The author has not yet updated this page with complete information. Please check out the “Main Page” URL listed above. + +If you are the author or maintainer of this software and want to update this documentation, please take a moment to read [Guidelines for Developers](@/wiki/plugins/guidelines_for_developers.md) to get a feel for the quality of documentation we're looking for. :) + +### About SimplePie Core {#about_simplepie_core} + +From time to time, we get messages in support about people using multiple Drupal modules that utilize SimplePie, and sometimes they cause collisions because each plugin is bundling their own copy of SimplePie. In an effort to make things easier, we've released a new Drupal module that does absolutely nothing but load the latest version of SimplePie. This plugin is called **SimplePie Core**. + +### Why? {#why} + +There are a couple of reasons: + +1. To eliminate conflicts between multiple SimplePie-based modules installed at the same time. +2. To make it easier for people to get the latest SimplePie enhancements without requiring a new release from Drupal module developers. +3. And stuff. diff --git a/docs/content/wiki/plugins/facebook/_index.md b/docs/content/wiki/plugins/facebook/_index.md new file mode 100644 index 000000000..93bff9f57 --- /dev/null +++ b/docs/content/wiki/plugins/facebook/_index.md @@ -0,0 +1,23 @@ ++++ +title = "Facebook" ++++ + +_“Facebook is a social utility that connects you with the people around you. Upload photos or publish notes, get the latest news from your friends, post videos on your profile, tag your friends, use privacy settings to control who sees your info, join a network to see people who live, study, or work around you.”_ + + + +
    + +--- + +## Index {#index} + +### F {#f} + +- [Flog Blog](@/wiki/plugins/facebook/flogblog.md) + +### S {#s} + +- [Simply RSS](@/wiki/plugins/facebook/simplyrss.md) + +
    diff --git a/docs/content/wiki/plugins/facebook/flogblog.md b/docs/content/wiki/plugins/facebook/flogblog.md new file mode 100644 index 000000000..0622406ec --- /dev/null +++ b/docs/content/wiki/plugins/facebook/flogblog.md @@ -0,0 +1,18 @@ ++++ +title = "Flog Blog" ++++ + +## The Basics {#the_basics} + + + + + + + + +
    Main pageFlog Blog
    + +### About the App {#about_the_app} + +Facebook apps do not require manual installation. Because of this, you can simply click the above link to install Flog Blog into your profile or learn more about the app. diff --git a/docs/content/wiki/plugins/facebook/simplyrss.md b/docs/content/wiki/plugins/facebook/simplyrss.md new file mode 100644 index 000000000..54ded949a --- /dev/null +++ b/docs/content/wiki/plugins/facebook/simplyrss.md @@ -0,0 +1,18 @@ ++++ +title = "Simply RSS" ++++ + +## The Basics {#the_basics} + + + + + + + + +
    Main pageSimply RSS
    + +### About the App {#about_the_app} + +Facebook apps do not require manual installation. Because of this, you can simply click the above link to install Simply RSS into your profile or learn more about the app. diff --git a/docs/content/wiki/plugins/guidelines_for_developers.md b/docs/content/wiki/plugins/guidelines_for_developers.md new file mode 100644 index 000000000..1f1c135e0 --- /dev/null +++ b/docs/content/wiki/plugins/guidelines_for_developers.md @@ -0,0 +1,18 @@ ++++ +title = "Guidelines for Developers" ++++ + +Have you built a plugin or extension that allows SimplePie to integrate into another software package? Congratulations! You've just become a very valuable part of the SimplePie community! The primary guideline for this document is this: _You can have all of the greatest functionality in the world, but if people can't **use** it, what's the point?_ Please take this primary guideline seriously as you explain how to use your plugin. + +Remember that people using these plugins range from highly technical to a first-day PHP student. The _least_ experienced SimplePie user should be able to comprehend the [Introduction to PHP](http://php.net/tutorial) tutorial on [PHP.net](http://php.net). Let's try to gear the documentation for them, while providing obvious clues for those who are more experienced so they can get through it faster. A method that has served us pretty well is the way we go step-by-step starting with the to-the-point instruction, and then following with an explanation. If a person can't understand your instructions, it's a problem with the instructions – not the person. _The burden of clarity needs to be on the developer, not the user._ + +- We want all of the plugin documentation to be similarly formatted across pages. Please use [SimplePie Plugin for WordPress](@/wiki/plugins/wordpress/simplepie_plugin_for_wordpress/_index.md) as a template. (Don't edit it, just use it as a basis for your own plugin docs). +- When adding a link to your documentation to the [SimplePie Plugins and Integration](@/wiki/plugins/_index.md) page, please maintain the same formatting and be sure to add a short description next to the title so that people can skim the page and know what's what. +- Do you have a way of providing support? If you want us to create a new support forum at the SimplePie forums to handle this, send an email to me (Ryan) at this website, and I'll create one for you. We want people to be able to get the help they need, when they need it. We only ask that you take the time to support your users as best as you can. +- Please be prepared to talk about the following things in your documentation: + 1. About this plugin; What does another person (fundamentally) need to know? + 2. How would someone upgrade from a previous version to the latest version? + 3. How would a person do a fresh install of your plugin? + 4. Once the plugin has been installed, how does a person use it? + +There may be people who have found your plugin via the third-party software (WordPress, Joomla, etc.). Having helpful documentation here at the SimplePie site as well will likely get you even more users, because people come here to find out about feed parsing, and then see that you've written a plugin for the software that they're already using. That's a good thing for SimplePie, a good thing for the third-party software, and a good thing for your plugin! diff --git a/docs/content/wiki/plugins/habari/_index.md b/docs/content/wiki/plugins/habari/_index.md new file mode 100644 index 000000000..0a382bafe --- /dev/null +++ b/docs/content/wiki/plugins/habari/_index.md @@ -0,0 +1,19 @@ ++++ +title = "Habari" ++++ + +_“Habari is a next-generation, free software, blogging platform. Habari is being written with a firm understanding of the current state of blogging. Habari strongly favors open, standard, and documented protocols. Habari is being written specifically for modern web hosting environments, and uses modern object-oriented programming techniques.”_ + + + +
    + +--- + +## Index {#index} + +### R {#r} + +- [RN FlickrRSS](@/wiki/plugins/habari/flickrrss.md) + +
    diff --git a/docs/content/wiki/plugins/habari/flickrrss.md b/docs/content/wiki/plugins/habari/flickrrss.md new file mode 100644 index 000000000..9ab485cd0 --- /dev/null +++ b/docs/content/wiki/plugins/habari/flickrrss.md @@ -0,0 +1,48 @@ ++++ +title = "RN FlickrRSS" ++++ + +## The Basics {#the_basics} + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Main pageRN FlickrRSS
    Authorhttp://blog.tinyau.net
    Plugin Version1.0
    Compatible Habari version0.4
    DownloadDownload
    Required SimplePie version1.1
    Optional HelpersUnknown
    Plugin SupportUnknown
    + +### About the Plugin {#about_the_plugin} + +The author has not yet updated this page with complete information. Please check out the “Main Page” URL listed above. + +If you are the author or maintainer of this software and want to update this documentation, please take a moment to read [Guidelines for Developers](@/wiki/plugins/guidelines_for_developers.md) to get a feel for the quality of documentation we're looking for. :) diff --git a/docs/content/wiki/plugins/joomla/_index.md b/docs/content/wiki/plugins/joomla/_index.md new file mode 100644 index 000000000..65d751c70 --- /dev/null +++ b/docs/content/wiki/plugins/joomla/_index.md @@ -0,0 +1,39 @@ ++++ +title = "Joomla!" ++++ + +_“Joomla! is one of the most powerful Open Source Content Management Systems on the planet. It is used all over the world for everything from simple websites to complex corporate applications. Joomla! is easy to install, simple to manage, and reliable.”_ + + + +
    + +--- + +## Index {#index} + +### A {#a} + +- [AJAX RSS Reader with Draggable Divs](@/wiki/plugins/joomla/ajax_rss_reader.md) + +### F {#f} + +- [FeedGator](@/wiki/plugins/joomla/feedgator.md) +- [FeedReaderJP](@/wiki/plugins/joomla/feedreaderjp.md) + +### G {#g} + +- [GCalendar](@/wiki/plugins/joomla/gcalendar.md) + +### S {#s} + +- [SimplePie Demo Way of Feeding](@/wiki/plugins/joomla/simplepie_demo_way_of_feeding.md) +- [Simple RSS Feed Reader](@/wiki/plugins/joomla/simple_rss_feed_reader.md) +- [Slick RSS](@/wiki/plugins/joomla/slick_rss.md) + +### T {#t} + +- [TARR (Tabbed Ajax RSS Reader)](@/wiki/plugins/joomla/tarr.md) +- [Thick RSS Browser](@/wiki/plugins/joomla/thick_rss_browser.md) + +
    diff --git a/docs/content/wiki/plugins/joomla/ajax_rss_reader.md b/docs/content/wiki/plugins/joomla/ajax_rss_reader.md new file mode 100644 index 000000000..9578bcf2e --- /dev/null +++ b/docs/content/wiki/plugins/joomla/ajax_rss_reader.md @@ -0,0 +1,50 @@ ++++ +title = "AJAX RSS Reader with Draggable Divs" ++++ + +## The Basics {#the_basics} + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Main pageAJAX RSS Reader with Draggable Divs
    AuthorMarc Stroz
    Plugin Version2.2.8
    Compatible Joomla version1.0.x
    DEMODEMO
    DownloadDownload
    Required SimplePie versionBeta 3 (not 1.0-compatible)
    Optional HelpersUnknown
    Plugin SupportUnknown
    + +### About the Plugin {#about_the_plugin} + +AJAX RSS Reader is a plugin to Joomla 1.0.x that allows site admins to add up to 8 feeds into draggable boxes onto a page of the CMS. Site admins can allows users to change the feeds and with cookies on it will save the users feeds for return visits. Check out the Demo on PHP Augusta . diff --git a/docs/content/wiki/plugins/joomla/feedgator.md b/docs/content/wiki/plugins/joomla/feedgator.md new file mode 100644 index 000000000..987d902e2 --- /dev/null +++ b/docs/content/wiki/plugins/joomla/feedgator.md @@ -0,0 +1,48 @@ ++++ +title = "FeedGator" ++++ + +## The Basics {#the_basics} + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Main pageFeedGator
    AuthorMain developer: Matthew Faulds. Multiple Authors (see component for list).
    Plugin Version2.3.5
    Compatible Joomla! version1.5.x, 1.6.x and 1.7.x
    DownloadDownload
    Required SimplePie version1.0.1
    Optional HelpersUnknown
    Plugin Supporthttp://joomlacode.org/gf/project/feedgator/forum/
    + +### About the Plugin {#about_the_plugin} + +FeedGator imports RSS feeds into your Joomla! database as content items. The import can be into any kind of content component as long as there is a plugin to support it. + +FeedGator is the original RSS feed aggregator but it has been significantly updated with new features like full text importing. Please note: FeedGator does not display content items, that is done by the receiving content component. diff --git a/docs/content/wiki/plugins/joomla/feedreaderjp.md b/docs/content/wiki/plugins/joomla/feedreaderjp.md new file mode 100644 index 000000000..d94054483 --- /dev/null +++ b/docs/content/wiki/plugins/joomla/feedreaderjp.md @@ -0,0 +1,48 @@ ++++ +title = "FeedReaderJP" ++++ + +## The Basics {#the_basics} + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Main pageFeedReaderJP
    AuthorJoomlaProdigy Guy
    Plugin Version1.0 Beta
    Compatible Joomla version1.0.x
    DownloadDownload (Registration Required)
    Required SimplePie versionBeta 3 (not 1.0-compatible)
    Optional HelpersUnknown
    Plugin SupportUnknown
    + +### About the Plugin {#about_the_plugin} + +The author has not yet updated this page with complete information. Please check out the “Main Page” URL listed above. + +If you are the author or maintainer of this software and want to update this documentation, please take a moment to read [Guidelines for Developers](@/wiki/plugins/guidelines_for_developers.md) to get a feel for the quality of documentation we're looking for. :) diff --git a/docs/content/wiki/plugins/joomla/gcalendar.md b/docs/content/wiki/plugins/joomla/gcalendar.md new file mode 100644 index 000000000..bab6505c6 --- /dev/null +++ b/docs/content/wiki/plugins/joomla/gcalendar.md @@ -0,0 +1,53 @@ ++++ +title = "GCalendar" ++++ + +## The Basics {#the_basics} + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Main pageGCalendar Home
    AuthorAllon Moritz
    Plugin Version2.1.2
    Compatible Joomla version1.0.x/1.5.x
    DownloadDownload
    Required SimplePie versionv1.0 (included)
    Optional HelpersUnknown
    Plugin SupportUnknown
    + +### About the Plugin {#about_the_plugin} + +GCalendar integrates google calendar into a joomla based web site. The upcoming and latest event modules are using the [simplepie-gcalendar library](@/wiki/addons/google_calendar_methods.md), which is an extension of smplepie, to get all the informations from a google calendar feed. + +### What Do I Need To Know? {#what_do_i_need_to_know} + +#### Changelog {#changelog} + +- Version 2.1.0, Some enhancements were added. +- Version 2.0.0, Comes with a simple configuration. diff --git a/docs/content/wiki/plugins/joomla/simple_rss_feed_reader.md b/docs/content/wiki/plugins/joomla/simple_rss_feed_reader.md new file mode 100644 index 000000000..b64f32d82 --- /dev/null +++ b/docs/content/wiki/plugins/joomla/simple_rss_feed_reader.md @@ -0,0 +1,96 @@ ++++ +title = "Simple RSS Feed Reader" ++++ + +## The Basics {#the_basics} + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Main pageSimple RSS Feed Reader
    AuthorJoomlaWorks
    Module Version1.4
    Compatible Joomla! version1.0.x
    Compatible Mambo version4.5.x/4.6.x
    DownloadDownload
    Required SimplePie versionv1.0 (included)
    Optional HelpersUnknown
    Plugin Supporthttp://forum.joomlaworks.gr/index.php?board=7.0
    + +### About the Plugin {#about_the_plugin} + +Adding RSS syndicated content inside your Joomla! website is now super-easy and simple with the “Simple RSS Feed Reader” Module from JoomlaWorks. All you have to do is insert the Feed (RSS) URLs of the websites you want to syndicate in the module's settings, publish the module in some position and that's it! You can even publish multiple feeds at the same time (meaning in the same module instance) and even filter the latest X number, which you specify in the module parameters! + +No messing with the code and no worrying about feed encoding. You can publish right away english along with japanese RSS feeds and have nothing to worry about! + +The “Simple RSS Feed Reader” module is based on the very popular SimplePie PHP Class, which makes it easy to integrate syndicated content into your Joomla! website — and you don’t even have to worry about what kind of feed it is! The “Simple RSS Feed Reader” module supports everything from the old-school RSS 0.91 and RSS 1.0 formats, to the ever-popular RSS 2.0 format, and also supports the emerging Atom format, in both 0.3 and 1.0 flavors. It has a very fast, very efficient caching system. By caching the processed data, rather than just the raw XML, the module is able to create a feed parser that's really, really quick. + +The feeds are stored inside Joomla!'s cache folder and refreshed in a specific time interval, which you set in the module's parameters. + +See the “Simple RSS Feed Reader” module in action in our exclusive demo site at: + +For real world examples, see the module on the following websites: 1. 2. + +So, now, a) you have no reason not to use RSS feeds in your website (cause you thought RSS was difficult to setup), b) you have a module that will bring new content to your website, efficiently and with style and c) you can have multiple feeds display in a single place (we hope 20 is enough!). + +The “Simple RSS Feed Reader” module is released under the GNU/GPL license. + +Enjoy! + +### What Do I Need To Know? {#what_do_i_need_to_know} + +In order for the module to work properly, your server must have the following PHP modules enabled: cURL, iconv, PCRE, Zlib. Don't worry, though, cause most servers have these PHP modules enabled by default. If not, then contact your hosting company to enable them. + +Please note that some RSS feeds might not display well even if you have the above PHP modules installed (rare occasion, but can happen). That is entirely based on how the server is setup and if the specific language -with which you have issues- is properly defined in the server. In any case, contacting your hosting company is always the safest solution. + +The module already includes some generic CSS styling, which makes it truely “plug and play” for your Joomla! website. The output is entirely controlled through CSS, so you can customize it as you like. + +## Installation {#installation} + +### Upgrading from an older version? {#upgrading_from_an_older_version} + +Simply uninstall any previous version you have on your system and re-install the latest version found on . + +### Fresh Installation {#fresh_installation} + +Install the module via the Joomla!/Mambo mambot installer, located in “Installers” in the backend of your Joomla!/Mambo site. + +## Usage {#usage} + +### How to use it {#how_to_use_it} + +After you install the module, simply adjust the “content (feed) display” settings in the parameters below and add Feed URLs of any encoding. The “Simple RSS Feed Reader” Module will detect your website's encoding and adjust all feeds to that specific encoding. + +In order for the module to work properly, your server must have the following PHP modules enabled: cURL, iconv, PCRE, Zlib. Don't worry, though, cause most servers have these PHP modules enabled by default. If not, then contact your hosting company to enable them. + +Please note that some RSS feeds might not display well even if you have the above PHP modules installed (rare occasion, but can happen). That is entirely based on how the server is setup and if the specific language -with which you have issues- is properly defined in the server. In any case, contacting your hosting company is always the safest solution. + +The module already includes some generic CSS styling, which makes it truely “plug and play” for your Joomla! website. The output is entirely controlled through CSS, so you can customize it as you like. diff --git a/docs/content/wiki/plugins/joomla/simplepie_demo_way_of_feeding.md b/docs/content/wiki/plugins/joomla/simplepie_demo_way_of_feeding.md new file mode 100644 index 000000000..07bf4f56e --- /dev/null +++ b/docs/content/wiki/plugins/joomla/simplepie_demo_way_of_feeding.md @@ -0,0 +1,42 @@ ++++ +title = "SimplePie Demo Way of Feeding" ++++ + +## The Basics {#the_basics} + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Main pageSimplePie Demo Way of Feeding
    AuthorErnesto Ortiz
    Module Version1.0.0
    Compatible Joomla! version1.5.x
    Required SimplePie versionv1.0 (included)
    Plugin Supporthttp://abbracchiare.com
    + +### About the Plugin {#about_the_plugin} + +This is a feed reader based in the well-known SimplePie demo webpage. This Joomla module consist in a list of feed links (that you can read individually or in a multifeed mode) and a formulary that permits visitor to read their own url feed. + +The fetched content can appears at the end of this module or in another (external) module. There are a lot of parameters that ensure you can adapt it to your needs. + +jQuery library had been used to get some effects that reduces the used space and enlarges the reading experience. Later on, some improvements will be made (pagination, permitting that visitors add some links to the list, et. al.). diff --git a/docs/content/wiki/plugins/joomla/slick_rss.md b/docs/content/wiki/plugins/joomla/slick_rss.md new file mode 100644 index 000000000..cb734fcd3 --- /dev/null +++ b/docs/content/wiki/plugins/joomla/slick_rss.md @@ -0,0 +1,74 @@ ++++ +title = "Slick RSS" ++++ + +## The Basics {#the_basics} + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Main pageSlick RSS
    AuthorDavid Thomas
    Plugin Version1.4
    Compatible Joomla version1.0.x
    DownloadDownload
    Required SimplePie versionBeta 3 (not 1.0-compatible)
    Optional HelpersUnknown
    Plugin SupportUnknown
    + +### About the Plugin {#about_the_plugin} + +Slick RSS is a Joomla module using the SimplePie parser. Parse and Display RSS Feed News with DHTML Teaser Tooltip. + +- Up to 5 RSS feeds per instance +- Display set number of items +- Item Title +- Item Description +- Tooltip Title +- Tooltip Description +- Limit Word Counts for Title and Description +- Enable / Disable Images +- Easily Customise Tooltip Colour +- Set Link Target (new window, same window) +- Supports UTF-8 and International Character Sets +- Supports embedded media files in newsfeed (podcasts etc…) +- Caching and module class suffix is supported. + +### What Do I Need To Know? {#what_do_i_need_to_know} + +#### Changelog {#changelog} + +- Version 1.3, For UTF-8 support, Slick RSS now uses the slick and fast RSS Parser from simplepie.org +- Version 1.4: Even better configuration options and support for international characters. + +Specifically, related to character display, Slick RSS 1.4 will now: + +1. Optionally override your default Joomla encoding with the RSS feed encoding. (default=disabled (1.3) +2. Enable or disable the translation of characters from the RSS feed into your default Joomla encoding charset. (default=enabled (1.4)) + +SimplePie 1.0 compatibility is in the works. diff --git a/docs/content/wiki/plugins/joomla/tarr.md b/docs/content/wiki/plugins/joomla/tarr.md new file mode 100644 index 000000000..ab651c4f3 --- /dev/null +++ b/docs/content/wiki/plugins/joomla/tarr.md @@ -0,0 +1,55 @@ ++++ +title = "TARR (Tabbed Ajax RSS Reader)" ++++ + +## The Basics {#the_basics} + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Main pageTARR (Tabbed Ajax RSS Reader)
    AuthorMarc Stroz
    Plugin Version1.1
    Compatible Joomla version1.0.x
    DEMODEMO
    DownloadDownload
    Required SimplePie versionBeta 3 (not 1.0-compatible) :?:
    Optional HelpersUnknown
    Plugin SupportUnknown
    + +### About the Plugin {#about_the_plugin} + +Andrew and I have put together a new RSS Reader using EXT Tabs and jQuery with SimplePie as the parser. It's using Jack Slocum's ext to jQuery connection. + +1. It allows for a site to set default feeds that can't be removed. +2. Allows site to set favorites that can't be removed and for users to add the feeds they want to keep and re-add them again after being removed from the tab view. +3. Cookies to save the tabs and favorites for the return visits. +4. An add feed bar for users to add additional feeds. diff --git a/docs/content/wiki/plugins/joomla/thick_rss_browser.md b/docs/content/wiki/plugins/joomla/thick_rss_browser.md new file mode 100644 index 000000000..14b53b026 --- /dev/null +++ b/docs/content/wiki/plugins/joomla/thick_rss_browser.md @@ -0,0 +1,62 @@ ++++ +title = "Thick RSS Browser" ++++ + +## The Basics {#the_basics} + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Main pageThick RSS Browser
    AuthorHorst Lindlbauer
    Plugin Version2.0
    Compatible Joomla version1.0.x
    DownloadDownload
    DemoDemo
    Included SimplePie version1.0.1
    Plugin SupportUnknown
    + +### About the Plugin {#about_the_plugin} + +Joomla module to show list of RSS-Feeds and display linked news pages in a customizable thickbox with navigation (browsing). + +Thickbox opens on your page, so the user does not have to leave your site or switch to another window to read all news provided. + +Unlike the Joomla built-in DOMIT, SimplePie supports everything from the old-school RSS 0.91 and RSS 1.0 formats, to RSS 2.0 and Atom format, in both 0.3 and 1.0 flavors. + +Some more features: + +- UNLIMITED number of feeds (use reasonably!) +- Adjustable caching time +- Support for UTF-8 or any character set +- Allows to override joomla character set or convert RSS feed to default joomla encoding +- Displayed news titles can be limited in number and characters to be displayed. +- Tooltip can be limited to display title or title/description (to be limited by word count). +- Customizable height and width of news browser. +- Ajax-like loading of news pages. +- v.2.0: stand-alone module now. Thickbox included. No previous installation required. diff --git a/docs/content/wiki/plugins/mediawiki/_index.md b/docs/content/wiki/plugins/mediawiki/_index.md new file mode 100644 index 000000000..9c39c2825 --- /dev/null +++ b/docs/content/wiki/plugins/mediawiki/_index.md @@ -0,0 +1,20 @@ ++++ +title = "Mediawiki" ++++ + +_“MediaWiki is free server-based software which is licensed under the GNU General Public License (GPL). It's designed to be run on a large server farm for a website that gets millions of hits per day. MediaWiki is an extremely powerful, scalable software and a feature-rich wiki implementation, that uses PHP to process and display data stored in its MySQL database.”_ + + + +
    + +--- + +## Index {#index} + +### S {#s} + +- [SimpleFeed](@/wiki/plugins/mediawiki/simplefeed.md) +- [SimplePie Plugin for Mediawiki](@/wiki/plugins/mediawiki/simplepie_plugin_for_mediawiki.md) + +
    diff --git a/docs/content/wiki/plugins/mediawiki/simplefeed.md b/docs/content/wiki/plugins/mediawiki/simplefeed.md new file mode 100644 index 000000000..08ccc3339 --- /dev/null +++ b/docs/content/wiki/plugins/mediawiki/simplefeed.md @@ -0,0 +1,48 @@ ++++ +title = "SimpleFeed" ++++ + +## The Basics {#the_basics} + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Main pageSimpleFeed
    AuthorJonny Lamb
    Plugin Version1.0
    Compatible Mediawiki version1.8.x
    DownloadDownload
    Required SimplePie versionBeta 3 (not 1.0-compatible) :?:
    Optional HelpersUnknown
    Plugin SupportUnknown
    + +### About the Plugin {#about_the_plugin} + +The author has not yet updated this page with complete information. Please check out the “Main Page” URL listed above. + +If you are the author or maintainer of this software and want to update this documentation, please take a moment to read [Guidelines for Developers](@/wiki/plugins/guidelines_for_developers.md) to get a feel for the quality of documentation we're looking for. :) diff --git a/docs/content/wiki/plugins/mediawiki/simplepie_plugin_for_mediawiki.md b/docs/content/wiki/plugins/mediawiki/simplepie_plugin_for_mediawiki.md new file mode 100644 index 000000000..c29b6daec --- /dev/null +++ b/docs/content/wiki/plugins/mediawiki/simplepie_plugin_for_mediawiki.md @@ -0,0 +1,135 @@ ++++ +title = "SimplePie Plugin for Mediawiki" ++++ + +## The Basics {#the_basics} + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Main pageSimplePie Plugin for Mediawiki
    AuthorRyan Parman (Original)
    Plugin Version1.2.1 (Discontinued)
    Compatible Mediawiki version1.7.x and newer
    DownloadDownload
    Required SimplePie version1.0.x
    Optional HelpersNone
    Plugin Supporthttp://simplepie.org/support/viewforum.php?id=17
    + +
    + +**Because I don't use Mediawiki anymore, I'm discontinuing development on this plugin.** If you are interested in taking over development, please let me know at the forums. Alternatively, there are other [Mediawiki](@/wiki/plugins/mediawiki/_index.md) plugins that you can use instead of this one. + +
    + +### About the Plugin {#about_the_plugin} + +This plugin adds a `` tag to Mediawiki that allows you to display feeds in your wiki. + +## Installation {#installation} + +### Upgrading from an older version? {#upgrading_from_an_older_version} + +Replace the old `simplepie_mediawiki.php` with the new one. + +### Fresh Installation {#fresh_installation} + +For the purposes of these instructions, we're going to make a few assumptions. We're going to assume that you have installed MediaWiki to `http://wiki.example.com`, which would mean that the MediaWiki extensions folder lives at `http://wiki.example.com/extensions/`, and that your MediaWiki settings file lives at `http://wiki.example.com/LocalSettings.php`. + +#### Step 1: Download both the required files above {#step_1download_both_the_required_files_above} + +When you download them, make sure you know where you've downloaded them to. Once you've done that, unzip them. The full SimplePie library is what powers everything, and the Mediawiki plugin simply makes it available to your wiki pages. + +#### Step 2: Upload both simplepie.inc and simplepie_mediawiki.php to your MediaWiki extensions folder {#step_2upload_both_simplepieinc_and_simplepie_mediawikiphp_to_your_mediawiki_extensions_folder} + +This means that these two files will be uploaded to `http://wiki.example.com/extensions/`. + +#### Step 3: Create a cache folder inside MediaWiki's extensions folder {#step_3create_a_cache_folder_inside_mediawiki_s_extensions_folder} + +This means that after you create the cache folder, it will live at `http://wiki.example.com/extensions/cache/`. + +#### Step 4: Change the file permissions for the cache directory to be server-writable {#step_4change_the_file_permissions_for_the_cache_directory_to_be_server-writable} + +This setting varies from webhost to webhost. In the past, I've used [iPowerWeb](http://ipowerweb.com/), and they required file permissions of `777` in order to be server-writable. Currently, I use [Dreamhost](http://dreamhost.com/r.cgi?skyzyx), and they need permissions to be set to `755` to be server-writable. Again, if you're not sure, either go ask your host or you can try various settings yourself. The three to try are `755`, `775`, or `777`. + +The specific process of _how_ you change your file permissions differs from FTP application to FTP application. On Windows I use [FlashFXP](http://flashfxp.com), where you find the remote file or folder that you want to change the permissions of, you right-click on it, and choose _Attributes (CHMOD)_. On Mac OS X I use [Transmit](http://panic.com/transmit/), where you find the remote file or folder that you want to change the permissions of, you right-click (or ctrl-click for you one-button-mousers) on it, and choose _Get Info_. Your specific FTP application will most likely be something similar. + +#### Step 5: Add the extension to your MediaWiki settings file {#step_5add_the_extension_to_your_mediawiki_settings_file} + +Open up your `LocalSettings.php` file which lives at `http://wiki.example.com/LocalSettings.php`. At the very bottom of the file, but above the closing PHP tag (?\>), add this line: + +```php +include("./extensions/simplepie_mediawiki.php"); +``` + +SimplePie and the SimplePie Plugin for Mediawiki are now installed. + +## Usage {#usage} + +### How to use it {#how_to_use_it} + +SimplePie Plugin for MediaWiki adds one tag to your MediaWiki installation: the `` tag. Here's how you use it: + +1. `http://example.com/feed.xml` + To load a feed on your MediaWiki pages, simply wrap the feed URL with `` tags. Doing this with no attributes will display the default way: + - An \ containing the feed's title, linked back to the originating site. + - An ordered list, containing all of the news items in the feed. + - The news item's title, linked back to the originating post. + - The full HTML description for each news item. +2. `items` attribute + Limits the number of items returned. If you set this value to 5, then you'll get back the 5 most recent posts. If there's a feed with fewer than 5 posts, SimplePie will return all of them. Defaults to all. +3. `showdesc` attribute + Determines whether the description should be shown or not. If set to false, descriptions are omitted, and the ordered list will display only the linked item titles with no special formatting. Defaults to true. +4. `showdate` attribute + Displays the date of the news item. Accepts anything that's allowed in PHP's date() function. Defaults to blank. +5. `shortdesc` attribute + Strips all tags from the item's description and limits the number of characters that are displayed. Accepts any numeric value. If more characters are allowed than are in the description, the entire description will be displayed. If the text wasn't cut at the end of a sentence (ending with a period, exclamation point, or question mark), an ellipsis will be added to the end of the text. Defaults to all characters. +6. `showtitle` attribute + Determines whether the built-in feed title is displayed or not. Defaults to true. +7. `alttitle` attribute + Displays a custom title in place of the feed's built-in title. Defaults to blank. +8. `error` attribute + Displays a custom error message for when there is a problem retrieving the feed. Defaults to the standard error messages. + +If you want to apply special CSS styles to the feed display, here's some basic markup that represents what is generated. + +```html +
    +

    Example Site

    +
      +
    1. Item Title 1 29 May 2006
      + The description for the item.
    2. + +
    3. Item Title 2 28 May 2006
      + The description for the item.
    4. + +
    5. Item Title 3 27 May 2006
      + The description for the item.
    6. +
    +
    +``` diff --git a/docs/content/wiki/plugins/modx/_index.md b/docs/content/wiki/plugins/modx/_index.md new file mode 100644 index 000000000..ecba58025 --- /dev/null +++ b/docs/content/wiki/plugins/modx/_index.md @@ -0,0 +1,19 @@ ++++ +title = "MODx" ++++ + +_“MODx is an open source PHP Application Framework that helps you take control of your online content. It empowers developers and advanced users to give as much control as desired to whomever they desire for day-to-day website content maintenance chores.”_ + + + +
    + +--- + +## Index {#index} + +### P {#p} + +- [PieX](@/wiki/plugins/modx/piex.md) + +
    diff --git a/docs/content/wiki/plugins/modx/piex.md b/docs/content/wiki/plugins/modx/piex.md new file mode 100644 index 000000000..48b52ef8c --- /dev/null +++ b/docs/content/wiki/plugins/modx/piex.md @@ -0,0 +1,48 @@ ++++ +title = "PieX" ++++ + +## The Basics {#the_basics} + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Main pagePieX (Japanese), (English version)
    AuthorUnknown
    Plugin Version0.4, 0.5
    Compatible MODx versionUnknown
    DownloadDownload (English v0.5)
    Required SimplePie versionBeta 3 (not 1.0-compatible)
    Optional HelpersUnknown
    Plugin SupportUnknown
    + +### About the Plugin {#about_the_plugin} + +The author has not yet updated this page with complete information. Please check out the “Main Page” URL listed above. + +If you are the author or maintainer of this software and want to update this documentation, please take a moment to read [Guidelines for Developers](@/wiki/plugins/guidelines_for_developers.md) to get a feel for the quality of documentation we're looking for. :) diff --git a/docs/content/wiki/plugins/nucleus/_index.md b/docs/content/wiki/plugins/nucleus/_index.md new file mode 100644 index 000000000..e701702b0 --- /dev/null +++ b/docs/content/wiki/plugins/nucleus/_index.md @@ -0,0 +1,19 @@ ++++ +title = "Nucleus" ++++ + +_“Light. Flexible. Secure. Pure Publishing.”_ + + + +
    + +--- + +## Index {#index} + +### N {#n} + +- [NP_SimplePie](@/wiki/plugins/nucleus/np_simplepie.md) + +
    diff --git a/docs/content/wiki/plugins/nucleus/np_simplepie.md b/docs/content/wiki/plugins/nucleus/np_simplepie.md new file mode 100644 index 000000000..90595d728 --- /dev/null +++ b/docs/content/wiki/plugins/nucleus/np_simplepie.md @@ -0,0 +1,48 @@ ++++ +title = "NP_SimplePie" ++++ + +## The Basics {#the_basics} + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Main pageNP_SimplePie (Japanese)
    AuthorZeRo
    Plugin VersionUnknown
    Compatible Nucleus versionUnknown
    DownloadSee main page
    Required SimplePie versionUnknown
    Optional HelpersUnknown
    Plugin SupportUnknown
    + +### About the Plugin {#about_the_plugin} + +The author has not yet updated this page with complete information. Please check out the “Main Page” URL listed above. + +If you are the author or maintainer of this software and want to update this documentation, please take a moment to read [Guidelines for Developers](@/wiki/plugins/guidelines_for_developers.md) to get a feel for the quality of documentation we're looking for. :) diff --git a/docs/content/wiki/plugins/php-nuke/_index.md b/docs/content/wiki/plugins/php-nuke/_index.md new file mode 100644 index 000000000..d95e15fb4 --- /dev/null +++ b/docs/content/wiki/plugins/php-nuke/_index.md @@ -0,0 +1,19 @@ ++++ +title = "PHP-Nuke" ++++ + +_“PHP-Nuke is a news automated system specially designed to be used in Intranets and Internet. The Administrator has total control of his web site, registered users, and he will have in the hand a powerful assembly of tools to maintain an active and 100% interactive web site using databases.”_ + + + +
    + +--- + +## Index {#index} + +### N {#n} + +- [NukePIE](@/wiki/plugins/php-nuke/nukepie.md) + +
    diff --git a/docs/content/wiki/plugins/php-nuke/nukepie.md b/docs/content/wiki/plugins/php-nuke/nukepie.md new file mode 100644 index 000000000..42da69d61 --- /dev/null +++ b/docs/content/wiki/plugins/php-nuke/nukepie.md @@ -0,0 +1,103 @@ ++++ +title = "nukePIE" ++++ + +## The Basics {#the_basics} + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Main pagenukePIE
    AuthorKevin Guske
    Plugin Version1.1.1
    Compatible PHP-Nuke version6.5+
    Compatible RavenNuke version2.1+ (included with 2.20+)
    DownloadDownload (free registration required)
    Required SimplePie version1.1.1 (Bundled)
    Plugin Supporthttp://nukeseo.com/modules.php?name=Forums&file=viewforum&f=9
    + +### About the Plugin {#about_the_plugin} + +nukePIE™ is a replacement for the standard PHP-Nuke block feed reader and uses the blocks administration without modification. + +With nukePIE™, RavenNuke, BonusNuke, DadaNuke, Future Nuke, NukeEvolution, Nuke Platinum and other PHP-Nuke distributions can: + +- Display RSS 2.0, ATOM 1.0, or any properly-formed feed in Nuke blocks +- Display feed item descriptions as either full-HTML tool tips or as title tags for the link +- Control the appearance of tool tips using cascading style sheets (CSS) + +nukePIE™ uses the SimplePie class and BoxOver script. + +Since nukePIE™ replaces core PHP-Nuke functions, it requires modifications to PHP scripts (namely, mainfile.php). + +### What Do I Need To Know? {#what_do_i_need_to_know} + +These instructions assume that you have a basic familiarity with PHP and know how to modify PHP code in your PHP-Nuke distribution. If you don't, and you're just getting started, we would suggest you take a look at the following documentation and tutorials: + +- [Introduction to PHP tutorial](http://www.php.net/manual/en/tutorial.php) +- [PHP for Beginners](http://www.php-for-beginners.co.uk/) +- [PHP Manual](http://ravenphpscripts.com/phpmanual.html) +- [CSS Manual](http://www.css2.code-authors.com/) +- [PHP-Nuke: Management and Programming](http://ravenphpscripts.com/nukemanual.html) + +### Brief Version History {#brief_version_history} + +- 1.1.1: Update includes SimplePie 1.1.1. +- 1.0: First release. + +## Installation {#installation} + +### Fresh Installation {#fresh_installation} + +#### Step 1: Download the plugin above {#step_1download_the_plugin_above} + +There's a link above to download nukePIE, which already includes the latest release version of SimplePie. When you download them, make sure you know where you've downloaded them to. Once you've done that, unzip them. + +#### Step 2: Upload the entire html folder to your root PHP-Nuke directory {#step_2upload_the_entire_html_folder_to_your_root_php-nuke_directory} + +The entire html folder should be uploaded as-is to your PHP-Nuke installation. Any existing files may be overwritten as described in the readme.txt file in the download. + +#### Step 3: Make sure the cache folder is writeable {#step_3make_sure_the_cache_folder_is_writeable} + +The /cache/ folder should be writeable on your PHP-Nuke webserver. + +#### Step 4: Modify 3 php files according to the readme.txt instructions {#step_4modify_3_php_files_according_to_the_readmetxt_instructions} + +Modify config.php (or rnconfig.php) to include a new setting, mainfile.php to replace the headlines function, and header.php / my_header.php / custom_header.php file to include a file that loads the appropriate Javascript and CSS files. + +nukePIE™ is now installed! + +## Usage {#usage} + +Add RSS, ATOM and other feeds as blocks using the standard Blocks Administration function. + +## Troubleshooting {#troubleshooting} + +### Cache Error {#cache_error} + +nukePIE™ assumes that the cache folder is writable. If this isn't the case for you, you'll need to change the file permissions for the `/cache` directory to be server-writable (try setting the permission to one of the following using your FTP client: `755`, `775`, or `777`). diff --git a/docs/content/wiki/plugins/plumecms/_index.md b/docs/content/wiki/plugins/plumecms/_index.md new file mode 100644 index 000000000..c84e49cc6 --- /dev/null +++ b/docs/content/wiki/plugins/plumecms/_index.md @@ -0,0 +1,19 @@ ++++ +title = "Plume CMS" ++++ + +_“Plume CMS is a fully functional Content Management System in PHP on top of MySQL. Including articles, news, file management and all of the general functionalities of a CMS. It is completely accessible and very easy to use on a daily basis.”_ + + + +
    + +--- + +## Index {#index} + +### T {#t} + +- [The Hotaru Project](@/wiki/plugins/plumecms/hotaru.md) + +
    diff --git a/docs/content/wiki/plugins/plumecms/hotaru.md b/docs/content/wiki/plugins/plumecms/hotaru.md new file mode 100644 index 000000000..a4e03e6fc --- /dev/null +++ b/docs/content/wiki/plugins/plumecms/hotaru.md @@ -0,0 +1,48 @@ ++++ +title = "The Hotaru Project" ++++ + +## The Basics {#the_basics} + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Main pageThe Hotaru Project
    Authorcilyia
    Plugin Version1.0rc1
    Compatible Plume CMS version1.2.x
    DownloadDownload
    Required SimplePie version1.0rc1 (only)
    Optional HelpersUnknown
    Plugin SupportUnknown
    + +### About the Plugin {#about_the_plugin} + +The author has not yet updated this page with complete information, however, [documentation is available](http://code.google.com/p/hotaru-project/wiki/EnglishSimplePieUsage). + +If you are the author or maintainer of this software and want to update this documentation, please take a moment to read [Guidelines for Developers](@/wiki/plugins/guidelines_for_developers.md) to get a feel for the quality of documentation we're looking for. :) diff --git a/docs/content/wiki/plugins/punbb/_index.md b/docs/content/wiki/plugins/punbb/_index.md new file mode 100644 index 000000000..f8361a900 --- /dev/null +++ b/docs/content/wiki/plugins/punbb/_index.md @@ -0,0 +1,19 @@ ++++ +title = "PunBB" ++++ + +_“PunBB is a fast and lightweight PHP-powered discussion board. It is released under the GNU General Public License. Its primary goals are to be faster, smaller and less graphically intensive as compared to other discussion boards. PunBB has fewer features than many other discussion boards, but is generally faster and outputs smaller, semantically correct XHTML-compliant pages.”_ + + + +
    + +--- + +## Index {#index} + +### F {#f} + +- [Feed Aggregator](@/wiki/plugins/punbb/feed_aggregator.md) + +
    diff --git a/docs/content/wiki/plugins/punbb/feed_aggregator.md b/docs/content/wiki/plugins/punbb/feed_aggregator.md new file mode 100644 index 000000000..8f833ee52 --- /dev/null +++ b/docs/content/wiki/plugins/punbb/feed_aggregator.md @@ -0,0 +1,48 @@ ++++ +title = "Feed Aggregator" ++++ + +## The Basics {#the_basics} + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Main pageFeed Aggregator
    AuthorManuel (mannungo)
    Plugin Version1.0.3
    Compatible PunBB version1.2.x
    DownloadDownload
    Required SimplePie versionBeta 3 (not 1.0-compatible)
    Optional HelpersUnknown
    Plugin SupportUnknown
    + +### About the Plugin {#about_the_plugin} + +The author has not yet updated this page with complete information. Please check out the “Main Page” URL listed above. + +If you are the author or maintainer of this software and want to update this documentation, please take a moment to read [Guidelines for Developers](@/wiki/plugins/guidelines_for_developers.md) to get a feel for the quality of documentation we're looking for. :) diff --git a/docs/content/wiki/plugins/simplemachinesforum/_index.md b/docs/content/wiki/plugins/simplemachinesforum/_index.md new file mode 100644 index 000000000..bd92a97ff --- /dev/null +++ b/docs/content/wiki/plugins/simplemachinesforum/_index.md @@ -0,0 +1,19 @@ ++++ +title = "Simple Machines Forum" ++++ + +_“Simple Machines Forum — SMF in short — is a free, professional grade software package that allows you to set up your own online community within minutes. Its powerful custom made template engine puts you in full control of the lay-out of your message board and with our unique SSI - or Server Side Includes - function you can let your forum and your website interact with each other. SMF is written in the popular language PHP and uses a MySQL database. It is designed to provide you with all the features you need from a bulletin board while having an absolute minimal impact on the resources of the server. SMF is the next generation of forum software - and best of all it is and will always remain completely free! ”_ + + + +
    + +--- + +## Index {#index} + +### R {#r} + +- [RSS Feeder](@/wiki/plugins/simplemachinesforum/rss_feeder.md) + +
    diff --git a/docs/content/wiki/plugins/simplemachinesforum/rss_feeder.md b/docs/content/wiki/plugins/simplemachinesforum/rss_feeder.md new file mode 100644 index 000000000..cd22bb76c --- /dev/null +++ b/docs/content/wiki/plugins/simplemachinesforum/rss_feeder.md @@ -0,0 +1,65 @@ ++++ +title = "RSS Feeder" ++++ + +## The Basics {#the_basics} + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Main pagehttp://custom.simplemachines.org/mods/index.php?mod=1590
    AuthorMatt Zuba
    Plugin Version1.1.1
    Compatible SMF Version2.0
    DownloadDownload
    Required SimplePie version1.1.3 (Included)
    Plugin Supporthttp://www.simplemachines.org/community/index.php?topic=285356.0
    Bugs and Feature Requestshttp://www.simplemachines.org/community/index.php?topic=285356.0
    + +## About the Plugin {#about_the_plugin} + +This plugin has just about everything you'd need for working with feeds in SMF, and has a TON of features including: + +- Unlimited Feeds +- Post to any board on your site +- Specify which user to post as +- Single click enable/disable of any feed from the admin panel +- Lock feed topics once posted +- Require approval of feeds before publicly viewable (only if Post Moderation is enabled) +- Prefix feed with any title (Ie: \[FEED\], \[RSS\], \[NEWS\], etc) +- Retrieve full article (Regular Expression REQUIRED) +- Find articles by keyword in the Title or Description +- Specify number of items to import from each feed +- Caching of feeds for faster performance in case the feed hasn't changed +- Logging of posted feeds to avoid duplicates +- Uses Scheduled Tasks to determine when to fetch feeds (you can set the frequency) +- Log pruning - removes log entries that are 30 days old (this can be changed too) +- Option to post all feed items into a single topic, instead of seperate topics +- See how many items each feed as posted +- Selectable image icons for feeds +- Add a custom footer to each post for feeds diff --git a/docs/content/wiki/plugins/textpattern/_index.md b/docs/content/wiki/plugins/textpattern/_index.md new file mode 100644 index 000000000..e606b7f8b --- /dev/null +++ b/docs/content/wiki/plugins/textpattern/_index.md @@ -0,0 +1,27 @@ ++++ +title = "Textpattern" ++++ + +_“Textpattern is a free, flexible, elegant, easy-to-use content management system for all kinds of websites, even weblogs. Textpattern is designed to help overcome a number of hurdles to publishing online, and to simplify the production of well-structured, standards-compliant web pages.”_ + + + +
    + +--- + +## Index {#index} + +### B {#b} + +- [Bit_rss](@/wiki/plugins/textpattern/bit_rss.md) + +### M {#m} + +- [Mka_simplepie](@/wiki/plugins/textpattern/mka_simplepie.md) + +### S {#s} + +- [SimplePie Plugin for Textpattern](@/wiki/plugins/textpattern/simplepie_plugin_for_textpattern.md) + +
    diff --git a/docs/content/wiki/plugins/textpattern/bit_rss.md b/docs/content/wiki/plugins/textpattern/bit_rss.md new file mode 100644 index 000000000..d9b53ee8c --- /dev/null +++ b/docs/content/wiki/plugins/textpattern/bit_rss.md @@ -0,0 +1,48 @@ ++++ +title = "bit_rss" ++++ + +## The Basics {#the_basics} + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Main pagebit_rss
    AuthorRomelo Noel C. Santos
    Plugin Version0.4.1
    Compatible Textpattern version4.x
    DownloadDownload
    Required SimplePie versionBeta 3 (not 1.0-compatible)
    Optional HelpersUnknown
    Plugin SupportUnknown
    + +### About the Plugin {#about_the_plugin} + +The author has not yet updated this page with complete information. Please check out the “Main Page” URL listed above. + +If you are the author or maintainer of this software and want to update this documentation, please take a moment to read [Guidelines for Developers](@/wiki/plugins/guidelines_for_developers.md) to get a feel for the quality of documentation we're looking for. :) diff --git a/docs/content/wiki/plugins/textpattern/mka_simplepie.md b/docs/content/wiki/plugins/textpattern/mka_simplepie.md new file mode 100644 index 000000000..1ecd6e09b --- /dev/null +++ b/docs/content/wiki/plugins/textpattern/mka_simplepie.md @@ -0,0 +1,38 @@ ++++ +title = "mka_simplepie" ++++ + +## The Basics {#the_basics} + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Main pagemka_simplepie
    AuthorMartin Kozianka
    Plugin Version0.8.0
    Compatible Textpattern version4.x
    DownloadDownload
    Used SimplePie version1.3
    + +### About the Plugin {#about_the_plugin} + +More information: diff --git a/docs/content/wiki/plugins/textpattern/simplepie_plugin_for_textpattern.md b/docs/content/wiki/plugins/textpattern/simplepie_plugin_for_textpattern.md new file mode 100644 index 000000000..bd7d3f74f --- /dev/null +++ b/docs/content/wiki/plugins/textpattern/simplepie_plugin_for_textpattern.md @@ -0,0 +1,138 @@ ++++ +title = "SimplePie Plugin for Textpattern" ++++ + +## The Basics {#the_basics} + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Main pageSimplePie Plugin for Textpattern
    AuthorMike Small (formerly Ryan Parman)
    Plugin Version1.2.2
    Compatible Textpattern version4.x
    DownloadDownload
    Required SimplePie version1.x
    Optional HelpersNone
    Plugin SupportNone
    + +### About the Plugin {#about_the_plugin} + +This plugin adds a `` tag to Textpattern that allows you to display feeds in your wiki. + +## Installation {#installation} + +### Upgrading from an older version? {#upgrading_from_an_older_version} + +Replace the old `simplepie.inc` with the latest one downloaded from [http://simplepie.org/downloads/downloads](/downloads/downloads "http://simplepie.org/downloads/downloads"). Uninstall the old plugin and reinstall the latest version via the link above. + +### Fresh Installation {#fresh_installation} + +For the purposes of these instructions, we're going to make a few assumptions. We're going to assume that you have installed Textpattern to `http://blog.example.com`, which would mean that the Textpattern administration folder lives at `http://blog.example.com/textpattern/`, and that your Textpattern `lib` folder lives at `http://blog.example.com/textpattern/lib/`. + +#### Step 1: Download the latest simplepie.inc and the plugin file {#step_1download_the_latest_simplepieinc_and_the_plugin_file} + +1. simplepie.inc is the main directory of the SimplePie package available here: [http://simplepie.org/downloads/](/downloads/ "http://simplepie.org/downloads/"). +2. The Textpattern plugin [simplepie_textpattern_1.2.2.zip](/downloads/simplepie_textpattern_1.2.2.zip) + +When you download them, make sure you know where you've downloaded them to. Once you've done that, unzip them. The full SimplePie library is what powers everything, and the Textpattern plugin simply makes it available to your blog pages. + +#### Step 2: Upload simplepie.inc to your Textpattern 'lib' folder {#step_2upload_simplepieinc_to_your_textpattern_lib_folder} + +This means that this file will be uploaded to `http://blog.example.com/textpattern/lib/`. + +#### Step 3: Create a simplepie_cache folder inside your Textpattern 'lib' folder {#step_3create_a_simplepie_cache_folder_inside_your_textpattern_lib_folder} + +This means that after you create the `simplepie_cache` folder, it will live at `http://blog.example.com/textpattern/lib/simplepie_cache/`. + +#### Step 4: Change the file permissions for the cache directory to be server-writable {#step_4change_the_file_permissions_for_the_cache_directory_to_be_server-writable} + +This setting varies from webhost to webhost. In the past, I've used [iPowerWeb](http://ipowerweb.com/), and they required file permissions of `777` in order to be server-writable. Currently, I use [Dreamhost](http://dreamhost.com/r.cgi?skyzyx), and they need permissions to be set to `755` to be server-writable. Again, if you're not sure, either go ask your host or you can try various settings yourself. The three to try are `755`, `775`, or `777`. + +The specific process of _how_ you change your file permissions differs from FTP application to FTP application. On Windows I use [FlashFXP](http://flashfxp.com), where you find the remote file or folder that you want to change the permissions of, you right-click on it, and choose _Attributes (CHMOD)_. On Mac OS X I use [Transmit](http://panic.com/transmit/), where you find the remote file or folder that you want to change the permissions of, you right-click (or ctrl-click for you one-button-mousers) on it, and choose _Get Info_. Your specific FTP application will most likely be something similar. + +#### Step 5: Enable the plugin in your Textpattern control panel {#step_5enable_the_plugin_in_your_textpattern_control_panel} + +1. Log into your Textpattern control panel, click on the “admin” tab, then the “plugins” tab. +2. Copy-paste the contents of `simplepie_textpattern.txt` into the form and click “upload”. +3. You should see some colorized PHP code. Scroll to the bottom of the page, and click “install”. +4. You should see the SimplePie Plugin for Textpattern listed in your plugins list. On the right-hand side of the row, you'll see the word “no” under the “Active” column. Click “no” to change it to “yes”, meaning that the plugin is now enabled. + +If you need more help installing Textpattern plugins, check out the [Textpattern plugin installation instructions](http://textbook.textpattern.net/wiki/index.php?title=Intermediate_Weblog_Model#Adding_Plugins_to_Your_Textpattern_Installation). + +SimplePie and the SimplePie Plugin for Textpattern are now installed. + +## Usage {#usage} + +### How to use it {#how_to_use_it} + +SimplePie Plugin for Textpattern adds one tag to your Textpattern installation: the `` tag. Here's how you use it: +**Changes from version 1.2.1 to 1.2.2 highlighted in bold.** + +1. `http://example.com/feed.xml` + To load a feed on your Textpattern pages, simply wrap the feed URL with `` tags. Doing this with no attributes will display the default way: + - An \ containing the feed's title, linked back to the originating site. + - An ordered list, containing all of the news items in the feed. + - The news item's title, linked back to the originating post. + - The full HTML description for each news item. +2. `items` attribute + Limits the number of items returned. If you set this value to 5, then you'll get back the 5 most recent posts. If there's a feed with fewer than 5 posts, SimplePie will return all of them. Defaults to all. +3. `showdesc` attribute + Determines whether the description should be shown or not. If set to false, descriptions are omitted, and the ordered list will display only the linked item titles with no special formatting. Defaults to true. +4. `showdate` attribute + Displays the date of the news item. Accepts anything that's allowed in PHP's date() function. Defaults to blank. +5. `shortdesc` attribute + Strips all tags from the item's description and limits the number of characters that are displayed. Accepts any numeric value. If more characters are allowed than are in the description, the entire description will be displayed. If the text wasn't cut at the end of a sentence (ending with a period, exclamation point, or question mark), an ellipsis will be added to the end of the text. Defaults to all characters. +6. `showtitle` attribute + Determines whether the built-in feed title is displayed or not. Defaults to true. +7. `alttitle` attribute + Displays a custom title in place of the feed's built-in title. **If ”-1” is entered no title is displayed (removes the built-in title too)**. Defaults to blank. +8. `h` attribute + **Define the html header used for the title (eg h4) defaults to h3.** +9. `listtype` attribute + **Defines the list type. Eg listtype=“ol” will give an ordered list. Defaults to “ul”.** +10. `error` attribute + Displays a custom error message for when there is a problem retrieving the feed. Defaults to the standard error messages. + +If you want to apply special CSS styles to the feed display, here's some basic markup that represents what is generated. + +```html +
    +

    Example Site

    +
      +
    1. Item Title 1 29 May 2006
      + The description for the item.
    2. + +
    3. Item Title 2 28 May 2006
      + The description for the item.
    4. + +
    5. Item Title 3 27 May 2006
      + The description for the item.
    6. +
    +
    +``` diff --git a/docs/content/wiki/plugins/wordpress/_index.md b/docs/content/wiki/plugins/wordpress/_index.md new file mode 100644 index 000000000..691bd79a4 --- /dev/null +++ b/docs/content/wiki/plugins/wordpress/_index.md @@ -0,0 +1,69 @@ ++++ +title = "WordPress" ++++ + +_“WordPress is a state-of-the-art semantic personal publishing platform with a focus on aesthetics, web standards, and usability. What a mouthful. WordPress is both free and priceless at the same time. More simply, WordPress is what you use when you want to work with your blogging software, not fight it.”_ + + + +
    + +--- + +## Index {#index} + +### C {#c} + +- [Customization](@/wiki/plugins/wordpress/simplepie_plugin_for_wordpress/customization.md) + +### D {#d} + +- [Dashboard Last News](@/wiki/plugins/wordpress/dashboard_last_news.md) + +### G {#g} + +- [Getting Started](@/wiki/plugins/wordpress/simplepie_plugin_for_wordpress/usage.md) + +### I {#i} + +- [Installation](@/wiki/plugins/wordpress/simplepie_plugin_for_wordpress/installation.md) + +### K {#k} + +- [King RSS](@/wiki/plugins/wordpress/king_rss.md) + +### L {#l} + +- [Lenky Related Links](@/wiki/plugins/wordpress/lenky_related_links.md) + +### M {#m} + +- [MyTwitter](@/wiki/plugins/wordpress/mytwitter.md) + +### P {#p} + +- [Post-Processing](@/wiki/plugins/wordpress/simplepie_plugin_for_wordpress/processing.md) + +### R {#r} + +- [RSS Combiner](@/wiki/plugins/wordpress/rss_combiner.md) +- [RSS Image Widget](@/wiki/plugins/wordpress/rss_image_widget.md) + +### S {#s} + +- [SimpleLife](@/wiki/plugins/wordpress/simplelife.md) +- [SimplePie Core](@/wiki/plugins/wordpress/simplepie_core.md) +- [SimplePie Plugin for WordPress](@/wiki/plugins/wordpress/simplepie_plugin_for_wordpress/_index.md) +- [SimplePie Plugin for WordPress](@/wiki/plugins/wordpress/simplepie_plugin_for_wordpress/_index.md) + +### T {#t} + +- [Troubleshooting](@/wiki/plugins/wordpress/simplepie_plugin_for_wordpress/troubleshooting.md) + +### W {#w} + +- [WP-o-Matic](@/wiki/plugins/wordpress/wp-o-matic.md) +- [Wp category feed](@/wiki/plugins/wordpress/wp_category_feed.md) +- [WP Theme OneNews](@/wiki/plugins/wordpress/wp_theme_onenews.md) + +
    diff --git a/docs/content/wiki/plugins/wordpress/dashboard_last_news.md b/docs/content/wiki/plugins/wordpress/dashboard_last_news.md new file mode 100644 index 000000000..bff4fc411 --- /dev/null +++ b/docs/content/wiki/plugins/wordpress/dashboard_last_news.md @@ -0,0 +1,52 @@ ++++ +title = "Dashboard Last News" ++++ + +## The Basics {#the_basics} + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Main pageDashboard Last News
    AuthorAndre Renaut
    Plugin Version2.5.0.3
    Compatible WordPress version2.5.x
    DownloadDownload
    Required SimplePie version1.x
    Leverages SimplePie CoreYes! :)
    Optional HelpersUnknown
    Plugin SupportUnknown
    + +### About the Plugin {#about_the_plugin} + +The author has not yet updated this page with complete information. Please check out the “Main Page” URL listed above. + +If you are the author or maintainer of this software and want to update this documentation, please take a moment to read [Guidelines for Developers](@/wiki/plugins/guidelines_for_developers.md) to get a feel for the quality of documentation we're looking for. :) diff --git a/docs/content/wiki/plugins/wordpress/king_rss.md b/docs/content/wiki/plugins/wordpress/king_rss.md new file mode 100644 index 000000000..af776d0c9 --- /dev/null +++ b/docs/content/wiki/plugins/wordpress/king_rss.md @@ -0,0 +1,52 @@ ++++ +title = "King RSS" ++++ + +## The Basics {#the_basics} + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Main pageKing RSS
    AuthorGeorg Leciejewski
    Plugin Version0.5.2
    Compatible WordPress version2.x
    DownloadDownload (WP Widget), King Framework (required)
    Required SimplePie versionBeta 3 (not 1.0-compatible)
    Leverages SimplePie CoreNo. Might cause collisions with other SimplePie-based plugins in WordPress.
    Optional HelpersUnknown
    Plugin SupportUnknown
    + +### About the Plugin {#about_the_plugin} + +The author has not yet updated this page with complete information. Please check out the “Main Page” URL listed above. + +If you are the author or maintainer of this software and want to update this documentation, please take a moment to read [Guidelines for Developers](@/wiki/plugins/guidelines_for_developers.md) to get a feel for the quality of documentation we're looking for. :) diff --git a/docs/content/wiki/plugins/wordpress/lenky_related_links.md b/docs/content/wiki/plugins/wordpress/lenky_related_links.md new file mode 100644 index 000000000..765eba2d0 --- /dev/null +++ b/docs/content/wiki/plugins/wordpress/lenky_related_links.md @@ -0,0 +1,52 @@ ++++ +title = "Lenky Related Links" ++++ + +## The Basics {#the_basics} + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Main pageLenky Related Links
    Author"Lenky"
    Plugin Version1.0 Beta
    Compatible WordPress version2.3.x
    DownloadDownload
    Required SimplePie version1.x
    Leverages SimplePie CoreNo. Might cause collisions with other SimplePie-based plugins in WordPress.
    Optional HelpersUnknown
    Plugin SupportUnknown
    + +### About the Plugin {#about_the_plugin} + +The author has not yet updated this page with complete information. Please check out the “Main Page” URL listed above. + +If you are the author or maintainer of this software and want to update this documentation, please take a moment to read [Guidelines for Developers](@/wiki/plugins/guidelines_for_developers.md) to get a feel for the quality of documentation we're looking for. :) diff --git a/docs/content/wiki/plugins/wordpress/mytwitter.md b/docs/content/wiki/plugins/wordpress/mytwitter.md new file mode 100644 index 000000000..1c1829459 --- /dev/null +++ b/docs/content/wiki/plugins/wordpress/mytwitter.md @@ -0,0 +1,62 @@ ++++ +title = "MyTwitter" ++++ + +## The Basics {#the_basics} + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Main pageMyTwitter
    AuthorErundur Anwamehtar
    Plugin Version1.60 beta
    Compatible WordPress version2.2+
    Tested Up To Wordpress version2.5
    DownloadDownload
    Required SimplePie version1.0.1+
    Leverages SimplePie CoreNo. Might cause collisions with other SimplePie-based plugins in WordPress.
    Optional HelpersNone
    Plugin SupportMyTwitter website
    Twitterhttp://twitter.com/MyTwitt3r
    + +### About the Plugin {#about_the_plugin} + +MyTwitter allows users to display their Twitter status updates (tweets) on their Wordpress blog and update their status through the Options page. It includes customization options including number of recent twitters to display, formatting options, and stylesheets. It can be called as a function or used as a widget. Read more about the plugin (including requirements and installation instructions) at the [MyTwitter](http://anwanore.com/projects/mytwitter) page. + +### SimplePie Core {#simplepie_core} + +If you have SimplePie Core installed, remove the simplepie.inc file from the “mytwitter” directory and MyTwitter should function as anticipated. Full interoperability with SimplePie Core will be included in a future version. diff --git a/docs/content/wiki/plugins/wordpress/rss_combiner.md b/docs/content/wiki/plugins/wordpress/rss_combiner.md new file mode 100644 index 000000000..10d16746a --- /dev/null +++ b/docs/content/wiki/plugins/wordpress/rss_combiner.md @@ -0,0 +1,52 @@ ++++ +title = "RSS Combiner" ++++ + +## The Basics {#the_basics} + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Main pageRSS Combiner
    AuthorErik Pöhler
    Plugin Version1.0c RC1
    Compatible WordPress version2.x
    DownloadDownload
    Required SimplePie version1.x
    Leverages SimplePie CoreNo
    Optional HelpersUnknown
    Plugin SupportUnknown
    + +### About the Plugin {#about_the_plugin} + +The author has not yet updated this page with complete information. Please check out the “Main Page” URL listed above. + +If you are the author or maintainer of this software and want to update this documentation, please take a moment to read [Guidelines for Developers](@/wiki/plugins/guidelines_for_developers.md) to get a feel for the quality of documentation we're looking for. :) diff --git a/docs/content/wiki/plugins/wordpress/rss_image_widget.md b/docs/content/wiki/plugins/wordpress/rss_image_widget.md new file mode 100644 index 000000000..c09f5536b --- /dev/null +++ b/docs/content/wiki/plugins/wordpress/rss_image_widget.md @@ -0,0 +1,52 @@ ++++ +title = "RSS Image Widget" ++++ + +## The Basics {#the_basics} + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Main pageRSS Image Widget
    AuthorIsaac Rowntree
    Plugin Version1.0
    Compatible WordPress version2.3
    DownloadDownload
    Required SimplePie version1.1
    Leverages SimplePie CoreRelies on SimplePie Plugin for WordPress
    Optional HelpersRequires WordPress Sidebar Widgets and SimplePie Plugin for WordPress
    Plugin SupportUnknown
    + +### About the Plugin {#about_the_plugin} + +The author has not yet updated this page with complete information. Please check out the “Main Page” URL listed above. + +If you are the author or maintainer of this software and want to update this documentation, please take a moment to read [Guidelines for Developers](@/wiki/plugins/guidelines_for_developers.md) to get a feel for the quality of documentation we're looking for. :) diff --git a/docs/content/wiki/plugins/wordpress/simplelife.md b/docs/content/wiki/plugins/wordpress/simplelife.md new file mode 100644 index 000000000..5ac35c65b --- /dev/null +++ b/docs/content/wiki/plugins/wordpress/simplelife.md @@ -0,0 +1,66 @@ ++++ +title = "SimpleLife" ++++ + +## The Basics {#the_basics} + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Main pageSimpleLife
    AuthorKieran Delaney
    Plugin Version0.9
    Compatible WordPress version2.x
    DownloadDownload
    Required SimplePie version1.0.1
    Leverages SimplePie CoreNo. Might cause collisions with other SimplePie-based plugins in WordPress.
    Optional HelpersNone
    Plugin SupportSimpleLife
    + +### About the Plugin {#about_the_plugin} + +SimpleLife is a (very) simple Wordpress Plugin adapted from my own custom php script for my own lifestream - all based on Simplepie + +Excited? See it in action: [Project Page](http://kierandelaney.net/blog/projects/simplelife/) + +### Features {#features} + +- **Works With All Feeds** - even del.icio.us feeds. MagpieRSS, provided by Wordpress and used by other plugins doesn’t work correctly with del.icio.us feeds. +- **Customisable Appearance** - by changing provided CSS classes. Or use the default provided. +- **Feed Icons** - provided by the feeds themselves (using appropriate site favicon) or custom icons (provided by you). +- **Install And Go** - no settings to play with, uses existing wordpress cache, just insert your feed urls and upload three files. +- **Compact/Lightweight** - you won’t get lifestream specific CSS on every page where its not needed and you won’t get functions all over the site slowing down wordpress - its all handled on the lifestream page itself. + +As you may have gathered wp_SimpleLife takes its name from the underlying feed parsing software used, SimplePie. SimplePie is included with the plugin (its one of the three files you need to upload). + +wp_SimpleLife is not unsupported, but close - it works for my site so thats good enough for me. I will continue to polish the existing plugin, and i will endevour to help anyybody who asks politely. There won’t be any extra features added, unless i can see benefit to myself or you want to pay me. Feel free to modify the code, but please give credit where credit is due and link to me. + +I have included a link to the project page in the code and would appreciate it if you would keep the link as is. Afterall, its only fair to give credit for the many hours I’ve spent providing you with an ace lifestream plugin that works, that you can download and use and that works out of the box ;) diff --git a/docs/content/wiki/plugins/wordpress/simplepie_core.md b/docs/content/wiki/plugins/wordpress/simplepie_core.md new file mode 100644 index 000000000..83d749ffc --- /dev/null +++ b/docs/content/wiki/plugins/wordpress/simplepie_core.md @@ -0,0 +1,84 @@ ++++ +title = "SimplePie Core" ++++ + +## The Basics {#the_basics} + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Main pageSimplePie Core
    AuthorRyan Parman, Geoffrey Sneddon, and contributors
    Plugin Version1.1.1
    Compatible WordPress version2.x
    DownloadDownload
    Plugin Supporthttp://tech.groups.yahoo.com/group/simplepie-support/
    + +## About SimplePie Core {#about_simplepie_core} + +From time to time, we get messages in support about people using multiple WordPress plugins that utilize SimplePie, and sometimes they cause collisions because each plugin is bundling their own copy of SimplePie. In an effort to make things easier, we've released a new WordPress plugin that does absolutely nothing but load the latest version of SimplePie and the International Domain Names (IDN) library that we bundle. This plugin is called **[SimplePie Core](http://wordpress.org/extend/plugins/simplepie-core)**. + +### Why? {#why} + +There are a couple of reasons: + +1. To eliminate conflicts between multiple SimplePie-based plugins installed at the same time. +2. To make it easier for people to get the latest SimplePie enhancements without requiring a new release from WordPress plugin developers. +3. And stuff. + +### How does this affect me, a WordPress plugin developer? {#how_does_this_affect_me_a_wordpress_plugin_developer} + +The advantage to you is that future SimplePie releases can be easily installed by users, and that there is no risk of conflicts between SimplePie-based plugins. + +However, this also means that you likely need to make a few small updates to your plugins. + +- Don't load SimplePie manually by including/requiring `simplepie.inc` or `idna.class.php`. Instead, check to see if the SimplePie class is defined. If it is, you'll know that SimplePie is available to be used. +- If SimplePie is not available, you should display some sort of error message instructing people to download, install, and activate the SimplePie Core plugin from (this should be a friendly message, not a crash-and-burn message). If they've already installed a SimplePie Core-aware plugin, they'll likely already have it installed and it won't even be an issue. (The [SimplePie Plugin for WordPress](@/wiki/plugins/wordpress/simplepie_plugin_for_wordpress/_index.md) began doing this starting with version 2.2.) +- If you require a minimum version of SimplePie (such as you use some of the new features of 1.1), check that the `SIMPLEPIE_BUILD` value of the loaded SimplePie class is equal-to or greater-than that of the SimplePie release that you need. If not, display another friendly message. + +It's also possible that some plugin authors haven't updated their plugins to be SimplePie Core-aware yet, and may have an older version of SimplePie bundled with their plugin that loads before yours or even SimplePie Core. If SimplePie Core detects that the SimplePie class has already been loaded by another plugin, SimplePie Core will gracefully disable itself to avoid conflicts and fatal PHP errors. As long as you check that the minimum SimplePie build has been met, you can avoid fatal errors too. + +Of course, that also means that we need to pummel that lazy developer with emails and blog comments until he/she upgrades the plugin to be SimplePie Core-aware. :) + +### Sample Code {#sample_code} + +```php += 20080102221556) // SimplePie 1.1 + { + echo 'Everything is A-OK! Rock on!'; + } + else + { + echo 'This plugin requires a newer version of the SimplePie Core plugin to enable important functionality. Please upgrade the plugin to the latest version.'; + } +} +else +{ + echo 'This plugin relies on the SimplePie Core plugin to enable important functionality. Please download, install, and activate it, or upgrade the plugin if you\'re not using the latest version.'; +} + +?> +``` diff --git a/docs/content/wiki/plugins/wordpress/simplepie_plugin_for_wordpress/_index.md b/docs/content/wiki/plugins/wordpress/simplepie_plugin_for_wordpress/_index.md new file mode 100644 index 000000000..dbd14556c --- /dev/null +++ b/docs/content/wiki/plugins/wordpress/simplepie_plugin_for_wordpress/_index.md @@ -0,0 +1,102 @@ ++++ +title = "SimplePie Plugin for WordPress" ++++ + +## The Basics {#the_basics} + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Main pageSimplePie Plugin for WordPress
    AuthorRyan Parman
    Plugin Version2.2.1
    Compatible WordPress version2.x (2.5 recommended)
    DownloadDownload
    Required SimplePie version1.1.1
    Leverages SimplePie CoreYes
    Optional HelpersExec-PHP, PHP Code Widget
    Plugin Supporthttp://tech.groups.yahoo.com/group/simplepie-support/
    Bugs and Feature Requestshttp://github.com/simplepie/wordpress/issues
    + +## Navigation {#navigation} + + + + + + + + + + + + + +
    OverviewInstallationGetting StartedCustomizationPost-ProcessingTroubleshooting
    + +## About the Plugin {#about_the_plugin} + +This plugin has just about everything you'd need for working with feeds in WordPress, and has a TON of features including: + +- A configuration pane under the Options tab in the WordPress software. +- “Multifeeds” support. +- MUCH better control over the plugin's output. Supports a simple templating system that allows: + - Simple, easy-to-use tags for nearly every piece of data that SimplePie can output. + - Support for multiple templates. + - Global configuration of default values for several configuration options. + - Ability to override the defaults for any given feed – including giving a feed it's own output template. + - Ability to post-process feed data (e.g. stripping out all content except for images). +- No need to manually set up cache folders. +- Support for internationalized domain names. +- Support for short descriptions is configurable. +- And more! + +## Brief Version History {#brief_version_history} + +- 2.2: Added support for setting your preferred cache location, improvements to error handling, support for more Media RSS data, support for new SimplePie 1.1 methods, and stopped bundling the SimplePie API in favor of relying on the [SimplePie Core](http://wordpress.org/extend/plugins/simplepie-core/) extension. +- 2.1: Added support for feed post-processing, better error handling, and fixed issues with installing in the wrong location. +- 2.0: Complete re-write from scratch. Now a full-fledged WordPress plugin complete with control panel. +- 1.2: Added support for the 'showtitle' and 'alttitle' keywords. +- 1.1: Better error handling, and support for the 'error' keyword. +- 1.0: First release. + +## What Do I Need To Know? {#what_do_i_need_to_know} + +These instructions assume that you have a basic familiarity with PHP and know how to add a line of PHP code to your own WordPress templates. If you don't, and you're just getting started, we would suggest you take a look at the following documentation and tutorials: + +- [PHP 101: PHP For the Absolute Beginner](http://devzone.zend.com/node/view/id/627) +- [Introduction to PHP tutorial](http://www.php.net/manual/en/tutorial.php) +- [WordPress: Blog Design and Layout](http://codex.wordpress.org/Blog_Design_and_Layout) +- [WordPress: Theme Development](http://codex.wordpress.org/Theme_Development) +- [WordPress: Customizing your Sidebar](http://codex.wordpress.org/Customizing_Your_Sidebar) diff --git a/docs/content/wiki/plugins/wordpress/simplepie_plugin_for_wordpress/customization.md b/docs/content/wiki/plugins/wordpress/simplepie_plugin_for_wordpress/customization.md new file mode 100644 index 000000000..7bdfcbbca --- /dev/null +++ b/docs/content/wiki/plugins/wordpress/simplepie_plugin_for_wordpress/customization.md @@ -0,0 +1,480 @@ ++++ +title = "Customization" ++++ + +Nearly every aspect of SimplePie Plugin for WordPress is customizable. You can create multiple templates, customize those templates, choose the settings that work best for you, and even edit and alter the feed data after it's read from the feed but before it's displayed on the page! These are the customization options available as of the latest version of the plugin. + +## Navigation {#navigation} + + + + + + + + + + + + + +
    OverviewInstallationGetting StartedCustomizationPost-ProcessingTroubleshooting
    + +## Per-Feed Settings {#per-feed_settings} + +If you want to override the default settings on a per-feed basis, these are the options that you can set (as discussed in [Getting Started: Overriding Settings (Basic)](@/wiki/plugins/wordpress/simplepie_plugin_for_wordpress/usage.md#overriding_settings_basic "plugins:wordpress:simplepie_plugin_for_wordpress:usage")). You would only use these if you want to _override_ the settings from the options panel. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    OPTION/ATTRIBUTEDATATYPEDESCRIPTION
    date_formatstringThe date format to use for English dates. Supports anything that PHP's date() function.
    enable_cachebooleanWhether the given feed should be cached or not.
    enable_order_by_datebooleanWhether to force-reorder items into chronological order. Only works when items have dates associated with them.
    itemsintegerThe number of feed items to display. Will display this value, or all of the items in the feed – whichever is less.
    items_per_feedintegerThe number of feed items to display per-feed (e.g. setting this to 3 will only merge 3 items from each feed). Only works when merging multiple feeds and obeys the items setting.
    localestringThe locale value to use for displaying localized datestamps.
    local_date_formatstringThe format to use for localized dates.
    processingstringThe file to use for post-processing the feed. Can use the name of any process listed in the options panel, preferably lowercased with spaces replaced by underscores.
    set_cache_durationintegerThe number of seconds to consider the cache file fresh.
    set_max_checked_feedsintegerWhen using auto-discovery, this is the number of links to check for the existence of a feed.
    set_timeoutintegerThe number of seconds to wait for a remote website while fetching a feed.
    strip_attributesstringA space-delimited list of HTML attributes to remove from the feed's content.
    strip_htmltagsstringA space-delimited list of HTML tags to remove from the feed's content.
    templatestringThe template to use for displaying the feed. Can use the name of any template listed in the options panel, preferably lowercased with spaces replaced by underscores.
    truncate_feed_descriptionintegerThe number of characters to shorten the feed's description to. Only used with {TRUNCATE_FEED_DESCRIPTION} and {TRUNCATE_ITEM_PARENT_DESCRIPTION}.
    truncate_feed_titleintegerThe number of characters to shorten the feed's title to. Only used with {TRUNCATE_FEED_TITLE} and {TRUNCATE_ITEM_PARENT_TITLE}.
    truncate_item_descriptionintegerThe number of characters to shorten the item's description to. Only used with {TRUNCATE_ITEM_DESCRIPTION}.
    truncate_item_titleintegerThe number of characters to shorten the item's title to. Only used with {TRUNCATE_ITEM_TITLE}.
    + +## Template Tags {#template_tags} + +Another major feature is that instead of being locked into a single, simple layout, you can create your own layouts in the form of templates. The following is a list of template tags you can use. Feel free to take a look at the ones that were supplied in the `templates` folder. + +### Plugin Tags {#plugin_tags} + +These are tags that are related to the plugin, but not necessarily anything with the SimplePie API. + + + + + + + + +
    {PLUGIN_DIR}Returns the web URL of the SimplePie plugin directory. This is useful for linking to images or other files that are stored inside the SimplePie plugin directory.
    + +### Error Tags {#error_tags} + +These tags are used for displaying error messages. + + + + + + + + + + + + + + + + +
    {IF_ERROR_BEGIN}Marks the beginning of where the error message would display if there was one.
    {IF_ERROR_END}Marks the end of where the error message would display.
    {ERROR_MESSAGE}The error message that SimplePie throws.
    + +### Feed/Anywhere-Level Tags {#feedanywhere-level_tags} + +These tags can be used anywhere in the template. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    {FEED_AUTHOR_EMAIL}Same as $feed->get_author(0)->get_email().
    {FEED_AUTHOR_LINK}Same as $feed->get_author(0)->get_link().
    {FEED_AUTHOR_NAME}Same as $feed->get_author(0)->get_name().
    {FEED_CONTRIBUTOR_EMAIL}Same as $feed->get_contributor(0)->get_email().
    {FEED_CONTRIBUTOR_LINK}Same as $feed->get_contributor(0)->get_link().
    {FEED_CONTRIBUTOR_NAME}Same as $feed->get_contributor(0)->get_name().
    {FEED_COPYRIGHT}Same as $feed->get_copyright().
    {FEED_DESCRIPTION}Same as $feed->get_description().
    {FEED_ENCODING}Same as $feed->get_encoding().
    {FEED_FAVICON}Same as $feed->get_favicon().
    {FEED_IMAGE_HEIGHT}Same as $feed->get_image_height().
    {FEED_IMAGE_LINK}Same as $feed->get_image_link().
    {FEED_IMAGE_TITLE}Same as $feed->get_image_title().
    {FEED_IMAGE_URL}Same as $feed->get_image_url().
    {FEED_IMAGE_WIDTH}Same as $feed->get_image_width().
    {FEED_LANGUAGE}Same as $feed->get_language().
    {FEED_LATITUDE}Same as $feed->get_latitude().
    {FEED_LONGITUDE}Same as $feed->get_longitude().
    {FEED_PERMALINK}Same as $feed->get_permalink().
    {FEED_TITLE}Same as $feed->get_title().
    {SUBSCRIBE_URL}Same as $feed->subscribe_url().
    {TRUNCATE_FEED_DESCRIPTION}Same as $feed->get_description() except that it obeys the appropriate “truncate text” setting.
    {TRUNCATE_FEED_TITLE}Same as $feed->get_title() except that it obeys the appropriate “truncate text” setting.
    + +### Item Looping Tags {#item_looping_tags} + +These tags mark the beginning and end of items. + + + + + + + + + + + + +
    {ITEM_LOOP_BEGIN}Marks the beginning of where we should begin looping through items.
    {ITEM_LOOP_END}Marks the end of where we should stop looping through items.
    + +### Item-Level Tags {#item-level_tags} + +These are tags that can be used inside the item loop. These will NOT work outside of the item loop and there will be a PHP error if you try. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    {ITEM_AUTHOR_EMAIL}Same as $item->get_author(0)->get_email().
    {ITEM_AUTHOR_LINK}Same as $item->get_author(0)->get_link().
    {ITEM_AUTHOR_NAME}Same as $item->get_author(0)->get_name().
    {ITEM_CATEGORY}Same as $item->get_category(0)->get_label().
    {ITEM_CONTENT}Same as $item->get_content().
    {ITEM_CONTRIBUTOR_EMAIL}Same as $item->get_contributor(0)->get_email().
    {ITEM_CONTRIBUTOR_LINK}Same as $item->get_contributor(0)->get_link().
    {ITEM_CONTRIBUTOR_NAME}Same as $item->get_contributor(0)->get_name().
    {ITEM_COPYRIGHT}Same as $item->get_copyright().
    {ITEM_DATE}Same as $item->get_date().
    {ITEM_DATE_UTC}Same as $item->get_date() except that a GMT/UTC timestamp is displayed.
    {ITEM_DESCRIPTION}Same as $item->get_description().
    {ITEM_ENCLOSURE_BITRATE}Same as $item->get_enclosure(0)->get_bitrate().
    {ITEM_ENCLOSURE_CHANNELS}Same as $item->get_enclosure(0)->get_channels().
    {ITEM_ENCLOSURE_DESCRIPTION}Same as $item->get_enclosure(0)->get_description().
    {ITEM_ENCLOSURE_DURATION}Same as $item->get_enclosure(0)->get_duration().
    {ITEM_ENCLOSURE_EMBED}Same as $item->get_enclosure(0)->native_embed().
    {ITEM_ENCLOSURE_EXPRESSION}Same as $item->get_enclosure(0)->get_expression().
    {ITEM_ENCLOSURE_EXTENSION}Same as $item->get_enclosure(0)->get_extension().
    {ITEM_ENCLOSURE_FRAMERATE}Same as $item->get_enclosure(0)->get_framerate().
    {ITEM_ENCLOSURE_HANDLER}Same as $item->get_enclosure(0)->get_handler().
    {ITEM_ENCLOSURE_HASH}Same as $item->get_enclosure(0)->get_hash().
    {ITEM_ENCLOSURE_HEIGHT}Same as $item->get_enclosure(0)->get_height().
    {ITEM_ENCLOSURE_LANGUAGE}Same as $item->get_enclosure(0)->get_language().
    {ITEM_ENCLOSURE_LENGTH}Same as $item->get_enclosure(0)->get_length().
    {ITEM_ENCLOSURE_LINK}Same as $item->get_enclosure(0)->get_link().
    {ITEM_ENCLOSURE_MEDIUM}Same as $item->get_enclosure(0)->get_medium().
    {ITEM_ENCLOSURE_PLAYER}Same as $item->get_enclosure(0)->get_player().
    {ITEM_ENCLOSURE_REAL_TYPE}Same as $item->get_enclosure(0)->get_real_type().
    {ITEM_ENCLOSURE_SAMPLINGRATE}Same as $item->get_enclosure(0)->get_sampling_rate().
    {ITEM_ENCLOSURE_SIZE}Same as $item->get_enclosure(0)->get_size().
    {ITEM_ENCLOSURE_THUMBNAIL}Same as $item->get_enclosure(0)->get_thumbnail().
    {ITEM_ENCLOSURE_TITLE}Same as $item->get_enclosure(0)->get_title().
    {ITEM_ENCLOSURE_TYPE}Same as $item->get_enclosure(0)->get_type().
    {ITEM_ENCLOSURE_WIDTH}Same as $item->get_enclosure(0)->get_width().
    {ITEM_ID}Same as $item->get_id().
    {ITEM_LATITUDE}Same as $item->get_latitude().
    {ITEM_LOCAL_DATE}Same as $item->get_local_date().
    {ITEM_LOCAL_DATE_UTC}Same as $item->get_local_date() except that a GMT/UTC timestamp is displayed.
    {ITEM_LONGITUDE}Same as $item->get_longitude().
    {ITEM_PERMALINK}Same as $item->get_permalink().
    {ITEM_TITLE}Same as $item->get_title().
    {TRUNCATE_ITEM_DESCRIPTION}Same as $item->get_description() except that it obeys the appropriate “truncate text” setting.
    {TRUNCATE_ITEM_TITLE}Same as $item->get_title() except that it obeys the appropriate “truncate text” setting.
    + +### Newbie Note: Missing Data with Multifeeds {#newbie_notemissing_data_with_multifeeds} + +You're merging multiple feeds together and you try to access data from `{FEED_TITLE}` or `{FEED_DESCRIPTION}` but there doesn't seem to be anything. Let's say that you're merging together 3 feeds, each with their own titles, descriptions, etc. We'll use Digg, Slashdot, and Apple as examples. Digg has its own title, so does Slashdot, and so does Apple. If there are 3 competing pieces of data, what should `{FEED_TITLE}` return? + +Well, put simply, SimplePie has no idea which data to show, so it doesn't display anything. + +So what do we do? If you merge together a feed from Digg and a feed from Slashdot, some items will be from Digg while others are from Slashdot – obviously. As you narrow down a specific item, you can get the feed-level information for that specific item using `{ITEM_PARENT_*}` tags like `{ITEM_PARENT_TITLE}` for example. + +To use these tags, simply replace the `FEED` part of each of the feed-level tags above with `ITEM_PARENT`. `{FEED_TITLE}` becomes `{ITEM_PARENT_TITLE}`, `{FEED_DESCRIPTION}` becomes `{ITEM_PARENT_DESCRIPTION}` and so on. These tags only work properly between the `{ITEM_LOOP_BEGIN}` and `{ITEM_LOOP_END}` tags. + +This is used in a few of the sample templates that came bundled with the plugin, so feel free to check them out to get a better feel for how they're used. diff --git a/docs/content/wiki/plugins/wordpress/simplepie_plugin_for_wordpress/installation.md b/docs/content/wiki/plugins/wordpress/simplepie_plugin_for_wordpress/installation.md new file mode 100644 index 000000000..f9ade1d96 --- /dev/null +++ b/docs/content/wiki/plugins/wordpress/simplepie_plugin_for_wordpress/installation.md @@ -0,0 +1,62 @@ ++++ +title = "Installation" ++++ + +## Navigation {#navigation} + + + + + + + + + + + + + +
    OverviewInstallationGetting StartedCustomizationPost-ProcessingTroubleshooting
    + +## Upgrading from an older version? {#upgrading_from_an_older_version} + +### From 2.2.x {#from_22x} + +1. Backup any custom templates and post-processing files you might have. +2. Replace the old plugin folder with the new one. +3. Re-add your custom templates and post-processing files. + +### From 2.0.x through 2.1.x {#from_20x_through_21x} + +1. Install the [SimplePie Core](http://wordpress.org/extend/plugins/simplepie-core/) plugin, and activate it. +2. Backup any custom templates and post-processing files you might have. +3. Replace the old plugin folder with the new one. +4. Re-add your custom templates and post-processing files. +5. Make sure that you go into the Options panel, and click “update options” to ensure that new data is entered into the database. + +### From 1.x {#from_1x} + +1. Delete all traces of the previous version of the plugin (specifically deleting `simplepie_wordpress.php`). +2. Wherever you've called `SimplePieWP()`, you'll likely end up deleting the options you've already set, or converting them to the updated array syntax for setting per-feed options. These new options are discussed below. + +## Fresh Installation {#fresh_installation} + +### Step 0: SimplePie Core {#step_0simplepie_core} + +This plugin relies on another WordPress plugin called [SimplePie Core](http://wordpress.org/extend/plugins/simplepie-core/). This plugin is shared by other plugins that integrate with SimplePie, so check to see if you already have it. If you're using WordPress 2.3 or newer, the WordPress Plugins control panel will tell you if you need to update to a newer version. + +If you don't already have it, follow steps 1-3 for both [SimplePie Core](http://wordpress.org/extend/plugins/simplepie-core/) and [SimplePie Plugin for WordPress](http://wordpress.org/extend/plugins/simplepie-plugin-for-wordpress/). + +### Step 1: Download the plugin {#step_1download_the_plugin} + +There's a link above to download the [SimplePie Plugin for WordPress](http://wordpress.org/extend/plugins/simplepie-plugin-for-wordpress/) (make sure you know where you've downloaded them to). Once you've done that, unzip it. + +### Step 2: Upload the plugin folder {#step_2upload_the_plugin_folder} + +The entire plugin folder should be uploaded as-is to your WordPress installation, so that it ends up as `wp-content/plugins/simplepie-plugin-for-wordpress`. + +### Step 3: Enable the plugin {#step_3enable_the_plugin} + +Log into your WordPress control panel, go to “plugins”, and enable the _SimplePie Plugin for WordPress_ plugin. If you need more help installing WordPress plugins, check out the [WordPress plugin installation instructions](http://codex.wordpress.org/Managing_Plugins#Installing_Plugins). From there, you can go to the new `Options → SimplePie for WP` panel and configure your default settings. + +The SimplePie Plugin for WordPress is now installed! diff --git a/docs/content/wiki/plugins/wordpress/simplepie_plugin_for_wordpress/processing.md b/docs/content/wiki/plugins/wordpress/simplepie_plugin_for_wordpress/processing.md new file mode 100644 index 000000000..8f4de95c6 --- /dev/null +++ b/docs/content/wiki/plugins/wordpress/simplepie_plugin_for_wordpress/processing.md @@ -0,0 +1,58 @@ ++++ +title = "Post-Processing" ++++ + +New in version 2.1, SimplePie Plugin for WordPress allows you to do post-processing on the feed data. This allows you to do things like strip all content from an item except for images, do profanity censoring, strip out advertisements in feeds, and just about anything else you might want to do. + +## Navigation {#navigation} + + + + + + + + + + + + + +
    OverviewInstallationGetting StartedCustomizationPost-ProcessingTroubleshooting
    + +## Notes about Post-Processing {#notes_about_post-processing} + +- Post-Processing files should be stored in the `processes` directory. +- All post-processing functions need to be contained within the `SimplePie_PostProcess` class (look at the examples). +- The function to post-process a given template tag should have the same name but lowercased (i.e. `{ITEM_CONTENT}` would be overridden with `function item_content()`). +- The function should accept a single parameter, which is the value that SimplePie returns. This is the value that you will manipulate. + +## Example {#example} + +```php +]*)>/i', $s, $matches); + + // Clear out the variable. + $s = ''; + + // Loop through all of the *complete* matches (stored in $matches[0]). + foreach ($matches[0] as $match) + { + // Add the images (only) back to $s. + $s .= $match . '
    '; + } + + // Return $s back out to the plugin. + return $s; + } +} +?> +``` diff --git a/docs/content/wiki/plugins/wordpress/simplepie_plugin_for_wordpress/troubleshooting.md b/docs/content/wiki/plugins/wordpress/simplepie_plugin_for_wordpress/troubleshooting.md new file mode 100644 index 000000000..63fa57374 --- /dev/null +++ b/docs/content/wiki/plugins/wordpress/simplepie_plugin_for_wordpress/troubleshooting.md @@ -0,0 +1,39 @@ ++++ +title = "Troubleshooting" ++++ + +These are the major issues we've been made aware of. Feel free to add issues that you run into along with solutions for them. + +## Navigation {#navigation} + + + + + + + + + + + + + +
    OverviewInstallationGetting StartedCustomizationPost-ProcessingTroubleshooting
    + +## Cache Error {#cache_error} + +As it turns out, some people have a `cache` directory inside their `wp-content` directory, while others don't. By default, SimplePie sets the cache location as your `wp-content/cache` directory and assumes that is writable (which it normally is, if it exists). If this directory doesn't exist, you'll need to either create it (using your preferred FTP or SSH tool) or change the cache location in the `SimplePie for WP` tab of the WordPress Plugins control panel. If this directory isn't writable by the server, you'll need to change the file permissions for your cache directory to be server-writable. + +This setting varies from web host to web host. In the past, I've used [iPowerWeb](http://ipowerweb.com/), and they required file permissions of `777` in order to be server-writable. Currently, I use [Dreamhost](http://dreamhost.com/r.cgi?skyzyx), and they need permissions to be set to `755` to be server-writable. Again, if you're not sure, either go ask your host or you can try various settings yourself. The three to try are `755`, `775`, or `777`. + +The specific process of _how_ you change your file permissions differs from FTP application to FTP application. On Windows I use [FlashFXP](http://flashfxp.com), where you find the remote file or folder that you want to change the permissions of, you right-click on it, and choose _Attributes (CHMOD)_. On Mac OS X I use [Transmit](http://panic.com/transmit/), where you find the remote file or folder that you want to change the permissions of, you right-click (or ctrl-click for you one-button-mousers) on it, and choose _Get Info_. Your specific FTP application will most likely be something similar. + +## Plugin could not be activated because it triggered a fatal error. {#plugin_could_not_be_activated_because_it_triggered_a_fatal_error} + +According to [this post](http://wordpress.org/support/topic/128698?replies=3), some PHP installs might have to bump up their memory in PHP. + +>
    +> +> “Simply increase the php.ini memory allocation. It is set at 8MB by default. I upped mine to 32MB and I was up and running.” +> +>
    diff --git a/docs/content/wiki/plugins/wordpress/simplepie_plugin_for_wordpress/usage.md b/docs/content/wiki/plugins/wordpress/simplepie_plugin_for_wordpress/usage.md new file mode 100644 index 000000000..0967a5e30 --- /dev/null +++ b/docs/content/wiki/plugins/wordpress/simplepie_plugin_for_wordpress/usage.md @@ -0,0 +1,105 @@ ++++ +title = "Getting Started" ++++ + +SimplePie Plugin for WordPress has a control panel that lets you configure all sorts of settings. These settings are applied globally to all uses of the plugin by default, and makes it simple to change the settings for all of your feeds with a single click (very few, at least). If you want to override the default settings for a specific feed, or any other kind of customization, check out the [Customization](@/wiki/plugins/wordpress/simplepie_plugin_for_wordpress/customization.md) page for more information. + +## Navigation {#navigation} + + + + + + + + + + + + + +
    OverviewInstallationGetting StartedCustomizationPost-ProcessingTroubleshooting
    + +## The Basics {#the_basics} + +Let's start with something basic: + +```php + +``` + +This code sample will display the feed using all of the default settings. If you ever want to change the settings for this feed, you could do everything directly from the control panel, as we're not overriding any settings in this example. It will display the default number of items using the default template, and will apply all other default settings (that you've configured in your control panel). + +We're also utilizing SimplePie's built-in auto-discovery feature to discover the feed for this particular website even though we only entered the website address. + +### Newbie Note: Where do I put the code? {#newbie_notewhere_do_i_put_the_code} + +If you're familiar with WordPress, you'll know that you CAN put pure PHP code into your templates by editing the template code itself. Adding things to your sidebar is documented in the WordPress wiki in an article called ["Customizing your Sidebar"](http://codex.wordpress.org/Customizing_Your_Sidebar). Additional links for tweaking stuff in WordPress (and just the basic fundamentals of doing stuff in PHP) are noted in ["What do I need to know"](@/wiki/plugins/wordpress/simplepie_plugin_for_wordpress/_index.md#what_do_i_need_to_know). + +Normally you CANNOT put pure PHP code into your posts/pages, but you can enable this functionality by installing a plugin such as [Exec-PHP](http://wordpress.org/extend/plugins/exec-php/). + +## Overriding Settings (Basic) {#overriding_settings_basic} + +Additionally, you can override the default settings for any specific SimplePie instance by passing parameters directly to the `SimplePieWP()` function. Here is an example of what passing parameters could look like: + +```php + 5, + 'cache_duration' => 1800, + 'date_format' => 'j M Y, g:i a' +)); +?> +``` + +In the above example, we've chosen to accept ALL of the default settings (configured in the options panel), but we've overridden (a) the number of items to display, (b) the number of seconds to cache the feed for, and ( c ) the date formatting on a per-feed basis. + +### Newbie Note: Letters, Numbers, and telling the Truth {#newbie_noteletters_numbers_and_telling_the_truth} + +It's good to know the difference between “Strings” (e.g. text, words, letters) and “Integers” (whole numbers). Notice in the above example that the value for `items` is simply `5`, without quotes. That's because this value is an integer (whole number) and needs to be treated as such. On the other hand, the value for `date_format` has single quote marks around it. That's because this value is a string (text, words, letters) and needs to be treated as such. + +There is another data type called a “Float.” Float is short for floating-point, or better known as a decimal point. These are essentially numbers that are not whole numbers. For example, `10` is an integer (whole number), while `10.5` is a float (contains a partial whole number). When we talk about numbers in programming, we're referring to integers and floats. + +Lastly, we have a “Boolean.” Booleans only have two possible values: `true` or `false`. It's basically the on/off switch of programming. Either we do or we don't. Booleans could also be known as “toggles.” + +### Newbie Note: false vs. 'false' {#newbie_notefalse_vs_false} + +Here's a place where many newbies make mistakes. They might set something like the following, which will confuse PHP. + +```text +'enable_cache' => 'false' +``` + +What's wrong here? You passed in a string instead of a boolean value. This is what happened in the above example: + +1. You set the value to `'false'` in an attempt to NOT do something. +2. PHP sees `'false'`, notices the quote marks, and says to itself “Ah, this is a _string_ value that they're passing in!” Programming languages are dumb because they can't read minds. :) +3. PHP replies with “yes, this _string_ DOES have a value to it”, and will respond in the positive instead of the negative (which is what we wanted). +4. SimplePie will do the opposite of what you intended. + +What you need to do is use `false` (without the quotes – because this is a boolean, not a string), like so. + +```text +'enable_cache' => false +``` + +With this, SimplePie (and PHP) will respond correctly. + +## Multifeeds {#multifeeds} + +As if all of this wasn't enough, the plugin also supports what we affectionately call “Multifeeds”. This allows you to merge multiple feeds together and sort the items by time and date. Using Multifeeds is as simple as passing in an array of URLs instead of a single URL: + +```php + 5, + 'cache_duration' => 1800, + 'date_format' => 'j M Y, g:i a' +)); +?> +``` + +Now, notice that I said “sort the items by time and date.” So, what happens if a feed is missing a time/date-stamp? They won't sort. (Duh.) Sorting by date requires ALL individual items in ALL merged feeds to have time/date-stamps associated with them. diff --git a/docs/content/wiki/plugins/wordpress/wp-o-matic.md b/docs/content/wiki/plugins/wordpress/wp-o-matic.md new file mode 100644 index 000000000..903e66775 --- /dev/null +++ b/docs/content/wiki/plugins/wordpress/wp-o-matic.md @@ -0,0 +1,52 @@ ++++ +title = "WP-o-Matic" ++++ + +## The Basics {#the_basics} + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Main pageWP-o-Matic
    AuthorGuillermo Rauch
    Plugin Version1.0RC1
    Compatible WordPress version2.2.x
    DownloadDownload
    Required SimplePie version1.0 (included)
    Leverages SimplePie CoreNo. Might cause collisions with other SimplePie-based plugins in WordPress.
    Optional HelpersUnknown
    Plugin SupportUnknown
    + +### About the Plugin {#about_the_plugin} + +Click [Here](http://devthought.com/wp-o-matic-the-wordpress-rss-agreggator/) for the up-to-date information about the plugin. + +If you are the author or maintainer of this software and want to update this documentation, please take a moment to read [Guidelines for Developers](@/wiki/plugins/guidelines_for_developers.md) to get a feel for the quality of documentation we're looking for. :) diff --git a/docs/content/wiki/plugins/wordpress/wp_category_feed.md b/docs/content/wiki/plugins/wordpress/wp_category_feed.md new file mode 100644 index 000000000..966891025 --- /dev/null +++ b/docs/content/wiki/plugins/wordpress/wp_category_feed.md @@ -0,0 +1,5 @@ ++++ +title = "plugins:wordpress:wp_category_feed" ++++ + + I suggest to use git source for known bugs diff --git a/docs/content/wiki/plugins/wordpress/wp_theme_onenews.md b/docs/content/wiki/plugins/wordpress/wp_theme_onenews.md new file mode 100644 index 000000000..de35a8cfc --- /dev/null +++ b/docs/content/wiki/plugins/wordpress/wp_theme_onenews.md @@ -0,0 +1,52 @@ ++++ +title = "WP Theme OneNews" ++++ + +## The Basics {#the_basics} + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Main pageWP Theme OneNews
    AuthorGenkisan
    Version2.0
    Compatible WordPress version2.5.x
    DownloadDownload
    Required SimplePie version1.1.1 (included)
    Leverages SimplePie CoreNo. Might cause collisions with other SimplePie-based plugins in WordPress.
    Optional HelpersUnknown
    Plugin SupportUnknown
    + +### About the Theme {#about_the_theme} + +Get up-to-date [information about the theme](http://ericulous.com/2007/06/11/popurls-clone-using-wordpress/). + +If you are the author or maintainer of this software and want to update this documentation, please take a moment to read [Guidelines for Developers](@/wiki/plugins/guidelines_for_developers.md) to get a feel for the quality of documentation we're looking for. :) diff --git a/docs/content/wiki/plugins/zend/simplepie_module.md b/docs/content/wiki/plugins/zend/simplepie_module.md new file mode 100644 index 000000000..eae9042f0 --- /dev/null +++ b/docs/content/wiki/plugins/zend/simplepie_module.md @@ -0,0 +1,77 @@ ++++ +title = "SimpleZend" ++++ + +# SimpleZend {#simplezend} + +## The Basics {#the_basics} + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Main pagehttps://github.com/jfabian-pe/SimpleZend
    AuthorJesus Fabian (based on work by baphled)
    Plugin Version1.0
    Compatible Zend Framework version1.x
    DownloadDownload
    Required SimplePie version1.0
    Optional HelpersUnknown
    Plugin SupportNone
    + +### Installation {#installation} + +Download SimpleZend, decompress and copy in `/library`. + +## Usage {#usage} + +# How to use it {#how_to_use_it} + +In your Controller class: + +```php +init(); + $this->view->title = $feed->get_title(); + $this->view->items = $feed->get_items(); + parent::init(); +?> +``` + +In your View: + +```php +items as $item) +{ + echo $item->get_content(); +} +?> +``` diff --git a/docs/content/wiki/reference/_index.md b/docs/content/wiki/reference/_index.md new file mode 100644 index 000000000..b9b53c9db --- /dev/null +++ b/docs/content/wiki/reference/_index.md @@ -0,0 +1,437 @@ ++++ +title = "API Reference" ++++ + +
    + +**This documentation is for 1.2 only. 1.3 documentation can be found in the [API Docs](/api/ "http://simplepie.org/api/") section of the site.** + +
    + +These are all of the public functions for SimplePie. Our goal is to not break any of these constructors and methods for all 1.x releases. If there are methods or constructors not mentioned here, or are marked “Non-Public”, then they are not considered public and may change tomorrow and the “no-breaking” rule does not apply to them. The next API breakage will be in SimplePie 2.0, but that's still quite a while off. :) + +Documentation for the latest in-development build can be found in our automatically generated [API documentation](http://dev.simplepie.org/api/). + +## SimplePie {#simplepie} + +### Constructor {#constructor} + +- [SimplePie](@/wiki/reference/simplepie/_index.md) — construct a new SimplePie object. + +### Constants {#constants} + +- [SIMPLEPIE_BUILD](@/wiki/reference/simplepie/simplepie_build.md) — Defines SimplePie's build ID. +- [SIMPLEPIE_LINKBACK](@/wiki/reference/simplepie/simplepie_linkback.md) — Defines the URL for linking back to SimplePie's website. +- [SIMPLEPIE_NAME](@/wiki/reference/simplepie/simplepie_name.md) — Defines SimplePie's name. +- [SIMPLEPIE_URL](@/wiki/reference/simplepie/simplepie_url.md) — Defines SimplePie's home page URL. +- [SIMPLEPIE_USERAGENT](@/wiki/reference/simplepie/simplepie_useragent.md) — Defines SimplePie's default user agent string. +- [SIMPLEPIE_VERSION](@/wiki/reference/simplepie/simplepie_version.md) — Defines SimplePie's version. + +### Methods {#methods} + +#### Configuration (Required) {#configuration_required} + +- [set_feed_url()](@/wiki/reference/simplepie/set_feed_url.md) — URL of the feed you want to parse. + +#### Configuration (Basic) {#configuration_basic} + +- [enable_cache()](@/wiki/reference/simplepie/enable_cache.md) — Enable/disable caching in SimplePie. +- [enable_order_by_date()](@/wiki/reference/simplepie/enable_order_by_date.md) — Enable/disable the reordering of items into reverse chronological order. +- [set_cache_duration()](@/wiki/reference/simplepie/set_cache_duration.md) — Set the minimum time for which a feed will be cached. +- [set_cache_location()](@/wiki/reference/simplepie/set_cache_location.md) — Set the folder where the cache files should be written. +- [set_favicon_handler()](@/wiki/reference/simplepie/set_favicon_handler.md) — Set the handler to enable the display of cached favicons. +- [set_image_handler()](@/wiki/reference/simplepie/set_image_handler.md) — Set the handler to enable the display of cached images. +- [set_item_limit()](@/wiki/reference/simplepie/set_item_limit.md) — Set a limit on how many items are returned per feed with Multifeeds. +- [set_javascript()](@/wiki/reference/simplepie/set_javascript.md) — Set the query string used for the JavaScript for [embed()](@/wiki/reference/simplepie_enclosure/embed.md). +- [strip_attributes()](@/wiki/reference/simplepie/strip_attributes.md) — HTML attributes to strip. +- [strip_comments()](@/wiki/reference/simplepie/strip_comments.md) — Strip HTML comments. +- [strip_htmltags()](@/wiki/reference/simplepie/strip_htmltags.md) — HTML tags to strip. + +#### Configuration (Advanced) {#configuration_advanced} + +- [enable_xml_dump()](@/wiki/reference/simplepie/enable_xml_dump.md) — Output the raw XML feed, after it has gone through SimplePie's filters. +- [encode_instead_of_strip()](@/wiki/reference/simplepie/encode_instead_of_strip.md) — Encode the HTML tags instead of stripping them. +- [force_feed()](@/wiki/reference/simplepie/force_feed.md) — Force SimplePie to parse the content, even if it doesn't believe it's a feed. +- [force_fsockopen()](@/wiki/reference/simplepie/force_fsockopen.md) — Use instead of the preferred extension for fetching remote files. +- [remove_div()](@/wiki/reference/simplepie/remove_div.md) — Remove the surrounding \ from XHTML content in Atom feeds. +- [set_autodiscovery_cache_duration()](@/wiki/reference/simplepie/set_autodiscovery_cache_duration.md) — Set the maximum time for which an autodiscovered feed URL will be cached. +- [set_autodiscovery_level()](@/wiki/reference/simplepie/set_autodiscovery_level.md) — Set what types of autodiscovery to use. +- [set_cache_name_function()](@/wiki/reference/simplepie/set_cache_name_function.md) — Set the callback function used to create cache filenames. +- [set_file()](@/wiki/reference/simplepie/set_file.md) — Set an instance of [SimplePie_File](@/wiki/reference/simplepie_file/_index.md) to use as a feed. +- [set_input_encoding()](@/wiki/reference/simplepie/set_input_encoding.md) — Override the character set within the feed. +- [set_max_checked_feeds()](@/wiki/reference/simplepie/set_max_checked_feeds.md) — Maximum number of URLs to check whether they are feeds before giving up. +- [set_output_encoding()](@/wiki/reference/simplepie/set_output_encoding.md) — Set the output character set. +- [set_raw_data()](@/wiki/reference/simplepie/set_raw_data.md) — String of Atom/RSS data to use as a feed. +- [set_stupidly_fast()](@/wiki/reference/simplepie/set_stupidly_fast.md) — Set the configurations to make SimplePie as fast as possible (if you don't do your own data sanitisation this can be a security hole). +- [set_timeout()](@/wiki/reference/simplepie/set_timeout.md) — Timeout for fetching remote files. +- [set_url_replacements()](@/wiki/reference/simplepie/set_url_replacements.md) — Set HTML attributes containing URLs that need to be resolved relative to the feed. +- [set_useragent()](@/wiki/reference/simplepie/set_useragent.md) — Set the useragent SimplePie should use for fetching remote files. + +#### Extending Classes (Advanced) {#extending_classes_advanced} + +- [Extending the SimplePie class](@/wiki/reference/simplepie/extending_the_simplepie_class.md) – Notes on how to extend the [SimplePie](@/wiki/reference/simplepie/_index.md) class like the others below. +- [set_author_class()](@/wiki/reference/simplepie/set_author_class.md) – Set the class to use for authors. +- [set_cache_class()](@/wiki/reference/simplepie/set_cache_class.md) – Set the class to use for caching. +- [set_caption_class()](@/wiki/reference/simplepie/set_caption_class.md) – Set the class to use for Media RSS caption data. +- [set_category_class()](@/wiki/reference/simplepie/set_category_class.md) – Set the class to use for categories. +- [set_content_type_sniffer_class()](@/wiki/reference/simplepie/set_content_type_sniffer_class.md) – Set the class to use for content-type sniffing. +- [set_copyright_class()](@/wiki/reference/simplepie/set_copyright_class.md) – Set the class to use for Media RSS copyright data. +- [set_credit_class()](@/wiki/reference/simplepie/set_credit_class.md) – Set the class to use for Media RSS credit data. +- [set_enclosure_class()](@/wiki/reference/simplepie/set_enclosure_class.md) – Set the class to use for enclosures. +- [set_file_class()](@/wiki/reference/simplepie/set_file_class.md) – Set the class to use for reading files (both local and remote). +- [set_item_class()](@/wiki/reference/simplepie/set_item_class.md) – Set the class to use for items. +- [set_locator_class()](@/wiki/reference/simplepie/set_locator_class.md) – Set the class to use for auto-discovery. +- [set_parser_class()](@/wiki/reference/simplepie/set_parser_class.md) – Set the class to use for XML parsing. +- [set_rating_class()](@/wiki/reference/simplepie/set_rating_class.md) – Set the class to use for Media RSS rating data. +- [set_restriction_class()](@/wiki/reference/simplepie/set_restriction_class.md) – Set the class to use for Media RSS restriction data. +- [set_sanitize_class()](@/wiki/reference/simplepie/set_sanitize_class.md) – Set the class to use for data sanitization. +- [set_source_class()](@/wiki/reference/simplepie/set_source_class.md) – Set the class to use for handling `atom:source`. + +#### Processing {#processing} + +- [\_\_destruct()](@/wiki/reference/simplepie/destruct.md) – Used for avoiding memory leaks when processing lots of feeds. +- [error()](@/wiki/reference/simplepie/error.md) — Return the error message for the occured error. +- [handle_content_type()](@/wiki/reference/simplepie/handle_content_type.md) — Sets the proper HTTP headers for the page, setting the character set to match the output encoding. +- [init()](@/wiki/reference/simplepie/init.md) — Initialise the feed, parsing it, etc. + +#### Feed-Level Data (Basic) {#feed-level_data_basic} + +- [get_author()](@/wiki/reference/simplepie/get_author.md) — Get a single author for the feed. Returns a reference to [SimplePie_Author](@/wiki/reference/simplepie_author/_index.md). +- [get_authors()](@/wiki/reference/simplepie/get_authors.md) — Get all authors for the feed. Returns references to [SimplePie_Author](@/wiki/reference/simplepie_author/_index.md). +- [get_contributor()](@/wiki/reference/simplepie/get_contributor.md) — Get a single contributor for the feed. Returns a reference to [SimplePie_Author](@/wiki/reference/simplepie_author/_index.md). +- [get_contributors()](@/wiki/reference/simplepie/get_contributors.md) — Get all contributors for the feed. Returns references to [SimplePie_Author](@/wiki/reference/simplepie_author/_index.md). +- [get_copyright()](@/wiki/reference/simplepie/get_copyright.md) — Get the feed copyright information. +- [get_description()](@/wiki/reference/simplepie/get_description.md) — Get the feed description. +- [get_encoding()](@/wiki/reference/simplepie/get_encoding.md) — Get the character set for the returned values. +- [get_favicon()](@/wiki/reference/simplepie/get_favicon.md) — Get the URL for the favicon of the feed's website. +- [get_item()](@/wiki/reference/simplepie/get_item.md) — Get a single item. Returns a reference to [SimplePie_Item](@/wiki/reference/simplepie_item/_index.md). +- [get_items()](@/wiki/reference/simplepie/get_items.md) — Get all the items. Returns references to [SimplePie_Item](@/wiki/reference/simplepie_item/_index.md). +- [get_item_quantity()](@/wiki/reference/simplepie/get_item_quantity.md) — Get the number of items in the feed. +- [get_language()](@/wiki/reference/simplepie/get_language.md) — Get the feed language. +- [get_link()](@/wiki/reference/simplepie/get_link.md) — Get a single link. +- [get_links()](@/wiki/reference/simplepie/get_links.md) — Get all the links of a specific relation. +- [get_permalink()](@/wiki/reference/simplepie/get_permalink.md) — Get the first feed link (i.e. the permalink). +- [get_title()](@/wiki/reference/simplepie/get_title.md) — Get the feed title. +- [get_type()](@/wiki/reference/simplepie/get_type.md) — Get the type of feed. + +#### Feed-Level GeoData {#feed-level_geodata} + +- [get_latitude()](@/wiki/reference/simplepie/get_latitude.md) — Get the feed latitude. +- [get_longitude()](@/wiki/reference/simplepie/get_longitude.md) — Get the feed longitude. + +#### Feed Logo {#feed_logo} + +- [get_image_height()](@/wiki/reference/simplepie/get_image_height.md) — Get the logo/image height. +- [get_image_link()](@/wiki/reference/simplepie/get_image_link.md) — Get the logo/image linkback URL. +- [get_image_title()](@/wiki/reference/simplepie/get_image_title.md) — Get the logo/image title. +- [get_image_url()](@/wiki/reference/simplepie/get_image_url.md) — Get the logo/image URL. +- [get_image_width()](@/wiki/reference/simplepie/get_image_width.md) — Get the logo/image width. + +#### Feed-Level Data Hacking (Advanced) {#feed-level_data_hacking_advanced} + +- [get_all_discovered_feeds()](@/wiki/reference/simplepie/get_all_discovered_feeds.md) — Get all feeds discovered during the autodiscovery process. +- [get_base()](@/wiki/reference/simplepie/get_base.md) – Get the `xml:base` value of a given element. +- [get_channel_tags()](@/wiki/reference/simplepie/get_channel_tags.md) — Get the value of ANY tag in the “channel” section of the feed. +- [get_feed_tags()](@/wiki/reference/simplepie/get_feed_tags.md) — Get the value of ANY tag in the “feed” section of the feed. +- [get_image_tags()](@/wiki/reference/simplepie/get_image_tags.md) — Get the value of ANY tag in the “image” section of the feed. +- [merge_items()](@/wiki/reference/simplepie/merge_items.md) — Merge the items of multiple feeds together. +- [sanitize()](@/wiki/reference/simplepie/sanitize.md) – Sanitizes data based on the type of data it is expected to be. +- [sort_items()](@/wiki/reference/simplepie/sort_items.md) – An over-ridable method that handles the sorting of items by some criteria. + +#### One-Click Subscriptions {#one-click_subscriptions} + +- [subscribe_aol()](@/wiki/reference/simplepie/subscribe_aol.md) — URL for subscribing in My AOL. +- [subscribe_bloglines()](@/wiki/reference/simplepie/subscribe_bloglines.md) — URL for subscribing in Bloglines. +- [subscribe_eskobo()](@/wiki/reference/simplepie/subscribe_eskobo.md) — URL for subscribing in Eskobo. +- [subscribe_feed()](@/wiki/reference/simplepie/subscribe_feed.md) — The actual feed URL, with a `feed: protocol for subscribing in a desktop aggregator. * subscribe_feedfeeds() — URL for subscribing in FeedFeeds. * subscribe_feedster() — URL for subscribing in Feedster. * subscribe_google() — URL for subscribing in Google Reader. * subscribe_gritwire() — URL for subscribing in Gritwire. * subscribe_itunes() — The actual feed URL, with an `itpc: protocol for subscribing in iTunes. +- [subscribe_msn()](@/wiki/reference/simplepie/subscribe_msn.md) — URL for subscribing in My MSN. +- [subscribe_netvibes()](@/wiki/reference/simplepie/subscribe_netvibes.md) — URL for subscribing in Netvibes. +- [subscribe_newsburst()](@/wiki/reference/simplepie/subscribe_newsburst.md) — URL for subscribing in Newsburst. +- [subscribe_newsgator()](@/wiki/reference/simplepie/subscribe_newsgator.md) — URL for subscribing in Newsgator. +- [subscribe_odeo()](@/wiki/reference/simplepie/subscribe_odeo.md) — URL for subscribing in Odeo. +- [subscribe_outlook()](@/wiki/reference/simplepie/subscribe_outlook.md) — The actual feed URL, with an `outlook: protocol for subscribing in Microsoft Outlook 2007. * subscribe_podcast() — The actual feed URL, with a `podcast: protocol for subscribing in a desktop podcast player. +- [subscribe_podnova()](@/wiki/reference/simplepie/subscribe_podnova.md) — URL for subscribing in Podnova. +- [subscribe_rojo()](@/wiki/reference/simplepie/subscribe_rojo.md) — URL for subscribing in Rojo. +- [subscribe_url()](@/wiki/reference/simplepie/subscribe_url.md) — The actual feed URL. +- [subscribe_yahoo()](@/wiki/reference/simplepie/subscribe_yahoo.md) — URL for subscribing in My Yahoo! + +## SimplePie_Item {#simplepie_item} + +- [SimplePie_Item](@/wiki/reference/simplepie_item/_index.md) — Learn more about this object. + +### Methods {#methods1} + +#### Item-Level Data (Basic) {#item-level_data_basic} + +- [get_author()](@/wiki/reference/simplepie_item/get_author.md) — Get a single author for the post. Returns a reference to [SimplePie_Author](@/wiki/reference/simplepie_author/_index.md). +- [get_authors()](@/wiki/reference/simplepie_item/get_authors.md) — Get all authors for the post. Returns references to [SimplePie_Author](@/wiki/reference/simplepie_author/_index.md). +- [get_categories()](@/wiki/reference/simplepie_item/get_categories.md) — Get all categories for the post. Returns a reference to [SimplePie_Category](@/wiki/reference/simplepie_category/_index.md). +- [get_category()](@/wiki/reference/simplepie_item/get_category.md) — Get a single category for the post. Returns references to [SimplePie_Category](@/wiki/reference/simplepie_category/_index.md). +- [get_content()](@/wiki/reference/simplepie_item/get_content.md) — Get the content of the post (prefers full-content) +- [get_contributor()](@/wiki/reference/simplepie_item/get_contributor.md) — Get a single contributor for the post. Returns a reference to [SimplePie_Author](@/wiki/reference/simplepie_author/_index.md). +- [get_contributors()](@/wiki/reference/simplepie_item/get_contributors.md) — Get all contributors for the post. Returns references to [SimplePie_Author](@/wiki/reference/simplepie_author/_index.md). +- [get_copyright()](@/wiki/reference/simplepie_item/get_copyright.md) — Get the copyright information for the post. +- [get_date()](@/wiki/reference/simplepie_item/get_date.md) — Get the date for the post. +- [get_description()](@/wiki/reference/simplepie_item/get_description.md) — Get the content of the post (prefers summaries) +- [get_enclosure()](@/wiki/reference/simplepie_item/get_enclosure.md) — Get a single enclosure for the post. Returns a reference to [SimplePie_Enclosure](@/wiki/reference/simplepie_enclosure/_index.md). +- [get_enclosures()](@/wiki/reference/simplepie_item/get_enclosures.md) — Get all enclosures for the post. Returns references to [SimplePie_Enclosure](@/wiki/reference/simplepie_enclosure/_index.md). +- [get_feed()](@/wiki/reference/simplepie_item/get_feed.md) — Get a reference to the parent feed object. Returns a reference to [SimplePie](@/wiki/reference/simplepie/_index.md). +- [get_id()](@/wiki/reference/simplepie_item/get_id.md) — Get the unique identifier for the post. +- [get_link()](@/wiki/reference/simplepie_item/get_link.md) — Get a single link for the post. +- [get_links()](@/wiki/reference/simplepie_item/get_links.md) — Get all links for the post of a specific relation. +- [get_local_date()](@/wiki/reference/simplepie_item/get_local_date.md) — Get the localized date for the post. +- [get_permalink()](@/wiki/reference/simplepie_item/get_permalink.md) — Get the first link for the post (i.e. the permalink). +- [get_source()](@/wiki/reference/simplepie_item/get_source.md) — Get a reference to the feed referenced in `atom:source`. Returns a reference to [SimplePie_Source](@/wiki/reference/simplepie_source/_index.md). +- [get_title()](@/wiki/reference/simplepie_item/get_title.md) — Get the title for the post. + +#### Item-Level GeoData {#item-level_geodata} + +- [get_latitude()](@/wiki/reference/simplepie_item/get_latitude.md) — Get the post latitude. +- [get_longitude()](@/wiki/reference/simplepie_item/get_longitude.md) — Get the post longitude. + +#### Item-Level Data Hacking (Advanced) {#item-level_data_hacking_advanced} + +- [get_base()](@/wiki/reference/simplepie/get_base.md) – Get the `xml:base` value of a given element. +- [get_item_tags()](@/wiki/reference/simplepie_item/get_item_tags.md) — Get the value of ANY tag in the item. +- [sanitize()](@/wiki/reference/simplepie/sanitize.md) – Sanitizes data based on the type of data it is expected to be. + +#### Bookmarking {#bookmarking} + +- [add_to_service()](@/wiki/reference/simplepie_item/add_to_service.md) — Generic method for adding more “add to” services. +- [add_to_blinklist()](@/wiki/reference/simplepie_item/add_to_blinklist.md) — Add the post to Blinklist. +- [add_to_blogmarks()](@/wiki/reference/simplepie_item/add_to_blogmarks.md) — Add the post to Blogmarks. +- [add_to_delicious()](@/wiki/reference/simplepie_item/add_to_delicious.md) — Add the post to Del.icio.us. +- [add_to_digg()](@/wiki/reference/simplepie_item/add_to_digg.md) — Add the post to Digg. +- [add_to_furl()](@/wiki/reference/simplepie_item/add_to_furl.md) — Add the post to Furl. +- [add_to_magnolia()](@/wiki/reference/simplepie_item/add_to_magnolia.md) — Add the post to Ma.gnolia. +- [add_to_myweb20()](@/wiki/reference/simplepie_item/add_to_myweb20.md) — Add the post to My Web 2.0. +- [add_to_newsvine()](@/wiki/reference/simplepie_item/add_to_newsvine.md) — Add the post to Newsvine. +- [add_to_reddit()](@/wiki/reference/simplepie_item/add_to_reddit.md) — Add the post to Reddit. +- [add_to_segnalo()](@/wiki/reference/simplepie_item/add_to_segnalo.md) — Add the post to Segnalo. +- [add_to_simpy()](@/wiki/reference/simplepie_item/add_to_simpy.md) — Add the post to Simpy. +- [add_to_spurl()](@/wiki/reference/simplepie_item/add_to_spurl.md) — Add the post to Spurl. +- [add_to_wists()](@/wiki/reference/simplepie_item/add_to_wists.md) — Add the post to Wists. +- [search_technorati()](@/wiki/reference/simplepie_item/search_technorati.md) — Search for discussions about the post. + +## SimplePie_Author {#simplepie_author} + +- [SimplePie_Author](@/wiki/reference/simplepie_author/_index.md) — Learn more about this object. + +### Methods {#methods2} + +#### Author-Level Data {#author-level_data} + +- [get_email()](@/wiki/reference/simplepie_author/get_email.md) — Get the author's email address. +- [get_link()](@/wiki/reference/simplepie_author/get_link.md) — Get the author's link. +- [get_name()](@/wiki/reference/simplepie_author/get_name.md) — Get the author's name. + +## SimplePie_Category {#simplepie_category} + +- [SimplePie_Category](@/wiki/reference/simplepie_category/_index.md) — Learn more about this object. + +### Methods {#methods3} + +#### Category-Level Data {#category-level_data} + +- [get_term()](@/wiki/reference/simplepie_category/get_term.md) — Get the category's identifier. +- [get_scheme()](@/wiki/reference/simplepie_category/get_scheme.md) — Get the category's categorization scheme identifier. +- [get_label()](@/wiki/reference/simplepie_category/get_label.md) — Get the category's human-readable label. + +## SimplePie_Enclosure {#simplepie_enclosure} + +- [SimplePie_Enclosure](@/wiki/reference/simplepie_enclosure/_index.md) — Learn more about this object. + +### Methods {#methods4} + +#### Enclosure-Level Data {#enclosure-level_data} + +- [get_extension()](@/wiki/reference/simplepie_enclosure/get_extension.md) – Get the file extension of the enclosure. +- [get_handler()](@/wiki/reference/simplepie_enclosure/get_handler.md) – Get the preferred plugin handler for this content. +- [get_length()](@/wiki/reference/simplepie_enclosure/get_length.md) – Get the file size (in bytes) of the enclosure. +- [get_link()](@/wiki/reference/simplepie_enclosure/get_link.md) – Get the URL of the enclosure. +- [get_real_type()](@/wiki/reference/simplepie_enclosure/get_real_type.md) – Get the mime type that the enclosure likely is (despite the [get_type()](@/wiki/reference/simplepie_enclosure/get_type.md) setting) +- [get_size()](@/wiki/reference/simplepie_enclosure/get_size.md) – Get the file size (in Mebibytes) of the enclosure. +- [get_type()](@/wiki/reference/simplepie_enclosure/get_type.md) – Get the mime type of the enclosure. + +#### Extended Enclosure-Level Data (Media RSS, iTunes RSS) {#extended_enclosure-level_data_media_rss_itunes_rss} + +- [get_bitrate()](@/wiki/reference/simplepie_enclosure/get_bitrate.md) – Get the bitrate of the enclosure. +- [get_caption()](@/wiki/reference/simplepie_enclosure/get_caption.md) – Get a single caption for the enclosure. Returns a reference to [SimplePie_Caption](@/wiki/reference/simplepie_caption/_index.md). +- [get_captions()](@/wiki/reference/simplepie_enclosure/get_captions.md) – Get all captions for the enclosure. Returns references to [SimplePie_Caption](@/wiki/reference/simplepie_caption/_index.md). +- [get_category()](@/wiki/reference/simplepie_enclosure/get_category.md) – Get a single category for the enclosure. Returns a reference to [SimplePie_Category](@/wiki/reference/simplepie_category/_index.md). +- [get_categories()](@/wiki/reference/simplepie_enclosure/get_categories.md) – Get all categories for the enclosure. Returns references to [SimplePie_Category](@/wiki/reference/simplepie_category/_index.md). +- [get_channels()](@/wiki/reference/simplepie_enclosure/get_channels.md) – Get the number of audio channels for the enclosure. +- [get_copyright()](@/wiki/reference/simplepie_enclosure/get_copyright.md) – Get the copyright info for the enclosure. Returns a reference to [SimplePie_Copyright](@/wiki/reference/simplepie_copyright/_index.md). +- [get_credit()](@/wiki/reference/simplepie_enclosure/get_credit.md) – Get a single credit for the enclosure. Returns a reference to [SimplePie_Credit](@/wiki/reference/simplepie_credit/_index.md). +- [get_credits()](@/wiki/reference/simplepie_enclosure/get_credits.md) – Get all credits for the enclosure. Returns references to [SimplePie_Credit](@/wiki/reference/simplepie_credit/_index.md). +- [get_description()](@/wiki/reference/simplepie_enclosure/get_description.md) – Get the description of the enclosure. +- [get_duration()](@/wiki/reference/simplepie_enclosure/get_duration.md) – Get the duration (in seconds) of the enclosure. +- [get_expression()](@/wiki/reference/simplepie_enclosure/get_expression.md) – Get the expression of the enclosure. +- [get_framerate()](@/wiki/reference/simplepie_enclosure/get_framerate.md) – Get the framerate of the enclosure. +- [get_hash()](@/wiki/reference/simplepie_enclosure/get_hash.md) – Get a single hash for the enclosure. +- [get_hashes()](@/wiki/reference/simplepie_enclosure/get_hashes.md) – Get all hashes for the enclosure. +- [get_height()](@/wiki/reference/simplepie_enclosure/get_height.md) – Get the height of the enclosure. +- [get_keyword()](@/wiki/reference/simplepie_enclosure/get_keyword.md) – Get a single keyword for the enclosure. +- [get_keywords()](@/wiki/reference/simplepie_enclosure/get_keywords.md) – Get all keywords for the enclosure. +- [get_language()](@/wiki/reference/simplepie_enclosure/get_language.md) – Get the language of the enclosure. +- [get_medium()](@/wiki/reference/simplepie_enclosure/get_medium.md) – Get the medium of the enclosure. +- [get_player()](@/wiki/reference/simplepie_enclosure/get_player.md) – Get the player page for the enclosure. +- [get_rating()](@/wiki/reference/simplepie_enclosure/get_rating.md) – Get a single rating for the enclosure. Returns a reference to [SimplePie_Rating](@/wiki/reference/simplepie_rating/_index.md). +- [get_ratings()](@/wiki/reference/simplepie_enclosure/get_ratings.md) – Get all ratings for the enclosure. Returns references to [SimplePie_Rating](@/wiki/reference/simplepie_rating/_index.md). +- [get_restriction()](@/wiki/reference/simplepie_enclosure/get_restriction.md) – Get a single restriction for the enclosure. Returns a reference to [SimplePie_Restriction](@/wiki/reference/simplepie_restriction/_index.md). +- [get_restrictions()](@/wiki/reference/simplepie_enclosure/get_restrictions.md) – Get all restrictions for the enclosure. Returns references to [SimplePie_Restriction](@/wiki/reference/simplepie_restriction/_index.md). +- [get_sampling_rate()](@/wiki/reference/simplepie_enclosure/get_sampling_rate.md) – Get the sampling rate of the enclosure. +- [get_thumbnail()](@/wiki/reference/simplepie_enclosure/get_thumbnail.md) – Get a single thumbnail for the enclosure. +- [get_thumbnails()](@/wiki/reference/simplepie_enclosure/get_thumbnails.md) – Get all thumbnails for the enclosure. +- [get_title()](@/wiki/reference/simplepie_enclosure/get_title.md) – Get the title of the enclosure. +- [get_width()](@/wiki/reference/simplepie_enclosure/get_width.md) – Get the width of the enclosure. + +#### Embedding {#embedding} + +- [embed()](@/wiki/reference/simplepie_enclosure/embed.md) — Automatically embed the enclosure in the page using JavaScript. +- [native_embed()](@/wiki/reference/simplepie_enclosure/native_embed.md) — Automatically embed the enclosure in the page using the \ tag. + +## SimplePie_Caption {#simplepie_caption} + +- [SimplePie_Caption](@/wiki/reference/simplepie_caption/_index.md) — Learn more about this object. + +### Methods {#methods5} + +#### Caption-Level Data {#caption-level_data} + +- [get_endtime()](@/wiki/reference/simplepie_caption/get_endtime.md) — Get the time that a caption should end. +- [get_language()](@/wiki/reference/simplepie_caption/get_language.md) — Get the language of the caption. +- [get_starttime()](@/wiki/reference/simplepie_caption/get_starttime.md) — Get the time that a caption should start. +- [get_text()](@/wiki/reference/simplepie_caption/get_text.md) — Get the text to display. +- [get_type()](@/wiki/reference/simplepie_caption/get_type.md) — Get the type of the caption (`text` or `html`). + +## SimplePie_Copyright {#simplepie_copyright} + +- [SimplePie_Copyright](@/wiki/reference/simplepie_copyright/_index.md) — Learn more about this object. + +### Methods {#methods6} + +#### Copyright-Level Data {#copyright-level_data} + +- [get_attribution()](@/wiki/reference/simplepie_copyright/get_attribution.md) — Get the copyright attribution. +- [get_url()](@/wiki/reference/simplepie_copyright/get_url.md) — Get the URL containing more information. + +## SimplePie_Credit {#simplepie_credit} + +- [SimplePie_Credit](@/wiki/reference/simplepie_credit/_index.md) — Learn more about this object. + +### Methods {#methods7} + +#### Credit-Level Data {#credit-level_data} + +- [get_name()](@/wiki/reference/simplepie_credit/get_name.md) — Get the credited person/entity's name. +- [get_role()](@/wiki/reference/simplepie_credit/get_role.md) — Get the credited role. +- [get_scheme()](@/wiki/reference/simplepie_credit/get_scheme.md) — Get the organizational scheme for the credit. + +## SimplePie_Rating {#simplepie_rating} + +- [SimplePie_Rating](@/wiki/reference/simplepie_rating/_index.md) — Learn more about this object. + +### Methods {#methods8} + +#### Rating-Level Data {#rating-level_data} + +- [get_scheme()](@/wiki/reference/simplepie_rating/get_scheme.md) — Get the organizational scheme for the rating. +- [get_value()](@/wiki/reference/simplepie_rating/get_value.md) — Get the rating itself. + +## SimplePie_Restriction {#simplepie_restriction} + +- [SimplePie_Restriction](@/wiki/reference/simplepie_restriction/_index.md) — Learn more about this object. + +### Methods {#methods9} + +#### Restriction-Level Data {#restriction-level_data} + +- [get_relationship()](@/wiki/reference/simplepie_restriction/get_relationship.md) — Get whether it's `allow` or `deny`. +- [get_type()](@/wiki/reference/simplepie_restriction/get_type.md) — Get the type of restriction. +- [get_value()](@/wiki/reference/simplepie_restriction/get_value.md) — Get the list of things that are restricted. + +## SimplePie_Source {#simplepie_source} + +- [SimplePie_Source](@/wiki/reference/simplepie_source/_index.md) — Learn more about this object. + +### Methods {#methods10} + +Most of these methods are identical to those of [SimplePie](@/wiki/reference/simplepie/_index.md) and [SimplePie_Item](@/wiki/reference/simplepie_item/_index.md) methods, so we're linking back to those docs. + +#### Source-Level Data (Basic) {#source-level_data_basic} + +- [get_author()](@/wiki/reference/simplepie_item/get_author.md) – Get a single author for the source. Returns a reference to [SimplePie_Author](@/wiki/reference/simplepie_author/_index.md). +- [get_authors()](@/wiki/reference/simplepie_item/get_authors.md) – Get all authors for the source. Returns references to [SimplePie_Author](@/wiki/reference/simplepie_author/_index.md). +- [get_categories()](@/wiki/reference/simplepie_item/get_categories.md) – Get all categories for the source. Returns a reference to [SimplePie_Category](@/wiki/reference/simplepie_category/_index.md). +- [get_category()](@/wiki/reference/simplepie_item/get_category.md) – Get a single category for the source. Returns references to [SimplePie_Category](@/wiki/reference/simplepie_category/_index.md). +- [get_contributor()](@/wiki/reference/simplepie_item/get_contributor.md) – Get a single contributor for the source. Returns a reference to [SimplePie_Author](@/wiki/reference/simplepie_author/_index.md). +- [get_contributors()](@/wiki/reference/simplepie_item/get_contributors.md) – Get all contributors for the source. Returns references to [SimplePie_Author](@/wiki/reference/simplepie_author/_index.md). +- [get_copyright()](@/wiki/reference/simplepie_item/get_copyright.md) – Get the copyright information for the source. +- [get_description()](@/wiki/reference/simplepie_item/get_description.md) – Get the content of the source. +- [get_image_url()](@/wiki/reference/simplepie/get_image_url.md) – Get the logo/image URL. +- [get_item()](@/wiki/reference/simplepie_source/get_item.md) – Get a reference to the parent item object. Returns a reference to [SimplePie_Item](@/wiki/reference/simplepie_item/_index.md). +- [get_language()](@/wiki/reference/simplepie/get_language.md) – Get the source language. +- [get_link()](@/wiki/reference/simplepie_item/get_link.md) – Get a single link for the source. +- [get_links()](@/wiki/reference/simplepie_item/get_links.md) – Get all links for the source of a specific relation. +- [get_permalink()](@/wiki/reference/simplepie_item/get_permalink.md) – Get the first link for the source (i.e. the permalink). +- [get_title()](@/wiki/reference/simplepie_item/get_title.md) – Get the title for the source. + +#### Source-Level GeoData {#source-level_geodata} + +- [get_latitude()](@/wiki/reference/simplepie_item/get_latitude.md) – Get the source latitude. +- [get_longitude()](@/wiki/reference/simplepie_item/get_longitude.md) – Get the source longitude. + +#### Source-Level Data Hacking (Advanced) {#source-level_data_hacking_advanced} + +- [get_base()](@/wiki/reference/simplepie/get_base.md) – Get the `xml:base` value of a given element. +- [get_source_tags()](@/wiki/reference/simplepie_source/get_source_tags.md) – Get the value of ANY tag in the source. +- [sanitize()](@/wiki/reference/simplepie/sanitize.md) – Sanitizes data based on the type of data it is expected to be. + +## SimplePie_Cache (Non-Public) {#simplepie_cache_non-public} + +- [SimplePie_Cache](@/wiki/reference/simplepie_cache/_index.md) — Learn more about this object. + +## SimplePie_Cache_File (Non-Public) {#simplepie_cache_file_non-public} + +- [SimplePie_Cache_File](@/wiki/reference/simplepie_cache_file/_index.md) — Learn more about this object. + +## SimplePie_Content_Type_Sniffer (Non-Public) {#simplepie_content_type_sniffer_non-public} + +- [SimplePie_Content_Type_Sniffer](@/wiki/reference/simplepie_content_type_sniffer/_index.md) — Learn more about this object. + +## SimplePie_Decode_HTML_Entities (Non-Public) {#simplepie_decode_html_entities_non-public} + +- [SimplePie_Decode_HTML_Entities](@/wiki/reference/simplepie_decode_html_entities/_index.md) — Learn more about this object. + +## SimplePie_File (Non-Public) {#simplepie_file_non-public} + +- [SimplePie_File](@/wiki/reference/simplepie_file/_index.md) — Learn more about this object. + +## SimplePie_Locator (Non-Public) {#simplepie_locator_non-public} + +- [SimplePie_Locator](@/wiki/reference/simplepie_locator/_index.md) — Learn more about this object. + +## SimplePie_HTTP_Parser (Non-Public) {#simplepie_http_parser_non-public} + +- [SimplePie_HTTP_Parser](@/wiki/reference/simplepie_http_parser/_index.md) — Learn more about this object. + +## SimplePie_Misc (Non-Public) {#simplepie_misc_non-public} + +- [SimplePie_Misc](@/wiki/reference/simplepie_misc/_index.md) — Learn more about this object. + +## SimplePie_Parser (Non-Public) {#simplepie_parser_non-public} + +- [SimplePie_Parser](@/wiki/reference/simplepie_parser/_index.md) — Learn more about this object. + +## SimplePie_Parse_Date (Non-Public) {#simplepie_parse_date_non-public} + +- [SimplePie_Parse_Date](@/wiki/reference/simplepie_parse_date/_index.md) — Learn more about this object. + +## SimplePie_Sanitize (Non-Public) {#simplepie_sanitize_non-public} + +- [SimplePie_Sanitize](@/wiki/reference/simplepie_sanitize/_index.md) — Learn more about this object. + +## SimplePie_XML_Declaration_Parser (Non-Public) {#simplepie_xml_declaration_parser_non-public} + +- [SimplePie_XML_Declaration_Parser](@/wiki/reference/simplepie_xml_declaration_parser/_index.md) — Learn more about this object. diff --git a/docs/content/wiki/reference/simplepie/_index.md b/docs/content/wiki/reference/simplepie/_index.md new file mode 100644 index 000000000..26ac99e04 --- /dev/null +++ b/docs/content/wiki/reference/simplepie/_index.md @@ -0,0 +1,251 @@ ++++ +title = "SimplePie" ++++ + +## Description {#description} + +```php +class SimplePie { + SimplePie ([string $feed_url], [string $cache_location], [int $cache_duration]) +} +``` + +Creates a new SimplePie object, optionally setting various settings (see their specific pages for more detail). + +
    + +**There are differences between handling a single feed and merging feeds together with Multifeeds. Read [Typical Multifeed Gotchas](@/wiki/faq/typical_multifeed_gotchas.md) for notes on common issues.** + +
    + +## Parameters {#parameters} + +### SimplePie \<1.3 {#simplepie_13} + +#### feed_url {#feed_url} + +Set the feed URL(s) (like calling [set_feed_url()](@/wiki/reference/simplepie/set_feed_url.md)), and initialise the feed (like [init()](@/wiki/reference/simplepie/init.md)). Deprecated. + +#### cache_location {#cache_location} + +Set the cache location (like calling [set_cache_location()](@/wiki/reference/simplepie/set_cache_location.md)). Deprecated. + +#### cache_duration {#cache_duration} + +Set the cache duration (like calling [set_cache_duration()](@/wiki/reference/simplepie/set_cache_duration.md)). Deprecated. + +### SimplePie 1.3+ {#simplepie_131} + +None. Parameters were removed to avoid common support issues. + +## Examples {#examples} + +### Shorthand syntax {#shorthand_syntax} + +The following is the shorthand syntax, which is geared for the quick setting of url and cache settings with minimal code. Most people never configure much further than this, which is why we have it. Passing values this way automatically calls [init()](@/wiki/reference/simplepie/init.md) for you. **This is no longer available from SimplePie 1.3. The following applies to SimplePie \<1.3 only.** + +The first example is using one feed, while the second shows how to merge multiple feeds together. + +```php +// Single feed +$feed = new SimplePie('http://simplepie.org/blog/feed/', $_SERVER['DOCUMENT_ROOT'] . '/cache'); +echo $feed->get_title(); +``` + +```php +// Multiple feeds +$feed = new SimplePie(array( + 'http://simplepie.org/blog/feed/', + 'http://digg.com' +), $_SERVER['DOCUMENT_ROOT'] . '/cache'); +echo $feed->get_title(); +``` + +### Standard syntax {#standard_syntax} + +Next is the standard (long) syntax, which is geared for setting any of the numerous available configuration options for maximum tweaking value. Make sure you follow up your config options by calling [init()](@/wiki/reference/simplepie/init.md) (like in the example) so that SimplePie knows you're done setting options and are ready to get to business. + +Again, the first example is using one feed, while the second shows how to merge multiple feeds together. + +```php +// Single feed +$feed = new SimplePie(); +$feed->set_feed_url('http://simplepie.org/blog/feed/'); +$feed->enable_order_by_date(false); +$feed->set_cache_location($_SERVER['DOCUMENT_ROOT'] . '/cache'); +$feed->init(); +echo $feed->get_title(); +``` + +```php +// Multiple feeds +$feed = new SimplePie(); +$feed->set_feed_url(array( + 'http://simplepie.org/blog/feed/', + 'http://digg.com' +)); +$feed->enable_order_by_date(false); +$feed->set_cache_location($_SERVER['DOCUMENT_ROOT'] . '/cache'); +$feed->init(); +echo $feed->get_title(); +``` + +### Absolutely, totally, and completely wrong under any and all circumstances {#absolutely_totally_and_completely_wrong_under_any_and_all_circumstances} + +(We've gotten lots of support questions recently regarding problems when using SimplePie, and most of them stem from the following.) + +If you pass a URL into the `SimplePie()` constructor, it automatically calls [init()](@/wiki/reference/simplepie/init.md). Once init() has been called, SimplePie will ignore any new configuration options (because you've already told it that you were done setting them). There are two lessons to learn from this: + +1. Don't mix-and-match shorthand syntax with standard/long syntax because it won't do what you want. +2. If you want to use additional config options, DO NOT USE THE SHORTHAND SYNTAX. + +```php +$feed = new SimplePie('http://simplepie.org/blog/feed/'); // This calls init() automatically, and ignores all additional config options. +$feed->enable_cache(false); // Ignored. +$feed->enable_order_by_date(false); // Ignored. + +echo $feed->get_title(); +``` + +
    + +--- + +## Index {#index} + +### \_ {#section} + +- [\_\_destruct()](@/wiki/reference/simplepie/destruct.md) + +### E {#e} + +- [Enable_cache()](@/wiki/reference/simplepie/enable_cache.md) +- [Enable_order_by_date()](@/wiki/reference/simplepie/enable_order_by_date.md) +- [Enable_xml_dump()](@/wiki/reference/simplepie/enable_xml_dump.md) +- [Encode_instead_of_strip()](@/wiki/reference/simplepie/encode_instead_of_strip.md) +- [Error()](@/wiki/reference/simplepie/error.md) +- [Extending the SimplePie class](@/wiki/reference/simplepie/extending_the_simplepie_class.md) + +### F {#f} + +- [Force_feed()](@/wiki/reference/simplepie/force_feed.md) +- [Force_fsockopen()](@/wiki/reference/simplepie/force_fsockopen.md) + +### G {#g} + +- [Get_all_discovered_feeds()](@/wiki/reference/simplepie/get_all_discovered_feeds.md) +- [Get_author()](@/wiki/reference/simplepie/get_author.md) +- [Get_authors()](@/wiki/reference/simplepie/get_authors.md) +- [Get_base()](@/wiki/reference/simplepie/get_base.md) +- [Get_channel_tags()](@/wiki/reference/simplepie/get_channel_tags.md) +- [Get_contributor()](@/wiki/reference/simplepie/get_contributor.md) +- [Get_contributors()](@/wiki/reference/simplepie/get_contributors.md) +- [Get_copyright()](@/wiki/reference/simplepie/get_copyright.md) +- [Get_description()](@/wiki/reference/simplepie/get_description.md) +- [Get_encoding()](@/wiki/reference/simplepie/get_encoding.md) +- [Get_favicon()](@/wiki/reference/simplepie/get_favicon.md) +- [Get_feed_tags()](@/wiki/reference/simplepie/get_feed_tags.md) +- [Get_image_height()](@/wiki/reference/simplepie/get_image_height.md) +- [Get_image_link()](@/wiki/reference/simplepie/get_image_link.md) +- [Get_image_tags()](@/wiki/reference/simplepie/get_image_tags.md) +- [Get_image_title()](@/wiki/reference/simplepie/get_image_title.md) +- [Get_image_url()](@/wiki/reference/simplepie/get_image_url.md) +- [Get_image_width()](@/wiki/reference/simplepie/get_image_width.md) +- [Get_item()](@/wiki/reference/simplepie/get_item.md) +- [Get_items()](@/wiki/reference/simplepie/get_items.md) +- [Get_item_quantity()](@/wiki/reference/simplepie/get_item_quantity.md) +- [Get_language()](@/wiki/reference/simplepie/get_language.md) +- [Get_latitude()](@/wiki/reference/simplepie/get_latitude.md) +- [Get_link()](@/wiki/reference/simplepie/get_link.md) +- [Get_links()](@/wiki/reference/simplepie/get_links.md) +- [Get_longitude()](@/wiki/reference/simplepie/get_longitude.md) +- [Get_permalink()](@/wiki/reference/simplepie/get_permalink.md) +- [Get_title()](@/wiki/reference/simplepie/get_title.md) +- [Get_type()](@/wiki/reference/simplepie/get_type.md) + +### H {#h} + +- [Handle_content_type()](@/wiki/reference/simplepie/handle_content_type.md) + +### I {#i} + +- [Init()](@/wiki/reference/simplepie/init.md) + +### M {#m} + +- [Merge_items()](@/wiki/reference/simplepie/merge_items.md) + +### R {#r} + +- [Remove_div()](@/wiki/reference/simplepie/remove_div.md) + +### S {#s} + +- [Sanitize()](@/wiki/reference/simplepie/sanitize.md) +- [Set_author_class()](@/wiki/reference/simplepie/set_author_class.md) +- [Set_autodiscovery_cache_duration()](@/wiki/reference/simplepie/set_autodiscovery_cache_duration.md) +- [Set_autodiscovery_level()](@/wiki/reference/simplepie/set_autodiscovery_level.md) +- [Set_cache_class()](@/wiki/reference/simplepie/set_cache_class.md) +- [Set_cache_duration()](@/wiki/reference/simplepie/set_cache_duration.md) +- [Set_cache_location()](@/wiki/reference/simplepie/set_cache_location.md) +- [Set_cache_name_function()](@/wiki/reference/simplepie/set_cache_name_function.md) +- [Set_caption_class()](@/wiki/reference/simplepie/set_caption_class.md) +- [Set_category_class()](@/wiki/reference/simplepie/set_category_class.md) +- [Set_content_type_sniffer_class()](@/wiki/reference/simplepie/set_content_type_sniffer_class.md) +- [Set_copyright_class()](@/wiki/reference/simplepie/set_copyright_class.md) +- [Set_credit_class()](@/wiki/reference/simplepie/set_credit_class.md) +- [Set_enclosure_class()](@/wiki/reference/simplepie/set_enclosure_class.md) +- [Set_favicon_handler()](@/wiki/reference/simplepie/set_favicon_handler.md) +- [Set_feed_url()](@/wiki/reference/simplepie/set_feed_url.md) +- [Set_file()](@/wiki/reference/simplepie/set_file.md) +- [Set_file_class()](@/wiki/reference/simplepie/set_file_class.md) +- [Set_image_handler()](@/wiki/reference/simplepie/set_image_handler.md) +- [Set_input_encoding()](@/wiki/reference/simplepie/set_input_encoding.md) +- [Set_item_class()](@/wiki/reference/simplepie/set_item_class.md) +- [Set_item_limit()](@/wiki/reference/simplepie/set_item_limit.md) +- [Set_javascript()](@/wiki/reference/simplepie/set_javascript.md) +- [Set_locator_class()](@/wiki/reference/simplepie/set_locator_class.md) +- [Set_max_checked_feeds()](@/wiki/reference/simplepie/set_max_checked_feeds.md) +- [Set_output_encoding()](@/wiki/reference/simplepie/set_output_encoding.md) +- [Set_parser_class()](@/wiki/reference/simplepie/set_parser_class.md) +- [Set_rating_class()](@/wiki/reference/simplepie/set_rating_class.md) +- [Set_raw_data()](@/wiki/reference/simplepie/set_raw_data.md) +- [Set_restriction_class()](@/wiki/reference/simplepie/set_restriction_class.md) +- [Set_sanitize_class()](@/wiki/reference/simplepie/set_sanitize_class.md) +- [Set_source_class()](@/wiki/reference/simplepie/set_source_class.md) +- [Set_stupidly_fast()](@/wiki/reference/simplepie/set_stupidly_fast.md) +- [Set_timeout()](@/wiki/reference/simplepie/set_timeout.md) +- [Set_url_replacements()](@/wiki/reference/simplepie/set_url_replacements.md) +- [Set_useragent()](@/wiki/reference/simplepie/set_useragent.md) +- [SIMPLEPIE_BUILD](@/wiki/reference/simplepie/simplepie_build.md) +- [SIMPLEPIE_LINKBACK](@/wiki/reference/simplepie/simplepie_linkback.md) +- [SIMPLEPIE_NAME](@/wiki/reference/simplepie/simplepie_name.md) +- [SIMPLEPIE_URL](@/wiki/reference/simplepie/simplepie_url.md) +- [SIMPLEPIE_USERAGENT](@/wiki/reference/simplepie/simplepie_useragent.md) +- [SIMPLEPIE_VERSION](@/wiki/reference/simplepie/simplepie_version.md) +- [Sort_items()](@/wiki/reference/simplepie/sort_items.md) +- [Strip_attributes()](@/wiki/reference/simplepie/strip_attributes.md) +- [Strip_comments()](@/wiki/reference/simplepie/strip_comments.md) +- [Strip_htmltags()](@/wiki/reference/simplepie/strip_htmltags.md) +- [Subscribe_aol()](@/wiki/reference/simplepie/subscribe_aol.md) +- [Subscribe_bloglines()](@/wiki/reference/simplepie/subscribe_bloglines.md) +- [Subscribe_eskobo()](@/wiki/reference/simplepie/subscribe_eskobo.md) +- [Subscribe_feed()](@/wiki/reference/simplepie/subscribe_feed.md) +- [Subscribe_feedfeeds()](@/wiki/reference/simplepie/subscribe_feedfeeds.md) +- [Subscribe_feedster()](@/wiki/reference/simplepie/subscribe_feedster.md) +- [Subscribe_google()](@/wiki/reference/simplepie/subscribe_google.md) +- [Subscribe_gritwire()](@/wiki/reference/simplepie/subscribe_gritwire.md) +- [Subscribe_itunes()](@/wiki/reference/simplepie/subscribe_itunes.md) +- [Subscribe_msn()](@/wiki/reference/simplepie/subscribe_msn.md) +- [Subscribe_netvibes()](@/wiki/reference/simplepie/subscribe_netvibes.md) +- [Subscribe_newsburst()](@/wiki/reference/simplepie/subscribe_newsburst.md) +- [Subscribe_newsgator()](@/wiki/reference/simplepie/subscribe_newsgator.md) +- [Subscribe_odeo()](@/wiki/reference/simplepie/subscribe_odeo.md) +- [Subscribe_outlook()](@/wiki/reference/simplepie/subscribe_outlook.md) +- [Subscribe_podcast()](@/wiki/reference/simplepie/subscribe_podcast.md) +- [Subscribe_podnova()](@/wiki/reference/simplepie/subscribe_podnova.md) +- [Subscribe_rojo()](@/wiki/reference/simplepie/subscribe_rojo.md) +- [Subscribe_url()](@/wiki/reference/simplepie/subscribe_url.md) +- [Subscribe_yahoo()](@/wiki/reference/simplepie/subscribe_yahoo.md) + +
    diff --git a/docs/content/wiki/reference/simplepie/destruct.md b/docs/content/wiki/reference/simplepie/destruct.md new file mode 100644 index 000000000..c43a7d737 --- /dev/null +++ b/docs/content/wiki/reference/simplepie/destruct.md @@ -0,0 +1,43 @@ ++++ +title = "__destruct()" ++++ + +## Description {#description} + +```php +class SimplePie { + __destruct () +} +``` + +There is a bug in versions of PHP older than 5.3 where PHP doesn't release memory properly in certain cases. This issue is discussed further in the [I'm getting memory leaks!](@/wiki/faq/i_m_getting_memory_leaks.md) page. + +## Availability {#availability} + +- Available since SimplePie 1.1. + +## Examples {#examples} + +### Calling the destructor before unsetting the object reference {#calling_the_destructor_before_unsetting_the_object_reference} + +```php +set_feed_url($url); + $feed->init(); + $feed->handle_content_type(); + $item = $feed->get_item(0); + + $feed->__destruct(); // Do what PHP should be doing on it's own. + unset($feed); + + echo "Memory usage: " . number_format(memory_get_usage()); +} +?> +``` + +## See Also {#see_also} + +- [SimplePie](@/wiki/reference/simplepie/_index.md) diff --git a/docs/content/wiki/reference/simplepie/enable_cache.md b/docs/content/wiki/reference/simplepie/enable_cache.md new file mode 100644 index 000000000..e8d2d4b50 --- /dev/null +++ b/docs/content/wiki/reference/simplepie/enable_cache.md @@ -0,0 +1,47 @@ ++++ +title = "enable_cache()" ++++ + +## Description {#description} + +```php +class SimplePie { + enable_cache ( [bool $enable = true] ) +} +``` + +This option allows you to disable caching all-together in SimplePie. However, disabling the cache can lead to longer load times. + +## Availability {#availability} + +- Available since SimplePie 1.0. +- Previously existed as enable_caching() since SimplePie Preview Release. +- Previously existed as a constructor parameter since SimplePie 0.94. + +## Parameters {#parameters} + +### enable {#enable} + +Set whether caching is enabled or not. + +## Examples {#examples} + +### Disable caching in SimplePie {#disable_caching_in_simplepie} + +```php +$feed = new SimplePie(); +$feed->set_feed_url('http://simplepie.org/blog/feed/'); +$feed->enable_cache(false); +$feed->init(); +$feed->handle_content_type(); +echo $feed->get_title(); +``` + +## See Also {#see_also} + + diff --git a/docs/content/wiki/reference/simplepie/enable_order_by_date.md b/docs/content/wiki/reference/simplepie/enable_order_by_date.md new file mode 100644 index 000000000..d176ef5d4 --- /dev/null +++ b/docs/content/wiki/reference/simplepie/enable_order_by_date.md @@ -0,0 +1,47 @@ ++++ +title = "enable_order_by_date()" ++++ + +## Description {#description} + +```php +class SimplePie { + enable_order_by_date ( [bool $enable = true] ) +} +``` + +Sometimes feeds don't have their items in chronological order. By default, SimplePie will re-order them to be in such an order. With this option, you can enable/disable the reordering of items into reverse chronological order if you don't want it. + +## Availability {#availability} + +- Available since SimplePie 1.0. +- Previously existed as order_by_date() since SimplePie Beta 2. + +## Parameters {#parameters} + +### enable {#enable} + +Set whether items should be re-ordered. Defaults to true. + +## Examples {#examples} + +### Disable re-ordering chronologically {#disable_re-ordering_chronologically} + +```php +$feed = new SimplePie(); +$feed->set_feed_url('http://simplepie.org/blog/feed/'); +$feed->enable_order_by_date(false); +$feed->init(); +$feed->handle_content_type(); +echo $feed->get_title(); +``` + +## See Also {#see_also} + + diff --git a/docs/content/wiki/reference/simplepie/enable_xml_dump.md b/docs/content/wiki/reference/simplepie/enable_xml_dump.md new file mode 100644 index 000000000..cdf479165 --- /dev/null +++ b/docs/content/wiki/reference/simplepie/enable_xml_dump.md @@ -0,0 +1,47 @@ ++++ +title = "enable_xml_dump()" ++++ + +## Description {#description} + +```php +class SimplePie { + enable_xml_dump ( [bool $enable = false] ) +} +``` + +Outputs the raw XML content of the feed, after it has gone through SimplePie's filters. + +Used only for debugging, this function will output the XML content as text/xml. When SimplePie reads in a feed, it does a bit of cleaning up before trying to parse it. Many parts of the feed are re-written in memory, and in the end, you have a parsable feed. XMLdump shows you the actual XML that SimplePie tries to parse, which may or may not be very different from the original feed. + +## Availability {#availability} + +- Available since SimplePie 1.0. +- Previously existed as enable_xmldump() since SimplePie Preview Release. +- Previously existed as a constructor parameter since SimplePie 0.91. + +## Parameters {#parameters} + +### enable {#enable} + +Enable/disable XMLdump mode. + +## Examples {#examples} + +### Enable XMLdump {#enable_xmldump} + +```php +$feed = new SimplePie(); +$feed->set_feed_url('http://simplepie.org/blog/feed/'); +$feed->enable_xml_dump(true); +$feed->init(); +``` + +## See Also {#see_also} + + diff --git a/docs/content/wiki/reference/simplepie/encode_instead_of_strip.md b/docs/content/wiki/reference/simplepie/encode_instead_of_strip.md new file mode 100644 index 000000000..81834f091 --- /dev/null +++ b/docs/content/wiki/reference/simplepie/encode_instead_of_strip.md @@ -0,0 +1,44 @@ ++++ +title = "encode_instead_of_strip()" ++++ + +## Description {#description} + +```php +class SimplePie { + encode_instead_of_strip ( [bool $enable = true] ) +} +``` + +This works in conjunction with [strip_htmltags()](@/wiki/reference/simplepie/strip_htmltags.md), where instead of stripping the tags, it simply encodes them. + +## Availability {#availability} + +- Available since SimplePie Beta 2. + +## Parameters {#parameters} + +### enable {#enable} + +Enable/disable encoding. + +## Examples {#examples} + +### Enable encoding instead of stripping {#enable_encoding_instead_of_stripping} + +```php +$feed = new SimplePie(); +$feed->set_feed_url('http://simplepie.org/blog/feed/'); +$feed->encode_instead_of_strip(true); +$feed->init(); +$feed->handle_content_type(); +echo $feed->get_title(); +``` + +## See Also {#see_also} + + diff --git a/docs/content/wiki/reference/simplepie/error.md b/docs/content/wiki/reference/simplepie/error.md new file mode 100644 index 000000000..eb992e203 --- /dev/null +++ b/docs/content/wiki/reference/simplepie/error.md @@ -0,0 +1,38 @@ ++++ +title = "error()" ++++ + +## Description {#description} + +```php +class SimplePie { + error () +} +``` + +If a SimplePie error was thrown, you can display it here. If there was a PHP error, SimplePie doesn't do anything about it. + +## Availability {#availability} + +- Available since SimplePie 1.0. +- Previously existed as `error` (property) since Beta 3. + +## Examples {#examples} + +### Display the error message if it exists {#display_the_error_message_if_it_exists} + +```php +$feed = new SimplePie(); +$feed->set_feed_url('http://simplepie.bob'); +$feed->init(); +$feed->handle_content_type(); + +if ($feed->error()) +{ + echo $feed->error(); +} +``` + +## See Also {#see_also} + +- [SimplePie](@/wiki/reference/simplepie/_index.md) diff --git a/docs/content/wiki/reference/simplepie/extending_the_simplepie_class.md b/docs/content/wiki/reference/simplepie/extending_the_simplepie_class.md new file mode 100644 index 000000000..5121ce1bc --- /dev/null +++ b/docs/content/wiki/reference/simplepie/extending_the_simplepie_class.md @@ -0,0 +1,74 @@ ++++ +title = "Extending the SimplePie class" ++++ + +## Description {#description} + +Whereas other classes can be extended with specific methods (listed below in the [API Reference](@/wiki/reference/_index.md)), SimplePie can be overloaded directly. + +Learn more about extending classes in PHP: + +- **PHP 4:** +- **PHP 5:** + +## Availability {#availability} + +- Available since SimplePie Preview Release. + +## Examples {#examples} + +### Replace a method and add a method {#replace_a_method_and_add_a_method} + +```php +subscribe_service('http://mobile.simplereader.com/?feed='); + } + + function get_feed_title() + { + return $this->get_title(); + } + +} + +// Let's do our standard SimplePie thing, except that we call SimplePie_Extras instead of SimplePie. +$feed = new SimplePie_Extras(); +$feed->set_feed_url('http://simplepie.org/blog/feed/'); +$feed->init(); +$feed->handle_content_type(); +?> + + + + +

    get_feed_title(); ?>

    +

    Read in SimpleReader Mobile!

    +
    + +get_items(0,5) as $item): ?> + +

    get_title()?>

    +

    get_date('j F Y, g:i a')?>

    +

    get_description()?>

    +
    + + + + + +``` + +## See Also {#see_also} + +- [SimplePie](@/wiki/reference/simplepie/_index.md) diff --git a/docs/content/wiki/reference/simplepie/force_feed.md b/docs/content/wiki/reference/simplepie/force_feed.md new file mode 100644 index 000000000..e5fc1edac --- /dev/null +++ b/docs/content/wiki/reference/simplepie/force_feed.md @@ -0,0 +1,50 @@ ++++ +title = "force_feed()" ++++ + +## Description {#description} + +```php +class SimplePie { + force_feed ( [bool $enable = false] ) +} +``` + +RSS and Atom feeds are supposed to have certain mime types associated with them so that software knows what type of data it is. Some feeds don't follow these rules, and serve feeds with invalid mime types (e.g. `text/plain`). SimplePie follows best practices by default, but you can override this behavior with this option. + +## Availability {#availability} + +- Available since SimplePie 1.1. + +## Parameters {#parameters} + +### enable {#enable} + +Enable/disable forcing the data to be handled as a feed. + +## Examples {#examples} + +### Force SimplePie to handle a text/plain document as a feed {#force_simplepie_to_handle_a_textplain_document_as_a_feed} + +```php +$feed = new SimplePie(); +$feed->set_feed_url('http://youtube.com/rss/global/recently_added.rss'); +$feed->force_feed(true); +$feed->init(); +$feed->handle_content_type(); +echo $feed->get_title(); +``` + +
    + +**Note:** Whereas YouTube feeds used to be served as `text/plain`, we notified them of the issue and they have since changed the mime type to `application/rss+xml`. + +
    + +## See Also {#see_also} + + diff --git a/docs/content/wiki/reference/simplepie/force_fsockopen.md b/docs/content/wiki/reference/simplepie/force_fsockopen.md new file mode 100644 index 000000000..ad626f791 --- /dev/null +++ b/docs/content/wiki/reference/simplepie/force_fsockopen.md @@ -0,0 +1,44 @@ ++++ +title = "force_fsockopen()" ++++ + +## Description {#description} + +```php +class SimplePie { + force_fsockopen ( [bool $enable = false] ) +} +``` + +If [cURL](http://php.net/curl) is available, SimplePie will use it instead of the built-in [fsockopen](http://php.net/fsockopen) functions for fetching remote feeds. This config option will force SimplePie to use fsockopen even if cURL is installed. + +## Availability {#availability} + +- Available since SimplePie Beta 3. + +## Parameters {#parameters} + +### enable {#enable} + +Enable/disable forced fsockopen usage. + +## Examples {#examples} + +### Use fsockopen instead of cURL functions {#use_fsockopen_instead_of_curl_functions} + +```php +$feed = new SimplePie(); +$feed->set_feed_url('http://simplepie.org/blog/feed/'); +$feed->force_fsockopen(true); +$feed->init(); +$feed->handle_content_type(); +echo $feed->get_title(); +``` + +## See Also {#see_also} + + diff --git a/docs/content/wiki/reference/simplepie/get_all_discovered_feeds.md b/docs/content/wiki/reference/simplepie/get_all_discovered_feeds.md new file mode 100644 index 000000000..fd727b3c9 --- /dev/null +++ b/docs/content/wiki/reference/simplepie/get_all_discovered_feeds.md @@ -0,0 +1,40 @@ ++++ +title = "get_all_discovered_feeds()" ++++ + +## Description {#description} + +```php +class SimplePie { + get_all_discovered_feeds () +} +``` + +Returns an array of SimplePie_File objects, pointing to feeds found during the autodiscovery process. + +## Availability {#availability} + +- Available since SimplePie 1.2. +- Available since [r1051](http://bugs.simplepie.org/repositories/revision/sp1/1051) + +## Examples {#examples} + +### Loop through each item and do something with each {#loop_through_each_item_and_do_something_with_each} + +```php +get_all_discovered_feeds() as $link) +{ + echo $link->url . "
    "; +} +?> +``` + +## See Also {#see_also} + +- [SimplePie](@/wiki/reference/simplepie/_index.md) +- [subscribe_url()](@/wiki/reference/simplepie/subscribe_url.md) diff --git a/docs/content/wiki/reference/simplepie/get_author.md b/docs/content/wiki/reference/simplepie/get_author.md new file mode 100644 index 000000000..943eb78b6 --- /dev/null +++ b/docs/content/wiki/reference/simplepie/get_author.md @@ -0,0 +1,45 @@ ++++ +title = "get_author()" ++++ + +## Description {#description} + +```php +class SimplePie { + get_author ( [int $key = 0] ) +} +``` + +Returns a single array location containing a [SimplePie_Author](@/wiki/reference/simplepie_author/_index.md) object. + +## Availability {#availability} + +- Available since SimplePie 1.1. + +## Parameters {#parameters} + +### key {#key} + +The item that you want to return. Remember that arrays begin with `0`, not `1`. + +## Examples {#examples} + +### Get an author for the feed. {#get_an_author_for_the_feed} + +```php +$feed = new SimplePie(); +$feed->set_feed_url('http://simplepie.org/blog/feed/'); +$feed->init(); +$feed->handle_content_type(); + +if ($author = $feed->get_author()) +{ + echo $author->get_name(); +} +``` + +## See Also {#see_also} + +- [SimplePie](@/wiki/reference/simplepie/_index.md) +- [SimplePie_Author](@/wiki/reference/simplepie_author/_index.md) +- [get_authors()](@/wiki/reference/simplepie/get_authors.md) diff --git a/docs/content/wiki/reference/simplepie/get_authors.md b/docs/content/wiki/reference/simplepie/get_authors.md new file mode 100644 index 000000000..556373244 --- /dev/null +++ b/docs/content/wiki/reference/simplepie/get_authors.md @@ -0,0 +1,49 @@ ++++ +title = "get_authors()" ++++ + +## Description {#description} + +```php +class SimplePie { + get_authors ( [int $start = 0], [int $length = 0] ) +} +``` + +Returns an array of [SimplePie_Author](@/wiki/reference/simplepie_author/_index.md) objects that were found for the item, which can be looped through. + +## Availability {#availability} + +- Available since SimplePie 1.1. + +## Parameters {#parameters} + +### start {#start} + +The number of the item you want to start at. Remember that arrays begin with `0`, not `1`. + +### length {#length} + +The number of items to return. `0` will return all. The `start` parameter is required if this is used. + +## Examples {#examples} + +### Loop through each item and do something with each {#loop_through_each_item_and_do_something_with_each} + +```php +$feed = new SimplePie(); +$feed->set_feed_url('http://simplepie.org/blog/feed/'); +$feed->init(); +$feed->handle_content_type(); + +foreach ($item->get_authors() as $author) +{ + echo $author->get_name(); +} +``` + +## See Also {#see_also} + +- [SimplePie](@/wiki/reference/simplepie/_index.md) +- [SimplePie_Author](@/wiki/reference/simplepie_author/_index.md) +- [get_author()](@/wiki/reference/simplepie/get_author.md) diff --git a/docs/content/wiki/reference/simplepie/get_base.md b/docs/content/wiki/reference/simplepie/get_base.md new file mode 100644 index 000000000..96650196e --- /dev/null +++ b/docs/content/wiki/reference/simplepie/get_base.md @@ -0,0 +1,27 @@ ++++ +title = "get_base()" ++++ + +## Description {#description} + +```php +class SimplePie { + get_base ( [array $element = array()] ) +} +``` + +Returns the `xml:base` value for a given feed element. + +## Availability {#availability} + +- Available since SimplePie 1.0. + +## Parameters {#parameters} + +### element {#element} + +The feed element to return an `xml:base` value for. + +## See Also {#see_also} + +- [SimplePie](@/wiki/reference/simplepie/_index.md) diff --git a/docs/content/wiki/reference/simplepie/get_channel_tags.md b/docs/content/wiki/reference/simplepie/get_channel_tags.md new file mode 100644 index 000000000..10401c193 --- /dev/null +++ b/docs/content/wiki/reference/simplepie/get_channel_tags.md @@ -0,0 +1,63 @@ ++++ +title = "get_channel_tags()" ++++ + +## Description {#description} + +```php +class SimplePie { + get_channel_tags ( string $namespace, string $tag ) +} +``` + +This method allows you to get access to ANY element/attribute in the channel/header section of the feed. It will return an _array_, which you should look at with PHP's [print_r()](http://php.net/print_r) function. + +
    + +Note that this will return an array of all of the elements it finds, and you can only go deeper – not shallower. + +
    + +## Availability {#availability} + +- Available since SimplePie 1.0. + +## Parameters {#parameters} + +### namespace (required) {#namespace_required} + +The URL of the XML namespace of the elements you're trying to access. SimplePie has a number of constants for supported namespaces in our [Supported XML Namespaces](@/wiki/faq/supported_xml_namespaces.md) document. If we don't have a constant for it, you can manually add the namespace URL as listed inside the feed. + +### tag (required) {#tag_required} + +This is the tag (element) that you want to get. + +## Examples {#examples} + +### Grab the contents of a custom element {#grab_the_contents_of_a_custom_element} + +```php +$feed = new SimplePie(); +$feed->set_feed_url('http://video.google.com/videofeed?type=top100new&num=20&output=rss'); +$feed->enable_cache(false); +$success = $feed->init(); +$feed->handle_content_type('text/plain'); + +if ($success) +{ + $opensearch = $feed->get_channel_tags('http://a9.com/-/spec/opensearchrss/1.0/', 'itemsPerPage'); + echo $opensearch[0]['data']; +} +else +{ + echo $feed->error(); +} +``` + +## See Also {#see_also} + +- [SimplePie](@/wiki/reference/simplepie/_index.md) +- [get_feed_tags()](@/wiki/reference/simplepie/get_feed_tags.md) +- [get_image_tags()](@/wiki/reference/simplepie/get_image_tags.md) +- [get_item_tags()](@/wiki/reference/simplepie_item/get_item_tags.md) +- [get_source_tags()](@/wiki/reference/simplepie_source/get_source_tags.md) diff --git a/docs/content/wiki/reference/simplepie/get_contributor.md b/docs/content/wiki/reference/simplepie/get_contributor.md new file mode 100644 index 000000000..24ecc86e5 --- /dev/null +++ b/docs/content/wiki/reference/simplepie/get_contributor.md @@ -0,0 +1,45 @@ ++++ +title = "get_contributor()" ++++ + +## Description {#description} + +```php +class SimplePie { + get_contributor ( [int $key = 0] ) +} +``` + +Returns a single array location containing a [SimplePie_Author](@/wiki/reference/simplepie_author/_index.md) object. + +## Availability {#availability} + +- Available since SimplePie 1.1. + +## Parameters {#parameters} + +### key {#key} + +The item that you want to return. Remember that arrays begin with `0`, not `1`. + +## Examples {#examples} + +### Get a contributor for the feed. {#get_a_contributor_for_the_feed} + +```php +$feed = new SimplePie(); +$feed->set_feed_url('http://simplepie.org/blog/feed/'); +$feed->init(); +$feed->handle_content_type(); + +if ($contributor = $feed->get_contributor()) +{ + echo $contributor->get_name(); +} +``` + +## See Also {#see_also} + +- [SimplePie](@/wiki/reference/simplepie/_index.md) +- [SimplePie_Author](@/wiki/reference/simplepie_author/_index.md) +- [get_contributors()](@/wiki/reference/simplepie/get_contributors.md) diff --git a/docs/content/wiki/reference/simplepie/get_contributors.md b/docs/content/wiki/reference/simplepie/get_contributors.md new file mode 100644 index 000000000..e7f51b769 --- /dev/null +++ b/docs/content/wiki/reference/simplepie/get_contributors.md @@ -0,0 +1,49 @@ ++++ +title = "get_contributors()" ++++ + +## Description {#description} + +```php +class SimplePie { + get_contributors ( [int $start = 0], [int $length = 0] ) +} +``` + +Returns an array of [SimplePie_Author](@/wiki/reference/simplepie_author/_index.md) objects that were found for the item, which can be looped through. + +## Availability {#availability} + +- Available since SimplePie 1.1. + +## Parameters {#parameters} + +### start {#start} + +The number of the item you want to start at. Remember that arrays begin with `0`, not `1`. + +### length {#length} + +The number of items to return. `0` will return all. The `start` parameter is required if this is used. + +## Examples {#examples} + +### Loop through each item and do something with each {#loop_through_each_item_and_do_something_with_each} + +```php +$feed = new SimplePie(); +$feed->set_feed_url('http://simplepie.org/blog/feed/'); +$feed->init(); +$feed->handle_content_type(); + +foreach ($item->get_contributors() as $contributor) +{ + echo $contributor->get_name(); +} +``` + +## See Also {#see_also} + +- [SimplePie](@/wiki/reference/simplepie/_index.md) +- [SimplePie_Author](@/wiki/reference/simplepie_author/_index.md) +- [get_contributor()](@/wiki/reference/simplepie/get_contributor.md) diff --git a/docs/content/wiki/reference/simplepie/get_copyright.md b/docs/content/wiki/reference/simplepie/get_copyright.md new file mode 100644 index 000000000..aaf5fd013 --- /dev/null +++ b/docs/content/wiki/reference/simplepie/get_copyright.md @@ -0,0 +1,35 @@ ++++ +title = "get_copyright()" ++++ + +## Description {#description} + +```php +class SimplePie { + get_copyright () +} +``` + +Returns the copyright info for the feed. + +## Availability {#availability} + +- Available since SimplePie 1.0. +- Previously existed as `get_feed_copyright()` since SimplePie 0.8. + +## Examples {#examples} + +### Display the copyright info {#display_the_copyright_info} + +```php +$feed = new SimplePie(); +$feed->set_feed_url('http://simplepie.org/blog/feed/'); +$feed->init(); +$feed->handle_content_type(); + +echo $feed->get_copyright(); +``` + +## See Also {#see_also} + +- [SimplePie](@/wiki/reference/simplepie/_index.md) diff --git a/docs/content/wiki/reference/simplepie/get_description.md b/docs/content/wiki/reference/simplepie/get_description.md new file mode 100644 index 000000000..04906c320 --- /dev/null +++ b/docs/content/wiki/reference/simplepie/get_description.md @@ -0,0 +1,35 @@ ++++ +title = "get_description()" ++++ + +## Description {#description} + +```php +class SimplePie { + get_description () +} +``` + +Returns the description for the feed. If no description is available, SimplePie will look for ``, then `` tags. + +## Availability {#availability} + +- Available since SimplePie 1.0. +- Previously existed as `get_feed_description()` since SimplePie 0.8. + +## Examples {#examples} + +### Display the description {#display_the_description} + +```php +$feed = new SimplePie(); +$feed->set_feed_url('http://simplepie.org/blog/feed/'); +$feed->init(); +$feed->handle_content_type(); + +echo $feed->get_description(); +``` + +## See Also {#see_also} + +- [SimplePie](@/wiki/reference/simplepie/_index.md) diff --git a/docs/content/wiki/reference/simplepie/get_encoding.md b/docs/content/wiki/reference/simplepie/get_encoding.md new file mode 100644 index 000000000..426d0dc8f --- /dev/null +++ b/docs/content/wiki/reference/simplepie/get_encoding.md @@ -0,0 +1,34 @@ ++++ +title = "get_encoding()" ++++ + +## Description {#description} + +```php +class SimplePie { + get_encoding () +} +``` + +Returns the character encoding that was outputted by SimplePie. + +## Availability {#availability} + +- Available since SimplePie Preview Release. + +## Examples {#examples} + +### Display the character encoding {#display_the_character_encoding} + +```php +$feed = new SimplePie(); +$feed->set_feed_url('http://simplepie.org/blog/feed/'); +$feed->init(); +$feed->handle_content_type(); + +echo $feed->get_encoding(); +``` + +## See Also {#see_also} + +- [SimplePie](@/wiki/reference/simplepie/_index.md) diff --git a/docs/content/wiki/reference/simplepie/get_favicon.md b/docs/content/wiki/reference/simplepie/get_favicon.md new file mode 100644 index 000000000..bb8626005 --- /dev/null +++ b/docs/content/wiki/reference/simplepie/get_favicon.md @@ -0,0 +1,71 @@ ++++ +title = "get_favicon()" ++++ + +## Description {#description} + +```php +class SimplePie { + get_favicon () +} +``` + +Returns the favicon image for the feed's website. These are supposed to be 16×16, although I've seen them be 32×32 in certain browsers (IE, Safari). + +## Availability {#availability} + +- Available since SimplePie Beta 3. +- $alternate parameter was removed in 1.0 RC2. + +## Examples {#examples} + +### Use CSS to add the favicon to each item's title {#use_css_to_add_the_favicon_to_each_item_s_title} + +```php +set_feed_url('http://simplepie.org/blog/feed/'); +$feed->init(); +$feed->handle_content_type(); + +?> + + + + Sample SimplePie Page + + + + + + +
    +

    get_title(); ?>

    +

    get_description(); ?>

    +
    + + get_items() as $item): ?> + +
    +

    get_title(); ?>

    + get_description(); ?> +

    Posted on get_date('j F Y | g:i a'); ?>

    +
    + + + + + +``` + +## See Also {#see_also} + +- [SimplePie](@/wiki/reference/simplepie/_index.md) diff --git a/docs/content/wiki/reference/simplepie/get_feed_tags.md b/docs/content/wiki/reference/simplepie/get_feed_tags.md new file mode 100644 index 000000000..220848001 --- /dev/null +++ b/docs/content/wiki/reference/simplepie/get_feed_tags.md @@ -0,0 +1,64 @@ ++++ +title = "get_feed_tags()" ++++ + +## Description {#description} + +```php +class SimplePie { + get_feed_tags ( string $namespace, string $tag ) +} +``` + +This method allows you to get access to ANY element/attribute that is a sub-element of the opening feed tag. It will return an _array_, which you should look at with PHP's [print_r()](http://php.net/print_r) function. + +
    + +Note that this will return an array of all of the elements it finds, and you can only go deeper – not shallower. + +
    + +## Availability {#availability} + +- Available since SimplePie 1.0. + +## Parameters {#parameters} + +### namespace (required) {#namespace_required} + +The URL of the XML namespace of the elements you're trying to access. SimplePie has a number of constants for supported namespaces in our [Supported XML Namespaces](@/wiki/faq/supported_xml_namespaces.md) document. If we don't have a constant for it, you can manually add the namespace URL as listed inside the feed. + +### tag (required) {#tag_required} + +This is the tag (element) that you want to get. + +## Examples {#examples} + +### Grab the contents of a custom element {#grab_the_contents_of_a_custom_element} + +```php +$feed = new SimplePie(); +$feed->set_feed_url('http://video.google.com/videofeed?type=top100new&num=20&output=rss'); +$feed->enable_cache(false); +$success = $feed->init(); +$feed->handle_content_type('text/plain'); + +if ($success) +{ + // We're parsing an RSS 2.0 feed which doesn't have a namespace, so we pass in an empty string for the namespace. + $channel = $feed->get_feed_tags('', 'channel'); + print_r($channel); +} +else +{ + echo $feed->error(); +} +``` + +## See Also {#see_also} + +- [SimplePie](@/wiki/reference/simplepie/_index.md) +- [get_channel_tags()](@/wiki/reference/simplepie/get_channel_tags.md) +- [get_image_tags()](@/wiki/reference/simplepie/get_image_tags.md) +- [get_item_tags()](@/wiki/reference/simplepie_item/get_item_tags.md) +- [get_source_tags()](@/wiki/reference/simplepie_source/get_source_tags.md) diff --git a/docs/content/wiki/reference/simplepie/get_image_height.md b/docs/content/wiki/reference/simplepie/get_image_height.md new file mode 100644 index 000000000..5a8b65dba --- /dev/null +++ b/docs/content/wiki/reference/simplepie/get_image_height.md @@ -0,0 +1,40 @@ ++++ +title = "get_image_height()" ++++ + +## Description {#description} + +```php +class SimplePie { + get_image_height () +} +``` + +RSS 2.0 and Atom 1.0 feeds are allowed to have a “feed logo”, which is a single image to represent the feed. This method returns the notated height for that image/logo. + +## Availability {#availability} + +- Available since SimplePie 0.8. + +## Examples {#examples} + +### Display the logo {#display_the_logo} + +```php +$feed = new SimplePie(); +$feed->set_feed_url('http://simplepie.org/blog/feed/'); +$feed->init(); +$feed->handle_content_type(); + +echo ''; +echo ''; +echo ''; +``` + +## See Also {#see_also} + +- [SimplePie](@/wiki/reference/simplepie/_index.md) +- [get_image_link()](@/wiki/reference/simplepie/get_image_link.md) +- [get_image_title()](@/wiki/reference/simplepie/get_image_title.md) +- [get_image_url()](@/wiki/reference/simplepie/get_image_url.md) +- [get_image_width()](@/wiki/reference/simplepie/get_image_width.md) diff --git a/docs/content/wiki/reference/simplepie/get_image_link.md b/docs/content/wiki/reference/simplepie/get_image_link.md new file mode 100644 index 000000000..53186bc40 --- /dev/null +++ b/docs/content/wiki/reference/simplepie/get_image_link.md @@ -0,0 +1,40 @@ ++++ +title = "get_image_link()" ++++ + +## Description {#description} + +```php +class SimplePie { + get_image_link () +} +``` + +RSS 2.0 and Atom 1.0 feeds are allowed to have a “feed logo”, which is a single image to represent the feed. This method returns the notated permalink for that image/logo. + +## Availability {#availability} + +- Available since SimplePie 0.8. + +## Examples {#examples} + +### Display the logo {#display_the_logo} + +```php +$feed = new SimplePie(); +$feed->set_feed_url('http://simplepie.org/blog/feed/'); +$feed->init(); +$feed->handle_content_type(); + +echo ''; +echo ''; +echo ''; +``` + +## See Also {#see_also} + +- [SimplePie](@/wiki/reference/simplepie/_index.md) +- [get_image_height()](@/wiki/reference/simplepie/get_image_height.md) +- [get_image_title()](@/wiki/reference/simplepie/get_image_title.md) +- [get_image_url()](@/wiki/reference/simplepie/get_image_url.md) +- [get_image_width()](@/wiki/reference/simplepie/get_image_width.md) diff --git a/docs/content/wiki/reference/simplepie/get_image_tags.md b/docs/content/wiki/reference/simplepie/get_image_tags.md new file mode 100644 index 000000000..3276663f3 --- /dev/null +++ b/docs/content/wiki/reference/simplepie/get_image_tags.md @@ -0,0 +1,41 @@ ++++ +title = "get_image_tags()" ++++ + +## Description {#description} + +```php +class SimplePie { + get_image_tags ( string $namespace, string $tag ) +} +``` + +This method allows you to get access to ANY element/attribute in the image/logo section of the feed. It will return an _array_, which you should look at with PHP's [print_r()](http://php.net/print_r) function. + +
    + +Note that this will return an array of all of the elements it finds, and you can only go deeper – not shallower. + +
    + +## Availability {#availability} + +- Available since SimplePie 1.0. + +## Parameters {#parameters} + +### namespace (required) {#namespace_required} + +The URL of the XML namespace of the elements you're trying to access. SimplePie has a number of constants for supported namespaces in our [Supported XML Namespaces](@/wiki/faq/supported_xml_namespaces.md) document. If we don't have a constant for it, you can manually add the namespace URL as listed inside the feed. + +### tag (required) {#tag_required} + +This is the tag (element) that you want to get. + +## See Also {#see_also} + +- [SimplePie](@/wiki/reference/simplepie/_index.md) +- [get_channel_tags()](@/wiki/reference/simplepie/get_channel_tags.md) +- [get_feed_tags()](@/wiki/reference/simplepie/get_feed_tags.md) +- [get_item_tags()](@/wiki/reference/simplepie_item/get_item_tags.md) +- [get_source_tags()](@/wiki/reference/simplepie_source/get_source_tags.md) diff --git a/docs/content/wiki/reference/simplepie/get_image_title.md b/docs/content/wiki/reference/simplepie/get_image_title.md new file mode 100644 index 000000000..0edb29c8e --- /dev/null +++ b/docs/content/wiki/reference/simplepie/get_image_title.md @@ -0,0 +1,40 @@ ++++ +title = "get_image_title()" ++++ + +## Description {#description} + +```php +class SimplePie { + get_image_title () +} +``` + +RSS 2.0 and Atom 1.0 feeds are allowed to have a “feed logo”, which is a single image to represent the feed. This method returns the notated title for that image/logo. + +## Availability {#availability} + +- Available since SimplePie 0.8. + +## Examples {#examples} + +### Display the logo {#display_the_logo} + +```php +$feed = new SimplePie(); +$feed->set_feed_url('http://simplepie.org/blog/feed/'); +$feed->init(); +$feed->handle_content_type(); + +echo ''; +echo ''; +echo ''; +``` + +## See Also {#see_also} + +- [SimplePie](@/wiki/reference/simplepie/_index.md) +- [get_image_height()](@/wiki/reference/simplepie/get_image_height.md) +- [get_image_link()](@/wiki/reference/simplepie/get_image_link.md) +- [get_image_url()](@/wiki/reference/simplepie/get_image_url.md) +- [get_image_width()](@/wiki/reference/simplepie/get_image_width.md) diff --git a/docs/content/wiki/reference/simplepie/get_image_url.md b/docs/content/wiki/reference/simplepie/get_image_url.md new file mode 100644 index 000000000..e45e2c579 --- /dev/null +++ b/docs/content/wiki/reference/simplepie/get_image_url.md @@ -0,0 +1,40 @@ ++++ +title = "get_image_url()" ++++ + +## Description {#description} + +```php +class SimplePie { + get_image_url () +} +``` + +RSS 2.0, Atom 1.0, and feeds with iTunes RSS tags are allowed to have a “feed logo”, which is a single image to represent the feed. This method returns the notated URL for that image/logo file. + +## Availability {#availability} + +- Available since SimplePie 0.8. + +## Examples {#examples} + +### Display the logo {#display_the_logo} + +```php +$feed = new SimplePie(); +$feed->set_feed_url('http://simplepie.org/blog/feed/'); +$feed->init(); +$feed->handle_content_type(); + +echo ''; +echo ''; +echo ''; +``` + +## See Also {#see_also} + +- [SimplePie](@/wiki/reference/simplepie/_index.md) +- [get_image_height()](@/wiki/reference/simplepie/get_image_height.md) +- [get_image_link()](@/wiki/reference/simplepie/get_image_link.md) +- [get_image_title()](@/wiki/reference/simplepie/get_image_title.md) +- [get_image_width()](@/wiki/reference/simplepie/get_image_width.md) diff --git a/docs/content/wiki/reference/simplepie/get_image_width.md b/docs/content/wiki/reference/simplepie/get_image_width.md new file mode 100644 index 000000000..ad8823ed8 --- /dev/null +++ b/docs/content/wiki/reference/simplepie/get_image_width.md @@ -0,0 +1,40 @@ ++++ +title = "get_image_width()" ++++ + +## Description {#description} + +```php +class SimplePie { + get_image_width () +} +``` + +RSS 2.0 and Atom 1.0 feeds are allowed to have a “feed logo”, which is a single image to represent the feed. This method returns the notated width for that image/logo. + +## Availability {#availability} + +- Available since SimplePie 0.8. + +## Examples {#examples} + +### Display the logo {#display_the_logo} + +```php +$feed = new SimplePie(); +$feed->set_feed_url('http://simplepie.org/blog/feed/'); +$feed->init(); +$feed->handle_content_type(); + +echo ''; +echo ''; +echo ''; +``` + +## See Also {#see_also} + +- [SimplePie](@/wiki/reference/simplepie/_index.md) +- [get_image_height()](@/wiki/reference/simplepie/get_image_height.md) +- [get_image_link()](@/wiki/reference/simplepie/get_image_link.md) +- [get_image_title()](@/wiki/reference/simplepie/get_image_title.md) +- [get_image_url()](@/wiki/reference/simplepie/get_image_url.md) diff --git a/docs/content/wiki/reference/simplepie/get_item.md b/docs/content/wiki/reference/simplepie/get_item.md new file mode 100644 index 000000000..149b5cca0 --- /dev/null +++ b/docs/content/wiki/reference/simplepie/get_item.md @@ -0,0 +1,76 @@ ++++ +title = "get_item()" ++++ + +## Description {#description} + +```php +class SimplePie { + get_item ( [int $key = 0] ) +} +``` + +Returns a single array location containing a [SimplePie_Item](@/wiki/reference/simplepie_item/_index.md) reference for an item in the feed. + +This is better suited for [for()](http://php.net/manual/en/control-structures.for.php) loops, whereas [get_items()](@/wiki/reference/simplepie/get_items.md) is better suited for [foreach()](http://php.net/foreach) loops. + +## Availability {#availability} + +- Available since SimplePie Beta 2. + +## Parameters {#parameters} + +### key {#key} + +The item that you want to return. Remember that arrays begin with `0`, not `1`. + +## Examples {#examples} + +### Loop through each item and do something with each {#loop_through_each_item_and_do_something_with_each} + +```php +set_feed_url('http://simplepie.org/blog/feed/'); +$feed->init(); +$feed->handle_content_type(); + +?> + + + + Sample SimplePie Page + + + +
    +

    get_title(); ?>

    +

    get_description(); ?>

    +
    + + get_item_quantity(); + for ($x = 0; $x < $max; $x++): + $item = $feed->get_item($x); + ?> + +
    +

    get_title(); ?>

    + get_description(); ?> +

    Posted on get_date('j F Y | g:i a'); ?>

    +
    + + + + + +``` + +## See Also {#see_also} + +- [SimplePie](@/wiki/reference/simplepie/_index.md) +- [get_items()](@/wiki/reference/simplepie/get_items.md) +- [get_item_quantity()](@/wiki/reference/simplepie/get_item_quantity.md) diff --git a/docs/content/wiki/reference/simplepie/get_item_quantity.md b/docs/content/wiki/reference/simplepie/get_item_quantity.md new file mode 100644 index 000000000..316e7da4e --- /dev/null +++ b/docs/content/wiki/reference/simplepie/get_item_quantity.md @@ -0,0 +1,73 @@ ++++ +title = "get_item_quantity()" ++++ + +## Description {#description} + +```php +class SimplePie { + get_item_quantity ( [int $max = 0] ) +} +``` + +Returns the number of items in a feed. This is well-suited for [for()](http://php.net/manual/en/control-structures.for.php) loops. + +## Availability {#availability} + +- Available since SimplePie 0.8. + +## Parameters {#parameters} + +### max {#max} + +The maximum number of items to return. If there are fewer items in the feed than what `max` is set to, SimplePie will return the lower number. Setting a value of `0` will return the number of items in the feed. + +## Examples {#examples} + +### Loop through each item and do something with each {#loop_through_each_item_and_do_something_with_each} + +```php +set_feed_url('http://simplepie.org/blog/feed/'); +$feed->init(); +$feed->handle_content_type(); + +?> + + + + Sample SimplePie Page + + + +
    +

    get_title(); ?>

    +

    get_description(); ?>

    +
    + + get_item_quantity(5); + for ($x = 0; $x < $max; $x++): + $item = $feed->get_item($x); + ?> + +
    +

    get_title(); ?>

    + get_description(); ?> +

    Posted on get_date('j F Y | g:i a'); ?>

    +
    + + + + + +``` + +## See Also {#see_also} + +- [SimplePie](@/wiki/reference/simplepie/_index.md) +- [get_item()](@/wiki/reference/simplepie/get_item.md) diff --git a/docs/content/wiki/reference/simplepie/get_items.md b/docs/content/wiki/reference/simplepie/get_items.md new file mode 100644 index 000000000..35335ce75 --- /dev/null +++ b/docs/content/wiki/reference/simplepie/get_items.md @@ -0,0 +1,76 @@ ++++ +title = "get_items()" ++++ + +## Description {#description} + +```php +class SimplePie { + get_items ( [int $start = 0 [, int $length = 0] ] ) +} +``` + +Returns an array of [SimplePie_Item](@/wiki/reference/simplepie_item/_index.md) references for each item in the feed, which can be looped through. + +This is better suited for [foreach()](http://php.net/foreach) loops, whereas [get_item()](@/wiki/reference/simplepie/get_item.md) is better suited for [for()](http://php.net/manual/en/control-structures.for.php) loops. + +## Availability {#availability} + +- Available since SimplePie Beta 2. + +## Parameters {#parameters} + +### start {#start} + +The number of the item you want to start at. Remember that arrays begin with `0`, not `1`. + +### length {#length} + +The number of items to return. `0` will return all. The `start` parameter is required if this is used. + +## Examples {#examples} + +### Loop through the first 5 itemss and do something with each {#loop_through_the_first_5_itemss_and_do_something_with_each} + +```php +set_feed_url('http://simplepie.org/blog/feed/'); +$feed->init(); +$feed->handle_content_type(); + +?> + + + + Sample SimplePie Page + + + +
    +

    get_title(); ?>

    +

    get_description(); ?>

    +
    + + get_items(0, 5) as $item): ?> + +
    +

    get_title(); ?>

    + get_description(); ?> +

    Posted on get_date('j F Y | g:i a'); ?>

    +
    + + + + + +``` + +## See Also {#see_also} + +- [SimplePie](@/wiki/reference/simplepie/_index.md) +- [get_item()](@/wiki/reference/simplepie/get_item.md) +- [get_item_quantity()](@/wiki/reference/simplepie/get_item_quantity.md) diff --git a/docs/content/wiki/reference/simplepie/get_language.md b/docs/content/wiki/reference/simplepie/get_language.md new file mode 100644 index 000000000..356ff7289 --- /dev/null +++ b/docs/content/wiki/reference/simplepie/get_language.md @@ -0,0 +1,35 @@ ++++ +title = "get_language()" ++++ + +## Description {#description} + +```php +class SimplePie { + get_language () +} +``` + +Returns the language for the feed. + +## Availability {#availability} + +- Available since SimplePie 1.0. +- Previously existed as `get_feed_language()` since SimplePie 0.8. + +## Examples {#examples} + +### Display the language {#display_the_language} + +```php +$feed = new SimplePie(); +$feed->set_feed_url('http://simplepie.org/blog/feed/'); +$feed->init(); +$feed->handle_content_type(); + +echo $feed->get_language(); +``` + +## See Also {#see_also} + +- [SimplePie](@/wiki/reference/simplepie/_index.md) diff --git a/docs/content/wiki/reference/simplepie/get_latitude.md b/docs/content/wiki/reference/simplepie/get_latitude.md new file mode 100644 index 000000000..2cc9bfc54 --- /dev/null +++ b/docs/content/wiki/reference/simplepie/get_latitude.md @@ -0,0 +1,36 @@ ++++ +title = "get_latitude()" ++++ + +## Description {#description} + +```php +class SimplePie { + get_latitude () +} +``` + +Returns the [W3C WGS84 Basic Geo](http://www.w3.org/2003/01/geo/) or [GeoRSS](http://www.georss.org/georss)-compatible latitude coordinates for the feed. + +## Availability {#availability} + +- Available since SimplePie 1.0. + +## Examples {#examples} + +### Display the coordinates of the feed {#display_the_coordinates_of_the_feed} + +```php +$feed = new SimplePie(); +$feed->set_feed_url('http://simplepie.org/blog/feed/'); +$feed->init(); +$feed->handle_content_type(); + +echo $feed->get_latitude(); +echo $feed->get_longitude(); +``` + +## See Also {#see_also} + +- [SimplePie](@/wiki/reference/simplepie/_index.md) +- [get_longitude()](@/wiki/reference/simplepie/get_longitude.md) diff --git a/docs/content/wiki/reference/simplepie/get_link.md b/docs/content/wiki/reference/simplepie/get_link.md new file mode 100644 index 000000000..b71600e9f --- /dev/null +++ b/docs/content/wiki/reference/simplepie/get_link.md @@ -0,0 +1,73 @@ ++++ +title = "get_link()" ++++ + +## Description {#description} + +```php +class SimplePie { + get_link ( [int $key = 0 [, string $rel = 'alternate'] ] ) +} +``` + +Returns a single array location containing a link for the feed. This is useful for when a feed associates more than one link to itself. + +## Availability {#availability} + +- Available since SimplePie 1.0. +- Previously existed as `get_feed_link()` since SimplePie Preview Release. +- Previously existed as `get_feed_permalink()` since SimplePie 0.8. + +## Parameters {#parameters} + +### key {#key} + +The item that you want to return. Remember that arrays begin with `0`, not `1`. + +### relation {#relation} + +The relationship of links to return. + +## Examples {#examples} + +### Loop through each item and do something with each {#loop_through_each_item_and_do_something_with_each} + +```php +handle_content_type(); + +?> + + + + Sample SimplePie Page + + + +
    +

    get_title(); ?>

    +

    get_description(); ?>

    +
    + + get_items() as $item): ?> + +
    +

    get_title(); ?>

    + get_description(); ?> +

    Posted on get_date('j F Y | g:i a'); ?>

    +
    + + + + + +``` + +## See Also {#see_also} + +- [SimplePie](@/wiki/reference/simplepie/_index.md) +- [get_links()](@/wiki/reference/simplepie/get_links.md) diff --git a/docs/content/wiki/reference/simplepie/get_links.md b/docs/content/wiki/reference/simplepie/get_links.md new file mode 100644 index 000000000..b6dd6a7d7 --- /dev/null +++ b/docs/content/wiki/reference/simplepie/get_links.md @@ -0,0 +1,61 @@ ++++ +title = "get_links()" ++++ + +## Description {#description} + +```php +class SimplePie { + get_links ( [$rel = 'alternate'] ) +} +``` + +Returns an array of links that were found for the feed which can be looped through. + +## Availability {#availability} + +- Available since SimplePie Beta 2. + +## Parameters {#parameters} + +### relation {#relation} + +The relationship of links to return. + +## Examples {#examples} + +### Loop through each item and do something with each {#loop_through_each_item_and_do_something_with_each} + +```php +handle_content_type(); + +?> + + + + Sample SimplePie Page + + + +get_items() as $item) +{ + foreach ($item->get_links() as $link) + { + echo $link . "
    "; + } +} +?> + + +``` + +## See Also {#see_also} + +- [SimplePie](@/wiki/reference/simplepie/_index.md) +- [get_link()](@/wiki/reference/simplepie/get_link.md) diff --git a/docs/content/wiki/reference/simplepie/get_longitude.md b/docs/content/wiki/reference/simplepie/get_longitude.md new file mode 100644 index 000000000..dc9cb73f3 --- /dev/null +++ b/docs/content/wiki/reference/simplepie/get_longitude.md @@ -0,0 +1,36 @@ ++++ +title = "get_longitude()" ++++ + +## Description {#description} + +```php +class SimplePie { + get_longitude () +} +``` + +Returns the [W3C WGS84 Basic Geo](http://www.w3.org/2003/01/geo/) or [GeoRSS](http://www.georss.org/georss)-compatible longitude coordinates for the feed. + +## Availability {#availability} + +- Available since SimplePie 1.0. + +## Examples {#examples} + +### Display the coordinates of the feed {#display_the_coordinates_of_the_feed} + +```php +$feed = new SimplePie(); +$feed->set_feed_url('http://simplepie.org/blog/feed/'); +$feed->init(); +$feed->handle_content_type(); + +echo $feed->get_latitude(); +echo $feed->get_longitude(); +``` + +## See Also {#see_also} + +- [SimplePie](@/wiki/reference/simplepie/_index.md) +- [get_latitude()](@/wiki/reference/simplepie/get_latitude.md) diff --git a/docs/content/wiki/reference/simplepie/get_permalink.md b/docs/content/wiki/reference/simplepie/get_permalink.md new file mode 100644 index 000000000..417c7b79a --- /dev/null +++ b/docs/content/wiki/reference/simplepie/get_permalink.md @@ -0,0 +1,64 @@ ++++ +title = "get_permalink()" ++++ + +## Description {#description} + +```php +class SimplePie { + get_permalink () +} +``` + +Returns the first link available with a relationship of “alternate”. Identical to passing `0` to [get_link()](@/wiki/reference/simplepie/get_link.md). + +## Availability {#availability} + +- Available since SimplePie 1.0. +- Previously existed as `get_feed_link()` since SimplePie Preview Release. +- Previously existed as `get_feed_permalink()` since SimplePie 0.8. + +## Examples {#examples} + +### Loop through each item and do something with each {#loop_through_each_item_and_do_something_with_each} + +```php +handle_content_type(); + +?> + + + + Sample SimplePie Page + + + +
    +

    get_title(); ?>

    +

    get_description(); ?>

    +
    + + get_items() as $item): ?> + +
    +

    get_title(); ?>

    + get_description(); ?> +

    Posted on get_date('j F Y | g:i a'); ?>

    +
    + + + + + +``` + +## See Also {#see_also} + +- [SimplePie](@/wiki/reference/simplepie/_index.md) +- [get_link()](@/wiki/reference/simplepie/get_link.md) +- [get_links()](@/wiki/reference/simplepie/get_links.md) diff --git a/docs/content/wiki/reference/simplepie/get_title.md b/docs/content/wiki/reference/simplepie/get_title.md new file mode 100644 index 000000000..4de89f472 --- /dev/null +++ b/docs/content/wiki/reference/simplepie/get_title.md @@ -0,0 +1,35 @@ ++++ +title = "get_title()" ++++ + +## Description {#description} + +```php +class SimplePie { + get_title () +} +``` + +Returns the title of the feed. + +## Availability {#availability} + +- Available since SimplePie 1.0. +- Previously existed as `get_feed_title()` since SimplePie 0.8. + +## Examples {#examples} + +### Display the title {#display_the_title} + +```php +$feed = new SimplePie(); +$feed->set_feed_url('http://simplepie.org/blog/feed/'); +$feed->init(); +$feed->handle_content_type(); + +echo $feed->get_title(); +``` + +## See Also {#see_also} + +- [SimplePie](@/wiki/reference/simplepie/_index.md) diff --git a/docs/content/wiki/reference/simplepie/get_type.md b/docs/content/wiki/reference/simplepie/get_type.md new file mode 100644 index 000000000..b4999867e --- /dev/null +++ b/docs/content/wiki/reference/simplepie/get_type.md @@ -0,0 +1,85 @@ ++++ +title = "get_type()" ++++ + +## Description {#description} + +```php +class SimplePie { + get_type () +} +``` + +Returns the type of the feed. The type can be tested against using [bitwise operators](http://php.net/language.operators.bitwise). There are a number of constants available for matching types: + +- `SIMPLEPIE_TYPE_NONE` + Type is unknown. +- `SIMPLEPIE_TYPE_RSS_090` + Type is RSS 0.90. +- `SIMPLEPIE_TYPE_RSS_091_NETSCAPE` + Type is RSS 0.91 (Netscape). +- `SIMPLEPIE_TYPE_RSS_091_USERLAND` + Type is RSS 0.91 (Userland). +- `SIMPLEPIE_TYPE_RSS_091` + Type is RSS 0.91. +- `SIMPLEPIE_TYPE_RSS_092` + Type is RSS 0.92. +- `SIMPLEPIE_TYPE_RSS_093` + Type is RSS 0.93. +- `SIMPLEPIE_TYPE_RSS_094` + Type is RSS 0.94. +- `SIMPLEPIE_TYPE_RSS_10` + Type is RSS 1.0. +- `SIMPLEPIE_TYPE_RSS_20` + Type is RSS 2.0.x. +- `SIMPLEPIE_TYPE_RSS_RDF` + Type is RDF-based RSS. +- `SIMPLEPIE_TYPE_RSS_SYNDICATION` + Type is Non-RDF-based RSS (truly intended as syndication format). +- `SIMPLEPIE_TYPE_RSS_ALL` + Type is any version of RSS. +- `SIMPLEPIE_TYPE_ATOM_03` + Type is Atom 0.3. +- `SIMPLEPIE_TYPE_ATOM_10` + Type is Atom 1.0. +- `SIMPLEPIE_TYPE_ATOM_ALL` + Type is any version of Atom. +- `SIMPLEPIE_TYPE_ALL` + Type is any known/supported feed type. + +## Availability {#availability} + +- Available since SimplePie 0.8. +- Usage changed drastically in SimplePie 1.0. Constants are only available in SimplePie 1.0. + +## Examples {#examples} + +```php +$feed = new SimplePie(); +$feed->set_feed_url('http://simplepie.org/blog/feed/'); +$feed->init(); +$feed->handle_content_type(); + +echo 'Feed type is '; + +if ($feed->get_type() & SIMPLEPIE_TYPE_NONE) +{ + echo 'Unknown'; +} +elseif ($feed->get_type() & SIMPLEPIE_TYPE_RSS_ALL) +{ + echo 'RSS'; +} +elseif ($feed->get_type() & SIMPLEPIE_TYPE_ATOM_ALL) +{ + echo 'Atom'; +} +elseif ($feed->get_type() & SIMPLEPIE_TYPE_ALL) +{ + echo 'Supported'; +} +``` + +## See Also {#see_also} + +- [SimplePie](@/wiki/reference/simplepie/_index.md) diff --git a/docs/content/wiki/reference/simplepie/handle_content_type.md b/docs/content/wiki/reference/simplepie/handle_content_type.md new file mode 100644 index 000000000..659e477bd --- /dev/null +++ b/docs/content/wiki/reference/simplepie/handle_content_type.md @@ -0,0 +1,42 @@ ++++ +title = "handle_content_type()" ++++ + +## Description {#description} + +```php +class SimplePie { + handle_content_type ( [ $mime = 'text/html'] ) +} +``` + +This method ensures that the SimplePie-enabled page is being served with the correct [mime-type](http://www.iana.org/assignments/media-types/) and character encoding HTTP headers (character encoding determined by the [set_output_encoding()](@/wiki/reference/simplepie/set_output_encoding.md) config option). + +- [handle_content_type()](@/wiki/reference/simplepie/handle_content_type.md) won't work properly if any content or whitespace has already been sent to the browser, because it relies on PHP's [header()](http://php.net/header) function, and these are the circumstances under which the function works. +- Because it's setting these settings for the entire page (as is the nature of HTTP headers), this should only be used once per page (again, at the top). + +## Availability {#availability} + +- Available since SimplePie Beta 2. + +## Parameters {#parameters} + +### mime {#mime} + +The mime-type that the page should be served as. + +## Examples {#examples} + +### Serve out the correct HTTP headers for the page {#serve_out_the_correct_http_headers_for_the_page} + +```php +$feed = new SimplePie(); +$feed->set_feed_url('http://simplepie.org/blog/feed/'); +$feed->init(); +$feed->handle_content_type(); +echo $feed->get_title(); +``` + +## See Also {#see_also} + +- [SimplePie](@/wiki/reference/simplepie/_index.md) diff --git a/docs/content/wiki/reference/simplepie/init.md b/docs/content/wiki/reference/simplepie/init.md new file mode 100644 index 000000000..26f58e906 --- /dev/null +++ b/docs/content/wiki/reference/simplepie/init.md @@ -0,0 +1,26 @@ ++++ +title = "init()" ++++ + +## Description {#description} + +```php +class SimplePie { + init () +} +``` + +This is what makes everything happen. Period. This is where all of the configuration options get processed, feeds are fetched, cached, and parsed, and all of that other good stuff. This is called automatically if you pass a URL to the [SimplePie](@/wiki/reference/simplepie/_index.md) constructor. + +## Availability {#availability} + +- Available since SimplePie Preview Release. +- Previously existed as `simplepie()` since SimplePie 0.8. + +## Examples {#examples} + +- See the examples on the [SimplePie](@/wiki/reference/simplepie/_index.md) page (or pretty much any other page) for examples. + +## See Also {#see_also} + +- [SimplePie](@/wiki/reference/simplepie/_index.md) diff --git a/docs/content/wiki/reference/simplepie/merge_items.md b/docs/content/wiki/reference/simplepie/merge_items.md new file mode 100644 index 000000000..c44d7dd7a --- /dev/null +++ b/docs/content/wiki/reference/simplepie/merge_items.md @@ -0,0 +1,64 @@ ++++ +title = "merge_items()" ++++ + +## Description {#description} + +```php +class SimplePie { + merge_items ( array $objects, [int $start = 0], [int $length = 0]) +} +``` + +This method merges the items from multiple [SimplePie](@/wiki/reference/simplepie/_index.md) objects. + +
    + +**If you're merging multiple feeds together, they need to all have dates for the items or else PHP will sort them to the top.** + +
    + +## Availability {#availability} + +- Available since SimplePie 1.0. + +## Parameters {#parameters} + +### objects (required) {#objects_required} + +An array of [SimplePie](@/wiki/reference/simplepie/_index.md) objects. + +### start {#start} + +The number of the item you want to start at. Remember that arrays begin with `0`, not `1`. + +### length {#length} + +The number of items to return. `0` will return all. The `start` parameter is required if this is used. + +## Examples {#examples} + +### Set the feed URL to the SimplePie blog {#set_the_feed_url_to_the_simplepie_blog} + +```php +$digg = new SimplePie('http://digg.com/rss/index.xml'); + +$tuaw = new SimplePie(); +$tuaw->set_feed_url('http://feeds.tuaw.com/weblogsinc/tuaw'); +$tuaw->set_favicon_handler('handler_image.php'); +$tuaw->init(); + +$uneasy = new SimplePie('http://feeds.uneasysilence.com/uneasysilence/blog'); + +$merged = SimplePie::merge_items(array($digg, $tuaw, $uneasy)); + +header('Content-type:text/html; charset=utf-8'); + +$item = $merged[0]; +echo $item->get_title(); +``` + +## See Also {#see_also} + +- [SimplePie](@/wiki/reference/simplepie/_index.md) +- [Sort multiple feeds by time and date](@/wiki/tutorial/sort_multiple_feeds_by_time_and_date.md#if_feeds_require_separate_per-feed_settings "tutorial:sort_multiple_feeds_by_time_and_date") diff --git a/docs/content/wiki/reference/simplepie/remove_div.md b/docs/content/wiki/reference/simplepie/remove_div.md new file mode 100644 index 000000000..4ff1ed3ee --- /dev/null +++ b/docs/content/wiki/reference/simplepie/remove_div.md @@ -0,0 +1,45 @@ ++++ +title = "remove_div()" ++++ + +## Description {#description} + +```php +class SimplePie { + remove_div ( [bool $enable = true] ) +} +``` + +Remove the surrounding `
    ` from XHTML content in Atom feeds. This doesn't do anything for RSS feeds. + +## Availability {#availability} + +- Available since SimplePie Beta 2. + +## Parameters {#parameters} + +### enable {#enable} + +Enable/disable stripping of the surrounding \. + +## Examples {#examples} + +### Don't strip the \ {#don_t_strip_the_div} + +```php +$feed = new SimplePie(); +$feed->set_feed_url('http://simplepie.org/blog/feed/'); +$feed->remove_div(false); +$feed->init(); +$feed->handle_content_type(); +echo $feed->get_title(); +``` + +## See Also {#see_also} + + diff --git a/docs/content/wiki/reference/simplepie/sanitize.md b/docs/content/wiki/reference/simplepie/sanitize.md new file mode 100644 index 000000000..cc6c3e64a --- /dev/null +++ b/docs/content/wiki/reference/simplepie/sanitize.md @@ -0,0 +1,60 @@ ++++ +title = "sanitize()" ++++ + +## Description {#description} + +```php +class SimplePie { + sanitize ( mixed $data, integer $type, [ string $base = '' ] ) +} +``` + +Sanitizes the incoming data to ensure that it matches the type of data expected. Also absolutizes relative URLs, and a few other things to ensure the data is of the best quality. + +## Availability {#availability} + +- Available since SimplePie 1.0. + +## Parameters {#parameters} + +### data {#data} + +The data that needs to be sanitized. + +### type {#type} + +The type of data that it's supposed to be. + +- `SIMPLEPIE_CONSTRUCT_NONE` + No construct (:?: This could use a better description) +- `SIMPLEPIE_CONSTRUCT_TEXT` + Plain text content +- `SIMPLEPIE_CONSTRUCT_HTML` + HTML content +- `SIMPLEPIE_CONSTRUCT_XHTML` + XHTML content +- `SIMPLEPIE_CONSTRUCT_BASE64` + Base64 content +- `SIMPLEPIE_CONSTRUCT_IRI` + IRI content (e.g. URLs, URIs, etc.) +- `SIMPLEPIE_CONSTRUCT_MAYBE_HTML` + Might be HTML, so let's treat it as such. +- `SIMPLEPIE_CONSTRUCT_ALL` + All types of content + +### base {#base} + +The `xml:base` value to use when converting relative URLs to absolute ones. + +## Examples {#examples} + +### Sanitize the data as a URL {#sanitize_the_data_as_a_url} + +```php +$data = $feed->sanitize('http://simplepie.org/wiki/', SIMPLEPIE_CONSTRUCT_IRI); +``` + +## See Also {#see_also} + +- [SimplePie](@/wiki/reference/simplepie/_index.md) diff --git a/docs/content/wiki/reference/simplepie/set_author_class.md b/docs/content/wiki/reference/simplepie/set_author_class.md new file mode 100644 index 000000000..9b1c449e0 --- /dev/null +++ b/docs/content/wiki/reference/simplepie/set_author_class.md @@ -0,0 +1,90 @@ ++++ +title = "set_author_class()" ++++ + +## Description {#description} + +```php +class SimplePie { + set_author_class ( [string $class = 'SimplePie_Author'] ) +} +``` + +Allows you to add new methods or replace existing methods in the [SimplePie_Author](@/wiki/reference/simplepie_author/_index.md) class. + +Learn more about extending classes in PHP: + +- **PHP 4:** +- **PHP 5:** + +## Availability {#availability} + +- Available since SimplePie Beta 3. + +## Parameters {#parameters} + +### class {#class} + +The new class for SimplePie to use. + +## Examples {#examples} + +### Replace a method and add a method {#replace_a_method_and_add_a_method} + +```php +get_name()); + } +} + +// Let's do our standard SimplePie thing. +$feed = new SimplePie(); +$feed->set_feed_url('http://simplepie.org/blog/feed/'); +$feed->set_author_class('SimplePie_Author_Extras'); +$feed->init(); +$feed->handle_content_type(); +?> + + + + +get_items(0,5) as $item): ?> + +

    get_title()?>

    +

    get_date('j F Y, g:i a')?>

    +

    get_description()?>

    + +

    By + get_author()) + { + echo $author->get_name_backwards(); + } + + ?> +

    + +
    + + + + + +``` + +## See Also {#see_also} + +- [SimplePie](@/wiki/reference/simplepie/_index.md) +- [SimplePie_Author](@/wiki/reference/simplepie_author/_index.md) diff --git a/docs/content/wiki/reference/simplepie/set_autodiscovery_cache_duration.md b/docs/content/wiki/reference/simplepie/set_autodiscovery_cache_duration.md new file mode 100644 index 000000000..66dee6496 --- /dev/null +++ b/docs/content/wiki/reference/simplepie/set_autodiscovery_cache_duration.md @@ -0,0 +1,48 @@ ++++ +title = "set_autodiscovery_cache_duration()" ++++ + +## Description {#description} + +```php +class SimplePie { + set_autodiscovery_cache_duration ( [int $seconds = 604800] ) +} +``` + +Set the maximum time (in seconds) for which an autodiscovered feed URL will be cached. + +Works with autodiscovery along with [set_autodiscovery_level()](@/wiki/reference/simplepie/set_autodiscovery_level.md) and [set_max_checked_feeds()](@/wiki/reference/simplepie/set_max_checked_feeds.md). + +## Availability {#availability} + +- Available since SimplePie 1.0. + +## Parameters {#parameters} + +### seconds {#seconds} + +The number of seconds to cache for. Defaults to one week. + +## Examples {#examples} + +### Change the autodiscovery cache duration (not recommended) {#change_the_autodiscovery_cache_duration_not_recommended} + +```php +$feed = new SimplePie(); +$feed->set_feed_url('http://simplepie.org/blog/feed/'); +$feed->set_autodiscovery_cache_duration(1209600); // 2 weeks +$feed->init(); +$feed->handle_content_type(); +echo $feed->get_title(); +``` + +## See Also {#see_also} + + diff --git a/docs/content/wiki/reference/simplepie/set_autodiscovery_level.md b/docs/content/wiki/reference/simplepie/set_autodiscovery_level.md new file mode 100644 index 000000000..c3fcf78e2 --- /dev/null +++ b/docs/content/wiki/reference/simplepie/set_autodiscovery_level.md @@ -0,0 +1,64 @@ ++++ +title = "set_autodiscovery_level()" ++++ + +## Description {#description} + +```php +class SimplePie { + set_autodiscovery_level ( [int $level = SIMPLEPIE_LOCATOR_ALL] ) +} +``` + +Set how much feed autodiscovery to do. SimplePie's autodiscovery engine takes notes from Mark Pilgrim's [Ultra-liberal RSS Locator](http://web.archive.org/web/20110607232437/http://diveintomark.org/archives/2002/08/15/ultraliberal_rss_locator), points 1-6. These points are referenced below in the parameter section. + +Works with autodiscovery along with [set_max_checked_feeds()](@/wiki/reference/simplepie/set_max_checked_feeds.md) and [set_autodiscovery_cache_duration()](@/wiki/reference/simplepie/set_autodiscovery_cache_duration.md). + +## Availability {#availability} + +- Available since SimplePie 1.0. + +## Parameters {#parameters} + +### level {#level} + +Feed Autodiscovery Level (level can be a combination of the following constants, see [bitwise OR operator](http://us.php.net/manual/en/language.operators.bitwise.php)). + +- `SIMPLEPIE_LOCATOR_ALL` + All Feed Autodiscovery ([points 1-6](http://web.archive.org/web/20110607232437/http://diveintomark.org/archives/2002/08/15/ultraliberal_rss_locator)) +- `SIMPLEPIE_LOCATOR_AUTODISCOVERY` + Feed Link Element Autodiscovery ([point 2](http://web.archive.org/web/20110607232437/http://diveintomark.org/archives/2002/08/15/ultraliberal_rss_locator)) +- `SIMPLEPIE_LOCATOR_LOCAL_BODY` + Local Feed Body Autodiscovery ([point 3](http://web.archive.org/web/20110607232437/http://diveintomark.org/archives/2002/08/15/ultraliberal_rss_locator)) +- `SIMPLEPIE_LOCATOR_LOCAL_EXTENSION` + Local Feed Extension Autodiscovery ([points 4, 5](http://web.archive.org/web/20110607232437/http://diveintomark.org/archives/2002/08/15/ultraliberal_rss_locator)) +- `SIMPLEPIE_LOCATOR_REMOTE_BODY` + Remote Feed Body Autodiscovery ([point 6](http://web.archive.org/web/20110607232437/http://diveintomark.org/archives/2002/08/15/ultraliberal_rss_locator)) +- `SIMPLEPIE_LOCATOR_REMOTE_EXTENSION` + Remote Feed Extension Autodiscovery ([point 6](http://web.archive.org/web/20110607232437/http://diveintomark.org/archives/2002/08/15/ultraliberal_rss_locator)) +- `SIMPLEPIE_LOCATOR_NONE` + No Autodiscovery + +## Examples {#examples} + +### Disable feed autodiscovery {#disable_feed_autodiscovery} + +```php +$feed = new SimplePie(); +$feed->set_feed_url('http://simplepie.org/blog/feed/'); +$feed->set_autodiscovery_level(SIMPLEPIE_LOCATOR_NONE); +$feed->init(); +$feed->handle_content_type(); +echo $feed->get_title(); +``` + +## See Also {#see_also} + + diff --git a/docs/content/wiki/reference/simplepie/set_cache_class.md b/docs/content/wiki/reference/simplepie/set_cache_class.md new file mode 100644 index 000000000..002ec91d9 --- /dev/null +++ b/docs/content/wiki/reference/simplepie/set_cache_class.md @@ -0,0 +1,34 @@ ++++ +title = "set_cache_class()" ++++ + +## Description {#description} + +```php +class SimplePie { + set_cache_class ( [string $class = 'SimplePie_Cache'] ) +} +``` + +Allows you to add new methods or replace existing methods in the [SimplePie_Cache](@/wiki/reference/simplepie_cache/_index.md) class. + +Learn more about extending classes in PHP: + +- **PHP 4:** +- **PHP 5:** + +## Availability {#availability} + +- Available since SimplePie Beta 3. + +## Parameters {#parameters} + +### class {#class} + +The new class for SimplePie to use. + +## See Also {#see_also} + +- [SimplePie](@/wiki/reference/simplepie/_index.md) +- [SimplePie_Cache](@/wiki/reference/simplepie_cache/_index.md) +- [set_item_class()](@/wiki/reference/simplepie/set_item_class.md) diff --git a/docs/content/wiki/reference/simplepie/set_cache_duration.md b/docs/content/wiki/reference/simplepie/set_cache_duration.md new file mode 100644 index 000000000..8a9e41207 --- /dev/null +++ b/docs/content/wiki/reference/simplepie/set_cache_duration.md @@ -0,0 +1,49 @@ ++++ +title = "set_cache_duration()" ++++ + +## Description {#description} + +```php +class SimplePie { + set_cache_duration ( [int $seconds = 3600] ) +} +``` + +Set the minimum time (in seconds) for which a feed will be cached. + +## Availability {#availability} + +- Available since SimplePie 1.0. +- Previously existed as cache_max_minutes() since SimplePie Preview Release. + +## Parameters {#parameters} + +### seconds {#seconds} + +The number of seconds to cache for. `60` is 1 minute, `600` is 10 minutes, `900` is 15 minutes, `1800` is 30 minutes. + +## Examples {#examples} + +### Change the cache duration {#change_the_cache_duration} + +```php +$feed = new SimplePie(); +$feed->set_feed_url('http://simplepie.org/blog/feed/'); +$feed->set_cache_duration(1800); +$feed->init(); +$feed->handle_content_type(); +echo $feed->get_title(); +``` + +## See Also {#see_also} + + diff --git a/docs/content/wiki/reference/simplepie/set_cache_location.md b/docs/content/wiki/reference/simplepie/set_cache_location.md new file mode 100644 index 000000000..6c7f30866 --- /dev/null +++ b/docs/content/wiki/reference/simplepie/set_cache_location.md @@ -0,0 +1,66 @@ ++++ +title = "set_cache_location()" ++++ + +## Description {#description} + +```php +class SimplePie { + set_cache_location ( [string $location = './cache'] ) +} +``` + +Set the file system location (not WWW location) where the cache files should be written. + +## Availability {#availability} + +- Available since SimplePie 1.0. +- Previously existed as cache_location() since SimplePie Preview Release. + +## Parameters {#parameters} + +### location {#location} + +Set where the cache files should be stored. + +## Examples {#examples} + +### Change the cache location to http://domain.com/app/cache_files/ {#change_the_cache_location_to_httpdomaincomappcache_files} + +```php +$feed = new SimplePie(); +$feed->set_feed_url('http://simplepie.org/blog/feed/'); +$feed->set_cache_location($_SERVER['DOCUMENT_ROOT'] . '/app/cache_files'); +$feed->init(); +$feed->handle_content_type(); +echo $feed->get_title(); +``` + +### Set a database location {#set_a_database_location} + +
    + +**Unsupported!** We've enabled MySQL caching in an [experimental branch](http://svn.simplepie.org/simplepie/branches/db_caching/) that will be integrated into a future SimplePie release. If you're using that experimental branch, you can enable database caching as follows: + +
    + +```php +$feed = new SimplePie(); +$feed->set_feed_url('http://simplepie.org/blog/feed/'); +$feed->set_cache_location('mysql://username:password@hostname:port/database'); +$feed->init(); +$feed->handle_content_type(); +echo $feed->get_title(); +``` + +## See Also {#see_also} + + diff --git a/docs/content/wiki/reference/simplepie/set_cache_name_function.md b/docs/content/wiki/reference/simplepie/set_cache_name_function.md new file mode 100644 index 000000000..55e9c4f36 --- /dev/null +++ b/docs/content/wiki/reference/simplepie/set_cache_name_function.md @@ -0,0 +1,72 @@ ++++ +title = "set_cache_name_function()" ++++ + +## Description {#description} + +```php +class SimplePie { + set_cache_name_function ( [mixed $function = 'md5'] ) +} +``` + +Set the callback function to create cache filename with. + +Some operating systems (namely Windows) have filename length caps, and some feeds have a URL that is longer than that (eBay feeds, for example). By generating a shorter name, we not only protect the original URL, but we also avoid these types of filename errors. + +## Availability {#availability} + +- Available since SimplePie 1.0. +- Previously existed as set_cache_name_type() since SimplePie Beta 3. + +## Parameters {#parameters} + +### function {#function} + +Callback function for naming cache files. The following is a list of built-in PHP functions suited for this, although you are free to write your own and use it here. + +- **[sha1](http://php.net/sha1)** – Calculates the SHA1 hash using the [US Secure Hash Algorithm 1](http://www.faqs.org/rfcs/rfc3174). The hash is a 40-character hexadecimal number. +- **[md5](http://php.net/md5)** – Calculates the MD5 hash using the [MD5 Message-Digest Algorithm](http://www.faqs.org/rfcs/rfc1321). The hash is a 32-character hexadecimal number. +- **[crc32](http://php.net/crc32)** – Generates the cyclic redundancy checksum polynomial of 32-bit lengths. +- **[rawurlencode](http://php.net/rawurlencode)** – Encodes the given string according to [RFC 1738](http://www.faqs.org/rfcs/rfc1738). +- **[urlencode](http://php.net/urlencode)** – Returns a string in which all non-alphanumeric characters except -\_. have been replaced with a percent (%) sign followed by two hex digits and spaces encoded as plus (+) signs. + +## Examples {#examples} + +### Use SHA-1 to create cache filenames {#use_sha-1_to_create_cache_filenames} + +```php +$feed = new SimplePie(); +$feed->set_feed_url('http://simplepie.org/blog/feed/'); +$feed->set_cache_name_function('sha1'); +$feed->init(); +$feed->handle_content_type(); +echo $feed->get_title(); +``` + +### Use custom function to create cache filenames {#use_custom_function_to_create_cache_filenames} + +```php +function pig_latin($string) +{ + $piglatin = ''; + // Code to convert string to Pig Latin... + return $piglatin; +} + +$feed = new SimplePie(); +$feed->set_feed_url('http://simplepie.org/blog/feed/'); +$feed->set_cache_name_function('pig_latin'); +$feed->init(); +$feed->handle_content_type(); +echo $feed->get_title(); +``` + +## See Also {#see_also} + + diff --git a/docs/content/wiki/reference/simplepie/set_caption_class.md b/docs/content/wiki/reference/simplepie/set_caption_class.md new file mode 100644 index 000000000..d8e6ab1b9 --- /dev/null +++ b/docs/content/wiki/reference/simplepie/set_caption_class.md @@ -0,0 +1,34 @@ ++++ +title = "set_caption_class()" ++++ + +## Description {#description} + +```php +class SimplePie { + set_caption_class ( [string $class = 'SimplePie_Caption'] ) +} +``` + +Allows you to add new methods or replace existing methods in the [SimplePie_Caption](@/wiki/reference/simplepie_caption/_index.md) class. + +Learn more about extending classes in PHP: + +- **PHP 4:** +- **PHP 5:** + +## Availability {#availability} + +- Available since SimplePie 1.0. + +## Parameters {#parameters} + +### class {#class} + +The new class for SimplePie to use. + +## See Also {#see_also} + +- [SimplePie](@/wiki/reference/simplepie/_index.md) +- [SimplePie_Caption](@/wiki/reference/simplepie_caption/_index.md) +- [set_item_class()](@/wiki/reference/simplepie/set_item_class.md) diff --git a/docs/content/wiki/reference/simplepie/set_category_class.md b/docs/content/wiki/reference/simplepie/set_category_class.md new file mode 100644 index 000000000..b994f9154 --- /dev/null +++ b/docs/content/wiki/reference/simplepie/set_category_class.md @@ -0,0 +1,90 @@ ++++ +title = "set_category_class()" ++++ + +## Description {#description} + +```php +class SimplePie { + set_category_class ( [string $class = 'SimplePie_Category'] ) +} +``` + +Allows you to add new methods or replace existing methods in the [SimplePie_Category](@/wiki/reference/simplepie_category/_index.md) class. + +Learn more about extending classes in PHP: + +- **PHP 4:** +- **PHP 5:** + +## Availability {#availability} + +- Available since SimplePie 1.0. + +## Parameters {#parameters} + +### class {#class} + +The new class for SimplePie to use. + +## Examples {#examples} + +### Replace a method and add a method {#replace_a_method_and_add_a_method} + +```php +get_label()); + } +} + +// Let's do our standard SimplePie thing. +$feed = new SimplePie(); +$feed->set_feed_url('http://simplepie.org/blog/feed/'); +$feed->set_category_class('SimplePie_Category_Extras'); +$feed->init(); +$feed->handle_content_type(); +?> + + + + +get_items(0,5) as $item): ?> + +

    get_title()?>

    +

    get_date('j F Y, g:i a')?>

    +

    get_description()?>

    + +

    Category: + get_category()) + { + echo $category->get_label_backwards(); + } + + ?> +

    + +
    + + + + + +``` + +## See Also {#see_also} + +- [SimplePie](@/wiki/reference/simplepie/_index.md) +- [SimplePie_Category](@/wiki/reference/simplepie_category/_index.md) diff --git a/docs/content/wiki/reference/simplepie/set_content_type_sniffer_class.md b/docs/content/wiki/reference/simplepie/set_content_type_sniffer_class.md new file mode 100644 index 000000000..1ec58f2ea --- /dev/null +++ b/docs/content/wiki/reference/simplepie/set_content_type_sniffer_class.md @@ -0,0 +1,34 @@ ++++ +title = "set_content_type_sniffer_class()" ++++ + +## Description {#description} + +```php +class SimplePie { + set_content_type_sniffer_class ( [string $class = 'SimplePie_Content_Type_Sniffer'] ) +} +``` + +Allows you to add new methods or replace existing methods in the [SimplePie_Content_Type_Sniffer](@/wiki/reference/simplepie_content_type_sniffer/_index.md) class. + +Learn more about extending classes in PHP: + +- **PHP 4:** +- **PHP 5:** + +## Availability {#availability} + +- Available since SimplePie 1.1. + +## Parameters {#parameters} + +### class {#class} + +The new class for SimplePie to use. + +## See Also {#see_also} + +- [SimplePie](@/wiki/reference/simplepie/_index.md) +- [SimplePie_Content_Type_Sniffer](@/wiki/reference/simplepie_content_type_sniffer/_index.md) +- [set_item_class()](@/wiki/reference/simplepie/set_item_class.md) diff --git a/docs/content/wiki/reference/simplepie/set_copyright_class.md b/docs/content/wiki/reference/simplepie/set_copyright_class.md new file mode 100644 index 000000000..bdf3085c4 --- /dev/null +++ b/docs/content/wiki/reference/simplepie/set_copyright_class.md @@ -0,0 +1,34 @@ ++++ +title = "set_copyright_class()" ++++ + +## Description {#description} + +```php +class SimplePie { + set_copyright_class ( [string $class = 'SimplePie_Copyright'] ) +} +``` + +Allows you to add new methods or replace existing methods in the [SimplePie_Copyright](@/wiki/reference/simplepie_copyright/_index.md) class. + +Learn more about extending classes in PHP: + +- **PHP 4:** +- **PHP 5:** + +## Availability {#availability} + +- Available since SimplePie 1.0. + +## Parameters {#parameters} + +### class {#class} + +The new class for SimplePie to use. + +## See Also {#see_also} + +- [SimplePie](@/wiki/reference/simplepie/_index.md) +- [SimplePie_Copyright](@/wiki/reference/simplepie_copyright/_index.md) +- [set_item_class()](@/wiki/reference/simplepie/set_item_class.md) diff --git a/docs/content/wiki/reference/simplepie/set_credit_class.md b/docs/content/wiki/reference/simplepie/set_credit_class.md new file mode 100644 index 000000000..b6f8f1d5f --- /dev/null +++ b/docs/content/wiki/reference/simplepie/set_credit_class.md @@ -0,0 +1,34 @@ ++++ +title = "set_credit_class()" ++++ + +## Description {#description} + +```php +class SimplePie { + set_credit_class ( [string $class = 'SimplePie_Credit'] ) +} +``` + +Allows you to add new methods or replace existing methods in the [SimplePie_Credit](@/wiki/reference/simplepie_credit/_index.md) class. + +Learn more about extending classes in PHP: + +- **PHP 4:** +- **PHP 5:** + +## Availability {#availability} + +- Available since SimplePie 1.0. + +## Parameters {#parameters} + +### class {#class} + +The new class for SimplePie to use. + +## See Also {#see_also} + +- [SimplePie](@/wiki/reference/simplepie/_index.md) +- [SimplePie_Credit](@/wiki/reference/simplepie_credit/_index.md) +- [set_item_class()](@/wiki/reference/simplepie/set_item_class.md) diff --git a/docs/content/wiki/reference/simplepie/set_enclosure_class.md b/docs/content/wiki/reference/simplepie/set_enclosure_class.md new file mode 100644 index 000000000..89bbe3691 --- /dev/null +++ b/docs/content/wiki/reference/simplepie/set_enclosure_class.md @@ -0,0 +1,100 @@ ++++ +title = "set_enclosure_class()" ++++ + +## Description {#description} + +```php +class SimplePie { + set_enclosure_class ( [string $class = 'SimplePie_Enclosure'] ) +} +``` + +Allows you to add new methods or replace existing methods in the [SimplePie_Enclosure](@/wiki/reference/simplepie_enclosure/_index.md) class. + +Learn more about extending classes in PHP: + +- **PHP 4:** +- **PHP 5:** + +## Availability {#availability} + +- Available since SimplePie Beta 3. + +## Parameters {#parameters} + +### class {#class} + +The new class for SimplePie to use. + +## Examples {#examples} + +### Replace a method and add a method {#replace_a_method_and_add_a_method} + +```php +get_length(); + if (!empty($length)) + { + return round($length/1073741824, 2); + } + else + { + return null; + } + } +} + +// Let's do our standard SimplePie thing. +$feed = new SimplePie(); +$feed->set_feed_url('http://revision3.com/diggnation/feed/quicktime-large'); +$feed->set_enclosure_class('SimplePie_Enclosure_Extras'); +$feed->init(); +$feed->handle_content_type(); +?> + + + + +get_items(0,5) as $item): ?> + +

    get_title()?>

    +

    get_date('j F Y, g:i a')?>

    +

    get_description()?>

    + +
    + get_enclosure()) + { + echo $enclosure->native_embed(); + echo '

    Size is ' . $enclosure->get_size_gb() . ' GB

    '; + } + + ?> +
    + +
    + + + + + +``` + +## See Also {#see_also} + +- [SimplePie](@/wiki/reference/simplepie/_index.md) +- [SimplePie_Enclosure](@/wiki/reference/simplepie_enclosure/_index.md) diff --git a/docs/content/wiki/reference/simplepie/set_favicon_handler.md b/docs/content/wiki/reference/simplepie/set_favicon_handler.md new file mode 100644 index 000000000..a22cdc42b --- /dev/null +++ b/docs/content/wiki/reference/simplepie/set_favicon_handler.md @@ -0,0 +1,49 @@ ++++ +title = "set_favicon_handler()" ++++ + +## Description {#description} + +```php +class SimplePie { + set_favicon_handler ( [str $page = false], [$qs = 'i'] ) +} +``` + +Set the handler to enable the display of cached favicons. + +## Availability {#availability} + +- Available since SimplePie 1.0. + +## Parameters {#parameters} + +### page {#page} + +The file that will handle the rendering of the cached favicon. + +### qs {#qs} + +The query string that will be used for passing data to the file set in the page parameter. + +## Examples {#examples} + +### Set up the favicon handler {#set_up_the_favicon_handler} + +```php +$feed = new SimplePie(); +$feed->set_feed_url('http://simplepie.org/blog/feed/'); +$feed->set_favicon_handler('./handler_image.php', 'favicon'); // ./handler_image.php?favicon=/cache/XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX.spc +$feed->init(); +$feed->handle_content_type(); +echo $feed->get_title(); +``` + +## See Also {#see_also} + + diff --git a/docs/content/wiki/reference/simplepie/set_feed_url.md b/docs/content/wiki/reference/simplepie/set_feed_url.md new file mode 100644 index 000000000..ebd3274ac --- /dev/null +++ b/docs/content/wiki/reference/simplepie/set_feed_url.md @@ -0,0 +1,72 @@ ++++ +title = "set_feed_url()" ++++ + +## Description {#description} + +```php +class SimplePie { + set_feed_url ( mixed $feed_url ) +} +``` + +This sets the URL (or an array of URLs) that you want to parse. If there is not a feed at this location, auto-discovery is used unless it is disabled. Note that if you've already loaded the raw RSS data, you should use [set_raw_data()](@/wiki/reference/simplepie/set_raw_data.md). + +
    + +**There are differences between handling a single feed and merging feeds together with Multifeeds. Read [Typical Multifeed Gotchas](@/wiki/faq/typical_multifeed_gotchas.md) for notes on common issues.** + +
    + +## Availability {#availability} + +- Available since SimplePie 1.0. +- Previously existed as feed_url() since SimplePie Preview Release. + +## Parameters {#parameters} + +### feed_url (required) {#feed_url_required} + +Set the feed URL(s). + +## Examples {#examples} + +### Set the feed URL to the SimplePie blog {#set_the_feed_url_to_the_simplepie_blog} + +```php +$feed = new SimplePie(); +$feed->set_feed_url('http://simplepie.org/blog/feed/'); +$feed->init(); +$feed->handle_content_type(); +echo $feed->get_title(); +``` + +### Merge multiple feeds with the same config settings {#merge_multiple_feeds_with_the_same_config_settings} + +```php +$feed = new SimplePie(); +$feed->set_feed_url(array( + 'http://newsrss.bbc.co.uk/rss/newsonline_world_edition/front_page/rss.xml', + 'http://rss.news.yahoo.com/rss/topstories', + 'http://news.google.com/?output=atom', + 'http://rss.slashdot.org/Slashdot/slashdot', + 'http://rss.cnn.com/rss/cnn_topstories.rss', + 'http://www.newsvine.com/_feeds/rss2/index' +)); +$feed->init(); +$feed->handle_content_type(); +echo $feed->get_title(); +``` + +There is also an alternate syntax discussed in [SimplePie](@/wiki/reference/simplepie/_index.md). + +## See Also {#see_also} + + diff --git a/docs/content/wiki/reference/simplepie/set_file.md b/docs/content/wiki/reference/simplepie/set_file.md new file mode 100644 index 000000000..b40702af9 --- /dev/null +++ b/docs/content/wiki/reference/simplepie/set_file.md @@ -0,0 +1,52 @@ ++++ +title = "set_file()" ++++ + +## Description {#description} + +```php +class SimplePie { + set_file ( object &$file ) +} +``` + +Allows you to use [SimplePie_File](@/wiki/reference/simplepie_file/_index.md) in a custom way, then use [set_file()](@/wiki/reference/simplepie/set_file.md) to tell SimplePie to use it. + +
    + +**NOTE:** If you pass a feed to SimplePie this way, SimplePie doesn't do any caching. You'll need to manage caching yourself. + +
    + +## Availability {#availability} + +- Available since SimplePie 1.0. + +## Parameters {#parameters} + +### file {#file} + +An instance of the [SimplePie_File](@/wiki/reference/simplepie_file/_index.md) object. + +## Examples {#examples} + +### Use a custom instance of the SimplePie_File object {#use_a_custom_instance_of_the_simplepie_file_object} + +```php +$file = new SimplePie_File('http://simplepie.org/blog/feed/'); + +$feed = new SimplePie(); +$feed->set_file($file); +$feed->init(); +$feed->handle_content_type(); +echo $feed->get_title(); +``` + +## See Also {#see_also} + + diff --git a/docs/content/wiki/reference/simplepie/set_file_class.md b/docs/content/wiki/reference/simplepie/set_file_class.md new file mode 100644 index 000000000..ba74c8da7 --- /dev/null +++ b/docs/content/wiki/reference/simplepie/set_file_class.md @@ -0,0 +1,34 @@ ++++ +title = "set_file_class()" ++++ + +## Description {#description} + +```php +class SimplePie { + set_file_class ( [string $class = 'SimplePie_File'] ) +} +``` + +Allows you to add new methods or replace existing methods in the [SimplePie_File](@/wiki/reference/simplepie_file/_index.md) class. + +Learn more about extending classes in PHP: + +- **PHP 4:** +- **PHP 5:** + +## Availability {#availability} + +- Available since SimplePie Beta 3. + +## Parameters {#parameters} + +### class {#class} + +The new class for SimplePie to use. + +## See Also {#see_also} + +- [SimplePie](@/wiki/reference/simplepie/_index.md) +- [SimplePie_File](@/wiki/reference/simplepie_file/_index.md) +- [set_item_class()](@/wiki/reference/simplepie/set_item_class.md) diff --git a/docs/content/wiki/reference/simplepie/set_image_handler.md b/docs/content/wiki/reference/simplepie/set_image_handler.md new file mode 100644 index 000000000..c3c6c6fa5 --- /dev/null +++ b/docs/content/wiki/reference/simplepie/set_image_handler.md @@ -0,0 +1,52 @@ ++++ +title = "set_image_handler()" ++++ + +## Description {#description} + +```php +class SimplePie { + set_image_handler ( [str $page = false], [$qs = 'i'] ) +} +``` + +Set the handler to enable the display of cached images. Setting [set_image_handler()](@/wiki/reference/simplepie/set_image_handler.md) tells SimplePie (a) to cache them in the first place, and (b) the file that will be used to read them back from the cache and display them. + +## Availability {#availability} + +- Available since SimplePie 1.0. + +## Parameters {#parameters} + +### page {#page} + +The file that will handle the rendering of the cached images. + +### qs {#qs} + +The query string that will be used for passing data to the file set in the page parameter. + +## Examples {#examples} + +### Set up the image handler {#set_up_the_image_handler} + +```php +$feed = new SimplePie(); +$feed->set_feed_url('http://simplepie.org/blog/feed/'); +$feed->set_image_handler('handler_image.php', 'image'); // handler_image.php?image=67d5fa9a87bad230fb03ea68b9f71090 +$feed->init(); +$feed->handle_content_type(); +echo $feed->get_title(); +``` + +## See Also {#see_also} + + diff --git a/docs/content/wiki/reference/simplepie/set_input_encoding.md b/docs/content/wiki/reference/simplepie/set_input_encoding.md new file mode 100644 index 000000000..7d42f0217 --- /dev/null +++ b/docs/content/wiki/reference/simplepie/set_input_encoding.md @@ -0,0 +1,49 @@ ++++ +title = "set_input_encoding()" ++++ + +## Description {#description} + +```php +class SimplePie { + set_input_encoding ( [string $encoding = false] ) +} +``` + +Allows you to override the character encoding of the feed. This is only useful for times when the feed is reporting an incorrect character encoding (as per [RFC 3023](http://www.faqs.org/rfcs/rfc3023.html) and [Determining the character encoding of a feed](http://diveintomark.org/archives/2004/02/13/xml-media-types)). This setting is similar to [set_output_encoding()](@/wiki/reference/simplepie/set_output_encoding.md). + +The number of supported character encodings depends on whether your web host supports [mbstring](http://php.net/mbstring), [iconv](http://php.net/iconv), or both. See [Supported Character Encodings](@/wiki/faq/supported_character_encodings.md) for more information. + +## Availability {#availability} + +- Available since SimplePie 1.0. +- Previously existed as input_encoding() since Beta 3. + +## Parameters {#parameters} + +### encoding {#encoding} + +The character encoding to use instead of allowing SimplePie to auto-detect it. + +## Examples {#examples} + +### Override a feed's input {#override_a_feed_s_input} + +```php +$feed = new SimplePie(); +$feed->set_feed_url('http://nurapt.kaist.ac.kr/~jamaica/htmls/blog/rss.php'); +$feed->set_input_encoding('EUC-KR'); +$feed->init(); +$feed->handle_content_type(); +echo $feed->get_title(); +``` + +## See Also {#see_also} + + diff --git a/docs/content/wiki/reference/simplepie/set_item_class.md b/docs/content/wiki/reference/simplepie/set_item_class.md new file mode 100644 index 000000000..3b9801983 --- /dev/null +++ b/docs/content/wiki/reference/simplepie/set_item_class.md @@ -0,0 +1,107 @@ ++++ +title = "set_item_class()" ++++ + +## Description {#description} + +```php +class SimplePie { + set_item_class ( [string $class = 'SimplePie_Item'] ) +} +``` + +Allows you to add new methods or replace existing methods in the [SimplePie_Item](@/wiki/reference/simplepie_item/_index.md) class. + +Learn more about extending classes in PHP: + +- **PHP 4:** +- **PHP 5:** + +## Availability {#availability} + +- Available since SimplePie Beta 3. + +## Parameters {#parameters} + +### class {#class} + +The new class for SimplePie to use. + +## Examples {#examples} + +### Replace a method and add a method {#replace_a_method_and_add_a_method} + +```php + value. + function get_gcal_starttime($format = false) + { + // We want to grab the Google-namespaced tag. + // http://simplepie.org/wiki/tutorial/grab_custom_tags_or_attributes + $when = $this->get_item_tags('http://schemas.google.com/g/2005', 'when'); + + // Once we grab the tag, let's grab the startTime attribute + $date = $when[0]['attribs']['']['startTime']; + + if ($format) + { + // Let's pass it through strtotime() and then format it with date(). This will be the date we display. + return date($format, strtotime($date)); + } + else + { + // Otherwise we'll return it as-is with no modifications. + return $date; + } + } + + /** + This is an example of modifying an existing method of an existing class. + */ + + function get_id() + { + return $this->__toString(); + } + +} + +// Let's do our standard SimplePie thing. +$feed = new SimplePie(); +$feed->set_feed_url('http://www.google.com/calendar/feeds/eventi%40emmealcubo.com/public/full'); +$feed->set_item_class('SimplePie_Item_Extras'); +$feed->init(); +$feed->handle_content_type(); +?> + + + + +get_items(0,5) as $item): ?> + +

    get_title()?>

    +

    get_date('j F Y, g:i a')?>

    +

    get_description()?>

    +

    Starts on get_gcal_starttime('j F Y')?>

    +

    GUID: get_id()?>

    +
    + + + + + +``` + +## See Also {#see_also} + +- [SimplePie](@/wiki/reference/simplepie/_index.md) +- [SimplePie_Item](@/wiki/reference/simplepie_item/_index.md) diff --git a/docs/content/wiki/reference/simplepie/set_item_limit.md b/docs/content/wiki/reference/simplepie/set_item_limit.md new file mode 100644 index 000000000..bc9a8dc05 --- /dev/null +++ b/docs/content/wiki/reference/simplepie/set_item_limit.md @@ -0,0 +1,45 @@ ++++ +title = "set_item_limit()" ++++ + +## Description {#description} + +```php +class SimplePie { + set_item_limit ( [int $limit = 0] ) +} +``` + +Set the maximum number of items to return per feed with Multifeeds. This is NOT for limiting the number of items to loop through in a single feed. For that, you want to pass `$start` and `$length` parameters to [get_items()](@/wiki/reference/simplepie/get_items.md) + +## Availability {#availability} + +- Available since SimplePie 1.1. + +## Parameters {#parameters} + +### limit {#limit} + +The maximum number of items. + +## Examples {#examples} + +### Set the max number of items per feed to return with Multifeeds {#set_the_max_number_of_items_per_feed_to_return_with_multifeeds} + +```php +$feed = new SimplePie(); +$feed->set_feed_url(array('http://simplepie.org/blog/feed/', 'http://images.apple.com/main/rss/hotnews/hotnews.rss')); +$feed->set_item_limit(5); +$feed->init(); +$feed->handle_content_type(); +echo $feed->get_title(); +``` + +## See Also {#see_also} + + diff --git a/docs/content/wiki/reference/simplepie/set_javascript.md b/docs/content/wiki/reference/simplepie/set_javascript.md new file mode 100644 index 000000000..8f8e4288b --- /dev/null +++ b/docs/content/wiki/reference/simplepie/set_javascript.md @@ -0,0 +1,45 @@ ++++ +title = "set_javascript()" ++++ + +## Description {#description} + +```php +class SimplePie { + set_javascript ( [mixed $get = 'js'] ) +} +``` + +Set the query string that triggers SimplePie to generate the JavaScript code for embedding media files. + +## Availability {#availability} + +- Available since SimplePie 1.0. + +## Parameters {#parameters} + +### get {#get} + +The query string to use. + +## Examples {#examples} + +### Change the query string {#change_the_query_string} + +```php +$feed = new SimplePie(); +$feed->set_feed_url('http://simplepie.org/blog/feed/'); +$feed->set_javascript('embed'); // Will load when $enclosure->embed() is called. +$feed->init(); +$feed->handle_content_type(); +echo $feed->get_title(); +``` + +## See Also {#see_also} + + diff --git a/docs/content/wiki/reference/simplepie/set_locator_class.md b/docs/content/wiki/reference/simplepie/set_locator_class.md new file mode 100644 index 000000000..7b0662b55 --- /dev/null +++ b/docs/content/wiki/reference/simplepie/set_locator_class.md @@ -0,0 +1,34 @@ ++++ +title = "set_locator_class()" ++++ + +## Description {#description} + +```php +class SimplePie { + set_locator_class ( [string $class = 'SimplePie_Locator'] ) +} +``` + +Allows you to add new methods or replace existing methods in the [SimplePie_Locator](@/wiki/reference/simplepie_locator/_index.md) class. + +Learn more about extending classes in PHP: + +- **PHP 4:** +- **PHP 5:** + +## Availability {#availability} + +- Available since SimplePie Beta 3. + +## Parameters {#parameters} + +### class {#class} + +The new class for SimplePie to use. + +## See Also {#see_also} + +- [SimplePie](@/wiki/reference/simplepie/_index.md) +- [SimplePie_Locator](@/wiki/reference/simplepie_locator/_index.md) +- [set_item_class()](@/wiki/reference/simplepie/set_item_class.md) diff --git a/docs/content/wiki/reference/simplepie/set_max_checked_feeds.md b/docs/content/wiki/reference/simplepie/set_max_checked_feeds.md new file mode 100644 index 000000000..74457492f --- /dev/null +++ b/docs/content/wiki/reference/simplepie/set_max_checked_feeds.md @@ -0,0 +1,49 @@ ++++ +title = "set_max_checked_feeds()" ++++ + +## Description {#description} + +```php +class SimplePie { + set_max_checked_feeds ( [int $max = 10] ) +} +``` + +This tells SimplePie's ultra-liberal feed locator how many URLs to check for feeds. If a site is obviously feed-enabled, and SimplePie isn't picking up the feed, you can try increasing this value. On the other hand, keeping this value lower prevents things like a runaway script when it encounters a 404 page with a hundred non-feed links on it. + +Works with autodiscovery along with [set_autodiscovery_level()](@/wiki/reference/simplepie/set_autodiscovery_level.md) and [set_autodiscovery_cache_duration()](@/wiki/reference/simplepie/set_autodiscovery_cache_duration.md). + +## Availability {#availability} + +- Available since SimplePie 1.0. + +## Parameters {#parameters} + +### max {#max} + +The maximum number of URLs to check for feeds. + +## Examples {#examples} + +### Increase the number of URLs to check {#increase_the_number_of_urls_to_check} + +```php +$feed = new SimplePie(); +$feed->set_feed_url('http://simplepie.org/blog/feed/'); +$feed->set_max_checked_feeds(20); +$feed->init(); +$feed->handle_content_type(); +echo $feed->get_title(); +``` + +## See Also {#see_also} + + diff --git a/docs/content/wiki/reference/simplepie/set_output_encoding.md b/docs/content/wiki/reference/simplepie/set_output_encoding.md new file mode 100644 index 000000000..85745f73e --- /dev/null +++ b/docs/content/wiki/reference/simplepie/set_output_encoding.md @@ -0,0 +1,53 @@ ++++ +title = "set_output_encoding()" ++++ + +## Description {#description} + +```php +class SimplePie { + set_output_encoding ( [string $encoding = 'UTF-8'] ) +} +``` + +Allows you to override SimplePie's output to match that of your webpage. This is useful for times when your webpages are not being served as `UTF-8`. This setting will be obeyed by [handle_content_type()](@/wiki/reference/simplepie/handle_content_type.md), and is similar to [set_input_encoding()](@/wiki/reference/simplepie/set_input_encoding.md). + +It should be noted, however, that not all character encodings can support all characters. If your page is being served as `ISO-8859-1` and you try to display a Japanese feed, you'll likely see garbled characters. Because of this, it is highly recommended to ensure that your webpages are served as `UTF-8`. + +The number of supported character encodings depends on whether your web host supports [mbstring](http://php.net/mbstring), [iconv](http://php.net/iconv), or both. See [Supported Character Encodings](@/wiki/faq/supported_character_encodings.md) for more information. + +## Availability {#availability} + +- Available since SimplePie 1.0. +- Previously existed as output_encoding() since Beta 3. + +## Parameters {#parameters} + +### encoding {#encoding} + +The character encoding to serve SimplePie's output as. + +## Examples {#examples} + +### Override SimplePie's output {#override_simplepie_s_output} + +```php +$feed = new SimplePie(); +$feed->set_feed_url('http://simplepie.org/blog/feed/'); +$feed->set_output_encoding('Windows-1252'); +$feed->init(); +$feed->handle_content_type(); +echo $feed->get_title(); +``` + +## See Also {#see_also} + + diff --git a/docs/content/wiki/reference/simplepie/set_parser_class.md b/docs/content/wiki/reference/simplepie/set_parser_class.md new file mode 100644 index 000000000..d5c6afb1e --- /dev/null +++ b/docs/content/wiki/reference/simplepie/set_parser_class.md @@ -0,0 +1,34 @@ ++++ +title = "set_parser_class()" ++++ + +## Description {#description} + +```php +class SimplePie { + set_parser_class ( [string $class = 'SimplePie_Parser'] ) +} +``` + +Allows you to add new methods or replace existing methods in the [SimplePie_Parser](@/wiki/reference/simplepie_parser/_index.md) class. + +Learn more about extending classes in PHP: + +- **PHP 4:** +- **PHP 5:** + +## Availability {#availability} + +- Available since SimplePie Beta 3. + +## Parameters {#parameters} + +### class {#class} + +The new class for SimplePie to use. + +## See Also {#see_also} + +- [SimplePie](@/wiki/reference/simplepie/_index.md) +- [SimplePie_Parser](@/wiki/reference/simplepie_parser/_index.md) +- [set_item_class()](@/wiki/reference/simplepie/set_item_class.md) diff --git a/docs/content/wiki/reference/simplepie/set_rating_class.md b/docs/content/wiki/reference/simplepie/set_rating_class.md new file mode 100644 index 000000000..b46ffea75 --- /dev/null +++ b/docs/content/wiki/reference/simplepie/set_rating_class.md @@ -0,0 +1,34 @@ ++++ +title = "set_rating_class()" ++++ + +## Description {#description} + +```php +class SimplePie { + set_rating_class ( [string $class = 'SimplePie_Rating'] ) +} +``` + +Allows you to add new methods or replace existing methods in the [SimplePie_Rating](@/wiki/reference/simplepie_rating/_index.md) class. + +Learn more about extending classes in PHP: + +- **PHP 4:** +- **PHP 5:** + +## Availability {#availability} + +- Available since SimplePie 1.0. + +## Parameters {#parameters} + +### class {#class} + +The new class for SimplePie to use. + +## See Also {#see_also} + +- [SimplePie](@/wiki/reference/simplepie/_index.md) +- [SimplePie_Rating](@/wiki/reference/simplepie_rating/_index.md) +- [set_item_class()](@/wiki/reference/simplepie/set_item_class.md) diff --git a/docs/content/wiki/reference/simplepie/set_raw_data.md b/docs/content/wiki/reference/simplepie/set_raw_data.md new file mode 100644 index 000000000..abc9094fa --- /dev/null +++ b/docs/content/wiki/reference/simplepie/set_raw_data.md @@ -0,0 +1,79 @@ ++++ +title = "set_raw_data()" ++++ + +## Description {#description} + +```php +class SimplePie { + set_raw_data ( string $data ) +} +``` + +Allows you to use a string of RSS/Atom data instead of a remote feed. If you have a feed available as a string in PHP, you can tell SimplePie to parse that data string instead of a remote feed. Any set feed URL takes precedence. + +
    + +**NOTE:** If you pass a feed to SimplePie this way, SimplePie doesn't do any caching. You'll need to manage caching yourself. + +
    + +## Availability {#availability} + +- Available since SimplePie Beta 3. + +## Parameters {#parameters} + +### data (required) {#data_required} + +A string of RSS/Atom data. + +## Examples {#examples} + +### Use raw feed data {#use_raw_feed_data} + +```php +/* +Add raw Atom data to a PHP string using heredoc syntax +http://www.php.net/manual/en/language.types.string.php#language.types.string.syntax.heredoc +Sample feed from http://www.w3.org/2001/sw/grddl-wg/td/atom-grddl.xml +*/ +$atom = << + + + Example Feed + + 2003-12-13T18:30:02Z + + John Doe + + urn:uuid:60a76c80-d399-11d9-b93C-0003939e0af6 + + + Atom-Powered Robots Run Amok + + urn:uuid:1225c695-cfb8-4ebb-aaaa-80da344efa6a + 2003-12-13T18:30:02Z + Some text. + + +EOT; + +$feed = new SimplePie(); +$feed->set_raw_data($atom); +$feed->init(); +$feed->handle_content_type(); +echo $feed->get_title(); +``` + +## See Also {#see_also} + + diff --git a/docs/content/wiki/reference/simplepie/set_restriction_class.md b/docs/content/wiki/reference/simplepie/set_restriction_class.md new file mode 100644 index 000000000..0fb9789f4 --- /dev/null +++ b/docs/content/wiki/reference/simplepie/set_restriction_class.md @@ -0,0 +1,34 @@ ++++ +title = "set_restriction_class()" ++++ + +## Description {#description} + +```php +class SimplePie { + set_restriction_class ( [string $class = 'SimplePie_Restriction'] ) +} +``` + +Allows you to add new methods or replace existing methods in the [SimplePie_Restriction](@/wiki/reference/simplepie_restriction/_index.md) class. + +Learn more about extending classes in PHP: + +- **PHP 4:** +- **PHP 5:** + +## Availability {#availability} + +- Available since SimplePie 1.0. + +## Parameters {#parameters} + +### class {#class} + +The new class for SimplePie to use. + +## See Also {#see_also} + +- [SimplePie](@/wiki/reference/simplepie/_index.md) +- [SimplePie_Restriction](@/wiki/reference/simplepie_restriction/_index.md) +- [set_item_class()](@/wiki/reference/simplepie/set_item_class.md) diff --git a/docs/content/wiki/reference/simplepie/set_sanitize_class.md b/docs/content/wiki/reference/simplepie/set_sanitize_class.md new file mode 100644 index 000000000..b3392a6b0 --- /dev/null +++ b/docs/content/wiki/reference/simplepie/set_sanitize_class.md @@ -0,0 +1,34 @@ ++++ +title = "set_sanitize_class()" ++++ + +## Description {#description} + +```php +class SimplePie { + set_sanitize_class ( [string $class = 'SimplePie_Sanitize'] ) +} +``` + +Allows you to add new methods or replace existing methods in the [SimplePie_Sanitize](@/wiki/reference/simplepie_sanitize/_index.md) class. + +Learn more about extending classes in PHP: + +- **PHP 4:** +- **PHP 5:** + +## Availability {#availability} + +- Available since SimplePie Beta 3. + +## Parameters {#parameters} + +### class {#class} + +The new class for SimplePie to use. + +## See Also {#see_also} + +- [SimplePie](@/wiki/reference/simplepie/_index.md) +- [SimplePie_Sanitize](@/wiki/reference/simplepie_sanitize/_index.md) +- [set_item_class()](@/wiki/reference/simplepie/set_item_class.md) diff --git a/docs/content/wiki/reference/simplepie/set_source_class.md b/docs/content/wiki/reference/simplepie/set_source_class.md new file mode 100644 index 000000000..876ae3f24 --- /dev/null +++ b/docs/content/wiki/reference/simplepie/set_source_class.md @@ -0,0 +1,34 @@ ++++ +title = "set_source_class()" ++++ + +## Description {#description} + +```php +class SimplePie { + set_source_class ( [string $class = 'SimplePie_Source'] ) +} +``` + +Allows you to add new methods or replace existing methods in the [SimplePie_Source](@/wiki/reference/simplepie_source/_index.md) class. + +Learn more about extending classes in PHP: + +- **PHP 4:** +- **PHP 5:** + +## Availability {#availability} + +- Available since SimplePie 1.1. + +## Parameters {#parameters} + +### class {#class} + +The new class for SimplePie to use. + +## See Also {#see_also} + +- [SimplePie](@/wiki/reference/simplepie/_index.md) +- [SimplePie_Source](@/wiki/reference/simplepie_source/_index.md) +- [set_item_class()](@/wiki/reference/simplepie/set_item_class.md) diff --git a/docs/content/wiki/reference/simplepie/set_stupidly_fast.md b/docs/content/wiki/reference/simplepie/set_stupidly_fast.md new file mode 100644 index 000000000..98338a763 --- /dev/null +++ b/docs/content/wiki/reference/simplepie/set_stupidly_fast.md @@ -0,0 +1,86 @@ ++++ +title = "set_stupidly_fast()" ++++ + +## Description {#description} + +```php +class SimplePie { + set_stupidly_fast ( [bool $set = false] ) +} +``` + +Set options to make SimplePie as fast as possible. Forgoes a substantial amount of data sanitization in favor of speed, namely disabling [enable_order_by_date()](@/wiki/reference/simplepie/enable_order_by_date.md), [remove_div()](@/wiki/reference/simplepie/remove_div.md), [strip_comments()](@/wiki/reference/simplepie/strip_comments.md), [strip_htmltags()](@/wiki/reference/simplepie/strip_htmltags.md), [strip_attributes()](@/wiki/reference/simplepie/strip_attributes.md), and [set_image_handler()](@/wiki/reference/simplepie/set_image_handler.md). + +
    + +SimplePie protects against malicious feeds by sanitizing the data. If you don't trust the feeds that you're parsing, you should do your own data sanitization to avoid security issues. If you DO trust the feeds you're parsing, this shouldn't be an issue. + +
    + +## Availability {#availability} + +- Available since SimplePie 1.0. + +## Parameters {#parameters} + +### set {#set} + +Whether to trade data cleanliness for raw speed. + +## Examples {#examples} + +### Enable "Stupidly Fast" mode {#enable_stupidly_fast_mode} + +```php +$feed = new SimplePie(); +$feed->set_feed_url('http://simplepie.org/blog/feed/'); +$feed->set_stupidly_fast(true); +$feed->init(); +$feed->handle_content_type(); +echo $feed->get_title(); +``` + +### Equivalent individual settings as set_stupidly_fast() {#equivalent_individual_settings_as_set_stupidly_fast} + +```php +$feed = new SimplePie(); +$feed->set_feed_url('http://simplepie.org/blog/feed/'); + +// All of the things that set_stupidly_fast() sets automatically. +$feed->enable_order_by_date(false); +$feed->remove_div(false); +$feed->strip_comments(false); +$feed->strip_htmltags(false); +$feed->strip_attributes(false); +$feed->set_image_handler(false); + +$feed->init(); +$feed->handle_content_type(); +echo $feed->get_title(); +``` + +### Override a specific setting from set_stupidly_fast() {#override_a_specific_setting_from_set_stupidly_fast} + +```php +$feed = new SimplePie(); +$feed->set_feed_url('http://simplepie.org/blog/feed/'); + +// Set set_stupidly_fast(), then override one of the settings. +$feed->set_stupidly_fast(true); +$feed->enable_order_by_date(true); + +$feed->init(); +$feed->handle_content_type(); +echo $feed->get_title(); +``` + +## See Also {#see_also} + + diff --git a/docs/content/wiki/reference/simplepie/set_timeout.md b/docs/content/wiki/reference/simplepie/set_timeout.md new file mode 100644 index 000000000..4dbbdee88 --- /dev/null +++ b/docs/content/wiki/reference/simplepie/set_timeout.md @@ -0,0 +1,44 @@ ++++ +title = "set_timeout()" ++++ + +## Description {#description} + +```php +class SimplePie { + set_timeout ( [int $timeout = 10] ) +} +``` + +Allows you to override the maximum amount of time spent waiting for the remote feed's server to respond and send the feed back so that we can begin processing it. + +## Availability {#availability} + +- Available since SimplePie Beta 3. + +## Parameters {#parameters} + +### timeout {#timeout} + +Number of seconds to wait for the remote server before giving up. + +## Examples {#examples} + +### Wait for 30 seconds {#wait_for_30_seconds} + +```php +$feed = new SimplePie(); +$feed->set_feed_url('http://simplepie.org/blog/feed/'); +$feed->set_timeout(30); +$feed->init(); +$feed->handle_content_type(); +echo $feed->get_title(); +``` + +## See Also {#see_also} + + diff --git a/docs/content/wiki/reference/simplepie/set_url_replacements.md b/docs/content/wiki/reference/simplepie/set_url_replacements.md new file mode 100644 index 000000000..ef65e165e --- /dev/null +++ b/docs/content/wiki/reference/simplepie/set_url_replacements.md @@ -0,0 +1,44 @@ ++++ +title = "set_url_replacements()" ++++ + +## Description {#description} + +```php +class SimplePie { + set_url_replacements ( [array $element_attribute = array('blockquote' => 'cite', 'ins' => 'cite', 'del' => 'cite', 'a' => 'href', 'q' => 'cite', 'img' => 'src', 'img' => 'longdesc', 'area' => 'href', 'form' => 'action', 'input' => 'src')] ) +} +``` + +Set element/attribute key/value pairs of HTML attributes containing URLs that need to be resolved relative to the feed. + +## Availability {#availability} + +- Available since SimplePie 1.0. + +## Parameters {#parameters} + +### element_attribute {#element_attribute} + +Element/attribute key/value pairs. + +## Examples {#examples} + +### Limit the URL fixing to only links and images. {#limit_the_url_fixing_to_only_links_and_images} + +```php +$feed = new SimplePie(); +$feed->set_feed_url('http://simplepie.org/blog/feed/'); +$feed->set_url_replacements(array('a' => 'href', 'img' => 'src')); +$feed->init(); +$feed->handle_content_type(); +echo $feed->get_title(); +``` + +## See Also {#see_also} + + diff --git a/docs/content/wiki/reference/simplepie/set_useragent.md b/docs/content/wiki/reference/simplepie/set_useragent.md new file mode 100644 index 000000000..89810756a --- /dev/null +++ b/docs/content/wiki/reference/simplepie/set_useragent.md @@ -0,0 +1,46 @@ ++++ +title = "set_useragent()" ++++ + +## Description {#description} + +```php +class SimplePie { + set_useragent ( [string $ua = SIMPLEPIE_USERAGENT] ) +} +``` + +Allows you to override the [user agent string](http://en.wikipedia.org/wiki/User_agent) that SimplePie sends to the remote server. This value is passed directly to [SimplePie_File](@/wiki/reference/simplepie_file/_index.md). + +## Availability {#availability} + +- Available since SimplePie 1.0. + +## Parameters {#parameters} + +### ua {#ua} + +A new user agent string for SimplePie to use. Defaults to [SIMPLEPIE_USERAGENT](@/wiki/reference/simplepie/simplepie_useragent.md). + +## Examples {#examples} + +### Prepend 'Mozilla/4.0' to the existing user agent string {#prepend_mozilla40_to_the_existing_user_agent_string} + +```php +$feed = new SimplePie(); +$feed->set_feed_url('http://simplepie.org/blog/feed/'); +$feed->set_useragent('Mozilla/4.0 '.SIMPLEPIE_USERAGENT); +$feed->init(); +$feed->handle_content_type(); +echo $feed->get_title(); +``` + +## See Also {#see_also} + + diff --git a/docs/content/wiki/reference/simplepie/simplepie_build.md b/docs/content/wiki/reference/simplepie/simplepie_build.md new file mode 100644 index 000000000..f779f8b04 --- /dev/null +++ b/docs/content/wiki/reference/simplepie/simplepie_build.md @@ -0,0 +1,31 @@ ++++ +title = "SIMPLEPIE_BUILD" ++++ + +## Description {#description} + +```text +YYYYMMDDHHMMSS +``` + +Defines SimplePie's build ID. + +## Availability {#availability} + +Available from SimplePie 0.92-0.96; Since SimplePie 1.0 + +## Examples {#examples} + +```php +echo 'This is ' . SIMPLEPIE_NAME . ', build ' . SIMPLEPIE_BUILD; +``` + +## See Also {#see_also} + + diff --git a/docs/content/wiki/reference/simplepie/simplepie_linkback.md b/docs/content/wiki/reference/simplepie/simplepie_linkback.md new file mode 100644 index 000000000..0b89606f8 --- /dev/null +++ b/docs/content/wiki/reference/simplepie/simplepie_linkback.md @@ -0,0 +1,27 @@ ++++ +title = "SIMPLEPIE_LINKBACK" ++++ + +## Description {#description} + +Defines the URL for linking back to SimplePie's website. + +## Availability {#availability} + +Available from SimplePie 0.92-0.96; Since SimplePie 1.0 + +## Examples {#examples} + +```php +echo 'Powered by ' . SIMPLEPIE_LINKBACK; +``` + +## See Also {#see_also} + + diff --git a/docs/content/wiki/reference/simplepie/simplepie_name.md b/docs/content/wiki/reference/simplepie/simplepie_name.md new file mode 100644 index 000000000..9f40588c2 --- /dev/null +++ b/docs/content/wiki/reference/simplepie/simplepie_name.md @@ -0,0 +1,27 @@ ++++ +title = "SIMPLEPIE_NAME" ++++ + +## Description {#description} + +Defines SimplePie's name. + +## Availability {#availability} + +Available from SimplePie 0.92-0.96; Since SimplePie 1.0 + +## Examples {#examples} + +```php +echo 'This is ' . SIMPLEPIE_NAME . ', build ' . SIMPLEPIE_BUILD; +``` + +## See Also {#see_also} + + diff --git a/docs/content/wiki/reference/simplepie/simplepie_url.md b/docs/content/wiki/reference/simplepie/simplepie_url.md new file mode 100644 index 000000000..60158a6e8 --- /dev/null +++ b/docs/content/wiki/reference/simplepie/simplepie_url.md @@ -0,0 +1,27 @@ ++++ +title = "SIMPLEPIE_URL" ++++ + +## Description {#description} + +Defines SimplePie's home page URL. + +## Availability {#availability} + +Available from SimplePie 0.92-0.96; Since SimplePie 1.0 + +## Examples {#examples} + +```php +echo 'Check out SimplePie over at ' . SIMPLEPIE_URL . ''; +``` + +## See Also {#see_also} + + diff --git a/docs/content/wiki/reference/simplepie/simplepie_useragent.md b/docs/content/wiki/reference/simplepie/simplepie_useragent.md new file mode 100644 index 000000000..72be9e399 --- /dev/null +++ b/docs/content/wiki/reference/simplepie/simplepie_useragent.md @@ -0,0 +1,34 @@ ++++ +title = "SIMPLEPIE_USERAGENT" ++++ + +## Description {#description} + +```text +[SIMPLEPIE_NAME]/[SIMPLEPIE_VERSION] (Feed Parser; [SIMPLEPIE_URL]; Allow like Gecko) Build/[SIMPLEPIE_BUILD] +SimplePie/Razzleberry++ (Feed Parser; http://simplepie.org; Allow like Gecko) Build/20070521000000 +SimplePie/1.0 (Feed Parser; http://simplepie.org; Allow like Gecko) Build/20070601000000 +``` + +Defines SimplePie's default user agent string. Used as the default value for [set_useragent()](@/wiki/reference/simplepie/set_useragent.md). + +## Availability {#availability} + +Available from SimplePie 0.92-0.96; Since SimplePie 1.0 + +## Examples {#examples} + +```php +echo SIMPLEPIE_USERAGENT; +``` + +## See Also {#see_also} + + diff --git a/docs/content/wiki/reference/simplepie/simplepie_version.md b/docs/content/wiki/reference/simplepie/simplepie_version.md new file mode 100644 index 000000000..9b48ea63f --- /dev/null +++ b/docs/content/wiki/reference/simplepie/simplepie_version.md @@ -0,0 +1,27 @@ ++++ +title = "SIMPLEPIE_VERSION" ++++ + +## Description {#description} + +Defines SimplePie's version. + +## Availability {#availability} + +Available from SimplePie 0.92-0.96; Since SimplePie 1.0 + +## Examples {#examples} + +```php +echo 'Running SimplePie ' . SIMPLEPIE_VERSION; +``` + +## See Also {#see_also} + + diff --git a/docs/content/wiki/reference/simplepie/sort_items.md b/docs/content/wiki/reference/simplepie/sort_items.md new file mode 100644 index 000000000..f33349925 --- /dev/null +++ b/docs/content/wiki/reference/simplepie/sort_items.md @@ -0,0 +1,77 @@ ++++ +title = "sort_items()" ++++ + +## Description {#description} + +```php +class SimplePie { + sort_items ( mixed $a, mixed $b) +} +``` + +This method is used exclusively as the user-defined function for PHP's usort() function. This is used for sorting items by a certain criteria, namely by date. If you would prefer to change the sorting criteria, you can simply extend the [SimplePie](@/wiki/reference/simplepie/_index.md) class and override this method. You should never need to call this function directly. + +Learn more about extending classes in PHP: + +- **PHP 4:** +- **PHP 5:** + +## Availability {#availability} + +- Available since SimplePie 1.0. + +## Parameters {#parameters} + +### a {#a} + +A reference to the first item to sort. + +### b {#b} + +A reference to the second item to sort. + +## Examples {#examples} + +### Sort items by number of characters in the title, shortest first {#sort_items_by_number_of_characters_in_the_title_shortest_first} + +```php +get_title()) >= strlen($b->get_title()); + } +} + +// Let's do our standard SimplePie thing. +$feed = new SimplePie_Custom_Sort(); +$feed->set_feed_url('http://simplepie.org/blog/feed/'); +$feed->init(); +$feed->handle_content_type(); +?> + + + + +get_items(0,5) as $item): ?> + +

    get_title()?>

    +

    get_date('j F Y, g:i a')?>

    +

    get_description()?>

    + +
    + + + + + +``` + +## See Also {#see_also} + +- [SimplePie](@/wiki/reference/simplepie/_index.md) diff --git a/docs/content/wiki/reference/simplepie/strip_attributes.md b/docs/content/wiki/reference/simplepie/strip_attributes.md new file mode 100644 index 000000000..d65988951 --- /dev/null +++ b/docs/content/wiki/reference/simplepie/strip_attributes.md @@ -0,0 +1,69 @@ ++++ +title = "strip_attributes()" ++++ + +## Description {#description} + +```php +class SimplePie { + strip_attributes ( [$attribs = array('bgsound', 'class', 'expr', 'id', 'style', 'onclick', 'onerror', 'onfinish', 'onmouseover', 'onmouseout', 'onfocus', 'onblur', 'lowsrc', 'dynsrc')] ) +} +``` + +Set which attributes get stripped from an entry's content. + +The default set of attributes is stored in the _property_ SimplePie→strip_attributes, not to be confused with the _method_ SimplePie→strip_attributes(). This way, you can modify the existing list without having to create a whole new one. + +## Availability {#availability} + +- Available since SimplePie Beta 2. + +## Parameters {#parameters} + +### attribs {#attribs} + +An array of the attributes you want to strip. + +## Examples {#examples} + +### Don't strip any attributes (not recommended) {#don_t_strip_any_attributes_not_recommended} + +```php +$feed = new SimplePie(); +$feed->set_feed_url('http://simplepie.org/blog/feed/'); +$feed->strip_attributes(false); +$feed->init(); +$feed->handle_content_type(); +echo $feed->get_title(); +``` + +### Strip only ''src'', ''alt'', and ''title'' {#strip_only_src_alt_and_title} + +```php +$feed = new SimplePie(); +$feed->set_feed_url('http://simplepie.org/blog/feed/'); +$feed->strip_attributes(array('src', 'alt', 'title')); +$feed->init(); +$feed->handle_content_type(); +echo $feed->get_title(); +``` + +### Add ''src'', ''alt'', and ''title'' to the default list {#add_src_alt_and_title_to_the_default_list} + +```php +$feed = new SimplePie(); +$feed->set_feed_url('http://simplepie.org/blog/feed/'); +$feed->strip_attributes(array_merge($feed->strip_attributes, array('src', 'alt', 'title'))); +$feed->init(); +$feed->handle_content_type(); +echo $feed->get_title(); +``` + +## See Also {#see_also} + + diff --git a/docs/content/wiki/reference/simplepie/strip_comments.md b/docs/content/wiki/reference/simplepie/strip_comments.md new file mode 100644 index 000000000..1485a7ac8 --- /dev/null +++ b/docs/content/wiki/reference/simplepie/strip_comments.md @@ -0,0 +1,46 @@ ++++ +title = "strip_comments()" ++++ + +## Description {#description} + +```php +class SimplePie { + strip_comments ( [ $strip = false] ) +} +``` + +Set whether to strip out HTML comments from an entry's content. + +## Availability {#availability} + +- Available since SimplePie 1.0. + +## Parameters {#parameters} + +### strip {#strip} + +Enable/disable the stripping of HTML comments. + +## Examples {#examples} + +### Enable comment stripping {#enable_comment_stripping} + +```php +$feed = new SimplePie(); +$feed->set_feed_url('http://simplepie.org/blog/feed/'); +$feed->strip_comments(true); +$feed->init(); +$feed->handle_content_type(); +echo $feed->get_title(); +``` + +## See Also {#see_also} + + diff --git a/docs/content/wiki/reference/simplepie/strip_htmltags.md b/docs/content/wiki/reference/simplepie/strip_htmltags.md new file mode 100644 index 000000000..01854e267 --- /dev/null +++ b/docs/content/wiki/reference/simplepie/strip_htmltags.md @@ -0,0 +1,97 @@ ++++ +title = "strip_htmltags()" ++++ + +## Description {#description} + +```php +class SimplePie { + strip_htmltags ( [$tags = array('base', 'blink', 'body', 'doctype', 'embed', 'font', 'form', 'frame', 'frameset', 'html', 'iframe', 'input', 'marquee', 'meta', 'noscript', 'object', 'param', 'script', 'style')] ) +} +``` + +Set which HTML tags get stripped from an entry's content. + +The default set of tags is stored in the _property_ SimplePie→strip_htmltags, not to be confused with the _method_ SimplePie→strip_htmltags(). This way, you can modify the existing list without having to create a whole new one. + +## Availability {#availability} + +- Available since SimplePie Beta 2. + +## Parameters {#parameters} + +### tags {#tags} + +An array of the HTML tags you want to strip. + +## Examples {#examples} + +### Don't strip any tags (not recommended) {#don_t_strip_any_tags_not_recommended} + +This code will prevent ANY HTML tags from being stripped from the feed content. This is potentially unsafe, so we do not recommend it. + +```php +$feed = new SimplePie(); +$feed->set_feed_url('http://simplepie.org/blog/feed/'); +$feed->strip_htmltags(false); +$feed->init(); +$feed->handle_content_type(); +echo $feed->get_title(); +``` + +### Strip only blink, font, and marquee {#strip_only_blink_font_and_marquee} + +This will ONLY strip out `blink`, `font`, and `marquee` tags, and will allow all other tags to be displayed. + +```php +$feed = new SimplePie(); +$feed->set_feed_url('http://simplepie.org/blog/feed/'); +$feed->strip_htmltags(array('blink', 'font', 'marquee')); +$feed->init(); +$feed->handle_content_type(); +echo $feed->get_title(); +``` + +### Add h1, a, and img to the default list {#add_h1_a_and_img_to_the_default_list} + +This will take the existing list of tags to strip out by default (stored in the `$feed→strip_htmltags` variable), and add `h1`, `a`, and `img` to that list so that these tags are also stripped out by default. + +```php +$feed = new SimplePie(); +$feed->set_feed_url('http://simplepie.org/blog/feed/'); +$feed->strip_htmltags(array_merge($feed->strip_htmltags, array('h1', 'a', 'img'))); +$feed->init(); +$feed->handle_content_type(); +echo $feed->get_title(); +``` + +### Remove object, param, and embed from the default list {#remove_object_param_and_embed_from_the_default_list} + +This will take the existing list of tags to strip out by default (stored in the `$feed→strip_htmltags` variable), and remove `object`, `param`, and `embed` from that list so that these tags are NOT stripped out by default. + +```php +$feed = new SimplePie(); +$feed->set_feed_url('http://simplepie.org/blog/feed/'); + +// Remove these tags from the list +$strip_htmltags = $feed->strip_htmltags; +array_splice($strip_htmltags, array_search('object', $strip_htmltags), 1); +array_splice($strip_htmltags, array_search('param', $strip_htmltags), 1); +array_splice($strip_htmltags, array_search('embed', $strip_htmltags), 1); + +$feed->strip_htmltags($strip_htmltags); + +$feed->init(); +$feed->handle_content_type(); +echo $feed->get_title(); +``` + +## See Also {#see_also} + + diff --git a/docs/content/wiki/reference/simplepie/subscribe_aol.md b/docs/content/wiki/reference/simplepie/subscribe_aol.md new file mode 100644 index 000000000..028a79f3f --- /dev/null +++ b/docs/content/wiki/reference/simplepie/subscribe_aol.md @@ -0,0 +1,32 @@ ++++ +title = "subscribe_aol()" ++++ + +## Description {#description} + +```php +class SimplePie { + subscribe_aol () +} +``` + +Returns the URL for adding this particular feed to the [My AOL](http://about.aol.com/myaol) service. + +## Availability {#availability} + +- Available since SimplePie Beta 1. + +## Examples {#examples} + +```php +$feed = new SimplePie(); +$feed->set_feed_url('http://simplepie.org/blog/feed/'); +$feed->init(); +$feed->handle_content_type(); + +echo 'Subscribe in My AOL'; +``` + +## See Also {#see_also} + +- [SimplePie](@/wiki/reference/simplepie/_index.md) diff --git a/docs/content/wiki/reference/simplepie/subscribe_bloglines.md b/docs/content/wiki/reference/simplepie/subscribe_bloglines.md new file mode 100644 index 000000000..ee5c58b36 --- /dev/null +++ b/docs/content/wiki/reference/simplepie/subscribe_bloglines.md @@ -0,0 +1,32 @@ ++++ +title = "subscribe_bloglines()" ++++ + +## Description {#description} + +```php +class SimplePie { + subscribe_bloglines () +} +``` + +Returns the URL for adding this particular feed to the [Bloglines](http://www.bloglines.com/) service. + +## Availability {#availability} + +- Available since SimplePie Preview Release. + +## Examples {#examples} + +```php +$feed = new SimplePie(); +$feed->set_feed_url('http://simplepie.org/blog/feed/'); +$feed->init(); +$feed->handle_content_type(); + +echo 'Subscribe in Bloglines'; +``` + +## See Also {#see_also} + +- [SimplePie](@/wiki/reference/simplepie/_index.md) diff --git a/docs/content/wiki/reference/simplepie/subscribe_eskobo.md b/docs/content/wiki/reference/simplepie/subscribe_eskobo.md new file mode 100644 index 000000000..44e33cd50 --- /dev/null +++ b/docs/content/wiki/reference/simplepie/subscribe_eskobo.md @@ -0,0 +1,32 @@ ++++ +title = "subscribe_eskobo()" ++++ + +## Description {#description} + +```php +class SimplePie { + subscribe_eskobo () +} +``` + +Returns the URL for adding this particular feed to the [Eskobo](http://www.eskobo.com/) service. + +## Availability {#availability} + +- Available since SimplePie Beta 3. + +## Examples {#examples} + +```php +$feed = new SimplePie(); +$feed->set_feed_url('http://simplepie.org/blog/feed/'); +$feed->init(); +$feed->handle_content_type(); + +echo 'Subscribe in Eskobo'; +``` + +## See Also {#see_also} + +- [SimplePie](@/wiki/reference/simplepie/_index.md) diff --git a/docs/content/wiki/reference/simplepie/subscribe_feed.md b/docs/content/wiki/reference/simplepie/subscribe_feed.md new file mode 100644 index 000000000..b221a4067 --- /dev/null +++ b/docs/content/wiki/reference/simplepie/subscribe_feed.md @@ -0,0 +1,13 @@ ++++ +title = "subscribe_feed()" ++++ + +## Description {#description} + +```php +class SimplePie { + subscribe_feed () +} +``` + +Returns the URL for the feed, prepended with the `feed: pseudo-protocol. Useful for subscribing with desktop-based aggregators. ===== Availability ===== * Available since SimplePie Preview Release. * Previously existed as `get_feedproto_url()'' since SimplePie 0.8. ===== Examples ===== \$feed = new SimplePie(); $feed→set_feed_url('[http://simplepie.org/blog/feed/](/blog/feed/ "http://simplepie.org/blog/feed/")'); $feed→init(); $feed→handle_content_type(); echo '\Subscribe to this feed in your desktop aggregator\'; \ ===== See Also ===== \* [SimplePie](@/wiki/reference/simplepie/_index.md) diff --git a/docs/content/wiki/reference/simplepie/subscribe_feedfeeds.md b/docs/content/wiki/reference/simplepie/subscribe_feedfeeds.md new file mode 100644 index 000000000..7eed4d55d --- /dev/null +++ b/docs/content/wiki/reference/simplepie/subscribe_feedfeeds.md @@ -0,0 +1,32 @@ ++++ +title = "subscribe_feedfeeds()" ++++ + +## Description {#description} + +```php +class SimplePie { + subscribe_feedfeeds () +} +``` + +Returns the URL for adding this particular feed to the [FeedFeeds](http://www.feedfeeds.com/) service. + +## Availability {#availability} + +- Available since SimplePie Beta 3. + +## Examples {#examples} + +```php +$feed = new SimplePie(); +$feed->set_feed_url('http://simplepie.org/blog/feed/'); +$feed->init(); +$feed->handle_content_type(); + +echo 'Subscribe in FeedFeeds'; +``` + +## See Also {#see_also} + +- [SimplePie](@/wiki/reference/simplepie/_index.md) diff --git a/docs/content/wiki/reference/simplepie/subscribe_feedster.md b/docs/content/wiki/reference/simplepie/subscribe_feedster.md new file mode 100644 index 000000000..c3abbd515 --- /dev/null +++ b/docs/content/wiki/reference/simplepie/subscribe_feedster.md @@ -0,0 +1,32 @@ ++++ +title = "subscribe_feedster()" ++++ + +## Description {#description} + +```php +class SimplePie { + subscribe_feedster () +} +``` + +Returns the URL for adding this particular feed to the [Feedster](http://www.feedster.com/) service. + +## Availability {#availability} + +- Available since SimplePie Beta 3. + +## Examples {#examples} + +```php +$feed = new SimplePie(); +$feed->set_feed_url('http://simplepie.org/blog/feed/'); +$feed->init(); +$feed->handle_content_type(); + +echo 'Subscribe in Feedster'; +``` + +## See Also {#see_also} + +- [SimplePie](@/wiki/reference/simplepie/_index.md) diff --git a/docs/content/wiki/reference/simplepie/subscribe_google.md b/docs/content/wiki/reference/simplepie/subscribe_google.md new file mode 100644 index 000000000..9f3e7bf31 --- /dev/null +++ b/docs/content/wiki/reference/simplepie/subscribe_google.md @@ -0,0 +1,32 @@ ++++ +title = "subscribe_google()" ++++ + +## Description {#description} + +```php +class SimplePie { + subscribe_google () +} +``` + +Returns the URL for adding this particular feed to the [Google Reader](http://reader.google.com/) service. + +## Availability {#availability} + +- Available since SimplePie Preview Release. + +## Examples {#examples} + +```php +$feed = new SimplePie(); +$feed->set_feed_url('http://simplepie.org/blog/feed/'); +$feed->init(); +$feed->handle_content_type(); + +echo 'Subscribe in Google Reader'; +``` + +## See Also {#see_also} + +- [SimplePie](@/wiki/reference/simplepie/_index.md) diff --git a/docs/content/wiki/reference/simplepie/subscribe_gritwire.md b/docs/content/wiki/reference/simplepie/subscribe_gritwire.md new file mode 100644 index 000000000..469afa7ed --- /dev/null +++ b/docs/content/wiki/reference/simplepie/subscribe_gritwire.md @@ -0,0 +1,32 @@ ++++ +title = "subscribe_gritwire()" ++++ + +## Description {#description} + +```php +class SimplePie { + subscribe_gritwire () +} +``` + +Returns the URL for adding this particular feed to the [Gritwire](http://gritwire.com/) service. + +## Availability {#availability} + +- Available since SimplePie Beta 3. + +## Examples {#examples} + +```php +$feed = new SimplePie(); +$feed->set_feed_url('http://simplepie.org/blog/feed/'); +$feed->init(); +$feed->handle_content_type(); + +echo 'Subscribe in Gritwire'; +``` + +## See Also {#see_also} + +- [SimplePie](@/wiki/reference/simplepie/_index.md) diff --git a/docs/content/wiki/reference/simplepie/subscribe_itunes.md b/docs/content/wiki/reference/simplepie/subscribe_itunes.md new file mode 100644 index 000000000..e7d52b9f1 --- /dev/null +++ b/docs/content/wiki/reference/simplepie/subscribe_itunes.md @@ -0,0 +1,13 @@ ++++ +title = "subscribe_itunes()" ++++ + +## Description {#description} + +```php +class SimplePie { + subscribe_itunes () +} +``` + +Returns the URL for the feed, prepended with the `itpc:'' pseudo-protocol. Useful for subscribing to podcasts in iTunes. ===== Availability ===== * Available since SimplePie 1.0. ===== Examples ===== $feed = new SimplePie(); $feed→set_feed_url('http://simplepie.org/blog/feed/'); $feed→init(); $feed→handle_content_type(); echo 'Subscribe to this feed in iTunes'; ===== See Also ===== * SimplePie` diff --git a/docs/content/wiki/reference/simplepie/subscribe_msn.md b/docs/content/wiki/reference/simplepie/subscribe_msn.md new file mode 100644 index 000000000..5f3c78869 --- /dev/null +++ b/docs/content/wiki/reference/simplepie/subscribe_msn.md @@ -0,0 +1,32 @@ ++++ +title = "subscribe_msn()" ++++ + +## Description {#description} + +```php +class SimplePie { + subscribe_msn () +} +``` + +Returns the URL for adding this particular feed to the [My MSN](http://my.msn.com/) service. + +## Availability {#availability} + +- Available since SimplePie Beta 1. + +## Examples {#examples} + +```php +$feed = new SimplePie(); +$feed->set_feed_url('http://simplepie.org/blog/feed/'); +$feed->init(); +$feed->handle_content_type(); + +echo 'Subscribe in My MSN'; +``` + +## See Also {#see_also} + +- [SimplePie](@/wiki/reference/simplepie/_index.md) diff --git a/docs/content/wiki/reference/simplepie/subscribe_netvibes.md b/docs/content/wiki/reference/simplepie/subscribe_netvibes.md new file mode 100644 index 000000000..53215e578 --- /dev/null +++ b/docs/content/wiki/reference/simplepie/subscribe_netvibes.md @@ -0,0 +1,32 @@ ++++ +title = "subscribe_netvibes()" ++++ + +## Description {#description} + +```php +class SimplePie { + subscribe_netvibes () +} +``` + +Returns the URL for adding this particular feed to the [Netvibes](http://netvibes.com/) service. + +## Availability {#availability} + +- Available since SimplePie Beta 2. + +## Examples {#examples} + +```php +$feed = new SimplePie(); +$feed->set_feed_url('http://simplepie.org/blog/feed/'); +$feed->init(); +$feed->handle_content_type(); + +echo 'Subscribe in Netvibes'; +``` + +## See Also {#see_also} + +- [SimplePie](@/wiki/reference/simplepie/_index.md) diff --git a/docs/content/wiki/reference/simplepie/subscribe_newsburst.md b/docs/content/wiki/reference/simplepie/subscribe_newsburst.md new file mode 100644 index 000000000..df2f25e33 --- /dev/null +++ b/docs/content/wiki/reference/simplepie/subscribe_newsburst.md @@ -0,0 +1,32 @@ ++++ +title = "subscribe_newsburst()" ++++ + +## Description {#description} + +```php +class SimplePie { + subscribe_newsburst () +} +``` + +Returns the URL for adding this particular feed to the [Newsburst](http://newsburst.com/) service. + +## Availability {#availability} + +- Available since SimplePie Beta 1. + +## Examples {#examples} + +```php +$feed = new SimplePie(); +$feed->set_feed_url('http://simplepie.org/blog/feed/'); +$feed->init(); +$feed->handle_content_type(); + +echo 'Subscribe in Newsburst'; +``` + +## See Also {#see_also} + +- [SimplePie](@/wiki/reference/simplepie/_index.md) diff --git a/docs/content/wiki/reference/simplepie/subscribe_newsgator.md b/docs/content/wiki/reference/simplepie/subscribe_newsgator.md new file mode 100644 index 000000000..216d1f43a --- /dev/null +++ b/docs/content/wiki/reference/simplepie/subscribe_newsgator.md @@ -0,0 +1,32 @@ ++++ +title = "subscribe_newsgator()" ++++ + +## Description {#description} + +```php +class SimplePie { + subscribe_newsgator () +} +``` + +Returns the URL for adding this particular feed to the [Newsgator](http://newsgator.com/) service. Remember that Newsgator accounts can sync with your [FeedDemon](http://www.newsgator.com/Individuals/FeedDemon/) and [NetNewsWire](http://www.newsgator.com/Individuals/NetNewsWire/) aggregators. + +## Availability {#availability} + +- Available since SimplePie Preview Release. + +## Examples {#examples} + +```php +$feed = new SimplePie(); +$feed->set_feed_url('http://simplepie.org/blog/feed/'); +$feed->init(); +$feed->handle_content_type(); + +echo 'Subscribe in Newsgator'; +``` + +## See Also {#see_also} + +- [SimplePie](@/wiki/reference/simplepie/_index.md) diff --git a/docs/content/wiki/reference/simplepie/subscribe_odeo.md b/docs/content/wiki/reference/simplepie/subscribe_odeo.md new file mode 100644 index 000000000..e97d1771d --- /dev/null +++ b/docs/content/wiki/reference/simplepie/subscribe_odeo.md @@ -0,0 +1,32 @@ ++++ +title = "subscribe_odeo()" ++++ + +## Description {#description} + +```php +class SimplePie { + subscribe_odeo () +} +``` + +Returns the URL for adding this particular feed to the [Odeo](http://odeo.com/) service. + +## Availability {#availability} + +- Available since SimplePie Beta 1. + +## Examples {#examples} + +```php +$feed = new SimplePie(); +$feed->set_feed_url('http://simplepie.org/blog/feed/'); +$feed->init(); +$feed->handle_content_type(); + +echo 'Subscribe in Odeo'; +``` + +## See Also {#see_also} + +- [SimplePie](@/wiki/reference/simplepie/_index.md) diff --git a/docs/content/wiki/reference/simplepie/subscribe_outlook.md b/docs/content/wiki/reference/simplepie/subscribe_outlook.md new file mode 100644 index 000000000..c0d45a26a --- /dev/null +++ b/docs/content/wiki/reference/simplepie/subscribe_outlook.md @@ -0,0 +1,13 @@ ++++ +title = "subscribe_outlook()" ++++ + +## Description {#description} + +```php +class SimplePie { + subscribe_outlook () +} +``` + +Returns the URL for the feed, prepended with the `outlook:'' pseudo-protocol. Useful for subscribing with Microsoft Outlook 2007. ===== Availability ===== * Available since SimplePie Beta 3. ===== Examples ===== $feed = new SimplePie(); $feed→set_feed_url('http://simplepie.org/blog/feed/'); $feed→init(); $feed→handle_content_type(); echo 'Subscribe to this feed in Microsoft Outlook 2007'; ===== See Also ===== * SimplePie` diff --git a/docs/content/wiki/reference/simplepie/subscribe_podcast.md b/docs/content/wiki/reference/simplepie/subscribe_podcast.md new file mode 100644 index 000000000..59e4179fa --- /dev/null +++ b/docs/content/wiki/reference/simplepie/subscribe_podcast.md @@ -0,0 +1,13 @@ ++++ +title = "subscribe_podcast()" ++++ + +## Description {#description} + +```php +class SimplePie { + subscribe_podcast () +} +``` + +Returns the URL for the feed, prepended with the `podcast:'' pseudo-protocol. Useful for subscribing with desktop-based podcast applications. ===== Availability ===== * Available since SimplePie Beta 2. ===== Examples ===== $feed = new SimplePie(); $feed→set_feed_url('http://simplepie.org/blog/feed/'); $feed→init(); $feed→handle_content_type(); echo 'Subscribe to this feed in your desktop podcast application'; ===== See Also ===== * SimplePie` diff --git a/docs/content/wiki/reference/simplepie/subscribe_podnova.md b/docs/content/wiki/reference/simplepie/subscribe_podnova.md new file mode 100644 index 000000000..d0f06f538 --- /dev/null +++ b/docs/content/wiki/reference/simplepie/subscribe_podnova.md @@ -0,0 +1,32 @@ ++++ +title = "subscribe_podnova()" ++++ + +## Description {#description} + +```php +class SimplePie { + subscribe_podnova () +} +``` + +Returns the URL for adding this particular feed to the [Podnova](http://podnova.com/) service. + +## Availability {#availability} + +- Available since SimplePie Beta 1. + +## Examples {#examples} + +```php +$feed = new SimplePie(); +$feed->set_feed_url('http://simplepie.org/blog/feed/'); +$feed->init(); +$feed->handle_content_type(); + +echo 'Subscribe in Podnova'; +``` + +## See Also {#see_also} + +- [SimplePie](@/wiki/reference/simplepie/_index.md) diff --git a/docs/content/wiki/reference/simplepie/subscribe_rojo.md b/docs/content/wiki/reference/simplepie/subscribe_rojo.md new file mode 100644 index 000000000..3e130fd3a --- /dev/null +++ b/docs/content/wiki/reference/simplepie/subscribe_rojo.md @@ -0,0 +1,32 @@ ++++ +title = "subscribe_rojo()" ++++ + +## Description {#description} + +```php +class SimplePie { + subscribe_rojo () +} +``` + +Returns the URL for adding this particular feed to the [Rojo](http://rojo.com/) service. + +## Availability {#availability} + +- Available since SimplePie Preview Release. + +## Examples {#examples} + +```php +$feed = new SimplePie(); +$feed->set_feed_url('http://simplepie.org/blog/feed/'); +$feed->init(); +$feed->handle_content_type(); + +echo 'Subscribe in Rojo'; +``` + +## See Also {#see_also} + +- [SimplePie](@/wiki/reference/simplepie/_index.md) diff --git a/docs/content/wiki/reference/simplepie/subscribe_url.md b/docs/content/wiki/reference/simplepie/subscribe_url.md new file mode 100644 index 000000000..7985acfed --- /dev/null +++ b/docs/content/wiki/reference/simplepie/subscribe_url.md @@ -0,0 +1,33 @@ ++++ +title = "subscribe_url()" ++++ + +## Description {#description} + +```php +class SimplePie { + subscribe_url () +} +``` + +Returns the URL for the feed. May or may not be different from the URL passed to [set_feed_url()](@/wiki/reference/simplepie/set_feed_url.md), depending on whether auto-discovery was used. + +## Availability {#availability} + +- Available since SimplePie Preview Release. +- Previously existed as `get_feed_url()` since SimplePie 0.8. + +## Examples {#examples} + +```php +$feed = new SimplePie(); +$feed->set_feed_url('http://simplepie.org/blog/feed/'); +$feed->init(); +$feed->handle_content_type(); + +echo 'Subscribe to this feed'; +``` + +## See Also {#see_also} + +- [SimplePie](@/wiki/reference/simplepie/_index.md) diff --git a/docs/content/wiki/reference/simplepie/subscribe_yahoo.md b/docs/content/wiki/reference/simplepie/subscribe_yahoo.md new file mode 100644 index 000000000..ec369eb5a --- /dev/null +++ b/docs/content/wiki/reference/simplepie/subscribe_yahoo.md @@ -0,0 +1,32 @@ ++++ +title = "subscribe_yahoo()" ++++ + +## Description {#description} + +```php +class SimplePie { + subscribe_yahoo () +} +``` + +Returns the URL for adding this particular feed to the [My Yahoo!](http://my.yahoo.com/) service. + +## Availability {#availability} + +- Available since SimplePie Preview Release. + +## Examples {#examples} + +```php +$feed = new SimplePie(); +$feed->set_feed_url('http://simplepie.org/blog/feed/'); +$feed->init(); +$feed->handle_content_type(); + +echo 'Subscribe in My Yahoo!'; +``` + +## See Also {#see_also} + +- [SimplePie](@/wiki/reference/simplepie/_index.md) diff --git a/docs/content/wiki/reference/simplepie_author/_index.md b/docs/content/wiki/reference/simplepie_author/_index.md new file mode 100644 index 000000000..52dae8efd --- /dev/null +++ b/docs/content/wiki/reference/simplepie_author/_index.md @@ -0,0 +1,40 @@ ++++ +title = "SimplePie_Author" ++++ + +[SimplePie_Author](@/wiki/reference/simplepie_author/_index.md) is used for managing all author-related data and methods. This object is not typically called directly, [get_author()](@/wiki/reference/simplepie_item/get_author.md) and [get_authors()](@/wiki/reference/simplepie_item/get_authors.md) return [SimplePie_Author](@/wiki/reference/simplepie_author/_index.md) instances which allow us to access author-related data. This class can be overloaded with [set_author_class()](@/wiki/reference/simplepie/set_author_class.md). + +## See Also {#see_also} + + + +
    + +--- + +## Index {#index} + +### G {#g} + +- [Get_email()](@/wiki/reference/simplepie_author/get_email.md) +- [Get_link()](@/wiki/reference/simplepie_author/get_link.md) +- [Get_name()](@/wiki/reference/simplepie_author/get_name.md) + +
    diff --git a/docs/content/wiki/reference/simplepie_author/get_email.md b/docs/content/wiki/reference/simplepie_author/get_email.md new file mode 100644 index 000000000..407c05827 --- /dev/null +++ b/docs/content/wiki/reference/simplepie_author/get_email.md @@ -0,0 +1,40 @@ ++++ +title = "get_email()" ++++ + +## Description {#description} + +```php +class SimplePie_Author { + get_email () +} +``` + +Will try to discern the email address for the author for the posting and return it. + +## Availability {#availability} + +- Available since SimplePie Beta 2. + +## Examples {#examples} + +```php +$feed = new SimplePie(); +$feed->set_feed_url('http://simplepie.org/blog/feed/'); +$feed->init(); +$feed->handle_content_type(); + +foreach ($feed->get_items() as $item) +{ + if ($author = $item->get_author()) + { + echo $author->get_email(); + } +} +``` + +## See Also {#see_also} + +- [SimplePie](@/wiki/reference/simplepie/_index.md) +- [SimplePie_Item](@/wiki/reference/simplepie_item/_index.md) +- [SimplePie_Author](@/wiki/reference/simplepie_author/_index.md) diff --git a/docs/content/wiki/reference/simplepie_author/get_link.md b/docs/content/wiki/reference/simplepie_author/get_link.md new file mode 100644 index 000000000..370bd1196 --- /dev/null +++ b/docs/content/wiki/reference/simplepie_author/get_link.md @@ -0,0 +1,40 @@ ++++ +title = "get_link()" ++++ + +## Description {#description} + +```php +class SimplePie_Author { + get_link() +} +``` + +Will try to discern the link for the author for the posting and return it. + +## Availability {#availability} + +- Available since SimplePie Beta 2. + +## Examples {#examples} + +```php +$feed = new SimplePie(); +$feed->set_feed_url('http://simplepie.org/blog/feed/'); +$feed->init(); +$feed->handle_content_type(); + +foreach ($feed->get_items() as $item) +{ + if ($author = $item->get_author()) + { + echo $author->get_link(); + } +} +``` + +## See Also {#see_also} + +- [SimplePie](@/wiki/reference/simplepie/_index.md) +- [SimplePie_Item](@/wiki/reference/simplepie_item/_index.md) +- [SimplePie_Author](@/wiki/reference/simplepie_author/_index.md) diff --git a/docs/content/wiki/reference/simplepie_author/get_name.md b/docs/content/wiki/reference/simplepie_author/get_name.md new file mode 100644 index 000000000..5c3f6992f --- /dev/null +++ b/docs/content/wiki/reference/simplepie_author/get_name.md @@ -0,0 +1,40 @@ ++++ +title = "get_name()" ++++ + +## Description {#description} + +```php +class SimplePie_Author { + get_name() +} +``` + +Will try to discern the name for the author for the posting and return it. + +## Availability {#availability} + +- Available since SimplePie Beta 2. + +## Examples {#examples} + +```php +$feed = new SimplePie(); +$feed->set_feed_url('http://simplepie.org/blog/feed/'); +$feed->init(); +$feed->handle_content_type(); + +foreach ($feed->get_items() as $item) +{ + if ($author = $item->get_author()) + { + echo $author->get_name(); + } +} +``` + +## See Also {#see_also} + +- [SimplePie](@/wiki/reference/simplepie/_index.md) +- [SimplePie_Item](@/wiki/reference/simplepie_item/_index.md) +- [SimplePie_Author](@/wiki/reference/simplepie_author/_index.md) diff --git a/docs/content/wiki/reference/simplepie_cache/_index.md b/docs/content/wiki/reference/simplepie_cache/_index.md new file mode 100644 index 000000000..4068f0403 --- /dev/null +++ b/docs/content/wiki/reference/simplepie_cache/_index.md @@ -0,0 +1,25 @@ ++++ +title = "SimplePie_Cache" ++++ + +
    + +This is a non-public object, and is only intended to be used internally by SimplePie. + +
    + +[SimplePie_Cache](@/wiki/reference/simplepie_cache/_index.md) is used for caching files that SimplePie fetches. Currently, it only supports flat-file caching, although future revisions are expected to support caching to a handful of databases. This class can be overloaded with [set_cache_class()](@/wiki/reference/simplepie/set_cache_class.md). + +## See Also {#see_also} + + diff --git a/docs/content/wiki/reference/simplepie_cache_file/_index.md b/docs/content/wiki/reference/simplepie_cache_file/_index.md new file mode 100644 index 000000000..7cf25882d --- /dev/null +++ b/docs/content/wiki/reference/simplepie_cache_file/_index.md @@ -0,0 +1,20 @@ ++++ +title = "SimplePie_Cache_File" ++++ + +
    + +This is a non-public object, and is only intended to be used internally by SimplePie. + +
    + +[SimplePie_Cache_File](@/wiki/reference/simplepie_cache_file/_index.md) is used by the [SimplePie_Cache](@/wiki/reference/simplepie_cache/_index.md) class for caching files to the file system. This class cannot be overloaded directly, however you can overload [SimplePie_Cache](@/wiki/reference/simplepie_cache/_index.md) with [set_cache_class()](@/wiki/reference/simplepie/set_cache_class.md) to utilize a custom file-system caching class. + +## See Also {#see_also} + + diff --git a/docs/content/wiki/reference/simplepie_caption/_index.md b/docs/content/wiki/reference/simplepie_caption/_index.md new file mode 100644 index 000000000..9758dc507 --- /dev/null +++ b/docs/content/wiki/reference/simplepie_caption/_index.md @@ -0,0 +1,38 @@ ++++ +title = "SimplePie_Caption" ++++ + +[SimplePie_Caption](@/wiki/reference/simplepie_caption/_index.md) is used for handling `` captions as defined in (including [Media RSS](http://search.yahoo.com/mrss). This object is not typically called directly, [get_caption()](@/wiki/reference/simplepie_enclosure/get_caption.md) and [get_captions()](@/wiki/reference/simplepie_enclosure/get_captions.md) return [SimplePie_Caption](@/wiki/reference/simplepie_caption/_index.md) instances which allow us to access caption-related data. This class can be overloaded with [set_caption_class()](@/wiki/reference/simplepie/set_caption_class.md). + +## See Also {#see_also} + + + +
    + +--- + +## Index {#index} + +### G {#g} + +- [Get_endtime()](@/wiki/reference/simplepie_caption/get_endtime.md) +- [Get_language()](@/wiki/reference/simplepie_caption/get_language.md) +- [Get_starttime()](@/wiki/reference/simplepie_caption/get_starttime.md) +- [Get_text()](@/wiki/reference/simplepie_caption/get_text.md) +- [Get_type()](@/wiki/reference/simplepie_caption/get_type.md) + +
    diff --git a/docs/content/wiki/reference/simplepie_caption/get_endtime.md b/docs/content/wiki/reference/simplepie_caption/get_endtime.md new file mode 100644 index 000000000..8e2167bb4 --- /dev/null +++ b/docs/content/wiki/reference/simplepie_caption/get_endtime.md @@ -0,0 +1,44 @@ ++++ +title = "get_endtime()" ++++ + +## Description {#description} + +```php +class SimplePie_Caption { + get_endtime() +} +``` + +Returns the end time for the given caption. This mostly has relevance to Media RSS content. + +## Availability {#availability} + +- Available since SimplePie 1.0. + +## Examples {#examples} + +```php +$feed = new SimplePie(); +$feed->set_feed_url('http://simplepie.org/blog/feed/'); +$feed->init(); +$feed->handle_content_type(); + +foreach ($feed->get_items() as $item) +{ + if ($enclosure = $item->get_enclosure()) + { + if ($caption = $enclosure->get_caption()) + { + echo '

    ' . $caption->get_text() . ' (' . $caption->get_language() . ')
    '; + echo '' . $caption->starttime() . '–' . $caption->endtime() . '

    '; + } + } +} +``` + +## See Also {#see_also} + +- [SimplePie](@/wiki/reference/simplepie/_index.md) +- [SimplePie_Item](@/wiki/reference/simplepie_item/_index.md) +- [SimplePie_Caption](@/wiki/reference/simplepie_caption/_index.md) diff --git a/docs/content/wiki/reference/simplepie_caption/get_language.md b/docs/content/wiki/reference/simplepie_caption/get_language.md new file mode 100644 index 000000000..60281bb84 --- /dev/null +++ b/docs/content/wiki/reference/simplepie_caption/get_language.md @@ -0,0 +1,44 @@ ++++ +title = "get_language()" ++++ + +## Description {#description} + +```php +class SimplePie_Caption { + get_language() +} +``` + +Returns the language for the given caption. This mostly has relevance to Media RSS content. + +## Availability {#availability} + +- Available since SimplePie 1.0. + +## Examples {#examples} + +```php +$feed = new SimplePie(); +$feed->set_feed_url('http://simplepie.org/blog/feed/'); +$feed->init(); +$feed->handle_content_type(); + +foreach ($feed->get_items() as $item) +{ + if ($enclosure = $item->get_enclosure()) + { + if ($caption = $enclosure->get_caption()) + { + echo '

    ' . $caption->get_text() . ' (' . $caption->get_language() . ')
    '; + echo '' . $caption->starttime() . '–' . $caption->endtime() . '

    '; + } + } +} +``` + +## See Also {#see_also} + +- [SimplePie](@/wiki/reference/simplepie/_index.md) +- [SimplePie_Item](@/wiki/reference/simplepie_item/_index.md) +- [SimplePie_Caption](@/wiki/reference/simplepie_caption/_index.md) diff --git a/docs/content/wiki/reference/simplepie_caption/get_starttime.md b/docs/content/wiki/reference/simplepie_caption/get_starttime.md new file mode 100644 index 000000000..88344aba8 --- /dev/null +++ b/docs/content/wiki/reference/simplepie_caption/get_starttime.md @@ -0,0 +1,44 @@ ++++ +title = "get_starttime()" ++++ + +## Description {#description} + +```php +class SimplePie_Caption { + get_starttime() +} +``` + +Returns the start time for the given caption. This mostly has relevance to Media RSS content. + +## Availability {#availability} + +- Available since SimplePie 1.0. + +## Examples {#examples} + +```php +$feed = new SimplePie(); +$feed->set_feed_url('http://simplepie.org/blog/feed/'); +$feed->init(); +$feed->handle_content_type(); + +foreach ($feed->get_items() as $item) +{ + if ($enclosure = $item->get_enclosure()) + { + if ($caption = $enclosure->get_caption()) + { + echo '

    ' . $caption->get_text() . ' (' . $caption->get_language() . ')
    '; + echo '' . $caption->starttime() . '–' . $caption->endtime() . '

    '; + } + } +} +``` + +## See Also {#see_also} + +- [SimplePie](@/wiki/reference/simplepie/_index.md) +- [SimplePie_Item](@/wiki/reference/simplepie_item/_index.md) +- [SimplePie_Caption](@/wiki/reference/simplepie_caption/_index.md) diff --git a/docs/content/wiki/reference/simplepie_caption/get_text.md b/docs/content/wiki/reference/simplepie_caption/get_text.md new file mode 100644 index 000000000..0ad6c0494 --- /dev/null +++ b/docs/content/wiki/reference/simplepie_caption/get_text.md @@ -0,0 +1,44 @@ ++++ +title = "get_text()" ++++ + +## Description {#description} + +```php +class SimplePie_Caption { + get_text() +} +``` + +Returns the actual text for the given caption. This mostly has relevance to Media RSS content. + +## Availability {#availability} + +- Available since SimplePie 1.0. + +## Examples {#examples} + +```php +$feed = new SimplePie(); +$feed->set_feed_url('http://simplepie.org/blog/feed/'); +$feed->init(); +$feed->handle_content_type(); + +foreach ($feed->get_items() as $item) +{ + if ($enclosure = $item->get_enclosure()) + { + if ($caption = $enclosure->get_caption()) + { + echo '

    ' . $caption->get_text() . ' (' . $caption->get_language() . ')
    '; + echo '' . $caption->starttime() . '–' . $caption->endtime() . '

    '; + } + } +} +``` + +## See Also {#see_also} + +- [SimplePie](@/wiki/reference/simplepie/_index.md) +- [SimplePie_Item](@/wiki/reference/simplepie_item/_index.md) +- [SimplePie_Caption](@/wiki/reference/simplepie_caption/_index.md) diff --git a/docs/content/wiki/reference/simplepie_caption/get_type.md b/docs/content/wiki/reference/simplepie_caption/get_type.md new file mode 100644 index 000000000..af1b625ca --- /dev/null +++ b/docs/content/wiki/reference/simplepie_caption/get_type.md @@ -0,0 +1,43 @@ ++++ +title = "get_type()" ++++ + +## Description {#description} + +```php +class SimplePie_Caption { + get_type() +} +``` + +Returns the type (text or HTML) of the given caption. This mostly has relevance to Media RSS content. + +## Availability {#availability} + +- Available since SimplePie 1.0. + +## Examples {#examples} + +```php +$feed = new SimplePie(); +$feed->set_feed_url('http://simplepie.org/blog/feed/'); +$feed->init(); +$feed->handle_content_type(); + +foreach ($feed->get_items() as $item) +{ + if ($enclosure = $item->get_enclosure()) + { + if ($caption = $enclosure->get_caption()) + { + echo '

    ' . $caption->get_text() . ' (' . $caption->get_type() . ')

    '; + } + } +} +``` + +## See Also {#see_also} + +- [SimplePie](@/wiki/reference/simplepie/_index.md) +- [SimplePie_Item](@/wiki/reference/simplepie_item/_index.md) +- [SimplePie_Caption](@/wiki/reference/simplepie_caption/_index.md) diff --git a/docs/content/wiki/reference/simplepie_category/_index.md b/docs/content/wiki/reference/simplepie_category/_index.md new file mode 100644 index 000000000..6307132c3 --- /dev/null +++ b/docs/content/wiki/reference/simplepie_category/_index.md @@ -0,0 +1,39 @@ ++++ +title = "SimplePie_Category" ++++ + +[SimplePie_Category](@/wiki/reference/simplepie_category/_index.md) is used for managing all category-related data and methods. This object is not typically called directly, [get_category()](@/wiki/reference/simplepie_item/get_category.md) and [get_categories()](@/wiki/reference/simplepie_item/get_categories.md) return [SimplePie_Category](@/wiki/reference/simplepie_category/_index.md) instances which allow us to access category-related data. This class can be overloaded with [set_category_class()](@/wiki/reference/simplepie/set_category_class.md). + +## See Also {#see_also} + + + +
    + +--- + +## Index {#index} + +### G {#g} + +- [Get_label()](@/wiki/reference/simplepie_category/get_label.md) +- [Get_scheme()](@/wiki/reference/simplepie_category/get_scheme.md) +- [Get_term()](@/wiki/reference/simplepie_category/get_term.md) + +
    diff --git a/docs/content/wiki/reference/simplepie_category/get_label.md b/docs/content/wiki/reference/simplepie_category/get_label.md new file mode 100644 index 000000000..fcaf5c619 --- /dev/null +++ b/docs/content/wiki/reference/simplepie_category/get_label.md @@ -0,0 +1,41 @@ ++++ +title = "get_label()" ++++ + +## Description {#description} + +```php +class SimplePie_Category { + get_label() +} +``` + +Returns the human-readable label for the category. + +## Availability {#availability} + +- Available since SimplePie 1.0. +- Previously existed as the value for [get_category()](@/wiki/reference/simplepie_item/get_category.md). + +## Examples {#examples} + +```php +$feed = new SimplePie(); +$feed->set_feed_url('http://simplepie.org/blog/feed/'); +$feed->init(); +$feed->handle_content_type(); + +foreach ($feed->get_items() as $item) +{ + if ($category= $item->get_category()) + { + echo $category->get_label(); + } +} +``` + +## See Also {#see_also} + +- [SimplePie](@/wiki/reference/simplepie/_index.md) +- [SimplePie_Item](@/wiki/reference/simplepie_item/_index.md) +- [SimplePie_Category](@/wiki/reference/simplepie_category/_index.md) diff --git a/docs/content/wiki/reference/simplepie_category/get_scheme.md b/docs/content/wiki/reference/simplepie_category/get_scheme.md new file mode 100644 index 000000000..0b5a3f5e4 --- /dev/null +++ b/docs/content/wiki/reference/simplepie_category/get_scheme.md @@ -0,0 +1,40 @@ ++++ +title = "get_scheme()" ++++ + +## Description {#description} + +```php +class SimplePie_Category { + get_scheme() +} +``` + +Returns the “scheme” for the category. This mostly has relevance to Atom feeds and Media RSS content. + +## Availability {#availability} + +- Available since SimplePie 1.0. + +## Examples {#examples} + +```php +$feed = new SimplePie(); +$feed->set_feed_url('http://simplepie.org/blog/feed/'); +$feed->init(); +$feed->handle_content_type(); + +foreach ($feed->get_items() as $item) +{ + if ($category= $item->get_category()) + { + echo $category->get_scheme(); + } +} +``` + +## See Also {#see_also} + +- [SimplePie](@/wiki/reference/simplepie/_index.md) +- [SimplePie_Item](@/wiki/reference/simplepie_item/_index.md) +- [SimplePie_Category](@/wiki/reference/simplepie_category/_index.md) diff --git a/docs/content/wiki/reference/simplepie_category/get_term.md b/docs/content/wiki/reference/simplepie_category/get_term.md new file mode 100644 index 000000000..ef1ab9964 --- /dev/null +++ b/docs/content/wiki/reference/simplepie_category/get_term.md @@ -0,0 +1,40 @@ ++++ +title = "get_term()" ++++ + +## Description {#description} + +```php +class SimplePie_Category { + get_term() +} +``` + +Returns the “term” for the category. This mostly has relevance to Atom feeds and Media RSS content. + +## Availability {#availability} + +- Available since SimplePie 1.0. + +## Examples {#examples} + +```php +$feed = new SimplePie(); +$feed->set_feed_url('http://simplepie.org/blog/feed/'); +$feed->init(); +$feed->handle_content_type(); + +foreach ($feed->get_items() as $item) +{ + if ($category= $item->get_category()) + { + echo $category->get_term(); + } +} +``` + +## See Also {#see_also} + +- [SimplePie](@/wiki/reference/simplepie/_index.md) +- [SimplePie_Item](@/wiki/reference/simplepie_item/_index.md) +- [SimplePie_Category](@/wiki/reference/simplepie_category/_index.md) diff --git a/docs/content/wiki/reference/simplepie_content_type_sniffer/_index.md b/docs/content/wiki/reference/simplepie_content_type_sniffer/_index.md new file mode 100644 index 000000000..2e3d1c34e --- /dev/null +++ b/docs/content/wiki/reference/simplepie_content_type_sniffer/_index.md @@ -0,0 +1,21 @@ ++++ +title = "SimplePie_Content_Type_Sniffer" ++++ + +
    + +This is a non-public object, and is only intended to be used internally by SimplePie. + +
    + +[SimplePie_Content_Type_Sniffer](@/wiki/reference/simplepie_content_type_sniffer/_index.md) is used for detecting the correct Content-Type of files when the HTTP headers can't be trusted. Our implementation is based upon [HTML 5](http://www.whatwg.org/specs/web-apps/current-work/#content-type-sniffing), which is very similar to what Firefox 3 will ship with. This algorithm is designed to minimise possible security risks caused by treating content differently to how it is served, as well as being mostly compatible with Internet Explorer 7 and Safari 3. The sniffing may change in part, or in whole, at any time. This class can be overloaded with [set_content_type_sniffer_class()](@/wiki/reference/simplepie/set_content_type_sniffer_class.md). + +## See Also {#see_also} + + diff --git a/docs/content/wiki/reference/simplepie_copyright/_index.md b/docs/content/wiki/reference/simplepie_copyright/_index.md new file mode 100644 index 000000000..2d56b3918 --- /dev/null +++ b/docs/content/wiki/reference/simplepie_copyright/_index.md @@ -0,0 +1,31 @@ ++++ +title = "SimplePie_Copyright" ++++ + +[SimplePie_Copyright](@/wiki/reference/simplepie_copyright/_index.md) is used for handling `` data as defined in (including [Media RSS](http://search.yahoo.com/mrss). This object is not typically called directly, [get_copyright()](@/wiki/reference/simplepie_enclosure/get_copyright.md) and [get_copyright()](@/wiki/reference/simplepie_enclosure/get_copyright.md) return [SimplePie_Copyright](@/wiki/reference/simplepie_copyright/_index.md) instances which allow us to access copyright-related data. This class can be overloaded with [set_copyright_class()](@/wiki/reference/simplepie/set_copyright_class.md). + +## See Also {#see_also} + + + +
    + +--- + +## Index {#index} + +### G {#g} + +- [Get_attribution()](@/wiki/reference/simplepie_copyright/get_attribution.md) +- [Get_url()](@/wiki/reference/simplepie_copyright/get_url.md) + +
    diff --git a/docs/content/wiki/reference/simplepie_copyright/get_attribution.md b/docs/content/wiki/reference/simplepie_copyright/get_attribution.md new file mode 100644 index 000000000..a90ffe884 --- /dev/null +++ b/docs/content/wiki/reference/simplepie_copyright/get_attribution.md @@ -0,0 +1,43 @@ ++++ +title = "get_attribution()" ++++ + +## Description {#description} + +```php +class SimplePie_Copyright { + get_attribution() +} +``` + +Returns the attribution for the given copyright. This mostly has relevance to Media RSS content. + +## Availability {#availability} + +- Available since SimplePie 1.0. + +## Examples {#examples} + +```php +$feed = new SimplePie(); +$feed->set_feed_url('http://simplepie.org/blog/feed/'); +$feed->init(); +$feed->handle_content_type(); + +foreach ($feed->get_items() as $item) +{ + if ($enclosure = $item->get_enclosure()) + { + if ($copyright = $enclosure->get_copyright()) + { + echo '

    ' . $copyright->get_attribution() . '

    '; + } + } +} +``` + +## See Also {#see_also} + +- [SimplePie](@/wiki/reference/simplepie/_index.md) +- [SimplePie_Item](@/wiki/reference/simplepie_item/_index.md) +- [SimplePie_Copyright](@/wiki/reference/simplepie_copyright/_index.md) diff --git a/docs/content/wiki/reference/simplepie_copyright/get_url.md b/docs/content/wiki/reference/simplepie_copyright/get_url.md new file mode 100644 index 000000000..3e44ef1b0 --- /dev/null +++ b/docs/content/wiki/reference/simplepie_copyright/get_url.md @@ -0,0 +1,43 @@ ++++ +title = "get_url()" ++++ + +## Description {#description} + +```php +class SimplePie_Copyright { + get_url() +} +``` + +Returns the URL for the given copyright. This mostly has relevance to Media RSS content. + +## Availability {#availability} + +- Available since SimplePie 1.0. + +## Examples {#examples} + +```php +$feed = new SimplePie(); +$feed->set_feed_url('http://simplepie.org/blog/feed/'); +$feed->init(); +$feed->handle_content_type(); + +foreach ($feed->get_items() as $item) +{ + if ($enclosure = $item->get_enclosure()) + { + if ($copyright = $enclosure->get_copyright()) + { + echo '

    ' . $copyright->get_attribution() . '

    '; + } + } +} +``` + +## See Also {#see_also} + +- [SimplePie](@/wiki/reference/simplepie/_index.md) +- [SimplePie_Item](@/wiki/reference/simplepie_item/_index.md) +- [SimplePie_Copyright](@/wiki/reference/simplepie_copyright/_index.md) diff --git a/docs/content/wiki/reference/simplepie_credit/_index.md b/docs/content/wiki/reference/simplepie_credit/_index.md new file mode 100644 index 000000000..cb6037f33 --- /dev/null +++ b/docs/content/wiki/reference/simplepie_credit/_index.md @@ -0,0 +1,34 @@ ++++ +title = "SimplePie_Credit" ++++ + +[SimplePie_Credit](@/wiki/reference/simplepie_credit/_index.md) is used for handling `` data as defined in (including [Media RSS](http://search.yahoo.com/mrss). This object is not typically called directly, [get_credit()](@/wiki/reference/simplepie_enclosure/get_credit.md) and [get_credits()](@/wiki/reference/simplepie_enclosure/get_credits.md) return [SimplePie_Credit](@/wiki/reference/simplepie_credit/_index.md) instances which allow us to access credit-related data. This class can be overloaded with [set_credit_class()](@/wiki/reference/simplepie/set_credit_class.md). + +## See Also {#see_also} + + + +
    + +--- + +## Index {#index} + +### G {#g} + +- [Get_name()](@/wiki/reference/simplepie_credit/get_name.md) +- [Get_role()](@/wiki/reference/simplepie_credit/get_role.md) +- [Get_scheme()](@/wiki/reference/simplepie_credit/get_scheme.md) + +
    diff --git a/docs/content/wiki/reference/simplepie_credit/get_name.md b/docs/content/wiki/reference/simplepie_credit/get_name.md new file mode 100644 index 000000000..d23979400 --- /dev/null +++ b/docs/content/wiki/reference/simplepie_credit/get_name.md @@ -0,0 +1,43 @@ ++++ +title = "get_name()" ++++ + +## Description {#description} + +```php +class SimplePie_Credit { + get_name() +} +``` + +Returns the name of the person or entity receiving the given credit. This mostly has relevance to Media RSS content. + +## Availability {#availability} + +- Available since SimplePie 1.0. + +## Examples {#examples} + +```php +$feed = new SimplePie(); +$feed->set_feed_url('http://simplepie.org/blog/feed/'); +$feed->init(); +$feed->handle_content_type(); + +foreach ($feed->get_items() as $item) +{ + if ($enclosure = $item->get_enclosure()) + { + if ($credit = $enclosure->get_credit()) + { + echo '

    ' . $credit->get_role() . ': ' . $credit->get_name() . '

    '; + } + } +} +``` + +## See Also {#see_also} + +- [SimplePie](@/wiki/reference/simplepie/_index.md) +- [SimplePie_Item](@/wiki/reference/simplepie_item/_index.md) +- [SimplePie_Credit](@/wiki/reference/simplepie_credit/_index.md) diff --git a/docs/content/wiki/reference/simplepie_credit/get_role.md b/docs/content/wiki/reference/simplepie_credit/get_role.md new file mode 100644 index 000000000..b6f4d0ea7 --- /dev/null +++ b/docs/content/wiki/reference/simplepie_credit/get_role.md @@ -0,0 +1,43 @@ ++++ +title = "get_role()" ++++ + +## Description {#description} + +```php +class SimplePie_Credit { + get_role() +} +``` + +Returns the role of the person or entity receiving the given credit. This mostly has relevance to Media RSS content. + +## Availability {#availability} + +- Available since SimplePie 1.0. + +## Examples {#examples} + +```php +$feed = new SimplePie(); +$feed->set_feed_url('http://simplepie.org/blog/feed/'); +$feed->init(); +$feed->handle_content_type(); + +foreach ($feed->get_items() as $item) +{ + if ($enclosure = $item->get_enclosure()) + { + if ($credit = $enclosure->get_credit()) + { + echo '

    ' . $credit->get_role() . ': ' . $credit->get_name() . '

    '; + } + } +} +``` + +## See Also {#see_also} + +- [SimplePie](@/wiki/reference/simplepie/_index.md) +- [SimplePie_Item](@/wiki/reference/simplepie_item/_index.md) +- [SimplePie_Credit](@/wiki/reference/simplepie_credit/_index.md) diff --git a/docs/content/wiki/reference/simplepie_credit/get_scheme.md b/docs/content/wiki/reference/simplepie_credit/get_scheme.md new file mode 100644 index 000000000..1819ef363 --- /dev/null +++ b/docs/content/wiki/reference/simplepie_credit/get_scheme.md @@ -0,0 +1,43 @@ ++++ +title = "get_scheme()" ++++ + +## Description {#description} + +```php +class SimplePie_Credit { + get_scheme() +} +``` + +Returns the organizational scheme for the role of the person or entity receiving the given credit. This mostly has relevance to Media RSS content. + +## Availability {#availability} + +- Available since SimplePie 1.0. + +## Examples {#examples} + +```php +$feed = new SimplePie(); +$feed->set_feed_url('http://simplepie.org/blog/feed/'); +$feed->init(); +$feed->handle_content_type(); + +foreach ($feed->get_items() as $item) +{ + if ($enclosure = $item->get_enclosure()) + { + if ($credit = $enclosure->get_credit()) + { + echo '

    ' . $credit->get_role() . ': ' . $credit->get_name() . '

    '; + } + } +} +``` + +## See Also {#see_also} + +- [SimplePie](@/wiki/reference/simplepie/_index.md) +- [SimplePie_Item](@/wiki/reference/simplepie_item/_index.md) +- [SimplePie_Credit](@/wiki/reference/simplepie_credit/_index.md) diff --git a/docs/content/wiki/reference/simplepie_decode_html_entities/_index.md b/docs/content/wiki/reference/simplepie_decode_html_entities/_index.md new file mode 100644 index 000000000..6cd073cb9 --- /dev/null +++ b/docs/content/wiki/reference/simplepie_decode_html_entities/_index.md @@ -0,0 +1,20 @@ ++++ +title = "SimplePie_Decode_HTML_Entities" ++++ + +
    + +This is a non-public object, and is only intended to be used internally by SimplePie. + +
    + +[SimplePie_Decode_HTML_Entities](@/wiki/reference/simplepie_decode_html_entities/_index.md) is used for reliably decoding HTML entities. This class cannot currently be overloaded. + +## See Also {#see_also} + + diff --git a/docs/content/wiki/reference/simplepie_enclosure/_index.md b/docs/content/wiki/reference/simplepie_enclosure/_index.md new file mode 100644 index 000000000..af01e0f20 --- /dev/null +++ b/docs/content/wiki/reference/simplepie_enclosure/_index.md @@ -0,0 +1,112 @@ ++++ +title = "SimplePie_Enclosure" ++++ + +[SimplePie_Enclosure](@/wiki/reference/simplepie_enclosure/_index.md) is used for handling all things related to enclosures and such (including [Media RSS](http://search.yahoo.com/mrss) and [iTunes RSS](http://www.apple.com/itunes/store/podcaststechspecs.html)). This object is not typically called directly, [get_enclosure()](@/wiki/reference/simplepie_item/get_enclosure.md) and [get_enclosures()](@/wiki/reference/simplepie_item/get_enclosures.md) return [SimplePie_Enclosure](@/wiki/reference/simplepie_enclosure/_index.md) instances which allow us to access enclosure-related data. This class can be overloaded with [set_enclosure_class()](@/wiki/reference/simplepie/set_enclosure_class.md). + +## See Also {#see_also} + + + +
    + +--- + +## Index {#index} + +### E {#e} + +- [Embed()](@/wiki/reference/simplepie_enclosure/embed.md) + +### G {#g} + +- [Get_bitrate()](@/wiki/reference/simplepie_enclosure/get_bitrate.md) +- [Get_caption()](@/wiki/reference/simplepie_enclosure/get_caption.md) +- [Get_captions()](@/wiki/reference/simplepie_enclosure/get_captions.md) +- [Get_categories()](@/wiki/reference/simplepie_enclosure/get_categories.md) +- [Get_category()](@/wiki/reference/simplepie_enclosure/get_category.md) +- [Get_channels()](@/wiki/reference/simplepie_enclosure/get_channels.md) +- [Get_copyright()](@/wiki/reference/simplepie_enclosure/get_copyright.md) +- [Get_credit()](@/wiki/reference/simplepie_enclosure/get_credit.md) +- [Get_credits()](@/wiki/reference/simplepie_enclosure/get_credits.md) +- [Get_description()](@/wiki/reference/simplepie_enclosure/get_description.md) +- [Get_duration()](@/wiki/reference/simplepie_enclosure/get_duration.md) +- [Get_expression()](@/wiki/reference/simplepie_enclosure/get_expression.md) +- [Get_extension()](@/wiki/reference/simplepie_enclosure/get_extension.md) +- [Get_framerate()](@/wiki/reference/simplepie_enclosure/get_framerate.md) +- [Get_handler()](@/wiki/reference/simplepie_enclosure/get_handler.md) +- [Get_hash()](@/wiki/reference/simplepie_enclosure/get_hash.md) +- [Get_hashes()](@/wiki/reference/simplepie_enclosure/get_hashes.md) +- [Get_height()](@/wiki/reference/simplepie_enclosure/get_height.md) +- [Get_keyword()](@/wiki/reference/simplepie_enclosure/get_keyword.md) +- [Get_keywords()](@/wiki/reference/simplepie_enclosure/get_keywords.md) +- [Get_language()](@/wiki/reference/simplepie_enclosure/get_language.md) +- [Get_length()](@/wiki/reference/simplepie_enclosure/get_length.md) +- [Get_link()](@/wiki/reference/simplepie_enclosure/get_link.md) +- [Get_medium()](@/wiki/reference/simplepie_enclosure/get_medium.md) +- [Get_player()](@/wiki/reference/simplepie_enclosure/get_player.md) +- [Get_rating()](@/wiki/reference/simplepie_enclosure/get_rating.md) +- [Get_ratings()](@/wiki/reference/simplepie_enclosure/get_ratings.md) +- [Get_real_type()](@/wiki/reference/simplepie_enclosure/get_real_type.md) +- [Get_restriction()](@/wiki/reference/simplepie_enclosure/get_restriction.md) +- [Get_restrictions()](@/wiki/reference/simplepie_enclosure/get_restrictions.md) +- [Get_sampling_rate()](@/wiki/reference/simplepie_enclosure/get_sampling_rate.md) +- [Get_size()](@/wiki/reference/simplepie_enclosure/get_size.md) +- [Get_thumbnail()](@/wiki/reference/simplepie_enclosure/get_thumbnail.md) +- [Get_thumbnails()](@/wiki/reference/simplepie_enclosure/get_thumbnails.md) +- [Get_title()](@/wiki/reference/simplepie_enclosure/get_title.md) +- [Get_type()](@/wiki/reference/simplepie_enclosure/get_type.md) +- [Get_width()](@/wiki/reference/simplepie_enclosure/get_width.md) + +### N {#n} + +- [Native_embed()](@/wiki/reference/simplepie_enclosure/native_embed.md) + +
    diff --git a/docs/content/wiki/reference/simplepie_enclosure/embed.md b/docs/content/wiki/reference/simplepie_enclosure/embed.md new file mode 100644 index 000000000..823ec69a6 --- /dev/null +++ b/docs/content/wiki/reference/simplepie_enclosure/embed.md @@ -0,0 +1,82 @@ ++++ +title = "embed()" ++++ + +## Description {#description} + +```php +class SimplePie_Enclosure { + embed ( [(array) $options] ) +} +``` + +Embeds the enclosure into the webpage using JavaScript. + +This will use `get_real_type()` to determine which handler should be used to embed the content into the page. SimplePie supports QuickTime, Windows Media, Flash, Flash Media, and the Odeo Player for Odeo feeds. + +Because of the fallout from the [Eolas lawsuit against Microsoft](http://en.wikipedia.org/wiki/Eolas) and the [changes that were recently made to Internet Explorer](http://blogs.msdn.com/ie/archive/2006/04/11/573479.aspx) as a result, we generate and include a [JavaScript library containing functions](http://msdn.microsoft.com/library/default.asp?url=/workshop/author/dhtml/overview/activating_activex.asp) that allow us to embed the multimedia content. + +This function is identical to `native_embed()` except that, whereas `native_embed()` writes the (invalid) embed code directly into the page, this function uses JavaScript so that your pages can [validate](http://validator.w3.org/) as HTML or XHTML. Also, _this function will only work properly if SimplePie is initialized at the very top of the page._ + +## Availability {#availability} + +- Available since SimplePie Beta 2. + +## Parameters {#parameters} + +### options {#options} + +`options` is an array of multiple options that can all be passed into the [embed()](@/wiki/reference/simplepie_enclosure/embed.md) method. They are as follows: + +- `alt` (string) + Alternate content for when an end-user does not have the appropriate handler installed or when a file type is unsupported. Can be any text or HTML. Defaults to blank. +- `altclass` (string) + If a file type is unsupported, the end-user will see the alt text (above) linked directly to the content. That link will have this value as its class name. Defaults to blank. +- `audio` (string) + This is an image that should be used as a placeholder for audio files before they're loaded (QuickTime-only). Can be any relative or absolute URL. Defaults to blank. +- `bgcolor` (string) + The background color for the media, if not already transparent. Defaults to `#ffffff`. +- `height` (integer) + The height of the embedded media. Accepts any numeric pixel value (such as `360`) or `auto`. Defaults to `auto`, and it is recommended that you use this default. +- `loop` (boolean) + Do you want the media to loop when its done? Defaults to `false`. +- `mediaplayer` (string) + The location of the included `mediaplayer.swf` file. This allows for the playback of Flash Video (`.flv`) files, and is the default handler for non-Odeo MP3's. Defaults to blank. +- `video` (string) + This is an image that should be used as a placeholder for video files before they're loaded (QuickTime-only). Can be any relative or absolute URL. Defaults to blank. +- `width` (integer) + The width of the embedded media. Accepts any numeric pixel value (such as `480`) or `auto`. Defaults to `auto`, and it is recommended that you use this default. +- `widescreen` (boolean) + Is the enclosure widescreen or standard? This applies only to video enclosures, and will automatically resize the content appropriately. Defaults to `false`, implying 4:3 mode. + +**NOTE:** Non-widescreen (4:3) mode with `width` and `height` set to `auto` will default to 480×360 video resolution. Widescreen (16:9) mode with `width` and `height` set to `auto` will default to 480×270 video resolution. + +## Examples {#examples} + +```php +$feed = new SimplePie(); +$feed->set_feed_url('http://youtube.com/rss/global/top_favorites.rss'); +$feed->init(); +$feed->handle_content_type(); + +foreach ($feed->get_items() as $item) +{ + if ($enclosure = $item->get_enclosure()) + { + echo $enclosure->embed(array( + 'alt' => 'Download this enclosure!', + 'audio' => './for_the_demo/place_audio.png', + 'video' => './for_the_demo/place_video.png', + 'mediaplayer' => './for_the_demo/mediaplayer.swf', + 'widescreen' => true + )); + } +} +``` + +## See Also {#see_also} + +- [SimplePie](@/wiki/reference/simplepie/_index.md) +- [SimplePie_Item](@/wiki/reference/simplepie_item/_index.md) +- [SimplePie_Enclosure](@/wiki/reference/simplepie_enclosure/_index.md) +- [native_embed()](@/wiki/reference/simplepie_enclosure/native_embed.md) diff --git a/docs/content/wiki/reference/simplepie_enclosure/get_bitrate.md b/docs/content/wiki/reference/simplepie_enclosure/get_bitrate.md new file mode 100644 index 000000000..96d9fb919 --- /dev/null +++ b/docs/content/wiki/reference/simplepie_enclosure/get_bitrate.md @@ -0,0 +1,40 @@ ++++ +title = "get_bitrate()" ++++ + +## Description {#description} + +```php +class SimplePie_Enclosure { + get_bitrate () +} +``` + +Returns the bitrate of the enclosure. This only applies to `` enclosures. + +## Availability {#availability} + +- Available since SimplePie 1.0. + +## Examples {#examples} + +```php +$feed = new SimplePie(); +$feed->set_feed_url('http://simplepie.org/blog/feed/'); +$feed->init(); +$feed->handle_content_type(); + +foreach ($feed->get_items() as $item) +{ + if ($enclosure = $item->get_enclosure()) + { + echo $enclosure->get_bitrate(); + } +} +``` + +## See Also {#see_also} + +- [SimplePie](@/wiki/reference/simplepie/_index.md) +- [SimplePie_Item](@/wiki/reference/simplepie_item/_index.md) +- [SimplePie_Enclosure](@/wiki/reference/simplepie_enclosure/_index.md) diff --git a/docs/content/wiki/reference/simplepie_enclosure/get_caption.md b/docs/content/wiki/reference/simplepie_enclosure/get_caption.md new file mode 100644 index 000000000..4077ecda1 --- /dev/null +++ b/docs/content/wiki/reference/simplepie_enclosure/get_caption.md @@ -0,0 +1,42 @@ ++++ +title = "get_caption()" ++++ + +## Description {#description} + +```php +class SimplePie_Enclosure { + get_caption () +} +``` + +Returns a single caption for the enclosure. This is is specific to `` data. Returns a [SimplePie_Caption](@/wiki/reference/simplepie_caption/_index.md) object. + +## Availability {#availability} + +- Available since SimplePie 1.0. + +## Examples {#examples} + +```php +$feed = new SimplePie(); +$feed->set_feed_url('http://simplepie.org/blog/feed/'); +$feed->init(); +$feed->handle_content_type(); + +foreach ($feed->get_items() as $item) +{ + if ($enclosure = $item->get_enclosure()) + { + echo $enclosure->get_caption(); + } +} +``` + +## See Also {#see_also} + +- [SimplePie](@/wiki/reference/simplepie/_index.md) +- [SimplePie_Item](@/wiki/reference/simplepie_item/_index.md) +- [SimplePie_Enclosure](@/wiki/reference/simplepie_enclosure/_index.md) +- [SimplePie_Caption](@/wiki/reference/simplepie_caption/_index.md) +- [get_captions()](@/wiki/reference/simplepie_enclosure/get_captions.md) diff --git a/docs/content/wiki/reference/simplepie_enclosure/get_captions.md b/docs/content/wiki/reference/simplepie_enclosure/get_captions.md new file mode 100644 index 000000000..16d46d30e --- /dev/null +++ b/docs/content/wiki/reference/simplepie_enclosure/get_captions.md @@ -0,0 +1,45 @@ ++++ +title = "get_captions()" ++++ + +## Description {#description} + +```php +class SimplePie_Enclosure { + get_captions () +} +``` + +Returns all available captions for the enclosure as an array of [SimplePie_Caption](@/wiki/reference/simplepie_caption/_index.md) objects. This is is specific to `` data. + +## Availability {#availability} + +- Available since SimplePie 1.0. + +## Examples {#examples} + +```php +$feed = new SimplePie(); +$feed->set_feed_url('http://simplepie.org/blog/feed/'); +$feed->init(); +$feed->handle_content_type(); + +foreach ($feed->get_items() as $item) +{ + if ($enclosure = $item->get_enclosure()) + { + foreach ((array) $enclosure->get_captions() as $caption) + { + echo $caption->get_text(); + } + } +} +``` + +## See Also {#see_also} + +- [SimplePie](@/wiki/reference/simplepie/_index.md) +- [SimplePie_Item](@/wiki/reference/simplepie_item/_index.md) +- [SimplePie_Enclosure](@/wiki/reference/simplepie_enclosure/_index.md) +- [SimplePie_Caption](@/wiki/reference/simplepie_caption/_index.md) +- [get_caption()](@/wiki/reference/simplepie_enclosure/get_caption.md) diff --git a/docs/content/wiki/reference/simplepie_enclosure/get_categories.md b/docs/content/wiki/reference/simplepie_enclosure/get_categories.md new file mode 100644 index 000000000..4c7a06ef1 --- /dev/null +++ b/docs/content/wiki/reference/simplepie_enclosure/get_categories.md @@ -0,0 +1,45 @@ ++++ +title = "get_categories()" ++++ + +## Description {#description} + +```php +class SimplePie_Enclosure { + get_categories () +} +``` + +Returns all available categories for the enclosure as an array of [SimplePie_Category](@/wiki/reference/simplepie_category/_index.md) objects. + +## Availability {#availability} + +- Available since SimplePie 1.0. + +## Examples {#examples} + +```php +$feed = new SimplePie(); +$feed->set_feed_url('http://simplepie.org/blog/feed/'); +$feed->init(); +$feed->handle_content_type(); + +foreach ($feed->get_items() as $item) +{ + if ($enclosure = $item->get_enclosure()) + { + foreach ((array) $enclosure->get_categories() as $category) + { + echo $category->get_label(); + } + } +} +``` + +## See Also {#see_also} + +- [SimplePie](@/wiki/reference/simplepie/_index.md) +- [SimplePie_Item](@/wiki/reference/simplepie_item/_index.md) +- [SimplePie_Enclosure](@/wiki/reference/simplepie_enclosure/_index.md) +- [SimplePie_Category](@/wiki/reference/simplepie_category/_index.md) +- [get_category()](@/wiki/reference/simplepie_enclosure/get_category.md) diff --git a/docs/content/wiki/reference/simplepie_enclosure/get_category.md b/docs/content/wiki/reference/simplepie_enclosure/get_category.md new file mode 100644 index 000000000..288ac750f --- /dev/null +++ b/docs/content/wiki/reference/simplepie_enclosure/get_category.md @@ -0,0 +1,42 @@ ++++ +title = "get_category()" ++++ + +## Description {#description} + +```php +class SimplePie_Enclosure { + get_category () +} +``` + +Returns a single category for the enclosure. Returns a [SimplePie_Category](@/wiki/reference/simplepie_category/_index.md) object. + +## Availability {#availability} + +- Available since SimplePie 1.0. + +## Examples {#examples} + +```php +$feed = new SimplePie(); +$feed->set_feed_url('http://simplepie.org/blog/feed/'); +$feed->init(); +$feed->handle_content_type(); + +foreach ($feed->get_items() as $item) +{ + if ($enclosure = $item->get_enclosure()) + { + echo $enclosure->get_category(); + } +} +``` + +## See Also {#see_also} + +- [SimplePie](@/wiki/reference/simplepie/_index.md) +- [SimplePie_Item](@/wiki/reference/simplepie_item/_index.md) +- [SimplePie_Enclosure](@/wiki/reference/simplepie_enclosure/_index.md) +- [SimplePie_Category](@/wiki/reference/simplepie_category/_index.md) +- [get_categories()](@/wiki/reference/simplepie_enclosure/get_categories.md) diff --git a/docs/content/wiki/reference/simplepie_enclosure/get_channels.md b/docs/content/wiki/reference/simplepie_enclosure/get_channels.md new file mode 100644 index 000000000..91f7399c5 --- /dev/null +++ b/docs/content/wiki/reference/simplepie_enclosure/get_channels.md @@ -0,0 +1,40 @@ ++++ +title = "get_channels()" ++++ + +## Description {#description} + +```php +class SimplePie_Enclosure { + get_channels () +} +``` + +Returns the number of audio channels for the enclosure. This only applies to `` enclosures. + +## Availability {#availability} + +- Available since SimplePie 1.0. + +## Examples {#examples} + +```php +$feed = new SimplePie(); +$feed->set_feed_url('http://simplepie.org/blog/feed/'); +$feed->init(); +$feed->handle_content_type(); + +foreach ($feed->get_items() as $item) +{ + if ($enclosure = $item->get_enclosure()) + { + echo $enclosure->get_channels(); + } +} +``` + +## See Also {#see_also} + +- [SimplePie](@/wiki/reference/simplepie/_index.md) +- [SimplePie_Item](@/wiki/reference/simplepie_item/_index.md) +- [SimplePie_Enclosure](@/wiki/reference/simplepie_enclosure/_index.md) diff --git a/docs/content/wiki/reference/simplepie_enclosure/get_copyright.md b/docs/content/wiki/reference/simplepie_enclosure/get_copyright.md new file mode 100644 index 000000000..5b8ae504c --- /dev/null +++ b/docs/content/wiki/reference/simplepie_enclosure/get_copyright.md @@ -0,0 +1,41 @@ ++++ +title = "get_copyright()" ++++ + +## Description {#description} + +```php +class SimplePie_Enclosure { + get_copyright () +} +``` + +Returns the copyright information for the enclosure. This is is specific to `` data. Returns a [SimplePie_Copyright](@/wiki/reference/simplepie_copyright/_index.md) object. + +## Availability {#availability} + +- Available since SimplePie 1.0. + +## Examples {#examples} + +```php +$feed = new SimplePie(); +$feed->set_feed_url('http://simplepie.org/blog/feed/'); +$feed->init(); +$feed->handle_content_type(); + +foreach ($feed->get_items() as $item) +{ + if ($enclosure = $item->get_enclosure()) + { + echo $enclosure->get_copyright(); + } +} +``` + +## See Also {#see_also} + +- [SimplePie](@/wiki/reference/simplepie/_index.md) +- [SimplePie_Item](@/wiki/reference/simplepie_item/_index.md) +- [SimplePie_Enclosure](@/wiki/reference/simplepie_enclosure/_index.md) +- [SimplePie_Copyright](@/wiki/reference/simplepie_copyright/_index.md) diff --git a/docs/content/wiki/reference/simplepie_enclosure/get_credit.md b/docs/content/wiki/reference/simplepie_enclosure/get_credit.md new file mode 100644 index 000000000..9fbebd2f0 --- /dev/null +++ b/docs/content/wiki/reference/simplepie_enclosure/get_credit.md @@ -0,0 +1,42 @@ ++++ +title = "get_credit()" ++++ + +## Description {#description} + +```php +class SimplePie_Enclosure { + get_credit () +} +``` + +Returns a single credit for the enclosure. This is is specific to `` data. Returns a [SimplePie_Credit](@/wiki/reference/simplepie_credit/_index.md) object. + +## Availability {#availability} + +- Available since SimplePie 1.0. + +## Examples {#examples} + +```php +$feed = new SimplePie(); +$feed->set_feed_url('http://simplepie.org/blog/feed/'); +$feed->init(); +$feed->handle_content_type(); + +foreach ($feed->get_items() as $item) +{ + if ($enclosure = $item->get_enclosure()) + { + echo $enclosure->get_credit(); + } +} +``` + +## See Also {#see_also} + +- [SimplePie](@/wiki/reference/simplepie/_index.md) +- [SimplePie_Item](@/wiki/reference/simplepie_item/_index.md) +- [SimplePie_Enclosure](@/wiki/reference/simplepie_enclosure/_index.md) +- [SimplePie_Credit](@/wiki/reference/simplepie_credit/_index.md) +- [get_credits()](@/wiki/reference/simplepie_enclosure/get_credits.md) diff --git a/docs/content/wiki/reference/simplepie_enclosure/get_credits.md b/docs/content/wiki/reference/simplepie_enclosure/get_credits.md new file mode 100644 index 000000000..153a5ace9 --- /dev/null +++ b/docs/content/wiki/reference/simplepie_enclosure/get_credits.md @@ -0,0 +1,45 @@ ++++ +title = "get_credits()" ++++ + +## Description {#description} + +```php +class SimplePie_Enclosure { + get_credits () +} +``` + +Returns all available credits for the enclosure as an array of [SimplePie_Credit](@/wiki/reference/simplepie_credit/_index.md) objects. This is is specific to `` data. + +## Availability {#availability} + +- Available since SimplePie 1.0. + +## Examples {#examples} + +```php +$feed = new SimplePie(); +$feed->set_feed_url('http://simplepie.org/blog/feed/'); +$feed->init(); +$feed->handle_content_type(); + +foreach ($feed->get_items() as $item) +{ + if ($enclosure = $item->get_enclosure()) + { + foreach ((array) $enclosure->get_credits() as $credit) + { + echo $credit->get_name(); + } + } +} +``` + +## See Also {#see_also} + +- [SimplePie](@/wiki/reference/simplepie/_index.md) +- [SimplePie_Item](@/wiki/reference/simplepie_item/_index.md) +- [SimplePie_Enclosure](@/wiki/reference/simplepie_enclosure/_index.md) +- [SimplePie_Credit](@/wiki/reference/simplepie_credit/_index.md) +- [get_credit()](@/wiki/reference/simplepie_enclosure/get_credit.md) diff --git a/docs/content/wiki/reference/simplepie_enclosure/get_description.md b/docs/content/wiki/reference/simplepie_enclosure/get_description.md new file mode 100644 index 000000000..e020afabe --- /dev/null +++ b/docs/content/wiki/reference/simplepie_enclosure/get_description.md @@ -0,0 +1,40 @@ ++++ +title = "get_description()" ++++ + +## Description {#description} + +```php +class SimplePie_Enclosure { + get_description () +} +``` + +Returns the description for the enclosure. This is is specific to `` data. + +## Availability {#availability} + +- Available since SimplePie 1.0. + +## Examples {#examples} + +```php +$feed = new SimplePie(); +$feed->set_feed_url('http://simplepie.org/blog/feed/'); +$feed->init(); +$feed->handle_content_type(); + +foreach ($feed->get_items() as $item) +{ + if ($enclosure = $item->get_enclosure()) + { + echo $enclosure->get_description(); + } +} +``` + +## See Also {#see_also} + +- [SimplePie](@/wiki/reference/simplepie/_index.md) +- [SimplePie_Item](@/wiki/reference/simplepie_item/_index.md) +- [SimplePie_Enclosure](@/wiki/reference/simplepie_enclosure/_index.md) diff --git a/docs/content/wiki/reference/simplepie_enclosure/get_duration.md b/docs/content/wiki/reference/simplepie_enclosure/get_duration.md new file mode 100644 index 000000000..cc8189b93 --- /dev/null +++ b/docs/content/wiki/reference/simplepie_enclosure/get_duration.md @@ -0,0 +1,46 @@ ++++ +title = "get_duration()" ++++ + +## Description {#description} + +```php +class SimplePie_Enclosure { + get_duration ( [(bool) $convert = false] ) +} +``` + +Returns the duration for the enclosure in seconds. + +## Availability {#availability} + +- Available since SimplePie 1.0. + +## Parameters {#parameters} + +### convert {#convert} + +This will take the number of seconds (e.g. 4127) and converts them to `hh:mm:ss` format (e.g. 1:08:47). + +## Examples {#examples} + +```php +$feed = new SimplePie(); +$feed->set_feed_url('http://simplepie.org/blog/feed/'); +$feed->init(); +$feed->handle_content_type(); + +foreach ($feed->get_items() as $item) +{ + if ($enclosure = $item->get_enclosure()) + { + echo $enclosure->get_duration(true); + } +} +``` + +## See Also {#see_also} + +- [SimplePie](@/wiki/reference/simplepie/_index.md) +- [SimplePie_Item](@/wiki/reference/simplepie_item/_index.md) +- [SimplePie_Enclosure](@/wiki/reference/simplepie_enclosure/_index.md) diff --git a/docs/content/wiki/reference/simplepie_enclosure/get_expression.md b/docs/content/wiki/reference/simplepie_enclosure/get_expression.md new file mode 100644 index 000000000..774cb8905 --- /dev/null +++ b/docs/content/wiki/reference/simplepie_enclosure/get_expression.md @@ -0,0 +1,40 @@ ++++ +title = "get_expression()" ++++ + +## Description {#description} + +```php +class SimplePie_Enclosure { + get_expression () +} +``` + +Returns the expression of the enclosure (e.g. full, partial, clip). This only applies to `` enclosures. + +## Availability {#availability} + +- Available since SimplePie 1.0. + +## Examples {#examples} + +```php +$feed = new SimplePie(); +$feed->set_feed_url('http://simplepie.org/blog/feed/'); +$feed->init(); +$feed->handle_content_type(); + +foreach ($feed->get_items() as $item) +{ + if ($enclosure = $item->get_enclosure()) + { + echo $enclosure->get_expression(); + } +} +``` + +## See Also {#see_also} + +- [SimplePie](@/wiki/reference/simplepie/_index.md) +- [SimplePie_Item](@/wiki/reference/simplepie_item/_index.md) +- [SimplePie_Enclosure](@/wiki/reference/simplepie_enclosure/_index.md) diff --git a/docs/content/wiki/reference/simplepie_enclosure/get_extension.md b/docs/content/wiki/reference/simplepie_enclosure/get_extension.md new file mode 100644 index 000000000..be4ef3995 --- /dev/null +++ b/docs/content/wiki/reference/simplepie_enclosure/get_extension.md @@ -0,0 +1,40 @@ ++++ +title = "get_extension()" ++++ + +## Description {#description} + +```php +class SimplePie_Enclosure { + get_extension() +} +``` + +Returns the file extension for the enclosure. + +## Availability {#availability} + +- Available since SimplePie Beta 2. + +## Examples {#examples} + +```php +$feed = new SimplePie(); +$feed->set_feed_url('http://simplepie.org/blog/feed/'); +$feed->init(); +$feed->handle_content_type(); + +foreach ($feed->get_items() as $item) +{ + if ($enclosure = $item->get_enclosure()) + { + echo $enclosure->get_extension(); + } +} +``` + +## See Also {#see_also} + +- [SimplePie](@/wiki/reference/simplepie/_index.md) +- [SimplePie_Item](@/wiki/reference/simplepie_item/_index.md) +- [SimplePie_Enclosure](@/wiki/reference/simplepie_enclosure/_index.md) diff --git a/docs/content/wiki/reference/simplepie_enclosure/get_framerate.md b/docs/content/wiki/reference/simplepie_enclosure/get_framerate.md new file mode 100644 index 000000000..386f1511a --- /dev/null +++ b/docs/content/wiki/reference/simplepie_enclosure/get_framerate.md @@ -0,0 +1,40 @@ ++++ +title = "get_framerate()" ++++ + +## Description {#description} + +```php +class SimplePie_Enclosure { + get_framerate () +} +``` + +Returns the framerate of the enclosure. This only applies to `` enclosures. + +## Availability {#availability} + +- Available since SimplePie 1.0. + +## Examples {#examples} + +```php +$feed = new SimplePie(); +$feed->set_feed_url('http://simplepie.org/blog/feed/'); +$feed->init(); +$feed->handle_content_type(); + +foreach ($feed->get_items() as $item) +{ + if ($enclosure = $item->get_enclosure()) + { + echo $enclosure->get_framerate(); + } +} +``` + +## See Also {#see_also} + +- [SimplePie](@/wiki/reference/simplepie/_index.md) +- [SimplePie_Item](@/wiki/reference/simplepie_item/_index.md) +- [SimplePie_Enclosure](@/wiki/reference/simplepie_enclosure/_index.md) diff --git a/docs/content/wiki/reference/simplepie_enclosure/get_handler.md b/docs/content/wiki/reference/simplepie_enclosure/get_handler.md new file mode 100644 index 000000000..6744fd116 --- /dev/null +++ b/docs/content/wiki/reference/simplepie_enclosure/get_handler.md @@ -0,0 +1,40 @@ ++++ +title = "get_handler()" ++++ + +## Description {#description} + +```php +class SimplePie_Enclosure { + get_handler() +} +``` + +Returns the preferred handler for embedded enclosures. Will return one of he following values: `flash`, `fmedia` (Flash Media), `mp3`, `odeo` (from the [Odeo](http://odeo.com) service), `quicktime`, or `wmedia` (Windows Media). + +## Availability {#availability} + +- Available since SimplePie 1.0. + +## Examples {#examples} + +```php +$feed = new SimplePie(); +$feed->set_feed_url('http://simplepie.org/blog/feed/'); +$feed->init(); +$feed->handle_content_type(); + +foreach ($feed->get_items() as $item) +{ + if ($enclosure = $item->get_enclosure()) + { + echo $enclosure->get_handler(); + } +} +``` + +## See Also {#see_also} + +- [SimplePie](@/wiki/reference/simplepie/_index.md) +- [SimplePie_Item](@/wiki/reference/simplepie_item/_index.md) +- [SimplePie_Enclosure](@/wiki/reference/simplepie_enclosure/_index.md) diff --git a/docs/content/wiki/reference/simplepie_enclosure/get_hash.md b/docs/content/wiki/reference/simplepie_enclosure/get_hash.md new file mode 100644 index 000000000..7b010481a --- /dev/null +++ b/docs/content/wiki/reference/simplepie_enclosure/get_hash.md @@ -0,0 +1,43 @@ ++++ +title = "get_hash()" ++++ + +## Description {#description} + +```php +class SimplePie_Enclosure { + get_hash () +} +``` + +Returns a single file hash for the enclosure. This is is specific to `` data. + +Hashes are returned formatted as `md5:0123456789abcdef0123456789abcdef`. + +## Availability {#availability} + +- Available since SimplePie 1.0. + +## Examples {#examples} + +```php +$feed = new SimplePie(); +$feed->set_feed_url('http://simplepie.org/blog/feed/'); +$feed->init(); +$feed->handle_content_type(); + +foreach ($feed->get_items() as $item) +{ + if ($enclosure = $item->get_enclosure()) + { + echo $enclosure->get_hash(); + } +} +``` + +## See Also {#see_also} + +- [SimplePie](@/wiki/reference/simplepie/_index.md) +- [SimplePie_Item](@/wiki/reference/simplepie_item/_index.md) +- [SimplePie_Enclosure](@/wiki/reference/simplepie_enclosure/_index.md) +- [get_hashes()](@/wiki/reference/simplepie_enclosure/get_hashes.md) diff --git a/docs/content/wiki/reference/simplepie_enclosure/get_hashes.md b/docs/content/wiki/reference/simplepie_enclosure/get_hashes.md new file mode 100644 index 000000000..561f6b8ac --- /dev/null +++ b/docs/content/wiki/reference/simplepie_enclosure/get_hashes.md @@ -0,0 +1,46 @@ ++++ +title = "get_hashes()" ++++ + +## Description {#description} + +```php +class SimplePie_Enclosure { + get_hashes () +} +``` + +Returns all available file hashes for the enclosure as an array. This is is specific to `` data. + +Hashes are returned formatted as `md5:0123456789abcdef0123456789abcdef`. + +## Availability {#availability} + +- Available since SimplePie 1.0. + +## Examples {#examples} + +```php +$feed = new SimplePie(); +$feed->set_feed_url('http://simplepie.org/blog/feed/'); +$feed->init(); +$feed->handle_content_type(); + +foreach ($feed->get_items() as $item) +{ + if ($enclosure = $item->get_enclosure()) + { + foreach ((array) $enclosure->get_hashes() as $hash) + { + echo $hash; + } + } +} +``` + +## See Also {#see_also} + +- [SimplePie](@/wiki/reference/simplepie/_index.md) +- [SimplePie_Item](@/wiki/reference/simplepie_item/_index.md) +- [SimplePie_Enclosure](@/wiki/reference/simplepie_enclosure/_index.md) +- [get_hash()](@/wiki/reference/simplepie_enclosure/get_hash.md) diff --git a/docs/content/wiki/reference/simplepie_enclosure/get_height.md b/docs/content/wiki/reference/simplepie_enclosure/get_height.md new file mode 100644 index 000000000..6b3e1a259 --- /dev/null +++ b/docs/content/wiki/reference/simplepie_enclosure/get_height.md @@ -0,0 +1,40 @@ ++++ +title = "get_height()" ++++ + +## Description {#description} + +```php +class SimplePie_Enclosure { + get_height () +} +``` + +Returns the height of the enclosure. This only applies to `` enclosures. + +## Availability {#availability} + +- Available since SimplePie 1.0. + +## Examples {#examples} + +```php +$feed = new SimplePie(); +$feed->set_feed_url('http://simplepie.org/blog/feed/'); +$feed->init(); +$feed->handle_content_type(); + +foreach ($feed->get_items() as $item) +{ + if ($enclosure = $item->get_enclosure()) + { + echo $enclosure->get_height(); + } +} +``` + +## See Also {#see_also} + +- [SimplePie](@/wiki/reference/simplepie/_index.md) +- [SimplePie_Item](@/wiki/reference/simplepie_item/_index.md) +- [SimplePie_Enclosure](@/wiki/reference/simplepie_enclosure/_index.md) diff --git a/docs/content/wiki/reference/simplepie_enclosure/get_keyword.md b/docs/content/wiki/reference/simplepie_enclosure/get_keyword.md new file mode 100644 index 000000000..be109b55a --- /dev/null +++ b/docs/content/wiki/reference/simplepie_enclosure/get_keyword.md @@ -0,0 +1,41 @@ ++++ +title = "get_keyword()" ++++ + +## Description {#description} + +```php +class SimplePie_Enclosure { + get_keyword () +} +``` + +Returns a single keyword for the enclosure. + +## Availability {#availability} + +- Available since SimplePie 1.0. + +## Examples {#examples} + +```php +$feed = new SimplePie(); +$feed->set_feed_url('http://simplepie.org/blog/feed/'); +$feed->init(); +$feed->handle_content_type(); + +foreach ($feed->get_items() as $item) +{ + if ($enclosure = $item->get_enclosure()) + { + echo $enclosure->get_keyword(); + } +} +``` + +## See Also {#see_also} + +- [SimplePie](@/wiki/reference/simplepie/_index.md) +- [SimplePie_Item](@/wiki/reference/simplepie_item/_index.md) +- [SimplePie_Enclosure](@/wiki/reference/simplepie_enclosure/_index.md) +- [get_keywords()](@/wiki/reference/simplepie_enclosure/get_keywords.md) diff --git a/docs/content/wiki/reference/simplepie_enclosure/get_keywords.md b/docs/content/wiki/reference/simplepie_enclosure/get_keywords.md new file mode 100644 index 000000000..6f150c29f --- /dev/null +++ b/docs/content/wiki/reference/simplepie_enclosure/get_keywords.md @@ -0,0 +1,44 @@ ++++ +title = "get_keywords()" ++++ + +## Description {#description} + +```php +class SimplePie_Enclosure { + get_keywords () +} +``` + +Returns all available keywords for the enclosure as an array. + +## Availability {#availability} + +- Available since SimplePie 1.0. + +## Examples {#examples} + +```php +$feed = new SimplePie(); +$feed->set_feed_url('http://simplepie.org/blog/feed/'); +$feed->init(); +$feed->handle_content_type(); + +foreach ($feed->get_items() as $item) +{ + if ($enclosure = $item->get_enclosure()) + { + foreach ((array) $enclosure->get_keywords() as $keyword) + { + echo $keyword; + } + } +} +``` + +## See Also {#see_also} + +- [SimplePie](@/wiki/reference/simplepie/_index.md) +- [SimplePie_Item](@/wiki/reference/simplepie_item/_index.md) +- [SimplePie_Enclosure](@/wiki/reference/simplepie_enclosure/_index.md) +- [get_keyword()](@/wiki/reference/simplepie_enclosure/get_keyword.md) diff --git a/docs/content/wiki/reference/simplepie_enclosure/get_language.md b/docs/content/wiki/reference/simplepie_enclosure/get_language.md new file mode 100644 index 000000000..2f26da218 --- /dev/null +++ b/docs/content/wiki/reference/simplepie_enclosure/get_language.md @@ -0,0 +1,40 @@ ++++ +title = "get_language()" ++++ + +## Description {#description} + +```php +class SimplePie_Enclosure { + get_language () +} +``` + +Returns the language of the enclosure. This only applies to `` enclosures. + +## Availability {#availability} + +- Available since SimplePie 1.0. + +## Examples {#examples} + +```php +$feed = new SimplePie(); +$feed->set_feed_url('http://simplepie.org/blog/feed/'); +$feed->init(); +$feed->handle_content_type(); + +foreach ($feed->get_items() as $item) +{ + if ($enclosure = $item->get_enclosure()) + { + echo $enclosure->get_language(); + } +} +``` + +## See Also {#see_also} + +- [SimplePie](@/wiki/reference/simplepie/_index.md) +- [SimplePie_Item](@/wiki/reference/simplepie_item/_index.md) +- [SimplePie_Enclosure](@/wiki/reference/simplepie_enclosure/_index.md) diff --git a/docs/content/wiki/reference/simplepie_enclosure/get_length.md b/docs/content/wiki/reference/simplepie_enclosure/get_length.md new file mode 100644 index 000000000..4a5e30843 --- /dev/null +++ b/docs/content/wiki/reference/simplepie_enclosure/get_length.md @@ -0,0 +1,40 @@ ++++ +title = "get_length()" ++++ + +## Description {#description} + +```php +class SimplePie_Enclosure { + get_length() +} +``` + +Returns the file size of the enclosure in bytes. + +## Availability {#availability} + +- Available since SimplePie Beta 2. + +## Examples {#examples} + +```php +$feed = new SimplePie(); +$feed->set_feed_url('http://simplepie.org/blog/feed/'); +$feed->init(); +$feed->handle_content_type(); + +foreach ($feed->get_items() as $item) +{ + if ($enclosure = $item->get_enclosure()) + { + echo $enclosure->get_length(); + } +} +``` + +## See Also {#see_also} + +- [SimplePie](@/wiki/reference/simplepie/_index.md) +- [SimplePie_Item](@/wiki/reference/simplepie_item/_index.md) +- [SimplePie_Enclosure](@/wiki/reference/simplepie_enclosure/_index.md) diff --git a/docs/content/wiki/reference/simplepie_enclosure/get_link.md b/docs/content/wiki/reference/simplepie_enclosure/get_link.md new file mode 100644 index 000000000..e04f1c663 --- /dev/null +++ b/docs/content/wiki/reference/simplepie_enclosure/get_link.md @@ -0,0 +1,40 @@ ++++ +title = "get_link()" ++++ + +## Description {#description} + +```php +class SimplePie_Enclosure { + get_link() +} +``` + +Returns the URL of the enclosure. + +## Availability {#availability} + +- Available since SimplePie Beta 2. + +## Examples {#examples} + +```php +$feed = new SimplePie(); +$feed->set_feed_url('http://simplepie.org/blog/feed/'); +$feed->init(); +$feed->handle_content_type(); + +foreach ($feed->get_items() as $item) +{ + if ($enclosure = $item->get_enclosure()) + { + echo $enclosure->get_link(); + } +} +``` + +## See Also {#see_also} + +- [SimplePie](@/wiki/reference/simplepie/_index.md) +- [SimplePie_Item](@/wiki/reference/simplepie_item/_index.md) +- [SimplePie_Enclosure](@/wiki/reference/simplepie_enclosure/_index.md) diff --git a/docs/content/wiki/reference/simplepie_enclosure/get_medium.md b/docs/content/wiki/reference/simplepie_enclosure/get_medium.md new file mode 100644 index 000000000..300f1bec9 --- /dev/null +++ b/docs/content/wiki/reference/simplepie_enclosure/get_medium.md @@ -0,0 +1,40 @@ ++++ +title = "get_medium()" ++++ + +## Description {#description} + +```php +class SimplePie_Enclosure { + get_medium () +} +``` + +Returns the intended medium for the enclosure (e.g. video, audio, etc.). This only applies to `` enclosures. + +## Availability {#availability} + +- Available since SimplePie 1.0. + +## Examples {#examples} + +```php +$feed = new SimplePie(); +$feed->set_feed_url('http://simplepie.org/blog/feed/'); +$feed->init(); +$feed->handle_content_type(); + +foreach ($feed->get_items() as $item) +{ + if ($enclosure = $item->get_enclosure()) + { + echo $enclosure->get_medium(); + } +} +``` + +## See Also {#see_also} + +- [SimplePie](@/wiki/reference/simplepie/_index.md) +- [SimplePie_Item](@/wiki/reference/simplepie_item/_index.md) +- [SimplePie_Enclosure](@/wiki/reference/simplepie_enclosure/_index.md) diff --git a/docs/content/wiki/reference/simplepie_enclosure/get_player.md b/docs/content/wiki/reference/simplepie_enclosure/get_player.md new file mode 100644 index 000000000..99b46e9b1 --- /dev/null +++ b/docs/content/wiki/reference/simplepie_enclosure/get_player.md @@ -0,0 +1,40 @@ ++++ +title = "get_player()" ++++ + +## Description {#description} + +```php +class SimplePie_Enclosure { + get_player () +} +``` + +Returns the player for the enclosure, which is typically the same as the [get_permalink()](@/wiki/reference/simplepie_item/get_permalink.md), but isn't necessarily. + +## Availability {#availability} + +- Available since SimplePie 1.0. + +## Examples {#examples} + +```php +$feed = new SimplePie(); +$feed->set_feed_url('http://simplepie.org/blog/feed/'); +$feed->init(); +$feed->handle_content_type(); + +foreach ($feed->get_items() as $item) +{ + if ($enclosure = $item->get_enclosure()) + { + echo $enclosure->get_player(); + } +} +``` + +## See Also {#see_also} + +- [SimplePie](@/wiki/reference/simplepie/_index.md) +- [SimplePie_Item](@/wiki/reference/simplepie_item/_index.md) +- [SimplePie_Enclosure](@/wiki/reference/simplepie_enclosure/_index.md) diff --git a/docs/content/wiki/reference/simplepie_enclosure/get_rating.md b/docs/content/wiki/reference/simplepie_enclosure/get_rating.md new file mode 100644 index 000000000..41043908d --- /dev/null +++ b/docs/content/wiki/reference/simplepie_enclosure/get_rating.md @@ -0,0 +1,42 @@ ++++ +title = "get_rating()" ++++ + +## Description {#description} + +```php +class SimplePie_Enclosure { + get_rating () +} +``` + +Returns a single rating for the enclosure. Returns a [SimplePie_Rating](@/wiki/reference/simplepie_rating/_index.md) object. + +## Availability {#availability} + +- Available since SimplePie 1.0. + +## Examples {#examples} + +```php +$feed = new SimplePie(); +$feed->set_feed_url('http://simplepie.org/blog/feed/'); +$feed->init(); +$feed->handle_content_type(); + +foreach ($feed->get_items() as $item) +{ + if ($enclosure = $item->get_enclosure()) + { + echo $enclosure->get_rating(); + } +} +``` + +## See Also {#see_also} + +- [SimplePie](@/wiki/reference/simplepie/_index.md) +- [SimplePie_Item](@/wiki/reference/simplepie_item/_index.md) +- [SimplePie_Enclosure](@/wiki/reference/simplepie_enclosure/_index.md) +- [SimplePie_Rating](@/wiki/reference/simplepie_rating/_index.md) +- [get_ratings()](@/wiki/reference/simplepie_enclosure/get_ratings.md) diff --git a/docs/content/wiki/reference/simplepie_enclosure/get_ratings.md b/docs/content/wiki/reference/simplepie_enclosure/get_ratings.md new file mode 100644 index 000000000..a16d374c3 --- /dev/null +++ b/docs/content/wiki/reference/simplepie_enclosure/get_ratings.md @@ -0,0 +1,45 @@ ++++ +title = "get_ratings()" ++++ + +## Description {#description} + +```php +class SimplePie_Enclosure { + get_ratings () +} +``` + +Returns all available ratings for the enclosure as an array of [SimplePie_Rating](@/wiki/reference/simplepie_rating/_index.md) objects. + +## Availability {#availability} + +- Available since SimplePie 1.0. + +## Examples {#examples} + +```php +$feed = new SimplePie(); +$feed->set_feed_url('http://simplepie.org/blog/feed/'); +$feed->init(); +$feed->handle_content_type(); + +foreach ($feed->get_items() as $item) +{ + if ($enclosure = $item->get_enclosure()) + { + foreach ((array) $enclosure->get_ratings() as $rating) + { + echo $rating->get_value(); + } + } +} +``` + +## See Also {#see_also} + +- [SimplePie](@/wiki/reference/simplepie/_index.md) +- [SimplePie_Item](@/wiki/reference/simplepie_item/_index.md) +- [SimplePie_Enclosure](@/wiki/reference/simplepie_enclosure/_index.md) +- [SimplePie_Rating](@/wiki/reference/simplepie_rating/_index.md) +- [get_rating()](@/wiki/reference/simplepie_enclosure/get_rating.md) diff --git a/docs/content/wiki/reference/simplepie_enclosure/get_real_type.md b/docs/content/wiki/reference/simplepie_enclosure/get_real_type.md new file mode 100644 index 000000000..8b5e12889 --- /dev/null +++ b/docs/content/wiki/reference/simplepie_enclosure/get_real_type.md @@ -0,0 +1,40 @@ ++++ +title = "get_real_type()" ++++ + +## Description {#description} + +```php +class SimplePie_Enclosure { + get_real_type() +} +``` + +If the file type from [get_type()](@/wiki/reference/simplepie_enclosure/get_type.md) isn't on our list of supported media types, the feed is probably lying to us (which happens from time to time). This will return the file type that the enclosure likely is. If the type isn't on the list, and SimplePie can't guess what it is based on the file extension, SimplePie will return the noted mime type. + +## Availability {#availability} + +- Available since SimplePie 1.0. + +## Examples {#examples} + +```php +$feed = new SimplePie(); +$feed->set_feed_url('http://simplepie.org/blog/feed/'); +$feed->init(); +$feed->handle_content_type(); + +foreach ($feed->get_items() as $item) +{ + if ($enclosure = $item->get_enclosure()) + { + echo $enclosure->get_real_type(); + } +} +``` + +## See Also {#see_also} + +- [SimplePie](@/wiki/reference/simplepie/_index.md) +- [SimplePie_Item](@/wiki/reference/simplepie_item/_index.md) +- [SimplePie_Enclosure](@/wiki/reference/simplepie_enclosure/_index.md) diff --git a/docs/content/wiki/reference/simplepie_enclosure/get_restriction.md b/docs/content/wiki/reference/simplepie_enclosure/get_restriction.md new file mode 100644 index 000000000..0e4282a55 --- /dev/null +++ b/docs/content/wiki/reference/simplepie_enclosure/get_restriction.md @@ -0,0 +1,45 @@ ++++ +title = "get_restriction()" ++++ + +## Description {#description} + +```php +class SimplePie_Enclosure { + get_restriction () +} +``` + +Returns a single restriction for the enclosure. Returns a [SimplePie_Restriction](@/wiki/reference/simplepie_restriction/_index.md) object. + +## Availability {#availability} + +- Available since SimplePie 1.0. + +## Examples {#examples} + +```php +$feed = new SimplePie(); +$feed->set_feed_url('http://simplepie.org/blog/feed/'); +$feed->init(); +$feed->handle_content_type(); + +foreach ($feed->get_items() as $item) +{ + if ($enclosure = $item->get_enclosure()) + { + if ($restriction = $enclosure->get_restriction()) + { + echo $restriction->get_value(); + } + } +} +``` + +## See Also {#see_also} + +- [SimplePie](@/wiki/reference/simplepie/_index.md) +- [SimplePie_Item](@/wiki/reference/simplepie_item/_index.md) +- [SimplePie_Enclosure](@/wiki/reference/simplepie_enclosure/_index.md) +- [SimplePie_Restriction](@/wiki/reference/simplepie_restriction/_index.md) +- [get_restrictions()](@/wiki/reference/simplepie_enclosure/get_restrictions.md) diff --git a/docs/content/wiki/reference/simplepie_enclosure/get_restrictions.md b/docs/content/wiki/reference/simplepie_enclosure/get_restrictions.md new file mode 100644 index 000000000..7aecef0d9 --- /dev/null +++ b/docs/content/wiki/reference/simplepie_enclosure/get_restrictions.md @@ -0,0 +1,45 @@ ++++ +title = "get_restrictions()" ++++ + +## Description {#description} + +```php +class SimplePie_Enclosure { + get_restrictions () +} +``` + +Returns all available restrictions for the enclosure as an array of [SimplePie_Restriction](@/wiki/reference/simplepie_restriction/_index.md) objects. + +## Availability {#availability} + +- Available since SimplePie 1.0. + +## Examples {#examples} + +```php +$feed = new SimplePie(); +$feed->set_feed_url('http://simplepie.org/blog/feed/'); +$feed->init(); +$feed->handle_content_type(); + +foreach ($feed->get_items() as $item) +{ + if ($enclosure = $item->get_enclosure()) + { + foreach((array) $enclosure->get_restrictions() as $restriction) + { + echo $restriction->get_value(); + } + } +} +``` + +## See Also {#see_also} + +- [SimplePie](@/wiki/reference/simplepie/_index.md) +- [SimplePie_Item](@/wiki/reference/simplepie_item/_index.md) +- [SimplePie_Enclosure](@/wiki/reference/simplepie_enclosure/_index.md) +- [SimplePie_Restriction](@/wiki/reference/simplepie_restriction/_index.md) +- [get_restriction()](@/wiki/reference/simplepie_enclosure/get_restriction.md) diff --git a/docs/content/wiki/reference/simplepie_enclosure/get_sampling_rate.md b/docs/content/wiki/reference/simplepie_enclosure/get_sampling_rate.md new file mode 100644 index 000000000..d7c439721 --- /dev/null +++ b/docs/content/wiki/reference/simplepie_enclosure/get_sampling_rate.md @@ -0,0 +1,40 @@ ++++ +title = "get_sampling_rate()" ++++ + +## Description {#description} + +```php +class SimplePie_Enclosure { + get_sampling_rate () +} +``` + +Returns the audio sampling rate of the enclosure. This only applies to `` enclosures. + +## Availability {#availability} + +- Available since SimplePie 1.0. + +## Examples {#examples} + +```php +$feed = new SimplePie(); +$feed->set_feed_url('http://simplepie.org/blog/feed/'); +$feed->init(); +$feed->handle_content_type(); + +foreach ($feed->get_items() as $item) +{ + if ($enclosure = $item->get_enclosure()) + { + echo $enclosure->get_sampling_rate(); + } +} +``` + +## See Also {#see_also} + +- [SimplePie](@/wiki/reference/simplepie/_index.md) +- [SimplePie_Item](@/wiki/reference/simplepie_item/_index.md) +- [SimplePie_Enclosure](@/wiki/reference/simplepie_enclosure/_index.md) diff --git a/docs/content/wiki/reference/simplepie_enclosure/get_size.md b/docs/content/wiki/reference/simplepie_enclosure/get_size.md new file mode 100644 index 000000000..ec9e403fb --- /dev/null +++ b/docs/content/wiki/reference/simplepie_enclosure/get_size.md @@ -0,0 +1,40 @@ ++++ +title = "get_size()" ++++ + +## Description {#description} + +```php +class SimplePie_Enclosure { + get_size() +} +``` + +Returns the file size of the enclosure in mebibytes (which are frequently confused with megabytes). + +## Availability {#availability} + +- Available since SimplePie Beta 2. + +## Examples {#examples} + +```php +$feed = new SimplePie(); +$feed->set_feed_url('http://simplepie.org/blog/feed/'); +$feed->init(); +$feed->handle_content_type(); + +foreach ($feed->get_items() as $item) +{ + if ($enclosure = $item->get_enclosure()) + { + echo $enclosure->get_size(); + } +} +``` + +## See Also {#see_also} + +- [SimplePie](@/wiki/reference/simplepie/_index.md) +- [SimplePie_Item](@/wiki/reference/simplepie_item/_index.md) +- [SimplePie_Enclosure](@/wiki/reference/simplepie_enclosure/_index.md) diff --git a/docs/content/wiki/reference/simplepie_enclosure/get_thumbnail.md b/docs/content/wiki/reference/simplepie_enclosure/get_thumbnail.md new file mode 100644 index 000000000..e6de82abc --- /dev/null +++ b/docs/content/wiki/reference/simplepie_enclosure/get_thumbnail.md @@ -0,0 +1,41 @@ ++++ +title = "get_thumbnail()" ++++ + +## Description {#description} + +```php +class SimplePie_Enclosure { + get_thumbnail () +} +``` + +Returns the URL for a single thumbnails for the enclosure. + +## Availability {#availability} + +- Available since SimplePie 1.0. + +## Examples {#examples} + +```php +$feed = new SimplePie(); +$feed->set_feed_url('http://simplepie.org/blog/feed/'); +$feed->init(); +$feed->handle_content_type(); + +foreach ($feed->get_items() as $item) +{ + if ($enclosure = $item->get_enclosure()) + { + echo $enclosure->get_thumbnail(); + } +} +``` + +## See Also {#see_also} + +- [SimplePie](@/wiki/reference/simplepie/_index.md) +- [SimplePie_Item](@/wiki/reference/simplepie_item/_index.md) +- [SimplePie_Enclosure](@/wiki/reference/simplepie_enclosure/_index.md) +- [get_thumbnails()](@/wiki/reference/simplepie_enclosure/get_thumbnails.md) diff --git a/docs/content/wiki/reference/simplepie_enclosure/get_thumbnails.md b/docs/content/wiki/reference/simplepie_enclosure/get_thumbnails.md new file mode 100644 index 000000000..065bf8be0 --- /dev/null +++ b/docs/content/wiki/reference/simplepie_enclosure/get_thumbnails.md @@ -0,0 +1,44 @@ ++++ +title = "get_thumbnails()" ++++ + +## Description {#description} + +```php +class SimplePie_Enclosure { + get_thumbnails () +} +``` + +Returns all available URLs for thumbnails for the enclosure. + +## Availability {#availability} + +- Available since SimplePie 1.0. + +## Examples {#examples} + +```php +$feed = new SimplePie(); +$feed->set_feed_url('http://simplepie.org/blog/feed/'); +$feed->init(); +$feed->handle_content_type(); + +foreach ($feed->get_items() as $item) +{ + if ($enclosure = $item->get_enclosure()) + { + foreach ((array) $enclosure->get_thumbnails() as $thumbnail) + { + echo $thumbnail; + } + } +} +``` + +## See Also {#see_also} + +- [SimplePie](@/wiki/reference/simplepie/_index.md) +- [SimplePie_Item](@/wiki/reference/simplepie_item/_index.md) +- [SimplePie_Enclosure](@/wiki/reference/simplepie_enclosure/_index.md) +- [get_thumbnail()](@/wiki/reference/simplepie_enclosure/get_thumbnail.md) diff --git a/docs/content/wiki/reference/simplepie_enclosure/get_title.md b/docs/content/wiki/reference/simplepie_enclosure/get_title.md new file mode 100644 index 000000000..d7aa268bb --- /dev/null +++ b/docs/content/wiki/reference/simplepie_enclosure/get_title.md @@ -0,0 +1,40 @@ ++++ +title = "get_title()" ++++ + +## Description {#description} + +```php +class SimplePie_Enclosure { + get_title () +} +``` + +Returns the title for the enclosure. + +## Availability {#availability} + +- Available since SimplePie 1.0. + +## Examples {#examples} + +```php +$feed = new SimplePie(); +$feed->set_feed_url('http://simplepie.org/blog/feed/'); +$feed->init(); +$feed->handle_content_type(); + +foreach ($feed->get_items() as $item) +{ + if ($enclosure = $item->get_enclosure()) + { + echo $enclosure->get_title(); + } +} +``` + +## See Also {#see_also} + +- [SimplePie](@/wiki/reference/simplepie/_index.md) +- [SimplePie_Item](@/wiki/reference/simplepie_item/_index.md) +- [SimplePie_Enclosure](@/wiki/reference/simplepie_enclosure/_index.md) diff --git a/docs/content/wiki/reference/simplepie_enclosure/get_type.md b/docs/content/wiki/reference/simplepie_enclosure/get_type.md new file mode 100644 index 000000000..78018c8ff --- /dev/null +++ b/docs/content/wiki/reference/simplepie_enclosure/get_type.md @@ -0,0 +1,40 @@ ++++ +title = "get_type()" ++++ + +## Description {#description} + +```php +class SimplePie_Enclosure { + get_type() +} +``` + +Returns the mime type of the enclosure, telling us what kind of file it is. + +## Availability {#availability} + +- Available since SimplePie Beta 2. + +## Examples {#examples} + +```php +$feed = new SimplePie(); +$feed->set_feed_url('http://simplepie.org/blog/feed/'); +$feed->init(); +$feed->handle_content_type(); + +foreach ($feed->get_items() as $item) +{ + if ($enclosure = $item->get_enclosure()) + { + echo $enclosure->get_type(); + } +} +``` + +## See Also {#see_also} + +- [SimplePie](@/wiki/reference/simplepie/_index.md) +- [SimplePie_Item](@/wiki/reference/simplepie_item/_index.md) +- [SimplePie_Enclosure](@/wiki/reference/simplepie_enclosure/_index.md) diff --git a/docs/content/wiki/reference/simplepie_enclosure/get_width.md b/docs/content/wiki/reference/simplepie_enclosure/get_width.md new file mode 100644 index 000000000..9aa9cfcfc --- /dev/null +++ b/docs/content/wiki/reference/simplepie_enclosure/get_width.md @@ -0,0 +1,40 @@ ++++ +title = "get_width()" ++++ + +## Description {#description} + +```php +class SimplePie_Enclosure { + get_width () +} +``` + +Returns the width of the enclosure. This only applies to `` enclosures. + +## Availability {#availability} + +- Available since SimplePie 1.0. + +## Examples {#examples} + +```php +$feed = new SimplePie(); +$feed->set_feed_url('http://simplepie.org/blog/feed/'); +$feed->init(); +$feed->handle_content_type(); + +foreach ($feed->get_items() as $item) +{ + if ($enclosure = $item->get_enclosure()) + { + echo $enclosure->get_width(); + } +} +``` + +## See Also {#see_also} + +- [SimplePie](@/wiki/reference/simplepie/_index.md) +- [SimplePie_Item](@/wiki/reference/simplepie_item/_index.md) +- [SimplePie_Enclosure](@/wiki/reference/simplepie_enclosure/_index.md) diff --git a/docs/content/wiki/reference/simplepie_enclosure/native_embed.md b/docs/content/wiki/reference/simplepie_enclosure/native_embed.md new file mode 100644 index 000000000..86fcc2a22 --- /dev/null +++ b/docs/content/wiki/reference/simplepie_enclosure/native_embed.md @@ -0,0 +1,82 @@ ++++ +title = "native_embed()" ++++ + +## Description {#description} + +```php +class SimplePie_Enclosure { + native_embed ( [(array) $options] ) +} +``` + +Embeds the enclosure into the webpage using the HTML `` tag. + +This will use `get_real_type()` to determine which handler should be used to embed the content into the page. SimplePie supports QuickTime, Windows Media, Flash, Flash Media, and the Odeo Player for Odeo feeds. + +Because of the fallout from the [Eolas lawsuit against Microsoft](http://en.wikipedia.org/wiki/Eolas) and the [changes that were recently made to Internet Explorer](http://blogs.msdn.com/ie/archive/2006/04/11/573479.aspx) as a result, we generate and include a [JavaScript library containing functions](http://msdn.microsoft.com/library/default.asp?url=/workshop/author/dhtml/overview/activating_activex.asp) that allow us to embed the multimedia content. + +This function is identical to `embed()` except that, whereas `embed()` uses JavaScript to dynamically create the `` object, this function writes the `` tag directly to your pages, so that JavaScript is not required. It also works better for free webhosts that insert advertisements into everything. On the flip-side, _pages using this function WILL NOT [VALIDATE](http://validator.w3.org) as HTML or XHTML, because the `` tag is invalid._ + +## Availability {#availability} + +- Available since SimplePie Beta 3. + +## Parameters {#parameters} + +### options {#options} + +`options` is an array of multiple options that can all be passed into the [embed()](@/wiki/reference/simplepie_enclosure/embed.md) method. They are as follows: + +- `alt` (string) + Alternate content for when an end-user does not have the appropriate handler installed or when a file type is unsupported. Can be any text or HTML. Defaults to blank. +- `altclass` (string) + If a file type is unsupported, the end-user will see the alt text (above) linked directly to the content. That link will have this value as its class name. Defaults to blank. +- `audio` (string) + This is an image that should be used as a placeholder for audio files before they're loaded (QuickTime-only). Can be any relative or absolute URL. Defaults to blank. +- `bgcolor` (string) + The background color for the media, if not already transparent. Defaults to `#ffffff`. +- `height` (integer) + The height of the embedded media. Accepts any numeric pixel value (such as `360`) or `auto`. Defaults to `auto`, and it is recommended that you use this default. +- `loop` (boolean) + Do you want the media to loop when its done? Defaults to `false`. +- `mediaplayer` (string) + The location of the included `mediaplayer.swf` file. This allows for the playback of Flash Video (`.flv`) files, and is the default handler for non-Odeo MP3's. Defaults to blank. +- `video` (string) + This is an image that should be used as a placeholder for video files before they're loaded (QuickTime-only). Can be any relative or absolute URL. Defaults to blank. +- `width` (integer) + The width of the embedded media. Accepts any numeric pixel value (such as `480`) or `auto`. Defaults to `auto`, and it is recommended that you use this default. +- `widescreen` (boolean) + Is the enclosure widescreen or standard? This applies only to video enclosures, and will automatically resize the content appropriately. Defaults to `false`, implying 4:3 mode. + +**NOTE:** Non-widescreen (4:3) mode with `width` and `height` set to `auto` will default to 480×360 video resolution. Widescreen (16:9) mode with `width` and `height` set to `auto` will default to 480×270 video resolution. + +## Examples {#examples} + +```php +$feed = new SimplePie(); +$feed->set_feed_url('http://youtube.com/rss/global/top_favorites.rss'); +$feed->init(); +$feed->handle_content_type(); + +foreach ($feed->get_items() as $item) +{ + if ($enclosure = $item->get_enclosure()) + { + echo $enclosure->native_embed(array( + 'alt' => 'Download this enclosure!', + 'audio' => './for_the_demo/place_audio.png', + 'video' => './for_the_demo/place_video.png', + 'mediaplayer' => './for_the_demo/mediaplayer.swf', + 'widescreen' => true + )); + } +} +``` + +## See Also {#see_also} + +- [SimplePie](@/wiki/reference/simplepie/_index.md) +- [SimplePie_Item](@/wiki/reference/simplepie_item/_index.md) +- [SimplePie_Enclosure](@/wiki/reference/simplepie_enclosure/_index.md) +- [embed()](@/wiki/reference/simplepie_enclosure/embed.md) diff --git a/docs/content/wiki/reference/simplepie_file/_index.md b/docs/content/wiki/reference/simplepie_file/_index.md new file mode 100644 index 000000000..31c0c525a --- /dev/null +++ b/docs/content/wiki/reference/simplepie_file/_index.md @@ -0,0 +1,26 @@ ++++ +title = "SimplePie_File" ++++ + +
    + +This is a non-public object, and is only intended to be used internally by SimplePie. + +
    + +[SimplePie_File](@/wiki/reference/simplepie_file/_index.md) is used for fetching remote files as well as reading local files. Currently, it supports HTTP 1.0 requests via [cURL](http://php.net/curl) or [fsockopen](http://php.net/fsockopen), while future revisions are expected to support HTTP 1.1 and all of the other cool goodies that provides (better authentication, HTTP-Cache, etc.). This class can be overloaded with [set_file_class()](@/wiki/reference/simplepie/set_file_class.md). + +## See Also {#see_also} + + diff --git a/docs/content/wiki/reference/simplepie_http_parser/_index.md b/docs/content/wiki/reference/simplepie_http_parser/_index.md new file mode 100644 index 000000000..9149b667b --- /dev/null +++ b/docs/content/wiki/reference/simplepie_http_parser/_index.md @@ -0,0 +1,20 @@ ++++ +title = "SimplePie_HTTP_Parser" ++++ + +
    + +This is a non-public object, and is only intended to be used internally by SimplePie. + +
    + +[SimplePie_HTTP_Parser](@/wiki/reference/simplepie_http_parser/_index.md) is used for parsing the HTTP requests/responses that SimplePie receives, primarily via [SimplePie_File](@/wiki/reference/simplepie_file/_index.md). + +## See Also {#see_also} + + diff --git a/docs/content/wiki/reference/simplepie_item/_index.md b/docs/content/wiki/reference/simplepie_item/_index.md new file mode 100644 index 000000000..aa6d0f025 --- /dev/null +++ b/docs/content/wiki/reference/simplepie_item/_index.md @@ -0,0 +1,176 @@ ++++ +title = "SimplePie_Item" ++++ + +[SimplePie_Item](@/wiki/reference/simplepie_item/_index.md) is used for managing all item/entry-related data and methods. This object is not typically called directly, [get_item()](@/wiki/reference/simplepie/get_item.md) and [get_items()](@/wiki/reference/simplepie/get_items.md) return [SimplePie_Item](@/wiki/reference/simplepie_item/_index.md) instances which allow us to access item-related data. This class can be overloaded with [set_item_class()](@/wiki/reference/simplepie/set_item_class.md). + +## See Also {#see_also} + + + +
    + +--- + +## Index {#index} + +### A {#a} + +- [Add_to_blinklist()](@/wiki/reference/simplepie_item/add_to_blinklist.md) +- [Add_to_blogmarks()](@/wiki/reference/simplepie_item/add_to_blogmarks.md) +- [Add_to_delicious()](@/wiki/reference/simplepie_item/add_to_delicious.md) +- [Add_to_digg()](@/wiki/reference/simplepie_item/add_to_digg.md) +- [Add_to_furl()](@/wiki/reference/simplepie_item/add_to_furl.md) +- [Add_to_magnolia()](@/wiki/reference/simplepie_item/add_to_magnolia.md) +- [Add_to_myweb20()](@/wiki/reference/simplepie_item/add_to_myweb20.md) +- [Add_to_newsvine()](@/wiki/reference/simplepie_item/add_to_newsvine.md) +- [Add_to_reddit()](@/wiki/reference/simplepie_item/add_to_reddit.md) +- [Add_to_segnalo()](@/wiki/reference/simplepie_item/add_to_segnalo.md) +- [Add_to_service()](@/wiki/reference/simplepie_item/add_to_service.md) +- [Add_to_simpy()](@/wiki/reference/simplepie_item/add_to_simpy.md) +- [Add_to_spurl()](@/wiki/reference/simplepie_item/add_to_spurl.md) +- [Add_to_wists()](@/wiki/reference/simplepie_item/add_to_wists.md) + +### G {#g} + +- [Get_author()](@/wiki/reference/simplepie_item/get_author.md) +- [Get_authors()](@/wiki/reference/simplepie_item/get_authors.md) +- [Get_categories()](@/wiki/reference/simplepie_item/get_categories.md) +- [Get_category()](@/wiki/reference/simplepie_item/get_category.md) +- [Get_content()](@/wiki/reference/simplepie_item/get_content.md) +- [Get_contributor()](@/wiki/reference/simplepie_item/get_contributor.md) +- [Get_contributors()](@/wiki/reference/simplepie_item/get_contributors.md) +- [Get_copyright()](@/wiki/reference/simplepie_item/get_copyright.md) +- [Get_date()](@/wiki/reference/simplepie_item/get_date.md) +- [Get_description()](@/wiki/reference/simplepie_item/get_description.md) +- [Get_enclosure()](@/wiki/reference/simplepie_item/get_enclosure.md) +- [Get_enclosures()](@/wiki/reference/simplepie_item/get_enclosures.md) +- [Get_feed()](@/wiki/reference/simplepie_item/get_feed.md) +- [Get_id()](@/wiki/reference/simplepie_item/get_id.md) +- [Get_item_tags()](@/wiki/reference/simplepie_item/get_item_tags.md) +- [Get_latitude()](@/wiki/reference/simplepie_item/get_latitude.md) +- [Get_link()](@/wiki/reference/simplepie_item/get_link.md) +- [Get_links()](@/wiki/reference/simplepie_item/get_links.md) +- [Get_local_date()](@/wiki/reference/simplepie_item/get_local_date.md) +- [Get_longitude()](@/wiki/reference/simplepie_item/get_longitude.md) +- [Get_permalink()](@/wiki/reference/simplepie_item/get_permalink.md) +- [Get_source()](@/wiki/reference/simplepie_item/get_source.md) +- [Get_title()](@/wiki/reference/simplepie_item/get_title.md) + +### S {#s} + +- [Search_technorati()](@/wiki/reference/simplepie_item/search_technorati.md) + +
    diff --git a/docs/content/wiki/reference/simplepie_item/add_to_blinklist.md b/docs/content/wiki/reference/simplepie_item/add_to_blinklist.md new file mode 100644 index 000000000..6b3e352eb --- /dev/null +++ b/docs/content/wiki/reference/simplepie_item/add_to_blinklist.md @@ -0,0 +1,36 @@ ++++ +title = "add_to_blinklist()" ++++ + +## Description {#description} + +```php +class SimplePie_Item { + add_to_blinklist () +} +``` + +Returns the URL for posting this particular posting to the [Blinklist](http://www.blinklist.com/) service. + +## Availability {#availability} + +- Available since SimplePie Beta 2. + +## Examples {#examples} + +```php +$feed = new SimplePie(); +$feed->set_feed_url('http://simplepie.org/blog/feed/'); +$feed->init(); +$feed->handle_content_type(); + +foreach ($feed->get_items() as $item) +{ + echo 'Add to Blinklist'; +} +``` + +## See Also {#see_also} + +- [SimplePie](@/wiki/reference/simplepie/_index.md) +- [SimplePie_Item](@/wiki/reference/simplepie_item/_index.md) diff --git a/docs/content/wiki/reference/simplepie_item/add_to_blogmarks.md b/docs/content/wiki/reference/simplepie_item/add_to_blogmarks.md new file mode 100644 index 000000000..8138e087a --- /dev/null +++ b/docs/content/wiki/reference/simplepie_item/add_to_blogmarks.md @@ -0,0 +1,36 @@ ++++ +title = "add_to_blogmarks()" ++++ + +## Description {#description} + +```php +class SimplePie_Item { + add_to_blogmarks () +} +``` + +Returns the URL for posting this particular posting to the [Blogmarks](http://blogmarks.net/) service. + +## Availability {#availability} + +- Available since SimplePie Beta 3. + +## Examples {#examples} + +```php +$feed = new SimplePie(); +$feed->set_feed_url('http://simplepie.org/blog/feed/'); +$feed->init(); +$feed->handle_content_type(); + +foreach ($feed->get_items() as $item) +{ + echo 'Add to Blogmarks'; +} +``` + +## See Also {#see_also} + +- [SimplePie](@/wiki/reference/simplepie/_index.md) +- [SimplePie_Item](@/wiki/reference/simplepie_item/_index.md) diff --git a/docs/content/wiki/reference/simplepie_item/add_to_delicious.md b/docs/content/wiki/reference/simplepie_item/add_to_delicious.md new file mode 100644 index 000000000..175cec52e --- /dev/null +++ b/docs/content/wiki/reference/simplepie_item/add_to_delicious.md @@ -0,0 +1,36 @@ ++++ +title = "add_to_delicious()" ++++ + +## Description {#description} + +```php +class SimplePie_Item { + add_to_delicious () +} +``` + +Returns the URL for posting this particular posting to the [del.icio.us](http://del.icio.us/) service. + +## Availability {#availability} + +- Available since SimplePie Preview Release. + +## Examples {#examples} + +```php +$feed = new SimplePie(); +$feed->set_feed_url('http://simplepie.org/blog/feed/'); +$feed->init(); +$feed->handle_content_type(); + +foreach ($feed->get_items() as $item) +{ + echo 'Add to del.icio.us'; +} +``` + +## See Also {#see_also} + +- [SimplePie](@/wiki/reference/simplepie/_index.md) +- [SimplePie_Item](@/wiki/reference/simplepie_item/_index.md) diff --git a/docs/content/wiki/reference/simplepie_item/add_to_digg.md b/docs/content/wiki/reference/simplepie_item/add_to_digg.md new file mode 100644 index 000000000..3e96908bc --- /dev/null +++ b/docs/content/wiki/reference/simplepie_item/add_to_digg.md @@ -0,0 +1,36 @@ ++++ +title = "add_to_digg()" ++++ + +## Description {#description} + +```php +class SimplePie_Item { + add_to_digg () +} +``` + +Returns the URL for posting this particular posting to the [Digg.com](http://digg.com/) service. + +## Availability {#availability} + +- Available since SimplePie Beta 1. + +## Examples {#examples} + +```php +$feed = new SimplePie(); +$feed->set_feed_url('http://simplepie.org/blog/feed/'); +$feed->init(); +$feed->handle_content_type(); + +foreach ($feed->get_items() as $item) +{ + echo 'Digg It!'; +} +``` + +## See Also {#see_also} + +- [SimplePie](@/wiki/reference/simplepie/_index.md) +- [SimplePie_Item](@/wiki/reference/simplepie_item/_index.md) diff --git a/docs/content/wiki/reference/simplepie_item/add_to_furl.md b/docs/content/wiki/reference/simplepie_item/add_to_furl.md new file mode 100644 index 000000000..40e5a992b --- /dev/null +++ b/docs/content/wiki/reference/simplepie_item/add_to_furl.md @@ -0,0 +1,36 @@ ++++ +title = "add_to_furl()" ++++ + +## Description {#description} + +```php +class SimplePie_Item { + add_to_furl () +} +``` + +Returns the URL for posting this particular posting to the [Furl](http://furl.net/) service. + +## Availability {#availability} + +- Available since SimplePie Beta 1. + +## Examples {#examples} + +```php +$feed = new SimplePie(); +$feed->set_feed_url('http://simplepie.org/blog/feed/'); +$feed->init(); +$feed->handle_content_type(); + +foreach ($feed->get_items() as $item) +{ + echo 'Add to Furl'; +} +``` + +## See Also {#see_also} + +- [SimplePie](@/wiki/reference/simplepie/_index.md) +- [SimplePie_Item](@/wiki/reference/simplepie_item/_index.md) diff --git a/docs/content/wiki/reference/simplepie_item/add_to_magnolia.md b/docs/content/wiki/reference/simplepie_item/add_to_magnolia.md new file mode 100644 index 000000000..e72f2bfb9 --- /dev/null +++ b/docs/content/wiki/reference/simplepie_item/add_to_magnolia.md @@ -0,0 +1,36 @@ ++++ +title = "add_to_magnolia()" ++++ + +## Description {#description} + +```php +class SimplePie_Item { + add_to_magnolia () +} +``` + +Returns the URL for posting this particular posting to the [Ma.gnolia](http://ma.gnolia.com/) service. + +## Availability {#availability} + +- Available since SimplePie Beta 2. + +## Examples {#examples} + +```php +$feed = new SimplePie(); +$feed->set_feed_url('http://simplepie.org/blog/feed/'); +$feed->init(); +$feed->handle_content_type(); + +foreach ($feed->get_items() as $item) +{ + echo 'Add to Ma.gnolia'; +} +``` + +## See Also {#see_also} + +- [SimplePie](@/wiki/reference/simplepie/_index.md) +- [SimplePie_Item](@/wiki/reference/simplepie_item/_index.md) diff --git a/docs/content/wiki/reference/simplepie_item/add_to_myweb20.md b/docs/content/wiki/reference/simplepie_item/add_to_myweb20.md new file mode 100644 index 000000000..1dfebfac1 --- /dev/null +++ b/docs/content/wiki/reference/simplepie_item/add_to_myweb20.md @@ -0,0 +1,36 @@ ++++ +title = "add_to_myweb20()" ++++ + +## Description {#description} + +```php +class SimplePie_Item { + add_to_myweb20 () +} +``` + +Returns the URL for posting this particular posting to the [My Web 2.0](http://myweb2.search.yahoo.com/) service. + +## Availability {#availability} + +- Available since SimplePie Beta 1. + +## Examples {#examples} + +```php +$feed = new SimplePie(); +$feed->set_feed_url('http://simplepie.org/blog/feed/'); +$feed->init(); +$feed->handle_content_type(); + +foreach ($feed->get_items() as $item) +{ + echo 'Add to My Web 2.0'; +} +``` + +## See Also {#see_also} + +- [SimplePie](@/wiki/reference/simplepie/_index.md) +- [SimplePie_Item](@/wiki/reference/simplepie_item/_index.md) diff --git a/docs/content/wiki/reference/simplepie_item/add_to_newsvine.md b/docs/content/wiki/reference/simplepie_item/add_to_newsvine.md new file mode 100644 index 000000000..2b248d574 --- /dev/null +++ b/docs/content/wiki/reference/simplepie_item/add_to_newsvine.md @@ -0,0 +1,36 @@ ++++ +title = "add_to_newsvine()" ++++ + +## Description {#description} + +```php +class SimplePie_Item { + add_to_newsvine () +} +``` + +Returns the URL for posting this particular posting to the [Newsvine](http://newsvine.com/) service. + +## Availability {#availability} + +- Available since SimplePie Preview Release. + +## Examples {#examples} + +```php +$feed = new SimplePie(); +$feed->set_feed_url('http://simplepie.org/blog/feed/'); +$feed->init(); +$feed->handle_content_type(); + +foreach ($feed->get_items() as $item) +{ + echo 'Add to Newsvine'; +} +``` + +## See Also {#see_also} + +- [SimplePie](@/wiki/reference/simplepie/_index.md) +- [SimplePie_Item](@/wiki/reference/simplepie_item/_index.md) diff --git a/docs/content/wiki/reference/simplepie_item/add_to_reddit.md b/docs/content/wiki/reference/simplepie_item/add_to_reddit.md new file mode 100644 index 000000000..9828dc859 --- /dev/null +++ b/docs/content/wiki/reference/simplepie_item/add_to_reddit.md @@ -0,0 +1,36 @@ ++++ +title = "add_to_reddit()" ++++ + +## Description {#description} + +```php +class SimplePie_Item { + add_to_reddit () +} +``` + +Returns the URL for posting this particular posting to the [Reddit](http://reddit.com/) service. + +## Availability {#availability} + +- Available since SimplePie Preview Release. + +## Examples {#examples} + +```php +$feed = new SimplePie(); +$feed->set_feed_url('http://simplepie.org/blog/feed/'); +$feed->init(); +$feed->handle_content_type(); + +foreach ($feed->get_items() as $item) +{ + echo 'Add to Reddit'; +} +``` + +## See Also {#see_also} + +- [SimplePie](@/wiki/reference/simplepie/_index.md) +- [SimplePie_Item](@/wiki/reference/simplepie_item/_index.md) diff --git a/docs/content/wiki/reference/simplepie_item/add_to_segnalo.md b/docs/content/wiki/reference/simplepie_item/add_to_segnalo.md new file mode 100644 index 000000000..5793c2c90 --- /dev/null +++ b/docs/content/wiki/reference/simplepie_item/add_to_segnalo.md @@ -0,0 +1,36 @@ ++++ +title = "add_to_segnalo()" ++++ + +## Description {#description} + +```php +class SimplePie_Item { + add_to_segnalo () +} +``` + +Returns the URL for posting this particular posting to the [Segnalo](http://segnalo.alice.it/) service. + +## Availability {#availability} + +- Available since SimplePie Beta 3. + +## Examples {#examples} + +```php +$feed = new SimplePie(); +$feed->set_feed_url('http://simplepie.org/blog/feed/'); +$feed->init(); +$feed->handle_content_type(); + +foreach ($feed->get_items() as $item) +{ + echo 'Add to Segnalo'; +} +``` + +## See Also {#see_also} + +- [SimplePie](@/wiki/reference/simplepie/_index.md) +- [SimplePie_Item](@/wiki/reference/simplepie_item/_index.md) diff --git a/docs/content/wiki/reference/simplepie_item/add_to_service.md b/docs/content/wiki/reference/simplepie_item/add_to_service.md new file mode 100644 index 000000000..72f289c26 --- /dev/null +++ b/docs/content/wiki/reference/simplepie_item/add_to_service.md @@ -0,0 +1,46 @@ ++++ +title = "add_to_service()" ++++ + +## Description {#description} + +```php +class SimplePie_Item { + add_to_service ( string $item_url, [ string $title_url = null ]) +} +``` + +Generates the proper URL for adding an item (e.g. posting) to a bookmarking-type service. + +## Availability {#availability} + +- Available since SimplePie 1.0. + +## Parameters {#parameters} + +### item_url (required) {#item_url_required} + +The URL and querystring up until the item's URL is required. + +### title_url {#title_url} + +The querystring parameter key for the title to get passed in. + +## Examples {#examples} + +```php +$feed = new SimplePie(); +$feed->set_feed_url('http://simplepie.org/blog/feed/'); +$feed->init(); +$feed->handle_content_type(); + +foreach ($feed->get_items() as $item) +{ + echo 'Add to Delicious'; +} +``` + +## See Also {#see_also} + +- [SimplePie](@/wiki/reference/simplepie/_index.md) +- [SimplePie_Item](@/wiki/reference/simplepie_item/_index.md) diff --git a/docs/content/wiki/reference/simplepie_item/add_to_simpy.md b/docs/content/wiki/reference/simplepie_item/add_to_simpy.md new file mode 100644 index 000000000..768056e89 --- /dev/null +++ b/docs/content/wiki/reference/simplepie_item/add_to_simpy.md @@ -0,0 +1,36 @@ ++++ +title = "add_to_simpy()" ++++ + +## Description {#description} + +```php +class SimplePie_Item { + add_to_simpy () +} +``` + +Returns the URL for posting this particular posting to the [Simpy](http://simpy.com/) service. + +## Availability {#availability} + +- Available since SimplePie Beta 3. + +## Examples {#examples} + +```php +$feed = new SimplePie(); +$feed->set_feed_url('http://simplepie.org/blog/feed/'); +$feed->init(); +$feed->handle_content_type(); + +foreach ($feed->get_items() as $item) +{ + echo 'Add to Simpy'; +} +``` + +## See Also {#see_also} + +- [SimplePie](@/wiki/reference/simplepie/_index.md) +- [SimplePie_Item](@/wiki/reference/simplepie_item/_index.md) diff --git a/docs/content/wiki/reference/simplepie_item/add_to_spurl.md b/docs/content/wiki/reference/simplepie_item/add_to_spurl.md new file mode 100644 index 000000000..d528e5871 --- /dev/null +++ b/docs/content/wiki/reference/simplepie_item/add_to_spurl.md @@ -0,0 +1,36 @@ ++++ +title = "add_to_spurl()" ++++ + +## Description {#description} + +```php +class SimplePie_Item { + add_to_spurl () +} +``` + +Returns the URL for posting this particular posting to the [Spurl](http://spurl.net/) service. + +## Availability {#availability} + +- Available since SimplePie Beta 1. + +## Examples {#examples} + +```php +$feed = new SimplePie(); +$feed->set_feed_url('http://simplepie.org/blog/feed/'); +$feed->init(); +$feed->handle_content_type(); + +foreach ($feed->get_items() as $item) +{ + echo 'Add to Spurl'; +} +``` + +## See Also {#see_also} + +- [SimplePie](@/wiki/reference/simplepie/_index.md) +- [SimplePie_Item](@/wiki/reference/simplepie_item/_index.md) diff --git a/docs/content/wiki/reference/simplepie_item/add_to_wists.md b/docs/content/wiki/reference/simplepie_item/add_to_wists.md new file mode 100644 index 000000000..8768fb440 --- /dev/null +++ b/docs/content/wiki/reference/simplepie_item/add_to_wists.md @@ -0,0 +1,36 @@ ++++ +title = "add_to_wists()" ++++ + +## Description {#description} + +```php +class SimplePie_Item { + add_to_wists () +} +``` + +Returns the URL for posting this particular posting to the [Wists](http://wists.com/) service. + +## Availability {#availability} + +- Available since SimplePie Beta 3. + +## Examples {#examples} + +```php +$feed = new SimplePie(); +$feed->set_feed_url('http://simplepie.org/blog/feed/'); +$feed->init(); +$feed->handle_content_type(); + +foreach ($feed->get_items() as $item) +{ + echo 'Add to Wists'; +} +``` + +## See Also {#see_also} + +- [SimplePie](@/wiki/reference/simplepie/_index.md) +- [SimplePie_Item](@/wiki/reference/simplepie_item/_index.md) diff --git a/docs/content/wiki/reference/simplepie_item/get_author.md b/docs/content/wiki/reference/simplepie_item/get_author.md new file mode 100644 index 000000000..8d4ace005 --- /dev/null +++ b/docs/content/wiki/reference/simplepie_item/get_author.md @@ -0,0 +1,49 @@ ++++ +title = "get_author()" ++++ + +## Description {#description} + +```php +class SimplePie_Item { + get_author ( [int $key = 0] ) +} +``` + +Returns a single array location containing a [SimplePie_Author](@/wiki/reference/simplepie_author/_index.md) object. + +## Availability {#availability} + +- Available since SimplePie Beta 2. + +## Parameters {#parameters} + +### key {#key} + +The item that you want to return. Remember that arrays begin with `0`, not `1`. + +## Examples {#examples} + +### Loop through each item and do something with each {#loop_through_each_item_and_do_something_with_each} + +```php +$feed = new SimplePie(); +$feed->set_feed_url('http://simplepie.org/blog/feed/'); +$feed->init(); +$feed->handle_content_type(); + +foreach ($feed->get_items() as $item) +{ + if ($author = $item->get_author()) + { + echo $author->get_name(); + } +} +``` + +## See Also {#see_also} + +- [SimplePie](@/wiki/reference/simplepie/_index.md) +- [SimplePie_Item](@/wiki/reference/simplepie_item/_index.md) +- [SimplePie_Author](@/wiki/reference/simplepie_author/_index.md) +- [get_authors()](@/wiki/reference/simplepie_item/get_authors.md) diff --git a/docs/content/wiki/reference/simplepie_item/get_authors.md b/docs/content/wiki/reference/simplepie_item/get_authors.md new file mode 100644 index 000000000..0cf700690 --- /dev/null +++ b/docs/content/wiki/reference/simplepie_item/get_authors.md @@ -0,0 +1,53 @@ ++++ +title = "get_authors()" ++++ + +## Description {#description} + +```php +class SimplePie_Item { + get_authors ( [int $start = 0], [int $length = 0] ) +} +``` + +Returns an array of [SimplePie_Author](@/wiki/reference/simplepie_author/_index.md) objects that were found for the item, which can be looped through. + +## Availability {#availability} + +- Available since SimplePie Beta 2. + +## Parameters {#parameters} + +### start {#start} + +The number of the item you want to start at. Remember that arrays begin with `0`, not `1`. + +### length {#length} + +The number of items to return. `0` will return all. The `start` parameter is required if this is used. + +## Examples {#examples} + +### Loop through each item and do something with each {#loop_through_each_item_and_do_something_with_each} + +```php +$feed = new SimplePie(); +$feed->set_feed_url('http://simplepie.org/blog/feed/'); +$feed->init(); +$feed->handle_content_type(); + +foreach ($feed->get_items() as $item) +{ + foreach ($item->get_authors() as $author) + { + echo $author->get_name(); + } +} +``` + +## See Also {#see_also} + +- [SimplePie](@/wiki/reference/simplepie/_index.md) +- [SimplePie_Item](@/wiki/reference/simplepie_item/_index.md) +- [SimplePie_Author](@/wiki/reference/simplepie_author/_index.md) +- [get_author()](@/wiki/reference/simplepie_item/get_author.md) diff --git a/docs/content/wiki/reference/simplepie_item/get_categories.md b/docs/content/wiki/reference/simplepie_item/get_categories.md new file mode 100644 index 000000000..0424d6fc8 --- /dev/null +++ b/docs/content/wiki/reference/simplepie_item/get_categories.md @@ -0,0 +1,53 @@ ++++ +title = "get_categories()" ++++ + +## Description {#description} + +```php +class SimplePie_Item { + get_categories ( [int $start = 0], [int $length = 0] ) +} +``` + +Returns an array of [SimplePie_Category](@/wiki/reference/simplepie_category/_index.md) objects that were found for the item, which can be looped through. + +## Availability {#availability} + +- Available since SimplePie Beta 3. + +## Parameters {#parameters} + +### start {#start} + +The number of the item you want to start at. Remember that arrays begin with `0`, not `1`. + +### length {#length} + +The number of items to return. `0` will return all. The `start` parameter is required if this is used. + +## Examples {#examples} + +### Loop through each item and do something with each {#loop_through_each_item_and_do_something_with_each} + +```php +$feed = new SimplePie(); +$feed->set_feed_url('http://simplepie.org/blog/feed/'); +$feed->init(); +$feed->handle_content_type(); + +foreach ($feed->get_items() as $item) +{ + foreach ($item->get_categories() as $category) + { + echo $category->get_label(); + } +} +``` + +## See Also {#see_also} + +- [SimplePie](@/wiki/reference/simplepie/_index.md) +- [SimplePie_Item](@/wiki/reference/simplepie_item/_index.md) +- [SimplePie_Category](@/wiki/reference/simplepie_category/_index.md) +- [get_category()](@/wiki/reference/simplepie_item/get_category.md) diff --git a/docs/content/wiki/reference/simplepie_item/get_category.md b/docs/content/wiki/reference/simplepie_item/get_category.md new file mode 100644 index 000000000..da52d1fee --- /dev/null +++ b/docs/content/wiki/reference/simplepie_item/get_category.md @@ -0,0 +1,50 @@ ++++ +title = "get_category()" ++++ + +## Description {#description} + +```php +class SimplePie_Item { + get_category ( [int $key = 0] ) +} +``` + +Returns a single array location containing a [SimplePie_Category](@/wiki/reference/simplepie_category/_index.md) object. + +## Availability {#availability} + +- Available since SimplePie Beta 3. +- Previously existed as `get_categories()` since SimplePie Beta 2. + +## Parameters {#parameters} + +### key {#key} + +The item that you want to return. Remember that arrays begin with `0`, not `1`. + +## Examples {#examples} + +### Loop through each item and do something with each {#loop_through_each_item_and_do_something_with_each} + +```php +$feed = new SimplePie(); +$feed->set_feed_url('http://simplepie.org/blog/feed/'); +$feed->init(); +$feed->handle_content_type(); + +foreach ($feed->get_items() as $item) +{ + if ($category = $item->get_category()) + { + echo $category->get_label(); + } +} +``` + +## See Also {#see_also} + +- [SimplePie](@/wiki/reference/simplepie/_index.md) +- [SimplePie_Item](@/wiki/reference/simplepie_item/_index.md) +- [SimplePie_Category](@/wiki/reference/simplepie_category/_index.md) +- get_categories diff --git a/docs/content/wiki/reference/simplepie_item/get_content.md b/docs/content/wiki/reference/simplepie_item/get_content.md new file mode 100644 index 000000000..f112f19ed --- /dev/null +++ b/docs/content/wiki/reference/simplepie_item/get_content.md @@ -0,0 +1,39 @@ ++++ +title = "get_content()" ++++ + +## Description {#description} + +```php +class SimplePie_Item { + get_content () +} +``` + +Returns the content for the item. Prefers full content over summaries, but will return a summary if full content does not exist. To prefer summaries instead, use [get_description()](@/wiki/reference/simplepie_item/get_description.md). + +## Availability {#availability} + +- Available since SimplePie 1.0. + +## Examples {#examples} + +### Display the description {#display_the_description} + +```php +$feed = new SimplePie(); +$feed->set_feed_url('http://simplepie.org/blog/feed/'); +$feed->init(); +$feed->handle_content_type(); + +foreach ($feed->get_items() as $item) +{ + echo $item->get_content(); +} +``` + +## See Also {#see_also} + +- [SimplePie](@/wiki/reference/simplepie/_index.md) +- [SimplePie_Item](@/wiki/reference/simplepie_item/_index.md) +- [get_description()](@/wiki/reference/simplepie_item/get_description.md) diff --git a/docs/content/wiki/reference/simplepie_item/get_contributor.md b/docs/content/wiki/reference/simplepie_item/get_contributor.md new file mode 100644 index 000000000..61f114c50 --- /dev/null +++ b/docs/content/wiki/reference/simplepie_item/get_contributor.md @@ -0,0 +1,49 @@ ++++ +title = "get_contributor()" ++++ + +## Description {#description} + +```php +class SimplePie_Item { + get_contributor ( [int $key = 0] ) +} +``` + +Returns a single array location containing a [SimplePie_Author](@/wiki/reference/simplepie_author/_index.md) object. + +## Availability {#availability} + +- Available since SimplePie 1.1. + +## Parameters {#parameters} + +### key {#key} + +The item that you want to return. Remember that arrays begin with `0`, not `1`. + +## Examples {#examples} + +### Loop through each item and do something with each {#loop_through_each_item_and_do_something_with_each} + +```php +$feed = new SimplePie(); +$feed->set_feed_url('http://simplepie.org/blog/feed/'); +$feed->init(); +$feed->handle_content_type(); + +foreach ($feed->get_items() as $item) +{ + if ($contributor = $item->get_contributor()) + { + echo $contributor->get_name(); + } +} +``` + +## See Also {#see_also} + +- [SimplePie](@/wiki/reference/simplepie/_index.md) +- [SimplePie_Item](@/wiki/reference/simplepie_item/_index.md) +- [SimplePie_Author](@/wiki/reference/simplepie_author/_index.md) +- [get_contributors()](@/wiki/reference/simplepie_item/get_contributors.md) diff --git a/docs/content/wiki/reference/simplepie_item/get_contributors.md b/docs/content/wiki/reference/simplepie_item/get_contributors.md new file mode 100644 index 000000000..99e069523 --- /dev/null +++ b/docs/content/wiki/reference/simplepie_item/get_contributors.md @@ -0,0 +1,53 @@ ++++ +title = "get_contributors()" ++++ + +## Description {#description} + +```php +class SimplePie_Item { + get_contributors ( [int $start = 0], [int $length = 0] ) +} +``` + +Returns an array of [SimplePie_Author](@/wiki/reference/simplepie_author/_index.md) objects that were found for the item, which can be looped through. + +## Availability {#availability} + +- Available since SimplePie 1.1. + +## Parameters {#parameters} + +### start {#start} + +The number of the item you want to start at. Remember that arrays begin with `0`, not `1`. + +### length {#length} + +The number of items to return. `0` will return all. The `start` parameter is required if this is used. + +## Examples {#examples} + +### Loop through each item and do something with each {#loop_through_each_item_and_do_something_with_each} + +```php +$feed = new SimplePie(); +$feed->set_feed_url('http://simplepie.org/blog/feed/'); +$feed->init(); +$feed->handle_content_type(); + +foreach ($feed->get_items() as $item) +{ + foreach ($item->get_contributors() as $contributor) + { + echo $contributor->get_name(); + } +} +``` + +## See Also {#see_also} + +- [SimplePie](@/wiki/reference/simplepie/_index.md) +- [SimplePie_Item](@/wiki/reference/simplepie_item/_index.md) +- [SimplePie_Author](@/wiki/reference/simplepie_author/_index.md) +- [get_contributor()](@/wiki/reference/simplepie_item/get_contributor.md) diff --git a/docs/content/wiki/reference/simplepie_item/get_copyright.md b/docs/content/wiki/reference/simplepie_item/get_copyright.md new file mode 100644 index 000000000..7a653f960 --- /dev/null +++ b/docs/content/wiki/reference/simplepie_item/get_copyright.md @@ -0,0 +1,38 @@ ++++ +title = "get_copyright()" ++++ + +## Description {#description} + +```php +class SimplePie_Item { + get_copyright () +} +``` + +Returns the copyright info for the item. + +## Availability {#availability} + +- Available since SimplePie 1.1. + +## Examples {#examples} + +### Display the copyright info {#display_the_copyright_info} + +```php +$feed = new SimplePie(); +$feed->set_feed_url('http://simplepie.org/blog/feed/'); +$feed->init(); +$feed->handle_content_type(); + +foreach ($feed->get_items() as $item) +{ + echo $feed->get_copyright(); +} +``` + +## See Also {#see_also} + +- [SimplePie](@/wiki/reference/simplepie/_index.md) +- [SimplePie_Item](@/wiki/reference/simplepie_item/_index.md) diff --git a/docs/content/wiki/reference/simplepie_item/get_date.md b/docs/content/wiki/reference/simplepie_item/get_date.md new file mode 100644 index 000000000..769f4da95 --- /dev/null +++ b/docs/content/wiki/reference/simplepie_item/get_date.md @@ -0,0 +1,46 @@ ++++ +title = "get_date()" ++++ + +## Description {#description} + +```php +class SimplePie_Item { + get_date ( [$date_format = 'j F Y, g:i a'] ) +} +``` + +Returns the date/timestamp of the posting. Date format supports anything that works with PHP's [date()](http://php.net/date) function. Only supports the English language. + +## Availability {#availability} + +- Available since SimplePie Beta 2. +- Previously existed as `get_item_date()` since SimplePie 0.8. + +## Parameters {#parameters} + +### date_format {#date_format} + +Accepts any value allowed by [date()](http://php.net/date). + +## Examples {#examples} + +### Display the date {#display_the_date} + +```php +$feed = new SimplePie(); +$feed->set_feed_url('http://simplepie.org/blog/feed/'); +$feed->init(); +$feed->handle_content_type(); + +foreach ($feed->get_items() as $item) +{ + echo $item->get_date(); +} +``` + +## See Also {#see_also} + +- [SimplePie](@/wiki/reference/simplepie/_index.md) +- [SimplePie_Item](@/wiki/reference/simplepie_item/_index.md) +- [get_local_date()](@/wiki/reference/simplepie_item/get_local_date.md) diff --git a/docs/content/wiki/reference/simplepie_item/get_description.md b/docs/content/wiki/reference/simplepie_item/get_description.md new file mode 100644 index 000000000..b8a12d13b --- /dev/null +++ b/docs/content/wiki/reference/simplepie_item/get_description.md @@ -0,0 +1,39 @@ ++++ +title = "get_description()" ++++ + +## Description {#description} + +```php +class SimplePie_Item { + get_description () +} +``` + +Returns the description for the item. Prefers summaries over full content, but will return full content if a summary does not exist. To prefer full content instead, use [get_content()](@/wiki/reference/simplepie_item/get_content.md). + +## Availability {#availability} + +- Available since SimplePie 0.8. + +## Examples {#examples} + +### Display the description {#display_the_description} + +```php +$feed = new SimplePie(); +$feed->set_feed_url('http://simplepie.org/blog/feed/'); +$feed->init(); +$feed->handle_content_type(); + +foreach ($feed->get_items() as $item) +{ + echo $item->get_description(); +} +``` + +## See Also {#see_also} + +- [SimplePie](@/wiki/reference/simplepie/_index.md) +- [SimplePie_Item](@/wiki/reference/simplepie_item/_index.md) +- [get_content()](@/wiki/reference/simplepie_item/get_content.md) diff --git a/docs/content/wiki/reference/simplepie_item/get_enclosure.md b/docs/content/wiki/reference/simplepie_item/get_enclosure.md new file mode 100644 index 000000000..dc544ac61 --- /dev/null +++ b/docs/content/wiki/reference/simplepie_item/get_enclosure.md @@ -0,0 +1,49 @@ ++++ +title = "get_enclosure()" ++++ + +## Description {#description} + +```php +class SimplePie_Item { + get_enclosure ( [int $key = 0] ) +} +``` + +Returns a single array location containing a [SimplePie_Enclosure](@/wiki/reference/simplepie_enclosure/_index.md) object. + +## Availability {#availability} + +- Available since SimplePie Beta 2. + +## Parameters {#parameters} + +### key {#key} + +The item that you want to return. Remember that arrays begin with `0`, not `1`. + +## Examples {#examples} + +### Loop through each item and do something with each {#loop_through_each_item_and_do_something_with_each} + +```php +$feed = new SimplePie(); +$feed->set_feed_url('http://simplepie.org/blog/feed/'); +$feed->init(); +$feed->handle_content_type(); + +foreach ($feed->get_items() as $item) +{ + if ($enclosure = $item->get_enclosure()) + { + echo $enclosure->embed(); + } +} +``` + +## See Also {#see_also} + +- [SimplePie](@/wiki/reference/simplepie/_index.md) +- [SimplePie_Item](@/wiki/reference/simplepie_item/_index.md) +- [SimplePie_Enclosure](@/wiki/reference/simplepie_enclosure/_index.md) +- get_enclosures diff --git a/docs/content/wiki/reference/simplepie_item/get_enclosures.md b/docs/content/wiki/reference/simplepie_item/get_enclosures.md new file mode 100644 index 000000000..efddb9e35 --- /dev/null +++ b/docs/content/wiki/reference/simplepie_item/get_enclosures.md @@ -0,0 +1,53 @@ ++++ +title = "get_enclosures()" ++++ + +## Description {#description} + +```php +class SimplePie_Item { + get_enclosures ( [int $start = 0], [int $length = 0] ) +} +``` + +Returns an array of [SimplePie_Enclosure](@/wiki/reference/simplepie_enclosure/_index.md) objects that were found for the item, which can be looped through. + +## Availability {#availability} + +- Available since SimplePie Beta 2. + +## Parameters {#parameters} + +### start {#start} + +The number of the item you want to start at. Remember that arrays begin with `0`, not `1`. + +### length {#length} + +The number of items to return. `0` will return all. The `start` parameter is required if this is used. + +## Examples {#examples} + +### Loop through each item and do something with each {#loop_through_each_item_and_do_something_with_each} + +```php +$feed = new SimplePie(); +$feed->set_feed_url('http://simplepie.org/blog/feed/'); +$feed->init(); +$feed->handle_content_type(); + +foreach ($feed->get_items() as $item) +{ + foreach ($item->get_enclosures() as $enclosure) + { + echo $enclosure->embed(); + } +} +``` + +## See Also {#see_also} + +- [SimplePie](@/wiki/reference/simplepie/_index.md) +- [SimplePie_Item](@/wiki/reference/simplepie_item/_index.md) +- [SimplePie_Enclosure](@/wiki/reference/simplepie_enclosure/_index.md) +- [get_enclosure()](@/wiki/reference/simplepie_item/get_enclosure.md) diff --git a/docs/content/wiki/reference/simplepie_item/get_feed.md b/docs/content/wiki/reference/simplepie_item/get_feed.md new file mode 100644 index 000000000..2e74b014c --- /dev/null +++ b/docs/content/wiki/reference/simplepie_item/get_feed.md @@ -0,0 +1,48 @@ ++++ +title = "get_feed()" ++++ + +## Description {#description} + +```php +class SimplePie_Item { + get_feed () +} +``` + +Returns the parent [SimplePie](@/wiki/reference/simplepie/_index.md) object of the item. + +
    + +**Read [Typical Multifeed Gotchas](@/wiki/faq/typical_multifeed_gotchas.md#missing_data_from_feed "faq:typical_multifeed_gotchas") for additional information.** + +
    + +## Availability {#availability} + +- Available since SimplePie 1.0. + +## Examples {#examples} + +### Get the title of the parent feed, starting at the item level {#get_the_title_of_the_parent_feed_starting_at_the_item_level} + +```php +$feed = new SimplePie(); +$feed->set_feed_url(array( + 'http://simplepie.org/blog/feed/', + 'http://feeds.tuaw.com/weblogsinc/tuaw' +)); +$feed->init(); +$feed->handle_content_type(); + +foreach ($feed->get_items() as $item) +{ + echo $item->get_title(); + echo 'Posted to ' . $item->get_feed()->get_title(); +} +``` + +## See Also {#see_also} + +- [SimplePie](@/wiki/reference/simplepie/_index.md) +- [SimplePie_Item](@/wiki/reference/simplepie_item/_index.md) diff --git a/docs/content/wiki/reference/simplepie_item/get_id.md b/docs/content/wiki/reference/simplepie_item/get_id.md new file mode 100644 index 000000000..d5adc9d8b --- /dev/null +++ b/docs/content/wiki/reference/simplepie_item/get_id.md @@ -0,0 +1,52 @@ ++++ +title = "get_id()" ++++ + +## Description {#description} + +```php +class SimplePie_Item { + get_id ( [(bool) $hash = false] ) +} +``` + +Returns the unique identifier for the posting. This is most helpful in writing code to check for new items in a feed. + +## Availability {#availability} + +- Available since SimplePie Beta 2. + +## Parameters {#parameters} + +### hash {#hash} + +If set to true, SimplePie will return a unique [MD5](http://id.php.net/manual/en/function.md5.php) hash for the item. If set to false, it will check ``, ``, and `` before defaulting to the hash. + +## Examples {#examples} + +### Checking the ID of the posting against a list {#checking_the_id_of_the_posting_against_a_list} + +```php +$feed = new SimplePie(); +$feed->set_feed_url('http://simplepie.org/blog/feed/'); +$feed->init(); +$feed->handle_content_type(); + +foreach ($feed->get_items() as $item) +{ + $prev_ids = array('guid1', 'guid2', 'guid3', 'guid4'); + if (in_array($item->get_id(true), $prev_ids)) + { + echo "This item is already stored."; + } + else + { + echo "This is a new item!"; + } +} +``` + +## See Also {#see_also} + +- [SimplePie](@/wiki/reference/simplepie/_index.md) +- [SimplePie_Item](@/wiki/reference/simplepie_item/_index.md) diff --git a/docs/content/wiki/reference/simplepie_item/get_item_tags.md b/docs/content/wiki/reference/simplepie_item/get_item_tags.md new file mode 100644 index 000000000..2f6defd67 --- /dev/null +++ b/docs/content/wiki/reference/simplepie_item/get_item_tags.md @@ -0,0 +1,73 @@ ++++ +title = "get_item_tags()" ++++ + +## Description {#description} + +```php +class SimplePie_Item { + get_item_tags ( string $namespace, string $tag ) +} +``` + +This method allows you to get access to ANY element/attribute that is a sub-element of the item/entry tag. It will return an _array_, which you should look at with <abbr title="Hypertext Preprocessor">PHP</abbr>'s [print_r()](http://php.net/print_r) function. + +<div class="warning"> + +Note that this will return an array of all of the elements it finds, and you can only go deeper – not shallower. + +</div> + +## Availability {#availability} + +- Available since SimplePie 1.0. + +## Parameters {#parameters} + +### namespace (required) {#namespace_required} + +The <abbr title="Uniform Resource Locator">URL</abbr> of the <abbr title="Extensible Markup Language">XML</abbr> namespace of the elements you're trying to access. SimplePie has a number of constants for supported namespaces in our [Supported XML Namespaces](@/wiki/faq/supported_xml_namespaces.md) document. If we don't have a constant for it, you can manually add the namespace <abbr title="Uniform Resource Locator">URL</abbr> as listed inside the feed. + +### tag (required) {#tag_required} + +This is the tag (element) that you want to get. + +## Examples {#examples} + +### Grab the contents of a custom element {#grab_the_contents_of_a_custom_element} + +```php +$feed = new SimplePie(); +$feed->set_feed_url('http://video.google.com/videofeed?type=top100new&num=20&output=rss'); +$feed->enable_cache(false); +$success = $feed->init(); +$feed->handle_content_type('text/plain'); + +if ($success) +{ + if ($item = $feed->get_item(0)) + { + // This is probably a bad example because we already support <media:content> natively, but it shows you how to parse through the nodes. + $media_group = $item->get_item_tags('http://search.yahoo.com/mrss/', 'group'); + $media_content = $media_group[0]['child']['http://search.yahoo.com/mrss/']['content']; + $file = $media_content[0]['attribs']['']['url']; + echo $file; + } + else + { + echo 'Error: Could not get first item'; + } +} +else +{ + echo $feed->error(); +} +``` + +## See Also {#see_also} + +- [SimplePie](@/wiki/reference/simplepie/_index.md) +- [get_channel_tags()](@/wiki/reference/simplepie/get_channel_tags.md) +- [get_feed_tags()](@/wiki/reference/simplepie/get_feed_tags.md) +- [get_image_tags()](@/wiki/reference/simplepie/get_image_tags.md) +- [get_source_tags()](@/wiki/reference/simplepie_source/get_source_tags.md) diff --git a/docs/content/wiki/reference/simplepie_item/get_latitude.md b/docs/content/wiki/reference/simplepie_item/get_latitude.md new file mode 100644 index 000000000..10ffecb31 --- /dev/null +++ b/docs/content/wiki/reference/simplepie_item/get_latitude.md @@ -0,0 +1,40 @@ ++++ +title = "get_latitude()" ++++ + +## Description {#description} + +```php +class SimplePie_Item { + get_latitude () +} +``` + +Returns the [W3C WGS84 Basic Geo](http://www.w3.org/2003/01/geo/) or [GeoRSS](http://www.georss.org/)-compatible latitude coordinates for the item. + +## Availability {#availability} + +- Available since SimplePie 1.0. + +## Examples {#examples} + +### Display the coordinates of the feed {#display_the_coordinates_of_the_feed} + +```php +$feed = new SimplePie(); +$feed->set_feed_url('http://simplepie.org/blog/feed/'); +$feed->init(); +$feed->handle_content_type(); + +foreach ($feed->get_items() as $item) +{ + echo $item->get_latitude(); + echo $item->get_longitude(); +} +``` + +## See Also {#see_also} + +- [SimplePie](@/wiki/reference/simplepie/_index.md) +- [SimplePie_Item](@/wiki/reference/simplepie_item/_index.md) +- [get_longitude()](@/wiki/reference/simplepie_item/get_longitude.md) diff --git a/docs/content/wiki/reference/simplepie_item/get_link.md b/docs/content/wiki/reference/simplepie_item/get_link.md new file mode 100644 index 000000000..dcb6bb446 --- /dev/null +++ b/docs/content/wiki/reference/simplepie_item/get_link.md @@ -0,0 +1,72 @@ ++++ +title = "get_link()" ++++ + +## Description {#description} + +```php +class SimplePie_Item { + get_link ( [int $key = 0 [, string $rel = 'alternate'] ] ) +} +``` + +Returns a single array location containing a link for the feed. This is useful for when a feed associates more than one link to itself. + +## Availability {#availability} + +- Available since SimplePie Beta 3. + +## Parameters {#parameters} + +### key {#key} + +The item that you want to return. Remember that arrays begin with `0`, not `1`. + +### relation {#relation} + +The relationship of links to return. + +## Examples {#examples} + +### Loop through each item and do something with each {#loop_through_each_item_and_do_something_with_each} + +```php +<?php +require_once('../simplepie.inc'); + +$feed = new SimplePie('http://simplepie.org/blog/feed/'); +$feed->handle_content_type(); + +?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" + "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> + +<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en"> +<head> + <title>Sample SimplePie Page + + + +
    +

    get_title(); ?>

    +

    get_description(); ?>

    +
    + + get_items() as $item): ?> + +
    +

    get_title(); ?>

    + get_description(); ?> +

    Posted on get_date('j F Y | g:i a'); ?>

    +
    + + + + + +``` + +## See Also {#see_also} + +- [SimplePie](@/wiki/reference/simplepie/_index.md) +- [SimplePie_Item](@/wiki/reference/simplepie_item/_index.md) +- [get_links()](@/wiki/reference/simplepie_item/get_links.md) diff --git a/docs/content/wiki/reference/simplepie_item/get_links.md b/docs/content/wiki/reference/simplepie_item/get_links.md new file mode 100644 index 000000000..3c34e0859 --- /dev/null +++ b/docs/content/wiki/reference/simplepie_item/get_links.md @@ -0,0 +1,62 @@ ++++ +title = "get_links()" ++++ + +## Description {#description} + +```php +class SimplePie_Item { + get_links ( [$rel = 'alternate'] ) +} +``` + +Returns an array of links that were found for the feed which can be looped through. + +## Availability {#availability} + +- Available since SimplePie Beta 2. + +## Parameters {#parameters} + +### relation {#relation} + +The relationship of links to return. + +## Examples {#examples} + +### Loop through each item and do something with each {#loop_through_each_item_and_do_something_with_each} + +```php +handle_content_type(); + +?> + + + + Sample SimplePie Page + + + +get_items() as $item) +{ + foreach ($item->get_links() as $link) + { + echo $link . "
    "; + } +} +?> + + +``` + +## See Also {#see_also} + +- [SimplePie](@/wiki/reference/simplepie/_index.md) +- [SimplePie_Item](@/wiki/reference/simplepie_item/_index.md) +- [get_link()](@/wiki/reference/simplepie_item/get_link.md) diff --git a/docs/content/wiki/reference/simplepie_item/get_local_date.md b/docs/content/wiki/reference/simplepie_item/get_local_date.md new file mode 100644 index 000000000..9dbbc8859 --- /dev/null +++ b/docs/content/wiki/reference/simplepie_item/get_local_date.md @@ -0,0 +1,49 @@ ++++ +title = "get_local_date()" ++++ + +## Description {#description} + +```php +class SimplePie_Item { + get_local_date ( [$date_format = '%c'] ) +} +``` + +Returns the date/timestamp of the posting in the localized language. Date format supports anything that works with PHP's [strftime()](http://php.net/strftime) function. To display in other languages, you need to change the locale with PHP's [setlocale()](http://php.net/setlocale) function. The available localizations depend on which ones are installed on your web server. + +## Availability {#availability} + +- Available since SimplePie 1.0. + +## Parameters {#parameters} + +### date_format {#date_format} + +Accepts any value allowed by [strftime()](http://php.net/strftime). + +## Examples {#examples} + +### Display the date {#display_the_date} + +```php +// Set the region/language to Canadian French +setlocale(LC_TIME, 'fr_CA'); + +$feed = new SimplePie(); +$feed->set_feed_url('http://simplepie.org/blog/feed/'); +$feed->init(); +$feed->handle_content_type(); + +foreach ($feed->get_items() as $item) +{ + echo $item->get_local_date('%A %e %B %Y'); +} +``` + +## See Also {#see_also} + +- [SimplePie](@/wiki/reference/simplepie/_index.md) +- [SimplePie_Item](@/wiki/reference/simplepie_item/_index.md) +- [get_date()](@/wiki/reference/simplepie_item/get_date.md) +- [Translate timestamps into another language](@/wiki/tutorial/translate_timestamps_into_another_language.md) diff --git a/docs/content/wiki/reference/simplepie_item/get_longitude.md b/docs/content/wiki/reference/simplepie_item/get_longitude.md new file mode 100644 index 000000000..32cab4a87 --- /dev/null +++ b/docs/content/wiki/reference/simplepie_item/get_longitude.md @@ -0,0 +1,40 @@ ++++ +title = "get_longitude()" ++++ + +## Description {#description} + +```php +class SimplePie_Item { + get_longitude () +} +``` + +Returns the [W3C WGS84 Basic Geo](http://www.w3.org/2003/01/geo/) or [GeoRSS](http://www.georss.org/georss)-compatible longitude coordinates for the item. + +## Availability {#availability} + +- Available since SimplePie 1.0. + +## Examples {#examples} + +### Display the coordinates of the feed {#display_the_coordinates_of_the_feed} + +```php +$feed = new SimplePie(); +$feed->set_feed_url('http://simplepie.org/blog/feed/'); +$feed->init(); +$feed->handle_content_type(); + +foreach ($feed->get_items() as $item) +{ + echo $item->get_latitude(); + echo $item->get_longitude(); +} +``` + +## See Also {#see_also} + +- [SimplePie](@/wiki/reference/simplepie/_index.md) +- [SimplePie_Item](@/wiki/reference/simplepie_item/_index.md) +- \[\[reference:SimplePie_Item:get\_ diff --git a/docs/content/wiki/reference/simplepie_item/get_permalink.md b/docs/content/wiki/reference/simplepie_item/get_permalink.md new file mode 100644 index 000000000..391424797 --- /dev/null +++ b/docs/content/wiki/reference/simplepie_item/get_permalink.md @@ -0,0 +1,63 @@ ++++ +title = "get_permalink()" ++++ + +## Description {#description} + +```php +class SimplePie_Item { + get_permalink () +} +``` + +Returns the first link available with a relationship of “alternate”. Identical to passing `0` to [get_link()](@/wiki/reference/simplepie_item/get_link.md). + +## Availability {#availability} + +- Available since SimplePie 0.8. + +## Examples {#examples} + +### Loop through each item and do something with each {#loop_through_each_item_and_do_something_with_each} + +```php +handle_content_type(); + +?> + + + + Sample SimplePie Page + + + +
    +

    get_title(); ?>

    +

    get_description(); ?>

    +
    + + get_items() as $item): ?> + +
    +

    get_title(); ?>

    + get_description(); ?> +

    Posted on get_date('j F Y | g:i a'); ?>

    +
    + + + + + +``` + +## See Also {#see_also} + +- [SimplePie](@/wiki/reference/simplepie/_index.md) +- [SimplePie_Item](@/wiki/reference/simplepie_item/_index.md) +- [get_link()](@/wiki/reference/simplepie_item/get_link.md) +- [get_links()](@/wiki/reference/simplepie_item/get_links.md) diff --git a/docs/content/wiki/reference/simplepie_item/get_source.md b/docs/content/wiki/reference/simplepie_item/get_source.md new file mode 100644 index 000000000..74c6c61ba --- /dev/null +++ b/docs/content/wiki/reference/simplepie_item/get_source.md @@ -0,0 +1,44 @@ ++++ +title = "get_source()" ++++ + +## Description {#description} + +```php +class SimplePie_Item { + get_source () +} +``` + +Returns a [SimplePie_Source](@/wiki/reference/simplepie_source/_index.md) object for the `atom:source` data in the item. + +## Availability {#availability} + +- Available since SimplePie 1.1 + +## Examples {#examples} + +### Get the title of the parent feed, starting at the item level {#get_the_title_of_the_parent_feed_starting_at_the_item_level} + +```php +$feed = new SimplePie(); +$feed->set_feed_url(array( + 'http://simplepie.org/blog/feed/', + 'http://feeds.tuaw.com/weblogsinc/tuaw' +)); +$feed->init(); +$feed->handle_content_type(); + +foreach ($feed->get_items() as $item) +{ + if ($source = $item->get_source()) + { + echo $source->get_title(); + } +} +``` + +## See Also {#see_also} + +- [SimplePie_Item](@/wiki/reference/simplepie_item/_index.md) +- [SimplePie_Source](@/wiki/reference/simplepie_source/_index.md) diff --git a/docs/content/wiki/reference/simplepie_item/get_title.md b/docs/content/wiki/reference/simplepie_item/get_title.md new file mode 100644 index 000000000..3e0c6e9bc --- /dev/null +++ b/docs/content/wiki/reference/simplepie_item/get_title.md @@ -0,0 +1,39 @@ ++++ +title = "get_title()" ++++ + +## Description {#description} + +```php +class SimplePie_Item { + get_title () +} +``` + +Returns the title of the posting. + +## Availability {#availability} + +- Available since SimplePie Beta 2. +- Previously existed as `get_item_title()` since SimplePie 0.8. + +## Examples {#examples} + +### Display the title {#display_the_title} + +```php +$feed = new SimplePie(); +$feed->set_feed_url('http://simplepie.org/blog/feed/'); +$feed->init(); +$feed->handle_content_type(); + +foreach ($feed->get_items() as $item) +{ + echo $item->get_title(); +} +``` + +## See Also {#see_also} + +- [SimplePie](@/wiki/reference/simplepie/_index.md) +- [SimplePie_Item](@/wiki/reference/simplepie_item/_index.md) diff --git a/docs/content/wiki/reference/simplepie_item/search_technorati.md b/docs/content/wiki/reference/simplepie_item/search_technorati.md new file mode 100644 index 000000000..3285cea87 --- /dev/null +++ b/docs/content/wiki/reference/simplepie_item/search_technorati.md @@ -0,0 +1,36 @@ ++++ +title = "search_technorati()" ++++ + +## Description {#description} + +```php +class SimplePie_Item { + search_technorati () +} +``` + +Returns the URL for searching [Technorati](http://technorati.com/) for comments and linkbacks for this posting. + +## Availability {#availability} + +- Available since SimplePie Preview Release. + +## Examples {#examples} + +```php +$feed = new SimplePie(); +$feed->set_feed_url('http://simplepie.org/blog/feed/'); +$feed->init(); +$feed->handle_content_type(); + +foreach ($feed->get_items() as $item) +{ + echo 'Search Technorati'; +} +``` + +## See Also {#see_also} + +- [SimplePie](@/wiki/reference/simplepie/_index.md) +- [SimplePie_Item](@/wiki/reference/simplepie_item/_index.md) diff --git a/docs/content/wiki/reference/simplepie_locator/_index.md b/docs/content/wiki/reference/simplepie_locator/_index.md new file mode 100644 index 000000000..53fae6bd1 --- /dev/null +++ b/docs/content/wiki/reference/simplepie_locator/_index.md @@ -0,0 +1,21 @@ ++++ +title = "SimplePie_Locator" ++++ + +
    + +This is a non-public object, and is only intended to be used internally by SimplePie. + +
    + +[SimplePie_Locator](@/wiki/reference/simplepie_locator/_index.md) is used for handling feed autodiscovery. Currently, it supports points 1-6 from Mark Pilgrim's [Ultra-liberal RSS Locator](http://diveintomark.org/archives/2002/08/15/ultraliberal_rss_locator), and passes the [Atom Autodiscovery Test Suite](http://diveintomark.org/tests/client/autodiscovery/). This class can be overloaded with [set_locator_class()](@/wiki/reference/simplepie/set_locator_class.md). + +## See Also {#see_also} + + diff --git a/docs/content/wiki/reference/simplepie_misc/_index.md b/docs/content/wiki/reference/simplepie_misc/_index.md new file mode 100644 index 000000000..21a53aa69 --- /dev/null +++ b/docs/content/wiki/reference/simplepie_misc/_index.md @@ -0,0 +1,28 @@ ++++ +title = "SimplePie_Misc" ++++ + +
    + +This is a non-public object, and is only intended to be used internally by SimplePie. + +
    + +[SimplePie_Misc](@/wiki/reference/simplepie_misc/_index.md) is really nothing more than a namespace for a collection of random methods that didn't fit anywhere else. They're typically used like this: + +```php + +``` + +## See Also {#see_also} + + diff --git a/docs/content/wiki/reference/simplepie_parse_date/_index.md b/docs/content/wiki/reference/simplepie_parse_date/_index.md new file mode 100644 index 000000000..b88a55026 --- /dev/null +++ b/docs/content/wiki/reference/simplepie_parse_date/_index.md @@ -0,0 +1,20 @@ ++++ +title = "SimplePie_Parse_Date" ++++ + +
    + +This is a non-public object, and is only intended to be used internally by SimplePie. + +
    + +[SimplePie_Parse_Date](@/wiki/reference/simplepie_parse_date/_index.md) is used for parsing parsing a wide variety of date formats (well beyond what PHP supports out-of-the-box). This class cannot currently be overloaded. + +## See Also {#see_also} + + diff --git a/docs/content/wiki/reference/simplepie_parser/_index.md b/docs/content/wiki/reference/simplepie_parser/_index.md new file mode 100644 index 000000000..4b92b88ee --- /dev/null +++ b/docs/content/wiki/reference/simplepie_parser/_index.md @@ -0,0 +1,22 @@ ++++ +title = "SimplePie_Parser" ++++ + +
    + +This is a non-public object, and is only intended to be used internally by SimplePie. + +
    + +[SimplePie_Parser](@/wiki/reference/simplepie_parser/_index.md) is used for parsing the XML into a data array. Currently, it supports all flavors of RSS, and the two major flavors of Atom. This class can be overloaded with [set_parser_class()](@/wiki/reference/simplepie/set_parser_class.md). + +## See Also {#see_also} + + diff --git a/docs/content/wiki/reference/simplepie_rating/_index.md b/docs/content/wiki/reference/simplepie_rating/_index.md new file mode 100644 index 000000000..2c0730feb --- /dev/null +++ b/docs/content/wiki/reference/simplepie_rating/_index.md @@ -0,0 +1,32 @@ ++++ +title = "SimplePie_Rating" ++++ + +[SimplePie_Rating](@/wiki/reference/simplepie_rating/_index.md) is used for handling `` or `` data as defined in [Media RSS](http://search.yahoo.com/mrss) and [iTunes RSS](http://www.apple.com/itunes/store/podcaststechspecs.html). This object is not typically called directly, [get_rating()](@/wiki/reference/simplepie_enclosure/get_rating.md) and [get_ratings()](@/wiki/reference/simplepie_enclosure/get_ratings.md) return [SimplePie_Rating](@/wiki/reference/simplepie_rating/_index.md) instances which allow us to access rating-related data. This class can be overloaded with [set_rating_class()](@/wiki/reference/simplepie/set_rating_class.md). + +## See Also {#see_also} + + + +
    + +--- + +## Index {#index} + +### G {#g} + +- [Get_scheme()](@/wiki/reference/simplepie_rating/get_scheme.md) +- [Get_value()](@/wiki/reference/simplepie_rating/get_value.md) + +
    diff --git a/docs/content/wiki/reference/simplepie_rating/get_scheme.md b/docs/content/wiki/reference/simplepie_rating/get_scheme.md new file mode 100644 index 000000000..78c747a6c --- /dev/null +++ b/docs/content/wiki/reference/simplepie_rating/get_scheme.md @@ -0,0 +1,43 @@ ++++ +title = "get_scheme()" ++++ + +## Description {#description} + +```php +class SimplePie_Rating { + get_scheme() +} +``` + +Returns the organizational scheme for the role of the thing receiving the rating. This mostly has relevance to Media RSS content. + +## Availability {#availability} + +- Available since SimplePie 1.0. + +## Examples {#examples} + +```php +$feed = new SimplePie(); +$feed->set_feed_url('http://simplepie.org/blog/feed/'); +$feed->init(); +$feed->handle_content_type(); + +foreach ($feed->get_items() as $item) +{ + if ($enclosure = $item->get_enclosure()) + { + if ($rating = $enclosure->get_rating()) + { + echo '

    ' . str_replace('uri:', '', $rating->get_scheme()) . ': ' . $rating->get_value() . '

    '; + } + } +} +``` + +## See Also {#see_also} + +- [SimplePie](@/wiki/reference/simplepie/_index.md) +- [SimplePie_Item](@/wiki/reference/simplepie_item/_index.md) +- [SimplePie_Rating](@/wiki/reference/simplepie_rating/_index.md) diff --git a/docs/content/wiki/reference/simplepie_rating/get_value.md b/docs/content/wiki/reference/simplepie_rating/get_value.md new file mode 100644 index 000000000..cfdf672b8 --- /dev/null +++ b/docs/content/wiki/reference/simplepie_rating/get_value.md @@ -0,0 +1,43 @@ ++++ +title = "get_value()" ++++ + +## Description {#description} + +```php +class SimplePie_Rating { + get_value() +} +``` + +Returns the actual rating of the thing receiving the rating. This mostly has relevance to Media RSS content. + +## Availability {#availability} + +- Available since SimplePie 1.0. + +## Examples {#examples} + +```php +$feed = new SimplePie(); +$feed->set_feed_url('http://simplepie.org/blog/feed/'); +$feed->init(); +$feed->handle_content_type(); + +foreach ($feed->get_items() as $item) +{ + if ($enclosure = $item->get_enclosure()) + { + if ($rating = $enclosure->get_rating()) + { + echo '

    ' . str_replace('uri:', '', $rating->get_scheme()) . ': ' . $rating->get_value() . '

    '; + } + } +} +``` + +## See Also {#see_also} + +- [SimplePie](@/wiki/reference/simplepie/_index.md) +- [SimplePie_Item](@/wiki/reference/simplepie_item/_index.md) +- [SimplePie_Rating](@/wiki/reference/simplepie_rating/_index.md) diff --git a/docs/content/wiki/reference/simplepie_restriction/_index.md b/docs/content/wiki/reference/simplepie_restriction/_index.md new file mode 100644 index 000000000..fc7f26e25 --- /dev/null +++ b/docs/content/wiki/reference/simplepie_restriction/_index.md @@ -0,0 +1,34 @@ ++++ +title = "SimplePie_Restriction" ++++ + +[SimplePie_Restriction](@/wiki/reference/simplepie_restriction/_index.md) is used for handling `` data as defined in (including [Media RSS](http://search.yahoo.com/mrss). This object is not typically called directly, [get_restriction()](@/wiki/reference/simplepie_enclosure/get_restriction.md) and [get_restrictions()](@/wiki/reference/simplepie_enclosure/get_restrictions.md) return [SimplePie_Restriction](@/wiki/reference/simplepie_restriction/_index.md) instances which allow us to access restriction-related data. This class can be overloaded with [set_restriction_class()](@/wiki/reference/simplepie/set_restriction_class.md). + +## See Also {#see_also} + + + +
    + +--- + +## Index {#index} + +### G {#g} + +- [Get_relationship()](@/wiki/reference/simplepie_restriction/get_relationship.md) +- [Get_type()](@/wiki/reference/simplepie_restriction/get_type.md) +- [Get_value()](@/wiki/reference/simplepie_restriction/get_value.md) + +
    diff --git a/docs/content/wiki/reference/simplepie_restriction/get_relationship.md b/docs/content/wiki/reference/simplepie_restriction/get_relationship.md new file mode 100644 index 000000000..dc4285b32 --- /dev/null +++ b/docs/content/wiki/reference/simplepie_restriction/get_relationship.md @@ -0,0 +1,43 @@ ++++ +title = "get_relationship()" ++++ + +## Description {#description} + +```php +class SimplePie_Restriction { + get_relationship() +} +``` + +Returns the relationship of the restriction (`allow` or `deny`). This mostly has relevance to Media RSS content. + +## Availability {#availability} + +- Available since SimplePie 1.0. + +## Examples {#examples} + +```php +$feed = new SimplePie(); +$feed->set_feed_url('http://simplepie.org/blog/feed/'); +$feed->init(); +$feed->handle_content_type(); + +foreach ($feed->get_items() as $item) +{ + if ($enclosure = $item->get_enclosure()) + { + if ($restriction = $enclosure->get_restriction()) + { + echo '

    We are to ' . $restriction->get_relationship() . ' ' . $restriction->get_value() . ', which is of type ' . $restriction->get_type() . '

    '; + } + } +} +``` + +## See Also {#see_also} + +- [SimplePie](@/wiki/reference/simplepie/_index.md) +- [SimplePie_Item](@/wiki/reference/simplepie_item/_index.md) +- [SimplePie_Restriction](@/wiki/reference/simplepie_restriction/_index.md) diff --git a/docs/content/wiki/reference/simplepie_restriction/get_type.md b/docs/content/wiki/reference/simplepie_restriction/get_type.md new file mode 100644 index 000000000..33dedfa07 --- /dev/null +++ b/docs/content/wiki/reference/simplepie_restriction/get_type.md @@ -0,0 +1,43 @@ ++++ +title = "get_type()" ++++ + +## Description {#description} + +```php +class SimplePie_Restriction { + get_type() +} +``` + +Returns the type of the restriction. This mostly has relevance to Media RSS content. + +## Availability {#availability} + +- Available since SimplePie 1.0. + +## Examples {#examples} + +```php +$feed = new SimplePie(); +$feed->set_feed_url('http://simplepie.org/blog/feed/'); +$feed->init(); +$feed->handle_content_type(); + +foreach ($feed->get_items() as $item) +{ + if ($enclosure = $item->get_enclosure()) + { + if ($restriction = $enclosure->get_restriction()) + { + echo '

    We are to ' . $restriction->get_relationship() . ' ' . $restriction->get_value() . ', which is of type ' . $restriction->get_type() . '

    '; + } + } +} +``` + +## See Also {#see_also} + +- [SimplePie](@/wiki/reference/simplepie/_index.md) +- [SimplePie_Item](@/wiki/reference/simplepie_item/_index.md) +- [SimplePie_Restriction](@/wiki/reference/simplepie_restriction/_index.md) diff --git a/docs/content/wiki/reference/simplepie_restriction/get_value.md b/docs/content/wiki/reference/simplepie_restriction/get_value.md new file mode 100644 index 000000000..3396cd86a --- /dev/null +++ b/docs/content/wiki/reference/simplepie_restriction/get_value.md @@ -0,0 +1,43 @@ ++++ +title = "get_value()" ++++ + +## Description {#description} + +```php +class SimplePie_Restriction { + get_value() +} +``` + +Returns the value of the restriction. This mostly has relevance to Media RSS content. + +## Availability {#availability} + +- Available since SimplePie 1.0. + +## Examples {#examples} + +```php +$feed = new SimplePie(); +$feed->set_feed_url('http://simplepie.org/blog/feed/'); +$feed->init(); +$feed->handle_content_type(); + +foreach ($feed->get_items() as $item) +{ + if ($enclosure = $item->get_enclosure()) + { + if ($restriction = $enclosure->get_restriction()) + { + echo '

    We are to ' . $restriction->get_relationship() . ' ' . $restriction->get_value() . ', which is of type ' . $restriction->get_type() . '

    '; + } + } +} +``` + +## See Also {#see_also} + +- [SimplePie](@/wiki/reference/simplepie/_index.md) +- [SimplePie_Item](@/wiki/reference/simplepie_item/_index.md) +- [SimplePie_Restriction](@/wiki/reference/simplepie_restriction/_index.md) diff --git a/docs/content/wiki/reference/simplepie_sanitize/_index.md b/docs/content/wiki/reference/simplepie_sanitize/_index.md new file mode 100644 index 000000000..abb6c6f4c --- /dev/null +++ b/docs/content/wiki/reference/simplepie_sanitize/_index.md @@ -0,0 +1,21 @@ ++++ +title = "SimplePie_Sanitize" ++++ + +
    + +This is a non-public object, and is only intended to be used internally by SimplePie. + +
    + +[SimplePie_Sanitize](@/wiki/reference/simplepie_sanitize/_index.md) is used for data cleanup and all of the post-processing. Some feed data may be malicious while other data is just plain stupid. SimplePie attempts to rectify this as much as possible. This class can be overloaded with [set_sanitize_class()](@/wiki/reference/simplepie/set_sanitize_class.md). + +## See Also {#see_also} + + diff --git a/docs/content/wiki/reference/simplepie_source/_index.md b/docs/content/wiki/reference/simplepie_source/_index.md new file mode 100644 index 000000000..c712278b7 --- /dev/null +++ b/docs/content/wiki/reference/simplepie_source/_index.md @@ -0,0 +1,29 @@ ++++ +title = "SimplePie_Source" ++++ + +[SimplePie_Source](@/wiki/reference/simplepie_source/_index.md) is used for handling `atom:source` elements. This object is not typically called directly, [get_source()](@/wiki/reference/simplepie_item/get_source.md) returns [SimplePie_Source](@/wiki/reference/simplepie_source/_index.md) instances which allow us to access source-related data. This class can be overloaded with [set_source_class()](@/wiki/reference/simplepie/set_source_class.md). + +## See Also {#see_also} + + + +
    + +--- + +## Index {#index} + +### G {#g} + +- [Get_item()](@/wiki/reference/simplepie_source/get_item.md) +- [Get_source_tags()](@/wiki/reference/simplepie_source/get_source_tags.md) + +
    diff --git a/docs/content/wiki/reference/simplepie_source/get_item.md b/docs/content/wiki/reference/simplepie_source/get_item.md new file mode 100644 index 000000000..d26eee98c --- /dev/null +++ b/docs/content/wiki/reference/simplepie_source/get_item.md @@ -0,0 +1,49 @@ ++++ +title = "get_item()" ++++ + +## Description {#description} + +```php +class SimplePie_Source { + get_item () +} +``` + +Returns the parent [SimplePie_Item](@/wiki/reference/simplepie_item/_index.md) object of the source. This works the same way as [get_feed()](@/wiki/reference/simplepie_item/get_feed.md). + +## Availability {#availability} + +- Available since SimplePie 1.1. + +## Examples {#examples} + +### Get the title of the parent item, starting at the source level {#get_the_title_of_the_parent_item_starting_at_the_source_level} + +```php +$feed = new SimplePie(); +$feed->set_feed_url(array( + 'http://simplepie.org/blog/feed/', + 'http://feeds.tuaw.com/weblogsinc/tuaw' +)); +$feed->init(); +$feed->handle_content_type(); + +foreach ($feed->get_items() as $item) +{ + if ($source = $item->get_source()) + { + echo 'Sourced item is ' . $source->get_item()->get_title(); + } + + echo 'Posted to ' . $item->get_feed()->get_title(); +} +``` + +## See Also {#see_also} + + diff --git a/docs/content/wiki/reference/simplepie_source/get_source_tags.md b/docs/content/wiki/reference/simplepie_source/get_source_tags.md new file mode 100644 index 000000000..509d82663 --- /dev/null +++ b/docs/content/wiki/reference/simplepie_source/get_source_tags.md @@ -0,0 +1,45 @@ ++++ +title = "get_source_tags()" ++++ + +## Description {#description} + +```php +class SimplePie_Source { + get_source_tags ( string $namespace, string $tag ) +} +``` + +This method allows you to get access to ANY element/attribute that is a sub-element of the `source` tag. It will return an _array_, which you should look at with PHP's [print_r()](http://php.net/print_r) function. + +
    + +Note that this will return an array of all of the elements it finds, and you can only go deeper – not shallower. + +
    + +## Availability {#availability} + +- Available since SimplePie 1.1. + +## Parameters {#parameters} + +### namespace (required) {#namespace_required} + +The URL of the XML namespace of the elements you're trying to access. SimplePie has a number of constants for supported namespaces in our [Supported XML Namespaces](@/wiki/faq/supported_xml_namespaces.md) document. If we don't have a constant for it, you can manually add the namespace URL as listed inside the feed. + +### tag (required) {#tag_required} + +This is the tag (element) that you want to get. + +## See Also {#see_also} + + diff --git a/docs/content/wiki/reference/simplepie_xml_declaration_parser/_index.md b/docs/content/wiki/reference/simplepie_xml_declaration_parser/_index.md new file mode 100644 index 000000000..9745cde85 --- /dev/null +++ b/docs/content/wiki/reference/simplepie_xml_declaration_parser/_index.md @@ -0,0 +1,20 @@ ++++ +title = "SimplePie_XML_Declaration_Parser" ++++ + +
    + +This is a non-public object, and is only intended to be used internally by SimplePie. + +
    + +[SimplePie_XML_Declaration_Parser](@/wiki/reference/simplepie_xml_declaration_parser/_index.md) is used for (much improved) parsing of XML declarations (usually the b0rked ones). This class cannot currently be overloaded. + +## See Also {#see_also} + + diff --git a/docs/content/wiki/release_process.md b/docs/content/wiki/release_process.md new file mode 100644 index 000000000..9fca16d75 --- /dev/null +++ b/docs/content/wiki/release_process.md @@ -0,0 +1,13 @@ ++++ +title = "Release Process" ++++ + +1. Hardcode build date (the current value of $Date$, the last change); +2. Change version from development to release number; +3. Copy trunk/branch to releases/\[version number\] in SVN (e.g., `svn copy trunk releases/1.1.2`). +4. Run `svn export` on that release and package for release as a ZIP (be careful to not get any files apart from those created by the export, such as those created by the OS like .DS_STORE and Thumbs.db); +5. Update [Release Notes](@/wiki/misc/release_notes/_index.md); +6. Upload to [http://simplepie.org/downloads/simplepie\_\[version number\].zip](/downloads/simplepie_%5Bversion%20number%5D.zip "http://simplepie.org/downloads/simplepie_[version number].zip"); +7. Update [http://simplepie.org/downloads/](/downloads/ "http://simplepie.org/downloads/"); +8. Mark version as shipped and set date on bug tracker, update target version; +9. Post on blog, email simplepie-support. diff --git a/docs/content/wiki/setup/_index.md b/docs/content/wiki/setup/_index.md new file mode 100644 index 000000000..2022140b9 --- /dev/null +++ b/docs/content/wiki/setup/_index.md @@ -0,0 +1,10 @@ ++++ +title = "Requirements and Getting Started" ++++ + +This section contains the first steps for getting started with SimplePie. It goes over getting a copy of SimplePie, installing it, getting started with the basics, and then lets you loose to find your way. Ready to get started? + +- [Requirements](@/wiki/setup/requirements.md) +- [Setup and Getting Started](@/wiki/setup/setup.md) +- [Create a sample SimplePie-enabled page](@/wiki/setup/sample_page.md) +- [Upgrading from Beta 2, 3, 3.1, or 3.2](@/wiki/setup/upgrade.md) diff --git a/docs/content/wiki/setup/requirements.md b/docs/content/wiki/setup/requirements.md new file mode 100644 index 000000000..9aff1903d --- /dev/null +++ b/docs/content/wiki/setup/requirements.md @@ -0,0 +1,20 @@ ++++ +title = "Requirements" ++++ + +If you are unsure about any of the below, you can make use of the SimplePie Compatibility Test that is included in the SimplePie download. + +## Minimum {#minimum} + +- [PHP](http://php.net/) 5.2 or higher +- PHP's [XML extension](http://php.net/xml) (enabled by default) +- PHP's [PCRE extension](http://php.net/pcre) (enabled by default) +- You need to be able to **complete** and **comprehend** the [Introduction to PHP](http://us2.php.net/tutorial) tutorial on [PHP.net](http://php.net). This tutorial covers the bare-minimum basics of PHP including creating a simple PHP page, writing “Hello World!”, calling functions, and jumping in and out of HTML. The _least_ experienced PHP programmer should be able to get through this tutorial. + +## Recommended {#recommended} + +- Ability to change file/folder permissions (dependent on how much access your host provides), +- Both PHP's [multibyte string extension](http://php.net/mbstring) AND [iconv extension](http://php.net/iconv). +- PHP's [cURL extension](http://php.net/curl) (disabled by default) +- PHP's [Zlib extension](http://php.net/zlib) (disabled by default) +- Understanding of object-oriented programming basics. diff --git a/docs/content/wiki/setup/sample_page.md b/docs/content/wiki/setup/sample_page.md new file mode 100644 index 000000000..44ea87ab1 --- /dev/null +++ b/docs/content/wiki/setup/sample_page.md @@ -0,0 +1,155 @@ ++++ +title = "Create a sample SimplePie-enabled page" ++++ + +## Example: Nothing Fancy {#examplenothing_fancy} + +This is a very basic page with valid XHTML 1.1 syntax. This is likely what a bare-minimum page would look like. + +```php +init(); + +// This makes sure that the content is sent to the browser as text/html and the UTF-8 character set (since we didn't change it). +$feed->handle_content_type(); + +// Let's begin our XHTML webpage code. The DOCTYPE is supposed to be the very first thing, so we'll keep it on the same line as the closing-PHP tag. +?> + Sample SimplePie Page + + + +
    +

    get_title(); ?>

    +

    get_description(); ?>

    +
    + + get_items() as $item): + ?> + +
    +

    get_title(); ?>

    +

    get_description(); ?>

    +

    Posted on get_date('j F Y | g:i a'); ?>

    +
    + + + + + +``` + +## Example: Nothing Fancy, with CSS {#examplenothing_fancy_with_css} + +This is the same thing as the last example, except we've added some CSS to make it look nicer. + +```php +set_feed_url + +// Run SimplePie. +$feed->init(); + +// This makes sure that the content is sent to the browser as text/html and the UTF-8 character set (since we didn't change it). +$feed->handle_content_type(); + +// Let's begin our XHTML webpage code. The DOCTYPE is supposed to be the very first thing, so we'll keep it on the same line as the closing-PHP tag. +?> + Sample SimplePie Page + + + + + + + +
    +

    get_title(); ?>

    +

    get_description(); ?>

    +
    + + get_items() as $item): + ?> + +
    +

    get_title(); ?>

    +

    get_description(); ?>

    +

    Posted on get_date('j F Y | g:i a'); ?>

    +
    + + + + + +``` diff --git a/docs/content/wiki/setup/setup.md b/docs/content/wiki/setup/setup.md new file mode 100644 index 000000000..c0ca7d354 --- /dev/null +++ b/docs/content/wiki/setup/setup.md @@ -0,0 +1,52 @@ ++++ +title = "Setup and Getting Started" ++++ + +These instructions are for installing SimplePie on a website as an additional library that can be accessed by any PHP-based page. There are other instructions available for the [SimplePie Plugins and Integration](@/wiki/plugins/_index.md). + +## How the Instructions Work {#how_the_instructions_work} + +SimplePie is a PHP library for parsing RSS and Atom feeds. If you know how to upload a library, require it in your pages, and use the resulting [API functions](@/wiki/reference/_index.md), you can probably skip this primer. Each instruction is broken into two parts: + +- The actual step, bolded and italicized **_like this_**. +- The explanation of the details of the step, for those who don't already know. + +For the purposes of these instructions, we're going to make a few assumptions. We're going to assume that you want your PHP libraries (like SimplePie) to live in `http://example.com/php`, your cache files to be stored in `http://example.com/cache`, and the page that displays the feeds is at `http://example.com/news`. + +Granted, if you're familiar with PHP, you can pretty much set it up however you want. But this is the setup that we'll work towards in these instructions. Feel free to deviate as you so choose. + +## The Instructions {#the_instructions} + +### Step 1 {#step_1} + +**_Start by launching your FTP program, and accessing the web-accessible root directory of your site._** + +You'll need to know what the “web-accessible root directory” is (hereafter known as “root directory”). Every host is different, and I've seen this folder named `public_html`, `www`, and even the name of the domain itself – in our case, `http://example.com`. If you wanted `mypage.html` to show up at `http://example.com/mypage.html`, then that's the folder you want to find. + +Since this is specific to your webhost, and not to SimplePie, there really isn't much more I can do to help you other than to tell you to contact your webhost if you don't know. Many webhosts also have a knowledge base or a wiki of some sort that you can consult if you're not sure. + +### Step 2 {#step_2} + +**_In your root directory, if they don't already exist, create two folders: `php` and `cache`._** + +Simple enough. + +### Step 3 {#step_3} + +**_We'll need to change the file permissions (aka CHMOD permissions) for the cache directory to be server-writable._** + +This setting also varies from webhost to webhost. In the past, I've used [iPowerWeb](http://ipowerweb.com/), and they required file permissions of `777` in order to be server-writable. Currently, I use [Dreamhost](http://dreamhost.com/r.cgi?skyzyx), and they need permissions to be set to `755` to be server-writable. Again, if you're not sure, either go ask your host or you can try various settings yourself. The three to try are `755`, `775`, or `777`. + +The specific process of _how_ you change your file permissions differs from FTP application to FTP application. On Windows I use [FlashFXP](http://flashfxp.com), where you find the remote file or folder that you want to change the permissions of, you right-click on it, and choose _Attributes (CHMOD)_. On Mac OS X I use [Transmit](http://panic.com/transmit/), where you find the remote file or folder that you want to change the permissions of, you right-click (or ctrl-click for you one-button-mousers) on it, and choose _Get Info_. Your specific FTP application will most likely be something similar. + +### Step 4 {#step_4} + +**_Upload `library/` and `autoloader.php` to the `php` folder you just created._** + +This is where you will reference SimplePie from when you require it on your pages. + +### Step 5 {#step_5} + +**_At this point, SimplePie is installed._** + +SimplePie is ready to go at this point. If you know how to require SimplePie in your pages, and can find your way around the [function reference](@/wiki/reference/_index.md), you should be fine at this point. If you need help putting a basic page together, [read on](@/wiki/setup/sample_page.md). diff --git a/docs/content/wiki/setup/upgrade.md b/docs/content/wiki/setup/upgrade.md new file mode 100644 index 000000000..75739ee81 --- /dev/null +++ b/docs/content/wiki/setup/upgrade.md @@ -0,0 +1,181 @@ ++++ +title = "Upgrading from Beta 2, 3, 3.1, or 3.2" ++++ + +Several method names were changed between Beta 3 and 1.0 in an effort to have the most logical names for our 1.x releases (since we're planning NO public API breakages through the entire 1.x series of releases). There were no API breakages between Beta 2 and Beta 3, 3.1, or 3.2, so upgrading to 1.0 should be the same as upgrading from Beta 3.x. Beta 2 users should see a **remarkable** difference in speed and compatibility after the upgrade. + +## SimplePie Properties {#simplepie_properties} + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Old nameNew name
    buildSIMPLEPIE_BUILD (constant)
    errorerror()
    linkbackSIMPLEPIE_LINKBACK (constant)
    nameSIMPLEPIE_NAME (constant)
    urlSIMPLEPIE_URL (constant)
    useragentSIMPLEPIE_USERAGENT (constant)
    versionSIMPLEPIE_VERSION (constant)
    + +## Configuration Options {#configuration_options} + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Old nameNew name
    feed_url()set_feed_url()
    enable_caching()enable_cache()
    order_by_date()enable_order_by_date()
    cache_max_minutes()set_cache_duration()
    cache_location()set_cache_location()
    enable_xmldump()enable_xml_dump()
    set_cache_name_type()set_cache_name_function()
    input_encoding()set_input_encoding()
    output_encoding()set_output_encoding()
    bypass_image_hotlink()Rewritten and replaced by set_image_handler()
    bypass_image_hotlink_page()Rewritten and replaced by set_image_handler()
    replace_headers()No longer available
    strip_ads()No longer available
    + +## Feed-Level Methods {#feed-level_methods} + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Old nameNew name
    get_feed_copyright()get_copyright()
    get_feed_description()get_description()
    get_feed_language()get_language()
    get_feed_link()get_link()
    get_feed_title()get_title()
    get_image_exist()No longer available
    get_version()No longer available
    subscribe_feedlounge()No longer available
    subscribe_pluck()No longer available
    + +## Item-Level Methods {#item-level_methods} + + + + + + + + + + + + + + + + + + +
    Old nameNew name
    get_category()Now has sub-methods. See SimplePie_Category
    get_categories()Now has sub-methods. See SimplePie_Category
    diff --git a/docs/content/wiki/simplepie/_index.md b/docs/content/wiki/simplepie/_index.md new file mode 100644 index 000000000..4b8632071 --- /dev/null +++ b/docs/content/wiki/simplepie/_index.md @@ -0,0 +1,7 @@ ++++ +title = "The \"SimplePie\" Object" ++++ + +The SimplePie object is used to parse a feed, set configuration options, and retrieve feed data. + +See the function reference for documentation of public properties and methods. diff --git a/docs/content/wiki/sp2/_index.md b/docs/content/wiki/sp2/_index.md new file mode 100644 index 000000000..511cddc8f --- /dev/null +++ b/docs/content/wiki/sp2/_index.md @@ -0,0 +1,8 @@ ++++ +title = "SimplePie 2" ++++ + +This namespace details various details about SimplePie 2 (“SP2”). This will be moved to the main namespace once SP2 ships. + +- [Goals for SimplePie 2](@/wiki/sp2/goals.md) +- [Development](@/wiki/sp2/dev/_index.md) diff --git a/docs/content/wiki/sp2/dev/_index.md b/docs/content/wiki/sp2/dev/_index.md new file mode 100644 index 000000000..1ea222554 --- /dev/null +++ b/docs/content/wiki/sp2/dev/_index.md @@ -0,0 +1,7 @@ ++++ +title = "Development" ++++ + +SP2's development has a complex structure, designed to ensure what is released is as stable as humanely possible; however, this means there are detailed rules that must be followed to get any patches accepted. It helps to have a general overview of SP2's entire development structure, which is described herein. + +- [Repositories](@/wiki/sp2/dev/repositories.md) diff --git a/docs/content/wiki/sp2/dev/repositories.md b/docs/content/wiki/sp2/dev/repositories.md new file mode 100644 index 000000000..81189216c --- /dev/null +++ b/docs/content/wiki/sp2/dev/repositories.md @@ -0,0 +1,21 @@ ++++ +title = "Repositories" ++++ + +SP2 is developed out of multiple [Mercurial](http://selenic.com/mercurial) repositories, each with their own requirements to get code “pulled” into them. They are all named by their owner's username, with the main repository having no prefix, and others having prefixes starting with a hyphen (”-”). Exemptions can be granted from any of the given requirements for any submission by the repository's owner, however, these exemptions are _very_ rarely given, and almost always in cases of force majeure. + +## gsnedders {#gsnedders} + +This is the authoritative repository, where all releases are taken from. As such, it is also the hardest to get code into. The requirements are: + +- All coding_standards must be obeyed. +- Must cause no unit test regressions. +- Must include unit tests to cover 100% of the source-base. +- Must update the included documentation to reflect any relevant changes. + +There are various things to be aware of: + +- Two weeks before release, the repository enters a _feature freeze_, after which no new features are committed (no matter how irrelevantly minor). +- One week before release, the repository enters a _hard freeze_, after which only release critical bugs are fixed. Any other bug will not be fixed till the next release. + +For further information, see release_cycle. diff --git a/docs/content/wiki/sp2/features.md b/docs/content/wiki/sp2/features.md new file mode 100644 index 000000000..76bd7759d --- /dev/null +++ b/docs/content/wiki/sp2/features.md @@ -0,0 +1,92 @@ ++++ +title = "Features" ++++ + +If any features of SP1 have been omitted, please add them. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    SimplePie 1SimplePie 2
    Feed specifed by URLNon-core
    CachingNon-core
    Re-ordering feed by dateNon-core
    Favicon locatingNon-core
    Image URL re-writing/cachingNon-core
    Mutli-feedNon-core
    Automatic embeddingNon-core
    (X)HTML sanitization (removing unsafe HTML)Non-core
    XML dumpNon-core (this is really unneeded, and has been for ages)
    Force feedNon-core
    AutodiscoveryNon-core
    Feed encoding overrideSorta existent
    Output encodingNon-core (all output will be UTF-8)
    Raw dataCore
    Atom/RSS dataCore
    GeoDataNon-core
    Subscription/bookmarking URLsNon-core
    MediaRSSNon-core
    iTunes RSSNon-core
    diff --git a/docs/content/wiki/sp2/goals.md b/docs/content/wiki/sp2/goals.md new file mode 100644 index 000000000..12c29c647 --- /dev/null +++ b/docs/content/wiki/sp2/goals.md @@ -0,0 +1,140 @@ ++++ +title = "Goals for SimplePie 2" ++++ + +Over the past four years or so, SimplePie has grown from a completely unknown set of functions sitting on top of MagpieRSS to one of the world's most popular feed parsers with thousands and thousands of users all over the world. Also in that time, SimplePie has started to outgrow its architecture. People use SimplePie for all sorts of tasks that we never really anticipated, so we believe we've now reached a point where it's time for a reset. + +SimplePie 2 is currently in the planning stages, and is both a fork and a ground-up re-write of SimplePie. The intention is to enhance the performance by trimming the fat, to build something more extensible, to make it easier to contribute, and to optimize for the kinds of tasks that we see people wanting to do frequently. The purpose of this document is to put together a list of goals for SimplePie 2 that will improve the overall project as a whole, and unshackle some of the early design decisions which now seem to be holding us back. + +That being said, I took some time to write down some thoughts about what should go into SimplePie 2, and I would really like to get your thoughts as well. Are there things that SP2 should do that SP1 doesn't? Would you like to use SimplePie in ways that are currently more difficult than they should be? Are you somebody who has a different design philosophy and you think we should pay better attention to certain things? This is your chance to weigh in with your thoughts, opinions, comments, and other feedback. + +We encourage **everyone** in the SimplePie community to weigh in with their opinions on the next version of SimplePie so that we can make this software by the people, for the people. Feel free to edit, change, and improve what's there. Feel free to argue with what I've written. Please mark your contributions with ”~~ wiki-username” so that we know who to ask if we need clarification on any of the ideas. Just because it's on the list doesn't guarantee it'll get done, but we want to collaboratively share ideas and pick out the best ones. + +## The Vision {#the_vision} + +The vision of SimplePie 2 is to provide a solid, reliable **platform** for building feed-related tools. This will include not only a robust standard package, but will include the tools and documentation necessary for building industrial-strength functionality on top of the SimplePie platform making it easier for developers to create either standalone web pages or fully-integrated web applications. This will help create a healthy ecosystem for managing syndication in PHP with open-source tools. + +## Important Areas of Focus {#important_areas_of_focus} + +There have been some issues that we've seen over and over again that we want to focus on improving in SP2. These are things that we know that we want to put a lot of focus into for the next version. **If we want a better SimplePie, we need to do it together. The more community effort we get, the better this will be.** + +- Continue to provide a simple method for newcomers to simply embed feeds into their websites. However, under the hood, the “ComplexPie” core should be focused on high-performance, individual components that SimplePie pulls together. +- Paying much closer attention to releasing memory when we're done with objects, how that relates to circular references, and if there are better ways of doing the things that we use circular references for (e.g. $feed→get_item(0)→get_feed()→get_item(0)→get_feed()→get_item(0)). +- Focus on improved embed-ability. This means providing loosely-coupled components that developers can integrate separately into their apps (e.g. the parser). +- Developing applications and PopURLs clones requires (a) a need for identifying duplicate content (this is a bit tricky, however), and (b) processing feeds behind the scenes via cron job so that end-users don't feel the hit of a fresh download. +- Providing a solid, well-documented base that allows for extending SimplePie with custom modules. There should be standards and documentation about how to allow custom modules to hook into SimplePie. ALL modules will work this way. + +## Functionality {#functionality} + +### Base Functionality (i.e. the core package will have this) {#base_functionality_ie_the_core_package_will_have_this} + +- **Modular design:** We want to take a Firefox-like approach to this. The most important, most used functionality will be part of the core package, and everything else can be added a là carte (like Firefox extensions). This allows for a clearer separation of components, as well as the ability to write plugins and other custom modules. Because of this design, ALL functionality is comprised of separate modules, but a small group of modules will make up the “standard package.” ~~ skyzyx + - The “standard package” is a minimal collection of fundamental modules that a person would get if they clicked the download link. ~~ skyzyx +- **Core Module:** This will include important, re-usable stuff that is shared among the core package modules. It will also manage dependencies for new modules. ~~ skyzyx + - The “Core Module” is the core of SimplePie 2 and is nothing more than a loader for other modules. \*Everything\* else is a module. The Core Module should also manage dependencies and version requirements. “Probably doing a reverse, post-ordered, depth-first search” ~~ gsnedders/skyzyx +- **Configuration Module:** Manages the setting/getting of configuration options. Extensible so that third-party modules can have custom settings set this way. ~~ skyzyx + - This should be relatively simple to have, but something I think we should have. The question if nothing else is if we it accessible from, say, an item level, does changing options there have an effect elsewhere, or just on that item? ~~ gsnedders + - Is there a use-case where something like this might be valuable? ~~ skyzyx +- **IRI Module:** We need to cope with converting Internationalized Resource Identifiers (IRIs) to their absolute counterparts as well as mapping IRIs to URIs for the sake of HTTP (e.g. möbius.com). ~~ skyzyx/gsnedders (Currently in development: ) +- **Character Transcoding Module:** Handles on-the-fly conversions between character encodings. Will continue to use UTF-8 internally. Uses the built-in `iconv` support by default, but will be enhanced by `mbstring` support. ~~ skyzyx + - On the whole I don't like iconv because we can't guarantee we'll comply to XML (behaviour is system dependent); mbstring is better because it is only dependant on PHP version; but what is better still is \<\>. :) Hopefully, that'll be able to cope with virtually anything of sufficient complexity to not be able to be done from a UCM/CharMapML file at reasonable expense, and use a UCM/CharMapML file otherwise. ~~ gsnedders + - I suggest `iconv` because it's built into PHP5, and `mbstring` as an enhancement because it's not. If we can provide the same functionality without the extension dependencies and not take a large performance hit, I think this is a good idea. ~~ skyzyx +- **Parsing Module:** Parses conformant feeds into a standard internal data structure. Uses the same namespace-based organization as SP 1.0. ~~ skyzyx + + + +- That's very inefficient. What we ought to do, now we can on PHP5, is use the DOM extension. Also, I think we should go beyond conformant feeds, and use XML5 to parse anything (we should be able to use libxml's XML 1 parser first and fallback to our XML5 parser, as the libxml parser be quicker), though the XML5 spec needs to be more written. ~~ gsnedders +- We should definitely use DOM. For RSS feeds, I think it would do a better job with oft-ill-formed XML than SimpleXML (which I prefer when I know the data is clean). In regard to XML5, my understanding is that it still has a ways to go. I understand the W3C process enough to know that there should be some solid implementations in place, but I'm not aware of how far along the path the spec is. ~~ skyzyx +- **Core API Layer Module:** Translates the internal data structure into logical API methods that third-party developers interact with. This “core” module will cover the normalization of various RSS/Atom data types, [hAtom](http://microformats.org/wiki/hatom), and should include all supported data types. ~~ skyzyx +- I, as part of having everything as a module, would prefer that Atom and RSS were different modules (maybe to the extreme of Atom 0.3, Atom 1.0, RSS 0.90, RSS 1, and RSS 2 all being different modules). Then we can have the fun of having it all coming together in one API. Also, I'd rather almost anything returned an object with several methods, dependant on the loaded modules, giving methods like ::get_xhtml(), ::get_html(), and ::get_text(). ~~ gsnedders +- That's an interesting way to solve a problem such as whether titles should be text or HTML, but I fear the added complexity another layer of subclasses would provide. I'm wondering if there's value in using something like `__toString()` to provide a default value along with subclasses. + +### Extended Functionality (i.e. non-standard, optional modules) {#extended_functionality_ie_non-standard_optional_modules} + +- **HTTP Module:** Handles requesting data over HTTP (with proper HTTP 1.1 support), and can understand and format the response into something more usable. Based on cURL, and supports curl_multi_exec() for parallel fetching of feeds. Should also have support for proxies, HTTP basic auth, and HTTP digest auth. ~~ skyzyx (Will be based on RequestCore: ) + - I'd rather not use cURL. I've had too much bad experience with it. That HTTP class is also rather useless in the real world, and doesn't really even work well for some stuff valid per HTTP/1.1. ~~ gsnedders + - I'd much prefer to use cURL. Leveraging `curl_multi_exec()` will substantially improve the fetch times for MultiFeed users because it can fetch in parallel. I'm hoping that we can determine the issues it has with HTTP/1.1 and improve it to make a more robust standalone fetching class. Although cURL seems to be fairly widely supported, I'm certainly interested in including baseline fetching support using another method. It's just that using `fsockopen()` has caused increased maintenance that I'd prefer to avoid moving forward. ~~ skyzyx + - I've moved these to “Extended” instead of “Standard” as our focus should be on the parsing instead of fetching the data. Fetches should be manual. +- **Caching Module:** Extensible caching system that manages functionality, along with an actual caching plugin (file-based). ~~ skyzyx (File-based, APC, Memcache, MySQL, PostgreSQL, and SQLite caching will be based on CacheCore: ) + - This for the most part looks fine. However, how are we going to cache? Using the DOM extension we have cheap enough XML parsing to just save XML, but then do we cache processed content (like sanitized HTML content)? ~~ gsnedders + - Provide separate cache files for each feed item, much like how we do for MySQL caching in the trunk. We would still need a way to keep track of which items are in the feed though. This is easy with a SQL system, but a bit more challenging with a flat cache (File, APC, Memcache). Alternatively, flat caches are better for storing large chunks of data for the long term. We need to find the proper balance between the two and make sure they're well supported. + - It will be great to have control over caching, lets say option to re-cache or completely remove it. ~~lev + - Re-caching would simply be a matter of providing a method to delete the existing cache. When the page loaded, the feed would automatically re-cache as long as caching is enabled. Deleting the cache is exactly the same process. + - I've moved these to “Extended” instead of “Standard” as our focus should be on the parsing instead of caching the data. Caches should be manual. +- PDO-based SQL caching module, SQL/Hybrid caching module (higher performing than pure SQL caching, but more complex), APC caching module, Memcache caching module (?). Will sit on top of the core Caching module. ~~ skyzyx (See “Caching Module” above for details.) + - By “SQL/Hybrid” I mean a more scalable SQL-based cache where BLOBs are stored as files and pointers are stored in SQL. For small-scale aggregation, pure SQL is fine. But where scalability matters, a hybrid approach will perform much better. ~~ skyzyx +- Ultra-Liberal Feed Locator. Will support a variety of methods above and beyond simple auto-discovery for discovering feeds. ~~ skyzyx + - I'm in favour of dropping entirely the ultra-liberal feed locator, and just follow HTML 5 (i.e., a link (which can be either an a or link element), with a relationship of “feed” (which is also implied by a relation of “alternate” with @type='application/atom+xml' or @type='application/rss+xml')). (Disclaimer: that is a summary of HTML 5 from memory, and may be wrong.) ~~ gsnedders +- Media RSS API layer, iTunes RSS API layer, GeoRSS API layer, hAtom API layer, Digg API layer, Y! Weather API layer, Google Calendar API layer, and others. ~~ skyzyx + - These will NOT all be first-party modules. We will need to rely on third-party contributors for many of these. We plan to provide a straightforward API for doing so. ~~ skyzyx +- Data Sanitization module. Strips potentially dangerous content, resolves relative paths/URLs, etc. ~~ skyzyx + - This has to be core, even if it all it does by default is convert relative IRIs to absolute ones. ~~ gsnedders +- Content munging modules such as text shortening, extracting images, and other related things. Caching content images. Finding and caching favicons. ~~ skyzyx + - These are oft-requested bits of functionality, but have no place in the standard package. These should by developed (by someone) as purely optional modules. ~~ skyzyx + - Fetching favicons is harder than people realize. +- JSON Web Service module that translates the internal data structure into JSON and can serve it efficiently using REST-style methods (same as SimplePie Live!) ~~ skyzyx + - If we're just using DOM as the internal data structure, what's the diff. from just using x-domain XHR? Really a ECMAScript implementation of a feed reader should be entirely separate, which would allow you to do cool ECMAScript stuff, and not have something PHP-like (though admittedly you'd need a proxy to circumvent same origin restrictions on XHR, unless all feeds are served with whatever the suitable Access Control header is (which is also going to be used by XDR, as well as XHR Level 2). ~~ gsnedders + - I've been keeping a close eye on the X-Domain XHR developments, but browser implementations are nowhere near where they should be. SimplePie should be used to parse on the backend, and if we can generate JSON from the backend, then the data exposure method is less important. It would still allow us to provide a SimplePie Live-like service, but in a much cleaner way. I'd like to move the hosting for this to something more reliable like Mosso or Amazon EC2, but we'll need to be able to generate some sort of revenue before we can afford the move. (Is it worth taking a look at text-only ads to offset the cost of such hosting?) ~~ skyzyx +- I would like to be able to add/remove tags (e.g. add “en” for feeds in english, add “twitter” for feeds coming for twitter), and to filter according to them (retrieve post with “en” but not “twitter”). ~~ ofaurax + +### Other Cool Ideas {#other_cool_ideas} + +- (I'm not sure where this should go, as I'm a first timer here, but ..) Really looking for good Atompub (Atom Publishing Protcol) support … an API for building entries and POST, PUT, DELETing them from collections. – lewen7er9 +- Ability to cache favicons and content images to a third-party CDN service such as [Amazon S3](http://aws.amazon.com/s3) (leveraging the third-party [Tarzan](http://tarzan-aws.com) toolkit for example). ~~ skyzyx + - I don't think something like this should be included at all. It simply requires far too much code to bundle. ~~ gsnedders + - Perhaps as a non-standard module. If we have an (optional) module for parsing out images and favicons, caching them to S3 would be a simple matter of binding the two. ~~ skyzyx +- I would love to somehow see accurate filtering of duplicates for aggregated feeds ~~ rrhobbs +- I would love to see a module that helps you update a database with feed items based on a set of feed urls (making sure that you are not entering the same items etc. I guess its similar to a database caching ~~ eb +- I'd love for Simplepie to be able to parse larger RSS files than currently possible (larger than my memory). I understand this will mean it can't use a method that loads the whole DOM in memory. I however don't fully know the consequences of this. ~~PanMan +- I'd like to see a way of differentiating which entries come from which feed when aggregating feeds. Say if I had an array with appropriate keys eg: `$feeds['twitter'] = “http://twitter.com/username/rss”;` etc.. then I could access that `$key` in the loop to use as a CSS class name or to do some custom parsing/display of the feed item. ~~ sanchothefat +- It would be great to have support for CSS-sprites, e.g. for the favicons. If you have a site with, let's say, 90 feeds, there are a lot of HTTP-requests decreasing load-time. ~~ marcfalk + - I understand the performance implications (i.e. [CSS Sprites](http://developer.yahoo.com/performance/rules.html#opt_sprites)). However you can't do spriting on the fly, which means you'd have to pull the favicons and create a sprite ahead of time. You'd have to add this to your CSS/HTML manually, so I'm not sure how this relates to SimplePie. Clarification? + - No I see. Well, I just need an opportunity to implement it, right now I cannot? You could add favposition to the array, so that when I e.g. call 'favicon' ⇒ '../images/source.png', I could also specify 'favposition' ⇒ '0px,-52px' … I don't know. Anyway, as you say it probably doesn't relate that much to SimplePie, and it IS possible without integrating it. + - Oh, you're talking about NewsBlocks. That is a completely separate demo from the SimplePie 2.0 core. + +## Module Development {#module_development} + +We've had a fairly difficult time finding new developers to help grow this project. The (relatively) recent additions of Michael Shipley and Ryan McCue have been great, but we'd like to grow the team even more to spread the development load (since this a part-time project for everyone involved). I (Ryan P.) think that part of the problem is a 10,000-line PHP file. I also think it's due to a lack of complete, in-code documentation. + +My suggestion is that, during development, we break out individual modules and work on them independently (I'm definitely open to better ideas about this structure). Modules will need to be included one-by-one, but we could also have a “core” identifier that would load ALL core modules (which should be good for most users, most of the time). Hopefully this development approach would be less intimating to would-be contributors, so people can ease-in a little better. + +- SimplePie folder + - `simplepie.inc.php` (yes, with a `.php` file extension ;) ) + - modules + - `core.php` + - `core.api.php` + - `core.api.rss09x.php` + - `core.api.rss10.php` + - `core.api.rss20.php` + - `core.api.atom03.php` + - `core.api.atom10.php` + - `core.api.hatom.php` + - `core.cache.php` + - `core.cache.file.php` + - `core.cache.pdo.php` + - `core.configuration.php` + - `core.http.php` + - `core.interface.php` + - `core.iri.php` + - `core.parser.php` + - `core.unicode.php` + - `gsnedders.api.cdf.php` + - `gsnedders.parser.favicons.php` + - `rparman.api.gcalendar.php` + - `rparman.api.mediarss.php` + - `rparman.api.yweather.php` + - `rparman.cache.apc.php` + - `rparman.cache.memcache.php` + - `rparman.cache.s3.php` + - `rparman.interface.json.php` + - `rparman.interface.wordpress.php` + +## Requirements {#requirements} + +- PHP 5.1.x (which includes [iconv](http://php.net/iconv)) + - PHP 5.2, please! What I was planning on doing would be very hard without PHP 5.2, and PHP 5.2 is _already_ wide-spread enough (heck, PHP 5.3 may be possible as a realistic requirement when SP2 ships). ~~ gsnedders +- [PCRE](http://php.net/pcre) (regular expression support) + - I'd rather require PCRE with Unicode support compiled in (which it has had by default for several years now). ~~ gsnedders +- [DOMDocument](http://php.net/domdocument) (better than SimpleXML at handling malformed HTML/XML markup) + - No, it's no better in terms of parsing stuff that isn't well-formed. They use the same parser. The issue is that SimpleXML has had behaviour changes within PHP 5.2, and also (used to?) vary on Windows/\*nix OSes. ~~ gsnedders +- Raise the knowledge requirement to something sensible. People should already be able to know how to write and call simple functions, jump in-and-out of PHP blocks, write to the page (i.e. output buffer), define simple arrays (indexed and associative), know how to utilize existing constants, and understand the basic parent-child nature of objects and methods/properties. SimplePie is a toolkit for PHP developers. It needs to start acting like one. diff --git a/docs/content/wiki/tutorial/_index.md b/docs/content/wiki/tutorial/_index.md new file mode 100644 index 000000000..dd4b62afe --- /dev/null +++ b/docs/content/wiki/tutorial/_index.md @@ -0,0 +1,102 @@ ++++ +title = "Tips, Tricks, Tutorials, and Screencasts" ++++ + +There are all sorts of cool things you can do with SimplePie and feeds. These are some of the most popular code snippets and samples we've come across. Feel free to add your own, but if there's a similar one to what you're wanting to post, please see if you can merge your notes into the one that already exists. + +These are tutorials about _how_ to do things. For questions or issues that are frequently asked _about_ SimplePie, check the [Frequently Asked Questions](@/wiki/faq/_index.md) page. If you're looking for some cool sites and tools to inspire you, check out the [Sites that have integrated SimplePie](@/wiki/ideas/_index.md) page. + +
    + +If you would like to see a tutorial for something here, add the title (in the same format as the other tutorial links) to the [requested_tutorials](@/wiki/tutorial/_index.md#requested_tutorials) section. + +
    + +## Screencasts {#screencasts} + +Screencasts are either QuickTime 7 files (compressed as H.264/AAC) or are Flash Video (.flv), and may be wider than a 1024×768 screen resolution. Assumes that you have gotten through the [Introduction to PHP](http://us2.php.net/tutorial) tutorial (as noted in the [minimum requirements](@/wiki/setup/requirements.md)), and understand that a **feed** has information associated with it, and a feed contains one or more **items** which also have information associated with them. + +- **[Introduction to SimplePie](/tutorials/introduction_to_simplepie.mov "http://simplepie.org/tutorials/introduction_to_simplepie.mov") (10:56)** + This screencast by Ryan Parman discusses the creation of a simple page, feed auto-discovery, mashing and sorting multiple feeds by time and date, favicons, and PHP5 method chaining. +- **[Creating the Digg SimplePie Add-on](/tutorials/simplepie_digg_addon.mov "http://simplepie.org/tutorials/simplepie_digg_addon.mov") (22:13)** + This screencast by Ryan Parman discusses the creation of SimplePie Add-ons including extending and overriding the built-in SimplePie classes. Uses Digg's custom RSS tags as the application of this Add-on. +- **[Integrate SimplePie and CodeIgniter](http://www.viddler.com/explore/elliothaughin/videos/10/) (23:40)** + This screencast by Elliot Haughin discusses how to integrate SimplePie into your CodeIgniter projects. +- **[Add SimplePie to Firefox 2](/tutorials/simplepie_firefox.mov "http://simplepie.org/tutorials/simplepie_firefox.mov") (0:30)** + This 30-second “screen spot” by Ryan Parman shows how easy it is to add SimplePie as the default feed handler in Firefox 2. +- **[Quick Tip \#16 Super SimplePie!](http://www.nikibrown.com/designoblog/2009/02/10/quick-tip-16-super-simple-pie/) (3:49)** + This short video by Niki Brown shows how easy it can be to drop SimplePie directly into your existing pages. +- **[CSS-Tricks: Adding RSS content with SimplePie](http://css-tricks.com/video-screencasts/55-adding-rss-content-with-simplepie/) (33:03)** + In this screencast by Chris Coyier, we build a really simple site that grabs content from multiple RSS feeds, smushes them together, and displays them using our own custom markup. +- **[NETTUTS: Extending SimplePie to Parse Unique RSS Feeds](http://net.tutsplus.com/videos/screencasts/extending-simplepie-to-parse-unique-rss-feeds/) (40:10)** + Jeffrey Way takes the time to show us how to extend SimplePie's abilities, build a page of thumbnails and videos, and wrap it up in a slick jQuery-based UI. +- [How to Build a Super Duper News Scroller](http://net.tutsplus.com/videos/screencasts/how-to-build-a-super-duper-news-scroller/) + +## Code and Demos {#code_and_demos} + +- [Leaderboard](http://www.michaelpshipley.com/simplepie/simplepie-leaderboard-18/) +- [Filter posts by keywords](http://www.michaelpshipley.com/simplepie/filter-4/) +- [How to display a single item in a feed](@/wiki/tutorial/how_to_display_a_single_feed_item.md) +- [This demo shows how to use SimplePie and a flat file database to display previous feed items like Google Reader](@/wiki/tutorial/how_to_display_previous_feed_items_like_google_reader.md) +- [How to Update and Display RSS Feeds or ATOM Feeds Without Re-Loading the Web Page Using AJAX and SimplePie](http://www.michaelpshipley.com/simplepie/update-and-display-rss-or-atom-feeds-without-re-loading-the-web-page-using-javascript-ajax-and-simplepie-42/) +- [How to speed up SimplePie: SimplePie Accelerator](http://www.michaelpshipley.com/simplepie/simplepie-accelerator-34/) +- [Create a Slick Flickr Gallery with SimplePie](http://net.tutsplus.com/tutorials/php/create-a-slick-flickr-gallery-with-simplepie/) +- [How To Realize A News Aggregator Using Simple Pie In An Adaptive Layout](http://www.pvmgarage.com/en/2009/07/how-to-realize-a-news-aggregator-using-simple-in-an-adaptive-layout/) +- [How to Create a Lifestream of Your Online Activities](http://line25.com/tutorials/how-to-create-a-lifestream-of-your-online-activities) +- [Easy feed reading with SimplePie](http://www.corvidworks.com/articles/easy-feed-reading-with-simplepie) +- [Simple Activity Streaming with SimplePie](http://dentedreality.com.au/2009/07/simple-activity-streaming-with-simplepie/) +- [A collection of beginner SimplePie tutorials](http://www.devirtuoso.com/2009/07/a-collection-of-beginner-simplepie-tutorials/). +- [LifeStreaming Is Simple As Pie](http://joshhighland.com/blog/2008/04/19/lifestreaming-is-simple-as-pie/) +- [Building a Better Blogroll: Dynamic Fun with SimplePie and jQuery](http://net.tutsplus.com/javascript-ajax/building-a-better-blogroll-dynamic-fun-with-simplepie-and-jquery/) +- [Build A Simple Online Feed-reader With SimplePie, jQuery and PHP](http://ad1987.blogspot.com/2009/03/how-to-building-simple-online-feed.html) +- [Selectable RSS with SimplePie and jQuery](http://www.csskarma.com/blog/selectable-rss/) + +## Time and Date {#time_and_date} + +- [Only display items from the last 24 hours](@/wiki/tutorial/only_display_items_from_the_last_24_hours.md) +- [Changing timezones in a timestamp](@/wiki/tutorial/changing_timezones_in_a_timestamp.md) +- [Translate timestamps into another language](@/wiki/tutorial/translate_timestamps_into_another_language.md) +- [Use Relative Dates](@/wiki/tutorial/use_relative_dates.md) +- [How to group multiple posts by day](@/wiki/tutorial/how_to_group_multiple_posts_by_day.md) +- [Date-based CSS class](http://jivebay.com/2007/08/01/css-class-based-on-date/) + +## Multiple Feeds {#multiple_feeds} + +- [Sort multiple feeds by time and date](@/wiki/tutorial/sort_multiple_feeds_by_time_and_date.md) +- [NewsBlocks Demo 2.0](@/wiki/tutorial/how_to_replicate_popurls.md) +- [Limit the number of items per feed to be used with Multifeeds](@/wiki/tutorial/how_to_limit_the_number_of_items_displayed_per_feed_when_using_multifeeds.php.md) +- [Generate a new feed using SimplePie's multifeed support](http://www.webmaster-source.com/2007/08/06/merging-rss-feeds-with-simplepie/) +- [Building your own Alltop or PopURLs](http://www.delic.com/blog/2008/04/11/building-your-own-alltop-or-popurls/) +- [Build your own popurls-like news aggregator using wordpress theme](http://ericulous.com/2007/06/11/popurls-clone-using-wordpress/) + +## Getting Specific Data {#getting_specific_data} + +- [Grab custom tags or attributes](@/wiki/tutorial/grab_custom_tags_or_attributes.md) +- [How do I get a thumbnail from a YouTube feed?](@/wiki/tutorial/how_do_i_get_a_thumbnail_from_a_youtube_feed.md) +- [Only display images from a feed](@/wiki/tutorial/only_display_images_from_a_feed.md) +- [Flickr Lightbox](@/wiki/tutorial/flickr_lightbox.md) +- [Google Calendar on your website](http://james.cridland.net/code/google-calendar.html) +- [Flickr Photo Feeds mit SimplePie überwachen](http://www.pixelgraphix.de/log/2007-07/flickr-photo-feeds-mit-simplepie-ueberwachen.php) (German) + +## Miscellaneous {#miscellaneous} + +- [How to do item paging](@/wiki/tutorial/how_to_do_item_paging.md) +- [Shorten titles and descriptions](@/wiki/tutorial/shorten_titles_and_descriptions.md) +- [How to edit part of the feed before parsing it](@/wiki/tutorial/how_to_edit_part_of_the_feed_before_parsing_it.md) +- [How to make description links open in a new window](@/wiki/tutorial/how_to_make_description_links_open_in_a_new_window.md) +- [Sorting by custom criteria instead of date](@/wiki/tutorial/sorting_by_custom_criteria_instead_of_date.md) +- [Setting up a cron job for SimplePie and SimplePie Plugin for Wordpress](@/wiki/tutorial/setting_up_a_cron_job_with_simplepie.md) + +## Integration {#integration} + +- [Integrate SimplePie with 68 Classifieds](http://ericlbarnes.com/68classifieds/tips/integrate-simplepie-with-68-classifieds/) +- [Integrate SimplePie and CodeIgniter](http://nextbigleap.com/blog/development/simplepie-rss-class-and-codeigniter) +- [CodeIgniter + SimplePie: Like peas and carrots](http://68kb.com/2007/10/31/codeigniter-and-simplepie/) +- [SmartyPie: Feeding the Smarty PHP Template Engine with SimplePie](http://www.michaelpshipley.com/simplepie/smartypie-feeding-the-smarty-php-template-engine-with-simplepie-21/) + +## Requested Tutorials {#requested_tutorials} + +- Read my GMail / Check new mail +- feel free to add more! + +How do you this feed horizontal using the rss images for wordpress?? how to add mysql database caching ? diff --git a/docs/content/wiki/tutorial/changing_timezones_in_a_timestamp.md b/docs/content/wiki/tutorial/changing_timezones_in_a_timestamp.md new file mode 100644 index 000000000..f981d96c8 --- /dev/null +++ b/docs/content/wiki/tutorial/changing_timezones_in_a_timestamp.md @@ -0,0 +1,17 @@ ++++ +title = "Changing timezones in a timestamp" ++++ + +By default PHP's [date()](http://php.net/date) function (and in turn, SimplePie's get_date() method) return the timestamp according to the web server's timezone. But what if your timezone and your server's are different and you want to display yours? + +## PHP 5.1 or newer {#php_51_or_newer} + +Use the [date_default_timezone_set()](http://us.php.net/manual/en/function.date-default-timezone-set.php) function with a timezone parameter from the [timezone page](http://us.php.net/manual/en/timezones.america.php). This should be set before PHP's date() or SimplePie's get_date() is called. + +```php +date_default_timezone_set('America/Los_Angeles'); +``` + +## PHP 5.0.x or earlier {#php_50x_or_earlier} + +Use the [putenv()](http://us.php.net/manual/en/function.putenv.php) function as documented in [this comment](http://us.php.net/manual/en/function.putenv.php#11811). diff --git a/docs/content/wiki/tutorial/flickr_lightbox.md b/docs/content/wiki/tutorial/flickr_lightbox.md new file mode 100644 index 000000000..5b10fbfce --- /dev/null +++ b/docs/content/wiki/tutorial/flickr_lightbox.md @@ -0,0 +1,186 @@ ++++ +title = "Flickr Lightbox" ++++ + +[Flickr](http://flickr.com) is a popular photo sharing site that supports the best and the brightest ideas that the modern web has to offer. [Lightbox](http://www.huddletogether.com/projects/lightbox/) is a relatively popular script that provides a cool looking UI for viewing photos. Lightbox was so popular, in fact, that it has inspired innumerable spinoffs and variations. [Here is a list of some of the various Lightbox clones](http://www.fortysomething.ca/mt/etc/archives/005400.php). + +Having mentioned that there are lots and lots of variations, one of the more popular ones is [Lightbox 2](http://www.huddletogether.com/projects/lightbox2/) created by Lightbox's original author. Many of the photo-only variations of Lightbox are compatible with the original Lightbox HTML, so this is what we'll be creating. Feel free to tweak and adjust as the instructions for whichever 'box you're using dictates. + +This tutorial was partially inspired by + +
    + +This tutorial assumes that you're already familiar with using SimplePie, including looping through items. + +
    + +## Notes {#notes} + +- Apparently, Flickr now has a different “secret” ID for the original image, which we don't have access to in the feed. Because of that, this tutorial does not support the displaying of the “original” image. +- The large version of the photo may or may not be available from Flickr. Flickr resizes and store photos based on the width/height of the image. If the original image that was uploaded was too small for a “large” version, then there won't be one. +- There is TONS more functionality available from the [Flickr API](http://www.flickr.com/services/api/). If there's something you want to do that isn't part of this tutorial, take some time to go over the Flickr API docs. I would also recommend [phpFlickr](http://phpflickr.com/) if you're looking for a PHP-based API for Flickr's web services. +- This is actually pretty simple code. I've already written the upfront functions to do all the dirty work. All you have to do to use it is loop through each item in the Flickr feed and pass in some parameters (which in this example have already been done for you). + +## Compatibility {#compatibility} + +- Tested with a standard Flickr Atom feed as of 23 August 2007. +- Supported in SimplePie 1.0. +- Code in this tutorial should be compatible with PHP 4.3 or newer, and should not use PHP short tags, in order to support the largest number of PHP installations. + +## Installation {#installation} + +### Instructions {#instructions} + +1. Create a new file called `flickr_lightbox.inc` and place it in the same directory as your `simplepie.inc` file. +2. On the SimplePie-enabled page you want to use this on, make sure you include it in the same way that you include `simplepie.inc`. + +### Source Code {#source_code} + +```php +]*)>/i', $data, $m); + return $m[1][0]; + } +} +?> +``` + +### Example "Full Page" Code {#example_full_page_code} + +```php +handle_content_type(); + +/** + * What sizes should we use? + * Choices: square, thumb, small, medium, large. + */ +$thumb = 'square'; +$full = 'medium'; + +?> + + + Flickr Lightbox + + + + + + + + + + + + + get_items() as $item): + + // Set some variables to keep the rest of the code cleaner. + $url = lightbox::find_photo($item->get_description()); + $title = lightbox::cleanup($item->get_title()); + $full_url = lightbox::photo($url, $full); + $thumb_url = lightbox::photo($url, $thumb); + ?> + + + <?php echo $title; ?> + + + + + + +``` + +### Example "Add it to an existing page" Code {#example_add_it_to_an_existing_page_code} + +**Assumes:** + +1. You've already got a page… +2. … with a Lightbox of some sort already installed… +3. … and your page is set to UTF-8… +4. … and you're not already including SimplePie somewhere else in the page. + +```php +get_items() as $item): + $url = lightbox::find_photo($item->get_description()); + $title = lightbox::cleanup($item->get_title()); + $full_url = lightbox::photo($url, $full); + $thumb_url = lightbox::photo($url, $thumb); +?> + + + <?php echo $title; ?> + + + +``` diff --git a/docs/content/wiki/tutorial/grab_custom_tags_or_attributes.md b/docs/content/wiki/tutorial/grab_custom_tags_or_attributes.md new file mode 100644 index 000000000..775b56dba --- /dev/null +++ b/docs/content/wiki/tutorial/grab_custom_tags_or_attributes.md @@ -0,0 +1,77 @@ ++++ +title = "Grab custom tags or attributes" ++++ + +SimplePie 1.0 introduces the ability to grab data from any element in the feed, even if there aren't public methods for grabbing them. This is a popular feature among RSS hackers. + +SimplePie maps data by the namespace URL, and from there you can use PHP's [print_r()](http://php.net/print_r) function to navigate the rest of the way through the array. This example shows you how to get an event's start date from a Google Calendar feed. Not only will we find this date data, but we'll reformat it and then sort the items chronologically based on it. + +We'll use the [get_item_tags()](@/wiki/reference/simplepie_item/get_item_tags.md) in this example, although we could also use [get_channel_tags()](@/wiki/reference/simplepie/get_channel_tags.md) for the feed-level data. + +
    + +This tutorial assumes that you're already familiar with using SimplePie, including looping through items. This is only sample code, and you should not create real pages using the (horrid) HTML generated by this example. + +
    + +## Compatibility {#compatibility} + +- Supported in SimplePie 1.0. +- Code in this tutorial should be compatible with PHP 4.3 or newer, and should not use PHP short tags, in order to support the largest number of PHP installations. + +## Code source {#code_source} + +```php +set_feed_url('http://www.google.com/calendar/feeds/eventi%40emmealcubo.com/public/full'); + +// Let's turn this off because we're just going to re-sort anyways, and there's no reason to waste CPU doing it twice. +$feed->enable_order_by_date(false); + +// Initialize the feed so that we can use it. +$feed->init(); + +// Make sure the content is being served out to the browser properly. +$feed->handle_content_type(); + +// We'll use this for re-sorting the items based on the new date. +$temp = array(); + +foreach ($feed->get_items() as $item) { + + // We want to grab the Google-namespaced tag. + $when = $item->get_item_tags('http://schemas.google.com/g/2005', 'when'); + + // Once we grab the tag, let's grab the startTime attribute + $date = $when[0]['attribs']['']['startTime']; + + // Let's convert it all to UNIX timestamp. This will be used for sorting. + $sortDate = SimplePie_Misc::parse_date($date); + + // Let's format it with date(). This will be the date we display. + $gCalDate = date('j M Y', $sortDate); + + // This is how each item will be displayed. We're adding it to the array we created earlier, and indexing it by the $sortDate. + $temp[$sortDate] = '

    ' . $item->get_title() . ' — ' . $gCalDate . '

    '; +} + +// Change this to krsort() to display with the furthest event first. +ksort($temp); + +// Loop through the (now sorted) array, and display what we wanted. +foreach ($temp as $paragraph) { + echo $paragraph; +} +?> +``` + +## Notes {#notes} + +If there is a tag in the feed that does not have a namespace (i.e. `` instead of ``), use an empty string for the `$namespace` parameter. diff --git a/docs/content/wiki/tutorial/how_do_i_get_a_thumbnail_from_a_youtube_feed.md b/docs/content/wiki/tutorial/how_do_i_get_a_thumbnail_from_a_youtube_feed.md new file mode 100644 index 000000000..feb8f7ba9 --- /dev/null +++ b/docs/content/wiki/tutorial/how_do_i_get_a_thumbnail_from_a_youtube_feed.md @@ -0,0 +1,41 @@ ++++ +title = "How do I get a thumbnail from a YouTube feed?" ++++ + +SimplePie 1.0 introduces full support for [Media RSS](http://search.yahoo.com/mrss) – a popular set of tags geared for media files, and are added to RSS and Atom feeds. + +
    + +This tutorial assumes that you're already familiar with using SimplePie, including looping through items. This is only sample code, and you should not create real pages using the (horrid) HTML generated by this example. + +
    + +## Compatibility {#compatibility} + +- Supported in SimplePie 1.0. +- Code in this tutorial should be compatible with PHP 4.3 or newer, and should not use PHP short tags, in order to support the largest number of PHP installations. + +## Code source {#code_source} + +```php +handle_content_type(); + +foreach ($feed->get_items() as $item) +{ + // As long as an enclosure exists... + if ($enclosure = $item->get_enclosure()) + { + // Display the thumbnail as an image and link it back to the YouTube page, and adding the video's title as a tooltip for the link. + echo ''; + } +} +?> +``` diff --git a/docs/content/wiki/tutorial/how_to_display_a_single_feed_item.md b/docs/content/wiki/tutorial/how_to_display_a_single_feed_item.md new file mode 100644 index 000000000..2f77c4ca2 --- /dev/null +++ b/docs/content/wiki/tutorial/how_to_display_a_single_feed_item.md @@ -0,0 +1,63 @@ ++++ +title = "How to display a single item in a feed" ++++ + +### How to display a single item in a feed {#how_to_display_a_single_item_in_a_feed} + +Basically all you do is check for the presence of an item number field in the url query string. If it's present, just show that item. Here is some demo code: + +```php +set_feed_url($url); +$feed->init(); + +// default starting item +$start = 0; + +// default number of items to display. 0 = all +$length = 0; + +// if single item, set start to item number and length to 1 +if(isset($_GET['item'])) +{ + $start = $_GET['item']; + $length = 1; +} + +// set item link to script uri +$link = $_SERVER['REQUEST_URI']; + +// loop through items +foreach($feed->get_items($start,$length) as $key=>$item) +{ + + // set query string to item number + $queryString = '?item=' . $key; + + // if we're displaying a single item, set item link to itself and set query string to nothing + if(isset($_GET['item'])) + { + $link = $item->get_link(); + $queryString = ''; + } + + // display item title and date + echo '' . $item->get_title() . ''; + echo ' '.$item->get_date().'
    '; + + // if single item, display content + if(isset($_GET['item'])) + { + echo ' '.$item->get_content().'
    '; + } + echo '
    '; +} + +?> +``` diff --git a/docs/content/wiki/tutorial/how_to_display_previous_feed_items_like_google_reader.md b/docs/content/wiki/tutorial/how_to_display_previous_feed_items_like_google_reader.md new file mode 100644 index 000000000..42b7ca698 --- /dev/null +++ b/docs/content/wiki/tutorial/how_to_display_previous_feed_items_like_google_reader.md @@ -0,0 +1,189 @@ ++++ +title = "This demo shows how to use SimplePie and a flat file database to display previous feed items like Google Reader" ++++ + +### This demo shows how to use SimplePie and a flat file database to display previous feed items like Google Reader {#this_demo_shows_how_to_use_simplepie_and_a_flat_file_database_to_display_previous_feed_items_like_google_reader} + +```php + + + + +Demo of how to use SimplePie and a flat file database to display old feed items + + + + +set_feed_url($urls); +$feed->set_cache_duration(100); +$feed->init(); + + +/* + load flat file db into array +*/ +if(file_exists($savedItemsFilename)) +{ + $savedItems = unserialize(file_get_contents($savedItemsFilename)); + if(!$savedItems) + { + $savedItems = array(); + } +} + + +/* + Loop through items to find new ones and insert them into db +*/ +foreach($feed->get_items() as $item) +{ + + // if item is too old dont even look at it + if($item->get_date('U') < $expireDate) + continue; + + + // make id + $id = md5($item->get_id()); + + + // if item is already in db, skip it + if(isset($savedItems[$id])) + { + continue; + } + + // found new item, add it to db + $i = array(); + $i['title'] = $item->get_title(); + $i['link'] = $item->get_link(); + $i['author'] = ''; + $author = $item->get_author(); + if($author) + { + $i['author'] = $author->get_name(); + } + $i['date'] = $item->get_date('U'); + $i['content'] = $item->get_content(); + $feed = $item->get_feed(); + $i['feed_link'] = $feed->get_permalink(); + $i['feed_title'] = $feed->get_title(); + + $savedItems[$id] = $i; +} + + +/* + remove expired items from db +*/ +$keys = array_keys($savedItems); +foreach($keys as $key) +{ + if($savedItems[$key]['date'] < $expireDate) + { + unset($savedItems[$key]); + } +} + + +/* + sort items in reverse chronological order +*/ +function customSort($a,$b) +{ + return $a['date'] <= $b['date']; +} +uasort($savedItems,'customSort'); + + + +/* + save db +*/ +if(!file_put_contents($savedItemsFilename,serialize($savedItems))) +{ + echo ("Error: Can't save items.
    "); +} + + +/* + display all items from db +*/ +echo '

    SimplePie + flat file database

    '; +$count = 1; +foreach($savedItems as $item) +{ + echo $count++ . '. '; + echo '' . $item['feed_title'] . ''; + echo ' : '; + echo $item['title']; + echo '
    '; + echo '' . date('r',$item['date']) . ''; + echo '
    '; + echo '
    '; +} + +/* + for comparison, show all feed items using SimplePie only +*/ +echo '

    SimplePie only

    '; +$count = 1; +foreach($feed->get_items() as $item) +{ + echo $count++ . '. '; + $iFeed = $item->get_feed(); + echo '' . $iFeed->get_title() . ''; + echo ' : '; + echo $item->get_title(); + echo '
    '; + echo '' . $item->get_date('r') . ''; + echo '
    '; + echo '
    '; +} + +/* + Total counts +*/ + echo '

    Total item counts

    '; + echo 'Database item count: ' . count($savedItems); + echo '
    '; + echo 'SimplePie item count: ' . $feed->get_item_quantity(); + echo '
    '; +?> + + + + +``` diff --git a/docs/content/wiki/tutorial/how_to_do_item_paging.md b/docs/content/wiki/tutorial/how_to_do_item_paging.md new file mode 100644 index 000000000..513766dec --- /dev/null +++ b/docs/content/wiki/tutorial/how_to_do_item_paging.md @@ -0,0 +1,110 @@ ++++ +title = "How to do item paging" ++++ + +Although this tutorial doesn't **require** SimplePie (this is just plain ol' PHP), there have been a few users who have asked for this. In this tutorial we will merge multiple feeds together, and allow for a variety of paging options (5, 10, or 20 items per page; Previous and Next buttons). + +## Compatibility {#compatibility} + +- Supported in SimplePie 1.0. +- Code in this tutorial should be compatible with PHP 4.3 or newer, and should not use PHP short tags, in order to support the largest number of PHP installations. + +## Code source {#code_source} + +```php +set_feed_url(array( + 'http://www.newsvine.com/_feeds/rss2/tag?id=technology', + 'http://uneasysilence.com/feed/', + 'http://www.tuaw.com/rss.xml' +)); +$success = $feed->init(); + +// Make sure the page is being served with the right headers. +$feed->handle_content_type(); + +// Set our paging values +$start = (isset($_GET['start']) && !empty($_GET['start'])) ? $_GET['start'] : 0; // Where do we start? +$length = (isset($_GET['length']) && !empty($_GET['length'])) ? $_GET['length'] : 5; // How many per page? +$max = $feed->get_item_quantity(); // Where do we end? + +// When we end our PHP block, we want to make sure our DOCTYPE is on the top line to make +// sure that the browser snaps into Standards Mode. +?> + + + +SimplePie: Demo + + + + + + +
    + error()) + { + echo '
    ' . "\r\n"; + echo '

    ' . htmlspecialchars($feed->error()) . "

    \r\n"; + echo '
    ' . "\r\n"; + } + ?> + + + get_items($start, $length) as $item): + $feed = $item->get_feed(); + ?> + +
    + +

    get_permalink()) echo ''; echo $item->get_title(true); if ($item->get_permalink()) echo ''; ?>

    + get_content(); ?> +

    Source: get_title(); ?> | get_date('j M Y, g:i a'); ?>

    + +
    + + + + + Next »'; + if ($next > $max) + { + $nextlink = 'Next »'; + } + + // Create the PREVIOUS link + $prevlink = '« Previous'; + if ($prev < 0 && (int) $start > 0) + { + $prevlink = '« Previous'; + } + else if ($prev < 0) + { + $prevlink = '« Previous'; + } + + // Normalize the numbering for humans + $begin = (int) $start + 1; + $end = ($next > $max) ? $max : $next; + ?> + +

    Showing out of | | | 5, 10, or 20 at a time.

    +
    + + + +``` diff --git a/docs/content/wiki/tutorial/how_to_edit_part_of_the_feed_before_parsing_it.md b/docs/content/wiki/tutorial/how_to_edit_part_of_the_feed_before_parsing_it.md new file mode 100644 index 000000000..932e302db --- /dev/null +++ b/docs/content/wiki/tutorial/how_to_edit_part_of_the_feed_before_parsing_it.md @@ -0,0 +1,286 @@ ++++ +title = "How to edit part of the feed before parsing it" ++++ + +There are instances where for one reason or another, there's an issue with a feed that you need to correct before attempting to parse it. If you don't control the feed (to make the edits directly), you can still work around these types of issues. + +
    + +This tutorial assumes that you're already familiar with using SimplePie, including looping through items. This is only sample code, and you should not create real pages using the (horrid) HTML generated by this example. + +
    + +## Compatibility {#compatibility} + +- Supported in SimplePie 1.0. +- Code in this tutorial should be compatible with PHP 4.3 or newer, and should not use PHP short tags, in order to support the largest number of PHP installations. + +## Sample "Bad Feed" {#sample_bad_feed} + +Here's a bad feed from Oracle that contains extra scripting information at the end of the feed that is completely invalid: + +```xml + + + + + + + + Oracle Press Releases + http://pressroom.oracle.com/index.jsp + + en-US + + + + + 2007-07-31T18:27:21-07:00 + + + + + + http://www.oracle.com/corporate/press/2007_jul/jennycraig-july07.html?rssid=rss_ocom_pr + http://www.oracle.com/corporate/press/2007_jul/forrester-aps-wave.html?rssid=rss_ocom_pr + http://www.oracle.com/corporate/press/2007_jul/china-rd-owshanghai.html?rssid=rss_ocom_pr + http://www.oracle.com/corporate/press/2007_jul/china-otn-owshanghai.html?rssid=rss_ocom_pr + http://www.oracle.com/corporate/press/2007_jul/china-psc-owshanghai.html?rssid=rss_ocom_pr + http://www.oracle.com/corporate/press/2007_jul/china-invests-owshanghai.html?rssid=rss_ocom_pr + http://www.oracle.com/corporate/press/2007_jul/china-showopener-owshanghai.html?rssid=rss_ocom_pr + http://www.oracle.com/corporate/press/2007_jul/china-ace-owshanghai.html?rssid=rss_ocom_pr + http://www.oracle.com/corporate/press/2007_jul/china-partner-owshanghai.html?rssid=rss_ocom_pr + http://www.oracle.com/corporate/press/2007_jul/detskymir.html?rssid=rss_ocom_pr + http://www.oracle.com/corporate/press/2007_jul/schneider.html?rssid=rss_ocom_pr + http://www.oracle.com/corporate/press/2007_jul/china-11g-owshanghai.html?rssid=rss_ocom_pr + http://www.oracle.com/corporate/press/2007_jul/china-oa-owshanghai.html?rssid=rss_ocom_pr + http://www.oracle.com/corporate/press/2007_jul/china-rac-owshanghai.html?rssid=rss_ocom_pr + http://www.oracle.com/corporate/press/2007_jul/identity-governance-framework-openliberty.html?rssid=rss_ocom_pr + http://www.oracle.com/corporate/press/2007_jul/fairfield-city-council.html?rssid=rss_ocom_pr + http://www.oracle.com/corporate/press/2007_jul/crm-od-r14.html?rssid=rss_ocom_pr + http://www.oracle.com/corporate/press/2007_jul/long-island-university.htm?rssid=rss_ocom_pr + http://www.oracle.com/corporate/press/2007_jul/ampac-bd.htm?rssid=rss_ocom_pr + http://www.oracle.com/corporate/press/2007_jul/royal%20groupandinfosys-072307.html?rssid=rss_ocom_pr + + + + + + + + + + + + + Siderean Logo + + http://www.siderean.com/images/16siderean.jpg + http://www.siderean.com + + + + Leading Weight Management Company Jenny Craig Chooses Oracle&#8217;s Siebel CRM + http://www.oracle.com/corporate/press/2007_jul/jennycraig-july07.html?rssid=rss_ocom_pr + + + + + + Oracle Recognized as a Leader in Application Server Platforms by Independent Research Firm + http://www.oracle.com/corporate/press/2007_jul/forrester-aps-wave.html?rssid=rss_ocom_pr + + + + + Oracle Establishes New R&D Center in Shanghai + http://www.oracle.com/corporate/press/2007_jul/china-rd-owshanghai.html?rssid=rss_ocom_pr + + + + + Oracle Technology Network in China Surpasses 250,000 Members + + http://www.oracle.com/corporate/press/2007_jul/china-otn-owshanghai.html?rssid=rss_ocom_pr + + + + + Oracle Launches Second Partner Solution Center in China + http://www.oracle.com/corporate/press/2007_jul/china-psc-owshanghai.html?rssid=rss_ocom_pr + + + + + + Oracle Continues to Increase Investments in China + http://www.oracle.com/corporate/press/2007_jul/china-invests-owshanghai.html?rssid=rss_ocom_pr + + + + + Oracle OpenWorld Asia Pacific in Shanghai to Focus on Helping Customers "Get Better Information for Better Results" + + http://www.oracle.com/corporate/press/2007_jul/china-showopener-owshanghai.html?rssid=rss_ocom_pr + + + + + Alibaba Chief Database Administrator Becomes Oracle's 100th ACE Worldwide + http://www.oracle.com/corporate/press/2007_jul/china-ace-owshanghai.html?rssid=rss_ocom_pr + + + + + + Oracle Reports Significant Partner Satisfaction In Asia Pacific, Invests In New Resources For Partners + http://www.oracle.com/corporate/press/2007_jul/china-partner-owshanghai.html?rssid=rss_ocom_pr + + + + + Detsky Mir Selects Oracle Applications to Support Growth Through Enhanced Forecasting and Improved Visibility into Merchandise Performance + + http://www.oracle.com/corporate/press/2007_jul/detskymir.html?rssid=rss_ocom_pr + + + + + Schneider National Leverages Oracle(r) Applications and Infrastructure Software to Enhance Enterprise Growth, Efficiency + http://www.oracle.com/corporate/press/2007_jul/schneider.html?rssid=rss_ocom_pr + + + + + + Asia Pacific Customers and Partners Prepare for Release of Oracle(r) Database 11g + http://www.oracle.com/corporate/press/2007_jul/china-11g-owshanghai.html?rssid=rss_ocom_pr + + + + + Oracle Launches Program for Vocational Schools and Universities in China + + http://www.oracle.com/corporate/press/2007_jul/china-oa-owshanghai.html?rssid=rss_ocom_pr + + + + + Over 500 Customers in China Select Oracle Real Application Clusters in FY07 + http://www.oracle.com/corporate/press/2007_jul/china-rac-owshanghai.html?rssid=rss_ocom_pr + + + + + + Industry Leaders Submit Identity Governance Framework to openLiberty.org for Development of Open Source Implementations + http://www.oracle.com/corporate/press/2007_jul/identity-governance-framework-openliberty.html?rssid=rss_ocom_pr + + + + + Australia&#8217;s Fairfield City Council Successfully Implements Oracle&reg; Utilities Work and Asset Management + + http://www.oracle.com/corporate/press/2007_jul/fairfield-city-council.html?rssid=rss_ocom_pr + + + + + Oracle Announces Availability of Siebel CRM On Demand Release 14 + http://www.oracle.com/corporate/press/2007_jul/crm-od-r14.html?rssid=rss_ocom_pr + + + + + + Long Island University Implements Oracle&reg; Applications to Deliver an Enhanced, More Efficient Student Experience + http://www.oracle.com/corporate/press/2007_jul/long-island-university.htm?rssid=rss_ocom_pr + + + + + Ampac Fine Chemicals Automates Regulatory Compliance, Enables Improved Manufacturing Efficiency and Automates Core Financial Processes + + http://www.oracle.com/corporate/press/2007_jul/ampac-bd.htm?rssid=rss_ocom_pr + + + + + Royal Group Streamlines Business Processes and Infrastructure While Reducing Costs by Utilizing Infosys Expertise and Oracle Applications + http://www.oracle.com/corporate/press/2007_jul/royal%20groupandinfosys-072307.html?rssid=rss_ocom_pr + + + + + + + + + + + + + + + +``` + +## The Problem with this feed {#the_problem_with_this_feed} + +Looking at the source of the XML, I found this little nugget of wisdom at the end of the feed: + +```xml + + + + + + + + + +``` + +For those reading this who are new to RSS, this is called malformed XML. PHP's built-in XML parser chokes and dies when it comes across malformed XML. SimplePie is pretty good at correcting many of the more common mistakes, but this is quite an oversight on Oracle's part. We can fix this, but it'll take a bit more effort. + +## The Fix {#the_fix} + +We'll read in the feed first, correct the issue, then pass it back into SimplePie. + +```php + tag. +$body = preg_replace('/<\/rdf:RDF>(.|\s)*/i', '', $file->body); + +// Now we'll pass our new custom data back into the SimplePie object. +$feed = new SimplePie(); +$feed->set_raw_data($body); +$feed->init(); + +// Set the HTTP headers for the page automatically. +$feed->handle_content_type(); + +// Loop through each item and display the title. +foreach ($feed->get_items() as $item) +{ + echo $item->get_title() . '
    '; +} +?> +``` diff --git a/docs/content/wiki/tutorial/how_to_group_multiple_posts_by_day.md b/docs/content/wiki/tutorial/how_to_group_multiple_posts_by_day.md new file mode 100644 index 000000000..142c68b1b --- /dev/null +++ b/docs/content/wiki/tutorial/how_to_group_multiple_posts_by_day.md @@ -0,0 +1,156 @@ ++++ +title = "How to group multiple posts by day" ++++ + +For this tutorial, I'll show you how to group posts by date, and inside each of those groups all of the items are sorted by time. + +This will ONLY work for feeds where all items have timestamps. This is NOT 100% reliable because some feeds simply don't have timestamps. + +
    + +**This tutorial RELIES on feed items having dates. Ergo, if there are no dates, then this method won't work.** This tutorial assumes that you're already familiar with using SimplePie, including looping through items. + +
    + +## Compatibility {#compatibility} + +- Supported in SimplePie 1.0 or newer. +- Code in this tutorial should be compatible with PHP 4.3 or newer, and should not use PHP short tags, in order to support the largest number of PHP installations. + +## Single Feed {#single_feed} + +```php +handle_content_type(); + +?> + + + Group items by date + + + +' . $feed->get_title() . ''; + +// Set up some variables we'll use. +$stored_date = ''; +$list_open = false; + +// Go through all of the items in the feed +foreach ($feed->get_items() as $item) +{ + // What is the date of the current feed item? + $item_date = $item->get_date('M jS'); + + // Is the item's date the same as what is already stored? + // - Yes? Don't display it again because we've already displayed it for this date. + // - No? So we have something different. We should display that. + if ($stored_date != $item_date) + { + // If there was already a list open from a previous iteration of the loop, close it + if ($list_open) + { + echo ''; + } + + // Since they're different, let's replace the old stored date with the new one + $stored_date = $item_date; + + // Display it on the page, and start a new list + echo '

    ' . $stored_date . '

    '; + echo '
      '; + + // Let the next loop know that a list is already open, so that it will know to close it. + $list_open = true; + } + + // Display the feed item however you want... + echo '
    1. ' . $item->get_title() . ' — ' . $item->get_date('g:i a') . '
    2. '; +} +?> +
    + + +``` + +## Merging Multiple Feeds {#merging_multiple_feeds} + +```php +handle_content_type(); + +?> + + + Group items by date + + + +' . $feed->get_title() . ''; + +// Set up some variables we'll use. +$stored_date = ''; +$list_open = false; + +// Go through all of the items in the feed +foreach ($feed->get_items() as $item) +{ + // What is the date of the current feed item? + $item_date = $item->get_date('M jS'); + + // Is the item's date the same as what is already stored? + // - Yes? Don't display it again because we've already displayed it for this date. + // - No? So we have something different. We should display that. + if ($stored_date != $item_date) + { + // If there was already a list open from a previous iteration of the loop, close it + if ($list_open) + { + echo '' . "\r\n"; + } + + // Since they're different, let's replace the old stored date with the new one + $stored_date = $item_date; + + // Display it on the page, and start a new list + echo '

    ' . $stored_date . '

    ' . "\r\n"; + echo '
      ' . "\r\n"; + + // Let the next loop know that a list is already open, so that it will know to close it. + $list_open = true; + } + + // Display the feed item however you want... + echo '
    1. ' . $item->get_title() . ' — ' . $item->get_date('g:i a') . '
    2. ' . "\r\n"; +} +?> +
    + + +``` diff --git a/docs/content/wiki/tutorial/how_to_limit_the_number_of_items_displayed_per_feed_when_using_multifeeds.php.md b/docs/content/wiki/tutorial/how_to_limit_the_number_of_items_displayed_per_feed_when_using_multifeeds.php.md new file mode 100644 index 000000000..bf2bd007c --- /dev/null +++ b/docs/content/wiki/tutorial/how_to_limit_the_number_of_items_displayed_per_feed_when_using_multifeeds.php.md @@ -0,0 +1,140 @@ ++++ +title = "Limit the number of items per feed to be used with Multifeeds" ++++ + +
    + +**This tutorial is obsolete. Use the `set_item_limit()` method instead.** + +
    + +In SimplePie 1.0, we simplified the process of merging together multiple feeds, sorting them by date, and displaying them. This method allows you to do all of the normal SimplePie stuff without requiring you to do any array hacking or anything. This tutorial will show you how to merge only the first 5 items per feed, and sort those by date and time. + +There are a few things to keep in mind about merging multiple feeds: + +- When you mash multiple feeds together, how do you know which feed title or favicon to use? You don't. So, the object that gets created when mashing feeds does not have any feed-level data. +- You can still get at an individual item's parent feed data using the `get_feed()` method. +- All feed items MUST have dates or else PHP will sort them to the top. + +
    + +**If you're merging multiple feeds together, they need to all have dates for the items or else PHP will sort them to the top.** This tutorial assumes that you're already familiar with using SimplePie, including looping through items. + +
    + +## Compatibility {#compatibility} + +- Supported in SimplePie 1.0 +- Code in this tutorial should be compatible with PHP 4.3 or newer, and should not use PHP short tags, in order to support the largest number of PHP installations. +- Code in this tutorial is taken from the multifeeds.php demo page that is included with the SimplePie download in the `/demo/` folder, and has been modified for the purposes of this tutorial. + +## Example {#example} + +```php +set_feed_url($url); + $feed->init(); + + // How many items per feed should we try to grab? + $items_per_feed = 5; + + // As long as we're not trying to grab more items than the feed has, go through them one by one and add them to the array. + for ($x = 0; $x < $feed->get_item_quantity($items_per_feed); $x++) + { + $first_items[] = $feed->get_item($x); + } + + // We're done with this feed, so let's release some memory. + unset($feed); +} + +// We need to sort the items by date with a user-defined sorting function. Since usort() won't accept "SimplePie::sort_items", we need to wrap it in a new function. +function sort_items($a, $b) +{ + return SimplePie::sort_items($a, $b); +} + +// Now we can sort $first_items with our custom sorting function. +usort($first_items, "sort_items"); + + +// Begin the (X)HTML page. +?> + + + Multifeeds Test page + + + + +
    + +
    +

    Quick-n-Dirty Multifeeds Demo

    +
    + + get_feed(); + ?> + +
    +

    get_title(), ENT_QUOTES, 'UTF-8'); ?>

    + + get_content(); ?> + + get_enclosure()): ?> +
    + native_embed(array( + // New 'mediaplayer' attribute shows off Flash-based MP3 and FLV playback. + 'mediaplayer' => '../demo/for_the_demo/mediaplayer.swf' + )); ?> +
    + + +

    Source: get_title(); ?> | get_date('j M Y | g:i a'); ?>

    +
    + + + +

    This is a test of the emergency broadcast system. This is only a test… beeeeeeeeeeeeeeeeeeeeeeeeeep!

    + +
    + + +``` diff --git a/docs/content/wiki/tutorial/how_to_make_description_links_open_in_a_new_window.md b/docs/content/wiki/tutorial/how_to_make_description_links_open_in_a_new_window.md new file mode 100644 index 000000000..838e191ca --- /dev/null +++ b/docs/content/wiki/tutorial/how_to_make_description_links_open_in_a_new_window.md @@ -0,0 +1,74 @@ ++++ +title = "How to make description links open in a new window" ++++ + +There may be times when you want to open all links from an external feed in a new window. There are a few things to take into account when doing this: + +1. The best way to target specific HTML tags for modification is by parsing the [DOM](http://en.wikipedia.org/wiki/Document_Object_Model). Newer versions of PHP have a DOM extension, but because SimplePie still supports PHP 4.x, SimplePie is not currently built on the PHP DOM extension (SimplePie 2.0 will be, however). In light of this, the simplest solution would be to use the DOM support in the web browser's JavaScript implementation. Even Internet Explorer 6.0 (which currently has the oldest, most outdated JavaScript engine, version 1.3) supports the scripting we're going to use. +2. It's bad practice to hard-code your event handlers to your code, so we'll want to separate it from our HTML as much as humanly possible. +3. We're going to strictly adhere to the notes in YoungPup's [How to create popups](http://web.archive.org/web/20070506174845/http://webapp.youngpup.net/?request=/articles/how-to-create-popups.xml) tutorial. + +
    + +This tutorial assumes that you're already familiar with using SimplePie, including looping through items. This is only sample code, and you should not create real pages using the (horrid) HTML generated by this example. + +
    + +## Compatibility {#compatibility} + +- Supported in SimplePie 1.0. +- Code in this tutorial should be compatible with PHP 4.3 or newer, and should not use PHP short tags, in order to support the largest number of PHP installations. +- This solution requires a modern web browser. 2001's Internet Explorer 6.0 is the least capable of the previous generation web browsers, so this will be our baseline browser. + +## Let's do this! {#let_s_do_this} + +The first thing you'll need is Ben Nolan's [Behaviour](http://bennolan.com/behaviour/) JavaScript library. We'll use this to easily add our event handlers to make the windows open in a new window instead of the current one. Save it in the same directory as the following SimplePie page. + +Save the following source as a page and view it in your browser. You should be able to do a normal left-click to open the links in a new window, right-click to see all available contextual menu options, or middle-click to open the page in a new tab (in most current generation web browsers). + +```php +handle_content_type(); + +?> + + + Test Page + + + + + + + + + +
    +
      + get_items() as $item): ?> + +
    1. get_title(); ?>
    2. + get_description(); ?> + + +
    +
    + + + +``` diff --git a/docs/content/wiki/tutorial/how_to_replicate_popurls.md b/docs/content/wiki/tutorial/how_to_replicate_popurls.md new file mode 100644 index 000000000..c2a83732d --- /dev/null +++ b/docs/content/wiki/tutorial/how_to_replicate_popurls.md @@ -0,0 +1,146 @@ ++++ +title = "NewsBlocks Demo 2.0" ++++ + +Recently, websites like [infonary](http://www.infonary.com/), [PopURLs](http://popurls.com/), [1-TM](http://www.1-tm.com/), [TheWebList](http://theweblist.net/), [Miniboxs](http://www.miniboxs.com/), and [Original Signal](http://buzz.originalsignal.com/) have become all the rage. Generally, these sites consist of multiple feeds – each it it's own block on the page. These sites typically consist of a relatively wide range of topics from news to media to technology to whatever else. + +
    + +This tutorial assumes that you're already familiar with using SimplePie, including looping through items. + +
    + +## Compatibility {#compatibility} + +- Supported in SimplePie 1.1. +- Code in this tutorial should be compatible with PHP 5.0 or newer, and should not use PHP short tags, in order to support the largest number of PHP installations. + +## The Code {#the_code} + +We're going to create a simplified clone of these kinds of sites that we're calling “NewsBlocks”. This demo leverages the entire front-end development stack (XHTML, CSS, JavaScript, PHP) and utilizes the [MooTools](http://mootools.net) JavaScript library. You'll need to make sure the enclosed `cache` directory is writable, and you should copy the latest version of simplepie.inc into the enclosed `php` directory. + +We've created this demo properly by separating types of code from each other, and we've included an `.htaccess` file along with a small PHP document that will gzip-compress the JavaScript libraries before serving them to the browser. This demo includes the latest versions of the aforementioned library. + +Besides being relatively simple, the organization, code, and methods used in the demo below should be production-ready. + +- [Live Newsblocks Demo](/demo/newsblocks/ "http://simplepie.org/demo/newsblocks/") +- [newsblocks_demo_2.0.zip](/downloads/newsblocks_demo_2.0.zip "http://simplepie.org/downloads/newsblocks_demo_2.0.zip") + +## Expectations {#expectations} + +This is not, and will not ever be a perfect replacement for the services that it imitates unless YOU do the work to get it there. This is a DEMO that gives you a head-start, but it's up to you to figure out and write the custom code for connecting to databases and enabling cron jobs and the like. Those things will likely never be included because they're complicated and we don't want to get stuck supporting them. + +## What are all these files? {#what_are_all_these_files} + +In the end, the NewsBlocks Demo only loads `newsblocks.css` and `newsblocks.js`… that's it. These files have been compressed by [YUI Compressor](http://developer.yahoo.com/yui/compressor/) to make them as small and fast as possible. The other files that are in the `/css/` and `/scripts/` directories are generally editable versions of these files. There is also a `build_prep.sh` file which is a shell script I use to copy the editable files, merge them, and compress them into a single, smaller file. + +For best performance on the front-end, you should make sure that your edited files are compressed in the same way. If you're not comfortable with doing this, you can always edit the HTML to load the uncompressed versions of the files instead. + +## Troubleshooting, Bugs, and Feature Requests {#troubleshooting_bugs_and_feature_requests} + +1. **Missing styles, broken scripts, and 500 errors** - If you're seeing these things, it's likely that your server doesn't like the gzip settings we're using. The simplest solution would be to remove the `.htaccess` files in the `/css/` and `/scripts/` directories. Also make sure that you're not using a web hosting provider that sucks. :) +2. **Bugs and Feature Requests** - If there's something broken, or if you'd like to see a new feature, let us know about it by filing an issue over at our [bug tracker](http://bugs.simplepie.org). + +## Render Options {#render_options} + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    OPTIONDATATYPEDESCRIPTION
    classnamestringThe classname that the <div> surrounding the feed should have. Defaults to nb-list for newsblocks::listing() and nb-wide for newsblocks::wide().
    copyrightstringThe copyright string to use for a feed. Not part of the standard output, but it's available if you want to use it. Defaults to NULL with multifeeds; Use $item→get_feed()→get_copyright() instead.
    date_formatstringThe format to use when displaying dates on items. Uses values from strftime(), NOT date().
    descriptionstringThe description for the feed (not the item). Not part of the standard output, but it's available if you want to use it. Defaults to NULL with multifeeds; Use $item→get_feed()→get_description() instead.
    directionstringThe direction of the text. Valid values are “ltr” and “rtl”. Defaults to “ltr”.
    faviconstringThe favicon URL to use for the feed. Since favicon URLs aren't actually located in feeds, SimplePie guesses. Sometimes that guess is wrong. Give it the correct favicon with this option. Defaults to NULL with multifeeds; Use $item→get_feed()→get_favicon() instead.
    idstringThe ID attribute that the <div> surrounding the feed should have. This value should be unique per feed. Defaults to a SHA1 hash value based on the URL(s).
    item_classnamestringThe classname for the items. Useful for styling with CSS. Also useful for JavaScript in creating custom tooltips for a feed. Defaults to “tips”.
    itemsintegerThe number of items to show (the rest are hidden until “More” is clicked). Defaults to 10.
    languagestringThe language of the feed. Not part of the standard output, but it's available if you want to use it. Defaults to NULL with multifeeds; Use $item→get_feed()→get_language() instead.
    lengthintegerThe maximum character length of the item description in the tooltip. Defaults to 200.
    morestringThe text to use for the “More” link. Defaults to “More &raquo;”
    more_movebooleanWhether the “More” link should move when it's clicked. Defaults to FALSE (i.e. stays in the same place).
    more_fxbooleanWhether the secondary list should slide or simply appear/disappear when the “More” link is clicked. Defaults to TRUE (i.e. slides).
    permalinkstringThe permalink for the feed (not the item). Defaults to NULL with multifeeds; Use $item→get_feed()→get_permalink() instead.
    show_titlebooleanWhether to show the title of the feed. Defaults to TRUE.
    sinceintegerA Unix timestamp. Anything posted more recently than this timestamp will get the “New” image applied to it. Defaults to 24 hours ago.
    titlestringThe title for the feed (not the item). Defaults to multiple titles with multifeeds, so you should manually set it in that case.
    diff --git a/docs/content/wiki/tutorial/only_display_images_from_a_feed.md b/docs/content/wiki/tutorial/only_display_images_from_a_feed.md new file mode 100644 index 000000000..1c237a0c7 --- /dev/null +++ b/docs/content/wiki/tutorial/only_display_images_from_a_feed.md @@ -0,0 +1,5 @@ ++++ +title = "Only display images from a feed" ++++ + +A number of solutions for this were noted at [http://simplepie.org/support/viewtopic.php?id=643](/support/viewtopic.php?id=643 "http://simplepie.org/support/viewtopic.php?id=643") diff --git a/docs/content/wiki/tutorial/only_display_items_from_the_last_24_hours.md b/docs/content/wiki/tutorial/only_display_items_from_the_last_24_hours.md new file mode 100644 index 000000000..dbd047702 --- /dev/null +++ b/docs/content/wiki/tutorial/only_display_items_from_the_last_24_hours.md @@ -0,0 +1,57 @@ ++++ +title = "Only display items from the last 24 hours" ++++ + +This is a pretty simple way of sorting out the more recent news items from the less recent news items. We simply determine what 24 hours ago was, and then check each item to see if its timestamp is within that timeframe. + +This will ONLY work for feeds where all items have timestamps. This is NOT 100% reliable because some feeds simply don't have timestamps. + +
    + +**This tutorial RELIES on feed items having dates. Ergo, if there are no dates, then this method won't work.** This tutorial assumes that you're already familiar with using SimplePie, including looping through items. + +
    + +## Compatibility {#compatibility} + +- Supported in SimplePie Beta 2 or newer. +- Code in this tutorial should be compatible with PHP 4.3 or newer, and should not use PHP short tags, in order to support the largest number of PHP installations. + +## Code source {#code_source} + +```php +set_feed_url('feed://www.tuaw.com/rss.xml'); +$feed->init(); + +// Create a new array to hold data in +$new = array(); + +// Loop through all of the items in the feed +foreach ($feed->get_items() as $item) { + + // Calculate 24 hours ago + $yesterday = time() - (24*60*60); + + // Compare the timestamp of the feed item with 24 hours ago. + if ($item->get_date('U') > $yesterday) { + + // If the item was posted within the last 24 hours, store the item in our array we set up. + $new[] = $item; + } +} + +// Loop through all of the items in the new array and display whatever we want. +foreach($new as $item) { + echo '

    ' . $item->get_title() . '

    '; + echo '

    ' . $item->get_date('j M Y, H:i:s O') . '

    '; + echo $item->get_description(); + echo '
    '; +} +?> +``` diff --git a/docs/content/wiki/tutorial/setting_up_a_cron_job_with_simplepie.md b/docs/content/wiki/tutorial/setting_up_a_cron_job_with_simplepie.md new file mode 100644 index 000000000..9557e5920 --- /dev/null +++ b/docs/content/wiki/tutorial/setting_up_a_cron_job_with_simplepie.md @@ -0,0 +1,133 @@ ++++ +title = "Setting up a cron job for SimplePie and SimplePie Plugin for Wordpress" ++++ + +This procedure to set up a cron job to update the SimplePie cache in the background once an hour is similar for both SimplePie and SimplePie Plugin for Wordpress so I've combined them in one tutorial. + +## Compatibility {#compatibility} + +- Supported in SimplePie 1.0 or newer. +- Requires a Linux based host that allows cron jobs. + +## Instructions {#instructions} + +The sequence of events for both SimplePie classic and SimplePie Plugin for Wordpress is: + +1. Create and upload a web page that updates the SimplePie cache. +2. Run a cron job to load that page once an hour. +3. Change the cache duration of your normal SimplePie runs to 999999999, and timeout to -1. + +## SimplePie Classic {#simplepie_classic} + +Create a file called **update_simplepie_cache.php** + +Enter the text below. + +```php +set_feed_url($urls); + $feed->set_cache_location($cache_location); + $feed->set_cache_duration(0); // force cache to update immediatlely + $feed->set_timeout(5); // optional, if you have a lot of feeds a low timeout may be necessary + $feed->init(); +?> +``` + +Upload that file to a web accessible directory on your website so you can access it via HTTP. For instance: + + + +## SimplePie Plugin for Wordpress {#simplepie_plugin_for_wordpress} + +Create a file named **update_simplepie_cache.php** and enter this text: + +```php + 0,'set_timeout' => 5)); +?> +``` + +Upload **update_simplepie_cache.php** to your current Wordpress theme directory. + +Create a “Page” in Wordpress using the template: “**update_simplepie_cache**”. + +If you have permalinks turned on in Wordpress, change the permalink for the page to **update_simplepie_cache**. If not, write down the pageid number for use later. + +## Create the cron job {#create_the_cron_job} + +There are two ways to create the cron job. If you have SSH and root access to your server, you create a BASH script and upload it directly to your **/etc/cron.hourly** directory, or the monthly directory if you only want to update your cache once a month. There is no yearly or age-of-aquarius directory. + +## The first way to create the cron job {#the_first_way_to_create_the_cron_job} + +**SimplePie Classic** + +Create a file named **update_simplepie_cache.sh** and enter this text into it: + +```bash +#!/bin/bash +wget -O /dev/null http://yoursite.com/update_simplepie_cache.php +``` + +**SimplePie Plugin for Wordpress** + +Create a file named **update_simplepie_cache.sh** and enter this text into it: + +With permalinks on: + +```bash +#!/bin/bash +wget -O /dev/null http://yoursite.com/update_simplepie_cache/ +``` + +With permalinks off: + +```bash +#!/bin/bash +wget -O /dev/null http://yoursite.com/?pageid=[page number] +``` + +Enter the pageid number of Page you created in Wordpress. + +When your ready to start the cron job, upload **update_simplepie_cache.sh** to your /etc/cron.hourly directory. It will run automatically once an hour, usually at minute 56. + +## The second way to create the cron job {#the_second_way_to_create_the_cron_job} + +Use your server control panel. Here's a screenshot of the CPANEL CRON job manager: + +cpanel + +Enter the “wget” line into the CPANEL CRON manager's “command to run” text box. Select minute 0, or whichever you want, Every Hour, Every Day, Every Month, Every Weekday. + +## Or {#or} + +php -f /sitedirectory/update_simplepie_cache.php + +## Set your cache duration {#set_your_cache_duration} + +Once your cron job is running, go back to your original SimplePie code and set the cache duration to a number greater than the cron job time period which is usually 1 hour. I use 999999999 just to be sure but if you like living on the edge you could just set it to 3601, 1 second more than an hour. Why are you doing this you say? Doing this effectively tells SimplePie to never update its cache during a normal operations since it's already being updated by the cron job. Also, just in case, set the timeout to -1 to prevent SimplePie from retrying previous failed feeds if there were any. You might also want to check your server temp periodically because SimplePie will now be running at the speed of wheat and could break the pie barrier. + +**Set cache duration and timeout in SimplePie Plugin for Wordpress** + +You can do this in the configuration webpage, or in the call to SimplePieWP, like this: + +```php +999999999,'set_timeout'=>-1)); +``` + +**Set cache duration and timeout in SimplePie Classic** + +```php +$feed->set_cache_duration(999999999); +$feed->set_timeout(-1); +``` + +That's it! diff --git a/docs/content/wiki/tutorial/shorten_titles_and_descriptions.md b/docs/content/wiki/tutorial/shorten_titles_and_descriptions.md new file mode 100644 index 000000000..1d3db306f --- /dev/null +++ b/docs/content/wiki/tutorial/shorten_titles_and_descriptions.md @@ -0,0 +1,74 @@ ++++ +title = "Shorten titles and descriptions" ++++ + +**There have been approximately 100 Jillion-Kabillion-Bazillion support questions asked about shortening titles and descriptions.** + +- Some people want to break at a certain number of characters. +- Some people want to break at a certain number of characters, but don't want to break words. +- Some people want to break after a certain number of words. +- Some people want to break after a certain number of sentences. +- Some people want to do all of these things and maintain HTML and entities. +- Some people want 100 Jillion-Kabillion-Bazillion dollars/pounds/euros/yen/pesos/whatever. + +We had made some good progress on on this back in Summer 2006 while we were working on what would eventually become SimplePie Beta 3. We were trying to shorten descriptions by character, word, or sentence, with the ability to preserve HTML and entities. We had something that kinda worked, but it was very buggy and unreliable so we scrapped it in its then-current form. We decided to push that feature off until we moved to the much more reliable PHP DOM extension, which is currently slated for our SimplePie 2.0 release (which we plan to build from the ground-up to be PHP 5/6 compatible, ridiculously fast, and more extensible than WordPress – things which are unrealistically challenging with our current PHP4-friendly codebase). + +The solution is not as simple as you might think it would be, so here's the SIMPLEST solution. + +## Compatibility {#compatibility} + +- Supported in SimplePie 1.0. +- Code in this tutorial should be compatible with PHP 4.3 or newer, and should not use PHP short tags, in order to support the largest number of PHP installations. + +## Code source {#code_source} + +This solution does the following things: + +- Strips ALL HTML (to get an accurate character count) +- Shortens the text by NUMBER OF CHARACTERS; Not by word, sentence, or anything else. +- Looks at where the text breaks, and makes an attempt to append the correct ending punctuation (an ellipsis, unless we broke where a sentence was already ending). +- It does NOT take HTML entities into account. +- This code is NOT SimplePie-specific and can be used in any PHP context. +- If you're looking for variations on this script, you can do a forum search for “shorten” or “truncate”, or look at the comments posted at . + +```php + +``` + +## Example Usage {#example_usage} + +```php +get_description(), 150); + +?> +``` diff --git a/docs/content/wiki/tutorial/sort_multiple_feeds_by_time_and_date.md b/docs/content/wiki/tutorial/sort_multiple_feeds_by_time_and_date.md new file mode 100644 index 000000000..084e09c62 --- /dev/null +++ b/docs/content/wiki/tutorial/sort_multiple_feeds_by_time_and_date.md @@ -0,0 +1,172 @@ ++++ +title = "Sort multiple feeds by time and date" ++++ + +In SimplePie 1.0, we simplified the process of merging together multiple feeds, sorting them by date, and displaying them. This method allows you to do all of the normal SimplePie stuff without requiring you to do any array hacking or anything. + +There are, however, two things to keep in mind about merging multiple feeds: + +- When you mash multiple feeds together, how do you know which feed title or favicon to use? You don't. So, the object that gets created when mashing feeds does not have any feed-level data. +- You can still get at an individual item's parent feed data using the `get_feed()` method. +- All feed items MUST have dates or else PHP will sort them to the top. + +
    + +**If you're merging multiple feeds together, they need to all have dates for the items or else PHP will sort them to the top.** This tutorial assumes that you're already familiar with using SimplePie, including looping through items. + +
    + +## Compatibility {#compatibility} + +- Supported in SimplePie 1.0 +- Code in this tutorial should be compatible with PHP 4.3 or newer, and should not use PHP short tags, in order to support the largest number of PHP installations. + +## If all feeds have identical settings {#if_all_feeds_have_identical_settings} + +```php +set_feed_url(array( + 'http://digg.com/rss/index.xml', + 'http://feeds.tuaw.com/weblogsinc/tuaw', + 'http://feeds.uneasysilence.com/uneasysilence/blog' +)); + +// We'll use favicon caching here (Optional) +$feed->set_favicon_handler('handler_image.php'); + +// Initialize the feed object +$feed->init(); + +// This will work if all of the feeds accept the same settings. +$feed->handle_content_type(); + +// Begin our XHTML markup +?> + + + Awesome feeds + + + + + +
    + + error): ?> +

    error; ?>

    + + +

    Awesome feeds

    + + get_items() as $item): ?> + +
    + + get_feed() method to gain access to the parent feed-level data for the specified item. */ ?> +

    get_title(); ?>

    + + get_content(); ?> + +

    Source: get_feed(); echo $feed->get_title(); ?> | get_date('j M Y | g:i a T'); ?>

    + +
    + + + +
    + + +``` + +## If feeds require separate, per-feed settings {#if_feeds_require_separate_per-feed_settings} + +```php +set_feed_url('http://digg.com/rss/index.xml'); + +$tuaw = new SimplePie(); +$tuaw->set_feed_url('http://feeds.tuaw.com/weblogsinc/tuaw'); +$tuaw->set_favicon_handler('handler_image.php'); +$tuaw->init(); + +$uneasy = new SimplePie(); +$uneasy->set_feed_url('http://feeds.uneasysilence.com/uneasysilence/blog'); + +// Let's merge them together. +$merged = SimplePie::merge_items(array($digg, $tuaw, $uneasy)); + +// Since we're using different feeds with different settings, let's set the header manually. +header('Content-type:text/html; charset=utf-8'); + +// Begin our XHTML markup +?> + + + Awesome feeds + + + + + +
    + +

    Awesome feeds

    + + get_items(), we'll use the $merged variable we created earlier. + foreach ($merged as $item): + ?> + +
    + + get_feed() method to gain access to the parent feed-level data for the specified item. */ ?> +

    get_title(); ?>

    + + get_content(); ?> + +

    Source: get_feed(); echo $feed->get_title(); ?> | get_date('j M Y | g:i a T'); ?>

    + +
    + + + +
    + + +``` diff --git a/docs/content/wiki/tutorial/sorting_by_custom_criteria_instead_of_date.md b/docs/content/wiki/tutorial/sorting_by_custom_criteria_instead_of_date.md new file mode 100644 index 000000000..fde56333f --- /dev/null +++ b/docs/content/wiki/tutorial/sorting_by_custom_criteria_instead_of_date.md @@ -0,0 +1,74 @@ ++++ +title = "Sorting by custom criteria instead of date" ++++ + +Sometimes you may want to sort items by custom criteria other than the time/date. In the following example, we're going to sort the Digg feed by the number of diggs instead of by date. + +
    + +This tutorial assumes that you're already familiar with using SimplePie, including looping through items. It also assumes that you know how to use [SimplePie Add-ons](@/wiki/addons/_index.md) (specifically the [Digg RSS](@/wiki/addons/digg.md) Add-on). + +
    + +## Compatibility {#compatibility} + +- Supported in SimplePie 1.0. +- Code in this tutorial should be compatible with PHP 4.3 or newer, and should not use PHP short tags, in order to support the largest number of PHP installations. + +## Example {#example} + +In this example, we'll use the methods available in the [Digg RSS](@/wiki/addons/digg.md) Add-on to grab extra Digg-specific data, and we'll extend the SimplePie class and override the [sort_items()](@/wiki/reference/simplepie/sort_items.md) method to sort by number of diggs. + +```php +get_digg_count() <= $b->get_digg_count(); + } +} + +// Instantiate a new SimplePie_Custom_Sort class. +$feed = new SimplePie_Custom_Sort(); +$feed->set_feed_url('http://digg.com/rss/index.xml'); +$feed->set_item_class('SimplePie_Item_Digg'); // Make sure we use the Digg Add-on +$feed->set_cache_duration(300); // 5 minutes +$feed->init(); + +?> + + + + Digg Test + + + + + + + get_items() as $item): ?> + +

    get_digg_count(); ?> get_title(); ?>

    +

    get_description(); ?>

    +

    Posted by get_submitter_username(); ?> on get_date(); ?>

    + + + + + +``` diff --git a/docs/content/wiki/tutorial/translate_timestamps_into_another_language.md b/docs/content/wiki/tutorial/translate_timestamps_into_another_language.md new file mode 100644 index 000000000..3bcc6b783 --- /dev/null +++ b/docs/content/wiki/tutorial/translate_timestamps_into_another_language.md @@ -0,0 +1,32 @@ ++++ +title = "Translate timestamps into another language" ++++ + +By default, PHP displays timestamps in English. Since SimplePie's [get_date()](@/wiki/reference/simplepie_item/get_date.md) method relies on PHP's [date()](http://php.net/date) function, get_date() is English-only. However, in SimplePie 1.0 we introduced [get_local_date()](@/wiki/reference/simplepie_item/get_local_date.md) which leverages PHP's [strftime()](http://php.net/strftime) function which is designed to translate timestamps into other languages. + +[get_local_date()](@/wiki/reference/simplepie_item/get_local_date.md) accepts values that are accepted by [strftime()](http://php.net/strftime). We also need to call PHP's [setlocale()](http://php.net/setlocale) function prior to using this method. setlocale() has it's own set of issues with region/language codes. It only supports whatever is installed in your PHP installation, and some servers require two or three-letter codes. + +- [Sample language codes](http://ltru.generic-nic.net/registries/lsr-language.txt) +- [Sample region codes](http://ltru.generic-nic.net/registries/lsr-region.txt) +- +- +- + +This will ONLY work for items that have timestamps. + +## Compatibility {#compatibility} + +- Supported in SimplePie 1.0. +- Code in this tutorial should be compatible with PHP 4.3 or newer, and should not use PHP short tags, in order to support the largest number of PHP installations. + +## Code source {#code_source} + +```php +// Set the region/language to Canadian French +setlocale(LC_TIME, 'fr_CA'); + +// As we loop through items, display the formatted, localized date. +foreach($feed->get_items() as $item) { + echo '

    ' . $item->get_title() . ' ' . $item->get_local_date('%A %e %B %Y') . '

    '; +} +``` diff --git a/docs/content/wiki/tutorial/use_relative_dates.md b/docs/content/wiki/tutorial/use_relative_dates.md new file mode 100644 index 000000000..b8144557b --- /dev/null +++ b/docs/content/wiki/tutorial/use_relative_dates.md @@ -0,0 +1,98 @@ ++++ +title = "Use Relative Dates" ++++ + +“Relative dates” is a method where instead of showing the exact date of a post, you can say it was posted “4 days ago.” Tomorrow, this message would say “5 days ago.” + +The information and code for this tutorial was taken from a [Maniacal Rage](http://maniacalrage.net) posting entitled ”[Relative Dates Using PHP](http://graveyard.maniacalrage.net/archives/2004/02/relativedatesusing/).” Although the original article was geared for Movable Type, we're going to apply it to feed items returned from SimplePie. + +
    + +**This tutorial RELIES on feed items having dates. Ergo, if there are no dates, then this method won't work.** This tutorial assumes that you're already familiar with using SimplePie, including looping through items. It also assumes that you know how to add new functions to whatever you're using (WordPress, custom PHP, etc.). + +
    + +## "Relative Date" Function {#relative_date_function} + +This is the function that translates dates into relative dates. It's in English, so you'll need to translate some of the output words into other languages if need be. If you have questions specific to this function, check out the original posting, entitled [Relative Dates Using PHP](http://graveyard.maniacalrage.net/archives/2004/02/relativedatesusing/). + +Make sure that this function is being included or required in the pages you want to use it on. + +```php +define('SIMPLEPIE_RELATIVE_DATE', 'YmdHis'); // We'll define this here so we won't have to remember it later. + +function doRelativeDate($posted_date) { + /** + This function returns either a relative date or a formatted date depending + on the difference between the current datetime and the datetime passed. + $posted_date should be in the following format: YYYYMMDDHHMMSS +  + Relative dates look something like this: + 3 weeks, 4 days ago + Formatted dates look like this: + on 02/18/2004 +  + The function includes 'ago' or 'on' and assumes you'll properly add a word + like 'Posted ' before the function output. +  + By Garrett Murray, http://graveyard.maniacalrage.net/etc/relative/ + **/ + $in_seconds = strtotime(substr($posted_date,0,8).' '. + substr($posted_date,8,2).':'. + substr($posted_date,10,2).':'. + substr($posted_date,12,2)); + $diff = time()-$in_seconds; + $months = floor($diff/2592000); + $diff -= $months*2419200; + $weeks = floor($diff/604800); + $diff -= $weeks*604800; + $days = floor($diff/86400); + $diff -= $days*86400; + $hours = floor($diff/3600); + $diff -= $hours*3600; + $minutes = floor($diff/60); + $diff -= $minutes*60; + $seconds = $diff; + + if ($months>0) { + // over a month old, just show date (mm/dd/yyyy format) + return 'on '.substr($posted_date,4,2).'/'.substr($posted_date,6,2).'/'.substr($posted_date,0,4); + } else { + if ($weeks>0) { + // weeks and days + $relative_date .= ($relative_date?', ':'').$weeks.' week'.($weeks>1?'s':''); + $relative_date .= $days>0?($relative_date?', ':'').$days.' day'.($days>1?'s':''):''; + } elseif ($days>0) { + // days and hours + $relative_date .= ($relative_date?', ':'').$days.' day'.($days>1?'s':''); + $relative_date .= $hours>0?($relative_date?', ':'').$hours.' hour'.($hours>1?'s':''):''; + } elseif ($hours>0) { + // hours and minutes + $relative_date .= ($relative_date?', ':'').$hours.' hour'.($hours>1?'s':''); + $relative_date .= $minutes>0?($relative_date?', ':'').$minutes.' minute'.($minutes>1?'s':''):''; + } elseif ($minutes>0) { + // minutes only + $relative_date .= ($relative_date?', ':'').$minutes.' minute'.($minutes>1?'s':''); + } else { + // seconds only + $relative_date .= ($relative_date?', ':'').$seconds.' second'.($seconds>1?'s':''); + } + } + // show relative date and add proper verbiage + return $relative_date.' ago'; +} +``` + +## Using it with SimplePie {#using_it_with_simplepie} + +Using the aforementioned function with SimplePie is easy once you've made it available to your SimplePie-enabled page. + +```php +foreach ($feed->get_items() as $item) { + + echo $item->get_date(); // Display Normal Date + + echo doRelativeDate( $item->get_date( SIMPLEPIE_RELATIVE_DATE ) ); // Display Relative Date + +} +``` diff --git a/docs/static/.htaccess b/docs/static/.htaccess new file mode 100644 index 000000000..b821b76ca --- /dev/null +++ b/docs/static/.htaccess @@ -0,0 +1,176 @@ +Redirect 302 /wiki/faq/Supported_Character_Encodings /wiki/faq/supported_character_encodings +Redirect 302 /wiki/simplepie/start /wiki/simplepie/ +Redirect 302 /wiki/future/start /wiki/future/ +Redirect 302 /wiki/extensions/ryanparman/start /wiki/extensions/ryanparman/ +Redirect 302 /wiki/sp2/dev/start /wiki/sp2/dev/ +Redirect 302 /wiki/sp2/start /wiki/sp2/ +Redirect 302 /wiki/plugins/joomla/start /wiki/plugins/joomla/ +Redirect 302 /wiki/plugins/punbb/start /wiki/plugins/punbb/ +Redirect 302 /wiki/plugins/habari/start /wiki/plugins/habari/ +Redirect 302 /wiki/plugins/plumecms/start /wiki/plugins/plumecms/ +Redirect 302 /wiki/plugins/simplemachinesforum/start /wiki/plugins/simplemachinesforum/ +Redirect 302 /wiki/plugins/start /wiki/plugins/ +Redirect 302 /wiki/plugins/bitweaver/start /wiki/plugins/bitweaver/ +Redirect 302 /wiki/plugins/facebook/start /wiki/plugins/facebook/ +Redirect 302 /wiki/plugins/drupal/start /wiki/plugins/drupal/ +Redirect 302 /wiki/plugins/nucleus/start /wiki/plugins/nucleus/ +Redirect 302 /wiki/plugins/php-nuke/start /wiki/plugins/php-nuke/ +Redirect 302 /wiki/plugins/mediawiki/start /wiki/plugins/mediawiki/ +Redirect 302 /wiki/plugins/textpattern/start /wiki/plugins/textpattern/ +Redirect 302 /wiki/plugins/cakephp/start /wiki/plugins/cakephp/ +Redirect 302 /wiki/plugins/modx/start /wiki/plugins/modx/ +Redirect 302 /wiki/plugins/wordpress/simplepie_plugin_for_wordpress/start /wiki/plugins/wordpress/simplepie_plugin_for_wordpress/ +Redirect 302 /wiki/plugins/wordpress/start /wiki/plugins/wordpress/ +Redirect 302 /wiki/addons/start /wiki/addons/ +Redirect 302 /wiki/start /wiki/ +Redirect 302 /wiki/tutorial/start /wiki/tutorial/ +Redirect 302 /wiki/faq/start /wiki/faq/ +Redirect 302 /wiki/setup/start /wiki/setup/ +Redirect 302 /wiki/misc/start /wiki/misc/ +Redirect 302 /wiki/misc/release_notes/start /wiki/misc/release_notes/ +Redirect 302 /wiki/reference/simplepie_http_parser/start /wiki/reference/simplepie_http_parser/ +Redirect 302 /wiki/reference/simplepie_category/start /wiki/reference/simplepie_category/ +Redirect 302 /wiki/reference/simplepie_cache_file/start /wiki/reference/simplepie_cache_file/ +Redirect 302 /wiki/reference/simplepie/start /wiki/reference/simplepie/ +Redirect 302 /wiki/reference/simplepie_enclosure/start /wiki/reference/simplepie_enclosure/ +Redirect 302 /wiki/reference/simplepie_xml_declaration_parser/start /wiki/reference/simplepie_xml_declaration_parser/ +Redirect 302 /wiki/reference/simplepie_locator/start /wiki/reference/simplepie_locator/ +Redirect 302 /wiki/reference/simplepie_content_type_sniffer/start /wiki/reference/simplepie_content_type_sniffer/ +Redirect 302 /wiki/reference/start /wiki/reference/ +Redirect 302 /wiki/reference/simplepie_caption/start /wiki/reference/simplepie_caption/ +Redirect 302 /wiki/reference/simplepie_restriction/start /wiki/reference/simplepie_restriction/ +Redirect 302 /wiki/reference/simplepie_misc/start /wiki/reference/simplepie_misc/ +Redirect 302 /wiki/reference/simplepie_decode_html_entities/start /wiki/reference/simplepie_decode_html_entities/ +Redirect 302 /wiki/reference/simplepie_parser/start /wiki/reference/simplepie_parser/ +Redirect 302 /wiki/reference/simplepie_parse_date/start /wiki/reference/simplepie_parse_date/ +Redirect 302 /wiki/reference/simplepie_credit/start /wiki/reference/simplepie_credit/ +Redirect 302 /wiki/reference/simplepie_file/start /wiki/reference/simplepie_file/ +Redirect 302 /wiki/reference/simplepie_copyright/start /wiki/reference/simplepie_copyright/ +Redirect 302 /wiki/reference/simplepie_author/start /wiki/reference/simplepie_author/ +Redirect 302 /wiki/reference/simplepie_sanitize/start /wiki/reference/simplepie_sanitize/ +Redirect 302 /wiki/reference/simplepie_item/start /wiki/reference/simplepie_item/ +Redirect 302 /wiki/reference/simplepie_cache/start /wiki/reference/simplepie_cache/ +Redirect 302 /wiki/reference/simplepie_rating/start /wiki/reference/simplepie_rating/ +Redirect 302 /wiki/reference/simplepie_source/start /wiki/reference/simplepie_source/ +Redirect 302 /wiki/1.3/start /wiki/1.3/ +Redirect 302 /wiki/ideas/start /wiki/ideas/ +Redirect 302 /wiki/live/start /wiki/live/ +Redirect 302 /wiki/live/tutorial/start /wiki/live/tutorial/ +Redirect 302 /wiki/live/faq/start /wiki/live/faq/ +Redirect 302 /wiki/live/setup/start /wiki/live/setup/ +Redirect 302 /wiki/live/reference/start /wiki/live/reference/ +Redirect 302 /blog/2006/01/09/scheduled-downtime/ /blog/scheduled-downtime/ +Redirect 302 /blog/2006/01/09/simplepie-org-is-live/ /blog/simplepie-org-is-live/ +Redirect 302 /blog/2006/01/10/version-10-preview-release-bugfix-1/ /blog/version-10-preview-release-bugfix-1/ +Redirect 302 /blog/2006/01/17/whats-coming-in-10-beta/ /blog/whats-coming-in-10-beta/ +Redirect 302 /blog/2006/01/21/new-tips-tricks-and-demos/ /blog/new-tips-tricks-and-demos/ +Redirect 302 /blog/2006/01/27/simplepie-10-beta-coming-this-weekend/ /blog/simplepie-10-beta-coming-this-weekend/ +Redirect 302 /blog/2006/01/28/simplepie-feed-url-has-changed/ /blog/simplepie-feed-url-has-changed/ +Redirect 302 /blog/2006/01/29/bypass-hotlink-blocking-when-displaying-a-feed/ /blog/bypass-hotlink-blocking-when-displaying-a-feed/ +Redirect 302 /blog/2006/01/29/delicious-ajax/ /blog/delicious-ajax/ +Redirect 302 /blog/2006/01/29/display-non-english-feeds-correctly/ /blog/display-non-english-feeds-correctly/ +Redirect 302 /blog/2006/01/29/lastfm-ajax/ /blog/lastfm-ajax/ +Redirect 302 /blog/2006/01/29/simplepie-10-beta-now-available/ /blog/simplepie-10-beta-now-available/ +Redirect 302 /blog/2006/01/30/simplepie-has-a-new-license/ /blog/simplepie-has-a-new-license/ +Redirect 302 /blog/2006/02/05/comments-temporarily-broken/ /blog/comments-temporarily-broken/ +Redirect 302 /blog/2006/02/05/search-this-site-powered-by-google/ /blog/search-this-site-powered-by-google/ +Redirect 302 /blog/2006/02/05/simplepie-mobile-beta/ /blog/simplepie-mobile-beta/ +Redirect 302 /blog/2006/02/25/working-hard-on-simplepie-10-beta-2/ /blog/working-hard-on-simplepie-10-beta-2/ +Redirect 302 /blog/2006/03/01/comments-are-back-up/ /blog/comments-are-back-up/ +Redirect 302 /blog/2006/03/03/digg-wikipedia-and-irc/ /blog/digg-wikipedia-and-irc/ +Redirect 302 /blog/2006/03/05/simplepie-contact-page/ /blog/simplepie-contact-page/ +Redirect 302 /blog/2006/03/06/forums-powered-by-punbb/ /blog/forums-powered-by-punbb/ +Redirect 302 /blog/2006/03/26/we-need-your-feeds/ /blog/we-need-your-feeds/ +Redirect 302 /blog/2006/03/28/more-simplepie-ideas/ /blog/more-simplepie-ideas/ +Redirect 302 /blog/2006/04/06/screenshots-of-simplepie-10-beta-2-in-action/ /blog/screenshots-of-simplepie-10-beta-2-in-action/ +Redirect 302 /blog/2006/04/09/better-documentation/ /blog/better-documentation/ +Redirect 302 /blog/2006/04/12/coming-in-beta-2-embedded-enclosures/ /blog/coming-in-beta-2-embedded-enclosures/ +Redirect 302 /blog/2006/05/11/simplepie-mobile-is-now-simplereader-mobile/ /blog/simplepie-mobile-is-now-simplereader-mobile/ +Redirect 302 /blog/2006/05/17/beta-2-has-not-yet-been-released/ /blog/beta-2-has-not-yet-been-released/ +Redirect 302 /blog/2006/06/02/simplepie-beta-2-is-now-available/ /blog/simplepie-beta-2-is-now-available/ +Redirect 302 /blog/2006/06/03/bypass-hotlink-blocking-when-displaying-a-feed-beta-2/ /blog/bypass-hotlink-blocking-when-displaying-a-feed-beta-2/ +Redirect 302 /blog/2006/06/03/display-non-english-feeds-correctly-beta-2/ /blog/display-non-english-feeds-correctly-beta-2/ +Redirect 302 /blog/2006/06/09/updates-to-wordpress-and-mediawiki-plugins/ /blog/updates-to-wordpress-and-mediawiki-plugins/ +Redirect 302 /blog/2006/06/10/200-downloads-in-one-week/ /blog/200-downloads-in-one-week/ +Redirect 302 /blog/2006/06/14/internationalized-domain-name-support-on-the-trunk/ /blog/internationalized-domain-name-support-on-the-trunk/ +Redirect 302 /blog/2006/06/15/simplepie-plugin-for-textpattern/ /blog/simplepie-plugin-for-textpattern/ +Redirect 302 /blog/2006/06/19/how-dowill-simplepie-version-numbers-work/ /blog/how-dowill-simplepie-version-numbers-work/ +Redirect 302 /blog/2006/06/19/lemon-meringue-is-coming-soon/ /blog/lemon-meringue-is-coming-soon/ +Redirect 302 /blog/2006/06/20/simplepie-plugins-updated-to-version-12/ /blog/simplepie-plugins-updated-to-version-12/ +Redirect 302 /blog/2006/06/22/xmldump-the-quick-way/ /blog/xmldump-the-quick-way/ +Redirect 302 /blog/2006/06/25/example-of-how-not-to-take-care-of-your-customers/ /blog/example-of-how-not-to-take-care-of-your-customers/ +Redirect 302 /blog/2006/06/25/simplepie-is-on-the-hot-100/ /blog/simplepie-is-on-the-hot-100/ +Redirect 302 /blog/2006/07/01/followup-user-experience-customer-service/ /blog/followup-user-experience-customer-service/ +Redirect 302 /blog/2006/07/03/slipping-the-beta-3-schedule/ /blog/slipping-the-beta-3-schedule/ +Redirect 302 /blog/2006/07/06/simplepie-to-dos/ /blog/simplepie-to-dos/ +Redirect 302 /blog/2006/07/12/1000-downloads-of-beta-2-recognition-and-a-progress-report/ /blog/1000-downloads-of-beta-2-recognition-and-a-progress-report/ +Redirect 302 /blog/2006/07/25/hax0rz/ /blog/hax0rz/ +Redirect 302 /blog/2006/08/05/simplepie-discussed-at-blogher-06/ /blog/simplepie-discussed-at-blogher-06/ +Redirect 302 /blog/2006/08/20/lemon-meringue-is-close-at-hand/ /blog/lemon-meringue-is-close-at-hand/ +Redirect 302 /blog/2006/08/23/sorting-multiple-feeds-by-time-and-date/ /blog/sorting-multiple-feeds-by-time-and-date/ +Redirect 302 /blog/2006/09/05/simplepie-wallpapers/ /blog/simplepie-wallpapers/ +Redirect 302 /blog/2006/09/10/please-support-happy-developers/ /blog/please-support-happy-developers/ +Redirect 302 /blog/2006/09/13/support-questions/ /blog/support-questions/ +Redirect 302 /blog/2006/10/10/simplepie-trunk-is-very-very-icy/ /blog/simplepie-trunk-is-very-very-icy/ +Redirect 302 /blog/2006/10/28/lemon-meringue-has-been-branched-razzleberry-is-on-the-trunk/ /blog/lemon-meringue-has-been-branched-razzleberry-is-on-the-trunk/ +Redirect 302 /blog/2006/10/31/4000-downloads-of-beta-2-hours-away-from-beta-3-release-more-on-10/ /blog/4000-downloads-of-beta-2-hours-away-from-beta-3-release-more-on-10/ +Redirect 302 /blog/2006/11/01/simplepie-beta-3-is-now-available/ /blog/simplepie-beta-3-is-now-available/ +Redirect 302 /blog/2006/11/14/simplepie-beta-31-the-bugfix-release/ /blog/simplepie-beta-31-the-bugfix-release/ +Redirect 302 /blog/2006/11/24/simplepie-beta-32-the-return-of-the-bugfix-release/ /blog/simplepie-beta-32-the-return-of-the-bugfix-release/ +Redirect 302 /blog/2006/11/27/random-statistics-about-simplepieorg/ /blog/random-statistics-about-simplepieorg/ +Redirect 302 /blog/2006/12/01/more-on-method-names/ /blog/more-on-method-names/ +Redirect 302 /blog/2006/12/05/simplepie-mentioned-on-the-looseendsshowcom-podcast/ /blog/simplepie-mentioned-on-the-looseendsshowcom-podcast/ +Redirect 302 /blog/2007/02/18/updates-upcoming-features-multifeeds-2-and-simplepie-lite/ /blog/updates-upcoming-features-multifeeds-2-and-simplepie-lite/ +Redirect 302 /blog/2007/03/28/simplepie-razzleberry-draws-ever-closer/ /blog/simplepie-razzleberry-draws-ever-closer/ +Redirect 302 /blog/2007/03/29/handbrake-doesnt-care-about-black-people-i-mean-end-users/ /blog/handbrake-doesnt-care-about-black-people-i-mean-end-users/ +Redirect 302 /blog/2007/04/02/simplepie-and-magpie-are-not-merging/ /blog/simplepie-and-magpie-are-not-merging/ +Redirect 302 /blog/2007/05/07/wrapping-up-10/ /blog/wrapping-up-10/ +Redirect 302 /blog/2007/05/10/trunk-problems-with-php-446-447-and-522/ /blog/trunk-problems-with-php-446-447-and-522/ +Redirect 302 /blog/2007/05/22/faqs-and-tutorials/ /blog/faqs-and-tutorials/ +Redirect 302 /blog/2007/06/21/release-candidate-this-weekend/ /blog/release-candidate-this-weekend/ +Redirect 302 /blog/2007/06/23/simplepie-10-release-candidate-is-here/ /blog/simplepie-10-release-candidate-is-here/ +Redirect 302 /blog/2007/07/01/simplepie-10-release-candidate-2/ /blog/simplepie-10-release-candidate-2/ +Redirect 302 /blog/2007/07/03/simplereader-mobile-has-had-a-facelift/ /blog/simplereader-mobile-has-had-a-facelift/ +Redirect 302 /blog/2007/07/05/fix-for-curl-errors-in-10-rc2/ /blog/fix-for-curl-errors-in-10-rc2/ +Redirect 302 /blog/2007/07/10/simplepie-10-release-candidate-3/ /blog/simplepie-10-release-candidate-3/ +Redirect 302 /blog/2007/07/13/simplepie-is-going-php5-only/ /blog/simplepie-is-going-php5-only/ +Redirect 302 /blog/2007/07/15/geoffrey-for-hire/ /blog/geoffrey-for-hire/ +Redirect 302 /blog/2007/07/15/simplepie-10-is-here/ /blog/simplepie-10-is-here/ +Redirect 302 /blog/2007/07/23/simplepie-101-the-bugfix-release/ /blog/simplepie-101-the-bugfix-release/ +Redirect 302 /blog/2007/07/27/new-iphone-specific-simplereader-mobile/ /blog/new-iphone-specific-simplereader-mobile/ +Redirect 302 /blog/2007/08/11/get-the-most-out-of-simplepie/ /blog/get-the-most-out-of-simplepie/ +Redirect 302 /blog/2007/08/15/get-easy-access-to-simplepie-from-your-web-browser/ /blog/get-easy-access-to-simplepie-from-your-web-browser/ +Redirect 302 /blog/2007/08/19/tutorial-request-setting-up-a-cron-job-with-simplepie/ /blog/tutorial-request-setting-up-a-cron-job-with-simplepie/ +Redirect 302 /blog/2007/08/30/simplepie-blackberry-and-simplepie-live-beta-coming-this-weekend/ /blog/simplepie-blackberry-and-simplepie-live-beta-coming-this-weekend/ +Redirect 302 /blog/2007/09/03/delayed/ /blog/delayed/ +Redirect 302 /blog/2007/09/14/introducing-simplepie-live-taking-your-feeds-to-a-whole-new-level/ /blog/introducing-simplepie-live-taking-your-feeds-to-a-whole-new-level/ +Redirect 302 /blog/2007/09/28/simplepie-the-book/ /blog/simplepie-the-book/ +Redirect 302 /blog/2007/09/29/new-simplepie-plugin-for-wordpress-coming-soon/ /blog/new-simplepie-plugin-for-wordpress-coming-soon/ +Redirect 302 /blog/2007/10/07/simplepie-plugin-for-wordpress-20/ /blog/simplepie-plugin-for-wordpress-20/ +Redirect 302 /blog/2007/11/09/status-update/ /blog/status-update/ +Redirect 302 /blog/2007/12/28/byepie/ /blog/byepie/ +Redirect 302 /blog/2008/01/02/simplepie-11-is-now-available/ /blog/simplepie-11-is-now-available/ +Redirect 302 /blog/2008/01/15/sp2-the-vision/ /blog/sp2-the-vision/ +Redirect 302 /blog/2008/01/17/simplereader-mobile-and-iphoneipod-touch-update/ /blog/simplereader-mobile-and-iphoneipod-touch-update/ +Redirect 302 /blog/2008/01/31/moving-the-simplepie-support-forums/ /blog/moving-the-simplepie-support-forums/ +Redirect 302 /blog/2008/01/31/welcome-steve-minutillo/ /blog/welcome-steve-minutillo/ +Redirect 302 /blog/2008/02/26/moving-the-bug-tracking/ /blog/moving-the-bug-tracking/ +Redirect 302 /blog/2008/02/27/support-community-update/ /blog/support-community-update/ +Redirect 302 /blog/2008/03/14/how-can-simplepies-api-improve/ /blog/how-can-simplepies-api-improve/ +Redirect 302 /blog/2008/03/15/simplepie-111-is-now-available/ /blog/simplepie-111-is-now-available/ +Redirect 302 /blog/2008/05/14/were-growing/ /blog/were-growing/ +Redirect 302 /blog/2008/06/11/peter-can-now-pick-a-peck-of-processes-processing/ /blog/peter-can-now-pick-a-peck-of-processes-processing/ +Redirect 302 /blog/2008/07/18/the-easy-way-to-display-single-items-using-simplepie/ /blog/the-easy-way-to-display-single-items-using-simplepie/ +Redirect 302 /blog/2008/08/16/twitter-bug/ /blog/twitter-bug/ +Redirect 302 /blog/2008/09/29/weigh-in-on-simplepie-2/ /blog/weigh-in-on-simplepie-2/ +Redirect 302 /blog/2008/11/16/simplepie-112-is-now-available/ /blog/simplepie-112-is-now-available/ +Redirect 302 /blog/2008/12/20/simplepie-113-is-now-available/ /blog/simplepie-113-is-now-available/ +Redirect 302 /blog/2009/02/20/deprecating-simplepie-live/ /blog/deprecating-simplepie-live/ +Redirect 302 /blog/2009/02/28/new-simplepie-screencasts/ /blog/new-simplepie-screencasts/ +Redirect 302 /blog/2009/05/15/openid-for-comments/ /blog/openid-for-comments/ +Redirect 302 /blog/2009/07/11/simplepie-1-2-now-available/ /blog/simplepie-1-2-now-available/ +Redirect 302 /blog/2009/09/26/simplepie-is-ceasing-development/ /blog/simplepie-is-ceasing-development/ +Redirect 302 /blog/2011/10/14/simplepie-1-2-1-is-now-available/ /blog/simplepie-1-2-1-is-now-available/ +Redirect 302 /blog/2012/01/16/development-tools-now-available/ /blog/development-tools-now-available/ +Redirect 302 /blog/2012/07/07/one-dot-three/ /blog/one-dot-three/ +Redirect 302 /blog/2012/10/30/simplepie-1-3-1-is-now-available/ /blog/simplepie-1-3-1-is-now-available/ diff --git a/docs/static/CNAME b/docs/static/CNAME new file mode 100644 index 000000000..b00bc085d --- /dev/null +++ b/docs/static/CNAME @@ -0,0 +1 @@ +simplepie.org diff --git a/docs/static/css/simplepie.css b/docs/static/css/simplepie.css new file mode 100644 index 000000000..bc86949ce --- /dev/null +++ b/docs/static/css/simplepie.css @@ -0,0 +1,917 @@ +/* +Theme Name: SimplePie +Theme URI: http://simplepie.org +Description: A simple, yet beautiful theme inspired by several cleanly designed websites. +Version: 1.4.3 +Author: Ryan Parman +Author URI: http://skyzyx.com +Updated: 2 January 2008 +*/ + + +/********************************************* +HYPERLINK STYLES +*********************************************/ +a { + color:#369; + text-decoration:underline; + padding:0 1px; +} + +a:hover { + color:#fff !important; + background-color:#333; + text-decoration:none; + padding:0 1px; +} + +a.nohover { + text-decoration:none; + border:none; +} + +a.nohover:hover { + background-color:transparent; + border:none; +} + +a.namelink { + padding:0; + margin:0; + overflow:hidden; + height:1px; +} + +h4 a, +.highlight a:link { + color:#000; +} + + +/********************************************* +GENERAL STYLES +*********************************************/ +body { + /*font:12px/18px Verdana, sans-serif;*/ + font:14px/1.5em "Lucida Grande", Tahoma, sans-serif; + letter-spacing:0px; + color:#333; + background-color:#fff; + margin:0; + padding:0; +} + +div#site { + width:550px; + margin:50px auto 0 auto; +} + +div#punwrap a:hover { + color:#fff !important; + background-color:#333 !important; + text-decoration:none !important; +} + +html body div#punwrap .scrollbox { + overflow:auto; +} + +html body div#announce h2 { + background-color: #f00; + color: #fff; + font-weight: bold; +} + +html body div#announce div.box { + background-color: #c00; + color:#fff; + border:2px solid #f00; +} + +html body div#announce div.box em { + background-color: transparent; +} + +html body div#announce div.box h1 { + text-transform: uppercase; +} + +html body div#announce div.box a, +html body div#announce div.box a:hover { + color: #ffc; +} + +h1#logo { + margin:0; + padding:0; + text-align:center; +} + +h1#logo a, +h1#logo a:hover { + background-color:transparent; + text-decoration:none; + padding:0; +} + +h2.image { + margin:0; + padding:0; + text-align:center; +} + +h3 { + margin:20px 0 0 0; + padding:0; + font-size:1.5em; +} + +h4 { + margin:20px 0 0 0; + padding:0; + font-size:1.2em; + letter-spacing:-1px; +} + +h4.title { + padding-left:20px; + background-color:transparent; + background-repeat:no-repeat; + background-position:0 1px; +} + +h5 { + margin:10px 0 0 0; + padding:0; + font-size:1em; + font-weight:bold; +} + +em { + font-style:normal; + background-color:#ffc; +} + +p { + margin:0; + padding:5px 0; +} + +ul, ol { + margin:10px 0 10px 20px; + padding:0 0 0 15px; +} + +ul li, ol li { + margin:0 0 7px 0; + padding:0 0 0 3px; +} + +form { + margin:0; + padding:0; +} + +code { + font-size:1em; + background-color:#f3f3ff; + color:#000; +} + +pre { + font-size:12px !important; + font-family:monospace !important; +} + +div#site pre { + background-color:#f3f3ff; + color:#000080; + border:1px dotted #000080; + overflow:auto; + padding:3px 5px; +} + +blockquote { + font-size:1em; + color:#666; + border-left:4px solid #666; + margin:10px 0 10px 30px; + padding:0 5px 0 10px; + background:#f3f3f3 url(/images/background_blockquote.png) repeat top left; +} + +input, select, textarea { + font-size:12px; + line-height:1.2em; + padding:2px; +} + +input[type=text], select, textarea { + background-color:#e9f5ff; + border:1px solid #333; +} + +input[type=text]:focus, select:focus, textarea:focus { + background-color:#ffe; +} + +table#chart { + border-collapse:collapse; +} + +table#chart th { + background-color:#eee; + padding:2px 3px; + border:1px solid #fff; +} + +table#chart td { + text-align:center; + padding:2px 3px; + border:1px solid #eee; +} + +table#chart td.left { + text-align:left; +} + +.clearLeft {clear:left;} +.clearRight {clear:right;} +.clearBoth {clear:both;} +.hide {display:none;} + +.announcement { + font-weight:bold; + padding:7px; + color:#fff; + background-color:#f60; + border-bottom:3px solid #f30; + text-align:center; + text-shadow:#444 1px 1px 1px; +} + +.announcement a { + color:#fff; +} + + +/********************************************* +NAVIGATION STYLES +*********************************************/ +div#header { + background:#fff url(/images/top_gradient.gif) repeat-x top left; + margin:0; + padding:0; +} + +div#header form { + margin:0; + padding:0; +} + +div#header div#headerInner { + margin:0; + padding:0; +} + +div#header div#headerInner div#logoContainer {} + +div#header div#headerInner div#logoContainerInner { + width:550px; + margin:0 auto; + padding:20px; +} + +div#header div#headerInner div#logoContainer div#logo { + float:left; + width:200px; +} + +div#header div#headerInner div#logoContainer div#logo a, +div#header div#headerInner div#logoContainer div#logo a:hover { + border:none; + background:none; +} + +div#header div#headerInner div#logoContainer div#feed { + float:right; + width:300px; + text-align:right; + padding:10px 0 0 0; +} + +div#header div#headerInner div#logoContainer div#feed input.text { + width:60%; +} + +div#header div#headerInner div#menu { + background:#eee url(/images/background_menuitem_shadow.gif) repeat-x top left; + border-top:2px solid #ccc; + border-bottom:1px solid #ddd; + text-align:center; +} + +div#header div#headerInner div#menu table { + width:auto; + margin:0 auto; +} + +div#header div#headerInner div#menu ul { + display:block; + width:100%; + margin:0 auto; + padding:0; + font-size:12px; +} + +div#header div#headerInner div#menu ul li { + display:block; + float:left; +} + +div#header div#headerInner div#menu ul li a { + display:block; + margin:-2px 0 0 0; + padding:5px 7px 8px 7px; + text-decoration:none; + color:#666 !important; + background-color:transparent; +} + +div#header div#headerInner div#menu ul li a:hover { + display:block; + margin:-2px 0 0 0; + padding:5px 7px 8px 7px; + text-decoration:none; + color:#666; + background:#fff url(/images/background_menuitem_off.gif) no-repeat bottom right; +} + +body#apidocs div#header div#headerInner div#menu ul li#api a, +body#bodyoverview div#header div#headerInner div#menu ul li#overview a, +body#bodybuzz div#header div#headerInner div#menu ul li#buzz a, +body#bodydemo div#header div#headerInner div#menu ul li#demo a, +body#bodydownloads div#header div#headerInner div#menu ul li#downloads a, +body#bodydocs div#header div#headerInner div#menu ul li#docs a, +body#bodyblog div#header div#headerInner div#menu ul li#blog a, +body#bodycommunity div#header div#headerInner div#menu ul li#community a, +body#bodysupport div#header div#headerInner div#menu ul li#support a, +body#bodyfaq div#header div#headerInner div#menu ul li#faq a, +body#bodymore div#header div#headerInner div#menu ul li#more a { + display:block; + margin:-2px 0 0 0; + padding:5px 7px 8px 7px; + text-decoration:none; + color:#333; + font-weight:bold; + background:#fff url(/images/background_menuitem.gif) no-repeat bottom right; +} + + +/********************************************* +CONTENT STYLES +*********************************************/ +div.chunk { + margin:20px 0 0 0; + padding:0 0 10px 0; + border-bottom:1px solid #ccc; +} + +div.topchunk { + margin:0 !important; +} + +div#secondary { + width:100%; + padding-top:10px; +} + +div#secondary a, +div#secondary a:hover { + border:none; + background:none; + margin:0 10px; + display:inline; + zoom:1; +} + +.footnote, +.footnote a { + font-size:12px; + line-height:1.3em; + color:#aaa; +} + +.footnote em { + background-color:transparent; + font-style:italic; +} + +.footnote code { + background-color:transparent; + font:11px/14px monospace; + color:#aaa; +} + +a.download, +a.download:hover { + border:none; + background-color:transparent; +} + +p.download { + text-align:center; +} + +p.download a, +p.download a:hover { + display:block; + padding:45px 0 0 0; + margin:0 auto; + width:203px; + heig\ht:45px; + height:0; + overflow:hidden; + background:transparent url(/images/button_download.png) no-repeat 0 0; +} + +p.download a { + background:transparent url(/images/button_download.png) no-repeat 0 0; +} + +p.download a:hover { + background:transparent url(/images/button_download.png) no-repeat 0 -45px; +} + +p.subscribe { + background-color:#f3f3f3; + font-size:12px; + text-align:center; +} + +p.highlight { + background-color:#ffc; + font-size:12px; + text-align:center; +} + +p.plugin { + background-color:#f3f3f3; + font-size:12px; + text-align:center; + border:1px solid #ccc; + border-width:1px 0; +} + +p.plugin img {line-height:0;} +p.plugin a {line-height:1.4em;} + +p.sample_feeds { + font-size:12px; + line-height:1.2em; +} + +div.sp_errors { + background-color:#eee; + padding:5px; + text-align:center; + font-size:12px; +} + +.noborder { + border:none !important; +} + +p.nextstep { + font-size:1.1em; + padding:3px; + font-weight:bold; + text-align:right; + margin-top:10px; +} + +div#footer p.footnote, +div#footer p.footnote a { + font-size:11px; + line-height:1.4em; +} + +div#footer div.spacer { + height:15px; +} + +div#features div { + margin:10px; +} + +div#features div h4 { + padding-top:10px; +} + +div#features img.thumb { + float:left; + display:block; + margin:10px; + width:100px; + height:100px; +} + + +/********************************************* +DEMO STYLES +*********************************************/ +div#sp_input { + background-color:#ffc; + border:2px solid #f90; + padding:5px; + text-align:center; +} + +div#sp_input input.text { + border:1px solid #999; + background:#e9f5ff url(/images/mini/feed.png) no-repeat 4px 50%; + width:75%; + padding:2px 2px 2px 28px; + font:18px/22px "Lucida Grande", Verdana, sans-serif; + font-weight:bold; + letter-spacing:-1px; +} + +form#sp_form { + margin:15px 0; +} + +div.focus { + margin:0; + padding:10px 20px; + background-color:#efe; +} + +p.sample_feeds { + text-align:justify; +} + +img.favicon { + margin:0 4px -2px 0; + width:16px; + height:16px; +} + +p.favicons a, +p.favicons a:hover { + border:none; + background-color:transparent; +} + +p.favicons img { + border:none; +} + + +/********************************************* +BLOG STYLES +*********************************************/ +div.prevNext { + border-bottom:1px solid #ccc; + background-color:#efe; +} + +div.prevNext, +table td { + font-size:12px; +} + +div.blogimage { + float:right; + text-align:center; + margin:0 0 10px 10px; +} + +.avatar { + float:right; + background-color: #fff; + padding:0 0 10px 10px; +} + + +/********************************************* +BUZZ STYLES +*********************************************/ +body#bodybuzz p.favicon { + padding-left:20px; + background-color:transparent; + background-repeat:no-repeat; + background-position:0 50%; +} + + +/********************************************* +WIKI STYLES +*********************************************/ +table.diff { + width:100%; +} + +table.diff, +table.diff td { + background-color:#fcfcfc; +} + +table.diff td { + padding:2px 5px; + font-family:monospace; + color:#999; + white-space:pre; + overflow:hidden; +} + +table.diff td.diff-blockheader { + background-color:#333; + color:#fff; + padding:4px 10px; +} + +table.diff td.diff-deletedline { + background-color:#fcc; + color:#c00; +} + +table.diff td.diff-addedline { + background-color:#cfc; + color:#093; +} + + +/********************************************* +SIFR STYLES +*********************************************/ +.sIFR-active h3.header { + visibility:hidden; + line-height:1em; +} + + /********************************************* +HYPERLINK STYLES +*********************************************/ +body#apidocs a.urlextern { + padding-left:18px; + background-image:url(/images/mini/world.png); + background-position:0 50%; + background-repeat:no-repeat; +} + +body#apidocs a.urlextern:hover, +body#apidocs a.interwiki:hover { + padding-left:18px !important; +} + +body#apidocs a.wikilink2 { + color:#c00; + background-color:#fee; +} + +body#apidocs h1 a, +body#apidocs h2 a, +body#apidocs h3 a { + color:#000; +} + + +/********************************************* +GENERAL STYLES +*********************************************/ +body#apidocs div#site { + width:90% !important; + margin:50px auto 0 auto; +} + +body#apidocs em { + background-color:transparent !important; + font-style:italic !important; +} + +body#apidocs code { + background: transparent; + color: #333; +} + +body#apidocs pre { + font-size: 13px !important; + width: 100%; + border: 0; + padding: 0; +} + + +/********************************************* +TABLE OF CONTENTS +*********************************************/ +body#apidocs div.toc { + float:right; + font-size:11px; + background-color:#eee; + border:1px solid #ccc; + padding:5px; + margin:0 0 20px 20px; +} + +body#apidocs div#toc__header { + font-weight:bold; +} + +body#apidocs div.toc ul, +body#apidocs div.toc ol { + margin:0 0 0 10px; + padding:0 0 0 10px; +} + +body#apidocs div.toc li { + margin:0 0 1px 0 !important; + padding:0 0 0 3px !important; +} + + +/********************************************* +CONTENT +*********************************************/ +body#apidocs div#content div.secedit { + float:right; +} + +body#apidocs div#content div.secedit input.button { + font-size:10px; +} + +body#apidocs div#content h1 { + margin:30px 0 10px 0; + padding:0; + font-size:1.8em; +} + +body#apidocs div#content h1 a, +body#apidocs div#content h1 a:hover, +body#apidocs div#content h2 a, +body#apidocs div#content h2 a:hover, +body#apidocs div#content h3 a, +body#apidocs div#content h3 a:hover, +body#apidocs div#content h4 a, +body#apidocs div#content h4 a:hover { + color:#333 !important; + text-decoration:none; + background-color:transparent; +} + +body#apidocs div#content h2 { + margin:30px 0 10px 0; + padding:0; + font-size:1.6em; + letter-spacing:-1px; + border-bottom:1px solid #000; +} + +body#apidocs div#content h2.image { + border:none; +} + +body#apidocs div#content h4 { + letter-spacing: normal; +} + +body#apidocs div.level3 { + margin-left:50px; +} + +body#apidocs div.level4 { + margin-left:100px; +} + + +/********************************************* +SEARCH +*********************************************/ +body#apidocs ul.search_quickhits { + margin:0 0 50px 50px; +} + +body#apidocs span.search_hit { + background-color:#ffc; +} + +body#apidocs div.search_result { + margin:0 0 15px 50px; + padding:10px 15px; + border:1px solid #ccc; +} + +body#apidocs div.search_result a { + font-weight:bold; + padding-left:20px; + background-image:url(/images/mini/star.png); + background-repeat:no-repeat; + background-position:0 50%; +} + +body#apidocs span.search_cnt { + font-size:12px; + line-height:1.3em; + color:#aaa; +} + +body#apidocs div.search_snippet { + font-size:0.9em; +} + + +/********************************************* +CONTROLS +For some reason, Opera 9 is stacking the buttons +on top of each other. Why, oh why? +*********************************************/ +body#apidocs div#controls {} + +body#apidocs div#controls div.buttons { + /*float:left;*/ +} + +body#apidocs div#controls div.buttons form { + display:block; + float:left; +} + +body#apidocs div#controls div.buttons form div { + display:inline; +} + +body#apidocs div#controls div.buttons input.button { + margin-right:10px; +} + +body#apidocs div#controls div.search { + float:right; +} + +body#apidocs div#controls div.search input.edit { + margin-right:10px; +} + + +/********************************************* +LOGIN PAGE +*********************************************/ +body#apidocs div.centeralign {} + +body#apidocs form label { + display:block; +} + +body#apidocs fieldset { + margin:10px auto; + padding:5px 0 10px 0; + width:550px; +} + +body#apidocs fieldset legend { + font-weight:bold; + padding:0 10px; + margin-left:20px; +} + +body#apidocs textarea#wiki__text { + margin:20px 0; + width:100%; + height:300px; +} + + +/********************************************* +TABLES +*********************************************/ +body#apidocs table.inline { + border-collapse:collapse; + font-size:14px; +} + +body#apidocs table.inline th { + background-color:#eee; + padding:4px 10px; + border:1px solid #fff; +} + +body#apidocs table.inline td { + text-align:left; + padding:4px 10px; + border:1px solid #eee; + font-size:14px; +} + +body#apidocs table.inline td.left { + text-align:left; +} + +body#apidocs .layout-aside { + position: static; +} + +body#apidocs .layout-main { + margin-left: 0; +} diff --git a/docs/static/css/wikistyles.css b/docs/static/css/wikistyles.css new file mode 100644 index 000000000..1c707aef5 --- /dev/null +++ b/docs/static/css/wikistyles.css @@ -0,0 +1,260 @@ +/********************************************* +HYPERLINK STYLES +*********************************************/ +body#bodydocs a.urlextern { + padding-left:18px; + background-image:url(/images/mini/world.png); + background-position:0 50%; + background-repeat:no-repeat; +} + +body#bodydocs a.urlextern:hover, +body#bodydocs a.interwiki:hover { + padding-left:18px !important; +} + +body#bodydocs a.wikilink2 { + color:#c00; + background-color:#fee; +} + +body#bodydocs h1 a, +body#bodydocs h2 a, +body#bodydocs h3 a { + color:#000; +} + + +/********************************************* +GENERAL STYLES +*********************************************/ +body#bodydocs div#site { + width:90% !important; + margin:50px auto 0 auto; +} + +body#bodydocs em { + background-color:transparent !important; + font-style:italic !important; +} + +body#bodydocs code, +body#bodydocs code a { + font-size:0.9em; +} + + +/********************************************* +TABLE OF CONTENTS +*********************************************/ +body#bodydocs div.toc { + float:right; + font-size:11px; + background-color:#eee; + border:1px solid #ccc; + padding:5px; + margin:0 0 20px 20px; +} + +body#bodydocs div#toc__header { + font-weight:bold; +} + +body#bodydocs div.toc ul, +body#bodydocs div.toc ol { + margin:0 0 0 10px; + padding:0 0 0 10px; +} + +body#bodydocs div.toc li { + margin:0 0 1px 0 !important; + padding:0 0 0 3px !important; +} + + +/********************************************* +CONTENT +*********************************************/ +body#bodydocs div#content div.secedit { + float:right; +} + +body#bodydocs div#content div.secedit input.button { + font-size:10px; +} + +body#bodydocs div#content h1 { + margin:30px 0 10px 0; + padding:0; + font-size:1.8em; +} + +body#bodydocs div#content h1 a, +body#bodydocs div#content h1 a:hover, +body#bodydocs div#content h2 a, +body#bodydocs div#content h2 a:hover, +body#bodydocs div#content h3 a, +body#bodydocs div#content h3 a:hover, +body#bodydocs div#content h4 a, +body#bodydocs div#content h4 a:hover { + color:#333 !important; + text-decoration:none; + background-color:transparent; +} + +body#bodydocs div#content h2 { + margin:30px 0 10px 0; + padding:0; + font-size:1.6em; + letter-spacing:-1px; + border-bottom:1px solid #000; +} + +body#bodydocs div#content h2.image { + border:none; +} + +body#bodydocs div#content h3 { + margin:30px 0 10px 50px; + padding:0; + font-size:1.4em; + font-weight:bold; + text-decoration:underline; +} + +body#bodydocs div#content h4 { + margin:20px 0 10px 100px; + text-decoration:underline; +} + +body#bodydocs div.level3 { + margin-left:50px; +} + +body#bodydocs div.level4 { + margin-left:100px; +} + + +/********************************************* +SEARCH +*********************************************/ +body#bodydocs ul.search_quickhits { + margin:0 0 50px 50px; +} + +body#bodydocs span.search_hit { + background-color:#ffc; +} + +body#bodydocs div.search_result { + margin:0 0 15px 50px; + padding:10px 15px; + border:1px solid #ccc; +} + +body#bodydocs div.search_result a { + font-weight:bold; + padding-left:20px; + background-image:url(/images/mini/star.png); + background-repeat:no-repeat; + background-position:0 50%; +} + +body#bodydocs span.search_cnt { + font-size:12px; + line-height:1.3em; + color:#aaa; +} + +body#bodydocs div.search_snippet { + font-size:0.9em; +} + + +/********************************************* +CONTROLS +For some reason, Opera 9 is stacking the buttons +on top of each other. Why, oh why? +*********************************************/ +body#bodydocs div#controls {} + +body#bodydocs div#controls div.buttons { + /*float:left;*/ +} + +body#bodydocs div#controls div.buttons form { + display:block; + float:left; +} + +body#bodydocs div#controls div.buttons form div { + display:inline; +} + +body#bodydocs div#controls div.buttons input.button { + margin-right:10px; +} + +body#bodydocs div#controls div.search { + float:right; +} + +body#bodydocs div#controls div.search input.edit { + margin-right:10px; +} + + +/********************************************* +LOGIN PAGE +*********************************************/ +body#bodydocs div.centeralign {} + +body#bodydocs form label { + display:block; +} + +body#bodydocs fieldset { + margin:10px auto; + padding:5px 0 10px 0; + width:550px; +} + +body#bodydocs fieldset legend { + font-weight:bold; + padding:0 10px; + margin-left:20px; +} + +body#bodydocs textarea#wiki__text { + margin:20px 0; + width:100%; + height:300px; +} + + +/********************************************* +TABLES +*********************************************/ +body#bodydocs table.inline { + border-collapse:collapse; + font-size:14px; +} + +body#bodydocs table.inline th { + background-color:#eee; + padding:4px 10px; + border:1px solid #fff; +} + +body#bodydocs table.inline td { + text-align:left; + padding:4px 10px; + border:1px solid #eee; + font-size:14px; +} + +body#bodydocs table.inline td.left { + text-align:left; +} + diff --git a/docs/static/favicon.ico b/docs/static/favicon.ico new file mode 100644 index 000000000..cc73ee646 Binary files /dev/null and b/docs/static/favicon.ico differ diff --git a/docs/static/images/128/bboard.png b/docs/static/images/128/bboard.png new file mode 100644 index 000000000..e2d9d2171 Binary files /dev/null and b/docs/static/images/128/bboard.png differ diff --git a/docs/static/images/128/blogher.gif b/docs/static/images/128/blogher.gif new file mode 100644 index 000000000..6d8522aae Binary files /dev/null and b/docs/static/images/128/blogher.gif differ diff --git a/docs/static/images/128/brain.png b/docs/static/images/128/brain.png new file mode 100644 index 000000000..d8b343550 Binary files /dev/null and b/docs/static/images/128/brain.png differ diff --git a/docs/static/images/128/calendar.png b/docs/static/images/128/calendar.png new file mode 100644 index 000000000..a01234d43 Binary files /dev/null and b/docs/static/images/128/calendar.png differ diff --git a/docs/static/images/128/crying.png b/docs/static/images/128/crying.png new file mode 100644 index 000000000..3eda242dd Binary files /dev/null and b/docs/static/images/128/crying.png differ diff --git a/docs/static/images/128/designer.png b/docs/static/images/128/designer.png new file mode 100644 index 000000000..c0fb21e29 Binary files /dev/null and b/docs/static/images/128/designer.png differ diff --git a/docs/static/images/128/desktop-mac.png b/docs/static/images/128/desktop-mac.png new file mode 100644 index 000000000..b0f1a57bf Binary files /dev/null and b/docs/static/images/128/desktop-mac.png differ diff --git a/docs/static/images/128/feed.png b/docs/static/images/128/feed.png new file mode 100644 index 000000000..e51690f70 Binary files /dev/null and b/docs/static/images/128/feed.png differ diff --git a/docs/static/images/128/firefox.png b/docs/static/images/128/firefox.png new file mode 100644 index 000000000..3d91c4f2a Binary files /dev/null and b/docs/static/images/128/firefox.png differ diff --git a/docs/static/images/128/friend.png b/docs/static/images/128/friend.png new file mode 100644 index 000000000..bcd6705b5 Binary files /dev/null and b/docs/static/images/128/friend.png differ diff --git a/docs/static/images/128/grin.png b/docs/static/images/128/grin.png new file mode 100644 index 000000000..69a6eaccf Binary files /dev/null and b/docs/static/images/128/grin.png differ diff --git a/docs/static/images/128/heart.png b/docs/static/images/128/heart.png new file mode 100644 index 000000000..cf691c8e3 Binary files /dev/null and b/docs/static/images/128/heart.png differ diff --git a/docs/static/images/128/iphone.png b/docs/static/images/128/iphone.png new file mode 100644 index 000000000..3f8fc5f0b Binary files /dev/null and b/docs/static/images/128/iphone.png differ diff --git a/docs/static/images/128/itunes7.png b/docs/static/images/128/itunes7.png new file mode 100644 index 000000000..493cb319c Binary files /dev/null and b/docs/static/images/128/itunes7.png differ diff --git a/docs/static/images/128/lemon_meringue.png b/docs/static/images/128/lemon_meringue.png new file mode 100644 index 000000000..df31570d1 Binary files /dev/null and b/docs/static/images/128/lemon_meringue.png differ diff --git a/docs/static/images/128/license.png b/docs/static/images/128/license.png new file mode 100644 index 000000000..bdd88a2ba Binary files /dev/null and b/docs/static/images/128/license.png differ diff --git a/docs/static/images/128/loop.png b/docs/static/images/128/loop.png new file mode 100644 index 000000000..8ea7e1e1d Binary files /dev/null and b/docs/static/images/128/loop.png differ diff --git a/docs/static/images/128/metapackage.png b/docs/static/images/128/metapackage.png new file mode 100644 index 000000000..25b5b9f6d Binary files /dev/null and b/docs/static/images/128/metapackage.png differ diff --git a/docs/static/images/128/mobile.png b/docs/static/images/128/mobile.png new file mode 100644 index 000000000..68d425df5 Binary files /dev/null and b/docs/static/images/128/mobile.png differ diff --git a/docs/static/images/128/osx-login.png b/docs/static/images/128/osx-login.png new file mode 100644 index 000000000..c8db40399 Binary files /dev/null and b/docs/static/images/128/osx-login.png differ diff --git a/docs/static/images/128/package.png b/docs/static/images/128/package.png new file mode 100644 index 000000000..597f3676b Binary files /dev/null and b/docs/static/images/128/package.png differ diff --git a/docs/static/images/128/php.gif b/docs/static/images/128/php.gif new file mode 100644 index 000000000..f352c7308 Binary files /dev/null and b/docs/static/images/128/php.gif differ diff --git a/docs/static/images/128/plugin.png b/docs/static/images/128/plugin.png new file mode 100644 index 000000000..13dabb6d6 Binary files /dev/null and b/docs/static/images/128/plugin.png differ diff --git a/docs/static/images/128/sad.png b/docs/static/images/128/sad.png new file mode 100644 index 000000000..c98bf2e79 Binary files /dev/null and b/docs/static/images/128/sad.png differ diff --git a/docs/static/images/128/search.png b/docs/static/images/128/search.png new file mode 100644 index 000000000..cb458e30b Binary files /dev/null and b/docs/static/images/128/search.png differ diff --git a/docs/static/images/128/simplepie.png b/docs/static/images/128/simplepie.png new file mode 100644 index 000000000..9975d8476 Binary files /dev/null and b/docs/static/images/128/simplepie.png differ diff --git a/docs/static/images/128/simplepie_live.png b/docs/static/images/128/simplepie_live.png new file mode 100644 index 000000000..b71a12467 Binary files /dev/null and b/docs/static/images/128/simplepie_live.png differ diff --git a/docs/static/images/128/star.png b/docs/static/images/128/star.png new file mode 100644 index 000000000..d51adfb17 Binary files /dev/null and b/docs/static/images/128/star.png differ diff --git a/docs/static/images/128/textedit.png b/docs/static/images/128/textedit.png new file mode 100644 index 000000000..7a9e2bc99 Binary files /dev/null and b/docs/static/images/128/textedit.png differ diff --git a/docs/static/images/128/whimper.png b/docs/static/images/128/whimper.png new file mode 100644 index 000000000..008bb45d7 Binary files /dev/null and b/docs/static/images/128/whimper.png differ diff --git a/docs/static/images/128/xcode.png b/docs/static/images/128/xcode.png new file mode 100644 index 000000000..7c85d2826 Binary files /dev/null and b/docs/static/images/128/xcode.png differ diff --git a/docs/static/images/background_blockquote.png b/docs/static/images/background_blockquote.png new file mode 100644 index 000000000..8267e23a2 Binary files /dev/null and b/docs/static/images/background_blockquote.png differ diff --git a/docs/static/images/background_menuitem.gif b/docs/static/images/background_menuitem.gif new file mode 100644 index 000000000..fa765d670 Binary files /dev/null and b/docs/static/images/background_menuitem.gif differ diff --git a/docs/static/images/background_menuitem_off.gif b/docs/static/images/background_menuitem_off.gif new file mode 100644 index 000000000..236cf406d Binary files /dev/null and b/docs/static/images/background_menuitem_off.gif differ diff --git a/docs/static/images/background_menuitem_shadow.gif b/docs/static/images/background_menuitem_shadow.gif new file mode 100644 index 000000000..95cfb820d Binary files /dev/null and b/docs/static/images/background_menuitem_shadow.gif differ diff --git a/docs/static/images/bookmarklet_demo.png b/docs/static/images/bookmarklet_demo.png new file mode 100644 index 000000000..0c7cbbecf Binary files /dev/null and b/docs/static/images/bookmarklet_demo.png differ diff --git a/docs/static/images/bookmarklet_trunk.png b/docs/static/images/bookmarklet_trunk.png new file mode 100644 index 000000000..01cd26ac0 Binary files /dev/null and b/docs/static/images/bookmarklet_trunk.png differ diff --git a/docs/static/images/button_download.png b/docs/static/images/button_download.png new file mode 100644 index 000000000..869a3dcee Binary files /dev/null and b/docs/static/images/button_download.png differ diff --git a/docs/static/images/copy_developers_developers_developers.gif b/docs/static/images/copy_developers_developers_developers.gif new file mode 100644 index 000000000..4ccb233d8 Binary files /dev/null and b/docs/static/images/copy_developers_developers_developers.gif differ diff --git a/docs/static/images/copy_get_easy_access.gif b/docs/static/images/copy_get_easy_access.gif new file mode 100644 index 000000000..959b222d4 Binary files /dev/null and b/docs/static/images/copy_get_easy_access.gif differ diff --git a/docs/static/images/copy_get_your_demos_here.gif b/docs/static/images/copy_get_your_demos_here.gif new file mode 100644 index 000000000..3ecd47c0c Binary files /dev/null and b/docs/static/images/copy_get_your_demos_here.gif differ diff --git a/docs/static/images/copy_latest_and_greatest.gif b/docs/static/images/copy_latest_and_greatest.gif new file mode 100644 index 000000000..058eb8eec Binary files /dev/null and b/docs/static/images/copy_latest_and_greatest.gif differ diff --git a/docs/static/images/copy_simplepie_documentation.gif b/docs/static/images/copy_simplepie_documentation.gif new file mode 100644 index 000000000..fa20f11f0 Binary files /dev/null and b/docs/static/images/copy_simplepie_documentation.gif differ diff --git a/docs/static/images/copy_simplepie_is_downloading_as_we_speak.gif b/docs/static/images/copy_simplepie_is_downloading_as_we_speak.gif new file mode 100644 index 000000000..90e47f1ba Binary files /dev/null and b/docs/static/images/copy_simplepie_is_downloading_as_we_speak.gif differ diff --git a/docs/static/images/copy_support.gif b/docs/static/images/copy_support.gif new file mode 100644 index 000000000..3c4ce5bf3 Binary files /dev/null and b/docs/static/images/copy_support.gif differ diff --git a/docs/static/images/copy_weblog.gif b/docs/static/images/copy_weblog.gif new file mode 100644 index 000000000..c3fdf1ac5 Binary files /dev/null and b/docs/static/images/copy_weblog.gif differ diff --git a/docs/static/images/feature_feed.png b/docs/static/images/feature_feed.png new file mode 100644 index 000000000..b07e4a184 Binary files /dev/null and b/docs/static/images/feature_feed.png differ diff --git a/docs/static/images/firefox_feed_handler.png b/docs/static/images/firefox_feed_handler.png new file mode 100644 index 000000000..54d97ee39 Binary files /dev/null and b/docs/static/images/firefox_feed_handler.png differ diff --git a/docs/static/images/headers/simple.png b/docs/static/images/headers/simple.png new file mode 100644 index 000000000..5665ded78 Binary files /dev/null and b/docs/static/images/headers/simple.png differ diff --git a/docs/static/images/icon_exclaim.gif b/docs/static/images/icon_exclaim.gif new file mode 100644 index 000000000..6e50e2eec Binary files /dev/null and b/docs/static/images/icon_exclaim.gif differ diff --git a/docs/static/images/logo_simplepie_horizontal.png b/docs/static/images/logo_simplepie_horizontal.png new file mode 100644 index 000000000..0f4abd9a0 Binary files /dev/null and b/docs/static/images/logo_simplepie_horizontal.png differ diff --git a/docs/static/images/logo_simplepie_template.png b/docs/static/images/logo_simplepie_template.png new file mode 100644 index 000000000..34cfc8904 Binary files /dev/null and b/docs/static/images/logo_simplepie_template.png differ diff --git a/docs/static/images/mini/book_open.png b/docs/static/images/mini/book_open.png new file mode 100644 index 000000000..7d863f949 Binary files /dev/null and b/docs/static/images/mini/book_open.png differ diff --git a/docs/static/images/mini/chart_organisation.png b/docs/static/images/mini/chart_organisation.png new file mode 100644 index 000000000..c32d25c16 Binary files /dev/null and b/docs/static/images/mini/chart_organisation.png differ diff --git a/docs/static/images/mini/feed.png b/docs/static/images/mini/feed.png new file mode 100644 index 000000000..e23c50c85 Binary files /dev/null and b/docs/static/images/mini/feed.png differ diff --git a/docs/static/images/mini/plugin.png b/docs/static/images/mini/plugin.png new file mode 100644 index 000000000..6187b15ae Binary files /dev/null and b/docs/static/images/mini/plugin.png differ diff --git a/docs/static/images/mini/simplepie.png b/docs/static/images/mini/simplepie.png new file mode 100644 index 000000000..eb04ad5f1 Binary files /dev/null and b/docs/static/images/mini/simplepie.png differ diff --git a/docs/static/images/mini/star.png b/docs/static/images/mini/star.png new file mode 100644 index 000000000..b88c85789 Binary files /dev/null and b/docs/static/images/mini/star.png differ diff --git a/docs/static/images/mini/time.png b/docs/static/images/mini/time.png new file mode 100644 index 000000000..911da3f1d Binary files /dev/null and b/docs/static/images/mini/time.png differ diff --git a/docs/static/images/mini/world.png b/docs/static/images/mini/world.png new file mode 100644 index 000000000..68f21d301 Binary files /dev/null and b/docs/static/images/mini/world.png differ diff --git a/docs/static/images/mini/wrench.png b/docs/static/images/mini/wrench.png new file mode 100644 index 000000000..5c8213fef Binary files /dev/null and b/docs/static/images/mini/wrench.png differ diff --git a/docs/static/images/top_gradient.gif b/docs/static/images/top_gradient.gif new file mode 100644 index 000000000..f77bd38f9 Binary files /dev/null and b/docs/static/images/top_gradient.gif differ diff --git a/docs/static/images/twitter.png b/docs/static/images/twitter.png new file mode 100644 index 000000000..13eb06d97 Binary files /dev/null and b/docs/static/images/twitter.png differ diff --git a/docs/static/robots.txt b/docs/static/robots.txt new file mode 100644 index 000000000..dfd7b1ba5 --- /dev/null +++ b/docs/static/robots.txt @@ -0,0 +1,2 @@ +User-agent: * +Disallow: /demo \ No newline at end of file diff --git a/docs/templates/blog.html b/docs/templates/blog.html new file mode 100644 index 000000000..12d0ec177 --- /dev/null +++ b/docs/templates/blog.html @@ -0,0 +1,15 @@ +{% extends 'layout.html' %} + +{% block title %}{{ section.title }}{% endblock title %} + +{% block content %} +{% for post in section.pages %} +

    {{ post.title }}

    + {% if post.summary %} + {{ post.summary | safe }} + {% else %} + {{ post.content | safe }} + {% endif %} +

    Posted by {{ post.extra.author }} on {{ post.date | date(format="%B %e, %Y at %H:%M") }}.

    +{% endfor %} +{% endblock content %} diff --git a/docs/templates/index.html b/docs/templates/index.html new file mode 100644 index 000000000..85ff39262 --- /dev/null +++ b/docs/templates/index.html @@ -0,0 +1,7 @@ +{% extends 'layout.html' %} + +{% block title %}{{ section.title }}{% endblock title %} + +{% block content %} +{{ section.content | safe }} +{% endblock content %} diff --git a/docs/templates/layout.html b/docs/templates/layout.html new file mode 100644 index 000000000..227f355e5 --- /dev/null +++ b/docs/templates/layout.html @@ -0,0 +1,175 @@ +{% import 'macros.html' as macros %} + +{% set section_title = config.title ~ ':' %} +{% if current_path == '/' %} +{% set body_id = 'bodyoverview' %} +{% elif current_path is starting_with('/api/') %} +{% set section_title = '' %} +{% set body_id = 'apidocs' %} +{% elif current_path is starting_with('/blog/') %} +{% set section_title = 'SimplePie Weblog »' %} +{% set body_id = 'bodyblog' %} +{% elif current_path is starting_with('/demo/') %} +{% set body_id = 'bodydemo' %} +{% elif current_path is starting_with('/development/') %} +{% set body_id = 'bodycommunity' %} +{% elif current_path is starting_with('/downloads/') %} +{% set body_id = 'bodydownloads' %} +{% elif current_path is starting_with('/support/') %} +{% set body_id = 'bodysupport' %} +{% elif current_path is starting_with('/wiki/') %} +{% set body_id = 'bodydocs' %} +{% set section_title = 'SimplePie Documentation:' %} +{% endif %} +{% if section %} +{% set section_or_page = section %} +{% else %} +{% set section_or_page = page %} +{% endif %} + + +{{ section_title }} {% if current_path == '/' %}Super-fast, easy-to-use, RSS and Atom feed parsing in PHP.{% else %}{% block title %}{% endblock title %}{% endif %} + + + + + + + + + + + + + + + + + + + + + + + + + +{% if current_path is starting_with('/api/') %} + + +{% elif current_path is starting_with('/wiki/') %} + +{% endif %} + +{% if current_path == '/' %} + +{% endif %} + + + + + + + + +{% if current_path == '/' %} +
    +
    + +
    +
    + +
    +

    We need developer help! Fork it, fix it, we'll pull it — on GitHub.

    +
    +{% endif %} + +
    + +
    + {% if current_path is starting_with('/blog/') %} +
    +

    SimplePie Developer Weblog.  Not that we really have anything to say, but if you'll listen, why not?

    +
    + {% elif current_path is starting_with('/wiki/') %} +
    +

    SimplePie Documentation.  Learn how to use this thing.  It's way better than going to school.

    +
    + + +

    + You are here: + {% for section_path in section_or_page.ancestors | slice(start=1) %} + {% set parent_section = get_section(path=section_path) %} + {% if not loop.first %}»{% endif %} + {{ parent_section.title }} + {% endfor %} + {% if section_or_page.path != '/wiki/' %}»{% endif %} + {{ section_or_page.title }} +

    + {% endif %} + + {% if not page.extra.chunky %}
    {% endif %} + {% if current_path is starting_with('/wiki/') %} +
    +
    Table of Contents
    +
    + {{ macros::toc(headers=section_or_page.toc) }} +
    +
    +

    {% block title %}{% endblock title %}

    + {% endif %} + {% if page.extra.cover_image %}
    {{ page.extra.cover_image_alt }}
    {% endif %} + {% block content %} + {% endblock content %} + {% if not page.extra.chunky %}
    {% endif %} + + +
    +
    + +{% if current_path == '/' %} + +{% endif %} + + + + diff --git a/docs/templates/macros.html b/docs/templates/macros.html new file mode 100644 index 000000000..8d2612155 --- /dev/null +++ b/docs/templates/macros.html @@ -0,0 +1,12 @@ +{% macro toc(headers) %} +
      +{% for header in headers %} +
    • + {{ header.title }} + {% if header.children %} + {{ self::toc(headers=header.children) }} + {% endif %} +
    • +{% endfor %} +
    +{% endmacro toc %} diff --git a/docs/templates/page.html b/docs/templates/page.html new file mode 100644 index 000000000..371b6ca97 --- /dev/null +++ b/docs/templates/page.html @@ -0,0 +1,7 @@ +{% extends 'layout.html' %} + +{% block title %}{{ page.title }}{% endblock title %} + +{% block content %} +{{ page.content | safe }} +{% endblock content %} diff --git a/docs/templates/post.html b/docs/templates/post.html new file mode 100644 index 000000000..1fc301bc2 --- /dev/null +++ b/docs/templates/post.html @@ -0,0 +1,7 @@ +{% extends 'page.html' %} + +{% block content %} +

    {{ page.title }}

    + {{ page.content | safe }} +

    Posted by {{ page.extra.author }} on {{ page.date | date(format="%B %e, %Y at %H:%M") }}.

    +{% endblock content %} diff --git a/docs/templates/section.html b/docs/templates/section.html new file mode 100644 index 000000000..85ff39262 --- /dev/null +++ b/docs/templates/section.html @@ -0,0 +1,7 @@ +{% extends 'layout.html' %} + +{% block title %}{{ section.title }}{% endblock title %} + +{% block content %} +{{ section.content | safe }} +{% endblock content %} diff --git a/tests/data/.editorconfig b/tests/data/.editorconfig new file mode 100644 index 000000000..c09213c90 --- /dev/null +++ b/tests/data/.editorconfig @@ -0,0 +1,5 @@ +# https://EditorConfig.org + +# Do not format files in this directory. +# They are auto-generated or come from third parties. +root = true