| Current File : //opt/RZphp5/includes/doc/HTML_Progress2/docs/TDG/ch14s03.html |
<?xml version="1.0" encoding="iso-8859-1"?>
<!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">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>
Reuse CSS
</title>
<link rel="stylesheet" href="book.css" type="text/css" />
<meta name="generator" content="DocBook XSL Stylesheets V1.69.1" />
<link rel="start" href="index.html" title="HTML_Progress2 Manual" />
<link rel="up" href="ch14.html" title=
"Chapter 14. New Features in HTML_Progress2 " />
<link rel="prev" href="ch14s02.html" title="Error Handling" />
<link rel="next" href="pt04.html" title=
"Part IV. Reference Guide" />
<style type="text/css">
/*<![CDATA[*/
body {
background-color: white;
color: black;
}
:link { color: #0000FF }
:visited { color: #840084 }
:active { color: #0000FF }
div.c4 {margin-left: 0.5in; margin-right: 0.5in;}
div.c3 {font-family: monospace;}
p.c2 {font-weight: bold}
h2.c1 {clear: both}
/*]]>*/
</style>
</head>
<body>
<table class="progress2Header">
<tr>
<td>
<img src="img/pear_progress2.gif" align="left" alt=
"PEAR Progress2 logo" />
<h1>
HTML_Progress2 : The Definitive Guide
</h1>
<div class="navheader">
<table width="100%" summary="Navigation header">
<tr>
<th colspan="3" align="center">
Reuse CSS
</th>
</tr>
<tr>
<td width="20%" align="left">
<a accesskey="p" href="ch14s02.html">Prev</a>
</td>
<th width="60%" align="center">
Chapter 14. New Features in HTML_Progress2
</th>
<td width="20%" align="right">
<a accesskey="n" href="pt04.html">Next</a>
</td>
</tr>
</table>
</div>
</td>
</tr>
</table>
<div class="sect1" lang="en" xml:lang="en">
<div class="titlepage">
<h2 class="title c1">
<a name="id4799963" id="id4799963"></a>Reuse CSS
</h2>
</div>
<div class="toc">
<dl>
<dt>
<span class="sect2"><a href="ch14s03.html#id4799982">Step 1 :
Extract Javascript code</a></span>
</dt>
<dt>
<span class="sect2"><a href="ch14s03.html#id4800241">Step 2 :
Extract CSS code</a></span>
</dt>
<dt>
<span class="sect2"><a href="ch14s03.html#id4800337">Step 3 :
Remove HTML_Progress2 css properties</a></span>
</dt>
<dt>
<span class="sect2"><a href="ch14s03.html#id4800430">Step 4 :
Adjust CSS class selector</a></span>
</dt>
<dt>
<span class="sect2"><a href="ch14s03.html#id4799869">Step 5 : play
with new pattern</a></span>
</dt>
</dl>
</div>
<p>
This section is intended to provide a HOWTO guide that you should
follow step by step to discover the new feature of HTML_Progress2
version 2.2.0
</p>
<p>
Until now we should used HTML_Progress2 API to set all styles (color,
size, font, ...) of our progress bars. We will discover now with
<code class="methodname">HTML_Progress2::importStyle()</code> method
that it can be done in one step and PHP code is more reusable. We can
change look and feel only on modify CSS data source.
</p>
<div class="sect2" lang="en" xml:lang="en">
<div class="titlepage">
<h3 class="title">
<a name="id4799982" id="id4799982"></a>Step 1 : Extract Javascript
code
</h3>
</div>
<p>
We will use the <span class="bold"><strong>Ancestor</strong></span>
example (included into the package distribution), all long of this
demonstration.
</p>
<p>
Here are the original source code (without header).
</p>
<div class="example">
<a name="id4800003" id="id4800003"></a>
<p class="title c2">
Example 14.1. script: <code class=
"filename">examples/horizontal/ancestor.php</code>
</p>
<div class="php c3">
<ol>
<li class="li1">
<div class="de1">
<span class="kw2"><?php</span>
</div>
</li>
<li class="li1">
<div class="de1">
<span class="kw1">require_once</span> <span class=
"st0">'HTML/Progress2.php'</span><span class="sy0">;</span>
</div>
</li>
<li class="li1">
<div class="de1">
</div>
</li>
<li class="li1">
<div class="de1">
<span class="re1">$pb</span> <span class="sy0">=</span>
<span class="kw2">new</span> HTML_Progress2<span class=
"br0">(</span><span class="br0">)</span><span class=
"sy0">;</span>
</div>
</li>
<li class="li1">
<div class="de1">
<span class="re1">$pb</span><span class=
"sy0">-></span><span class=
"me1">setAnimSpeed</span><span class=
"br0">(</span><span class="nu0">200</span><span class=
"br0">)</span><span class="sy0">;</span>
</div>
</li>
<li class="li1">
<div class="de1">
<span class="re1">$pb</span><span class=
"sy0">-></span><span class=
"me1">setIncrement</span><span class=
"br0">(</span><span class="nu0">10</span><span class=
"br0">)</span><span class="sy0">;</span>
</div>
</li>
<li class="li1">
<div class="de1">
<span class="re1">$pb</span><span class=
"sy0">-></span><span class=
"me1">setLabelAttributes</span><span class=
"br0">(</span><span class="st0">'pct1'</span><span class=
"sy0">,</span> <span class="kw3">array</span><span class=
"br0">(</span>
</div>
</li>
<li class="li1">
<div class="de1">
<span class="st0">'width'</span> <span class=
"sy0">=></span> <span class="nu0">60</span><span class=
"sy0">,</span>
</div>
</li>
<li class="li1">
<div class="de1">
<span class="st0">'height'</span> <span class=
"sy0">=></span> <span class="nu0">24</span><span class=
"sy0">,</span>
</div>
</li>
<li class="li1">
<div class="de1">
<span class="st0">'top'</span> <span class=
"sy0">=></span> <span class="nu0">0</span><span class=
"sy0">,</span>
</div>
</li>
<li class="li1">
<div class="de1">
<span class="st0">'left'</span> <span class=
"sy0">=></span> <span class="nu0">0</span><span class=
"sy0">,</span>
</div>
</li>
<li class="li1">
<div class="de1">
<span class="st0">'background-color'</span>
<span class="sy0">=></span> <span class=
"st0">'#FFFFFF'</span><span class="sy0">,</span>
</div>
</li>
<li class="li1">
<div class="de1">
<span class="st0">'font-size'</span>
<span class="sy0">=></span> <span class=
"nu0">14</span><span class="sy0">,</span>
</div>
</li>
<li class="li1">
<div class="de1">
<span class="st0">'align'</span> <span class=
"sy0">=></span> <span class="st0">'center'</span>
</div>
</li>
<li class="li1">
<div class="de1">
<span class="br0">)</span><span class=
"br0">)</span><span class="sy0">;</span>
</div>
</li>
<li class="li1">
<div class="de1">
<span class="kw2">?></span>
</div>
</li>
<li class="li1">
<div class="de1">
<span class="sy0"><!</span>DOCTYPE html <span class=
"kw2">PUBLIC</span> <span class="st0">"-//W3C//DTD XHTML 1.0
Strict//EN"</span>
</div>
</li>
<li class="li1">
<div class="de1">
<span class=
"st0">"http://www.w3c.org/TR/xhtml1/DTD/xhtml1-strict.dtd"</span><span class="sy0">></span>
</div>
</li>
<li class="li1">
<div class="de1">
<span class="sy0"><</span>html xmlns<span class=
"sy0">=</span><span class=
"st0">"http://www.w3.org/1999/xhtml"</span> xml<span class=
"sy0">:</span>lang<span class="sy0">=</span><span class=
"st0">"en"</span><span class="sy0">></span>
</div>
</li>
<li class="li1">
<div class="de1">
<span class="sy0"><</span>head<span class=
"sy0">></span>
</div>
</li>
<li class="li1">
<div class="de1">
<span class="sy0"><</span>title<span class=
"sy0">></span>Ancestor Progress2 example<span class=
"sy0"></</span>title<span class="sy0">></span>
</div>
</li>
<li class="li1">
<div class="de1">
<span class="sy0"><</span>style type<span class=
"sy0">=</span><span class="st0">"text/css"</span><span class=
"sy0">></span>
</div>
</li>
<li class="li1">
<div class="de1">
<span class="sy0"><!--</span>
</div>
</li>
<li class="li1">
<div class="de1">
<span class="kw2"><?php</span> <span class=
"kw3">echo</span> <span class="re1">$pb</span><span class=
"sy0">-></span><span class=
"me1">getStyle</span><span class="br0">(</span><span class=
"br0">)</span><span class="sy0">;</span> <span class=
"kw2">?></span>
</div>
</li>
<li class="li1">
<div class="de1">
</div>
</li>
<li class="li1">
<div class="de1">
body <span class="br0">{</span>
</div>
</li>
<li class="li1">
<div class="de1">
background<span class=
"sy0">-</span>color<span class="sy0">:</span> <span class=
"co2">#444444;</span>
</div>
</li>
<li class="li1">
<div class="de1">
<span class="br0">}</span>
</div>
</li>
<li class="li1">
<div class="de1">
<span class="sy0">--></span>
</div>
</li>
<li class="li1">
<div class="de1">
<span class="sy0"></</span>style<span class=
"sy0">></span>
</div>
</li>
<li class="li1 ln-xtra">
<div class="de1">
<span class="kw2"><?php</span> <span class=
"kw3">echo</span> <span class="re1">$pb</span><span class=
"sy0">-></span><span class=
"me1">getScript</span><span class="br0">(</span><span class=
"kw2">false</span><span class="br0">)</span><span class=
"sy0">;</span> <span class="kw2">?></span>
</div>
</li>
<li class="li1">
<div class="de1">
<span class="sy0"></</span>head<span class=
"sy0">></span>
</div>
</li>
<li class="li1">
<div class="de1">
<span class="sy0"><</span>body<span class=
"sy0">></span>
</div>
</li>
<li class="li1">
<div class="de1">
</div>
</li>
<li class="li1">
<div class="de1">
<span class="kw2"><?php</span>
</div>
</li>
<li class="li1">
<div class="de1">
<span class="re1">$pb</span><span class=
"sy0">-></span><span class=
"me1">display</span><span class="br0">(</span><span class=
"br0">)</span><span class="sy0">;</span>
</div>
</li>
<li class="li1">
<div class="de1">
<span class="re1">$pb</span><span class=
"sy0">-></span><span class="me1">run</span><span class=
"br0">(</span><span class="br0">)</span><span class=
"sy0">;</span>
</div>
</li>
<li class="li1">
<div class="de1">
<span class="kw2">?></span>
</div>
</li>
<li class="li1">
<div class="de1">
</div>
</li>
<li class="li1">
<div class="de1">
<span class="sy0"></</span>body<span class=
"sy0">></span>
</div>
</li>
<li class="li1">
<div class="de1">
<span class="sy0"></</span>html<span class=
"sy0">></span>
</div>
</li>
</ol>
</div>
</div>
<div class="variablelist">
<dl>
<dt>
<span class="term">Line 31 :</span>
</dt>
<dd>
<p>
Due to minor fix we have to do later in javascript code, lets
begin by replace this line by a reference to an external JS
file.
</p>
<div class="html4strict c3">
<ol>
<li class="li1">
<div class="de1">
<span class="sc2"><span class="kw2"><script</span>
<span class="kw3">type</span><span class=
"sy0">=</span><span class="st0">"text/javascript"</span>
<span class="kw3">src</span><span class=
"sy0">=</span><span class=
"st0">"progress2BasicHandler.js"</span><span class=
"kw2">></span></span><span class=
"sc2 kw2"></script></span>
</div>
</li>
</ol>
</div>
<p>
What content is :
</p>
<div class="example">
<a name="id4800080" id="id4800080"></a>
<p class="title c2">
Example 14.2. script: <code class=
"filename">progress2BasicHandler.js</code>
</p>
<div class="javascript c3">
<ol>
<li class="li1">
<div class="de1">
<span class="kw2">function</span>
setProgress<span class="br0">(</span>pIdent, pValue,
pDeterminate, pCellCount<span class="br0">)</span>
</div>
</li>
<li class="li1">
<div class="de1">
<span class="br0">{</span>
</div>
</li>
<li class="li1">
<div class="de1">
<span class="kw1">if</span> <span class=
"br0">(</span>pValue == pDeterminate<span class=
"br0">)</span> <span class="br0">{</span>
</div>
</li>
<li class="li1">
<div class="de1">
<span class=
"kw1">for</span> <span class="br0">(</span><span class=
"kw2">var</span> i = <span class="nu0">0</span>; i
<span class="sy0"><</span> pCellCount;
i++<span class="br0">)</span> <span class=
"br0">{</span>
</div>
</li>
<li class="li1">
<div class="de1">
showCell<span class="br0">(</span>i, pIdent,
<span class="st0">'I'</span><span class="br0">)</span>;
</div>
</li>
<li class="li1">
<div class="de1">
<span class="br0">}</span>
</div>
</li>
<li class="li1">
<div class="de1">
<span class="br0">}</span>
</div>
</li>
<li class="li1">
<div class="de1">
<span class="kw1">if</span> <span class=
"br0">(</span><span class="br0">(</span>pDeterminate
<span class="sy0">></span> <span class=
"nu0">0</span><span class="br0">)</span> <span class=
"sy0">&&</span> <span class=
"br0">(</span>pValue <span class="sy0">></span>
<span class="nu0">0</span><span class=
"br0">)</span><span class="br0">)</span> <span class=
"br0">{</span>
</div>
</li>
<li class="li1">
<div class="de1">
<span class=
"kw2">var</span> i = <span class="br0">(</span>pValue -
<span class="nu0">1</span><span class="br0">)</span>
<span class="sy0">%</span> pCellCount;
</div>
</li>
<li class="li1">
<div class="de1">
showCell<span class=
"br0">(</span>i, pIdent, <span class=
"st0">'A'</span><span class="br0">)</span>;
</div>
</li>
<li class="li1">
<div class="de1">
<span class="br0">}</span> <span class=
"kw1">else</span> <span class="br0">{</span>
</div>
</li>
<li class="li1">
<div class="de1">
<span class=
"kw1">for</span> <span class="br0">(</span><span class=
"kw2">var</span> i = pValue - <span class=
"nu0">1</span>; i <span class="sy0">></span>=
<span class="nu0">0</span>; i--<span class=
"br0">)</span> <span class="br0">{</span>
</div>
</li>
<li class="li1">
<div class="de1">
showCell<span class="br0">(</span>i, pIdent,
<span class="st0">'A'</span><span class="br0">)</span>;
</div>
</li>
<li class="li1">
<div class="de1">
<span class="br0">}</span>
</div>
</li>
<li class="li1">
<div class="de1">
<span class="br0">}</span>
</div>
</li>
<li class="li1">
<div class="de1">
<span class="br0">}</span>
</div>
</li>
<li class="li1">
<div class="de1">
</div>
</li>
<li class="li1">
<div class="de1">
<span class="kw2">function</span> showCell<span class=
"br0">(</span>pCell, pIdent, pVisibility<span class=
"br0">)</span>
</div>
</li>
<li class="li1">
<div class="de1">
<span class="br0">{</span>
</div>
</li>
<li class="li1">
<div class="de1">
<span class="kw2">var</span> <span class=
"kw3">name</span> = <span class="st0">'pcel'</span> +
pCell + pIdent;
</div>
</li>
<li class="li1">
<div class="de1">
<span class="kw2">var</span> cellElement
= document.<span class=
"me1">getElementById</span><span class=
"br0">(</span><span class="kw3">name</span><span class=
"br0">)</span>;
</div>
</li>
<li class="li1">
<div class="de1">
cellElement.<span class=
"me1">className</span> = <span class=
"st0">'cell'</span> + pIdent + pVisibility;
</div>
</li>
<li class="li1">
<div class="de1">
<span class="br0">}</span>
</div>
</li>
<li class="li1">
<div class="de1">
</div>
</li>
<li class="li1">
<div class="de1">
<span class="kw2">function</span>
hideProgress<span class=
"br0">(</span>pIdent<span class="br0">)</span>
</div>
</li>
<li class="li1">
<div class="de1">
<span class="br0">{</span>
</div>
</li>
<li class="li1">
<div class="de1">
<span class="kw2">var</span> <span class=
"kw3">name</span> = <span class="st0">'tfrm'</span> +
pIdent;
</div>
</li>
<li class="li1">
<div class="de1">
<span class="kw2">var</span> tfrm =
document.<span class=
"me1">getElementById</span><span class=
"br0">(</span><span class="kw3">name</span><span class=
"br0">)</span>;
</div>
</li>
<li class="li1">
<div class="de1">
tfrm.<span class=
"me1">style</span>.<span class="me1">visibility</span>
= <span class="st0">"hidden"</span>;
</div>
</li>
<li class="li1">
<div class="de1">
<span class="br0">}</span>
</div>
</li>
<li class="li1">
<div class="de1">
</div>
</li>
<li class="li1">
<div class="de1">
<span class="kw2">function</span>
setLabelText<span class="br0">(</span>pIdent, pName,
pText<span class="br0">)</span>
</div>
</li>
<li class="li1">
<div class="de1">
<span class="br0">{</span>
</div>
</li>
<li class="li1">
<div class="de1">
<span class="kw2">var</span> <span class=
"kw3">name</span> = <span class="st0">'plbl'</span> +
pName + pIdent;
</div>
</li>
<li class="li1">
<div class="de1">
document.<span class=
"me1">getElementById</span><span class=
"br0">(</span><span class="kw3">name</span><span class=
"br0">)</span>.<span class=
"me1">firstChild</span>.<span class=
"me1">nodeValue</span> = pText;
</div>
</li>
<li class="li1">
<div class="de1">
<span class="br0">}</span>
</div>
</li>
<li class="li1">
<div class="de1">
</div>
</li>
<li class="li1">
<div class="de1">
<span class="kw2">function</span>
setElementStyle<span class="br0">(</span>pPrefix,
pName, pIdent, pStyles<span class="br0">)</span>
</div>
</li>
<li class="li1">
<div class="de1">
<span class="br0">{</span>
</div>
</li>
<li class="li1">
<div class="de1">
<span class="kw2">var</span> <span class=
"kw3">name</span> = pPrefix + pName + pIdent;
</div>
</li>
<li class="li1">
<div class="de1">
<span class="kw2">var</span> styles =
pStyles.<span class="me1">split</span><span class=
"br0">(</span><span class="st0">';'</span><span class=
"br0">)</span>;
</div>
</li>
<li class="li1">
<div class="de1">
styles.<span class=
"me1">pop</span><span class="br0">(</span><span class=
"br0">)</span>;
</div>
</li>
<li class="li1">
<div class="de1">
<span class="kw1">for</span> <span class=
"br0">(</span><span class="kw2">var</span> i =
<span class="nu0">0</span>; i <span class=
"sy0"><</span> styles.<span class=
"me1">length</span>; i++<span class="br0">)</span>
<span class="br0">{</span>
</div>
</li>
<li class="li1">
<div class="de1">
<span class=
"kw2">var</span> s = styles<span class=
"br0">[</span>i<span class="br0">]</span>.<span class=
"me1">split</span><span class=
"br0">(</span><span class="st0">':'</span><span class=
"br0">)</span>;
</div>
</li>
<li class="li1">
<div class="de1">
<span class=
"kw2">var</span> c = <span class=
"st0">'document.getElementById(name).style.'</span> +
s<span class="br0">[</span><span class=
"nu0">0</span><span class="br0">]</span> + <span class=
"st0">'="'</span> + s<span class=
"br0">[</span><span class="nu0">1</span><span class=
"br0">]</span> + <span class="st0">'"'</span>;
</div>
</li>
<li class="li1">
<div class="de1">
<span class=
"kw1">eval</span><span class=
"br0">(</span>c<span class="br0">)</span>;
</div>
</li>
<li class="li1">
<div class="de1">
<span class="br0">}</span>
</div>
</li>
<li class="li1">
<div class="de1">
<span class="br0">}</span>
</div>
</li>
<li class="li1">
<div class="de1">
</div>
</li>
<li class="li1">
<div class="de1">
<span class="kw2">function</span>
setRotaryCross<span class="br0">(</span>pIdent,
pName<span class="br0">)</span>
</div>
</li>
<li class="li1">
<div class="de1">
<span class="br0">{</span>
</div>
</li>
<li class="li1">
<div class="de1">
<span class="kw2">var</span> <span class=
"kw3">name</span> = <span class="st0">'plbl'</span> +
pName + pIdent;
</div>
</li>
<li class="li1">
<div class="de1">
<span class="kw2">var</span> cross =
document.<span class=
"me1">getElementById</span><span class=
"br0">(</span><span class="kw3">name</span><span class=
"br0">)</span>.<span class=
"me1">firstChild</span>.<span class=
"me1">nodeValue</span>;
</div>
</li>
<li class="li1">
<div class="de1">
<span class=
"kw1">switch</span><span class=
"br0">(</span>cross<span class="br0">)</span>
<span class="br0">{</span>
</div>
</li>
<li class="li1">
<div class="de1">
<span class=
"kw1">case</span> <span class="st0">"--"</span>: cross
= <span class="st0">"<span class=
"es0">\\</span>"</span>; <span class=
"kw1">break</span>;
</div>
</li>
<li class="li1">
<div class="de1">
<span class=
"kw1">case</span> <span class="st0">"<span class=
"es0">\\</span>"</span>: cross = <span class=
"st0">"|"</span>; <span class="kw1">break</span>;
</div>
</li>
<li class="li1">
<div class="de1">
<span class=
"kw1">case</span> <span class="st0">"|"</span>: cross =
<span class="st0">"/"</span>; <span class=
"kw1">break</span>;
</div>
</li>
<li class="li1">
<div class="de1">
<span class=
"kw2">default</span>: cross = <span class=
"st0">"--"</span>; <span class="kw1">break</span>;
</div>
</li>
<li class="li1">
<div class="de1">
<span class="br0">}</span>
</div>
</li>
<li class="li1">
<div class="de1">
document.<span class=
"me1">getElementById</span><span class=
"br0">(</span><span class="kw3">name</span><span class=
"br0">)</span>.<span class=
"me1">firstChild</span>.<span class=
"me1">nodeValue</span> = cross;
</div>
</li>
<li class="li1">
<div class="de1">
<span class="br0">}</span>
</div>
</li>
</ol>
</div>
</div>
</dd>
</dl>
</div>
</div>
<div class="sect2" lang="en" xml:lang="en">
<div class="titlepage">
<h3 class="title">
<a name="id4800241" id="id4800241"></a>Step 2 : Extract CSS code
</h3>
</div>
<p>
First, identify the progress bar with a static identifier, for
example <code class="literal">PB1</code>. (see line 5), rather than
used the default identifier that change on each run.
</p>
<div class="php c3">
<ol>
<li class="li1">
<div class="de1">
<span class="kw2"><?php</span>
</div>
</li>
<li class="li1">
<div class="de1">
<span class="kw1">require_once</span> <span class=
"st0">'HTML/Progress2.php'</span><span class="sy0">;</span>
</div>
</li>
<li class="li1">
<div class="de1">
</div>
</li>
<li class="li1">
<div class="de1">
<span class="re1">$pb</span> <span class="sy0">=</span>
<span class="kw2">new</span> HTML_Progress2<span class=
"br0">(</span><span class="br0">)</span><span class=
"sy0">;</span>
</div>
</li>
<li class="li1 ln-xtra">
<div class="de1">
<span class="re1">$pb</span><span class=
"sy0">-></span><span class="me1">setIdent</span><span class=
"br0">(</span><span class="st0">'PB1'</span><span class=
"br0">)</span><span class="sy0">;</span>
</div>
</li>
<li class="li1">
<div class="de1">
<span class="co1">//...</span>
</div>
</li>
<li class="li1">
<div class="de1">
<span class="kw2">?></span>
</div>
</li>
<li class="li1">
<div class="de1">
<span class="sy0"><!</span>DOCTYPE html <span class=
"kw2">PUBLIC</span> <span class="st0">"-//W3C//DTD XHTML 1.0
Strict//EN"</span>
</div>
</li>
<li class="li1">
<div class="de1">
<span class=
"st0">"http://www.w3c.org/TR/xhtml1/DTD/xhtml1-strict.dtd"</span><span class="sy0">></span>
</div>
</li>
<li class="li1">
<div class="de1">
<span class="sy0"><</span>html xmlns<span class=
"sy0">=</span><span class=
"st0">"http://www.w3.org/1999/xhtml"</span> xml<span class=
"sy0">:</span>lang<span class="sy0">=</span><span class=
"st0">"en"</span><span class="sy0">></span>
</div>
</li>
<li class="li1">
<div class="de1">
<span class="sy0"><</span>head<span class="sy0">></span>
</div>
</li>
<li class="li1">
<div class="de1">
<span class="sy0"><</span>title<span class=
"sy0">></span>Ancestor Progress2 example<span class=
"sy0"></</span>title<span class="sy0">></span>
</div>
</li>
<li class="li1">
<div class="de1">
<span class="sy0"><</span>style type<span class=
"sy0">=</span><span class="st0">"text/css"</span><span class=
"sy0">></span>
</div>
</li>
<li class="li1">
<div class="de1">
<span class="sy0"><!--</span>
</div>
</li>
<li class="li1 ln-xtra">
<div class="de1">
<span class="kw2"><?php</span> <span class="kw3">echo</span>
<span class="re1">$pb</span><span class=
"sy0">-></span><span class="me1">getStyle</span><span class=
"br0">(</span><span class="br0">)</span><span class=
"sy0">;</span> <span class="kw2">?></span>
</div>
</li>
<li class="li1">
<div class="de1">
</div>
</li>
<li class="li1">
<div class="de1">
body <span class="br0">{</span>
</div>
</li>
<li class="li1">
<div class="de1">
background<span class=
"sy0">-</span>color<span class="sy0">:</span> <span class=
"co2">#444444;</span>
</div>
</li>
<li class="li1">
<div class="de1">
<span class="br0">}</span>
</div>
</li>
<li class="li1">
<div class="de1">
<span class="sy0">--></span>
</div>
</li>
<li class="li1">
<div class="de1">
<span class="sy0"></</span>style<span class=
"sy0">></span>
</div>
</li>
<li class="li1">
<div class="de1">
<span class="kw2"><?php</span> <span class="kw3">echo</span>
<span class="re1">$pb</span><span class=
"sy0">-></span><span class=
"me1">getScript</span><span class="br0">(</span><span class=
"kw2">false</span><span class="br0">)</span><span class=
"sy0">;</span> <span class="kw2">?></span>
</div>
</li>
<li class="li1">
<div class="de1">
<span class="sy0"></</span>head<span class="sy0">></span>
</div>
</li>
</ol>
</div>
<div class="variablelist">
<dl>
<dt>
<span class="term">Line 15 :</span>
</dt>
<dd>
<p>
Replace dynamic reference <code class=
"methodname">HTML_Progress2::getStyle()</code> to inline
stylesheet by a reference to a static file <code class=
"filename">ancestor.css</code>.
</p>
<div class="html4strict c3">
<ol>
<li class="li1">
<div class="de1">
<span class="sc2"><span class="kw2"><link</span>
<span class="kw3">rel</span><span class=
"sy0">=</span><span class="st0">"stylesheet"</span>
<span class="kw3">type</span><span class=
"sy0">=</span><span class="st0">"text/css"</span>
<span class="kw3">href</span><span class=
"sy0">=</span><span class="st0">"ancestor.css"</span>
<span class="sy0">/</span><span class=
"kw2">></span></span>
</div>
</li>
</ol>
</div>
<p>
What content is :
</p>
<div class="example">
<a name="id4800301" id="id4800301"></a>
<p class="title c2">
Example 14.3. <code class=
"filename">ancestor.css</code>
</p>
<div class="css c3">
<ol>
<li class="li1">
<div class="de1">
<span class="re1">.cellPB1I</span>, <span class=
"re1">.cellPB1A</span> <span class="br0">{</span>
</div>
</li>
<li class="li1">
<div class="de1">
<span class="kw1">width</span><span class=
"sy0">:</span> <span class=
"re3">15px</span><span class="sy0">;</span>
</div>
</li>
<li class="li1">
<div class="de1">
<span class="kw1">height</span><span class=
"sy0">:</span> <span class=
"re3">20px</span><span class="sy0">;</span>
</div>
</li>
<li class="li1">
<div class="de1">
<span class="kw1">font-family</span><span class=
"sy0">:</span> Courier, Verdana<span class=
"sy0">;</span>
</div>
</li>
<li class="li1">
<div class="de1">
<span class="kw1">font-size</span><span class=
"sy0">:</span> <span class="re3">8px</span><span class=
"sy0">;</span>
</div>
</li>
<li class="li1">
<div class="de1">
<span class="kw1">float</span><span class=
"sy0">:</span> <span class=
"kw1">left</span><span class="sy0">;</span>
</div>
</li>
<li class="li1">
<div class="de1">
<span class="br0">}</span>
</div>
</li>
<li class="li1">
<div class="de1">
</div>
</li>
<li class="li1">
<div class="de1">
<span class="re1">.progressBorderPB1</span>
<span class="br0">{</span>
</div>
</li>
<li class="li1">
<div class="de1">
<span class="kw1">width</span><span class=
"sy0">:</span> <span class=
"re3">172px</span><span class="sy0">;</span>
</div>
</li>
<li class="li1">
<div class="de1">
<span class="kw1">height</span><span class=
"sy0">:</span> <span class=
"re3">24px</span><span class="sy0">;</span>
</div>
</li>
<li class="li1">
<div class="de1">
<span class=
"kw1">background-color</span><span class="sy0">:</span>
<span class="re0">#FFFFFF</span><span class=
"sy0">;</span>
</div>
</li>
<li class="li1">
<div class="de1">
<span class="br0">}</span>
</div>
</li>
<li class="li1">
<div class="de1">
</div>
</li>
<li class="li1">
<div class="de1">
<span class="re1">.progressPercentLabelpct1PB1</span>
<span class="br0">{</span>
</div>
</li>
<li class="li1">
<div class="de1">
<span class="kw1">width</span><span class=
"sy0">:</span> <span class=
"re3">60px</span><span class="sy0">;</span>
</div>
</li>
<li class="li1">
<div class="de1">
<span class="kw1">height</span><span class=
"sy0">:</span> <span class=
"re3">24px</span><span class="sy0">;</span>
</div>
</li>
<li class="li1">
<div class="de1">
<span class="kw1">text-align</span><span class=
"sy0">:</span> <span class=
"kw2">center</span><span class="sy0">;</span>
</div>
</li>
<li class="li1">
<div class="de1">
<span class=
"kw1">background-color</span><span class="sy0">:</span>
<span class="re0">#FFFFFF</span><span class=
"sy0">;</span>
</div>
</li>
<li class="li1">
<div class="de1">
<span class="kw1">font-size</span><span class=
"sy0">:</span> <span class=
"re3">14px</span><span class="sy0">;</span>
</div>
</li>
<li class="li1">
<div class="de1">
<span class="kw1">font-family</span><span class=
"sy0">:</span> Verdana, Tahoma, Arial<span class=
"sy0">;</span>
</div>
</li>
<li class="li1">
<div class="de1">
<span class="kw1">font-weight</span><span class=
"sy0">:</span> <span class=
"kw2">normal</span><span class="sy0">;</span>
</div>
</li>
<li class="li1">
<div class="de1">
<span class="kw1">color</span><span class=
"sy0">:</span> <span class="re0">#<span class=
"nu0">000000</span></span><span class="sy0">;</span>
</div>
</li>
<li class="li1">
<div class="de1">
<span class="br0">}</span>
</div>
</li>
<li class="li1">
<div class="de1">
</div>
</li>
<li class="li1">
<div class="de1">
<span class="re1">.cellPB1I</span> <span class=
"br0">{</span>
</div>
</li>
<li class="li1">
<div class="de1">
<span class=
"kw1">background-color</span><span class="sy0">:</span>
<span class="re0">#CCCCCC</span><span class=
"sy0">;</span>
</div>
</li>
<li class="li1">
<div class="de1">
<span class="br0">}</span>
</div>
</li>
<li class="li1">
<div class="de1">
</div>
</li>
<li class="li1">
<div class="de1">
<span class="re1">.cellPB1A</span> <span class=
"br0">{</span>
</div>
</li>
<li class="li1">
<div class="de1">
<span class=
"kw1">background-color</span><span class="sy0">:</span>
<span class="re0">#<span class=
"nu0">006600</span></span><span class="sy0">;</span>
</div>
</li>
<li class="li1">
<div class="de1">
<span class="br0">}</span>
</div>
</li>
</ol>
</div>
</div>
<p>
And don't forget to add the new method <code class=
"methodname">HTML_Progress2::importStyle()</code> to your PHP
script, with url of your external stylesheet.
</p>
<div class="php c3">
<ol>
<li class="li1">
<div class="de1">
<span class="kw2"><?php</span>
</div>
</li>
<li class="li1">
<div class="de1">
<span class="co1">// ...</span>
</div>
</li>
<li class="li1">
<div class="de1">
</div>
</li>
<li class="li1 ln-xtra">
<div class="de1">
<span class="re1">$pb</span><span class=
"sy0">-></span><span class=
"me1">importStyle</span><span class=
"br0">(</span><span class=
"st0">'ancestor.css'</span><span class=
"br0">)</span><span class="sy0">;</span>
</div>
</li>
<li class="li1">
<div class="de1">
<span class="kw2">?></span>
</div>
</li>
<li class="li1">
<div class="de1">
<span class="sy0"><!</span>DOCTYPE html <span class=
"kw2">PUBLIC</span> <span class="st0">"-//W3C//DTD XHTML
1.0 Strict//EN"</span>
</div>
</li>
<li class="li1">
<div class="de1">
<span class=
"st0">"http://www.w3c.org/TR/xhtml1/DTD/xhtml1-strict.dtd"</span><span class="sy0">></span>
</div>
</li>
<li class="li1">
<div class="de1">
<span class="sy0"><</span>html xmlns<span class=
"sy0">=</span><span class=
"st0">"http://www.w3.org/1999/xhtml"</span>
xml<span class="sy0">:</span>lang<span class=
"sy0">=</span><span class="st0">"en"</span><span class=
"sy0">></span>
</div>
</li>
<li class="li1">
<div class="de1">
<span class="sy0"><</span>head<span class=
"sy0">></span>
</div>
</li>
<li class="li1">
<div class="de1">
</div>
</li>
<li class="li1">
<div class="de1">
<span class="sy0"><!--</span> <span class=
"sy0">...</span> <span class="sy0">--></span>
</div>
</li>
<li class="li1">
<div class="de1">
</div>
</li>
<li class="li1">
<div class="de1">
<span class="sy0"></</span>html<span class=
"sy0">></span>
</div>
</li>
</ol>
</div>
</dd>
</dl>
</div>
</div>
<div class="sect2" lang="en" xml:lang="en">
<div class="titlepage">
<h3 class="title">
<a name="id4800337" id="id4800337"></a>Step 3 : Remove
HTML_Progress2 css properties
</h3>
</div>
<p>
If you have followed all previous explains, your code should be
something like this one :
</p>
<div class="php c3">
<ol>
<li class="li1">
<div class="de1">
<span class="kw2"><?php</span>
</div>
</li>
<li class="li1">
<div class="de1">
<span class="kw1">require_once</span> <span class=
"st0">'HTML/Progress2.php'</span><span class="sy0">;</span>
</div>
</li>
<li class="li1">
<div class="de1">
</div>
</li>
<li class="li1">
<div class="de1">
<span class="re1">$pb</span> <span class="sy0">=</span>
<span class="kw2">new</span> HTML_Progress2<span class=
"br0">(</span><span class="br0">)</span><span class=
"sy0">;</span>
</div>
</li>
<li class="li1">
<div class="de1">
<span class="re1">$pb</span><span class=
"sy0">-></span><span class="me1">setIdent</span><span class=
"br0">(</span><span class="st0">'PB1'</span><span class=
"br0">)</span><span class="sy0">;</span>
</div>
</li>
<li class="li1">
<div class="de1">
<span class="re1">$pb</span><span class=
"sy0">-></span><span class=
"me1">setAnimSpeed</span><span class="br0">(</span><span class=
"nu0">200</span><span class="br0">)</span><span class=
"sy0">;</span>
</div>
</li>
<li class="li1">
<div class="de1">
<span class="re1">$pb</span><span class=
"sy0">-></span><span class=
"me1">setIncrement</span><span class="br0">(</span><span class=
"nu0">10</span><span class="br0">)</span><span class=
"sy0">;</span>
</div>
</li>
<li class="li1">
<div class="de1">
</div>
</li>
<li class="li1">
<div class="de1">
<span class="re1">$pb</span><span class=
"sy0">-></span><span class=
"me1">setLabelAttributes</span><span class=
"br0">(</span><span class="st0">'pct1'</span><span class=
"sy0">,</span> <span class="kw3">array</span><span class=
"br0">(</span>
</div>
</li>
<li class="li1 ln-xtra">
<div class="de1">
<span class="st0">'width'</span> <span class=
"sy0">=></span> <span class="nu0">60</span><span class=
"sy0">,</span>
</div>
</li>
<li class="li1 ln-xtra">
<div class="de1">
<span class="st0">'height'</span> <span class=
"sy0">=></span> <span class="nu0">24</span><span class=
"sy0">,</span>
</div>
</li>
<li class="li1 ln-xtra">
<div class="de1">
<span class="st0">'top'</span> <span class=
"sy0">=></span> <span class="nu0">0</span><span class=
"sy0">,</span>
</div>
</li>
<li class="li1 ln-xtra">
<div class="de1">
<span class="st0">'left'</span> <span class=
"sy0">=></span> <span class="nu0">0</span><span class=
"sy0">,</span>
</div>
</li>
<li class="li1 ln-xtra">
<div class="de1">
<span class="st0">'background-color'</span>
<span class="sy0">=></span> <span class=
"st0">'#FFFFFF'</span><span class="sy0">,</span>
</div>
</li>
<li class="li1 ln-xtra">
<div class="de1">
<span class="st0">'font-size'</span> <span class=
"sy0">=></span> <span class="nu0">14</span><span class=
"sy0">,</span>
</div>
</li>
<li class="li1 ln-xtra">
<div class="de1">
<span class="st0">'align'</span> <span class=
"sy0">=></span> <span class="st0">'center'</span>
</div>
</li>
<li class="li1">
<div class="de1">
<span class="br0">)</span><span class=
"br0">)</span><span class="sy0">;</span>
</div>
</li>
<li class="li1">
<div class="de1">
</div>
</li>
<li class="li1">
<div class="de1">
<span class="re1">$pb</span><span class=
"sy0">-></span><span class=
"me1">importStyle</span><span class="br0">(</span><span class=
"st0">'ancestor.css'</span><span class=
"br0">)</span><span class="sy0">;</span>
</div>
</li>
<li class="li1">
<div class="de1">
<span class="kw2">?></span>
</div>
</li>
<li class="li1">
<div class="de1">
<span class="sy0"><!</span>DOCTYPE html <span class=
"kw2">PUBLIC</span> <span class="st0">"-//W3C//DTD XHTML 1.0
Strict//EN"</span>
</div>
</li>
<li class="li1">
<div class="de1">
<span class=
"st0">"http://www.w3c.org/TR/xhtml1/DTD/xhtml1-strict.dtd"</span><span class="sy0">></span>
</div>
</li>
<li class="li1">
<div class="de1">
<span class="sy0"><</span>html xmlns<span class=
"sy0">=</span><span class=
"st0">"http://www.w3.org/1999/xhtml"</span> xml<span class=
"sy0">:</span>lang<span class="sy0">=</span><span class=
"st0">"en"</span><span class="sy0">></span>
</div>
</li>
<li class="li1">
<div class="de1">
<span class="sy0"><</span>head<span class="sy0">></span>
</div>
</li>
<li class="li1">
<div class="de1">
<span class="sy0"><</span>title<span class=
"sy0">></span>Ancestor Progress2 example<span class=
"sy0"></</span>title<span class="sy0">></span>
</div>
</li>
<li class="li1">
<div class="de1">
<span class="sy0"><</span>link rel<span class=
"sy0">=</span><span class="st0">"stylesheet"</span>
type<span class="sy0">=</span><span class=
"st0">"text/css"</span> href<span class=
"sy0">=</span><span class="st0">"ancestor.css"</span>
<span class="sy0">/></span>
</div>
</li>
<li class="li1">
<div class="de1">
<span class="sy0"><</span>style type<span class=
"sy0">=</span><span class="st0">"text/css"</span><span class=
"sy0">></span>
</div>
</li>
<li class="li1">
<div class="de1">
<span class="sy0"><!--</span>
</div>
</li>
<li class="li1">
<div class="de1">
body <span class="br0">{</span>
</div>
</li>
<li class="li1">
<div class="de1">
background<span class=
"sy0">-</span>color<span class="sy0">:</span> <span class=
"co2">#444444;</span>
</div>
</li>
<li class="li1">
<div class="de1">
<span class="br0">}</span>
</div>
</li>
<li class="li1">
<div class="de1">
<span class="sy0">--></span>
</div>
</li>
<li class="li1">
<div class="de1">
<span class="sy0"></</span>style<span class=
"sy0">></span>
</div>
</li>
<li class="li1">
<div class="de1">
<span class="sy0"><</span>script type<span class=
"sy0">=</span><span class="st0">"text/javascript"</span>
src<span class="sy0">=</span><span class=
"st0">"progress2BasicHandler.js"</span><span class=
"sy0">></</span>script<span class="sy0">></span>
</div>
</li>
<li class="li1">
<div class="de1">
<span class="sy0"></</span>head<span class="sy0">></span>
</div>
</li>
<li class="li1">
<div class="de1">
<span class="sy0"><</span>body<span class="sy0">></span>
</div>
</li>
<li class="li1">
<div class="de1">
</div>
</li>
<li class="li1">
<div class="de1">
<span class="kw2"><?php</span>
</div>
</li>
<li class="li1">
<div class="de1">
<span class="re1">$pb</span><span class=
"sy0">-></span><span class="me1">display</span><span class=
"br0">(</span><span class="br0">)</span><span class=
"sy0">;</span>
</div>
</li>
<li class="li1">
<div class="de1">
<span class="re1">$pb</span><span class=
"sy0">-></span><span class="me1">run</span><span class=
"br0">(</span><span class="br0">)</span><span class=
"sy0">;</span>
</div>
</li>
<li class="li1">
<div class="de1">
<span class="kw2">?></span>
</div>
</li>
<li class="li1">
<div class="de1">
</div>
</li>
<li class="li1">
<div class="de1">
<span class="sy0"></</span>body<span class="sy0">></span>
</div>
</li>
<li class="li1">
<div class="de1">
<span class="sy0"></</span>html<span class="sy0">></span>
</div>
</li>
</ol>
</div>
<div class="variablelist">
<dl>
<dt>
<span class="term">Lines 10-11, 14-15 :</span>
</dt>
<dd>
<p>
These lines corresponding to same CSS properties from
<code class="literal">.progressPercentLabelpct1PB1</code> class
selector.
</p>
</dd>
<dt>
<span class="term">Lines 12-13 :</span>
</dt>
<dd>
<p>
Defines the progress bar position (relative) into browser
frame.
</p>
</dd>
<dt>
<span class="term">Line 16 :</span>
</dt>
<dd>
<p>
Give percent text label alignment. There is no CSS property
equivalence.
</p>
</dd>
</dl>
</div>
<div class="important c4">
<table border="0" summary="Important">
<tr>
<td rowspan="2" align="center" valign="top" width="48">
<img alt="[Important]" src="img/admons/important.png" />
</td>
<th align="left">
Important
</th>
</tr>
<tr>
<td align="left" valign="top">
Don't forget to remove lines 10-11, 14-15 to get PHP code
without CSS references.
</td>
</tr>
</table>
</div>
</div>
<div class="sect2" lang="en" xml:lang="en">
<div class="titlepage">
<h3 class="title">
<a name="id4800430" id="id4800430"></a>Step 4 : Adjust CSS class
selector
</h3>
</div>
<p>
To get possibility to handle all your progress bar look and feel
(style) with only a stylesheet, we still need to modify the PHP
script and a little line in JS script.
</p>
<p>
Begin with PHP source code :
</p>
<div class="php c3">
<ol>
<li class="li1">
<div class="de1">
<span class="kw2"><?php</span>
</div>
</li>
<li class="li1">
<div class="de1">
<span class="kw1">require_once</span> <span class=
"st0">'HTML/Progress2.php'</span><span class="sy0">;</span>
</div>
</li>
<li class="li1">
<div class="de1">
</div>
</li>
<li class="li1">
<div class="de1">
<span class="re1">$pb</span> <span class="sy0">=</span>
<span class="kw2">new</span> HTML_Progress2<span class=
"br0">(</span><span class="br0">)</span><span class=
"sy0">;</span>
</div>
</li>
<li class="li1">
<div class="de1">
<span class="re1">$pb</span><span class=
"sy0">-></span><span class="me1">setIdent</span><span class=
"br0">(</span><span class="st0">'PB1'</span><span class=
"br0">)</span><span class="sy0">;</span>
</div>
</li>
<li class="li1">
<div class="de1">
<span class="re1">$pb</span><span class=
"sy0">-></span><span class=
"me1">setAnimSpeed</span><span class="br0">(</span><span class=
"nu0">200</span><span class="br0">)</span><span class=
"sy0">;</span>
</div>
</li>
<li class="li1">
<div class="de1">
<span class="re1">$pb</span><span class=
"sy0">-></span><span class=
"me1">setIncrement</span><span class="br0">(</span><span class=
"nu0">10</span><span class="br0">)</span><span class=
"sy0">;</span>
</div>
</li>
<li class="li1">
<div class="de1">
</div>
</li>
<li class="li1 ln-xtra">
<div class="de1">
<span class="re1">$pb</span><span class=
"sy0">-></span><span class=
"me1">setBorderAttributes</span><span class=
"br0">(</span><span class=
"st0">'class=progressBorder'</span><span class=
"br0">)</span><span class="sy0">;</span>
</div>
</li>
<li class="li1 ln-xtra">
<div class="de1">
<span class="re1">$pb</span><span class=
"sy0">-></span><span class=
"me1">setCellAttributes</span><span class=
"br0">(</span><span class="st0">'class=cell'</span><span class=
"br0">)</span><span class="sy0">;</span>
</div>
</li>
<li class="li1">
<div class="de1">
<span class="re1">$pb</span><span class=
"sy0">-></span><span class=
"me1">setLabelAttributes</span><span class=
"br0">(</span><span class="st0">'pct1'</span><span class=
"sy0">,</span> <span class="kw3">array</span><span class=
"br0">(</span>
</div>
</li>
<li class="li1 ln-xtra">
<div class="de1">
<span class="st0">'class'</span> <span class=
"sy0">=></span> <span class=
"st0">'progressPercentLabel'</span><span class="sy0">,</span>
</div>
</li>
<li class="li1">
<div class="de1">
<span class="st0">'top'</span> <span class=
"sy0">=></span> <span class="nu0">0</span><span class=
"sy0">,</span>
</div>
</li>
<li class="li1">
<div class="de1">
<span class="st0">'left'</span> <span class=
"sy0">=></span> <span class="nu0">0</span><span class=
"sy0">,</span>
</div>
</li>
<li class="li1">
<div class="de1">
<span class="st0">'align'</span> <span class=
"sy0">=></span> <span class="st0">'center'</span>
</div>
</li>
<li class="li1">
<div class="de1">
<span class="br0">)</span><span class=
"br0">)</span><span class="sy0">;</span>
</div>
</li>
<li class="li1">
<div class="de1">
</div>
</li>
<li class="li1">
<div class="de1">
<span class="re1">$pb</span><span class=
"sy0">-></span><span class=
"me1">importStyle</span><span class="br0">(</span><span class=
"st0">'ancestor.css'</span><span class=
"br0">)</span><span class="sy0">;</span>
</div>
</li>
<li class="li1">
<div class="de1">
<span class="kw2">?></span>
</div>
</li>
<li class="li1">
<div class="de1">
<span class="sy0"><!</span>DOCTYPE html <span class=
"kw2">PUBLIC</span> <span class="st0">"-//W3C//DTD XHTML 1.0
Strict//EN"</span>
</div>
</li>
<li class="li1">
<div class="de1">
<span class=
"st0">"http://www.w3c.org/TR/xhtml1/DTD/xhtml1-strict.dtd"</span><span class="sy0">></span>
</div>
</li>
<li class="li1">
<div class="de1">
<span class="sy0"><</span>html xmlns<span class=
"sy0">=</span><span class=
"st0">"http://www.w3.org/1999/xhtml"</span> xml<span class=
"sy0">:</span>lang<span class="sy0">=</span><span class=
"st0">"en"</span><span class="sy0">></span>
</div>
</li>
<li class="li1">
<div class="de1">
<span class="sy0"><</span>head<span class="sy0">></span>
</div>
</li>
<li class="li1">
<div class="de1">
<span class="sy0"><</span>title<span class=
"sy0">></span>Ancestor Progress2 example<span class=
"sy0"></</span>title<span class="sy0">></span>
</div>
</li>
<li class="li1">
<div class="de1">
<span class="sy0"><</span>link rel<span class=
"sy0">=</span><span class="st0">"stylesheet"</span>
type<span class="sy0">=</span><span class=
"st0">"text/css"</span> href<span class=
"sy0">=</span><span class="st0">"ancestor.css"</span>
<span class="sy0">/></span>
</div>
</li>
<li class="li1">
<div class="de1">
<span class="sy0"><</span>style type<span class=
"sy0">=</span><span class="st0">"text/css"</span><span class=
"sy0">></span>
</div>
</li>
<li class="li1">
<div class="de1">
<span class="sy0"><!--</span>
</div>
</li>
<li class="li1">
<div class="de1">
body <span class="br0">{</span>
</div>
</li>
<li class="li1">
<div class="de1">
background<span class=
"sy0">-</span>color<span class="sy0">:</span> <span class=
"co2">#444444;</span>
</div>
</li>
<li class="li1">
<div class="de1">
<span class="br0">}</span>
</div>
</li>
<li class="li1">
<div class="de1">
<span class="sy0">--></span>
</div>
</li>
<li class="li1">
<div class="de1">
<span class="sy0"></</span>style<span class=
"sy0">></span>
</div>
</li>
<li class="li1">
<div class="de1">
<span class="sy0"><</span>script type<span class=
"sy0">=</span><span class="st0">"text/javascript"</span>
src<span class="sy0">=</span><span class=
"st0">"progress2BasicHandler.js"</span><span class=
"sy0">></</span>script<span class="sy0">></span>
</div>
</li>
<li class="li1">
<div class="de1">
<span class="sy0"></</span>head<span class="sy0">></span>
</div>
</li>
<li class="li1">
<div class="de1">
<span class="sy0"><</span>body<span class="sy0">></span>
</div>
</li>
<li class="li1">
<div class="de1">
</div>
</li>
<li class="li1">
<div class="de1">
<span class="kw2"><?php</span>
</div>
</li>
<li class="li1">
<div class="de1">
<span class="re1">$pb</span><span class=
"sy0">-></span><span class="me1">display</span><span class=
"br0">(</span><span class="br0">)</span><span class=
"sy0">;</span>
</div>
</li>
<li class="li1">
<div class="de1">
<span class="re1">$pb</span><span class=
"sy0">-></span><span class="me1">run</span><span class=
"br0">(</span><span class="br0">)</span><span class=
"sy0">;</span>
</div>
</li>
<li class="li1">
<div class="de1">
<span class="kw2">?></span>
</div>
</li>
<li class="li1">
<div class="de1">
</div>
</li>
<li class="li1">
<div class="de1">
<span class="sy0"></</span>body<span class="sy0">></span>
</div>
</li>
<li class="li1">
<div class="de1">
<span class="sy0"></</span>html<span class="sy0">></span>
</div>
</li>
</ol>
</div>
<div class="variablelist">
<dl>
<dt>
<span class="term">Line 9 :</span>
</dt>
<dd>
<p>
Add this line to change the progress border CSS class selector.
Remember, default is : <code class=
"literal">progressBorder%s</code>, where %s is the placeholder
to include progress bar identifier (return by <code class=
"methodname">HTML_Progress2::getIdent()</code>).
</p>
</dd>
<dt>
<span class="term">Line 10 :</span>
</dt>
<dd>
<p>
Add this line to change the cell CSS class selector. Remember,
default is : <code class="literal">cell%s</code>, where %s is
the placeholder to include progress bar identifier (return by
<code class="methodname">HTML_Progress2::getIdent()</code>).
</p>
</dd>
<dt>
<span class="term">Line 12 :</span>
</dt>
<dd>
<p>
Add this line to change the progress percent label CSS class
selector. Remember, default is : <code class=
"literal">progressPercentLabel%s</code>, where %s is the
placeholder to include label and progress bar identifiers.
</p>
</dd>
</dl>
</div>
<p>
Last, to finish our modifications, we need to remove the progress bar
identifier placeholder into JS script: <code class=
"filename">progress2BasicHandler.js</code> at line 22. From :
</p>
<div class="html4strict c3">
<ol>
<li class="li1">
<div class="de1">
cellElement.className = 'cell' + pIdent + pVisibility;
</div>
</li>
</ol>
</div>
<p>
To :
</p>
<div class="html4strict c3">
<ol>
<li class="li1">
<div class="de1">
cellElement.className = 'cell' + pVisibility;
</div>
</li>
</ol>
</div>
</div>
<div class="sect2" lang="en" xml:lang="en">
<div class="titlepage">
<h3 class="title">
<a name="id4799869" id="id4799869"></a>Step 5 : play with new
pattern
</h3>
</div>
<p>
Modify again the stylesheet to identify by another way the progress
bar identifier that was removed from CSS class selector, in previous
step.
</p>
<div class="example">
<a name="id4799885" id="id4799885"></a>
<p class="title c2">
Example 14.4. New content of <code class=
"filename">ancestor.css</code>
</p>
<div class="css c3">
<ol>
<li class="li1">
<div class="de1">
<span class="re0">#pbarPB1</span> <span class=
"re1">.cellI</span>, <span class="re0">#pbarPB1</span>
<span class="re1">.cellA</span> <span class="br0">{</span>
</div>
</li>
<li class="li1">
<div class="de1">
<span class="kw1">width</span><span class=
"sy0">:</span> <span class="re3">15px</span><span class=
"sy0">;</span>
</div>
</li>
<li class="li1">
<div class="de1">
<span class="kw1">height</span><span class=
"sy0">:</span> <span class="re3">20px</span><span class=
"sy0">;</span>
</div>
</li>
<li class="li1">
<div class="de1">
<span class="kw1">font-family</span><span class=
"sy0">:</span> Courier, Verdana<span class="sy0">;</span>
</div>
</li>
<li class="li1">
<div class="de1">
<span class="kw1">font-size</span><span class=
"sy0">:</span> <span class="re3">8px</span><span class=
"sy0">;</span>
</div>
</li>
<li class="li1">
<div class="de1">
<span class="kw1">float</span><span class=
"sy0">:</span> <span class="kw1">left</span><span class=
"sy0">;</span>
</div>
</li>
<li class="li1">
<div class="de1">
<span class="br0">}</span>
</div>
</li>
<li class="li1">
<div class="de1">
</div>
</li>
<li class="li1">
<div class="de1">
<span class="re0">#pbrdPB1</span><span class=
"re1">.progressBorder</span> <span class="br0">{</span>
</div>
</li>
<li class="li1">
<div class="de1">
<span class="kw1">width</span><span class=
"sy0">:</span> <span class="re3">172px</span><span class=
"sy0">;</span>
</div>
</li>
<li class="li1">
<div class="de1">
<span class="kw1">height</span><span class=
"sy0">:</span> <span class="re3">24px</span><span class=
"sy0">;</span>
</div>
</li>
<li class="li1">
<div class="de1">
<span class="kw1">background-color</span><span class=
"sy0">:</span> <span class="re0">#FFFFFF</span><span class=
"sy0">;</span>
</div>
</li>
<li class="li1">
<div class="de1">
<span class="br0">}</span>
</div>
</li>
<li class="li1">
<div class="de1">
</div>
</li>
<li class="li1">
<div class="de1">
<span class="re0">#plblpct1PB1</span><span class=
"re1">.progressPercentLabel</span> <span class="br0">{</span>
</div>
</li>
<li class="li1">
<div class="de1">
<span class="kw1">width</span><span class=
"sy0">:</span> <span class="re3">60px</span><span class=
"sy0">;</span>
</div>
</li>
<li class="li1">
<div class="de1">
<span class="kw1">height</span><span class=
"sy0">:</span> <span class="re3">24px</span><span class=
"sy0">;</span>
</div>
</li>
<li class="li1">
<div class="de1">
<span class="kw1">text-align</span><span class=
"sy0">:</span> <span class="kw2">center</span><span class=
"sy0">;</span>
</div>
</li>
<li class="li1">
<div class="de1">
<span class="kw1">background-color</span><span class=
"sy0">:</span> <span class="re0">#FFFFFF</span><span class=
"sy0">;</span>
</div>
</li>
<li class="li1">
<div class="de1">
<span class="kw1">font-size</span><span class=
"sy0">:</span> <span class="re3">14px</span><span class=
"sy0">;</span>
</div>
</li>
<li class="li1">
<div class="de1">
<span class="kw1">font-family</span><span class=
"sy0">:</span> Verdana, Tahoma, Arial<span class=
"sy0">;</span>
</div>
</li>
<li class="li1">
<div class="de1">
<span class="kw1">font-weight</span><span class=
"sy0">:</span> <span class="kw2">normal</span><span class=
"sy0">;</span>
</div>
</li>
<li class="li1">
<div class="de1">
<span class="kw1">color</span><span class=
"sy0">:</span> <span class="re0">#<span class=
"nu0">000000</span></span><span class="sy0">;</span>
</div>
</li>
<li class="li1">
<div class="de1">
<span class="br0">}</span>
</div>
</li>
<li class="li1">
<div class="de1">
</div>
</li>
<li class="li1">
<div class="de1">
<span class="re0">#pbarPB1</span> <span class=
"re1">.cellI</span> <span class="br0">{</span>
</div>
</li>
<li class="li1">
<div class="de1">
<span class="kw1">background-color</span><span class=
"sy0">:</span> <span class="re0">#CCCCCC</span><span class=
"sy0">;</span>
</div>
</li>
<li class="li1">
<div class="de1">
<span class="br0">}</span>
</div>
</li>
<li class="li1">
<div class="de1">
</div>
</li>
<li class="li1">
<div class="de1">
<span class="re0">#pbarPB1</span> <span class=
"re1">.cellA</span> <span class="br0">{</span>
</div>
</li>
<li class="li1">
<div class="de1">
<span class="kw1">background-color</span><span class=
"sy0">:</span> <span class="re0">#<span class=
"nu0">006600</span></span><span class="sy0">;</span>
</div>
</li>
<li class="li1">
<div class="de1">
<span class="br0">}</span>
</div>
</li>
</ol>
</div>
</div>
<div class="variablelist">
<dl>
<dt>
<span class="term">Lines 1, 26, 30 :</span>
</dt>
<dd>
<p>
Remove reference to progress bar identifier <code class=
"literal">PB1</code>, and add the <div> identifier
<code class="literal">#pbarPB1</code> for each cell class
selector (active, inactive).
</p>
<div class="caution c4">
<table border="0" summary="Caution">
<tr>
<td rowspan="2" align="center" valign="top" width="48">
<img alt="[Caution]" src="img/admons/caution.png" />
</td>
<th align="left">
Caution
</th>
</tr>
<tr>
<td align="left" valign="top">
Don't forget to add a blank between <code class=
"literal">#pbarPB1</code> and <code class=
"literal">.cellI</code> (or <code class=
"literal">.cellA</code>)
</td>
</tr>
</table>
</div>
</dd>
<dt>
<span class="term">Line 9 :</span>
</dt>
<dd>
<p>
Remove reference to progress bar identifier <code class=
"literal">PB1</code>, and add the <div> identifier
<code class="literal">#pbrdPB1</code>.
</p>
</dd>
<dt>
<span class="term">Line 15 :</span>
</dt>
<dd>
<p>
Remove reference to progress bar identifier <code class=
"literal">PB1</code>, percent label <code class=
"literal">pct1</code>, and add the <div> identifier
<code class="literal">#plblpct1PB1</code>.
</p>
</dd>
</dl>
</div>
<p>
All components (PHP script and CSS file) are ready to play with them
and change color, size, ... Almost what you want.
</p>
<div class="tip c4">
<table border="0" summary="Tip">
<tr>
<td rowspan="2" align="center" valign="top" width="48">
<img alt="[Tip]" src="img/admons/tip.png" />
</td>
<th align="left">
Tip
</th>
</tr>
<tr>
<td align="left" valign="top">
To switch from a skin to another, you just have to change
progress bar identifier in PHP script.
<div class="php c3">
<ol>
<li class="li1">
<div class="de1">
<span class="kw2"><?php</span>
</div>
</li>
<li class="li1">
<div class="de1">
<span class="kw1">require_once</span> <span class=
"st0">'HTML/Progress2.php'</span><span class=
"sy0">;</span>
</div>
</li>
<li class="li1">
<div class="de1">
</div>
</li>
<li class="li1">
<div class="de1">
<span class="re1">$pb</span> <span class="sy0">=</span>
<span class="kw2">new</span> HTML_Progress2<span class=
"br0">(</span><span class="br0">)</span><span class=
"sy0">;</span>
</div>
</li>
<li class="li1">
<div class="de1">
<span class="re1">$pb</span><span class=
"sy0">-></span><span class=
"me1">setIdent</span><span class=
"br0">(</span><span class=
"st0">'PB1'</span><span class="br0">)</span><span class="sy0">;</span>
</div>
</li>
<li class="li1">
<div class="de1">
<span class="co1">// $pb->setIdent('PB2');</span>
</div>
</li>
<li class="li1">
<div class="de1">
<span class="co1">// ...</span>
</div>
</li>
<li class="li1">
<div class="de1">
<span class="kw2">?></span>
</div>
</li>
</ol>
</div>
</td>
</tr>
</table>
</div>
<div class="example">
<a name="id4802315" id="id4802315"></a>
<p class="title c2">
Example 14.5. <code class="filename">ancestor.css</code>
with two skins
</p>
<div class="css c3">
<ol>
<li class="li1">
<div class="de1">
<span class="re0">#pbarPB1</span> <span class=
"re1">.cellI</span>, <span class="re0">#pbarPB1</span>
<span class="re1">.cellA</span>, <span class=
"re0">#pbarPB2</span> <span class="re1">.cellI</span>,
<span class="re0">#pbarPB2</span> <span class=
"re1">.cellA</span> <span class="br0">{</span>
</div>
</li>
<li class="li1">
<div class="de1">
<span class="kw1">width</span><span class=
"sy0">:</span> <span class="re3">15px</span><span class=
"sy0">;</span>
</div>
</li>
<li class="li1">
<div class="de1">
<span class="kw1">height</span><span class=
"sy0">:</span> <span class="re3">20px</span><span class=
"sy0">;</span>
</div>
</li>
<li class="li1">
<div class="de1">
<span class="kw1">font-family</span><span class=
"sy0">:</span> Courier, Verdana<span class="sy0">;</span>
</div>
</li>
<li class="li1">
<div class="de1">
<span class="kw1">font-size</span><span class=
"sy0">:</span> <span class="re3">8px</span><span class=
"sy0">;</span>
</div>
</li>
<li class="li1">
<div class="de1">
<span class="kw1">float</span><span class=
"sy0">:</span> <span class="kw1">left</span><span class=
"sy0">;</span>
</div>
</li>
<li class="li1">
<div class="de1">
<span class="br0">}</span>
</div>
</li>
<li class="li1">
<div class="de1">
<span class="re0">#pbarPB2</span> <span class=
"re1">.cellI</span>, <span class="re0">#pbarPB2</span>
<span class="re1">.cellA</span> <span class="br0">{</span>
</div>
</li>
<li class="li1">
<div class="de1">
<span class="kw1">width</span><span class=
"sy0">:</span> <span class="re3">10px</span><span class=
"sy0">;</span>
</div>
</li>
<li class="li1">
<div class="de1">
<span class="br0">}</span>
</div>
</li>
<li class="li1">
<div class="de1">
</div>
</li>
<li class="li1">
<div class="de1">
<span class="re0">#pbrdPB1</span><span class=
"re1">.progressBorder</span>, <span class=
"re0">#pbrdPB2</span><span class="re1">.progressBorder</span>
<span class="br0">{</span>
</div>
</li>
<li class="li1">
<div class="de1">
<span class="kw1">width</span><span class=
"sy0">:</span> <span class="re3">172px</span><span class=
"sy0">;</span>
</div>
</li>
<li class="li1">
<div class="de1">
<span class="kw1">height</span><span class=
"sy0">:</span> <span class="re3">24px</span><span class=
"sy0">;</span>
</div>
</li>
<li class="li1">
<div class="de1">
<span class="kw1">background-color</span><span class=
"sy0">:</span> <span class="re0">#FFFFFF</span><span class=
"sy0">;</span>
</div>
</li>
<li class="li1">
<div class="de1">
<span class="br0">}</span>
</div>
</li>
<li class="li1">
<div class="de1">
<span class="re0">#pbrdPB2</span><span class=
"re1">.progressBorder</span> <span class="br0">{</span>
</div>
</li>
<li class="li1">
<div class="de1">
<span class="kw1">width</span><span class=
"sy0">:</span> <span class="re3">122px</span><span class=
"sy0">;</span>
</div>
</li>
<li class="li1">
<div class="de1">
<span class="kw1">border-width</span><span class=
"sy0">:</span> <span class="re3">1px</span><span class=
"sy0">;</span>
</div>
</li>
<li class="li1">
<div class="de1">
<span class="kw1">border-style</span><span class=
"sy0">:</span> <span class="kw2">solid</span><span class=
"sy0">;</span>
</div>
</li>
<li class="li1">
<div class="de1">
<span class="kw1">border-color</span><span class=
"sy0">:</span> <span class="kw2">navy</span><span class=
"sy0">;</span>
</div>
</li>
<li class="li1">
<div class="de1">
<span class="br0">}</span>
</div>
</li>
<li class="li1">
<div class="de1">
</div>
</li>
<li class="li1">
<div class="de1">
<span class="re0">#plblpct1PB1</span><span class=
"re1">.progressPercentLabel</span> <span class="br0">{</span>
</div>
</li>
<li class="li1">
<div class="de1">
<span class="kw1">width</span><span class=
"sy0">:</span> <span class="re3">60px</span><span class=
"sy0">;</span>
</div>
</li>
<li class="li1">
<div class="de1">
<span class="kw1">height</span><span class=
"sy0">:</span> <span class="re3">24px</span><span class=
"sy0">;</span>
</div>
</li>
<li class="li1">
<div class="de1">
<span class="kw1">text-align</span><span class=
"sy0">:</span> <span class="kw2">center</span><span class=
"sy0">;</span>
</div>
</li>
<li class="li1">
<div class="de1">
<span class="kw1">background-color</span><span class=
"sy0">:</span> <span class="re0">#FFFFFF</span><span class=
"sy0">;</span>
</div>
</li>
<li class="li1">
<div class="de1">
<span class="kw1">font-size</span><span class=
"sy0">:</span> <span class="re3">14px</span><span class=
"sy0">;</span>
</div>
</li>
<li class="li1">
<div class="de1">
<span class="kw1">font-family</span><span class=
"sy0">:</span> Verdana, Tahoma, Arial<span class=
"sy0">;</span>
</div>
</li>
<li class="li1">
<div class="de1">
<span class="kw1">font-weight</span><span class=
"sy0">:</span> <span class="kw2">normal</span><span class=
"sy0">;</span>
</div>
</li>
<li class="li1">
<div class="de1">
<span class="kw1">color</span><span class=
"sy0">:</span> <span class="re0">#<span class=
"nu0">000000</span></span><span class="sy0">;</span>
</div>
</li>
<li class="li1">
<div class="de1">
<span class="br0">}</span>
</div>
</li>
<li class="li1">
<div class="de1">
<span class="re0">#plblpct1PB2</span><span class=
"re1">.progressPercentLabel</span> <span class="br0">{</span>
</div>
</li>
<li class="li1">
<div class="de1">
<span class="kw1">width</span><span class=
"sy0">:</span> <span class="re3">60px</span><span class=
"sy0">;</span>
</div>
</li>
<li class="li1">
<div class="de1">
<span class="kw1">text-align</span><span class=
"sy0">:</span> <span class="kw2">center</span><span class=
"sy0">;</span>
</div>
</li>
<li class="li1">
<div class="de1">
<span class="kw1">background-color</span><span class=
"sy0">:</span> <span class=
"kw2">transparent</span><span class="sy0">;</span>
</div>
</li>
<li class="li1">
<div class="de1">
<span class="kw1">font-size</span><span class=
"sy0">:</span> <span class="re3">14px</span><span class=
"sy0">;</span>
</div>
</li>
<li class="li1">
<div class="de1">
<span class="kw1">font-family</span><span class=
"sy0">:</span> Verdana, Tahoma, Arial<span class=
"sy0">;</span>
</div>
</li>
<li class="li1">
<div class="de1">
<span class="kw1">font-weight</span><span class=
"sy0">:</span> <span class="kw2">normal</span><span class=
"sy0">;</span>
</div>
</li>
<li class="li1">
<div class="de1">
<span class="kw1">color</span><span class=
"sy0">:</span> <span class="kw2">white</span><span class=
"sy0">;</span>
</div>
</li>
<li class="li1">
<div class="de1">
<span class="br0">}</span>
</div>
</li>
<li class="li1">
<div class="de1">
</div>
</li>
<li class="li1">
<div class="de1">
<span class="re0">#pbarPB1</span> <span class=
"re1">.cellI</span> <span class="br0">{</span>
</div>
</li>
<li class="li1">
<div class="de1">
<span class="kw1">background-color</span><span class=
"sy0">:</span> <span class="re0">#CCCCCC</span><span class=
"sy0">;</span>
</div>
</li>
<li class="li1">
<div class="de1">
<span class="br0">}</span>
</div>
</li>
<li class="li1">
<div class="de1">
<span class="re0">#pbarPB1</span> <span class=
"re1">.cellA</span> <span class="br0">{</span>
</div>
</li>
<li class="li1">
<div class="de1">
<span class="kw1">background-color</span><span class=
"sy0">:</span> <span class="re0">#<span class=
"nu0">006600</span></span><span class="sy0">;</span>
</div>
</li>
<li class="li1">
<div class="de1">
<span class="br0">}</span>
</div>
</li>
<li class="li1">
<div class="de1">
</div>
</li>
<li class="li1">
<div class="de1">
<span class="re0">#pbarPB2</span> <span class=
"re1">.cellI</span> <span class="br0">{</span>
</div>
</li>
<li class="li1">
<div class="de1">
<span class="kw1">background-color</span><span class=
"sy0">:</span> <span class="re0">#EEEECC</span><span class=
"sy0">;</span>
</div>
</li>
<li class="li1">
<div class="de1">
<span class="br0">}</span>
</div>
</li>
<li class="li1">
<div class="de1">
<span class="re0">#pbarPB2</span> <span class=
"re1">.cellA</span> <span class="br0">{</span>
</div>
</li>
<li class="li1">
<div class="de1">
<span class="kw1">background-color</span><span class=
"sy0">:</span> <span class="re0">#3874B4</span><span class=
"sy0">;</span>
</div>
</li>
<li class="li1">
<div class="de1">
<span class="br0">}</span>
</div>
</li>
</ol>
</div>
</div>
</div>
</div>
<table class="progress2Footer">
<tr>
<td align="left">
HTML_Progress2 : The Definitive Guide
</td>
<td align="right">
v 2.4.0 : April 20, 2007
</td>
</tr>
</table>
<div class="navfooter">
<hr />
<table width="100%" summary="Navigation footer">
<tr>
<td width="40%" align="left">
<a accesskey="p" href="ch14s02.html">Prev</a>
</td>
<td width="20%" align="center">
<a accesskey="u" href="ch14.html">Up</a>
</td>
<td width="40%" align="right">
<a accesskey="n" href="pt04.html">Next</a>
</td>
</tr>
<tr>
<td width="40%" align="left" valign="top">
Error Handling
</td>
<td width="20%" align="center">
<a accesskey="h" href="index.html">Home</a>
</td>
<td width="40%" align="right" valign="top">
Part IV. Reference Guide
</td>
</tr>
</table>
</div>
</body>
</html>