<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="cs">
	<id>https://wiki.webtodate.cz/index.php?action=history&amp;feed=atom&amp;title=WebToDate%2FP%C5%99%C3%ADru%C4%8Dka_v%C3%BDvoj%C3%A1%C5%99e%2FTipy_a_n%C3%A1vody</id>
	<title>WebToDate/Příručka vývojáře/Tipy a návody - Historie editací</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.webtodate.cz/index.php?action=history&amp;feed=atom&amp;title=WebToDate%2FP%C5%99%C3%ADru%C4%8Dka_v%C3%BDvoj%C3%A1%C5%99e%2FTipy_a_n%C3%A1vody"/>
	<link rel="alternate" type="text/html" href="https://wiki.webtodate.cz/index.php?title=WebToDate/P%C5%99%C3%ADru%C4%8Dka_v%C3%BDvoj%C3%A1%C5%99e/Tipy_a_n%C3%A1vody&amp;action=history"/>
	<updated>2026-07-28T06:51:36Z</updated>
	<subtitle>Historie editací této stránky</subtitle>
	<generator>MediaWiki 1.42.1</generator>
	<entry>
		<id>https://wiki.webtodate.cz/index.php?title=WebToDate/P%C5%99%C3%ADru%C4%8Dka_v%C3%BDvoj%C3%A1%C5%99e/Tipy_a_n%C3%A1vody&amp;diff=2399&amp;oldid=prev</id>
		<title>Jardac: Nahrazení textu „[[Category:WebToDate 4.1“ textem „[[Category:WebToDate“</title>
		<link rel="alternate" type="text/html" href="https://wiki.webtodate.cz/index.php?title=WebToDate/P%C5%99%C3%ADru%C4%8Dka_v%C3%BDvoj%C3%A1%C5%99e/Tipy_a_n%C3%A1vody&amp;diff=2399&amp;oldid=prev"/>
		<updated>2009-10-13T12:42:33Z</updated>

		<summary type="html">&lt;p&gt;Nahrazení textu „[[Category:WebToDate 4.1“ textem „[[Category:WebToDate“&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;cs&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Starší verze&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Verze z 13. 10. 2009, 14:42&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l1&quot;&gt;Řádek 1:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Řádek 1:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[[Category:WebToDate &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;4.1 &lt;/del&gt;Příručka vývojáře]]&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[[Category:WebToDate Příručka vývojáře]]&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[[Category:Příručka vývojáře]]&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[[Category:Příručka vývojáře]]&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;=== Vývoj a ladění rozšíření WebToDate ===&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;=== Vývoj a ladění rozšíření WebToDate ===&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Jardac</name></author>
	</entry>
	<entry>
		<id>https://wiki.webtodate.cz/index.php?title=WebToDate/P%C5%99%C3%ADru%C4%8Dka_v%C3%BDvoj%C3%A1%C5%99e/Tipy_a_n%C3%A1vody&amp;diff=2025&amp;oldid=prev</id>
		<title>Jardac: Stránka WebToDate 4.1/Příručka vývojáře/Tipy a návody přemístěna na stránku WebToDate/Příručka vývojáře/Tipy a návody</title>
		<link rel="alternate" type="text/html" href="https://wiki.webtodate.cz/index.php?title=WebToDate/P%C5%99%C3%ADru%C4%8Dka_v%C3%BDvoj%C3%A1%C5%99e/Tipy_a_n%C3%A1vody&amp;diff=2025&amp;oldid=prev"/>
		<updated>2009-10-13T12:39:03Z</updated>

		<summary type="html">&lt;p&gt;Stránka &lt;a href=&quot;/WebToDate_4.1/P%C5%99%C3%ADru%C4%8Dka_v%C3%BDvoj%C3%A1%C5%99e/Tipy_a_n%C3%A1vody&quot; class=&quot;mw-redirect&quot; title=&quot;WebToDate 4.1/Příručka vývojáře/Tipy a návody&quot;&gt;WebToDate 4.1/Příručka vývojáře/Tipy a návody&lt;/a&gt; přemístěna na stránku &lt;a href=&quot;/WebToDate/P%C5%99%C3%ADru%C4%8Dka_v%C3%BDvoj%C3%A1%C5%99e/Tipy_a_n%C3%A1vody&quot; title=&quot;WebToDate/Příručka vývojáře/Tipy a návody&quot;&gt;WebToDate/Příručka vývojáře/Tipy a návody&lt;/a&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;cs&quot;&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Starší verze&lt;/td&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Verze z 13. 10. 2009, 14:39&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-notice&quot; lang=&quot;cs&quot;&gt;&lt;div class=&quot;mw-diff-empty&quot;&gt;(Žádný rozdíl)&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</summary>
		<author><name>Jardac</name></author>
	</entry>
	<entry>
		<id>https://wiki.webtodate.cz/index.php?title=WebToDate/P%C5%99%C3%ADru%C4%8Dka_v%C3%BDvoj%C3%A1%C5%99e/Tipy_a_n%C3%A1vody&amp;diff=1812&amp;oldid=prev</id>
		<title>Bajkvl: /* Reference Databázové knihovny */</title>
		<link rel="alternate" type="text/html" href="https://wiki.webtodate.cz/index.php?title=WebToDate/P%C5%99%C3%ADru%C4%8Dka_v%C3%BDvoj%C3%A1%C5%99e/Tipy_a_n%C3%A1vody&amp;diff=1812&amp;oldid=prev"/>
		<updated>2009-09-24T10:13:32Z</updated>

		<summary type="html">&lt;p&gt;&lt;span dir=&quot;auto&quot;&gt;&lt;span class=&quot;autocomment&quot;&gt;Reference Databázové knihovny&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;a href=&quot;https://wiki.webtodate.cz/index.php?title=WebToDate/P%C5%99%C3%ADru%C4%8Dka_v%C3%BDvoj%C3%A1%C5%99e/Tipy_a_n%C3%A1vody&amp;amp;diff=1812&amp;amp;oldid=1811&quot;&gt;Ukázat změny&lt;/a&gt;</summary>
		<author><name>Bajkvl</name></author>
	</entry>
	<entry>
		<id>https://wiki.webtodate.cz/index.php?title=WebToDate/P%C5%99%C3%ADru%C4%8Dka_v%C3%BDvoj%C3%A1%C5%99e/Tipy_a_n%C3%A1vody&amp;diff=1811&amp;oldid=prev</id>
		<title>Bajkvl: /* Databázová knihovna */</title>
		<link rel="alternate" type="text/html" href="https://wiki.webtodate.cz/index.php?title=WebToDate/P%C5%99%C3%ADru%C4%8Dka_v%C3%BDvoj%C3%A1%C5%99e/Tipy_a_n%C3%A1vody&amp;diff=1811&amp;oldid=prev"/>
		<updated>2009-09-24T10:07:43Z</updated>

		<summary type="html">&lt;p&gt;&lt;span dir=&quot;auto&quot;&gt;&lt;span class=&quot;autocomment&quot;&gt;Databázová knihovna&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;cs&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Starší verze&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Verze z 24. 9. 2009, 12:07&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l198&quot;&gt;Řádek 198:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Řádek 198:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;code&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;code&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;  &amp;lt;nowiki&amp;gt;   $sql = &#039;select * from NEWSDB&#039;;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;�&lt;/del&gt;// vykoname &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;dotaz�   &lt;/del&gt;$res = &#039;&#039;&#039;$db-&amp;gt;query(&#039;&#039;&#039; $sql &#039;&#039;&#039;);&#039;&#039;&#039;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;�&lt;/del&gt;// zjistime pocet navracenych &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;radku�   &lt;/del&gt;$count = &#039;&#039;&#039;$db-&amp;gt;num_rows(&#039;&#039;&#039; $res &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;   &lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;  &amp;lt;nowiki&amp;gt;   $sql = &#039;select * from NEWSDB&#039;;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt; &lt;/del&gt;&#039;&#039;&#039;);&#039;&#039;&#039;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;�&lt;/del&gt;// vypiseme ID vybranych &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;zaznamu�   &lt;/del&gt;while ( $row = &#039;&#039;&#039;$db-&amp;gt;fetch_array(&#039;&#039;&#039; $rec &#039;&#039;&#039;)&#039;&#039;&#039; ):&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;�      &lt;/del&gt;print ( $row[&#039;ID&#039;] . &quot;&amp;lt;br&amp;gt;\n&quot;);&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;�   &lt;/del&gt;endwhile;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;�   &lt;/del&gt;...&amp;lt;/nowiki&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;            &lt;/ins&gt;// vykoname &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;dotaz&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;               &lt;/ins&gt;$res = &#039;&#039;&#039;$db-&amp;gt;query(&#039;&#039;&#039; $sql &#039;&#039;&#039;);&#039;&#039;&#039;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;            &lt;/ins&gt;// zjistime pocet navracenych &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;radku&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;               &lt;/ins&gt;$count = &#039;&#039;&#039;$db-&amp;gt;num_rows(&#039;&#039;&#039; $res&#039;&#039;&#039;);&#039;&#039;&#039;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;            &lt;/ins&gt;// vypiseme ID vybranych &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;zaznamu&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;               &lt;/ins&gt;while ( $row = &#039;&#039;&#039;$db-&amp;gt;fetch_array(&#039;&#039;&#039; $rec &#039;&#039;&#039;)&#039;&#039;&#039; ):&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;                  &lt;/ins&gt;print ( $row[&#039;ID&#039;] . &quot;&amp;lt;br&amp;gt;\n&quot;);&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;               &lt;/ins&gt;endwhile;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;               &lt;/ins&gt;...&amp;lt;/nowiki&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;/code&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;/code&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Bajkvl</name></author>
	</entry>
	<entry>
		<id>https://wiki.webtodate.cz/index.php?title=WebToDate/P%C5%99%C3%ADru%C4%8Dka_v%C3%BDvoj%C3%A1%C5%99e/Tipy_a_n%C3%A1vody&amp;diff=1810&amp;oldid=prev</id>
		<title>Bajkvl: /* Reference Souborové knihovny */</title>
		<link rel="alternate" type="text/html" href="https://wiki.webtodate.cz/index.php?title=WebToDate/P%C5%99%C3%ADru%C4%8Dka_v%C3%BDvoj%C3%A1%C5%99e/Tipy_a_n%C3%A1vody&amp;diff=1810&amp;oldid=prev"/>
		<updated>2009-09-24T10:03:38Z</updated>

		<summary type="html">&lt;p&gt;&lt;span dir=&quot;auto&quot;&gt;&lt;span class=&quot;autocomment&quot;&gt;Reference Souborové knihovny&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;a href=&quot;https://wiki.webtodate.cz/index.php?title=WebToDate/P%C5%99%C3%ADru%C4%8Dka_v%C3%BDvoj%C3%A1%C5%99e/Tipy_a_n%C3%A1vody&amp;amp;diff=1810&amp;amp;oldid=1809&quot;&gt;Ukázat změny&lt;/a&gt;</summary>
		<author><name>Bajkvl</name></author>
	</entry>
	<entry>
		<id>https://wiki.webtodate.cz/index.php?title=WebToDate/P%C5%99%C3%ADru%C4%8Dka_v%C3%BDvoj%C3%A1%C5%99e/Tipy_a_n%C3%A1vody&amp;diff=1809&amp;oldid=prev</id>
		<title>Bajkvl: /* Databázová knihovna */</title>
		<link rel="alternate" type="text/html" href="https://wiki.webtodate.cz/index.php?title=WebToDate/P%C5%99%C3%ADru%C4%8Dka_v%C3%BDvoj%C3%A1%C5%99e/Tipy_a_n%C3%A1vody&amp;diff=1809&amp;oldid=prev"/>
		<updated>2009-09-24T08:45:27Z</updated>

		<summary type="html">&lt;p&gt;&lt;span dir=&quot;auto&quot;&gt;&lt;span class=&quot;autocomment&quot;&gt;Databázová knihovna&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;cs&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Starší verze&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Verze z 24. 9. 2009, 10:45&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l132&quot;&gt;Řádek 132:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Řádek 132:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;code&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;code&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;  &amp;lt;nowiki&amp;gt;   $sql = &#039;select * from NEWSDB&#039;;�// vykoname dotaz�   $res = &#039;&#039;&#039;$db-&amp;gt;query(&#039;&#039;&#039; $sql &#039;&#039;&#039;);&#039;&#039;&#039;�// zjistime pocet navracenych radku�   $count = &#039;&#039;&#039;$db-&amp;gt;num_rows(&#039;&#039;&#039; $res &#039;&#039;&#039;);&#039;&#039;&#039;�// vypiseme ID vybranych zaznamu�   while ( $row = &#039;&#039;&#039;$db-&amp;gt;fetch_array(&#039;&#039;&#039; $rec &#039;&#039;&#039;)&#039;&#039;&#039; ):�      print ( $row[&#039;ID&#039;] . &quot;&amp;lt;br&amp;gt;\n&quot;);�   endwhile;�   ...&amp;lt;/nowiki&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;  &amp;lt;nowiki&amp;gt;   $sql = &#039;select * from NEWSDB&#039;;�// vykoname dotaz�   $res = &#039;&#039;&#039;$db-&amp;gt;query(&#039;&#039;&#039; $sql &#039;&#039;&#039;);&#039;&#039;&#039;�// zjistime pocet navracenych radku�   $count = &#039;&#039;&#039;$db-&amp;gt;num_rows(&#039;&#039;&#039; $res &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;   &lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt; &lt;/ins&gt;&#039;&#039;&#039;);&#039;&#039;&#039;�// vypiseme ID vybranych zaznamu�   while ( $row = &#039;&#039;&#039;$db-&amp;gt;fetch_array(&#039;&#039;&#039; $rec &#039;&#039;&#039;)&#039;&#039;&#039; ):�      print ( $row[&#039;ID&#039;] . &quot;&amp;lt;br&amp;gt;\n&quot;);�   endwhile;�   ...&amp;lt;/nowiki&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;/code&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;/code&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Bajkvl</name></author>
	</entry>
	<entry>
		<id>https://wiki.webtodate.cz/index.php?title=WebToDate/P%C5%99%C3%ADru%C4%8Dka_v%C3%BDvoj%C3%A1%C5%99e/Tipy_a_n%C3%A1vody&amp;diff=1547&amp;oldid=prev</id>
		<title>Bajkvl: Založena nová stránka: Category:WebToDate 4.1 Příručka vývojáře Category:Příručka vývojáře === Vývoj a ladění rozšíření WebToDate ===  Vývoj těchto rozšíření v&amp;nb…</title>
		<link rel="alternate" type="text/html" href="https://wiki.webtodate.cz/index.php?title=WebToDate/P%C5%99%C3%ADru%C4%8Dka_v%C3%BDvoj%C3%A1%C5%99e/Tipy_a_n%C3%A1vody&amp;diff=1547&amp;oldid=prev"/>
		<updated>2009-08-24T10:32:34Z</updated>

		<summary type="html">&lt;p&gt;Založena nová stránka: &lt;a href=&quot;/index.php?title=Kategorie:WebToDate_4.1_P%C5%99%C3%ADru%C4%8Dka_v%C3%BDvoj%C3%A1%C5%99e&amp;amp;action=edit&amp;amp;redlink=1&quot; class=&quot;new&quot; title=&quot;Kategorie:WebToDate 4.1 Příručka vývojáře (stránka neexistuje)&quot;&gt;Category:WebToDate 4.1 Příručka vývojáře&lt;/a&gt; &lt;a href=&quot;/index.php?title=Kategorie:P%C5%99%C3%ADru%C4%8Dka_v%C3%BDvoj%C3%A1%C5%99e&amp;amp;action=edit&amp;amp;redlink=1&quot; class=&quot;new&quot; title=&quot;Kategorie:Příručka vývojáře (stránka neexistuje)&quot;&gt;Category:Příručka vývojáře&lt;/a&gt; === Vývoj a ladění rozšíření WebToDate ===  Vývoj těchto rozšíření v&amp;amp;nb…&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Nová stránka&lt;/b&gt;&lt;/p&gt;&lt;div&gt;[[Category:WebToDate 4.1 Příručka vývojáře]]&lt;br /&gt;
[[Category:Příručka vývojáře]]&lt;br /&gt;
=== Vývoj a ladění rozšíření WebToDate ===&lt;br /&gt;
&lt;br /&gt;
Vývoj těchto rozšíření v&amp;amp;nbsp;praxi není možné provádět na produkčním serveru, zejména extenze mají okamžitý vliv na funkčnost celého řešení a jakákoliv chyba může způsobit vážné potíže v&amp;amp;nbsp;chodu serveru.&lt;br /&gt;
&lt;br /&gt;
Proto je doporučeno provádět vývoj na testovací kopii systému, kde je možné ladit extenze, moduly apod. To ovšem vyžaduje dbát na přenositelnost výsledného řešení na jiný stroj, jde tedy zejména o&lt;br /&gt;
&lt;br /&gt;
* Vytvoření prvotní instalace databázových struktur a dat modulu – je velmi vhodné vytvořit např. instalační SQL skript, který dávkově provádí potřebné zápisy do databáze systému.&lt;br /&gt;
* Udržování seznamu souborů, které je třeba instalovat a cílových adresářů.&lt;br /&gt;
&lt;br /&gt;
Všechny SQL dotazy spouštěné zejména ve veřejné části modulů je třeba testovat nejen na funkčnost ale zejména na rychlost provedení, pomalé SQL dotazy mohou mít vliv na běh celého serveru. Optimalizace dotazů je vhodné provádět v&amp;amp;nbsp;SQL konzoli příslušné databáze nebo s&amp;amp;nbsp;využitím specializovaných vývojových nástrojů, v&amp;amp;nbsp;prostředí PHP, toto provádět nelze.&lt;br /&gt;
&lt;br /&gt;
=== Souborová knihovna ===&lt;br /&gt;
&lt;br /&gt;
Pomocí Souborové knihovny by se měly provádět veškeré operace se soubory/adresáři spojené. Jejím cílem je jednak zachycení a zpracování chyb, které mohou při práci s filesystémem vznikat, jednak umožnit definovat a pro filesystémové funkce &amp;quot;uzavřít&amp;quot; adresáře se skripty (mimo určené). Souborová knihovna je přístupná přes objekt &amp;#039;&amp;#039;&amp;#039;$fa&amp;#039;&amp;#039;&amp;#039;. Fyzicky je uložena v souboru /classes/FileAccess.php.&lt;br /&gt;
&lt;br /&gt;
Ošetřování chyb probíhá neustále při práci se Souborovou knihovnou. Po vykonání požadované operace je možné pomocí funkce &amp;quot;getErrorMessage&amp;quot; zjistit, zda proběhla operace bez chyb (fce vrací FALSE, příp. vrací text chybové zprávy). Pro &amp;quot;vyčištění&amp;quot; statutu je k dispozici fce &amp;quot;clsErrorMessage&amp;quot;. Pokud dojde k chybě při vykonávání operace, Knihovna vrací poslední uloženou, zpravidla nejobecnější, chybovou zprávu (např. &amp;quot;Nepodařilo se uložit text do souboru.&amp;quot; místo &amp;quot;Soubor neexistuje.&amp;quot; nebo &amp;quot;Není možné do souboru zapisovat z důvodu...&amp;quot;). Historie chybových je proto dostupná, a to v poli &amp;quot;arrErrorLog&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Výchozím nastavením je určeno několik adresářů, do nichž má Souborová knihovna přístup. Jde rekurzivně  o adresáře /wwwroot, /texts, /offlinedata a /rdata, navíc pak o adresáře virtuálních serverů. Knihovna potom při požadovaných operacích ověřuje, zda se soubor či adresář, ke kterému je přistupováno, nachází v některém z těchto &amp;quot;povolených umístění&amp;quot;. Globálně je tato ochrana vypnutelná pomocí nastavení konstanty &amp;quot;CHECK_FILEACCESS_GLOBAL&amp;quot; v konfiguračním souboru systému (global.php; toto by mělo smysl např. při instalaci apod.), případně při běhu skriptu nastavením vlastnosti &amp;quot;blnAllowManual&amp;quot; Souborové knihovny na hodnotu TRUE (po vykonání operace se však nesmí zapomenout &amp;quot;zamknout&amp;quot; hodnotu zpět na FALSE !). Knihovna pak veškeré operace uznává jako prováděné v povolením umístění.&lt;br /&gt;
&lt;br /&gt;
Nejběžnější způsob použití demonstruje následující příklad (načtení obsahu souboru):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;// urcime relativni cestu k souboru&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;  $filename_relative = &amp;quot;/rdata/resources/webtodate/soubor.php&amp;quot;;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;// sestavime absolutni cestu&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;  $filename = &amp;#039;&amp;#039;&amp;#039;$fa-&amp;gt;pathBuild(&amp;#039;&amp;#039;&amp;#039; getWTDPath(), $filename_relative &amp;#039;&amp;#039;&amp;#039;);&amp;#039;&amp;#039;&amp;#039;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;// nacteme soubor do textu&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;  $obsah = &amp;quot;&amp;quot;;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;// - overime existenci souboru&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;    if ( &amp;#039;&amp;#039;&amp;#039;$fa-&amp;gt;fileExists&amp;#039;&amp;#039;&amp;#039;($&amp;#039;&amp;#039;&amp;#039;filename&amp;#039;&amp;#039;&amp;#039;)&amp;#039;&amp;#039;&amp;#039; ):&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;// - - otevreme soubor pro cteni&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;      $fres = &amp;#039;&amp;#039;&amp;#039;$fa-&amp;gt;fileOpen(&amp;#039;&amp;#039;&amp;#039; $filename, FILEACCESS_MODE_READ &amp;#039;&amp;#039;&amp;#039;);&amp;#039;&amp;#039;&amp;#039;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;// - - nacteme obsah do retezce&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;      $obsah = &amp;#039;&amp;#039;&amp;#039;$fa-&amp;gt;fileRead(&amp;#039;&amp;#039;&amp;#039; $fres, FILEACCESS_READ_STRING &amp;#039;&amp;#039;&amp;#039;);&amp;#039;&amp;#039;&amp;#039;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;// - - uzavreme soubor&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;      &amp;#039;&amp;#039;&amp;#039;$fa-&amp;gt;fileClose(&amp;#039;&amp;#039;&amp;#039; $fres &amp;#039;&amp;#039;&amp;#039;);&amp;#039;&amp;#039;&amp;#039;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;    endif;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;/* alternativni zpusob ziskani obsahu souboru do retezce:&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;  $obsah = &amp;#039;&amp;#039;&amp;#039;$fa-&amp;gt;fileContentRead(&amp;#039;&amp;#039;&amp;#039; $filename &amp;#039;&amp;#039;&amp;#039;);&amp;#039;&amp;#039;&amp;#039;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;*/&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;// osetreni chyb&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;    if ( $err = &amp;#039;&amp;#039;&amp;#039;$fa-&amp;gt;getErrorMessage()&amp;#039;&amp;#039;&amp;#039; ):&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;// - kod osetreni chyby; $err obsahuje lokalizovane chybove hlaseni&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;    endif;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;...&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Reference Souborové knihovny ====&lt;br /&gt;
&lt;br /&gt;
KONSTANTY:&lt;br /&gt;
&lt;br /&gt;
* &amp;#039;&amp;#039;FILEACCESS_MODE_READ�&amp;#039;&amp;#039;konstanta obsahuje hodnotu &amp;quot;r&amp;quot;; určuje způsob otevření souboru (pro čtení)&lt;br /&gt;
* &amp;#039;&amp;#039;FILEACCESS_MODE_WRITE�&amp;#039;&amp;#039;konstanta obsahuje hodnotu &amp;quot;w&amp;quot;; určuje způsob otevření souboru (pro zápis)&lt;br /&gt;
* &amp;#039;&amp;#039;FILEACCESS_MODE_APPEND�&amp;#039;&amp;#039;konstanta obsahuje hodnotu &amp;quot;a&amp;quot;; určuje způsob otevření souboru (pro přidávání)&lt;br /&gt;
* &amp;#039;&amp;#039;FILEACCESS_READ_STRING�&amp;#039;&amp;#039;konstanta obsahuje hodnotu &amp;quot;string&amp;quot;; určuje způsob načítání obsahu souboru (do řetězce)&lt;br /&gt;
* &amp;#039;&amp;#039;FILEACCESS_READ_ARRAY�&amp;#039;&amp;#039;konstanta obsahuje hodnotu &amp;quot;array&amp;quot;; určuje způsob načítání obsahu souboru (do pole)&lt;br /&gt;
&lt;br /&gt;
VLASTNOSTI:&lt;br /&gt;
&lt;br /&gt;
* &amp;#039;&amp;#039;arrAllowedDir�&amp;#039;&amp;#039;- pole s cestami k adresářům, ze kterých je možné číst, příp. kam je povolen zápis&lt;br /&gt;
* &amp;#039;&amp;#039;blnErrorOccurred�&amp;#039;&amp;#039;- indikátor výskytu chyby&lt;br /&gt;
* &amp;#039;&amp;#039;strErrorMessage�&amp;#039;&amp;#039;- text chybového hlášení&lt;br /&gt;
* &amp;#039;&amp;#039;arrFileHandle�&amp;#039;&amp;#039;- pole informací a deskriptorů otevíraných souborů&lt;br /&gt;
* &amp;#039;&amp;#039;arrDirHandle�&amp;#039;&amp;#039;- pole informací a deskriptorů otevíraných adresářů&lt;br /&gt;
* &amp;#039;&amp;#039;strFileSeparator�&amp;#039;&amp;#039;- oddělovač souborů podle údaje v konfiguračním souboru&lt;br /&gt;
* &amp;#039;&amp;#039;arrErrorLog�&amp;#039;&amp;#039;- pole se všemi vyskytnutými chybovými zprávami&lt;br /&gt;
* &amp;#039;&amp;#039;arrDevLog�&amp;#039;&amp;#039;- pole pro ukládání vývojového logu&lt;br /&gt;
* &amp;#039;&amp;#039;dev�&amp;#039;&amp;#039;- proměnná pro vývojové zprávy&lt;br /&gt;
* &amp;#039;&amp;#039;blnAllowManual�&amp;#039;&amp;#039;- indikátor, zda se má vypnout kontrola povolených umístění&lt;br /&gt;
&lt;br /&gt;
METODY:&lt;br /&gt;
&lt;br /&gt;
* &amp;#039;&amp;#039;FileAccess ()�&amp;#039;&amp;#039;- konstruktor objektu načítá seznam povolených umístění pomocí metody loadAllowedDir (pokud to není omezeno v konfiguračním souboru – volba &amp;#039;&amp;#039;CHECK_FILEACCESS_GLOBAL&amp;#039;&amp;#039;&lt;br /&gt;
* &amp;#039;&amp;#039;loadAllowedDir ()�&amp;#039;&amp;#039;- načítá seznam povolených umístění&lt;br /&gt;
* &amp;#039;&amp;#039;fileOpen ( strPath, chrMode=&amp;#039;&amp;#039;, blnCreateByOpen=false )�&amp;#039;&amp;#039;- otevírá soubor &amp;#039;&amp;#039;strPath&amp;#039;&amp;#039; v módu určeném parametrem &amp;#039;&amp;#039;chrMode&amp;#039;&amp;#039;. Třetí parametr, &amp;#039;&amp;#039;blnCreateByOpen&amp;#039;&amp;#039;, určuje, zda se má vytvářet případně neexistující soubor při otevírání pro čtení. Metoda vrací deskriptor otevřeného souboru.&lt;br /&gt;
* &amp;#039;&amp;#039;fileClose ( intHandle )&amp;#039;&amp;#039;�- uzavírá otevřený soubor podle předaného deskriptoru &amp;#039;&amp;#039;intHandle&amp;#039;&amp;#039;&lt;br /&gt;
* &amp;#039;&amp;#039;fileWrite ( intHandle, strString )&amp;#039;&amp;#039;�- zapisuje řetězec &amp;#039;&amp;#039;strString&amp;#039;&amp;#039; do souboru určeného předaným deskriptorem &amp;#039;&amp;#039;intHandle&amp;#039;&amp;#039;&lt;br /&gt;
* &amp;#039;&amp;#039;fileRead ( intHandle, strMode=&amp;#039;string&amp;#039;, intLenght=0 )�&amp;#039;&amp;#039;- načítá určeným způsobem (&amp;#039;&amp;#039;strMode&amp;#039;&amp;#039;) obsah souboru určeného deskriptorem &amp;#039;&amp;#039;intHandle&amp;#039;&amp;#039;. Pokud je parametr &amp;#039;&amp;#039;intLenght&amp;#039;&amp;#039; větší, než 0 a soubor se načítá do řetězce, určuje &amp;#039;&amp;#039;intLenght&amp;#039;&amp;#039; počet znaků, které se mají načíst.&lt;br /&gt;
* &amp;#039;&amp;#039;fileCreate ( strPath, blnRecursive )&amp;#039;&amp;#039;�- vytváří soubor v zadané cestě &amp;#039;&amp;#039;strPath&amp;#039;&amp;#039;. Pokud cesta neexistuje celá, &amp;#039;&amp;#039;blnRecursive&amp;#039;&amp;#039; určuje, zda se má chybějící část cesty dovytvořit.&lt;br /&gt;
* &amp;#039;&amp;#039;fileCopy ( strSource, strTarget, blnRecursive=FALSE, intRewriteFiles=2 )&amp;#039;&amp;#039;�- kopíruje soubor určený zdrojovou cestou &amp;#039;&amp;#039;strSource&amp;#039;&amp;#039; na cílovou cestu &amp;#039;&amp;#039;strTarget&amp;#039;&amp;#039;. Pokud&amp;amp;nbsp;cílová cesta není kompletní, parametr &amp;#039;&amp;#039;blnRecursive&amp;#039;&amp;#039; určuje, zda se má dovytvořit. Pokud&amp;amp;nbsp;cílový soubor již existuje, parametr &amp;#039;&amp;#039;intRewriteFiles&amp;#039;&amp;#039; určuje další chování skriptu (0&amp;amp;nbsp;=&amp;amp;nbsp;ukončit s&amp;amp;nbsp;chybou, 1&amp;amp;nbsp;=&amp;amp;nbsp;přepsat původní soubor, 2&amp;amp;nbsp;=&amp;amp;nbsp;ponechat původní soubor)&lt;br /&gt;
* &amp;#039;&amp;#039;fileMove ( strSource, strTarget, blnRecursive=FALSE )&amp;#039;&amp;#039;�- přesouvá soubor ze zdrojového umístění &amp;#039;&amp;#039;strSource&amp;#039;&amp;#039; do cílového &amp;#039;&amp;#039;strTarget&amp;#039;&amp;#039;. Pokud&amp;amp;nbsp;cílová cesta není kompletní, parametr &amp;#039;&amp;#039;blnRecursive&amp;#039;&amp;#039; určuje, zda se má dovytvořit.&lt;br /&gt;
* &amp;#039;&amp;#039;fileDelete ( strPath, blnAllowFileNotExists=true )&amp;#039;&amp;#039;�- odstraňuje soubor na zadané cestě &amp;#039;&amp;#039;strPath&amp;#039;&amp;#039;. Parametr &amp;#039;&amp;#039;blnAllowFileNotExists&amp;#039;&amp;#039; určuje, zda je přípustné, když požadovaný soubor neexistuje (funkčnost je pak &amp;quot;odstranit pokud existuje&amp;quot;)&lt;br /&gt;
* &amp;#039;&amp;#039;fileIsWriteable ( strPath )&amp;#039;&amp;#039;�- zjišťuje, zda je soubor na zadané cestě &amp;#039;&amp;#039;strPath&amp;#039;&amp;#039; povolený k zápisu&lt;br /&gt;
* &amp;#039;&amp;#039;fileIsReadable ( strPath )&amp;#039;&amp;#039;�- zjišťuje, zda je soubor na zadané cestě &amp;#039;&amp;#039;strPath&amp;#039;&amp;#039; povolený ke čtení&lt;br /&gt;
* &amp;#039;&amp;#039;fileExists ( strPath, blnOnlyAllowedDir=TRUE)&amp;#039;&amp;#039;�- zjišťuje, zda se na zadané cestě &amp;#039;&amp;#039;strPath&amp;#039;&amp;#039; nachází&lt;br /&gt;
* &amp;#039;&amp;#039;fileHandleCreate ( &amp;amp;intHandle, strPath, chrMode )&amp;#039;&amp;#039;�- interní metoda; vytváří zápis o novém otevřeném deskriptoru &amp;#039;&amp;#039;intHandle&amp;#039;&amp;#039;, ukládá cestu &amp;#039;&amp;#039;strPath&amp;#039;&amp;#039; k&amp;amp;nbsp;souboru a mód otevření (&amp;#039;&amp;#039;chrMode&amp;#039;&amp;#039;)&lt;br /&gt;
* &amp;#039;&amp;#039;fileHandleDelete ( intHandle )&amp;#039;&amp;#039;�- interní metoda; deaktivuje zápis o předaném deskriptoru souboru &amp;#039;&amp;#039;intHandle&amp;#039;&amp;#039;&lt;br /&gt;
* &amp;#039;&amp;#039;fileHandleIsActive ( intHandle )&amp;#039;&amp;#039;�- interní metoda; zjišťuje, zda má předaný deskriptor &amp;#039;&amp;#039;intHandle&amp;#039;&amp;#039; aktivní zápis, tzn. je použitelný&lt;br /&gt;
* &amp;#039;&amp;#039;fileStringAppend ( strPath, strString, blnCreate=FALSE, blnRecursive=FALSE )&amp;#039;&amp;#039;�- do souboru &amp;#039;&amp;#039;strPath&amp;#039;&amp;#039; zapíše řetězec &amp;#039;&amp;#039;strString&amp;#039;&amp;#039; tak, že jej přidá na konec již existujícího textu. Další parametry určují, zda se má soubor vytvořit v případě, že neexistuje (&amp;#039;&amp;#039;blnCreate&amp;#039;&amp;#039;) a zda se má dotvořit i případně neexistující cesta k němu (&amp;#039;&amp;#039;blnRecursive&amp;#039;&amp;#039;).&lt;br /&gt;
* &amp;#039;&amp;#039;fileStringWrite ( strPath, strString, blnCreate=FALSE, blnRecursive=FALSE )&amp;#039;&amp;#039;�- do souboru &amp;#039;&amp;#039;strPath&amp;#039;&amp;#039; zapíše řetězec &amp;#039;&amp;#039;strString&amp;#039;&amp;#039; tak, že smaže původní obsah souboru a nahradí jej novým. Další parametry určují, zda se má soubor vytvořit v případě, že neexistuje (&amp;#039;&amp;#039;blnCreate&amp;#039;&amp;#039;) a zda se má dotvořit i případně neexistující cesta k němu (&amp;#039;&amp;#039;blnRecursive&amp;#039;&amp;#039;).&lt;br /&gt;
* &amp;#039;&amp;#039;fileContentRead ( strPath )&amp;#039;&amp;#039;�- načte obsah souboru &amp;#039;&amp;#039;strPath&amp;#039;&amp;#039; do řetězce&lt;br /&gt;
* &amp;#039;&amp;#039;dirOpen ( strPath )&amp;#039;&amp;#039;�- otevírá adresář &amp;#039;&amp;#039;strPath&amp;#039;&amp;#039;&lt;br /&gt;
* &amp;#039;&amp;#039;dirClose ( &amp;amp;intHandle )&amp;#039;&amp;#039;�- uzavírá adresář podle předaného deskriptoru &amp;#039;&amp;#039;intHandle&amp;#039;&amp;#039;&lt;br /&gt;
* &amp;#039;&amp;#039;dirCreate ( strPath, blnRecursive=TRUE )&amp;#039;&amp;#039;�- vytváří adresář na zadané cestě &amp;#039;&amp;#039;strPath&amp;#039;&amp;#039;, příp. i chybějící cestu k němu, pokud to dovoluje parametr &amp;#039;&amp;#039;blnRecursive&amp;#039;&amp;#039;&lt;br /&gt;
* &amp;#039;&amp;#039;dirDelete ( strPath, blnRecursive=FALSE )�&amp;#039;&amp;#039;- odstraňuje adresář &amp;#039;&amp;#039;strPath&amp;#039;&amp;#039;, parametr &amp;#039;&amp;#039;blnRecursive&amp;#039;&amp;#039; určuje, zda i s případným obsahem.&lt;br /&gt;
* &amp;#039;&amp;#039;dirCopy ( strSource, strTarget, intRewriteFiles=2 )&amp;#039;&amp;#039;�- kopíruje adresář &amp;#039;&amp;#039;strPath&amp;#039;&amp;#039; na nové umístění &amp;#039;&amp;#039;strTarget&amp;#039;&amp;#039;. Pokud&amp;amp;nbsp;soubory v cílovém adresáři již existují, parametr &amp;#039;&amp;#039;intRewriteFiles&amp;#039;&amp;#039; určuje další chování skriptu (0&amp;amp;nbsp;=&amp;amp;nbsp;ukončit s&amp;amp;nbsp;chybou, 1&amp;amp;nbsp;=&amp;amp;nbsp;přepsat původní soubory, 2&amp;amp;nbsp;=&amp;amp;nbsp;ponechat původní soubory).&lt;br /&gt;
* &amp;#039;&amp;#039;dirMove ( strSource, strTarget, intRewriteFiles=2 )&amp;#039;&amp;#039;�- přesouvá adresář &amp;#039;&amp;#039;strPath&amp;#039;&amp;#039; na nové umístění &amp;#039;&amp;#039;strTarget&amp;#039;&amp;#039;. Pokud&amp;amp;nbsp;soubory v cílovém adresáři již existují, parametr &amp;#039;&amp;#039;intRewriteFiles&amp;#039;&amp;#039; určuje další chování skriptu (0&amp;amp;nbsp;=&amp;amp;nbsp;ukončit s&amp;amp;nbsp;chybou, 1&amp;amp;nbsp;=&amp;amp;nbsp;přepsat původní soubory, 2&amp;amp;nbsp;=&amp;amp;nbsp;ponechat původní soubory).&lt;br /&gt;
* &amp;#039;&amp;#039;dirIsWriteable ( strPath )&amp;#039;&amp;#039;�- zjišťuje, zda je možné do adresáře &amp;#039;&amp;#039;strPath&amp;#039;&amp;#039; zapisovat&lt;br /&gt;
* &amp;#039;&amp;#039;dirIsReadable ( strPath )&amp;#039;&amp;#039;�- zjišťuje, zda je možné z adresáře &amp;#039;&amp;#039;strPath&amp;#039;&amp;#039; číst&lt;br /&gt;
* &amp;#039;&amp;#039;dirExists ( strPath, blnOnlyAllowedDir=TRUE )&amp;#039;&amp;#039;�- zjišťuje, zda adresář &amp;#039;&amp;#039;strPath&amp;#039;&amp;#039; existuje. Parametr &amp;#039;&amp;#039;blnOnlyAllowedDir&amp;#039;&amp;#039; určuje, zda se má soubor &amp;quot;hledat&amp;quot; pouze v povoleném umístění.&lt;br /&gt;
* &amp;#039;&amp;#039;dirHandleCreate ( intHandle, strPath )�&amp;#039;&amp;#039;- interní metoda; vytváří zápis o novém otevřeném deskriptoru &amp;#039;&amp;#039;intHandle&amp;#039;&amp;#039; a ukládá cestu &amp;#039;&amp;#039;strPath&amp;#039;&amp;#039; k&amp;amp;nbsp;adresáři&lt;br /&gt;
* &amp;#039;&amp;#039;dirHandleDelete ( intHandle )&amp;#039;&amp;#039;�- interní metoda; deaktivuje zápis o předaném deskriptoru adresáře (&amp;#039;&amp;#039;intHandle&amp;#039;&amp;#039;)&lt;br /&gt;
* &amp;#039;&amp;#039;dirHandleIsActive ( intHandle )&amp;#039;&amp;#039;�- interní metoda; zjišťuje, zda má předaný deskriptor &amp;#039;&amp;#039;intHandle&amp;#039;&amp;#039; aktivní zápis, tzn. je použitelný&lt;br /&gt;
* &amp;#039;&amp;#039;dirContentList ( strPath )&amp;#039;&amp;#039;�- načítá obsah určeného adresáře &amp;#039;&amp;#039;strPath&amp;#039;&amp;#039; do 3D pole rozděleně na adresáře, soubory a&amp;amp;nbsp;ostatní&lt;br /&gt;
* &amp;#039;&amp;#039;pathSplit ( strPath, blnPathToArray=FALSE )&amp;#039;&amp;#039;�- rozděluje předanou cestu &amp;#039;&amp;#039;strPath&amp;#039;&amp;#039; na samotnou cestu a název souboru. Pokud to určí parametr &amp;#039;&amp;#039;blnPathToArray&amp;#039;&amp;#039;, rozděluje se i cesta po jednotlivých adresářích do pole.&lt;br /&gt;
* &amp;#039;&amp;#039;pathAdjust ( strPath, blnReplaceChars=FALSE)&amp;#039;&amp;#039;�- spíše interní metoda; upravuje předanou cestu &amp;#039;&amp;#039;strPath&amp;#039;&amp;#039; pro další použití v ostatních metodách. Pokud je to vyžádáno parametrem &amp;#039;&amp;#039;blnReplaceChars&amp;#039;&amp;#039;, metoda nahrazuje všechny nepovolené znaky v názvech adresářů a souboru (vše krom písmen anglické abecedy, čísel, znaků&amp;amp;nbsp;+&amp;amp;nbsp;(plus),&amp;amp;nbsp;-&amp;amp;nbsp;(mínus) a&amp;amp;nbsp;tečky) podtržítkem.&lt;br /&gt;
* &amp;#039;&amp;#039;pathRemoveOddSeparators ( strPath )&amp;#039;&amp;#039;�- odstraňuje zdvojené oddělovače adresářů (lomítka) a nahrazuje je jedním lomítkem&lt;br /&gt;
* &amp;#039;&amp;#039;pathIsIncluded ( strParent, strChild, blnAllowRoot=FALSE )&amp;#039;&amp;#039;�- zjišťuje, zda je jedna cesta (&amp;#039;&amp;#039;strChild&amp;#039;&amp;#039;) vnořena do jiné (&amp;#039;&amp;#039;strParent&amp;#039;&amp;#039;). Parametr &amp;#039;&amp;#039;blnAllowRoot&amp;#039;&amp;#039; určuje, zda lze za &amp;quot;vnoření&amp;quot; cest považovat, pokud se &amp;#039;&amp;#039;strParent&amp;#039;&amp;#039; a &amp;#039;&amp;#039;strChild&amp;#039;&amp;#039; shodují.&lt;br /&gt;
* &amp;#039;&amp;#039;pathExtend ( strPath, strAdditionalPath, blnActionCut=TRUE )&amp;#039;&amp;#039;�- odnímá řetězec &amp;#039;&amp;#039;strAdditionalPath&amp;#039;&amp;#039; ze začátku cesty &amp;#039;&amp;#039;strPath&amp;#039;&amp;#039; (při nastavení parametru &amp;#039;&amp;#039;blnActionCut&amp;#039;&amp;#039; na TRUE), příp. jej na začátek přidává (&amp;#039;&amp;#039;blnActionCut&amp;#039;&amp;#039; = FALSE)&lt;br /&gt;
* &amp;#039;&amp;#039;pathBuild ( parametry )&amp;#039;&amp;#039;�- spojuje jednotlivé fragmenty cesty (jednotlivé předané parametry) do jednoho řetězce se správným proložením oddělovači adresářů&lt;br /&gt;
* &amp;#039;&amp;#039;checkAllowedDir ( strPath, blnAllowRoot=TRUE )&amp;#039;&amp;#039;�- interní metoda; ověřuje, zda se udaná cesta &amp;#039;&amp;#039;strPath&amp;#039;&amp;#039; nachází v povoleném umístění. Pokud je kontrola vypnuta globálně v konfiguračním souboru nebo ručně vlastností &amp;#039;&amp;#039;blnAllowManual&amp;#039;&amp;#039;, vrací metoda vždy TRUE.&lt;br /&gt;
* &amp;#039;&amp;#039;setErrorMessage ( strMessage, blnRewriteErrorOccurrence=FALSE )&amp;#039;&amp;#039;�- interní metoda; nastavuje chybový stav a text chyby, zapisuje text chybového hlášení do&amp;amp;nbsp;pole &amp;#039;&amp;#039;arrErrorLog&amp;#039;&amp;#039;. Parametr &amp;#039;&amp;#039;blnRewriteErrorOccurrence&amp;#039;&amp;#039; určuje, zda se má případná již existující chybová zpráva přepsat touto aktuální novou.&lt;br /&gt;
* &amp;#039;&amp;#039;getErrorMessage ( )&amp;#039;&amp;#039;�- ověřuje, zda se vyskytla chyba, příp. vrací její lokalizovaný text.&lt;br /&gt;
* &amp;#039;&amp;#039;clsErrorMessage ( )&amp;#039;&amp;#039;�- resetuje výskyt chyb&lt;br /&gt;
* &amp;#039;&amp;#039;log_zapis ( strString=&amp;#039;&amp;#039; )&amp;#039;&amp;#039;�- zapisuje řetězec &amp;#039;&amp;#039;strString&amp;#039;&amp;#039; do pole vývojového logu&lt;br /&gt;
* &amp;#039;&amp;#039;log_vypis ( )&amp;#039;&amp;#039;�- vypisuje vývojový log&lt;br /&gt;
* &amp;#039;&amp;#039;checkStructure ( blnRecursive=FALSE )&amp;#039;&amp;#039;�- ověřuje, zda by měla být spuštěna kontrola přístupnosti povolených umístění, případně tuto kontrolu spouští (metoda &amp;#039;&amp;#039;runCheckStructure&amp;#039;&amp;#039;). Parametr &amp;#039;&amp;#039;blnRecursive&amp;#039;&amp;#039; určuje, zda se kontrola provádí také na vnořených adresářích, nebo jen na hlavních adresářích povolených umístění.&lt;br /&gt;
* &amp;#039;&amp;#039;runCheckStructure ( blnRecursive=FALSE )&amp;#039;&amp;#039;�- prochází povolená umístění a spouští nad nimi kontrolu jejich přístupnosti (metoda &amp;#039;&amp;#039;runCheckDirectory&amp;#039;&amp;#039;). Parametr &amp;#039;&amp;#039;blnRecursive&amp;#039;&amp;#039; určuje, zda se kontrola provádí také na vnořených adresářích, nebo jen na hlavních adresářích povolených umístění.&lt;br /&gt;
* &amp;#039;&amp;#039;runCheckDirectory ( strDirectory )&amp;#039;&amp;#039;�- provádí kontrolu, zda je adresář &amp;#039;&amp;#039;strDirectory&amp;#039;&amp;#039; přístupný pro čtení a zápis.&lt;br /&gt;
* &amp;#039;&amp;#039;getFileList ( strPath, blnGetAbsolutePath=FALSE )&amp;#039;&amp;#039;�- vytváří pole se seznamem souborů v adresáři &amp;#039;&amp;#039;strPath&amp;#039;&amp;#039;. Parametr &amp;#039;&amp;#039;blnGetAbsolutePath&amp;#039;&amp;#039; určuje, zda je uváděna absolutní cesta k souboru.&lt;br /&gt;
* &amp;#039;&amp;#039;getParentDir ( strDirPath )&amp;#039;&amp;#039;�- zjišťuje cestu k nadřazenému, rodičovskému adresáři adresáře &amp;#039;&amp;#039;strDirPath&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
=== Databázová knihovna ===&lt;br /&gt;
&lt;br /&gt;
S databázemi se nepracuje přímo příslušnými funkcemi, ale pomocí objektu &amp;#039;&amp;#039;&amp;#039;$db&amp;#039;&amp;#039;&amp;#039;. Fyzicky je uložena v adresáři /classes/ v souboru podle typu databáze. Jeho metody zprostředkovávají všechny potřebné databázové funkce, není nutné tedy řešit typ databáze (to je určeno na jednom místě – konfiguračním souboru &amp;#039;&amp;#039;global.php&amp;#039;&amp;#039;). Objekt je vytvářen v inicializačním skriptu (init.php) po výběru a načtení databázové knihovny. Jeho pomocí je pak uskutečněno i připojení se k určenému databázovému serveru a výběr databáze.&lt;br /&gt;
&lt;br /&gt;
Nejběžnější způsob použití demonstruje následující příklad (výpis ID uložených zpráv):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;   $sql = &amp;#039;select * from NEWSDB&amp;#039;;�// vykoname dotaz�   $res = &amp;#039;&amp;#039;&amp;#039;$db-&amp;gt;query(&amp;#039;&amp;#039;&amp;#039; $sql &amp;#039;&amp;#039;&amp;#039;);&amp;#039;&amp;#039;&amp;#039;�// zjistime pocet navracenych radku�   $count = &amp;#039;&amp;#039;&amp;#039;$db-&amp;gt;num_rows(&amp;#039;&amp;#039;&amp;#039; $res &amp;#039;&amp;#039;&amp;#039;);&amp;#039;&amp;#039;&amp;#039;�// vypiseme ID vybranych zaznamu�   while ( $row = &amp;#039;&amp;#039;&amp;#039;$db-&amp;gt;fetch_array(&amp;#039;&amp;#039;&amp;#039; $rec &amp;#039;&amp;#039;&amp;#039;)&amp;#039;&amp;#039;&amp;#039; ):�      print ( $row[&amp;#039;ID&amp;#039;] . &amp;quot;&amp;lt;br&amp;gt;\n&amp;quot;);�   endwhile;�   ...&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Reference Databázové knihovny ====&lt;br /&gt;
&lt;br /&gt;
METODY:&lt;br /&gt;
&lt;br /&gt;
* &amp;#039;&amp;#039;MysqlDB ( DB_HOST, DB_USER, DB_PASS, DB_LANGUAGE, DB_NAME )&amp;#039;&amp;#039;�- konstruktor; volá metody na připojení k databázovému serveru (&amp;#039;&amp;#039;connect&amp;#039;&amp;#039;) a na připojení k databázi (&amp;#039;&amp;#039;select_db&amp;#039;&amp;#039;)&lt;br /&gt;
* &amp;#039;&amp;#039;connect ( DB_HOST, DB_USER, DB_PASS, DB_LANGUAGE )�&amp;#039;&amp;#039;- interní metoda; provádí připojení k serveru &amp;#039;&amp;#039;DB_&amp;#039;&amp;#039;HOST pomocí uživatelského jména &amp;#039;&amp;#039;DB_USER&amp;#039;&amp;#039; a hesla &amp;#039;&amp;#039;DB_PASS&amp;#039;&amp;#039; jazykem &amp;#039;&amp;#039;DB_LANGUAGE&amp;#039;&amp;#039;&lt;br /&gt;
* &amp;#039;&amp;#039;select_db ( db, DB_NAME )&amp;#039;&amp;#039;�- interní metoda; provádí výběr databáze v rámci připojení určeného předaným deskriptorem&amp;amp;nbsp;&amp;#039;&amp;#039;db&amp;#039;&amp;#039;&lt;br /&gt;
* &amp;#039;&amp;#039;query ( sql )&amp;#039;&amp;#039;�- vykonává příkaz &amp;#039;&amp;#039;sql&amp;#039;&amp;#039;&lt;br /&gt;
* &amp;#039;&amp;#039;limit ( sql, count, start=0 )&amp;#039;&amp;#039;�- mění předaný &amp;#039;&amp;#039;sql&amp;#039;&amp;#039; dotaz tak, aby vybíral jen limitovaný počet (&amp;#039;&amp;#039;count&amp;#039;&amp;#039;) řádků, přičemž určitý počet řádků (&amp;#039;&amp;#039;start&amp;#039;&amp;#039;) bude ignorováno&lt;br /&gt;
* &amp;#039;&amp;#039;fetch_row ( result )&amp;#039;&amp;#039;�- vrací pole s výsledkem provedeného dotazu, tento výsledek je určen deskriptorem &amp;#039;&amp;#039;result&amp;#039;&amp;#039;&lt;br /&gt;
* &amp;#039;&amp;#039;fetch_array ( result )&amp;#039;&amp;#039;�- vrací asociativní pole s výsledkem provedeného dotazu, tento výsledek je určen deskriptorem &amp;#039;&amp;#039;result&amp;#039;&amp;#039;&lt;br /&gt;
* &amp;#039;&amp;#039;num_rows ( result )&amp;#039;&amp;#039;�- zjišťuje počet vrácených řádků z dotazu určeného deskriptorem &amp;#039;&amp;#039;result&amp;#039;&amp;#039;&lt;br /&gt;
* &amp;#039;&amp;#039;error ( )&amp;#039;&amp;#039;�- vrací text chybové zprávy předchozího příkazu&lt;br /&gt;
* &amp;#039;&amp;#039;fetch_all_data ( result, id = &amp;#039;ID&amp;#039; )&amp;#039;&amp;#039;�- sestavuje 3D pole s výsledkem SELECT dotazu &amp;#039;&amp;#039;result&amp;#039;&amp;#039;. Klíčem jednotlivých záznamů je hodnota ze získaného pole (sloupce) podle parametru &amp;#039;&amp;#039;id&amp;#039;&amp;#039;, hodnotou záznamů je pak asociativní pole s vybranými hodnotami, kde klíčem jsou názvy polí (sloupců)&lt;br /&gt;
* &amp;#039;&amp;#039;query_for_id_column ( query )&amp;#039;&amp;#039;�- provádí dotaz a hodnoty v prvním vráceném sloupci uloží do pole, vrátí i duplikované hodnoty&lt;br /&gt;
* &amp;#039;&amp;#039;print_debug ( )&amp;#039;&amp;#039;�- vypisuje dubug log&lt;br /&gt;
* &amp;#039;&amp;#039;seek ( result, row )&amp;#039;&amp;#039;�- vyhledává a vrací konkrétní řádek (&amp;#039;&amp;#039;row&amp;#039;&amp;#039;) z výsledku dotazu &amp;#039;&amp;#039;result&amp;#039;&amp;#039;. Řádky jsou číslovány od nuly.&lt;br /&gt;
* &amp;#039;&amp;#039;dropProcedure ( $inProcedureName )&amp;#039;&amp;#039;�- jen pro Sybase; ruší uloženou proceduru&lt;br /&gt;
* &amp;#039;&amp;#039;get_rowcount_query ( inRowCount  )&amp;#039;&amp;#039;�- jen pro MSSQL a pro Sybase�- interní metoda; vytváří SQL příkaz na změnu počtu vracených řádků&lt;br /&gt;
* &amp;#039;&amp;#039;set_rowcount ( inRowCount  )&amp;#039;&amp;#039;�- jen pro MSSQL a pro Sybase�- vykonává příkaz na změnu počtu vracených řádků ( SET ROWCOUNT... )&lt;br /&gt;
* &amp;#039;&amp;#039;createProcedure ( inName, inParameters, inContent )&amp;#039;&amp;#039;�-  jen pro MSSQL a pro Sybase�- vytváří uloženou proceduru databáze. Předané parametry určují její název (&amp;#039;&amp;#039;inName&amp;#039;&amp;#039;), parametry (&amp;#039;&amp;#039;inParameters&amp;#039;&amp;#039;) a obsah vytvářecího kódu (&amp;#039;&amp;#039;inContent&amp;#039;&amp;#039;).&lt;br /&gt;
* &amp;#039;&amp;#039;result ( result, row, field )&amp;#039;&amp;#039;�- získává konkrétní řádek (&amp;#039;&amp;#039;row&amp;#039;&amp;#039;) a pole (&amp;#039;&amp;#039;field&amp;#039;&amp;#039;) z předaného výsledku (&amp;#039;&amp;#039;result&amp;#039;&amp;#039;)&lt;br /&gt;
* &amp;#039;&amp;#039;check_quotes ( value )&amp;#039;&amp;#039;�- přidává zpětné lomítko před jednoduché i dvojité uvozovky v řetězci &amp;#039;&amp;#039;value&amp;#039;&amp;#039;&lt;br /&gt;
* &amp;#039;&amp;#039;check_apostrophes ( value )&amp;#039;&amp;#039;�- přidává zpětné lomítko před jednoduchou uvozovku (apostrof) v řetězci &amp;#039;&amp;#039;value&amp;#039;&amp;#039;&lt;br /&gt;
* &amp;#039;&amp;#039;check_slashes ( value )&amp;#039;&amp;#039;�- zdvojuje zpětná lomítka existující v řetězci &amp;#039;&amp;#039;value&amp;#039;&amp;#039;&lt;br /&gt;
* &amp;#039;&amp;#039;trigger ( table, event, id = 0 )�-&amp;#039;&amp;#039; jen pro MySql�- simuluje práci triggerů ostatních databází, název triggeru je složen z názvu tabulky (&amp;#039;&amp;#039;table&amp;#039;&amp;#039;) a události (&amp;#039;&amp;#039;event&amp;#039;&amp;#039;), parametr &amp;#039;&amp;#039;id&amp;#039;&amp;#039; identifikuje záznam, na který se &amp;quot;trigger&amp;quot; aplikuje.&lt;br /&gt;
* &amp;#039;&amp;#039;createTime ( year, month, day, hour = 0, min=0, sec=0 )&amp;#039;&amp;#039;�- generuje datum a čas pro databázi podle předaných parametrů&lt;br /&gt;
* &amp;#039;&amp;#039;createDatabaseTime ( unixTime=null )&amp;#039;&amp;#039;�- vrací naformátované datum pro vložení do databáze&lt;br /&gt;
* &amp;#039;&amp;#039;createTimeFromUnix ( time )&amp;#039;&amp;#039;�- interní metoda; generuje datum a čas v databázovém tvaru z předaného timestampu &amp;#039;&amp;#039;time&amp;#039;&amp;#039;&lt;br /&gt;
* &amp;#039;&amp;#039;createTimeFromUnixNull ( time )�&amp;#039;&amp;#039;- vrací datum a čas v databázovém tvaru nebo NULL, pokud má parametr &amp;#039;&amp;#039;time&amp;#039;&amp;#039; tuto hodnotu&lt;br /&gt;
* &amp;#039;&amp;#039;createUnixTime ( datetime )&amp;#039;&amp;#039;�- generuje timestamp z údaje &amp;#039;&amp;#039;datetime&amp;#039;&amp;#039; v databázovém tvaru&lt;br /&gt;
* &amp;#039;&amp;#039;fetch_field ( qId  )&amp;#039;&amp;#039;�- vrací objekt s parametry následujícího, ještě nenačteného sloupce výsledku &amp;#039;&amp;#039;qId&amp;#039;&amp;#039;&lt;br /&gt;
* &amp;#039;&amp;#039;free_result ( qId )&amp;#039;&amp;#039;�- uvolňuje zdroje po výsledku &amp;#039;&amp;#039;qId&amp;#039;&amp;#039;&lt;br /&gt;
* &amp;#039;&amp;#039;runDynamicList ( inListId, inNewsId=0 )&amp;#039;&amp;#039;�- liší se podle typu databáze: MySql spouští dynamický seznam, MSSQL a Sybase spouští databázovou uloženou proceduru Parametry určují číslo seznamu (&amp;#039;&amp;#039;inListId&amp;#039;&amp;#039;) a ID zprávy, které se vztahuje (&amp;#039;&amp;#039;inNewsId&amp;#039;&amp;#039;)&lt;br /&gt;
* &amp;#039;&amp;#039;make_date_time_query ( columnName )&amp;#039;&amp;#039;�- jen pro MSSQL a Sybase�- upravuje část dotazu (název sloupce &amp;#039;&amp;#039;columnName&amp;#039;&amp;#039; s datem a časem), aby vracel formátovaný čas&lt;br /&gt;
* &amp;#039;&amp;#039;make_is_null_query ( columnName, defaultValue )&amp;#039;&amp;#039;�- upravuje část dotazu (název sloupce &amp;#039;&amp;#039;columnName&amp;#039;&amp;#039;) tak, aby případně místo hodnoty NULL vracel hodnotu &amp;#039;&amp;#039;defaultValue&amp;#039;&amp;#039;&lt;br /&gt;
* &amp;#039;&amp;#039;execute_and_get_result ( query )&amp;#039;&amp;#039;�- provádí dotaz &amp;#039;&amp;#039;query&amp;#039;&amp;#039; a vrací hodnotu v prvním poli prvního vráceného záznamu&lt;br /&gt;
* &amp;#039;&amp;#039;check_if_result_exists ( resultIndex )&amp;#039;&amp;#039;�- ověřuje platnost deskriptoru výsledku &amp;#039;&amp;#039;resultIndex&amp;#039;&amp;#039;&lt;br /&gt;
* &amp;#039;&amp;#039;affected_rows ( resultId )&amp;#039;&amp;#039;�- zjišťuje, kolik řádků ovlivnil naposledy vykonaný příkaz identifikovaný deskriptorem výsledku &amp;#039;&amp;#039;resultId&amp;#039;&amp;#039;&lt;br /&gt;
* &amp;#039;&amp;#039;make_date_time_condition ( inDate )&amp;#039;&amp;#039;�- připravuje předané datum &amp;#039;&amp;#039;inDate&amp;#039;&amp;#039; pro použití v podmínce dotazu&lt;br /&gt;
* &amp;#039;&amp;#039;sql_getdate ( )&amp;#039;&amp;#039;�- vrací název SQL funkce, kterou server nahrazuje aktuálním datem&lt;br /&gt;
* &amp;#039;&amp;#039;get_tables ( inGetUserTablesOnly=true )&amp;#039;&amp;#039;�- vrací pole s názvy všech databázových tabulek; parametr &amp;#039;&amp;#039;inGetUserTablesOnly&amp;#039;&amp;#039; určuje, zda se mají načítat jen uživatelské tabulky a systémové se mají ignorovat&lt;br /&gt;
* &amp;#039;&amp;#039;dropTableIfExists ( tabName )&amp;#039;&amp;#039;�- jen pro MySql�- odstraní tabulku &amp;#039;&amp;#039;tabName&amp;#039;&amp;#039;, pokud existuje&lt;br /&gt;
* &amp;#039;&amp;#039;dropTable ( tabName )&amp;#039;&amp;#039;�- odstraní tabulku &amp;#039;&amp;#039;tabName&amp;#039;&amp;#039;&lt;br /&gt;
* &amp;#039;&amp;#039;getColumnType ( table, column )&amp;#039;&amp;#039;�- zjišťuje datový typ sloupce &amp;#039;&amp;#039;column&amp;#039;&amp;#039; v tabulce &amp;#039;&amp;#039;table&amp;#039;&amp;#039;&lt;br /&gt;
* &amp;#039;&amp;#039;getColumnsNames ( table )&amp;#039;&amp;#039;�- vrací seznam názvů polí tabulky&lt;br /&gt;
* &amp;#039;&amp;#039;getTables ( database )&amp;#039;&amp;#039;�- vrací seznam tabulek v databázi &amp;#039;&amp;#039;database&amp;#039;&amp;#039;&lt;br /&gt;
* &amp;#039;&amp;#039;getNullSql ( value )&amp;#039;&amp;#039;�- vrací část podmínky dotazu pro data typu String nebo NULL&lt;br /&gt;
* &amp;#039;&amp;#039;getPKName ( aTable )&amp;#039;&amp;#039;�- vrací název primárního klíče tabulky &amp;#039;&amp;#039;aTable&amp;#039;&amp;#039;; pokud je nalezen, jinak prázdný řetězec&lt;/div&gt;</summary>
		<author><name>Bajkvl</name></author>
	</entry>
</feed>