mirror of
https://github.com/php/presentations.git
synced 2026-03-23 23:22:22 +01:00
- Added my phpworks slides.
This commit is contained in:
60
ezc-phpworks6.xml
Normal file
60
ezc-phpworks6.xml
Normal file
@@ -0,0 +1,60 @@
|
||||
<?xml version="1.0" encoding="iso-8859-1"?>
|
||||
<presentation
|
||||
template="css"
|
||||
navmode="html"
|
||||
navbarbackground="#4373b4"
|
||||
navbartopiclinks="0"
|
||||
navColor="#f1fbff"
|
||||
logo1=""
|
||||
stylesheet="presentations/slides/perf/ezp.css"
|
||||
backgroundfixed="1" >
|
||||
<topic>Component Libraries</topic>
|
||||
<title>eZ components</title>
|
||||
<event>php|works 2006</event>
|
||||
<location>Toronto, Canada</location>
|
||||
<date>September 14th, 2006</date>
|
||||
<speaker>Derick Rethans</speaker>
|
||||
<email>dr@ez.no</email>
|
||||
<url>http://files.derickrethans.nl/ezc-phpworks6.pdf</url>
|
||||
<slide>slides/ezc/title-ezc-generic.xml</slide>
|
||||
|
||||
<!-- introduction -->
|
||||
<slide>slides/toolbox/goals-library.xml</slide>
|
||||
|
||||
<!-- overview -->
|
||||
<slide>slides/ezc/overview.xml</slide>
|
||||
<slide>slides/toolbox/dependencies.xml</slide>
|
||||
<slide>slides/ezc/install-download.xml</slide>
|
||||
<slide>slides/ezc/install-pear.xml</slide>
|
||||
|
||||
<slide>slides/ezc/example-consoletools-table.xml</slide>
|
||||
<slide>slides/ezc/example-consoletools-progressbar.xml</slide>
|
||||
|
||||
<slide>slides/ezc/example-eventlog.xml</slide>
|
||||
|
||||
<slide>slides/ezc/example-database-instance.xml</slide>
|
||||
<slide>slides/ezc/example-database-query.xml</slide>
|
||||
<slide>slides/ezc/example-persistentobject.xml</slide>
|
||||
|
||||
<slide>slides/ezc/example-imageconversion.xml</slide>
|
||||
<slide>slides/ezc/example-imageconversion2.xml</slide>
|
||||
|
||||
<slide>slides/ezc/example-mail.xml</slide>
|
||||
<slide>slides/ezc/example-mail-parse.xml</slide>
|
||||
<slide>slides/ezc/example-mail-summary.xml</slide>
|
||||
|
||||
<slide>slides/ezc/example-template-mail.xml</slide>
|
||||
|
||||
<slide>slides/ezc/example-graph.xml</slide>
|
||||
<slide>slides/ezc/example-graph-result.xml</slide>
|
||||
<slide>slides/ezc/example-graph2.xml</slide>
|
||||
<slide>slides/ezc/example-graph2-result.xml</slide>
|
||||
|
||||
<slide>slides/ezc/example-feed.xml</slide>
|
||||
<slide>slides/ezc/example-feed2.xml</slide>
|
||||
|
||||
<!-- what's next? -->
|
||||
<slide>slides/ezc/future-1.1-1.2.xml</slide>
|
||||
<slide>slides/ezc/contributing.xml</slide>
|
||||
<slide>slides/ezc/questions.xml</slide>
|
||||
</presentation>
|
||||
72
filter-phpworks6.xml
Normal file
72
filter-phpworks6.xml
Normal file
@@ -0,0 +1,72 @@
|
||||
<?xml version="1.0" encoding="iso-8859-1"?>
|
||||
<presentation
|
||||
template="css"
|
||||
navmode="html"
|
||||
navbarbackground="#4373b4"
|
||||
navbartopiclinks="0"
|
||||
navColor="#f1fbff"
|
||||
logo1=""
|
||||
stylesheet="presentations/slides/perf/ezp.css"
|
||||
backgroundfixed="1" >
|
||||
<topic>Security</topic>
|
||||
<title>Input Filter</title>
|
||||
<event>php|works 2006</event>
|
||||
<location>Toronto, Canada</location>
|
||||
<date>Sept 14th, 2006</date>
|
||||
<speaker>Derick Rethans</speaker>
|
||||
<email>dr@ez.no</email>
|
||||
<url>http://derickrethans.nl/talks.php</url>
|
||||
<slide>slides/input-filter/title.xml</slide>
|
||||
|
||||
<!-- SQL Injection / XSS Intro -->
|
||||
<slide>slides/input-filter/what-is-wrong1.xml</slide>
|
||||
<slide>slides/input-filter/what-is-wrong2.xml</slide>
|
||||
|
||||
<!-- Solutions -->
|
||||
<slide>slides/input-filter/casting.xml</slide>
|
||||
<slide>slides/input-filter/filtering.xml</slide>
|
||||
|
||||
<!-- Server solution -->
|
||||
<slide>slides/input-filter/bastions.xml</slide>
|
||||
<slide>slides/input-filter/mod_security.xml</slide> <!-- mod_security -->
|
||||
<slide>slides/input-filter/bastions2.xml</slide>
|
||||
<slide>slides/input-filter/sapi-input-filter.xml</slide> <!-- sapi input filter -->
|
||||
|
||||
<slide>slides/input-filter/filter-none.xml</slide> <!-- current status -->
|
||||
<slide>slides/input-filter/filter-strip-all.xml</slide> <!-- rasmus 1st filter suggestion (strip all, raw accessor) -->
|
||||
<slide>slides/input-filter/filter-accessor.xml</slide> <!-- rasmus 2st filter suggestion (accessor only) -->
|
||||
|
||||
<slide>slides/input-filter/php52.xml</slide>
|
||||
<slide>slides/input-filter/default-filter.xml</slide>
|
||||
|
||||
<slide>slides/input-filter/functions-and-common-flags.xml</slide>
|
||||
<slide>slides/input-filter/functions-and-common-flags-array.xml</slide>
|
||||
<slide>slides/input-filter/functions-get-args.xml</slide>
|
||||
<slide>slides/input-filter/functions-filter-data.xml</slide>
|
||||
|
||||
<slide>slides/input-filter/sanitizing-filters.xml</slide>
|
||||
<slide>slides/input-filter/filter-s-string.xml</slide>
|
||||
<slide>slides/input-filter/filter-s-encoded.xml</slide>
|
||||
<slide>slides/input-filter/filter-s-special-chars.xml</slide>
|
||||
<slide>slides/input-filter/filter-s-unsafe-raw.xml</slide>
|
||||
<slide>slides/input-filter/filter-s-email.xml</slide>
|
||||
<slide>slides/input-filter/filter-s-url.xml</slide>
|
||||
<slide>slides/input-filter/filter-s-number-int.xml</slide>
|
||||
<slide>slides/input-filter/filter-s-number-float.xml</slide>
|
||||
<slide>slides/input-filter/filter-s-magic-quotes.xml</slide>
|
||||
|
||||
<slide>slides/input-filter/validating-filters.xml</slide>
|
||||
<slide>slides/input-filter/filter-v-int.xml</slide>
|
||||
<slide>slides/input-filter/filter-v-boolean.xml</slide>
|
||||
<slide>slides/input-filter/filter-v-float.xml</slide>
|
||||
<slide>slides/input-filter/filter-v-regexp.xml</slide>
|
||||
<slide>slides/input-filter/filter-v-validate-url.xml</slide>
|
||||
<slide>slides/input-filter/filter-v-validate-email.xml</slide>
|
||||
<slide>slides/input-filter/filter-v-validate-ip.xml</slide>
|
||||
|
||||
<slide>slides/input-filter/callback-filter.xml</slide>
|
||||
<slide>slides/input-filter/filter-c-callback.xml</slide>
|
||||
|
||||
<slide>slides/input-filter/resources.xml</slide>
|
||||
|
||||
</presentation>
|
||||
42
ranting-phpworks6.xml
Normal file
42
ranting-phpworks6.xml
Normal file
@@ -0,0 +1,42 @@
|
||||
<?xml version="1.0" encoding="iso-8859-1"?>
|
||||
<presentation
|
||||
template="css"
|
||||
navmode="html"
|
||||
navbarbackground="#4373b4"
|
||||
navbartopiclinks="0"
|
||||
navColor="#f1fbff"
|
||||
logo1=""
|
||||
stylesheet="presentations/slides/perf/ezp.css"
|
||||
backgroundfixed="1" >
|
||||
<topic>PHP</topic>
|
||||
<title>Derick's Ranting Hour</title>
|
||||
<event>php|works</event>
|
||||
<location>Toronto, Canada</location>
|
||||
<date>September 14th, 2006</date>
|
||||
<speaker>Derick Rethans</speaker>
|
||||
<email>derick@php.net</email>
|
||||
<url>http://files.derickrethans.nl/ranting-phptek6.pdf</url>
|
||||
<slide>slides/ranting/title.xml</slide>
|
||||
|
||||
<slide>slides/ranting/disclaimer.xml</slide>
|
||||
<slide>slides/ranting/not-about-me.xml</slide>
|
||||
<slide>slides/ranting/whos-first.xml</slide>
|
||||
|
||||
<slide>slides/ranting/title-language.xml</slide>
|
||||
<slide>slides/ranting/case-sensivity.xml</slide>
|
||||
<slide>slides/ranting/argument-order.xml</slide>
|
||||
<!--<slide>slides/ranting/array_merge.xml</slide>-->
|
||||
<slide>slides/ranting/goto.xml</slide>
|
||||
<slide>slides/ranting/namespaces.xml</slide>
|
||||
|
||||
<slide>slides/ranting/title-ecosystem.xml</slide>
|
||||
<slide>slides/ranting/we-do-our-best.xml</slide>
|
||||
<slide>slides/ranting/bad-bugreports.xml</slide>
|
||||
<slide>slides/ranting/bad-bugreports2.xml</slide>
|
||||
<slide>slides/ranting/we-re-voluteers.xml</slide>
|
||||
<slide>slides/ranting/we-re-voluteers2.xml</slide>
|
||||
<slide>slides/ranting/we-re-voluteers3.xml</slide>
|
||||
<slide>slides/ranting/journalists.xml</slide>
|
||||
<slide>slides/ranting/php-but-not.xml</slide>
|
||||
|
||||
</presentation>
|
||||
@@ -1,5 +1,5 @@
|
||||
<?xml version="1.0" encoding="iso-8859-1"?>
|
||||
<slide fontsize="6em">
|
||||
<slide>
|
||||
<title>License and Contributing</title>
|
||||
<subtitle>Clean IP, Open Source friendly</subtitle>
|
||||
|
||||
|
||||
@@ -1,32 +1,32 @@
|
||||
<?php
|
||||
$stats = array(
|
||||
200401 => array(14699098, 1330821),
|
||||
200402 => array(15205474, 1330021),
|
||||
200403 => array(15054623, 1335263),
|
||||
200404 => array(15528732, 1343899),
|
||||
200405 => array(15896330, 1341729),
|
||||
200406 => array(16251453, 1346521),
|
||||
200407 => array(16369503, 1340909),
|
||||
200408 => array(16946328, 1348793),
|
||||
200409 => array(17245242, 1338970),
|
||||
200410 => array(17245242, 1338970), /* No data from Netcraft this month */
|
||||
200411 => array(17245242, 1338970), /* No data from Netcraft this month */
|
||||
200412 => array(17826404, 1318739),
|
||||
200401 => array(14.699098, 1.330821),
|
||||
200402 => array(15.205474, 1.330021),
|
||||
200403 => array(15.054623, 1.335263),
|
||||
200404 => array(15.528732, 1.343899),
|
||||
200405 => array(15.896330, 1.341729),
|
||||
200406 => array(16.251453, 1.346521),
|
||||
200407 => array(16.369503, 1.340909),
|
||||
200408 => array(16.946328, 1.348793),
|
||||
200409 => array(17.245242, 1.338970),
|
||||
200410 => array(17.245242, 1.338970), /* No data from Netcraft this month */
|
||||
200411 => array(17.245242, 1.338970), /* No data from Netcraft this month */
|
||||
200412 => array(17.826404, 1.318739),
|
||||
|
||||
200501 => array(18455683, 1317871),
|
||||
200502 => array(18827149, 1307980),
|
||||
200503 => array(19279566, 1303710),
|
||||
200504 => array(19720597, 1310181),
|
||||
200505 => array(20157542, 1303750),
|
||||
200506 => array(20478778, 1299068),
|
||||
200507 => array(21466638, 1293874),
|
||||
200508 => array(22267442, 1291738),
|
||||
200509 => array(22167075, 1283102),
|
||||
200510 => array(23299550, 1290179),
|
||||
200511 => array(21952457, 1277364),
|
||||
200512 => array(22172983, 1277375),
|
||||
200601 => array(20285205, 1278151),
|
||||
200602 => array(21340831, 1268048),
|
||||
200501 => array(18.455683, 1.317871),
|
||||
200502 => array(18.827149, 1.307980),
|
||||
200503 => array(19.279566, 1.303710),
|
||||
200504 => array(19.720597, 1.310181),
|
||||
200505 => array(20.157542, 1.303750),
|
||||
200506 => array(20.478778, 1.299068),
|
||||
200507 => array(21.466638, 1.293874),
|
||||
200508 => array(22.267442, 1.291738),
|
||||
200509 => array(22.167075, 1.283102),
|
||||
200510 => array(23.299550, 1.290179),
|
||||
200511 => array(21.952457, 1.277364),
|
||||
200512 => array(22.172983, 1.277375),
|
||||
200601 => array(20.285205, 1.278151),
|
||||
200602 => array(21.340831, 1.268048),
|
||||
);
|
||||
|
||||
$domains = array();
|
||||
|
||||
6
slides/ezc/example-feed2.xml
Normal file
6
slides/ezc/example-feed2.xml
Normal file
@@ -0,0 +1,6 @@
|
||||
<slide>
|
||||
<title>Feed</title>
|
||||
<subtitle>Reading</subtitle>
|
||||
|
||||
<example filename='feed2.php' result="1"/>
|
||||
</slide>
|
||||
@@ -2,6 +2,6 @@
|
||||
<title>Graph</title>
|
||||
<subtitle>Pie chart - Result</subtitle>
|
||||
|
||||
<image filename='graph2.png'/>
|
||||
<image filename='graph5.png'/>
|
||||
|
||||
</slide>
|
||||
|
||||
@@ -2,5 +2,5 @@
|
||||
<title>Mail</title>
|
||||
<subtitle>Retrieving and Parsing Mail</subtitle>
|
||||
|
||||
<example filename='mail-parse.php' result="1"/>
|
||||
<example filename='mail-parse2.php' result="1"/>
|
||||
</slide>
|
||||
|
||||
22
slides/ezc/example-mail-summary.xml
Normal file
22
slides/ezc/example-mail-summary.xml
Normal file
@@ -0,0 +1,22 @@
|
||||
<?xml version="1.0" encoding="iso-8859-1"?>
|
||||
<slide fontsize="6em">
|
||||
<title>Mail</title>
|
||||
|
||||
<blurb>Parsing from:</blurb>
|
||||
<list>
|
||||
<bullet>POP3 Servers</bullet>
|
||||
<bullet>IMAP Servers</bullet>
|
||||
<bullet>MBOX Files</bullet>
|
||||
<bullet>Single Mail Files</bullet>
|
||||
<bullet>Variables</bullet>
|
||||
</list>
|
||||
|
||||
<blurb>Supported formats:</blurb>
|
||||
<list>
|
||||
<bullet>multipart/alternative: text/html mail</bullet>
|
||||
<bullet>multipart/mixed: attachments</bullet>
|
||||
<bullet>multipart/related: HTML mail with inline images</bullet>
|
||||
<bullet>multipart/digest: mailinglist digests</bullet>
|
||||
</list>
|
||||
|
||||
</slide>
|
||||
13
slides/ezc/example-template-mail.xml
Normal file
13
slides/ezc/example-template-mail.xml
Normal file
@@ -0,0 +1,13 @@
|
||||
<slide>
|
||||
<title>Template</title>
|
||||
|
||||
<example filename='template-mail/oneonly.php'/>
|
||||
<example filename='template-mail/listing.ezt'/>
|
||||
|
||||
<list>
|
||||
<bullet>Variable scoping per file</bullet>
|
||||
<bullet>Output contexts</bullet>
|
||||
<bullet>Custom extensions: functions, blocks</bullet>
|
||||
<bullet>Compiled to PHP code</bullet>
|
||||
</list>
|
||||
</slide>
|
||||
@@ -3,7 +3,7 @@
|
||||
require 'ezc-setup.php';
|
||||
|
||||
// setup feed and content module
|
||||
$feed = ezcFeed::create( 'rss2' );
|
||||
$feed = new ezcFeed( 'rss2' );
|
||||
$feed->title = 'eZ components release feed';
|
||||
$feed->link = 'http://components.ez.no/';
|
||||
$feed->description = <<<ENDL
|
||||
|
||||
17
slides/ezc/feed2.php
Normal file
17
slides/ezc/feed2.php
Normal file
@@ -0,0 +1,17 @@
|
||||
<?php
|
||||
require 'ezc-setup.php';
|
||||
|
||||
$feed = new ezcFeed( 'rss2' );
|
||||
try {
|
||||
$feed = ezcFeed::parse( 'http://components.ez.no/rss/rss2.xml' );
|
||||
} catch ( Exception $e ) {
|
||||
$feed = ezcFeed::parse( dirname( __FILE__ ) . '/rss2.xml' );
|
||||
}
|
||||
|
||||
echo "<b>{$feed->title}</b><br/><br/>\n";
|
||||
foreach( $feed->items as $item )
|
||||
{
|
||||
echo "<a href='{$item->link}'>{$item->title}</a><br/>";
|
||||
echo $item->Content->encoded, "<br/>";
|
||||
}
|
||||
?>
|
||||
@@ -5,7 +5,6 @@
|
||||
|
||||
<blurb>New components:</blurb>
|
||||
<list>
|
||||
<bullet>*ContentDiff*</bullet>
|
||||
<bullet>*Feed*: RSS/ATOM feeds</bullet>
|
||||
<bullet>*Graph*: Graphs and diagrams</bullet>
|
||||
<bullet>*SignalObserver*: IPC for PHP applications</bullet>
|
||||
@@ -16,9 +15,9 @@
|
||||
<list>
|
||||
<bullet>*Database*: Oracle support</bullet>
|
||||
<bullet>*DatabaseSchema*: Support for SQLite, PostgreSQL and Oracle</bullet>
|
||||
<bullet>*Mail*: More authentication mechanisms</bullet>
|
||||
<bullet>*Mail*: IMAP transport</bullet>
|
||||
<bullet>*PersistentObject*: Class relations</bullet>
|
||||
<bullet>*Template*: Custom functions and character set support</bullet>
|
||||
<bullet>*Template*: Custom functions, caching and character set support</bullet>
|
||||
</list>
|
||||
|
||||
</slide>
|
||||
|
||||
@@ -1,30 +1,26 @@
|
||||
<?php
|
||||
require 'ezc-setup.php';
|
||||
header( 'Content-Type: image/svg+xml' );
|
||||
list( $domains, $ips ) = require 'data-graph1.php';
|
||||
|
||||
$chart = ezcGraph::create( 'Line' );
|
||||
$chart = new ezcGraphLineChart();
|
||||
|
||||
$chart->title = 'PHP Usage Statistics';
|
||||
$chart->palette = 'Tango';
|
||||
$chart->options->padding = 10;
|
||||
$chart->palette = new ezcGraphPaletteTango();
|
||||
$chart->options->fillLines = 230;
|
||||
|
||||
$chart->legend->symbolSize = 7;
|
||||
$chart->legend->title = "Legend";
|
||||
$chart->legend->padding = 3;
|
||||
|
||||
$chart->options->font = dirname(__FILE__) . '/font.ttf';
|
||||
$chart->xAxis->font->maxFontSize = 10;
|
||||
$chart->yAxis->grid = '#aaaaaa';
|
||||
$chart->yAxis->axisSpace = 0.2;
|
||||
$chart->xAxis->font->maxFontSize = 12;
|
||||
$chart->yAxis->font->maxFontSize = 12;
|
||||
$chart->title->font->maxFontSize = 20;
|
||||
|
||||
$chart['domains'] = $domains;
|
||||
$chart['domains']->label = 'Domains';
|
||||
$chart['ips'] = $ips;
|
||||
$chart['ips']->label = 'IP addresses';
|
||||
$chart->data['domains'] = new ezcGraphArrayDataSet( $domains );
|
||||
$chart->data['domains']->label = 'Domains';
|
||||
$chart->data['ips'] = new ezcGraphArrayDataSet( $ips );
|
||||
$chart->data['ips']->label = 'IP addresses';
|
||||
|
||||
$chart->driver = new ezcGraphGdDriver();
|
||||
$chart->render( 700, 400, '/tmp/graph1.png' );
|
||||
$chart->driver = new ezcGraphSvgDriver();
|
||||
$chart->render( 700, 400, 'php://output' );
|
||||
|
||||
?>
|
||||
|
||||
Binary file not shown.
|
Before Width: | Height: | Size: 178 KiB After Width: | Height: | Size: 35 KiB |
2
slides/ezc/graph1.svg
Normal file
2
slides/ezc/graph1.svg
Normal file
File diff suppressed because one or more lines are too long
|
After Width: | Height: | Size: 24 KiB |
@@ -1,24 +1,30 @@
|
||||
<?php
|
||||
require 'ezc-setup.php';
|
||||
|
||||
$chart = ezcGraph::create( 'Pie' );
|
||||
$chart = new ezcGraphPieChart();
|
||||
$chart->title = 'Browser Partitioning';
|
||||
$chart->palette = 'Tango';
|
||||
|
||||
$chart['browser'] = array(
|
||||
'Firefox' => 10001,
|
||||
$chart->data['browser'] = new ezcGraphArrayDataSet( array(
|
||||
'IE5' => 698,
|
||||
'IE6' => 17383,
|
||||
'IE7' => 708,
|
||||
'Firefox' => 10001,
|
||||
'Netscape' => 871,
|
||||
'Opera' => 584,
|
||||
);
|
||||
$chart['browser']->highlight['Firefox'] = true;
|
||||
) );
|
||||
$chart->data['browser']->highlight['Firefox'] = true;
|
||||
|
||||
$chart->title->font = dirname(__FILE__) . '/font.ttf';
|
||||
$chart->title->font->maxFontSize = 20;
|
||||
$chart->driver = new ezcGraphGdDriver();
|
||||
$chart->options->font = dirname(__FILE__) . '/font.ttf';
|
||||
$chart->options->maxLabelHeight = 0.08;
|
||||
$chart->render( 700, 400, '/tmp/graph2.png' );
|
||||
$chart->driver = new ezcGraphSvgDriver();
|
||||
|
||||
$chart->renderer = new ezcGraphRenderer3d();
|
||||
$chart->renderer->options->pieChartShadowSize = 10;
|
||||
$chart->renderer->options->pieChartGleam = .5;
|
||||
$chart->renderer->options->dataBorder = false;
|
||||
$chart->renderer->options->pieChartHeight = 16;
|
||||
$chart->renderer->options->legendSymbolGleam = .5;
|
||||
|
||||
$chart->renderer->options->pieChartOffset = 180;
|
||||
|
||||
header( 'Content-Type: image/svg+xml' );
|
||||
$chart->render( 560, 200, 'php://output' );
|
||||
?>
|
||||
|
||||
BIN
slides/ezc/graph5.png
Normal file
BIN
slides/ezc/graph5.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 42 KiB |
140
slides/ezc/mail-example.mail
Normal file
140
slides/ezc/mail-example.mail
Normal file
@@ -0,0 +1,140 @@
|
||||
From SRS0=pEPq=6L=doe.com=john@php.net Fri Apr 21 14:05:23 2006
|
||||
Return-Path: <SRS0=pEPq=6L=doe.com=john@php.net>
|
||||
Received: from localhost (localhost [127.0.0.1])
|
||||
by kossu.home.derickrethans.nl (8.13.5/8.13.5/Debian-3) with ESMTP id k3LC5NEO000605
|
||||
for <derick@localhost>; Fri, 21 Apr 2006 14:05:23 +0200
|
||||
Received: from 127.0.0.1 [127.0.0.1]
|
||||
by localhost with POP3 (fetchmail-6.2.5.4)
|
||||
for derick@localhost (single-drop); Fri, 21 Apr 2006 14:05:23 +0200 (CEST)
|
||||
Received: from localhost (localhost [127.0.0.1])
|
||||
by jdi.jdi-ict.nl (8.13.6/8.12.11) with ESMTP id k3LC6CBx022340
|
||||
for <derick@[127.0.0.1]>; Fri, 21 Apr 2006 14:06:12 +0200
|
||||
Received: from osu1.php.net (osu1.php.net [140.211.166.39])
|
||||
by jdi.jdi-ict.nl (8.13.6/8.12.11) with ESMTP id k3LC69Dm013771
|
||||
for <php@derickrethans.nl>; Fri, 21 Apr 2006 14:06:10 +0200
|
||||
X-Host-Fingerprint: 194.248.150.25 dolly.ez.no Linux 2.4/2.6
|
||||
Received: from ([194.248.150.25:39348] helo=mta.ez.no)
|
||||
by osu1.php.net (ecelerity 2.0 r(6416M)) with SMTP
|
||||
id 40/D2-16427-A0CC8444 for <derick@php.net>; Fri, 21 Apr 2006 05:11:57 -0700
|
||||
Received: from jdi.jdi-ict.nl (jdi.jdi-ict.nl [82.94.239.5])
|
||||
by mta.ez.no (Postfix) with ESMTP id 930E148C019
|
||||
for <dr@ez.no>; Fri, 21 Apr 2006 08:03:23 +0200 (CEST)
|
||||
Received: from localhost (localhost [127.0.0.1])
|
||||
by jdi.jdi-ict.nl (8.13.6/8.12.11) with SMTP id k3LC609d009006
|
||||
for <dr@ez.no>; Fri, 21 Apr 2006 14:06:00 +0200
|
||||
From: John Doe <john@doe.com>
|
||||
To: Derick Rethans <dr@ez.no>
|
||||
Subject: Example of an HTML email with attachments
|
||||
MIME-Version: 1.0
|
||||
User-Agent: eZ components
|
||||
Date: Fri, 21 Apr 2006 14:04:46 +0200
|
||||
Message-Id: <2006042114142146.32705.2@doe.com>
|
||||
Content-Type: multipart/mixed; boundary="2006042114142145:32705:2"
|
||||
X-Virus-Scanned: by amavisd-new at jdi-ict.nl
|
||||
X-Bogosity: Yes, tests=bogofilter, spamicity=0.764894, version=0.96.0
|
||||
Status: R
|
||||
X-Status:
|
||||
X-Keywords:
|
||||
|
||||
This message is in MIME format. Since your mail reader does not understand
|
||||
this format, some or all of this message may not be legible.
|
||||
|
||||
--2006042114142145:32705:2
|
||||
Content-Type: multipart/alternative; boundary="2006042114142145:32705:1"
|
||||
|
||||
This message is in MIME format. Since your mail reader does not understand
|
||||
this format, some or all of this message may not be legible.
|
||||
|
||||
--2006042114142145:32705:1
|
||||
Content-Type: text/plain; charset=us-ascii
|
||||
Content-Transfer-Encoding: 8bit
|
||||
|
||||
Here is the text version of the mail.
|
||||
This is displayed if the client can not understand HTML
|
||||
--2006042114142145:32705:1
|
||||
Content-Type: multipart/related; boundary="2006042114142145:32705:0"
|
||||
|
||||
This message is in MIME format. Since your mail reader does not understand
|
||||
this format, some or all of this message may not be legible.
|
||||
|
||||
--2006042114142145:32705:0
|
||||
Content-Type: text/html; charset=us-ascii
|
||||
Content-Transfer-Encoding: 8bit
|
||||
|
||||
<html>
|
||||
Here is the HTML version of your mail
|
||||
with an image: <img src='cid:consoletools-table.png@1421450'/>
|
||||
</html>
|
||||
--2006042114142145:32705:0
|
||||
Content-Type: application/octet-stream; name="consoletools-table.png"
|
||||
Content-Disposition: attachment; filename="consoletools-table.png"
|
||||
Content-Transfer-Encoding: base64
|
||||
Content-ID: <consoletools-table.png@1421450>
|
||||
|
||||
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
|
||||
|
||||
--2006042114142145:32705:0--
|
||||
--2006042114142145:32705:1--
|
||||
--2006042114142145:32705:2
|
||||
Content-Type: application/octet-stream; name="mail.php"
|
||||
Content-Disposition: attachment; filename="mail.php"
|
||||
Content-Transfer-Encoding: base64
|
||||
|
||||
PD9waHAKcmVxdWlyZSAnZXpjLXNldHVwLnBocCc7CiRkaXIgPSBkaXJuYW1lKCBfX0ZJTEVfXyAp
|
||||
OwoKJG1haWwgPSBuZXcgZXpjTWFpbENvbXBvc2VyKCk7CiRtYWlsLT5mcm9tID0gbmV3IGV6Y01h
|
||||
aWxBZGRyZXNzKCAnam9obkBkb2UuY29tJywgJ0pvaG4gRG9lJyApOwokbWFpbC0+YWRkVG8oIG5l
|
||||
dyBlemNNYWlsQWRkcmVzcyggJ2RyQGV6Lm5vJywgJ0RlcmljayBSZXRoYW5zJyApICk7CgokbWFp
|
||||
bC0+c3ViamVjdCA9ICJFeGFtcGxlIG9mIGFuIEhUTUwgZW1haWwgd2l0aCBhdHRhY2htZW50cyI7
|
||||
CiRtYWlsLT5wbGFpblRleHQgPSAiSGVyZSBpcyB0aGUgdGV4dCB2ZXJzaW9uIG9mIHRoZSBtYWls
|
||||
LgpUaGlzIGlzIGRpc3BsYXllZCBpZiB0aGUgY2xpZW50IGNhbiBub3QgdW5kZXJzdGFuZCBIVE1M
|
||||
IjsKCiRtYWlsLT5odG1sVGV4dCA9IDw8PEVOREhUTUwKPGh0bWw+CkhlcmUgaXMgdGhlIEhUTUwg
|
||||
dmVyc2lvbiBvZiB5b3VyIG1haWwKd2l0aCBhbiBpbWFnZTogPGltZyBzcmM9J2ZpbGU6Ly8kZGly
|
||||
L2NvbnNvbGV0b29scy10YWJsZS5wbmcnLz4KPC9odG1sPgpFTkRIVE1MOwoKJG1haWwtPmFkZEF0
|
||||
dGFjaG1lbnQoICIkZGlyL21haWwucGhwIiApOwokbWFpbC0+YnVpbGQoKTsKCmVjaG8gIjxwcmU+
|
||||
PGZvbnQgc2l6ZT0nNCc+IiwKCWh0bWxzcGVjaWFsY2hhcnMoCgkJJG1haWwtPmdlbmVyYXRlSGVh
|
||||
ZGVycygpIC4gJG1haWwtPmdlbmVyYXRlQm9keSgpICk7CgkKJHRyYW5zcG9ydCA9IG5ldyBlemNN
|
||||
YWlsVHJhbnNwb3J0U210cCggJ2xvY2FsaG9zdCcsIG51bGwsIG51bGwsIDI1MjUgKTsKJHRyYW5z
|
||||
cG9ydC0+c2VuZCggJG1haWwgKTsKPz4K
|
||||
|
||||
--2006042114142145:32705:2--
|
||||
|
||||
10
slides/ezc/mail-parse2.php
Normal file
10
slides/ezc/mail-parse2.php
Normal file
@@ -0,0 +1,10 @@
|
||||
<pre><font size="4"><?php
|
||||
require 'ezc-setup.php';
|
||||
require 'mail-parse2b.php';
|
||||
|
||||
$set = new ezcMailFileSet( array( dirname( __FILE__ ) . "/mail-example.mail" ) );
|
||||
$parser = new ezcMailParser();
|
||||
$mail = $parser->parseMail( $set );
|
||||
echo htmlspecialchars( formatMail( $mail[0] ) );
|
||||
|
||||
?>
|
||||
155
slides/ezc/mail-parse2b.php
Normal file
155
slides/ezc/mail-parse2b.php
Normal file
@@ -0,0 +1,155 @@
|
||||
<?php
|
||||
function formatMail( $mail )
|
||||
{
|
||||
$t = '';
|
||||
$t .= "From: ". formatAddress( $mail->from ). "\n";
|
||||
$t .= "To: ". formatAddresses( $mail->to ). "\n";
|
||||
$t .= "Cc: ". formatAddresses( $mail->cc ). "\n";
|
||||
$t .= "Bcc: ". formatAddresses( $mail->bcc ). "\n";
|
||||
$t .= 'Date: '. date( DATE_RFC822, $mail->timestamp ). "\n";
|
||||
$t .= 'Subject: '. $mail->subject . "\n";
|
||||
$t .= "MessageId: ". $mail->messageID . "\n";
|
||||
$t .= "\n";
|
||||
$t .= formatMailPart( $mail->body );
|
||||
return $t;
|
||||
}
|
||||
|
||||
function formatMailPart( $part )
|
||||
{
|
||||
if ( $part instanceof ezcMail )
|
||||
return formatMail( $part );
|
||||
|
||||
if ( $part instanceof ezcMailText )
|
||||
return formatMailText( $part );
|
||||
|
||||
if ( $part instanceof ezcMailFile )
|
||||
return formatMailFile( $part );
|
||||
|
||||
if ( $part instanceof ezcMailRfc822Digest )
|
||||
return formatMailRfc822Digest( $part );
|
||||
|
||||
if ( $part instanceof ezcMailMultiPart )
|
||||
return formatMailMultipart( $part );
|
||||
|
||||
die( "No clue about the ". get_class( $part ) . "\n" );
|
||||
}
|
||||
|
||||
function formatMailMultipart( $part )
|
||||
{
|
||||
if ( $part instanceof ezcMailMultiPartAlternative )
|
||||
return formatMailMultipartAlternative( $part );
|
||||
|
||||
if ( $part instanceof ezcMailMultiPartDigest )
|
||||
return formatMailMultipartDigest( $part );
|
||||
|
||||
if ( $part instanceof ezcMailMultiPartRelated )
|
||||
return formatMailMultipartRelated( $part );
|
||||
|
||||
if ( $part instanceof ezcMailMultiPartMixed )
|
||||
return formatMailMultipartMixed( $part );
|
||||
|
||||
die( "No clue about the ". get_class( $part ) . "\n" );
|
||||
}
|
||||
|
||||
function formatMailMultipartMixed( $part )
|
||||
{
|
||||
$t = '';
|
||||
foreach ( $part->getParts() as $key => $alternativePart )
|
||||
{
|
||||
$t .= "-MIXED-$key------------------------------------------------------------------\n";
|
||||
$t .= formatMailPart( $alternativePart );
|
||||
}
|
||||
$t .= "-MIXED END----------------------------------------------------------\n";
|
||||
return $t;
|
||||
}
|
||||
|
||||
function formatMailMultipartRelated( $part )
|
||||
{
|
||||
$t = '';
|
||||
$t .= "-RELATED MAIN PART--------------------------------------------------------\n";
|
||||
$t .= formatMailPart( $part->getMainPart() );
|
||||
foreach ( $part->getRelatedParts() as $key => $alternativePart )
|
||||
{
|
||||
$t .= "-RELATED PART $key-----------------------------------------------------\n";
|
||||
$t .= formatMailPart( $alternativePart );
|
||||
}
|
||||
$t .= "-RELATED END--------------------------------------------------------\n";
|
||||
return $t;
|
||||
}
|
||||
|
||||
function formatMailMultipartDigest( $part )
|
||||
{
|
||||
$t = '';
|
||||
foreach ( $part->getParts() as $key => $alternativePart )
|
||||
{
|
||||
$t .= "-DIGEST-$key-----------------------------------------------------------------\n";
|
||||
$t .= formatMailPart( $alternativePart );
|
||||
}
|
||||
$t .= "-DIGEST END---------------------------------------------------------\n";
|
||||
return $t;
|
||||
}
|
||||
|
||||
function formatMailRfc822Digest( $part )
|
||||
{
|
||||
$t = '';
|
||||
$t .= "-DIGEST-ITEM-$key------------------------------------------------------------\n";
|
||||
$t .= "Item:\n\n";
|
||||
$t .= formatMailpart( $part->mail );
|
||||
$t .= "-DIGEST ITEM END----------------------------------------------------\n";
|
||||
return $t;
|
||||
}
|
||||
|
||||
function formatMailMultipartAlternative( $part )
|
||||
{
|
||||
$t = '';
|
||||
foreach ( $part->getParts() as $key => $alternativePart )
|
||||
{
|
||||
$t .= "-ALTERNATIVE ITEM $key-------------------------------------------------------\n";
|
||||
$t .= formatMailPart( $alternativePart );
|
||||
}
|
||||
$t .= "-ALTERNATIVE END----------------------------------------------------\n";
|
||||
return $t;
|
||||
}
|
||||
|
||||
function formatMailText( $part )
|
||||
{
|
||||
$t = '';
|
||||
$t .= "Original Charset: {$part->originalCharset}\n";
|
||||
$t .= "Charset: {$part->charset}\n";
|
||||
$t .= "Encoding: {$part->encoding}\n";
|
||||
$t .= "Type: {$part->subType}\n";
|
||||
$t .= "\n{$part->text}\n";
|
||||
return $t;
|
||||
}
|
||||
|
||||
function formatMailFile( $part )
|
||||
{
|
||||
$t = '';
|
||||
$t .= "Disposition Type: {$part->dispositionType}\n";
|
||||
$t .= "Content Type: {$part->contentType}\n";
|
||||
$t .= "Mime Type: {$part->mimeType}\n";
|
||||
$t .= "Content ID: {$part->contentId}\n";
|
||||
$t .= "Filename: {$part->fileName}\n";
|
||||
$t .= "\n";
|
||||
return $t;
|
||||
}
|
||||
|
||||
function formatAddresses( $addresses )
|
||||
{
|
||||
$fa = array();
|
||||
foreach( $addresses as $address )
|
||||
{
|
||||
$fa[] = formatAddress( $address );
|
||||
}
|
||||
return implode( ', ', $fa );
|
||||
}
|
||||
|
||||
function formatAddress( $address )
|
||||
{
|
||||
$name = '';
|
||||
if ( !empty( $address->name ) )
|
||||
{
|
||||
$name = "{$address->name} ";
|
||||
}
|
||||
return $name . "<{$address->email}>";
|
||||
}
|
||||
327
slides/ezc/rss2.xml
Normal file
327
slides/ezc/rss2.xml
Normal file
@@ -0,0 +1,327 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" version="2.0">
|
||||
<channel>
|
||||
<title>eZ components release feed</title>
|
||||
<link>http://components.ez.no/</link>
|
||||
<description>This feed shows all the latest components releases.</description>
|
||||
<language>en-us</language>
|
||||
<copyright>eZ systems A.S.</copyright>
|
||||
<pubDate>Thu, 07 Sep 2006 10:33:02 +0200</pubDate>
|
||||
<generator>eZ components</generator>
|
||||
<docs>http://www.rssboard.org/rss-specification</docs>
|
||||
<item>
|
||||
<title>UserInput 1.0.1</title>
|
||||
<link>http://ez.no/doc/components/view/latest/(file)/changelog_UserInput.html</link>
|
||||
<description>- Refactored to use the new ezcBaseStruct class.
|
||||
- Updated documentation.</description>
|
||||
<guid isPermalink="false">748488c4f9d3865afe665b165eb9d53d</guid>
|
||||
<pubDate>Mon, 28 Aug 2006 10:55:25 +0200</pubDate>
|
||||
<content:encoded><pre>- Refactored to use the new ezcBaseStruct class.
|
||||
- Updated documentation.</pre></content:encoded>
|
||||
</item>
|
||||
<item>
|
||||
<title>Translation 1.1.1</title>
|
||||
<link>http://ez.no/doc/components/view/latest/(file)/changelog_Translation.html</link>
|
||||
<description>- Refactored to use the new ezcBaseStruct class and properties approach.</description>
|
||||
<guid isPermalink="false">faad1aafd745f127db6fac3bc46c2a46</guid>
|
||||
<pubDate>Mon, 28 Aug 2006 10:55:20 +0200</pubDate>
|
||||
<content:encoded><pre>- Refactored to use the new ezcBaseStruct class and properties approach.</pre></content:encoded>
|
||||
</item>
|
||||
<item>
|
||||
<title>SystemInformation 1.0.1</title>
|
||||
<link>http://ez.no/doc/components/view/latest/(file)/changelog_SystemInformation.html</link>
|
||||
<description>- Refactored to use the new ezcBaseStruct class.</description>
|
||||
<guid isPermalink="false">4c105f21ef02e64fe2cd74a1e2110b93</guid>
|
||||
<pubDate>Mon, 28 Aug 2006 10:55:15 +0200</pubDate>
|
||||
<content:encoded><pre>- Refactored to use the new ezcBaseStruct class.</pre></content:encoded>
|
||||
</item>
|
||||
<item>
|
||||
<title>PhpGenerator 1.0.1</title>
|
||||
<link>http://ez.no/doc/components/view/latest/(file)/changelog_PhpGenerator.html</link>
|
||||
<description>- Updated documentation.
|
||||
- Refactored to use the new ezcBaseStruct class.</description>
|
||||
<guid isPermalink="false">a22978c5edc13a50d8cc58309efb1ad8</guid>
|
||||
<pubDate>Mon, 28 Aug 2006 10:55:10 +0200</pubDate>
|
||||
<content:encoded><pre>- Updated documentation.
|
||||
- Refactored to use the new ezcBaseStruct class.</pre></content:encoded>
|
||||
</item>
|
||||
<item>
|
||||
<title>Mail 1.1.2</title>
|
||||
<link>http://ez.no/doc/components/view/latest/(file)/changelog_Mail.html</link>
|
||||
<description>- Added the ezcMailPop3Transport::fetchByMessageNr() method that returns an
|
||||
ezcMailPop3Set containing the message with the specified number.
|
||||
- Fixed bug #8736: variable transport non-functional.
|
||||
- Fixed bug that caused the contentId property of the ezcMailFile class not to
|
||||
be set even if it was available for the related part while parsing
|
||||
multipart/related messages.
|
||||
- PHP 5.2 compatibility.</description>
|
||||
<guid isPermalink="false">fff8b66ee9d78e5ea96788b59965d5b8</guid>
|
||||
<pubDate>Mon, 28 Aug 2006 10:55:06 +0200</pubDate>
|
||||
<content:encoded><pre>- Added the ezcMailPop3Transport::fetchByMessageNr() method that returns an
|
||||
ezcMailPop3Set containing the message with the specified number.
|
||||
- Fixed <a href="http://ez.no/bugs/view/8736">bug #8736</a>: variable transport non-functional.
|
||||
- Fixed bug that caused the contentId property of the ezcMailFile class not to
|
||||
be set even if it was available for the related part while parsing
|
||||
multipart/related messages.
|
||||
- PHP 5.2 compatibility.</pre></content:encoded>
|
||||
</item>
|
||||
<item>
|
||||
<title>ImageConversion 1.1.1</title>
|
||||
<link>http://ez.no/doc/components/view/latest/(file)/changelog_ImageConversion.html</link>
|
||||
<description>- Fixed bug #8712: The x and y parameters for cropping where handled as
|
||||
coordinates and not as offsets.
|
||||
- Refactored to use new ezcBaseStruct and properties approach.</description>
|
||||
<guid isPermalink="false">9a452a5b0722bfe5549ca3e7baaf2267</guid>
|
||||
<pubDate>Mon, 28 Aug 2006 10:55:04 +0200</pubDate>
|
||||
<content:encoded><pre>- Fixed <a href="http://ez.no/bugs/view/8712">bug #8712</a>: The x and y parameters for cropping where handled as
|
||||
coordinates and not as offsets.
|
||||
- Refactored to use new ezcBaseStruct and properties approach.</pre></content:encoded>
|
||||
</item>
|
||||
<item>
|
||||
<title>Execution 1.0.1</title>
|
||||
<link>http://ez.no/doc/components/view/latest/(file)/changelog_Execution.html</link>
|
||||
<description>- Documentation updates.</description>
|
||||
<guid isPermalink="false">1e8b7259354ad54094ea71fbfa1c19ba</guid>
|
||||
<pubDate>Mon, 28 Aug 2006 10:54:53 +0200</pubDate>
|
||||
<content:encoded><pre>- Documentation updates.</pre></content:encoded>
|
||||
</item>
|
||||
<item>
|
||||
<title>EventLog 1.0.2</title>
|
||||
<link>http://ez.no/doc/components/view/latest/(file)/changelog_EventLog.html</link>
|
||||
<description>- Refactored to use new ezcBaseStruct class and new properties approach.</description>
|
||||
<guid isPermalink="false">78a1ef3c5edd87dc757f7e085ca39409</guid>
|
||||
<pubDate>Mon, 28 Aug 2006 10:54:49 +0200</pubDate>
|
||||
<content:encoded><pre>- Refactored to use new ezcBaseStruct class and new properties approach.</pre></content:encoded>
|
||||
</item>
|
||||
<item>
|
||||
<title>Debug 1.0.1</title>
|
||||
<link>http://ez.no/doc/components/view/latest/(file)/changelog_Debug.html</link>
|
||||
<description>- Refactored to use the new ezcBaseStruct class.
|
||||
- PHP 5.2 compatibility.</description>
|
||||
<guid isPermalink="false">393ec9e5ca6ec69f7d053f370a239abe</guid>
|
||||
<pubDate>Mon, 28 Aug 2006 10:54:44 +0200</pubDate>
|
||||
<content:encoded><pre>- Refactored to use the new ezcBaseStruct class.
|
||||
- PHP 5.2 compatibility.</pre></content:encoded>
|
||||
</item>
|
||||
<item>
|
||||
<title>DatabaseSchema 1.0.2</title>
|
||||
<link>http://ez.no/doc/components/view/latest/(file)/changelog_DatabaseSchema.html</link>
|
||||
<description>- Fixed bug #8900: Problem with auto increment and primary keys for MySQL
|
||||
because the skip_primary context was not reset for new tables.
|
||||
- Added a new validator to check whether columns marked as 'auto_increment'
|
||||
actually have a primary key defined as well.
|
||||
- Implemented FR #8901: Written schemas should indent the XML.
|
||||
- Refactored the structs to use the new ezcBaseStruct class.</description>
|
||||
<guid isPermalink="false">f9dd68ddddcbb8d629858d44e5434bb5</guid>
|
||||
<pubDate>Mon, 28 Aug 2006 10:54:39 +0200</pubDate>
|
||||
<content:encoded><pre>- Fixed <a href="http://ez.no/bugs/view/8900">bug #8900</a>: Problem with auto increment and primary keys for MySQL
|
||||
because the skip_primary context was not reset for new tables.
|
||||
- Added a new validator to check whether columns marked as 'auto_increment'
|
||||
actually have a primary key defined as well.
|
||||
- Implemented FR #8901: Written schemas should indent the XML.
|
||||
- Refactored the structs to use the new ezcBaseStruct class.</pre></content:encoded>
|
||||
</item>
|
||||
<item>
|
||||
<title>Database 1.1.2</title>
|
||||
<link>http://ez.no/doc/components/view/latest/(file)/changelog_Database.html</link>
|
||||
<description>- Fixed bug #8835: Documentation of lOr and lAnd.</description>
|
||||
<guid isPermalink="false">0bda4ff95f223faca0c0533c37611efd</guid>
|
||||
<pubDate>Mon, 28 Aug 2006 10:54:34 +0200</pubDate>
|
||||
<content:encoded><pre>- Fixed <a href="http://ez.no/bugs/view/8835">bug #8835</a>: Documentation of lOr and lAnd.</pre></content:encoded>
|
||||
</item>
|
||||
<item>
|
||||
<title>ConsoleTools 1.1.2</title>
|
||||
<link>http://ez.no/doc/components/view/latest/(file)/changelog_ConsoleTools.html</link>
|
||||
<description>- Fixed bug #8738: Unexpected behaviour with options->colPadding.
|
||||
- Fixed bug #8478: ezcConsoleOutput format (foreground) color 'black' not
|
||||
available. (The fore-/background colors black and gray are now the same and
|
||||
available for fore- and background).
|
||||
- PHP 5.2 compatibility.</description>
|
||||
<guid isPermalink="false">b5200604305f92e33ca206cce89b0ff1</guid>
|
||||
<pubDate>Mon, 28 Aug 2006 10:54:28 +0200</pubDate>
|
||||
<content:encoded><pre>- Fixed <a href="http://ez.no/bugs/view/8738">bug #8738</a>: Unexpected behaviour with options->colPadding.
|
||||
- Fixed <a href="http://ez.no/bugs/view/8478">bug #8478</a>: ezcConsoleOutput format (foreground) color 'black' not
|
||||
available. (The fore-/background colors black and gray are now the same and
|
||||
available for fore- and background).
|
||||
- PHP 5.2 compatibility.</pre></content:encoded>
|
||||
</item>
|
||||
<item>
|
||||
<title>Configuration 1.0.3</title>
|
||||
<link>http://ez.no/doc/components/view/latest/(file)/changelog_Configuration.html</link>
|
||||
<description>- Refactored to use new ezcBaseStruct class to inherit all the structs from.</description>
|
||||
<guid isPermalink="false">c69c2f1e7d33273f98220967f9083266</guid>
|
||||
<pubDate>Mon, 28 Aug 2006 10:54:24 +0200</pubDate>
|
||||
<content:encoded><pre>- Refactored to use new ezcBaseStruct class to inherit all the structs from.</pre></content:encoded>
|
||||
</item>
|
||||
<item>
|
||||
<title>Cache 1.1.2</title>
|
||||
<link>http://ez.no/doc/components/view/latest/(file)/changelog_Cache.html</link>
|
||||
<description>- Refactored property handling.</description>
|
||||
<guid isPermalink="false">223521b196d061261503293ce947b0f7</guid>
|
||||
<pubDate>Mon, 28 Aug 2006 10:54:18 +0200</pubDate>
|
||||
<content:encoded><pre>- Refactored property handling.</pre></content:encoded>
|
||||
</item>
|
||||
<item>
|
||||
<title>Base 1.1.1</title>
|
||||
<link>http://ez.no/doc/components/view/latest/(file)/changelog_Base.html</link>
|
||||
<description>- Added the ezcBaseStruct class from which all structs in all components
|
||||
should inherit from.</description>
|
||||
<guid isPermalink="false">50d74d58428714bb0fdb6e1694f4eabe</guid>
|
||||
<pubDate>Mon, 28 Aug 2006 10:54:13 +0200</pubDate>
|
||||
<content:encoded><pre>- Added the ezcBaseStruct class from which all structs in all components
|
||||
should inherit from.</pre></content:encoded>
|
||||
</item>
|
||||
<item>
|
||||
<title>Mail 1.1.1</title>
|
||||
<link>http://ez.no/doc/components/view/latest/(file)/changelog_Mail.html</link>
|
||||
<description>- Partially fixed bug #8694:
|
||||
|
||||
* Don't crash when generating empty mail.
|
||||
* Don't assume that message/ parts are actually rfc822 messages when parsing
|
||||
mail.</description>
|
||||
<guid isPermalink="false">27be6eba037aaca7f56687a65f58ca5d</guid>
|
||||
<pubDate>Mon, 07 Aug 2006 09:11:32 +0200</pubDate>
|
||||
<content:encoded><pre>- Partially fixed <a href="http://ez.no/bugs/view/8694">bug #8694</a>:
|
||||
|
||||
* Don't crash when generating empty mail.
|
||||
* Don't assume that message/ parts are actually rfc822 messages when parsing
|
||||
mail.</pre></content:encoded>
|
||||
</item>
|
||||
<item>
|
||||
<title>Database 1.1.1</title>
|
||||
<link>http://ez.no/doc/components/view/latest/(file)/changelog_Database.html</link>
|
||||
<description>- Fixed bug #8360: ezcQueryExpressionOracle::concat() calls non-existing
|
||||
method.
|
||||
- Added ezcQuery::resetBinds() which allows you to reset the bound values and
|
||||
parameters associated with a query.</description>
|
||||
<guid isPermalink="false">56bc57cfb1c6868d39f7571e669e423d</guid>
|
||||
<pubDate>Mon, 07 Aug 2006 09:11:28 +0200</pubDate>
|
||||
<content:encoded><pre>- Fixed <a href="http://ez.no/bugs/view/8360">bug #8360</a>: ezcQueryExpressionOracle::concat() calls non-existing
|
||||
method.
|
||||
- Added ezcQuery::resetBinds() which allows you to reset the bound values and
|
||||
parameters associated with a query.</pre></content:encoded>
|
||||
</item>
|
||||
<item>
|
||||
<title>ConsoleTools 1.1.1</title>
|
||||
<link>http://ez.no/doc/components/view/latest/(file)/changelog_ConsoleTools.html</link>
|
||||
<description>- Fixed bug #8525: ConsoleInput::getHelpTable() exits with a fatal error.
|
||||
- Fixed bug #8645: Default values not set correctly in ezcConsoleInput.</description>
|
||||
<guid isPermalink="false">e9ef560dd36bb6a4953cab329a3d8ebd</guid>
|
||||
<pubDate>Mon, 07 Aug 2006 09:11:24 +0200</pubDate>
|
||||
<content:encoded><pre>- Fixed <a href="http://ez.no/bugs/view/8525">bug #8525</a>: ConsoleInput::getHelpTable() exits with a fatal error.
|
||||
- Fixed <a href="http://ez.no/bugs/view/8645">bug #8645</a>: Default values not set correctly in ezcConsoleInput.</pre></content:encoded>
|
||||
</item>
|
||||
<item>
|
||||
<title>Cache 1.1.1</title>
|
||||
<link>http://ez.no/doc/components/view/latest/(file)/changelog_Cache.html</link>
|
||||
<description>- Updated tutorial with a new example.</description>
|
||||
<guid isPermalink="false">02e72ff27e9c01fb0c74f3831d41503a</guid>
|
||||
<pubDate>Mon, 07 Aug 2006 09:11:19 +0200</pubDate>
|
||||
<content:encoded><pre>- Updated tutorial with a new example.</pre></content:encoded>
|
||||
</item>
|
||||
<item>
|
||||
<title>DatabaseSchema 1.0.1</title>
|
||||
<link>http://ez.no/doc/components/view/latest/(file)/changelog_DatabaseSchema.html</link>
|
||||
<description>- Fixed a bug that an empty 'is null value' string in the database caused a
|
||||
PHP warning.</description>
|
||||
<guid isPermalink="false">b34fbc2764c0c5f93ea610a3e21fb376</guid>
|
||||
<pubDate>Mon, 19 Jun 2006 14:49:33 +0200</pubDate>
|
||||
<content:encoded><pre>- Fixed a bug that an empty 'is null value' string in the database caused a
|
||||
PHP warning.</pre></content:encoded>
|
||||
</item>
|
||||
<item>
|
||||
<title>TranslationCacheTiein 1.1</title>
|
||||
<link>http://ez.no/doc/components/view/latest/(file)/changelog_TranslationCacheTiein.html</link>
|
||||
<description>- No changes.</description>
|
||||
<guid isPermalink="false">2b56a02b94d917d59629a19327fb407a</guid>
|
||||
<pubDate>Mon, 12 Jun 2006 13:17:33 +0200</pubDate>
|
||||
<content:encoded><pre>- No changes.</pre></content:encoded>
|
||||
</item>
|
||||
<item>
|
||||
<title>Translation 1.1</title>
|
||||
<link>http://ez.no/doc/components/view/latest/(file)/changelog_Translation.html</link>
|
||||
<description>- No changes.</description>
|
||||
<guid isPermalink="false">c3222ade251d8acf4a87d157201a1e2d</guid>
|
||||
<pubDate>Mon, 12 Jun 2006 13:17:28 +0200</pubDate>
|
||||
<content:encoded><pre>- No changes.</pre></content:encoded>
|
||||
</item>
|
||||
<item>
|
||||
<title>Template 1.0</title>
|
||||
<link>http://ez.no/doc/components/view/latest/(file)/changelog_Template.html</link>
|
||||
<description>- Fixed a bug that some indentations were not removed.
|
||||
- Fixed a bug that the newlines after a non output block were not removed.
|
||||
- Fixed a bug that fetching an array element was never considered as a
|
||||
possible sub array. E.g. {var $a = array( array("a") )} {foreach $a[0] as $i}
|
||||
gave an error.
|
||||
- Fixed a bug that an imported variable with default value got the wrong type.
|
||||
E.g. {var $myArray = false} {foreach $myArray as $i} gave an error.</description>
|
||||
<guid isPermalink="false">e030ddf42cc57651e95839549837cea4</guid>
|
||||
<pubDate>Mon, 12 Jun 2006 13:17:24 +0200</pubDate>
|
||||
<content:encoded><pre>- Fixed a bug that some indentations were not removed.
|
||||
- Fixed a bug that the newlines after a non output block were not removed.
|
||||
- Fixed a bug that fetching an array element was never considered as a
|
||||
possible sub array. E.g. {var $a = array( array("a") )} {foreach $a[0] as $i}
|
||||
gave an error.
|
||||
- Fixed a bug that an imported variable with default value got the wrong type.
|
||||
E.g. {var $myArray = false} {foreach $myArray as $i} gave an error.</pre></content:encoded>
|
||||
</item>
|
||||
<item>
|
||||
<title>SystemInformation 1.0</title>
|
||||
<link>http://ez.no/doc/components/view/latest/(file)/changelog_SystemInformation.html</link>
|
||||
<description>- Fixed small CS issues.</description>
|
||||
<guid isPermalink="false">625adcf84419f4b6fd849f16aa7817d3</guid>
|
||||
<pubDate>Mon, 12 Jun 2006 13:17:15 +0200</pubDate>
|
||||
<content:encoded><pre>- Fixed small CS issues.</pre></content:encoded>
|
||||
</item>
|
||||
<item>
|
||||
<title>PersistentObjectDatabaseSchemaTiein 1.0</title>
|
||||
<link>http://ez.no/doc/components/view/latest/(file)/changelog_PersistentObjectDatabaseSchemaTiein.html</link>
|
||||
<description>- Fixed bug #8401: PersistentObjectDatabaseSchemaTieIn error if environment is
|
||||
not correct.</description>
|
||||
<guid isPermalink="false">f12cb725e2b79c452edaac84cd45f6b3</guid>
|
||||
<pubDate>Mon, 12 Jun 2006 13:17:08 +0200</pubDate>
|
||||
<content:encoded><pre>- Fixed <a href="http://ez.no/bugs/view/8401">bug #8401</a>: PersistentObjectDatabaseSchemaTieIn error if environment is
|
||||
not correct.</pre></content:encoded>
|
||||
</item>
|
||||
<item>
|
||||
<title>PersistentObject 1.1</title>
|
||||
<link>http://ez.no/doc/components/view/latest/(file)/changelog_PersistentObject.html</link>
|
||||
<description>- Fixed small CS issues.</description>
|
||||
<guid isPermalink="false">3c01d7cf71e77667abed7839213eb5d2</guid>
|
||||
<pubDate>Mon, 12 Jun 2006 13:17:02 +0200</pubDate>
|
||||
<content:encoded><pre>- Fixed small CS issues.</pre></content:encoded>
|
||||
</item>
|
||||
<item>
|
||||
<title>Mail 1.1</title>
|
||||
<link>http://ez.no/doc/components/view/latest/(file)/changelog_Mail.html</link>
|
||||
<description>- Fixed CS issues and tests.</description>
|
||||
<guid isPermalink="false">bf152dd722d6c740eb82e14b20795b50</guid>
|
||||
<pubDate>Mon, 12 Jun 2006 13:16:56 +0200</pubDate>
|
||||
<content:encoded><pre>- Fixed CS issues and tests.</pre></content:encoded>
|
||||
</item>
|
||||
<item>
|
||||
<title>ImageConversion 1.1</title>
|
||||
<link>http://ez.no/doc/components/view/latest/(file)/changelog_ImageConversion.html</link>
|
||||
<description>- No changes at all.</description>
|
||||
<guid isPermalink="false">b0d15ddfb0d3b7ddefc5f8b1d0e7d271</guid>
|
||||
<pubDate>Mon, 12 Jun 2006 13:16:53 +0200</pubDate>
|
||||
<content:encoded><pre>- No changes at all.</pre></content:encoded>
|
||||
</item>
|
||||
<item>
|
||||
<title>File 1.0</title>
|
||||
<link>http://ez.no/doc/components/view/latest/(file)/changelog_File.html</link>
|
||||
<description>- Updated documentation and added tutorial.</description>
|
||||
<guid isPermalink="false">ef87c004e5e071973ecbd237d9bd0ad1</guid>
|
||||
<pubDate>Mon, 12 Jun 2006 13:16:43 +0200</pubDate>
|
||||
<content:encoded><pre>- Updated documentation and added tutorial.</pre></content:encoded>
|
||||
</item>
|
||||
<item>
|
||||
<title>EventLog 1.0.1</title>
|
||||
<link>http://ez.no/doc/components/view/latest/(file)/changelog_EventLog.html</link>
|
||||
<description>- Updated documentation.</description>
|
||||
<guid isPermalink="false">d06b4826a3c97c23febdcb96bbe5fe99</guid>
|
||||
<pubDate>Mon, 12 Jun 2006 13:16:32 +0200</pubDate>
|
||||
<content:encoded><pre>- Updated documentation.</pre></content:encoded>
|
||||
</item>
|
||||
</channel>
|
||||
</rss>
|
||||
6
slides/ezc/template-mail/listing.ezt
Normal file
6
slides/ezc/template-mail/listing.ezt
Normal file
@@ -0,0 +1,6 @@
|
||||
{use $listing}
|
||||
<ul>
|
||||
{foreach $listing as $id => $entry}
|
||||
<li><a href='index.php?mailNr={$id}' class="nowrap">{$entry}</a></li>
|
||||
{/foreach}
|
||||
</ul>
|
||||
10
slides/ezc/template-mail/oneonly.php
Normal file
10
slides/ezc/template-mail/oneonly.php
Normal file
@@ -0,0 +1,10 @@
|
||||
<?php
|
||||
require '../include/ezc-setup.php';
|
||||
require '../include/template_function_call.php';
|
||||
|
||||
$tpl = new ezcTemplate();
|
||||
$tpl->configuration->addExtension( "TemplateFunctionCall" );
|
||||
$tpl->send->listing = array( 1 => 'Item 1', 2 => 'Item 2' );
|
||||
|
||||
echo $tpl->process( 'oneonly.ezt' );
|
||||
?>
|
||||
56
slides/ezc/template-mail/template_function_call.php
Normal file
56
slides/ezc/template-mail/template_function_call.php
Normal file
@@ -0,0 +1,56 @@
|
||||
<?php
|
||||
|
||||
class TemplateFunctionCall
|
||||
implements ezcTemplateCustomBlock, ezcTemplateCustomFunction
|
||||
{
|
||||
public static function getCustomBlockDefinition( $name )
|
||||
{
|
||||
if( $name == "call" )
|
||||
{
|
||||
$def = new ezcTemplateCustomBlockDefinition();
|
||||
$def->class = __CLASS__;
|
||||
$def->method = "call_block";
|
||||
$def->hasCloseTag = false;
|
||||
$def->requiredParameters = array("object", "method");
|
||||
$def->optionalParameters = array("parameters");
|
||||
return $def;
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
public static function getCustomFunctionDefinition( $name )
|
||||
{
|
||||
if( $name == "call" )
|
||||
{
|
||||
$def = new ezcTemplateCustomFunctionDefinition();
|
||||
$def->class = __CLASS__;
|
||||
$def->method = "call_function";
|
||||
$def->parameters = array(
|
||||
"object", "method", "[parameters]"
|
||||
);
|
||||
return $def;
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
public static function call_block( $p )
|
||||
{
|
||||
return call_user_func_array(
|
||||
array($p["object"], $p["method"]),
|
||||
$p["parameters"]
|
||||
);
|
||||
}
|
||||
|
||||
public static function call_function(
|
||||
$object, $method, $parameters = array()
|
||||
)
|
||||
{
|
||||
return call_user_func_array(
|
||||
array( $object, $method ), $parameters
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
?>
|
||||
9
slides/input-filter/callback-filter.xml
Normal file
9
slides/input-filter/callback-filter.xml
Normal file
@@ -0,0 +1,9 @@
|
||||
<?xml version="1.0" encoding="ISO-8859-1"?>
|
||||
<slide>
|
||||
<title>Callback Filter</title>
|
||||
|
||||
<list>
|
||||
<bullet>Allows you to write your own callback filter</bullet>
|
||||
<bullet>Can not be used as default filter</bullet>
|
||||
</list>
|
||||
</slide>
|
||||
10
slides/input-filter/check-data.php
Normal file
10
slides/input-filter/check-data.php
Normal file
@@ -0,0 +1,10 @@
|
||||
<?php
|
||||
if (isset($_GET['data'])) {
|
||||
$o = 0;
|
||||
foreach( $flags as $flagName )
|
||||
if ( isset( $_GET[$flagName] ) )
|
||||
$o |= constant( $flagName );
|
||||
$data = input_get( INPUT_GET, 'data', $filter, $o );
|
||||
var_dump( $data );
|
||||
}
|
||||
?>
|
||||
16
slides/input-filter/default-filter.xml
Normal file
16
slides/input-filter/default-filter.xml
Normal file
@@ -0,0 +1,16 @@
|
||||
<?xml version="1.0" encoding="ISO-8859-1"?>
|
||||
<slide>
|
||||
<title>Sanitizing filters try-out</title>
|
||||
|
||||
<example result="1"><![CDATA[<form action="" method="get">
|
||||
<input type="text" name="data" maxlength="64" size="64"/>
|
||||
<input type="submit"/>
|
||||
</form>
|
||||
<?php
|
||||
if ( isset( $_GET['data'] ) ) {
|
||||
$filter = ini_get('filter.default');
|
||||
echo "The data filterered through '$filter' is:";
|
||||
var_dump( $_GET['data'] );
|
||||
}
|
||||
?>]]></example>
|
||||
</slide>
|
||||
29
slides/input-filter/filter-c-callback.xml
Normal file
29
slides/input-filter/filter-c-callback.xml
Normal file
@@ -0,0 +1,29 @@
|
||||
<?xml version="1.0" encoding="ISO-8859-1"?>
|
||||
<slide>
|
||||
<title>Callback filter</title>
|
||||
|
||||
<example result="1"><![CDATA[<form action="" method="get">
|
||||
Data: <input type="text" name="data" maxlength="64" size="64"/><br/>
|
||||
<input type="submit"/>
|
||||
</form>
|
||||
<?php
|
||||
$filter = FILTER_CALLBACK;
|
||||
$callback = array( 'Validate', 'My' );
|
||||
|
||||
if (isset($_GET['data'])) {
|
||||
$data = input_get( INPUT_GET, 'data', $filter, $callback );
|
||||
var_dump( $data );
|
||||
}
|
||||
|
||||
class Validate {
|
||||
function My( $text ) {
|
||||
if ( $text == 'PHP' ) {
|
||||
$text = 'PHP Rocks!';
|
||||
return $text;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
}
|
||||
?>]]></example>
|
||||
<break/>
|
||||
</slide>
|
||||
17
slides/input-filter/filter-s-email.xml
Normal file
17
slides/input-filter/filter-s-email.xml
Normal file
@@ -0,0 +1,17 @@
|
||||
<?xml version="1.0" encoding="ISO-8859-1"?>
|
||||
<slide>
|
||||
<title>Sanitizing filters</title>
|
||||
<subtitle>e-mail filter</subtitle>
|
||||
|
||||
<blurb>This only strips out illegal characters, no validation is done!</blurb>
|
||||
<blurb>The allowed characters are: a-z A-Z 0-9 " ! # $ % & ' * + - / =
|
||||
? ^ _ ` { | } ~ @ . [ ]</blurb>
|
||||
<break/>
|
||||
|
||||
<example result="1"><![CDATA[<?php
|
||||
$flags = array();
|
||||
$filter = FILTER_SANITIZE_EMAIL;
|
||||
include 'presentations/slides/input-filter/render-form.php';
|
||||
include 'presentations/slides/input-filter/check-data.php';
|
||||
?>]]></example>
|
||||
</slide>
|
||||
17
slides/input-filter/filter-s-encoded.xml
Normal file
17
slides/input-filter/filter-s-encoded.xml
Normal file
@@ -0,0 +1,17 @@
|
||||
<?xml version="1.0" encoding="ISO-8859-1"?>
|
||||
<slide>
|
||||
<title>Sanitizing filters</title>
|
||||
<subtitle>encode filter</subtitle>
|
||||
|
||||
<blurb>Is basically "url_encode", but supports a couple of flags:</blurb>
|
||||
<break/>
|
||||
|
||||
<example result="1"><![CDATA[<?php
|
||||
$flags = array(
|
||||
'FILTER_FLAG_STRIP_LOW', 'FILTER_FLAG_STRIP_HIGH'
|
||||
);
|
||||
$filter = FILTER_SANITIZE_ENCODED;
|
||||
include 'presentations/slides/input-filter/render-form.php';
|
||||
include 'presentations/slides/input-filter/check-data.php';
|
||||
?>]]></example>
|
||||
</slide>
|
||||
16
slides/input-filter/filter-s-magic-quotes.xml
Normal file
16
slides/input-filter/filter-s-magic-quotes.xml
Normal file
@@ -0,0 +1,16 @@
|
||||
<?xml version="1.0" encoding="ISO-8859-1"?>
|
||||
<slide>
|
||||
<title>Sanitizing filters</title>
|
||||
<subtitle>number filters</subtitle>
|
||||
|
||||
<blurb>Filter that applies magic quotes or actually "add_slashes"</blurb>
|
||||
<break/>
|
||||
|
||||
<example result="1"><![CDATA[<?php
|
||||
$flags = array();
|
||||
$filter = FILTER_SANITIZE_MAGIC_QUOTES;
|
||||
include 'presentations/slides/input-filter/render-form.php';
|
||||
include 'presentations/slides/input-filter/check-data.php';
|
||||
?>]]></example>
|
||||
<break/>
|
||||
</slide>
|
||||
19
slides/input-filter/filter-s-number-float.xml
Normal file
19
slides/input-filter/filter-s-number-float.xml
Normal file
@@ -0,0 +1,19 @@
|
||||
<?xml version="1.0" encoding="ISO-8859-1"?>
|
||||
<slide>
|
||||
<title>Sanitizing filters</title>
|
||||
<subtitle>number filters</subtitle>
|
||||
|
||||
<blurb>Strips all chars which are not 0-9, + and -, but supports some flags as well.</blurb>
|
||||
<break/>
|
||||
|
||||
<example result="1"><![CDATA[<?php
|
||||
$flags = array(
|
||||
'FILTER_FLAG_ALLOW_FRACTION', 'FILTER_FLAG_ALLOW_THOUSAND',
|
||||
'FILTER_FLAG_ALLOW_SCIENTIFIC'
|
||||
);
|
||||
$filter = FILTER_SANITIZE_NUMBER_FLOAT;
|
||||
include 'presentations/slides/input-filter/render-form.php';
|
||||
include 'presentations/slides/input-filter/check-data.php';
|
||||
?>]]></example>
|
||||
<break/>
|
||||
</slide>
|
||||
16
slides/input-filter/filter-s-number-int.xml
Normal file
16
slides/input-filter/filter-s-number-int.xml
Normal file
@@ -0,0 +1,16 @@
|
||||
<?xml version="1.0" encoding="ISO-8859-1"?>
|
||||
<slide>
|
||||
<title>Sanitizing filters</title>
|
||||
<subtitle>number filters</subtitle>
|
||||
|
||||
<blurb>Strips all chars which are not 0-9, + and -.</blurb>
|
||||
<break/>
|
||||
|
||||
<example result="1"><![CDATA[<?php
|
||||
$flags = array();
|
||||
$filter = FILTER_SANITIZE_NUMBER_INT;
|
||||
include 'presentations/slides/input-filter/render-form.php';
|
||||
include 'presentations/slides/input-filter/check-data.php';
|
||||
?>]]></example>
|
||||
<break/>
|
||||
</slide>
|
||||
18
slides/input-filter/filter-s-special-chars.xml
Normal file
18
slides/input-filter/filter-s-special-chars.xml
Normal file
@@ -0,0 +1,18 @@
|
||||
<?xml version="1.0" encoding="ISO-8859-1"?>
|
||||
<slide>
|
||||
<title>Sanitizing filters</title>
|
||||
<subtitle>special chars filter</subtitle>
|
||||
|
||||
<blurb>Is basically "html_special_chars", but supports a couple of flags:</blurb>
|
||||
<break/>
|
||||
|
||||
<example result="1"><![CDATA[<?php
|
||||
$flags = array(
|
||||
'FILTER_FLAG_STRIP_LOW', 'FILTER_FLAG_STRIP_HIGH',
|
||||
'FILTER_FLAG_ENCODE_HIGH',
|
||||
);
|
||||
$filter = FILTER_SANITIZE_SPECIAL_CHARS;
|
||||
include 'presentations/slides/input-filter/render-form.php';
|
||||
include 'presentations/slides/input-filter/check-data.php';
|
||||
?>]]></example>
|
||||
</slide>
|
||||
19
slides/input-filter/filter-s-string.xml
Normal file
19
slides/input-filter/filter-s-string.xml
Normal file
@@ -0,0 +1,19 @@
|
||||
<?xml version="1.0" encoding="ISO-8859-1"?>
|
||||
<slide>
|
||||
<title>Sanitizing filters</title>
|
||||
<subtitle>string filter</subtitle>
|
||||
|
||||
<blurb>Is basically "strip_tags", but supports a couple of flags:</blurb>
|
||||
<break/>
|
||||
|
||||
<example result="1"><![CDATA[<?php
|
||||
$flags = array(
|
||||
'FILTER_FLAG_NO_ENCODE_QUOTES', 'FILTER_FLAG_ENCODE_LOW',
|
||||
'FILTER_FLAG_ENCODE_HIGH', 'FILTER_FLAG_STRIP_LOW',
|
||||
'FILTER_FLAG_STRIP_HIGH'
|
||||
);
|
||||
$filter = FILTER_SANITIZE_STRING;
|
||||
include 'presentations/slides/input-filter/render-form.php';
|
||||
include 'presentations/slides/input-filter/check-data.php';
|
||||
?>]]></example>
|
||||
</slide>
|
||||
19
slides/input-filter/filter-s-unsafe-raw.xml
Normal file
19
slides/input-filter/filter-s-unsafe-raw.xml
Normal file
@@ -0,0 +1,19 @@
|
||||
<?xml version="1.0" encoding="ISO-8859-1"?>
|
||||
<slide>
|
||||
<title>Sanitizing filters</title>
|
||||
<subtitle>unsafe raw filter</subtitle>
|
||||
|
||||
<blurb>By default doesn't do anything, but supports a couple of flags:</blurb>
|
||||
<break/>
|
||||
|
||||
<example result="1"><![CDATA[<?php
|
||||
$flags = array(
|
||||
'FILTER_FLAG_ENCODE_AMP', 'FILTER_FLAG_ENCODE_LOW',
|
||||
'FILTER_FLAG_ENCODE_HIGH', 'FILTER_FLAG_STRIP_LOW',
|
||||
'FILTER_FLAG_STRIP_HIGH'
|
||||
);
|
||||
$filter = FILTER_SANITIZE_STRING;
|
||||
include 'presentations/slides/input-filter/render-form.php';
|
||||
include 'presentations/slides/input-filter/check-data.php';
|
||||
?>]]></example>
|
||||
</slide>
|
||||
16
slides/input-filter/filter-s-url.xml
Normal file
16
slides/input-filter/filter-s-url.xml
Normal file
@@ -0,0 +1,16 @@
|
||||
<?xml version="1.0" encoding="ISO-8859-1"?>
|
||||
<slide>
|
||||
<title>Sanitizing filters</title>
|
||||
<subtitle>url filter</subtitle>
|
||||
|
||||
<blurb>This only strips out illegal characters, no validation is done!</blurb>
|
||||
<blurb>The allowed characters are: a-z A-Z 0-9 $ - _ . + ! * ' () , { } | \ ^ ~ [ ] ` < > # % " ; / ? : @ & =</blurb>
|
||||
<break/>
|
||||
|
||||
<example result="1"><![CDATA[<?php
|
||||
$flags = array();
|
||||
$filter = FILTER_SANITIZE_URL;
|
||||
include 'presentations/slides/input-filter/render-form.php';
|
||||
include 'presentations/slides/input-filter/check-data.php';
|
||||
?>]]></example>
|
||||
</slide>
|
||||
16
slides/input-filter/filter-v-boolean.xml
Normal file
16
slides/input-filter/filter-v-boolean.xml
Normal file
@@ -0,0 +1,16 @@
|
||||
<?xml version="1.0" encoding="ISO-8859-1"?>
|
||||
<slide>
|
||||
<title>Logical filters</title>
|
||||
<subtitle>boolean filter</subtitle>
|
||||
|
||||
<blurb>Returns true for '1', 'on', 'yes' and 'true', false otherwise.</blurb>
|
||||
<break/>
|
||||
|
||||
<example result="1"><![CDATA[<?php
|
||||
$flags = array();
|
||||
$filter = FILTER_VALIDATE_BOOLEAN;
|
||||
include 'presentations/slides/input-filter/render-form.php';
|
||||
include 'presentations/slides/input-filter/check-data.php';
|
||||
?>]]></example>
|
||||
<break/>
|
||||
</slide>
|
||||
13
slides/input-filter/filter-v-float.xml
Normal file
13
slides/input-filter/filter-v-float.xml
Normal file
@@ -0,0 +1,13 @@
|
||||
<?xml version="1.0" encoding="ISO-8859-1"?>
|
||||
<slide>
|
||||
<title>Logical filters</title>
|
||||
<subtitle>float filter</subtitle>
|
||||
|
||||
<example result="1"><![CDATA[<?php
|
||||
$flags = array();
|
||||
$filter = FILTER_VALIDATE_FLOAT;
|
||||
include 'presentations/slides/input-filter/render-form.php';
|
||||
include 'presentations/slides/input-filter/check-data.php';
|
||||
?>]]></example>
|
||||
<break/>
|
||||
</slide>
|
||||
36
slides/input-filter/filter-v-int.xml
Normal file
36
slides/input-filter/filter-v-int.xml
Normal file
@@ -0,0 +1,36 @@
|
||||
<?xml version="1.0" encoding="ISO-8859-1"?>
|
||||
<slide>
|
||||
<title>Logical filters</title>
|
||||
<subtitle>int filter</subtitle>
|
||||
|
||||
<example result="1"><![CDATA[<a name='form'/><?php
|
||||
$flags = array( 'FILTER_FLAG_ALLOW_OCTAL', 'FILTER_FLAG_ALLOW_HEX' );
|
||||
$filter = FILTER_VALIDATE_INT;
|
||||
?>
|
||||
<form action="" method="get">
|
||||
data: <input type="text" name="data" maxlength="64" size="64"/>
|
||||
<table>
|
||||
<?php foreach( $flags as $flagName ) {
|
||||
echo "<tr><td>$flagName</td><td><input type='checkbox' name='$flagName'/></td></tr>";
|
||||
} ?>
|
||||
</table>
|
||||
Min: <input type="text" name="min"/><br/>Max: <input type="text" name="max"/>
|
||||
<input type="submit"/>
|
||||
</form>
|
||||
<?php
|
||||
if (!empty($_GET['min']))
|
||||
$options['min_range'] = (int) $_GET['min'];
|
||||
if (!empty($_GET['max']))
|
||||
$options['max_range'] = (int) $_GET['max'];
|
||||
if (isset($_GET['data'])) {
|
||||
$o = 0;
|
||||
foreach( $flags as $flagName )
|
||||
if ( isset( $_GET[$flagName] ) )
|
||||
$o |= constant( $flagName );
|
||||
$options['flags'] = $o;
|
||||
$data = input_get( INPUT_GET, 'data', $filter, $options );
|
||||
var_dump( $data );
|
||||
}
|
||||
?>]]></example>
|
||||
<break/>
|
||||
</slide>
|
||||
22
slides/input-filter/filter-v-regexp.xml
Normal file
22
slides/input-filter/filter-v-regexp.xml
Normal file
@@ -0,0 +1,22 @@
|
||||
<?xml version="1.0" encoding="ISO-8859-1"?>
|
||||
<slide>
|
||||
<title>Logical filters</title>
|
||||
<subtitle>regexp filter</subtitle>
|
||||
|
||||
<example result="1"><![CDATA[<form action="" method="get">
|
||||
Data: <input type="text" name="data" maxlength="64" size="64"/><br/>
|
||||
Regexp: <input type="text" name="regexp" maxlength="64" size="64"/><br/>
|
||||
<input type="submit"/>
|
||||
</form>
|
||||
<?php
|
||||
$filter = FILTER_VALIDATE_REGEXP;
|
||||
if (!empty($_GET['regexp']))
|
||||
$options['regexp'] = $_GET['regexp'];
|
||||
|
||||
if (isset($_GET['data'])) {
|
||||
$data = input_get( INPUT_GET, 'data', $filter, $options );
|
||||
var_dump( $data );
|
||||
}
|
||||
?>]]></example>
|
||||
<break/>
|
||||
</slide>
|
||||
13
slides/input-filter/filter-v-validate-email.xml
Normal file
13
slides/input-filter/filter-v-validate-email.xml
Normal file
@@ -0,0 +1,13 @@
|
||||
<?xml version="1.0" encoding="ISO-8859-1"?>
|
||||
<slide>
|
||||
<title>Logical filters</title>
|
||||
<subtitle>e-mail filter</subtitle>
|
||||
|
||||
<example result="1"><![CDATA[<?php
|
||||
$flags = array();
|
||||
$filter = FILTER_VALIDATE_EMAIL;
|
||||
include 'presentations/slides/input-filter/render-form.php';
|
||||
include 'presentations/slides/input-filter/check-data.php';
|
||||
?>]]></example>
|
||||
<break/>
|
||||
</slide>
|
||||
16
slides/input-filter/filter-v-validate-ip.xml
Normal file
16
slides/input-filter/filter-v-validate-ip.xml
Normal file
@@ -0,0 +1,16 @@
|
||||
<?xml version="1.0" encoding="ISO-8859-1"?>
|
||||
<slide>
|
||||
<title>Logical filters</title>
|
||||
<subtitle>IP filter</subtitle>
|
||||
|
||||
<example result="1"><![CDATA[<?php
|
||||
$flags = array(
|
||||
'FILTER_FLAG_IPV4', 'FILTER_FLAG_IPV6', 'FILTER_FLAG_NO_RES_RANGE',
|
||||
'FILTER_FLAG_NO_PRIV_RANGE'
|
||||
);
|
||||
$filter = FILTER_VALIDATE_IP;
|
||||
include 'presentations/slides/input-filter/render-form.php';
|
||||
include 'presentations/slides/input-filter/check-data.php';
|
||||
?>]]></example>
|
||||
<break/>
|
||||
</slide>
|
||||
16
slides/input-filter/filter-v-validate-url.xml
Normal file
16
slides/input-filter/filter-v-validate-url.xml
Normal file
@@ -0,0 +1,16 @@
|
||||
<?xml version="1.0" encoding="ISO-8859-1"?>
|
||||
<slide>
|
||||
<title>Logical filters</title>
|
||||
<subtitle>url filter</subtitle>
|
||||
|
||||
<example result="1"><![CDATA[<?php
|
||||
$flags = array(
|
||||
'FILTER_FLAG_SCHEME_REQUIRED', 'FILTER_FLAG_HOST_REQUIRED',
|
||||
'FILTER_FLAG_PATH_REQUIRED', 'FILTER_FLAG_QUERY_REQUIRED'
|
||||
);
|
||||
$filter = FILTER_VALIDATE_URL;
|
||||
include 'presentations/slides/input-filter/render-form.php';
|
||||
include 'presentations/slides/input-filter/check-data.php';
|
||||
?>]]></example>
|
||||
<break/>
|
||||
</slide>
|
||||
24
slides/input-filter/functions-and-common-flags-array.xml
Normal file
24
slides/input-filter/functions-and-common-flags-array.xml
Normal file
@@ -0,0 +1,24 @@
|
||||
<?xml version="1.0" encoding="ISO-8859-1"?>
|
||||
<slide>
|
||||
<title>Getting Input Arrays</title>
|
||||
|
||||
<example result="1"><![CDATA[<form action="" method="get">
|
||||
Data 1: <input type="text" name="data[]" maxlength="64" size="64"/><br/>
|
||||
Data 2: <input type="text" name="data[]" maxlength="64" size="64"/><br/>
|
||||
<input type="submit"/>
|
||||
</form>
|
||||
<?php
|
||||
$options = FILTER_FLAG_STRIP_HIGH | FILTER_FLAG_ARRAY;
|
||||
|
||||
if (isset($_GET['data'])) {
|
||||
$data = input_get(
|
||||
INPUT_GET, // source
|
||||
'data', // parameter name
|
||||
FILTER_SANITIZE_STRING, // filter
|
||||
$options // options
|
||||
);
|
||||
var_dump( $data );
|
||||
}
|
||||
?>]]></example>
|
||||
<break/>
|
||||
</slide>
|
||||
23
slides/input-filter/functions-and-common-flags.xml
Normal file
23
slides/input-filter/functions-and-common-flags.xml
Normal file
@@ -0,0 +1,23 @@
|
||||
<?xml version="1.0" encoding="ISO-8859-1"?>
|
||||
<slide>
|
||||
<title>Getting Input</title>
|
||||
|
||||
<example result="1"><![CDATA[<form action="" method="get">
|
||||
Data: <input type="text" name="data" maxlength="64" size="64"/><br/>
|
||||
<input type="submit"/>
|
||||
</form>
|
||||
<?php
|
||||
$options = FILTER_FLAG_STRIP_HIGH;
|
||||
|
||||
if (isset($_GET['data'])) {
|
||||
$data = input_get(
|
||||
INPUT_GET, // source
|
||||
'data', // parameter name
|
||||
FILTER_SANITIZE_STRING, // filter
|
||||
$options // options
|
||||
);
|
||||
var_dump( $data );
|
||||
}
|
||||
?>]]></example>
|
||||
<break/>
|
||||
</slide>
|
||||
15
slides/input-filter/functions-filter-data.xml
Normal file
15
slides/input-filter/functions-filter-data.xml
Normal file
@@ -0,0 +1,15 @@
|
||||
<?xml version="1.0" encoding="ISO-8859-1"?>
|
||||
<slide>
|
||||
<title>Getting Input Arrays</title>
|
||||
|
||||
<example result="1"><![CDATA[<?php
|
||||
$text = "This tekßt is göing\tto be changed\n";
|
||||
$data = filter_data(
|
||||
$text,
|
||||
input_name_to_filter( 'special_chars' ),
|
||||
FILTER_FLAG_STRIP_HIGH
|
||||
);
|
||||
var_dump( $data );
|
||||
?>]]></example>
|
||||
<break/>
|
||||
</slide>
|
||||
25
slides/input-filter/functions-get-args.xml
Normal file
25
slides/input-filter/functions-get-args.xml
Normal file
@@ -0,0 +1,25 @@
|
||||
<?xml version="1.0" encoding="ISO-8859-1"?>
|
||||
<slide>
|
||||
<title>Getting Input Arrays</title>
|
||||
|
||||
<example result="1"><![CDATA[<form action="" method="get">
|
||||
Number: <input type="text" name="int" maxlength="64" size="64"/><br/>
|
||||
String: <input type="text" name="string" maxlength="64" size="64"/><br/>
|
||||
<input type="submit"/>
|
||||
</form>
|
||||
<?php
|
||||
$definition = array(
|
||||
'int' => array(
|
||||
'filter' => FILTER_VALIDATE_INT,
|
||||
'options' => array( "min_range" => 1, "max_range" => 10 )
|
||||
),
|
||||
'string' => FILTER_SANITIZE_SPECIAL_CHARS
|
||||
);
|
||||
|
||||
if (isset($_GET['int'])) {
|
||||
$data = input_get_args( INPUT_GET, $definition );
|
||||
var_dump( $data );
|
||||
}
|
||||
?>]]></example>
|
||||
<break/>
|
||||
</slide>
|
||||
12
slides/input-filter/php52.xml
Normal file
12
slides/input-filter/php52.xml
Normal file
@@ -0,0 +1,12 @@
|
||||
<?xml version="1.0" encoding="ISO-8859-1"?>
|
||||
<slide>
|
||||
<title>PHP 5.2</title>
|
||||
|
||||
<list>
|
||||
<bullet>Comes with a filter extension</bullet>
|
||||
<bullet>Enabled by default</bullet>
|
||||
<bullet>Provides a default filter</bullet>
|
||||
<bullet>Provides two groups of accessing filters: sanitizing and logical</bullet>
|
||||
<bullet>Filters can have options to configure their behavior</bullet>
|
||||
</list>
|
||||
</slide>
|
||||
9
slides/input-filter/render-form.php
Normal file
9
slides/input-filter/render-form.php
Normal file
@@ -0,0 +1,9 @@
|
||||
<form action="" method="get">
|
||||
data: <input type="text" name="data" maxlength="64" size="64"/>
|
||||
<table>
|
||||
<?php foreach( $flags as $flagName ) {
|
||||
echo "<tr><td>$flagName</td><td><input type='checkbox' name='$flagName'/></td></tr>";
|
||||
} ?>
|
||||
</table>
|
||||
<input type="submit"/>
|
||||
</form>
|
||||
16
slides/input-filter/sanitizing-filters-tryout.xml
Normal file
16
slides/input-filter/sanitizing-filters-tryout.xml
Normal file
@@ -0,0 +1,16 @@
|
||||
<?xml version="1.0" encoding="ISO-8859-1"?>
|
||||
<slide>
|
||||
<title>Sanitizing filters try-out</title>
|
||||
|
||||
<example result="1"><![CDATA[<form action="" method="get">
|
||||
<input type="text" name="data" maxlength="64" size="64"/>
|
||||
<input type="submit"/>
|
||||
</form>
|
||||
<?php
|
||||
if ( isset( $_GET['data'] ) ) {
|
||||
$filter = ini_get('filter.default');
|
||||
echo "The data filterered through '$filter' is:";
|
||||
var_dump( $_GET['data'] );
|
||||
}
|
||||
?>]]></example>
|
||||
</slide>
|
||||
10
slides/input-filter/sanitizing-filters.xml
Normal file
10
slides/input-filter/sanitizing-filters.xml
Normal file
@@ -0,0 +1,10 @@
|
||||
<?xml version="1.0" encoding="ISO-8859-1"?>
|
||||
<slide>
|
||||
<title>Sanitizing Filters</title>
|
||||
|
||||
<list>
|
||||
<bullet>Allows or disallows characters in a string</bullet>
|
||||
<bullet>Does not take care about data formats</bullet>
|
||||
<bullet>Does not transform types, but keeps strings</bullet>
|
||||
</list>
|
||||
</slide>
|
||||
10
slides/input-filter/validating-filters.xml
Normal file
10
slides/input-filter/validating-filters.xml
Normal file
@@ -0,0 +1,10 @@
|
||||
<?xml version="1.0" encoding="ISO-8859-1"?>
|
||||
<slide>
|
||||
<title>Validating Filters</title>
|
||||
|
||||
<list>
|
||||
<bullet>Analyses the data in a logical way</bullet>
|
||||
<bullet>Understands data formats</bullet>
|
||||
<bullet>Can transform type</bullet>
|
||||
</list>
|
||||
</slide>
|
||||
@@ -127,6 +127,10 @@ div.large_blurb_center {
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
div.blurb_center {
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
div.quote {
|
||||
font-size: 32px;
|
||||
text-align: center;
|
||||
|
||||
6
slides/ranting/100-percent-security.xml
Normal file
6
slides/ranting/100-percent-security.xml
Normal file
@@ -0,0 +1,6 @@
|
||||
<?xml version="1.0" encoding="iso-8859-1"?>
|
||||
<slide>
|
||||
<title>100% security</title>
|
||||
|
||||
<break lines="15"/>
|
||||
</slide>
|
||||
12
slides/ranting/bad-bugreports2.xml
Normal file
12
slides/ranting/bad-bugreports2.xml
Normal file
@@ -0,0 +1,12 @@
|
||||
<?xml version="1.0" encoding="iso-8859-1"?>
|
||||
<slide>
|
||||
<title>Bug Reports #2</title>
|
||||
|
||||
<blurb class="quote">"Dear morons,"</blurb>
|
||||
<blurb class="quote_attr">Bug #15772</blurb>
|
||||
<break lines="2"/>
|
||||
<blurb class="quote">Q: "Please provide REAL reproduce case"</blurb>
|
||||
<blurb class="quote">A: I can't, it's private.</blurb>
|
||||
<blurb class="quote_attr">Bug #38715</blurb>
|
||||
|
||||
</slide>
|
||||
16
slides/ranting/journalists.xml
Normal file
16
slides/ranting/journalists.xml
Normal file
@@ -0,0 +1,16 @@
|
||||
<?xml version="1.0" encoding="iso-8859-1"?>
|
||||
<slide>
|
||||
<title>Journalists need education</title>
|
||||
<subtitle>I am not blaming Zend here</subtitle>
|
||||
|
||||
<break lines="2"/>
|
||||
<blurb class="quote">"One partner is Yahoo, which is helping Zend with version 6 of PHP..."</blurb>
|
||||
<blurb class="quote_attr">http://news.com.com/</blurb>
|
||||
<break lines="2"/>
|
||||
<blurb class="quote">"... six months after Zend's last major product announcements, when it unveiled ... and PHP 5."</blurb>
|
||||
<blurb class="quote_attr">http://www.internetnews.com/dev-news/article.php/3456771</blurb>
|
||||
<break lines="2"/>
|
||||
<blurb class="quote">~Translated from German~: "Currently, the language [PHP] consists of Zend-Core which is developed exclusively by 20 Zend employees"</blurb>
|
||||
<blurb class="quote_attr">http://heftarchiv-cw.computerwoche.de/index.cfm?pid=304&pk=1208251</blurb>
|
||||
|
||||
</slide>
|
||||
10
slides/ranting/php-but-not.xml
Normal file
10
slides/ranting/php-but-not.xml
Normal file
@@ -0,0 +1,10 @@
|
||||
<?xml version="1.0" encoding="iso-8859-1"?>
|
||||
<slide>
|
||||
<title>PHP, but not fully</title>
|
||||
|
||||
<blurb>Roadsend PHP compiler: "an entirely new implementation of PHP that is syntactically and symantically compatible with PHP Group's PHP 4.3.x and the Zend Engine 1"</blurb>
|
||||
<break/>
|
||||
<blurb>Quercus: "Caucho Technology's fast, open-source, 100% Java implementation of the PHP language."</blurb>
|
||||
<break/>
|
||||
<blurb>php4mono: doesn't support "include". On the roadmap is "will implement a basic library containing standard functions available in PHP"</blurb>
|
||||
</slide>
|
||||
7
slides/ranting/title-ecosystem.xml
Normal file
7
slides/ranting/title-ecosystem.xml
Normal file
@@ -0,0 +1,7 @@
|
||||
<?xml version="1.0" encoding="iso-8859-1"?>
|
||||
<slide>
|
||||
<title>Ecosystem</title>
|
||||
|
||||
<break lines="15"/>
|
||||
<blurb class="large_blurb_center">The PHP Ecosystem</blurb>
|
||||
</slide>
|
||||
7
slides/ranting/title-language.xml
Normal file
7
slides/ranting/title-language.xml
Normal file
@@ -0,0 +1,7 @@
|
||||
<?xml version="1.0" encoding="iso-8859-1"?>
|
||||
<slide>
|
||||
<title>Language Issues</title>
|
||||
|
||||
<break lines="15"/>
|
||||
<blurb class="large_blurb_center">The PHP Language</blurb>
|
||||
</slide>
|
||||
11
slides/ranting/we-re-voluteers2.xml
Normal file
11
slides/ranting/we-re-voluteers2.xml
Normal file
@@ -0,0 +1,11 @@
|
||||
<?xml version="1.0" encoding="iso-8859-1"?>
|
||||
<slide>
|
||||
<title>We're Volunteers #3</title>
|
||||
|
||||
<blurb class="quote">Hey developers where are your comments it's been 2 days!</blurb>
|
||||
<blurb class="quote_attr">Bug #36646</blurb>
|
||||
<break lines="2"/>
|
||||
<blurb class="quote">How fucking hard is it to supply an 'argument'?</blurb>
|
||||
<blurb class="quote_attr">Bug #34364</blurb>
|
||||
|
||||
</slide>
|
||||
14
slides/ranting/we-re-voluteers3.xml
Normal file
14
slides/ranting/we-re-voluteers3.xml
Normal file
@@ -0,0 +1,14 @@
|
||||
<?xml version="1.0" encoding="iso-8859-1"?>
|
||||
<slide>
|
||||
<title>We're Volunteers #2</title>
|
||||
|
||||
<blurb class="quote">"PHP is nothing but a bunch of GARBAGE! Every site that I've encountered
|
||||
that uses any form of PHP is FULL OF BUGS, especially photo publishing
|
||||
and uploading sites in particular! I CAN'T BELIEVE you morons would
|
||||
release such a worthless server language into the public that is not
|
||||
even the slightest bit RELIABLE! Do yourselves a favor, TRASH PHP until
|
||||
you can get a bunch of experienced people together who know what the
|
||||
hell they are doing, instead of a bunch of HACKERS!</blurb>
|
||||
<blurb class="quote_attr">Bug #32549</blurb>
|
||||
|
||||
</slide>
|
||||
@@ -5,6 +5,7 @@
|
||||
<list>
|
||||
<bullet>Provide a solid platform for PHP application development</bullet>
|
||||
<bullet>Clean and simple API</bullet>
|
||||
<bullet>Excellent documentation</bullet>
|
||||
<bullet>Keep backward compatibility for longer periods of time</bullet>
|
||||
<bullet>Stable and few regressions</bullet>
|
||||
<bullet>Clean IP, Open Source friendly</bullet>
|
||||
|
||||
Reference in New Issue
Block a user