kpac : config experiments
authorBill Erickson <berick@esilibrary.com>
Mon, 23 Jan 2012 21:49:29 +0000 (16:49 -0500)
committerBill Erickson <berick@esilibrary.com>
Wed, 4 Apr 2012 16:42:05 +0000 (12:42 -0400)
Signed-off-by: Bill Erickson <berick@esilibrary.com>
Open-ILS/examples/kpac.pl [new file with mode: 0755]
Open-ILS/examples/kpac.xml [new file with mode: 0644]

diff --git a/Open-ILS/examples/kpac.pl b/Open-ILS/examples/kpac.pl
new file mode 100755 (executable)
index 0000000..ad8cfdc
--- /dev/null
@@ -0,0 +1,50 @@
+#!/usr/bin/env perl
+use strict; 
+use warnings;
+use XML::Simple;
+use Data::Dumper;
+
+my $doc = XMLin(
+    'kpac.xml', 
+    KeyAttr => ['id'], 
+    ForceArray => ['layout', 'page', 'cell'], 
+    NormaliseSpace => 2
+);
+
+#print Dumper($doc);
+
+sub render_page {
+    my $id = shift;
+    my $page = $doc->{pages}->{page}->{$id};
+    my $ncols = $page->{columns};
+    my $idx = 0;
+
+    print $page->{name} . "\n";
+    print '-'x20 . "\n";
+    for my $cell (@{$page->{cell}}) {
+        if ($idx++ == $ncols) { print "\n\n"; $idx = 1; }
+
+        if ($cell->{type} eq 'topic') {
+            my $topic_page = $doc->{pages}->{page}->{$cell->{content}};
+            print $topic_page->{name} . " : " . $topic_page->{img} . " | ";
+
+        } elsif ($cell->{type} eq 'search') {
+            print $cell->{name} . " : " . $cell->{img} . " : " . $cell->{content} . " | ";
+
+        } elsif ($cell->{type} eq 'link') {
+            print $cell->{name} . " : " . $cell->{img} . " : " . $cell->{content} . " | " ;
+        }
+    }
+}
+
+
+for my $layout (@{$doc->{layout}}) {
+    render_page($layout->{page});
+    print  "\n" . '-'x50 . "\n";
+}
+
+print "\n\n\n";
+
+render_page(10);
+
+
diff --git a/Open-ILS/examples/kpac.xml b/Open-ILS/examples/kpac.xml
new file mode 100644 (file)
index 0000000..b370e51
--- /dev/null
@@ -0,0 +1,36 @@
+<kpac version="1.0" xmlns="http://evergreen-ils.org/spec/OPAC/kpac/v1">
+    <pages>
+        <page id="1" columns="3" name="Home" img="/images/home.jpg">
+            <cell type="topic">10</cell>
+            <cell type="topic">11</cell>
+            <cell type="topic">12</cell>
+        </page>
+        <!-- ABC wants veggies first -->
+        <page id="23" columns="3" name="ABC Home" img="/images/abc-logo.jpg">
+            <cell type="topic">11</cell>
+            <cell type="topic">10</cell>
+            <cell type="topic">12</cell>
+        </page>
+        <page id="10" columns="3" name="Animals" img="/images/lion.jpg">
+            <cell name="Mammals" img="/images/koala.jpg" type="search">su:mammal audience(j)</cell>
+            <cell name="Reptiles" img="/images/snake.jpg" type="search">su:reptile audience(j)</cell>
+            <cell name="Fish" img="/images/fish.jpg" type="search">su:fish audience(j)</cell>
+            <cell name="Invertabrates" img="/images/starfish.jpg" type="search">su:invertebrate audience(j)</cell>
+            <cell name="Yeti" img="/images/yeti.jpg" type="search">su:yeti audience(j)</cell>
+            <cell name="Monsters" img="/images/monsters.jpg" type="search">su:monsters audience(j)</cell>
+            <cell name="Aliens" img="/images/aliens.jpg" type="search">su:aliens audience(j)</cell>
+            <cell name="Other Reading..." img="/images/book.jpg" type="link">http://wikipedia.org/animals</cell>
+        </page>
+        <page id="11" columns="1" name="Vegetables" img="/images/carrot.jpg">
+            <cell name="Greens" img="/images/kale.jpg" type="saved_search">92</cell>
+            <cell name="Bulbs" img="/images/onion.jpg" type="search">onions and such audience(j)</cell>
+        </page>
+        <page id="12" columns="3" name="Minerals" img="/images/rock.jpg">
+            <cell name="Igneous" img="/images/volcano.jpg" type="search">su:igneous rock audience(j)</cell>
+            <cell name="Sedimenatry" img="/images/lake.jpg" type="search">su:sedimentary rock audience(j)</cell>
+            <cell name="Metamorphic" img="/images/marble.jpg" type="search">su:metamorphic rock audience(j)</cell>
+        </page>
+    </pages>
+    <layout owner="1" page="1"/>
+    <layout owner="213" page="23"/>
+</kpac>