aboutsummaryrefslogtreecommitdiff
path: root/files/pl/mozilla/tech/xul/kurs_xul/zaawansowane_reguły/index.html
diff options
context:
space:
mode:
Diffstat (limited to 'files/pl/mozilla/tech/xul/kurs_xul/zaawansowane_reguły/index.html')
-rw-r--r--files/pl/mozilla/tech/xul/kurs_xul/zaawansowane_reguły/index.html219
1 files changed, 0 insertions, 219 deletions
diff --git a/files/pl/mozilla/tech/xul/kurs_xul/zaawansowane_reguły/index.html b/files/pl/mozilla/tech/xul/kurs_xul/zaawansowane_reguły/index.html
deleted file mode 100644
index 1f895144ec..0000000000
--- a/files/pl/mozilla/tech/xul/kurs_xul/zaawansowane_reguły/index.html
+++ /dev/null
@@ -1,219 +0,0 @@
----
-title: Zaawansowane reguły
-slug: Mozilla/Tech/XUL/Kurs_XUL/Zaawansowane_reguły
-tags:
- - Kurs_XUL
- - Przewodniki
- - XUL
-translation_of: Archive/Mozilla/XUL/Tutorial/Advanced_Rules
----
-<p></p><div class="prevnext" style="text-align: right;">
- <p><a href="/pl/docs/Kurs_XUL:Źródła_danych_RDF" style="float: left;">« Poprzedni</a><a href="/pl/docs/Kurs_XUL:Trwałe_dane">Następny »</a></p>
-</div><p></p>
-
-<p>Artykuł ten, opisuje więcej zaawansowanych zasad składni.</p>
-
-<h2 id="Pe.C5.82ne_zasady_sk.C5.82adni" name="Pe.C5.82ne_zasady_sk.C5.82adni">Pełne zasady składni</h2>
-
-<p>Reguły składni opisującej dotychczas używane były w pewnych ilościach w kodzie źródłowym ale czasami będą potrzebne do wyświetlenia dane w sposób bardziej skomplikowany. Prosta reguła składni jest naprawdę tylko skrótem dla pełnej zasady składni, która jest opisana poniżej. Jak prosta zasada składni, tak i pełna zasada jest umieszczana w obrębie tagu <code><code><a href="/pl/docs/Mozilla/Tech/XUL/rule" title="rule">rule</a></code></code>.</p>
-
-<p>Pełne reguły zawierają trzy tagi będące potomnymi, <code><code><a href="/pl/docs/Mozilla/Tech/XUL/conditions" title="conditions">conditions</a></code></code> stanami tagu, <code><code><a href="/pl/docs/Mozilla/Tech/XUL/bindings" title="bindings">bindings</a></code></code> opraw tagu i <code><code><a href="/pl/docs/Mozilla/Tech/XUL/action" title="action">action</a></code></code> akcji tagu, poprzez <code><code><a href="/pl/docs/Mozilla/Tech/XUL/bindings" title="bindings">bindings</a></code></code> tag jest nie zawsze potrzebny.</p>
-
-<p>Element <code>conditions</code> jest użyty jako specyficzne kryterium odpowiadające dawanych źródeł. Możesz określić liczbę stanów odpowiadającą, wszystkim które muszą odpowiedzieć. W prostej regule składni, stany te są umiejscowione bezpośrednio w <code>rule</code> własnej elementu.</p>
-
-<p>Jeżeli warunki spotkania odpowiadają zawartości źródła, zawartość ta umieszczona wewnątrz tagu <code>actions</code> jest wygenerowana. W prostej składni, zawartość jest umieszczona bezpośrednio wewnątrz <code>rule</code>.</p>
-
-<h2 id="Zasady" name="Zasady">Zasady</h2>
-
-<p>Kiedy drzewo, menu lub inny element z kodem źródłowym wygenerują zawartość, budowniczy szablonu pierwszy znajdzie źródło kierując się atrybutem <code>ref</code>. To potem powtarzamy nad całym tym źródłem będącego potomkiem zawartości. Stosuje się to w każdym stanie źródła. Jeśli warunki odpowiadają zawartości źródła, to zawartość w elemencie <code>actions</code> jest generowana dla tego źródła. Jeśli warunki są nie spełnione, zawartość nie jest generowana.</p>
-
-<h3 id="Element_content" name="Element_content">Element <code>content</code></h3>
-
-<p>Element <code><code><a href="/pl/docs/Mozilla/Tech/XUL/conditions" title="conditions">conditions</a></code></code> może zawierać trzy elementy. Pierwszy do zawartość elementu <code><code><a href="/pl/docs/Mozilla/Tech/XUL/content" title="content">content</a></code></code>, który powinien zawsze występować tylko raz. Służy on za miejsce przechowywania podczas przeglądania zasobów przez budowniczego szablonu. Wyszczególnia on nazwę zmiennej, w której przechowywany jest odnośnik do głównego zasobu (
-
- <i>root resource</i>
- ), podczas gdy warunki są analizowane w celu dopasowania. Główny zasób jest określony przez atrybut <code><code id="a-ref"><a href="https://developer.mozilla.org/pl/docs/Mozilla/Tech/XUL/Atrybut/ref">ref</a></code></code> w elemencie zawierającym szablon.</p>
-
-<p>Składnia elementu content zawiera następujący kod:</p>
-
-<pre>&lt;content uri="?var"/&gt;
-</pre>
-
-<p>Znak zapytania oznacza, że następujący potem tekst jest zmienną. Możesz więc użyć zmiennej 'var' wewnątrz pozostałych warunków. Oczywiście możesz nazywać zmienną jak tylko chcesz.</p>
-
-<h3 id="Element_member" name="Element_member">Element <code>member</code></h3>
-
-<p>Następujący element jest elementem <code><code><a href="/pl/docs/Mozilla/Tech/XUL/member" title="member">member</a></code></code>, który jest używany do przeglądania zestawu potomnych zasobów. W terminach RDF oznacza to zasobnik taki jak Seq, Bag albo Alt. Powiedzmy, że masz listę miast opisanych w następującym fragmencie RDF/XML:</p>
-
-<pre>&lt;RDF:Seq about="http://www.xulplanet.com/rdf/weather/cities"&gt;
- &lt;RDF:li resource="http://www.xulplanet.com/rdf/weather/city/Paris"/&gt;
- &lt;RDF:li resource="http://www.xulplanet.com/rdf/weather/city/Manchester"/&gt;
- &lt;RDF:li resource="http://www.xulplanet.com/rdf/weather/city/Melbourne"/&gt;
- &lt;RDF:li resource="http://www.xulplanet.com/rdf/weather/city/Kiev"/&gt;
-&lt;/RDF:Seq&gt;
-
-&lt;RDF:Description about="http://www.xulplanet.com/rdf/weather/city/Paris"&gt;
- &lt;cityset:name&gt;Paris&lt;/cityset:name&gt;
-&lt;/RDF:Description&gt;
-
-.
-.
-.
-</pre>
-
-<p>Możesz chcieć wyświetlić element wiersza w drzewie dla każdego opisu. Do zrobienia tego, użyj elementu <code><code><a href="/pl/docs/Mozilla/Tech/XUL/member" title="member">member</a></code></code> jak poniżej:</p>
-
-<pre>&lt;tree id="citiesTree" datasources="weather.rdf"
- ref="http://www.xulplanet.com/rdf/weather/cities"&gt;
- &lt;template&gt;
- &lt;rule&gt;
- &lt;conditions&gt;
- &lt;content uri="?list"/&gt;
- &lt;member container="?list" child="?city"/&gt;
- &lt;/conditions&gt;
- &lt;rule&gt;
- &lt;template&gt;
-&lt;/tree&gt;
-</pre>
-
-<p><br>
- Budowniczy szablonu rozpoczyna od przechwycenia wartości atrybutu <code><code id="a-ref"><a href="https://developer.mozilla.org/pl/docs/Mozilla/Tech/XUL/Atrybut/ref">ref</a></code></code>, którą w tym przypadku jest <code><a class="external" href="http://www.xulplanet.com/rdf/weather/cities" rel="freelink">http://www.xulplanet.com/rdf/weather/cities</a></code>. Ten zasób będzie umieszczone w zmiennej 'list', jak zostało ustalone w znaczniku <code><code><a href="/pl/docs/Mozilla/Tech/XUL/content" title="content">content</a></code></code>. Możemy następnie pobrać pokrewne zasoby używając zmiennej 'list'.</p>
-
-<p>Potem budowniczy szablonu widzi element <code><code><a href="/pl/docs/Mozilla/Tech/XUL/member" title="member">member</a></code></code>. Sprawia on, że budowniczy wędruje przez elementy potomne danego elementu. Element rodzic jest wyszczególniony przez atrybut <code><code id="a-container"><a href="https://developer.mozilla.org/pl/docs/Mozilla/Tech/XUL/Atrybut/container">container</a></code></code>, a elementy dzieci - przez atrybut <code>child</code>. W przykładzie powyżej wartość atrybutu <code><code id="a-container"><a href="https://developer.mozilla.org/pl/docs/Mozilla/Tech/XUL/Atrybut/container">container</a></code></code> to zmienna 'list'. Z tego wynika, że rodzic będzie wartością zmiennej list, która została ustawiona na główny zasób '<a class="external" href="http://www.xulplanet.com/rdf/weather/cities" rel="freelink">http://www.xulplanet.com/rdf/weather/cities</a>'. Efektem tego będzie przejście przez listę dzieci tego zasobu.</p>
-
-<p>Jeśli spojrzymy na powyższy RDF zobaczymy, że zasób "<a class="external" href="http://www.xulplanet.com/rdf/weather/cities" rel="freelink">http://www.xulplanet.com/rdf/weather/cities</a>" ma czworo dzieci, każdego dla innego miasta. Budowniczy szablonu wędruje przez każdego z nich, dopasowując go do wartości atrybutu dziecka ("child attribute"). W tym przypadku jest to po prostu wartość "city". Tak więc budowniczy wstawi zmienną "city" w miejsce wartości każdego zasobu potomnego.</p>
-
-<p>Ponieważ nie ma więcej warunków, warunek pasuje do każdego z tych czterech zasobów i budowniczy wygeneruje zawartość dla każdego z tej czwórki. Oczywiście powyższy przykład nie ma żadnej zawartości. Dodamy ją później.</p>
-
-<h3 id="triple_element" name="triple_element"><code>triple</code> element</h3>
-
-<p>Następnym elementem jest element <code><code><a href="/pl/docs/Mozilla/Tech/XUL/triple" title="triple">triple</a></code></code>. Jest używany w celu sprawdzenia istnienia danego powiązania (potwierdzenie: prawda/fałsz) w danych źródłowych RDFu.
-
- <i>Triple</i>
- jest jak własność zasobu. Na przykład triple istnieje pomiędzy zakładką a jej adresem URL. Można to przedstawić następująco:</p>
-
-<pre>A Bookmark to mozilla.org -&gt; URL -&gt; www.mozilla.org
-</pre>
-
-<p>Znaczy to, że jest powiązanie (
- <i>triple</i>
- ) pomiędzy zakładką 'A Bookmark to mozilla.org', a 'www.mozilla.org' poprzez własność URL. Pierwsza część tego wyrażenia jest nazwana podmiotem, druga - orzeczeniem, a trzecia to obiekt. Jako element <code><code><a href="/pl/docs/Mozilla/Tech/XUL/triple" title="triple">triple</a></code></code> wyrażałby się następująco:</p>
-
-<pre>&lt;triple subject="A Bookmark to mozilla.org"
- predicate="URL"
- object="www.mozilla.org"/&gt;
-</pre>
-
-<p>Zostało to nieco uproszczone w porównaniu z realnym kodem. Orzeczenie normalnie zawierałoby miejsce na nazwę, a podmiot byłby identyfikatorem id zasobu zakładki, a nie jej tytułem, jak powyżej. W rzeczywistości, tytuł zakładki byłby kolejnym powiązaniem w źródle danych, używanym z orzeczeniem Name.</p>
-
-<p>Możesz wymienić podmiot i obiekt w elemencie <code>triple</code> na odnośniki zmiennych, a wtedy w miejsce zmiennych wstawione zostaną wartości. Jeśli żadna wartość nie zostanie zdefiniowana dla danej zmiennej, budowniczy szablonu poszuka zmiennej w źródle danych i przypisze ją danej zmiennej.</p>
-
-<p>Powiedzmy, że chcemy dodać przewidywanie pogody do danych źródłowych miast. Można użyć następujących warunków:</p>
-
-<pre>&lt;conditions&gt;
- &lt;content uri="?list"/&gt;
- &lt;member container="?list" child="?city"/&gt;
- &lt;triple subject="?city"
- predicate="http://www.xulplanet.com/rdf/weather#prediction"
- object="?pred"/&gt;
-&lt;/conditions&gt;
-</pre>
-
-<p>Budowniczy szablonu będzie wędrował przez każde miasto jak wcześniej. Gdy dojdzie do triple, poszuka potwierdzenia w danych źródłowych RDFu czy istnieją przewidywania pogodowe dla danego miasta. Zmiennej 'pred' zostaną przypisane odpowiednie dane. Budowniczy powtórzy to dla każdego z czterech miast. Pojawi się dopasowanie, a budowniczy wygeneruje zawartość każdego miasta, które posiada prognozę. Jeśli miasto nie ma zasobu prognozowego, warunek nie pasuje do niego i nie zostanie wygenerowana zawartość dla takiego miasta. Zauważmy, że nie trzeba wstawiać 'rdf:' na początku orzeczenia, jako że tą część zakładamy wcześniej.</p>
-
-<p>Moglibyśmy zastępować także <code>object</code> wartością wewnątrz linii. Na przykład:</p>
-
-<pre>&lt;conditions&gt;
- &lt;content uri="?city"/&gt;
- &lt;triple subject="?city"
- predicate="http://www.xulplanet.com/rdf/weather#prediction"
- object="Cloudy"/&gt;
-&lt;/conditions&gt;
-</pre>
-
-<p>Ten przykład jest podobny, ale wyszczególniliśmy fakt, że chcemy znaleźć dopasowanie do 'Cloudy'. Rezultat jest taki, że warunki będą pasować tylko dla miast, dla których prognoza zawiera 'Cloudy'.</p>
-
-<p>Możemy dodać więcej powiązań, gdybyśmy wymagali więcej dopasowań. Na przykład we fragmencie powyżej, moglibyśmy chcieć sprawdzić temperaturę i prędkość wiatru. Aby to zrobić należy po prostu dodać następne powiązanie, które sprawdza dodatkowe zasoby. Warunek będzie spełniony, jeśli wszystkie powiązania dostarczą odpowiednich wartości.</p>
-
-<p>Poniższy przykład sprawdzi dodatkowe powiązanie, warunek na nazwę miasta. Będzie to przypisane do zmiennej 'name'. Warunek będzie spełniony, wtedy i tylko wtedy gdy miasto ma zarówno nazwę jak i prognozę.</p>
-
-<pre>&lt;conditions&gt;
- &lt;content uri="?list"/&gt;
- &lt;member container="?list" child="?city"/&gt;
- &lt;triple subject="?city"
- predicate="http://www.xulplanet.com/rdf/weather#name"
- object="?name"/&gt;
- &lt;triple subject="?city"
- predicate="http://www.xulplanet.com/rdf/weather#prediction"
- object="?pred"/&gt;
-&lt;/conditions&gt;
-</pre>
-
-<h2 id="Generowanie_zawarto.C5.9Bci" name="Generowanie_zawarto.C5.9Bci">Generowanie zawartości</h2>
-
-<p>Zawartość, którą generuje reguła, jest wyszczególniona wewnątrz elementu <code><code><a href="/pl/docs/Mozilla/Tech/XUL/action" title="action">action</a></code></code>. Powinna to być zawartość pod poziomów drzewa, elementów menu albo jakakolwiek, jaką chcesz wygenerować. Z tego wynika, że dla przykładu z pogodą powyżej, możesz użyć zmiennych 'name' albo 'pred' do wyświetlania miasta albo prognozy. Możesz użyć także zmiennych 'list' albo 'city', ale one przechowują zasoby, a nie tekst, więc nie będą mieć raczej znaczącej wartości dla użytkowników.</p>
-
-<p>W prostej składni reguły używamy składni <code>uri='rdf:*'</code>, aby zaznaczyć, gdzie powinna być wygenerowana zawartość. W pełnej składni ustawia się wartość atrybutu <code><code id="a-uri"><a href="https://developer.mozilla.org/pl/docs/Mozilla/Tech/XUL/Atrybut/uri">uri</a></code></code> na zmienną, którą używasz w warunkach. Zwyczajowo będzie to zmienna przypisana do atrybutu <code>child</code> elementu <code><code><a href="/pl/docs/Mozilla/Tech/XUL/member" title="member">member</a></code></code>.</p>
-
-<h3 id="Complete_Tree_Example" name="Complete_Tree_Example">Complete Tree Example</h3>
-
-<p>Następny przykład pokazuje kompletne drzewo w czasie działania. Możesz zobaczyć plik RDF osobno <a href="https://developer.mozilla.org/samples/xultu/examples/weather.txt">Źródła</a> <a href="https://developer.mozilla.org/samples/xultu/examples/weather.rdf">RDF</a></p>
-
-<p><span id="Przyk%C5%82ad_1"><a id="Przyk%C5%82ad_1"></a><strong>Przykład 1</strong></span> : <a href="https://developer.mozilla.org/samples/xultu/examples/ex_advrules_1.xul.txt">Źródła</a></p>
-
-<pre>&lt;tree id="weatherTree" flex="1" datasources="weather.rdf"
- ref="http://www.xulplanet.com/rdf/weather/cities"&gt;
- &lt;treecols&gt;
- &lt;treecol id="city" label="City" primary="true" flex="1"/&gt;
- &lt;treecol id="pred" label="Prediction" flex="1"/&gt;
- &lt;/treecols&gt;
-
- &lt;template&gt;
- &lt;rule&gt;
- &lt;conditions&gt;
- &lt;content uri="?list"/&gt;
- &lt;member container="?list" child="?city"/&gt;
- &lt;triple subject="?city"
- predicate="http://www.xulplanet.com/rdf/weather#name"
- object="?name"/&gt;
- &lt;triple subject="?city"
- predicate="http://www.xulplanet.com/rdf/weather#prediction"
- object="?pred"/&gt;
- &lt;/conditions&gt;
- &lt;action&gt;
- &lt;treechildren&gt;
- &lt;treeitem uri="?city"&gt;
- &lt;treerow&gt;
- &lt;treecell label="?name"/&gt;
- &lt;treecell label="?pred"/&gt;
- &lt;/treerow&gt;
- &lt;/treeitem&gt;
- &lt;/treechildren&gt;
- &lt;/action&gt;
- &lt;/rule&gt;
- &lt;/template&gt;
-&lt;/tree&gt;
-</pre>
-
-<p>Dwie kolumny pokazują nam się w tym drzewie, jedna wyświetla cechy nazwy każdego pod poziomów, a reszta wyświetla przewidywane cechy.</p>
-
-<div class="note">Jeśli użyjemy flagi <code>dont-build-content</code> zmniejszymy drzewo, zamieniając element <code><code><a href="/pl/docs/Mozilla/Tech/XUL/content" title="content">content</a></code></code> z elementem <code><code><a href="/pl/docs/Mozilla/Tech/XUL/treeitem" title="treeitem">treeitem</a></code></code>.</div>
-
-<h2 id="Dodawanie_dodatkowych_wi.C4.85za.C5.84" name="Dodawanie_dodatkowych_wi.C4.85za.C5.84">Dodawanie dodatkowych wiązań</h2>
-
-<p>Końcowy element możesz dodać wewnątrz reguły elementu <code><code><a href="/pl/docs/Mozilla/Tech/XUL/bindings" title="bindings">bindings</a></code></code>. Wewnątrz jego, możesz położyć jeden lub więcej elementów <code><code><a href="/pl/docs/Mozilla/Tech/XUL/binding" title="binding">binding</a></code></code>. Oprawiając w zasady mamy taką samą składnię jako potrójny i spełnia prawie tą samą funkcję. Na przykład w przykładzie poniżej możemy dodać następujące oprawy:</p>
-
-<pre>&lt;bindings&gt;
- &lt;binding subject="?city"
- predicate="http://www.xulplanet.com/rdf/weather#temperature"
- object="?temp"/&gt;
-&lt;/bindings&gt;
-</pre>
-
-<p>Taka oprawa przechwyci zasoby temperaturowe każdego drzewa i przypisze je do zmiennej 'temp'. Jest to bardzo podobne do tego, co robi powiązanie. Różnica jest taka, że oprawa nie jest sprawdzana, gdy próbuje sprawdzić warunki. Oznacza to, że miasto musi mieć nazwę i prognozę do wyświetlenia, chociaż nie ma znaczenia czy ma temperaturę. Jednak, jeśli ma, będzie ona umieszczona w zmiennej 'temp', żeby mogła być użyta w akcji. Jeśli miasto nie ma temperatury, zmienna "temp" będzie miała pusty string.</p>
-
-<p>Następnie, poszukamy jak zapisać stanowisko elementów XUL.</p>
-
-<p></p><div class="prevnext" style="text-align: right;">
- <p><a href="/pl/docs/Kurs_XUL:Źródła_danych_RDF" style="float: left;">« Poprzedni</a><a href="/pl/docs/Kurs_XUL:Trwałe_dane">Następny »</a></p>
-</div><p></p>