gf-ralbum 0.0.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/LICENSE +20 -0
- data/README.rdoc +80 -0
- data/bin/ralbum-JPG2jpg.rb +90 -0
- data/bin/ralbum-compile_skins.rb +18 -0
- data/bin/ralbum-myconv.rb +81 -0
- data/bin/ralbum-readexif.rb +18 -0
- data/bin/ralbum-reorder.rb +200 -0
- data/bin/ralbum.rb +12 -0
- data/example/README.txt +8 -0
- data/example/example.sh +3 -0
- data/example/httpd.rb +35 -0
- data/example/test_phototree/album.xml +21 -0
- data/example/test_phototree/catalog_data/md5_to_key.yaml +4 -0
- data/example/test_phototree/catalog_data/md5_to_key.yaml.test +4 -0
- data/example/test_phototree/catalog_data/project.xml +329 -0
- data/example/test_phototree/r_photo01.jpg +0 -0
- data/example/test_phototree/r_photo01.jpg.xml +17 -0
- data/example/test_phototree/subalbum01/album.xml +21 -0
- data/example/test_phototree/subalbum01/subalbum01_photo01.jpg +0 -0
- data/example/test_phototree/subalbum01/subalbum01_photo01.jpg.xml +15 -0
- data/example/test_phototree/subalbum01/subalbum01_photo02.jpg +0 -0
- data/example/test_phototree/subalbum01/subalbum01_photo02.jpg.xml +15 -0
- data/example/test_phototree/subalbum01/subalbum01_photo03.jpg +0 -0
- data/example/test_phototree/subalbum01/subalbum01_photo03.jpg.xml +15 -0
- data/example/test_phototree/subalbum01/subalbum01_photo04.jpg +0 -0
- data/example/test_phototree/subalbum01/subalbum01_photo04.jpg.xml +15 -0
- data/example/test_phototree/subalbum02/album.xml +10 -0
- data/example/test_phototree/subalbum02/subalbum02_photo01.jpg +0 -0
- data/example/test_phototree/subalbum02/subalbum02_photo01.jpg.xml +15 -0
- data/example/test_phototree/subalbum02/subalbum02_photo02.jpg +0 -0
- data/example/test_phototree/subalbum02/subalbum02_photo02.jpg.xml +15 -0
- data/example/test_phototree/subalbum02/subalbum02_photo03.jpg +0 -0
- data/example/test_phototree/subalbum02/subalbum02_photo03.jpg.xml +15 -0
- data/example/test_phototree/subalbum02/subalbum02_photo04.jpg +0 -0
- data/example/test_phototree/subalbum02/subalbum02_photo04.jpg.xml +15 -0
- data/example/test_phototree/subalbum02/subalbum02_photo05.jpg +0 -0
- data/example/test_phototree/subalbum02/subalbum02_photo05.jpg.xml +15 -0
- data/lib/ralbum-common/object_with_properties.rb +14 -0
- data/lib/ralbum-common/object_with_validation.rb +50 -0
- data/lib/ralbum.rb +19 -0
- data/lib/ralbum/album.rb +66 -0
- data/lib/ralbum/catalog.rb +178 -0
- data/lib/ralbum/cli/cli_ralbum.rb +116 -0
- data/lib/ralbum/generate_album_tree_node_visitor.rb +60 -0
- data/lib/ralbum/image_file.rb +81 -0
- data/lib/ralbum/image_pool.rb +71 -0
- data/lib/ralbum/image_strategy.rb +143 -0
- data/lib/ralbum/options.rb +15 -0
- data/lib/ralbum/photo_tree_builder.rb +165 -0
- data/lib/ralbum/photo_tree_item.rb +89 -0
- data/lib/ralbum/photo_tree_node.rb +40 -0
- data/lib/ralbum/project.rb +89 -0
- data/lib/ralbum/ralbum_exception.rb +2 -0
- data/lib/ralbum/resource.rb +17 -0
- data/lib/ralbum/skin.rb +76 -0
- data/lib/ralbum/skin_engine.rb +98 -0
- data/lib/ralbum/skin_engines/erb_skin_engine.rb +35 -0
- data/lib/ralbum/skin_engines/kwartz_skin_engine.rb +54 -0
- data/lib/ralbum/skin_manager.rb +46 -0
- data/lib/ralbum/skins/cgi/cgi_skin.rb +27 -0
- data/lib/ralbum/skins/cgi/info.yml +3 -0
- data/lib/ralbum/skins/cgi/res/model.rb +235 -0
- data/lib/ralbum/skins/cgi/res/resource.rb +17 -0
- data/lib/ralbum/skins/gfold/inc/menu_bottom.html +53 -0
- data/lib/ralbum/skins/gfold/inc/menu_top.html +71 -0
- data/lib/ralbum/skins/gfold/inc/page_footer.html +28 -0
- data/lib/ralbum/skins/gfold/info.yml +3 -0
- data/lib/ralbum/skins/gfold/out/album_page.rb +316 -0
- data/lib/ralbum/skins/gfold/out/image_page.rb +231 -0
- data/lib/ralbum/skins/gfold/out/tree_page.rb +96 -0
- data/lib/ralbum/skins/gfold/res/16-arrow-down.png +0 -0
- data/lib/ralbum/skins/gfold/res/16-arrow-left.png +0 -0
- data/lib/ralbum/skins/gfold/res/16-arrow-right.png +0 -0
- data/lib/ralbum/skins/gfold/res/16-arrow-up.png +0 -0
- data/lib/ralbum/skins/gfold/res/left.gif +0 -0
- data/lib/ralbum/skins/gfold/res/prototype.js +3277 -0
- data/lib/ralbum/skins/gfold/res/right.gif +0 -0
- data/lib/ralbum/skins/gfold/res/style1.css +453 -0
- data/lib/ralbum/skins/gfold/res/style2.css +414 -0
- data/lib/ralbum/skins/gfold/res/styleswitcher.js +89 -0
- data/lib/ralbum/skins/gfold/res/top.gif +0 -0
- data/lib/ralbum/skins/gfold/res/up.gif +0 -0
- data/lib/ralbum/skins/gfold/res/valid-css.png +0 -0
- data/lib/ralbum/skins/gfold/res/valid-xhtml.png +0 -0
- data/lib/ralbum/skins/gfold/res/valid-xhtml11.png +0 -0
- data/lib/ralbum/skins/gfold/res/vcss.gif +0 -0
- data/lib/ralbum/skins/gfold/template/album_page.html +161 -0
- data/lib/ralbum/skins/gfold/template/album_page.plogic +127 -0
- data/lib/ralbum/skins/gfold/template/image_page.html +91 -0
- data/lib/ralbum/skins/gfold/template/image_page.plogic +70 -0
- data/lib/ralbum/skins/gfold/template/tree_page.html +79 -0
- data/lib/ralbum/skins/gfold/template/tree_page.plogic +45 -0
- data/lib/ralbum/skins/js/info.yml +3 -0
- data/lib/ralbum/skins/js/js_skin.rb +50 -0
- data/lib/ralbum/skins/js/out/album_page.rb +181 -0
- data/lib/ralbum/skins/js/out/slideshow_page.rb +187 -0
- data/lib/ralbum/skins/js/out/tree_page.rb +134 -0
- data/lib/ralbum/skins/js/res/left.gif +0 -0
- data/lib/ralbum/skins/js/res/right.gif +0 -0
- data/lib/ralbum/skins/js/res/style.css +76 -0
- data/lib/ralbum/skins/js/res/top.gif +0 -0
- data/lib/ralbum/skins/js/res/up.gif +0 -0
- data/lib/ralbum/skins/js/template/album_page.html +178 -0
- data/lib/ralbum/skins/js/template/album_page.plogic +88 -0
- data/lib/ralbum/skins/js/template/slideshow_page.html +169 -0
- data/lib/ralbum/skins/js/template/slideshow_page.plogic +1 -0
- data/lib/ralbum/skins/js/template/tree_page.html +118 -0
- data/lib/ralbum/skins/js/template/tree_page.plogic +43 -0
- data/lib/ralbum/skins/test_erb/info.yml +3 -0
- data/lib/ralbum/skins/test_erb/out/album_page.rb +54 -0
- data/lib/ralbum/skins/test_erb/out/image_page.rb +54 -0
- data/lib/ralbum/skins/test_kwartz/info.yml +3 -0
- data/lib/ralbum/skins/test_kwartz/out/album_page.rb +54 -0
- data/lib/ralbum/skins/test_kwartz/out/image_page.rb +54 -0
- data/lib/ralbum/skins/test_kwartz/template/album_page.html +37 -0
- data/lib/ralbum/skins/test_kwartz/template/image_page.html +37 -0
- data/test/ralbum/cli/test_cli_ralbum.rb +13 -0
- data/test/ralbum/tc_01_photo_tree.rb +37 -0
- data/test/ralbum/tc_02_photo_tree_builder.rb +20 -0
- data/test/ralbum/tc_03_album.rb +42 -0
- data/test/ralbum/tc_04_skin_manager.rb +30 -0
- data/test/ralbum/tc_05_kwartz_skin_engine.rb +50 -0
- data/test/ralbum/tc_06_image_strategy.rb +21 -0
- data/test/ralbum/tc_catalog.rb +31 -0
- data/test/ralbum/test_helper.rb +13 -0
- data/test/test_ralbum.rb +14 -0
- data/test_data/ralbum/test_data/albums_directory/gfold/album_1/img_0004.jpg.html +148 -0
- data/test_data/ralbum/test_data/albums_directory/gfold/album_1/img_0005.jpg.html +152 -0
- data/test_data/ralbum/test_data/albums_directory/gfold/album_1/img_0006.jpg.html +152 -0
- data/test_data/ralbum/test_data/albums_directory/gfold/album_1/img_0007.jpg.html +148 -0
- data/test_data/ralbum/test_data/albums_directory/gfold/album_1/index.html +195 -0
- data/test_data/ralbum/test_data/albums_directory/gfold/album_2/img_0008.jpg.html +148 -0
- data/test_data/ralbum/test_data/albums_directory/gfold/album_2/img_0009.jpg.html +152 -0
- data/test_data/ralbum/test_data/albums_directory/gfold/album_2/img_0010.jpg.html +152 -0
- data/test_data/ralbum/test_data/albums_directory/gfold/album_2/img_0011.jpg.html +152 -0
- data/test_data/ralbum/test_data/albums_directory/gfold/album_2/img_0012.jpg.html +148 -0
- data/test_data/ralbum/test_data/albums_directory/gfold/album_2/index.html +206 -0
- data/test_data/ralbum/test_data/albums_directory/gfold/img_0003.jpg.html +141 -0
- data/test_data/ralbum/test_data/albums_directory/gfold/index.html +208 -0
- data/test_data/ralbum/test_data/albums_directory/images_100x100/img_0003.jpg +0 -0
- data/test_data/ralbum/test_data/albums_directory/images_100x100/img_0004.jpg +0 -0
- data/test_data/ralbum/test_data/albums_directory/images_100x100/img_0005.jpg +0 -0
- data/test_data/ralbum/test_data/albums_directory/images_100x100/img_0006.jpg +0 -0
- data/test_data/ralbum/test_data/albums_directory/images_100x100/img_0007.jpg +0 -0
- data/test_data/ralbum/test_data/albums_directory/images_100x100/img_0008.jpg +0 -0
- data/test_data/ralbum/test_data/albums_directory/images_100x100/img_0009.jpg +0 -0
- data/test_data/ralbum/test_data/albums_directory/images_100x100/img_0010.jpg +0 -0
- data/test_data/ralbum/test_data/albums_directory/images_100x100/img_0011.jpg +0 -0
- data/test_data/ralbum/test_data/albums_directory/images_100x100/img_0012.jpg +0 -0
- data/test_data/ralbum/test_data/albums_directory/images_640x480/img_0003.jpg +0 -0
- data/test_data/ralbum/test_data/albums_directory/images_640x480/img_0004.jpg +0 -0
- data/test_data/ralbum/test_data/albums_directory/images_640x480/img_0005.jpg +0 -0
- data/test_data/ralbum/test_data/albums_directory/images_640x480/img_0006.jpg +0 -0
- data/test_data/ralbum/test_data/albums_directory/images_640x480/img_0007.jpg +0 -0
- data/test_data/ralbum/test_data/albums_directory/images_640x480/img_0008.jpg +0 -0
- data/test_data/ralbum/test_data/albums_directory/images_640x480/img_0009.jpg +0 -0
- data/test_data/ralbum/test_data/albums_directory/images_640x480/img_0010.jpg +0 -0
- data/test_data/ralbum/test_data/albums_directory/images_640x480/img_0011.jpg +0 -0
- data/test_data/ralbum/test_data/albums_directory/images_640x480/img_0012.jpg +0 -0
- data/test_data/ralbum/test_data/albums_directory/res/left.gif +0 -0
- data/test_data/ralbum/test_data/albums_directory/res/prototype.js +3277 -0
- data/test_data/ralbum/test_data/albums_directory/res/right.gif +0 -0
- data/test_data/ralbum/test_data/albums_directory/res/style1.css +453 -0
- data/test_data/ralbum/test_data/albums_directory/res/style2.css +414 -0
- data/test_data/ralbum/test_data/albums_directory/res/styleswitcher.js +89 -0
- data/test_data/ralbum/test_data/albums_directory/res/top.gif +0 -0
- data/test_data/ralbum/test_data/albums_directory/res/up.gif +0 -0
- data/test_data/ralbum/test_data/albums_directory/res/valid-css.png +0 -0
- data/test_data/ralbum/test_data/albums_directory/res/valid-xhtml.png +0 -0
- data/test_data/ralbum/test_data/albums_directory/res/valid-xhtml11.png +0 -0
- data/test_data/ralbum/test_data/albums_directory/res/vcss.gif +0 -0
- data/test_data/ralbum/test_data/albums_directory/test/album_1/img_0004.jpg.html +11 -0
- data/test_data/ralbum/test_data/albums_directory/test/album_1/img_0005.jpg.html +11 -0
- data/test_data/ralbum/test_data/albums_directory/test/album_1/img_0006.jpg.html +11 -0
- data/test_data/ralbum/test_data/albums_directory/test/album_1/img_0007.jpg.html +11 -0
- data/test_data/ralbum/test_data/albums_directory/test/album_1/index.html +13 -0
- data/test_data/ralbum/test_data/albums_directory/test/album_2/img_0008.jpg.html +11 -0
- data/test_data/ralbum/test_data/albums_directory/test/album_2/img_0009.jpg.html +11 -0
- data/test_data/ralbum/test_data/albums_directory/test/album_2/img_0010.jpg.html +11 -0
- data/test_data/ralbum/test_data/albums_directory/test/album_2/img_0011.jpg.html +11 -0
- data/test_data/ralbum/test_data/albums_directory/test/album_2/img_0012.jpg.html +11 -0
- data/test_data/ralbum/test_data/albums_directory/test/album_2/index.html +13 -0
- data/test_data/ralbum/test_data/albums_directory/test/img_0003.jpg.html +11 -0
- data/test_data/ralbum/test_data/albums_directory/test/index.html +13 -0
- data/test_data/ralbum/test_data/is_test/r_photo01_scaled.jpg +0 -0
- data/test_data/ralbum/test_data/is_test/r_photo01_sepia_scaled.jpg +0 -0
- metadata +276 -0
@@ -0,0 +1,134 @@
|
|
1
|
+
module View
|
2
|
+
|
3
|
+
(@@proc_table ||= {})['tree_page'] = proc do
|
4
|
+
_buf = ""; _buf << "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01//EN\" \"http://www.w3.org/TR/html4/strict.dtd\">
|
5
|
+
<html>
|
6
|
+
<head>
|
7
|
+
<link rel=\"stylesheet\" type=\"text/css\" href=\"rubyphoto.css\">
|
8
|
+
<title>Album Tree</title>
|
9
|
+
</head>
|
10
|
+
<body/>
|
11
|
+
|
12
|
+
<table align=\"center\" border=\"0\" cellspacing=\"0\" cellpadding=\"3\" width=\"650\">
|
13
|
+
|
14
|
+
<!-- title -->
|
15
|
+
<tr>
|
16
|
+
<td class=\"shade\">
|
17
|
+
<span class=\"title\">Album Tree</span>
|
18
|
+
</td>
|
19
|
+
</tr>
|
20
|
+
|
21
|
+
<tr>
|
22
|
+
<td>\n";
|
23
|
+
stack = Array.new;
|
24
|
+
@element(tree);
|
25
|
+
_buf << " </td>
|
26
|
+
</tr>
|
27
|
+
|
28
|
+
<tr>
|
29
|
+
<td>
|
30
|
+
<br>
|
31
|
+
<ul>
|
32
|
+
<li><a href=\"/index.html\">foto</a>
|
33
|
+
<ul>
|
34
|
+
<li><a href=\"10_Roma/index.html\">Roma</a>
|
35
|
+
<ul>
|
36
|
+
<li><a href=\"10_Roma/Campidoglio/index.html\">Campidoglio</a>
|
37
|
+
<li><a href=\"10_Roma/Celio/index.html\">Celio</a>
|
38
|
+
<li><a href=\"10_Roma/CircoMassimo/index.html\">Circo Massimo</a>
|
39
|
+
<li><a href=\"10_Roma/Colosseo/index.html\">Colosseo</a>
|
40
|
+
<li><a href=\"10_Roma/Farnese/index.html\">Piazza Farnese e Dintorni</a>
|
41
|
+
<li><a href=\"10_Roma/FontanaTrevi/index.html\">Fontana di Trevi</a>
|
42
|
+
<li><a href=\"10_Roma/ForiRomani/index.html\">Fori Romani</a>
|
43
|
+
<li><a href=\"10_Roma/Ghetto/index.html\">Ghetto</a>
|
44
|
+
<li><a href=\"10_Roma/Gianicolo/index.html\">Gianicolo</a>
|
45
|
+
<li><a href=\"10_Roma/GianicoloAlba/index.html\">Il gianicolo all'alba</a>
|
46
|
+
<li><a href=\"10_Roma/MonteMario/index.html\">Monte Mario</a>
|
47
|
+
<li><a href=\"10_Roma/Olimpico%2DFarnesina/index.html\">Olimpico e Farnesina</a>
|
48
|
+
<li><a href=\"10_Roma/Orologio/index.html\">Piazza dell'Orologio</a>
|
49
|
+
<li><a href=\"10_Roma/Periferie/index.html\">Periferie</a>
|
50
|
+
<li><a href=\"10_Roma/PiazzaBarberini/index.html\">Piazza Barberini</a>
|
51
|
+
<li><a href=\"10_Roma/PiazzaBoccaDellaVerita/index.html\">Piazza Bocca della Verita'</a>
|
52
|
+
<li><a href=\"10_Roma/PiazzaDelPopolo/index.html\">Piazza del Popolo</a>
|
53
|
+
<li><a href=\"10_Roma/PiazzaNavona/index.html\">Piazza Navona</a>
|
54
|
+
<li><a href=\"10_Roma/PiazzaRepubblica/index.html\">Piazza Repubblica</a>
|
55
|
+
<li><a href=\"10_Roma/PinetaSacchetti/index.html\">Pineta Sacchetti</a>
|
56
|
+
<li><a href=\"10_Roma/PonteNomentano/index.html\">Ponte Momentano</a>
|
57
|
+
<li><a href=\"10_Roma/Quirinale/index.html\">Il Quirinale</a>
|
58
|
+
<li><a href=\"10_Roma/SanGiovanni/index.html\">San Giovanni</a>
|
59
|
+
<li><a href=\"10_Roma/SanPietro/index.html\">San Pietro</a>
|
60
|
+
<li><a href=\"10_Roma/TeatroMarcello/index.html\">Teatro Marcello</a>
|
61
|
+
<li><a href=\"10_Roma/TermeCaracalla/index.html\">Terme di Caracalla</a>
|
62
|
+
<li><a href=\"10_Roma/Tevere%2DCastelSantAngelo/index.html\">Tevere - Castel Sant'Angelo</a>
|
63
|
+
<li><a href=\"10_Roma/Tevere%2DCastelSantAngelo%2DNotte/index.html\">Tevere - Castel Sant'Angelo</a>
|
64
|
+
<li><a href=\"10_Roma/Tevere%2DIsolaTiberina/index.html\">Tevere - Isola Tiberina</a>
|
65
|
+
<li><a href=\"10_Roma/Tevere%2DPonteMargherita/index.html\">Tevere - Ponte Margheria e Ponte Cavour di notte</a>
|
66
|
+
<li><a href=\"10_Roma/Tevere%2DPonteMilvio/index.html\">Tevere - Ponte Milvio</a>
|
67
|
+
<li><a href=\"10_Roma/Trastevere/index.html\">Trastevere</a>
|
68
|
+
<li><a href=\"10_Roma/TrinitaDeiMonti/index.html\">Trinita dei Monti</a>
|
69
|
+
<li><a href=\"10_Roma/Varie/index.html\">Varie</a>
|
70
|
+
<li><a href=\"10_Roma/VillaBorghese/index.html\">Villa Borghese</a>
|
71
|
+
<li><a href=\"10_Roma/VillaBorghese%2DPincio/index.html\">Villa Borghese: il Pincio</a>
|
72
|
+
<li><a href=\"10_Roma/VillaggioOlimpico/index.html\">Villaggio Olimpico</a>
|
73
|
+
<li><a href=\"10_Roma/Vittoriano/index.html\">Vittoriano</a>
|
74
|
+
</ul>
|
75
|
+
<li><a href=\"20_BreveViaggioInToscana/index.html\">Breve viaggio in Toscana</a>
|
76
|
+
<ul>
|
77
|
+
<li><a href=\"20_BreveViaggioInToscana/VersoPisa/index.html\">Verso Pisa</a>
|
78
|
+
<li><a href=\"20_BreveViaggioInToscana/Pisa/index.html\">Pisa</a>
|
79
|
+
<li><a href=\"20_BreveViaggioInToscana/MarinaDiPisa/index.html\">Una passeggiata a Marina di Pisa</a>
|
80
|
+
<li><a href=\"20_BreveViaggioInToscana/Firenze/index.html\">Un giorno a Firenze</a>
|
81
|
+
<li><a href=\"20_BreveViaggioInToscana/Livorno/index.html\">Un giorno a Livorno</a>
|
82
|
+
<li><a href=\"20_BreveViaggioInToscana/Meo/index.html\">Meo: il gatto!</a>
|
83
|
+
</ul>
|
84
|
+
<li><a href=\"30_GitaInToscana/index.html\">Gita In Toscana</a>
|
85
|
+
<ul>
|
86
|
+
<li><a href=\"30_GitaInToscana/00_VersoPisa/index.html\">Verso Pisa</a>
|
87
|
+
<li><a href=\"30_GitaInToscana/01_Viareggio/index.html\">Viareggio</a>
|
88
|
+
<li><a href=\"30_GitaInToscana/02_Luminara/index.html\">Luminara San Ranieri</a>
|
89
|
+
<li><a href=\"30_GitaInToscana/03_regatasranieri/index.html\">Arno</a>
|
90
|
+
<li><a href=\"30_GitaInToscana/04_cittadella/index.html\">Cittadella</a>
|
91
|
+
<li><a href=\"30_GitaInToscana/05_varie/index.html\">Varie</a>
|
92
|
+
</ul>
|
93
|
+
<li><a href=\"40_Montepulciano/index.html\">Montepulciano</a>
|
94
|
+
<li><a href=\"45_Calabria/index.html\">Calabria</a>
|
95
|
+
<ul>
|
96
|
+
<li><a href=\"45_Calabria/00_Vibo/index.html\">Vibo Valentia</a>
|
97
|
+
<li><a href=\"45_Calabria/05_Pizzo/index.html\">Pizzo</a>
|
98
|
+
<li><a href=\"45_Calabria/10_Briatico/index.html\">Briatico</a>
|
99
|
+
<li><a href=\"45_Calabria/15_Tropea/index.html\">Tropea</a>
|
100
|
+
<li><a href=\"45_Calabria/20_capovaticano/index.html\">Capo Vaticano</a>
|
101
|
+
</ul>
|
102
|
+
<li><a href=\"50_Oggetti/index.html\">Oggetti</a>
|
103
|
+
<li><a href=\"60_Flora/index.html\">Fiori e Piante</a>
|
104
|
+
</ul>
|
105
|
+
|
106
|
+
</ul>
|
107
|
+
<br>
|
108
|
+
</td>
|
109
|
+
</tr>
|
110
|
+
|
111
|
+
<!-- footer -->
|
112
|
+
<tr>
|
113
|
+
<td class=\"shade\"> </tr>
|
114
|
+
</tr>
|
115
|
+
</table>
|
116
|
+
|
117
|
+
</body>
|
118
|
+
</html>
|
119
|
+
\n";
|
120
|
+
; _buf
|
121
|
+
end#proc
|
122
|
+
|
123
|
+
module_function
|
124
|
+
def expand_tree_page(context={})
|
125
|
+
if context.is_a?(Hash)
|
126
|
+
hash = context
|
127
|
+
context = Object.new
|
128
|
+
hash.each { |key, val| context.instance_variable_set("@#{key}", val) }
|
129
|
+
end
|
130
|
+
proc_obj = @@proc_table['tree_page']
|
131
|
+
context.instance_eval(&proc_obj)
|
132
|
+
end
|
133
|
+
|
134
|
+
end
|
Binary file
|
Binary file
|
@@ -0,0 +1,76 @@
|
|
1
|
+
A:link {
|
2
|
+
color: #2233dd;
|
3
|
+
}
|
4
|
+
|
5
|
+
A:visited {
|
6
|
+
color: #000077;
|
7
|
+
}
|
8
|
+
|
9
|
+
A:active {
|
10
|
+
color: #0000ff;
|
11
|
+
}
|
12
|
+
|
13
|
+
BODY {
|
14
|
+
color: white;
|
15
|
+
background-color: black;
|
16
|
+
font-family: verdana, helvetica, sans-serif;
|
17
|
+
font-size: 10pt;
|
18
|
+
}
|
19
|
+
|
20
|
+
TABLE.maintable {
|
21
|
+
width: 650px;
|
22
|
+
}
|
23
|
+
|
24
|
+
|
25
|
+
|
26
|
+
TD.indexthumb {
|
27
|
+
width: 15%;
|
28
|
+
}
|
29
|
+
|
30
|
+
TD.shade {
|
31
|
+
background-color: #aaaaaa;
|
32
|
+
color: white;
|
33
|
+
}
|
34
|
+
|
35
|
+
TD.lightshade {
|
36
|
+
background-color: #eeeeee;
|
37
|
+
color: black;
|
38
|
+
}
|
39
|
+
|
40
|
+
TR.transparent {
|
41
|
+
background-color: #ffffff;
|
42
|
+
}
|
43
|
+
|
44
|
+
SPAN.title {
|
45
|
+
font-size: 14pt;
|
46
|
+
font-weight: bold;
|
47
|
+
}
|
48
|
+
|
49
|
+
SPAN.treepath {
|
50
|
+
font-size: 10pt;
|
51
|
+
color: #000077;
|
52
|
+
}
|
53
|
+
|
54
|
+
SPAN.treepathdots {
|
55
|
+
color: #111111;
|
56
|
+
}
|
57
|
+
|
58
|
+
.fieldname {
|
59
|
+
color: #222277;
|
60
|
+
font-weight: bold;
|
61
|
+
font-size: 10pt;
|
62
|
+
}
|
63
|
+
|
64
|
+
.fieldvalue {
|
65
|
+
font-size: 10pt;
|
66
|
+
}
|
67
|
+
|
68
|
+
.small {
|
69
|
+
font-size: 8pt;
|
70
|
+
}
|
71
|
+
|
72
|
+
UL {
|
73
|
+
font-size: 12pt;
|
74
|
+
}
|
75
|
+
|
76
|
+
|
Binary file
|
Binary file
|
@@ -0,0 +1,178 @@
|
|
1
|
+
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
|
2
|
+
<html id="set:pagename='albums'">
|
3
|
+
<head id="set:language=null">
|
4
|
+
<title>#{album.title}#</title>
|
5
|
+
<link rel="stylesheet" type="text/css" href="#{relroot}#data/style.css">
|
6
|
+
</head>
|
7
|
+
<body>
|
8
|
+
|
9
|
+
<table class="maintable" border="0" cellspacing="0" cellpadding="0" align="center">
|
10
|
+
<tr>
|
11
|
+
<td>
|
12
|
+
|
13
|
+
<!-- begin header table -->
|
14
|
+
<table border="0" cellspacing="0" cellpadding="3" width="100%">
|
15
|
+
<tr>
|
16
|
+
<td class="shade" align="left">
|
17
|
+
<span class="title">#{album.title}#</span>
|
18
|
+
</td>
|
19
|
+
<td class="shade" align="right"> </td>
|
20
|
+
</tr>
|
21
|
+
|
22
|
+
<!-- breadcrumbs or Trail -->
|
23
|
+
<tr>
|
24
|
+
<td class="lightshade">
|
25
|
+
|
26
|
+
<span id="mark:breadcrumbs">
|
27
|
+
<a class="treepath" id="mark:item" href="#{relroot + item_path}#">
|
28
|
+
<span id="value:item_title">Home</span>
|
29
|
+
</a>
|
30
|
+
<span id="mark:arrow" class="treepathdots">::</span>
|
31
|
+
</span>
|
32
|
+
|
33
|
+
</td>
|
34
|
+
<td class="lightshade" align="right" nowrap="true">
|
35
|
+
#{album.num_photos}# #{resource.photos}#
|
36
|
+
<span id="if:album.num_subalbums>0">
|
37
|
+
#{album.num_subalbums}# sub-albums
|
38
|
+
</span>
|
39
|
+
</td>
|
40
|
+
</tr>
|
41
|
+
|
42
|
+
<tr>
|
43
|
+
<td width="80%">
|
44
|
+
#{album.description}#
|
45
|
+
</td>
|
46
|
+
<td width="20%" align="right">
|
47
|
+
<a href="../../index.html" title="Up to top"><img
|
48
|
+
src="../top.gif" border="0" width="15" height="15"
|
49
|
+
alt="Top"></a>
|
50
|
+
|
51
|
+
<a href="../index.html" title="Up to parent"><img
|
52
|
+
src="../up.gif" border="0" width="15" height="15"
|
53
|
+
alt="Up"></a>
|
54
|
+
|
55
|
+
</td>
|
56
|
+
</tr>
|
57
|
+
</table>
|
58
|
+
<!-- End header table -->
|
59
|
+
</td>
|
60
|
+
</tr>
|
61
|
+
|
62
|
+
<!-- thumbnails header table -->
|
63
|
+
<tr kw:d="if album.leaves.length>0">
|
64
|
+
<td>
|
65
|
+
<!-- begin thumbnails header table -->
|
66
|
+
<table border="0" cellspacing="0" cellpadding="3" width="100%">
|
67
|
+
<tr>
|
68
|
+
<td class="shade" align="left"><b>#{resource.thumbnails}#</b></td>
|
69
|
+
<td class="shade" align="right"> </td>
|
70
|
+
</tr>
|
71
|
+
</table>
|
72
|
+
<!-- end thumbnails header table -->
|
73
|
+
</td>
|
74
|
+
</tr>
|
75
|
+
|
76
|
+
<!-- thumbnails body -->
|
77
|
+
<tr kw:d="if album.leaves.length>0">
|
78
|
+
<td align="center">
|
79
|
+
<!-- begin thumbnail table -->
|
80
|
+
<table border="0" cellspacing="5" cellpadding="2">
|
81
|
+
|
82
|
+
<tr align="left" valign="bottom" id="mark:thumbnails_row">
|
83
|
+
<td align="center" valign="top">
|
84
|
+
<table border="0" cellspacing="0" cellpadding="0">
|
85
|
+
<tr>
|
86
|
+
<td align="center">
|
87
|
+
<a href="slideshow.html?photokey=#{photo.key}#"
|
88
|
+
title="#{photo.title}#"><img
|
89
|
+
src="#{relroot + photo.thumb.url}#"
|
90
|
+
alt="#{photo.title}#"
|
91
|
+
border="0"></a>
|
92
|
+
</td>
|
93
|
+
</tr>
|
94
|
+
<tr>
|
95
|
+
<td class="lightshade" align="center">
|
96
|
+
<font size="-1" face="Verdana">
|
97
|
+
#{photo.title}#
|
98
|
+
</font>
|
99
|
+
</td>
|
100
|
+
</tr>
|
101
|
+
</table>
|
102
|
+
</td>
|
103
|
+
</tr>
|
104
|
+
|
105
|
+
</table>
|
106
|
+
<!-- end thumbnail table -->
|
107
|
+
</td>
|
108
|
+
</tr>
|
109
|
+
|
110
|
+
<!-- subalbums header -->
|
111
|
+
<tr id="if:album.subalbums.length>0">
|
112
|
+
<td>
|
113
|
+
<!-- begin subalbums header table -->
|
114
|
+
<table border="0" cellspacing="0" cellpadding="3" width="100%">
|
115
|
+
<tr>
|
116
|
+
<td class="shade"><b>#{resource.subalbums}#</b></td>
|
117
|
+
</tr>
|
118
|
+
</table>
|
119
|
+
<!-- end header table -->
|
120
|
+
</td>
|
121
|
+
</tr>
|
122
|
+
|
123
|
+
<!-- sub-albums body -->
|
124
|
+
<tr id="if:album.subalbums.length>0">
|
125
|
+
<td>
|
126
|
+
<!-- begin sub-album table -->
|
127
|
+
<table border="0" cellspacing="5" cellpadding="2" width="650">
|
128
|
+
<tr id="Foreach:subalbum=album.subalbums">
|
129
|
+
<td class="indexthumb">
|
130
|
+
<a href="#{relroot + subalbum.pageurl}#"
|
131
|
+
title="#{subalbum.title}#"><img
|
132
|
+
src="#{relroot + subalbum.defaultphoto.thumb.url}#"
|
133
|
+
alt="#{subalbum.defaultphoto.title}#"
|
134
|
+
border="1"></a>
|
135
|
+
</td>
|
136
|
+
<td>
|
137
|
+
<table width="100%">
|
138
|
+
<tr>
|
139
|
+
<td>
|
140
|
+
<a href="#{relroot + subalbum.pageurl}#">#{subalbum.title}#</a>
|
141
|
+
</td>
|
142
|
+
<td align="right" width="40%">
|
143
|
+
#{subalbum.num_photos}# photos
|
144
|
+
<span id="if:subalbum.num_subalbums>0">
|
145
|
+
, #{subalbum.num_subalbums}# sub-albums
|
146
|
+
</span>
|
147
|
+
</td>
|
148
|
+
</tr>
|
149
|
+
<tr>
|
150
|
+
<td>#{subalbum.description}#</td>
|
151
|
+
<td> </td>
|
152
|
+
</tr>
|
153
|
+
</table>
|
154
|
+
</td>
|
155
|
+
</tr>
|
156
|
+
</table>
|
157
|
+
<!-- end sub-album table -->
|
158
|
+
</td>
|
159
|
+
</tr>
|
160
|
+
|
161
|
+
<!-- filler -->
|
162
|
+
<tr id="dummy:d1">
|
163
|
+
<td>
|
164
|
+
<!-- begin filler table -->
|
165
|
+
<table border="0" cellspacing="0" cellpadding="3" width="100%">
|
166
|
+
<tr>
|
167
|
+
<td class="shade" align="center"> </td>
|
168
|
+
</tr>
|
169
|
+
</table>
|
170
|
+
<!-- end filler table -->
|
171
|
+
</td>
|
172
|
+
</tr>
|
173
|
+
|
174
|
+
</table>
|
175
|
+
|
176
|
+
</body>
|
177
|
+
</html>
|
178
|
+
|
@@ -0,0 +1,88 @@
|
|
1
|
+
#breadcrumbs {
|
2
|
+
logic: {
|
3
|
+
item_ctr = 0
|
4
|
+
for item in breadcrumbs
|
5
|
+
item_ctr += 1
|
6
|
+
if(item_ctr > 1)
|
7
|
+
_element("arrow") // expand element marked with arrow
|
8
|
+
end
|
9
|
+
_element("item") // expand element marked with item
|
10
|
+
end
|
11
|
+
}
|
12
|
+
}
|
13
|
+
|
14
|
+
#item {
|
15
|
+
logic: {
|
16
|
+
item_path = item[:path]; // retrieve path and
|
17
|
+
item_title = item[:title]; // title from a hash
|
18
|
+
if(item_path!=null)
|
19
|
+
_stag;
|
20
|
+
_cont;
|
21
|
+
_etag;
|
22
|
+
else // if path is null then
|
23
|
+
_cont; // don't print <a></a>.
|
24
|
+
end
|
25
|
+
}
|
26
|
+
}
|
27
|
+
|
28
|
+
/**
|
29
|
+
// :elem(breadcrumbs)
|
30
|
+
// :set(item_ctr = 0)
|
31
|
+
// :foreach(item = breadcrumbs)
|
32
|
+
// :set(item_ctr += 1)
|
33
|
+
// :if(item_ctr > 1) ## each time except first time
|
34
|
+
// @elem_arrow ## print <
|
35
|
+
// :end
|
36
|
+
// @elem_item ## and print <a></a>.
|
37
|
+
// :end
|
38
|
+
// :end
|
39
|
+
//
|
40
|
+
// :elem(item)
|
41
|
+
// :set(item_path = item[:path]) ## retrieve path and
|
42
|
+
// :set(item_title = item[:title]) ## title from a hash.
|
43
|
+
// :if(item_path!=null)
|
44
|
+
// @stag
|
45
|
+
// @cont
|
46
|
+
// @etag
|
47
|
+
// :else ## if path is null then
|
48
|
+
// @cont ## don't print <a></a>.
|
49
|
+
// :end
|
50
|
+
// :end
|
51
|
+
//
|
52
|
+
**/
|
53
|
+
|
54
|
+
#thumbnails_row {
|
55
|
+
logic: {
|
56
|
+
col = 1
|
57
|
+
for photo in album.leaves
|
58
|
+
if col == 1
|
59
|
+
_stag
|
60
|
+
end
|
61
|
+
@cont
|
62
|
+
col += 1;
|
63
|
+
if col == 7
|
64
|
+
col = 1
|
65
|
+
_etag;
|
66
|
+
end
|
67
|
+
end
|
68
|
+
}
|
69
|
+
}
|
70
|
+
|
71
|
+
/**
|
72
|
+
// :elem(thumbnails_row)
|
73
|
+
// :set( col = 1 )
|
74
|
+
// :foreach( photo = album.photos )
|
75
|
+
// :if( col == 1 )
|
76
|
+
// :expand(stag_thumbnails_row)
|
77
|
+
// :end
|
78
|
+
// :expand(cont_thumbnails_row)
|
79
|
+
// :set( col += 1 )
|
80
|
+
// :if( col == 7 )
|
81
|
+
// :set( col = 1 )
|
82
|
+
// :expand(etag_thumbnails_row)
|
83
|
+
// :end
|
84
|
+
// :end
|
85
|
+
// :end
|
86
|
+
**/
|
87
|
+
|
88
|
+
|