From d021eba0c1f1b9462792af4951b91163073672d6 Mon Sep 17 00:00:00 2001
From: Eric Rasmussen <erasmussen2@unl.edu>
Date: Wed, 29 Sep 2010 21:25:39 +0000
Subject: [PATCH] Upgraded to pear.unl.edu/UNL_Templates-1.1.0

---
 .../configsnapshot-2010-09-29 16-24-52.xml    |   2 +
 lib/.pear2registry                            | Bin 337920 -> 345088 bytes
 .../{1.0.0RC9-info.xml => 1.1.0-info.xml}     | 160 ++++++++++++------
 .../data/tpl_cache/Version3/Mobile.tpl        |  67 ++++++++
 .../UNL_Templates/docs/examples/convert.php   |  37 ++++
 .../UNL_Templates/docs/examples/example1.php  |   8 +-
 lib/downloads/UNL_Templates-1.1.0.tgz         | Bin 0 -> 20250 bytes
 lib/php/UNL/Templates.php                     |  43 ++++-
 lib/php/UNL/Templates/CachingService/Null.php |  33 ++++
 .../Templates/CachingService/UNLCacheLite.php |  26 +++
 lib/php/UNL/Templates/Version2.php            |  12 +-
 lib/php/UNL/Templates/Version3.php            |  13 +-
 lib/php/UNL/Templates/Version3/Mobile.php     |  33 ++++
 13 files changed, 376 insertions(+), 58 deletions(-)
 create mode 100644 lib/.configsnapshots/configsnapshot-2010-09-29 16-24-52.xml
 rename lib/.xmlregistry/packages/pear.unl.edu/UNL_Templates/{1.0.0RC9-info.xml => 1.1.0-info.xml} (91%)
 create mode 100644 lib/data/UNL_Templates/data/tpl_cache/Version3/Mobile.tpl
 create mode 100644 lib/docs/UNL_Templates/docs/examples/convert.php
 create mode 100644 lib/downloads/UNL_Templates-1.1.0.tgz
 create mode 100644 lib/php/UNL/Templates/CachingService/Null.php
 create mode 100644 lib/php/UNL/Templates/CachingService/UNLCacheLite.php
 create mode 100644 lib/php/UNL/Templates/Version3/Mobile.php

diff --git a/lib/.configsnapshots/configsnapshot-2010-09-29 16-24-52.xml b/lib/.configsnapshots/configsnapshot-2010-09-29 16-24-52.xml
new file mode 100644
index 00000000..95e67518
--- /dev/null
+++ b/lib/.configsnapshots/configsnapshot-2010-09-29 16-24-52.xml	
@@ -0,0 +1,2 @@
+<?xml version="1.0"?>
+<pearconfig version="1.0"><php_dir>/Library/WebServer/Documents/workspace/UNL_Elgg/lib/php</php_dir><ext_dir>/usr/lib/php/extensions/no-debug-non-zts-20090626</ext_dir><cfg_dir>/Library/WebServer/Documents/workspace/UNL_Elgg/lib/cfg</cfg_dir><doc_dir>/Library/WebServer/Documents/workspace/UNL_Elgg/lib/docs</doc_dir><bin_dir>/usr/bin</bin_dir><data_dir>/Library/WebServer/Documents/workspace/UNL_Elgg/lib/data</data_dir><www_dir>/Library/WebServer/Documents/workspace/UNL_Elgg/lib/www</www_dir><test_dir>/Library/WebServer/Documents/workspace/UNL_Elgg/lib/tests</test_dir><src_dir>/Library/WebServer/Documents/workspace/UNL_Elgg/lib/src</src_dir><php_bin>/usr/bin/php</php_bin><php_ini>/private/etc/php.ini</php_ini><php_prefix></php_prefix><php_suffix></php_suffix></pearconfig>
diff --git a/lib/.pear2registry b/lib/.pear2registry
index 4725af4a3c8e5ef360ce2e3221cbd16284336017..a91563c82a9051144ca7f6c4b13e488bced7b4a3 100644
GIT binary patch
delta 12262
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
b9$Ebs%P-LRKv$98d4`W?QToRLJOTa(9@~V=

delta 7936
zcma($33yc1)%V_WUy_;ZBtRe`ys#4jWDf}nVHLq7tRg#;nKxk|nF%u!LToX4NLx`N
z%ODq}0%Cu({#62Kp1-(+)>^T$6cNRZfZ_@W*kY@d{^!0)h6LgN{(Sk)%-nnK+0VJ>
zo!9U{*M?(>8<J`K-js`wNGHONa1}1YdH4d(!pHDFyt6+(ZaCXt64po~D32tB9J1^`
z8=el-vOhZV?<onm0_+2Xv?m0hn0>$=-Jdupjs>a*g^QNgX{?B|GOMK=F_x7ndJjPx
zX*x&r6!C2m<cX#d7Ab}%LznnNUPWKfl@6cf)4V=J|4ZPLbd7Gj0gY}DM_y&qL~$P;
zE*gHrV;SweFM~$(W{o6@sRTZRXJIWYg-MXXs)4gpY#+OWsZYkEOlp2rI8yH4KOt5e
ztbx?<{xQl>`D1w`sDV@Yo^VxB2KJAQ6_;($GvF%N+M8`dvRMR9!#;Qz@>xB^vUBV;
zHk)O^H1MK%;#nZ8XlWSI?Uz7JviQ4C;7n0<V0)3efBDG3ZGB?NIzpSMi~fVW4u65k
z>?2mhe9(pc0alT9bQrlBh>vpy)~#F`$f_%diY~Iyf&J6^M-xf|v~D<!+V84s8en;e
zZDn;Vi%mneu`Dp8IXQ6GE)Tlm<y}*`^vF|D(GksTGpk`km`HnorteqdS}7u~Q!J=h
z_f2&@_n&OeH*pVq@9%FV3km)|M=704UtvA);G57F8sP<0NB*J9x{It!OzkmU(UZHf
zpm&Csm%Frb%{#n(J6otlpcoC4p@H&wiat~vEakyPvGX|V5?fPV>GCZZ=3C;h`EBGG
zBlQ9#QSnMC&lj0TV6b>LhIdINhpfmloE#<OC@rQ<ERAi2Sd?Zx`tt>ml1qn(;#As=
zuTXS*kb`;n*cMPkbr_G~)rvm5!^UfmKvbB?@vmYLg*ILdt9fh~dHV+3RaPDsMh@SC
zbbJ^&^7E}OR+ISARf@j616xy`Q~`;i=_Sq?ITliMh}iQ3#4+-><`I-9C54k?gdC&e
z=zi9ZZ3YEa!+3ZS?h`3fX;QDYRPdv+32onlhM%wKSz>PuP3f#}2Gu$;x*{396ViK#
z_-!7I4kITz={-cm<<l5O-tB-F`6yU|ik<9)n;{yG15$YJmx}HQsXHNzyx&RxLU92J
zhz++hRQ*)*OiI7(VY+pd45%h@nXIB3J;cVcR#=N+Up#QF4vJo%a6@n*aw(RCd0p|#
zdHJJ*h)tqh#N)VA651Io8d3qB`xdUw5@i-8U$kyuidY?BeZ$B`EIa9<cofuFaQ`Dc
zNm)Huq<Nr3sL!$iqV@MIS~UEg#VHPtojh(_E@moK8KPQA2}069o+2eQ6D!!KY$SVx
zorhw095oous6`YfLy>4123GO-Kpq!Ke!>GsOvNON0x@+g<Dw;vCyCM1XpD&42HnKM
zS0S8{4@Jp1wm$;#pPHfQX|h6&3mi_5W#mb5tp^(|HoQtB3{MZZmo|@QJgK{t%pmx`
zk0w$deTQYUP3#&hgFxEz-9`3%Hb%r*l;L90L_o)05_|h#lC@5NWYM%6qLk_-)#S2x
z;#<rHb8+V;u$YTiq`k_-=}m1&-*rIpoN7b*dl2d2d<Dh(hv>ZrY45xfa>K~gN=2V0
zY_+sV9NWax#DV~S%HWF`Z{Tb@7W4SH1IFO9>^*AyrInS_EuS%K3}}$ZPOx=sBwbI>
zU{R~3#`<&Y*VK{{F|dEvv|a@XSpIs5f-l%`OR`+*-?uQh^z1p7YrOmgn~;Q;35j??
zfg$XX<yc8Fk7MCk{~jM;>}4<`I)c$g!p_k~q^?tAS3Jz2&|SYn%#VWIVop3ni&635
zXifyqds>K}BDEi2H{8ZPVJ_llVRQ$bMoy#n_b}RDw7$qI#KVz_S90AdUR#0c-WREK
zVRT%`(COjiTim6?Lk8?2Mq89PvDm7tR2I%r^dZttqXJ9Qla;xeqEC=6&le39w7a-e
zK_kSvI%?tQs6pbkWLQ9n7@Y#CMxPYeLF>yaHP!BM`!%;;wRtt0Z<y6u=3k<DRi|sE
z<}0$Mt9XN|KEKWHva2g>UZ3i6`}~^Cp?aL^)Cpsz7Zp`#{u$=}RIjI6^ZM%s4OWK+
z&#My_&6qj;&T%u<TASDHa##3};B>9ZvqDoHT6s-<1#)+w2(}s@?&7C?iKhBJs#{xu
zGL&m-jZbq7!$T8YE6o!X6^JJnN;GeUrp_w8Yti`GGmDD)d8+*`kK3o#y8KJj_8(5K
zrwRpjp){yy2gy+YZ>`r=?{A|vL-Qkfr>&;aulik8+PxmPDF?DgDV!d!rq-Ims92*l
z)mh`Vo9v_{V;l~Yx3<#d)_khX=|{nrpn>qi=5V+|Xi@`Qm|^$2s{P|Nd!@~5L;fDO
zTBZ4ycpOq~yQiv3y24ZASI3PXGjohwtoEWYaM4%i_S;sfn%C>`N<T@y+DcnhHL8Zr
zu&MSMpC9!_%Dy%`*lPTqq2=gThuvFKRjyWOZq19XM5Z>kLoHA6IO;<Fuk_d)Xby4A
z;CYIyQ6(6s<M{ePmTqF23bo>iBA61$4)4Ybi!w8XbtFu#M;SDS>Z_@)_IUj&+DY|Q
zYj&5jPI?pLNcC$dpEMa7+=qNK)NB>8a-`v;^Jcc~`>wli-oQ58feX~z)tr&i2GS3b
z9NIZV5^Yd#S|25ldp^xxgMMn~*zOt`XDCY>ACqsjbfQDOJ1CNx6WaAjUS7>vsoAAA
z9_dT_5}Uh1Ycsg%PFtl~>+vo_-1?An%DtXtnp>^5nW*XNoldpVV@FIGc^DQbnA_u*
z=sxL7X(=i5ZD~V?_I0`Kl{J_JGRrjSe_w{`@?#`dR;m?VTe-xnLb0k)p2|9@0aCAZ
zxQF}e+pV`KXIQ4{@E|A2MO*3e`Gfo`>q4ZY4Q(M+gNb4*_jxL7&^@TM=GEMGq|hPc
zI%{PuMe7HH)vOFQ$2`X*jIFy|?q!4eEkP0)YCo@r?lv7Qzs{_y*3gLq@$0}0w1U@G
zr}ne?{a#l&a`oYsxi)C<VALv<9fSJScq>Jh6zCh<AzQEtzS-OlvchOe;NNM<MoBtM
zr8HS=9|F!WN?QnR!Lr;;qu1P~-x)oye+}OD%V&u*jgTrXUgMeKQYKZz!Y6rwSey!d
z#GV))XRM9kt0+H2=pj7&8Wo4Kpr^Rl2=O-@G4RMvs>qfy!ccPI_f!;T@V?^GPkgLs
z`H_bkJ@cW8imA`y9ajAYk}sY{dy8uY5U$WS2z>*|zf8p&g<u!e$62QMPcH2zWJ_tR
z?ZRuRHCh&V+Ch-pG2=E|0M%H$n*WZXf*~q=O}<_t-YSGe*GU=JajvEOc|xB@PS2nb
zCh4W75$s*-7TnqhN5jwvtHOSEw(S3NmdUeBp50F9cI3O6itQyZTU77jV}eE={s?q8
z8&`pr9w6jT1N+#S)ZkO$->~IPyxh}f!qxBtV>6Xr{R_mIZO~Oj^g_zx4)KF{V_tWx
zXqf}C;?qV*xxqPN@k!}VY=(`sKR`!+@-;d7baD80@U_|UD(t2_6e^;{2I`h_i2NDB
ztI$_8U4d9*?Uhah#Ubrh0rG()9deR*!v(#zWJAo)NK08|pKLUq1$4XxyI9ghE!c0z
zRl<;f8dob8J;s8)rg3Q$#8KnNDu`qqqjWi1we@yb+@{sZPON2o%<dc?1C09P@EgjX
zAoL0Jlc3^>I+!UIA7{lf5(kJ4k75V;t1FOhelzwSfmxlrx(eosmTVf{mOoMlJQ8!g
zI~QmulT2{UXnG6orZ0r?r>S^OhsmOP9iI~FSXJW}e}so9e~{1zQJe-U9{d$#Z~2is
zLny(f*1)FrY04Xk*>c@at!q5`{1}<rtHk<QC<G>UW#=<J49DHDi}KTio<`d5;+bCh
z0yCWN5NG}e(n4nj8jrsO<LO{~R!(MtR$wd0(Xuj~SvF_ph-}TCW6K?(<&Ma51~c<4
zp=XiY`<Pih^@S$62?_H?hcc^83Y;Xw7(4cXlL|#u;>CcOkcp4YJ(;n%k7B0rDMC*f
z@wv(|8r4@{goJAKDP0$h3lciQ6}RX)83r5Mo`I!QVM&A~A=?-heZNCrjMzTCd&2PH
zLF|Q>_)^i34Hlz$JEYU}{CvAJ+iok!EXdWeY+8XMKQmh^%(dm_jBq*&^K3y)z9IA*
zBzXokiPvo=$-IP;lItXmhF$P$$`2EI81eo@#o_<L#`gGESVw~#cR`YI@7IW9F)89h
z4MW85Y4rWS)a@q0feEAAOw%r-)!4BbY;?<3=w@{L101Fp=w-?joFmu+mot*Z&fYvm
z*31+}J`ndk2D8G+hqG|Ew$pC3eAMX?PChEatugIe(c*L+4scpt0)>%}#h3@7x7Z=+
z9oUC?Lp~8Zw?Ppjr^QFxARRhN>$ruq@y71^U@mQb9>O^PiO`==zwfB^{(4<APYf3S
zDZxlGm1`OgT}0D^z>TNxg+e+w*Pd12%*(T9XFBa#c21t7z>%Gom+!FW=9FjW*l!X}
zPLt-ygc&ogJ3%1X1boQiQO1_td};dy(aCug=D8c4_ndUzmxO+aGJk?jPSlr}cm)Y%
zWjD|_Hh7`>rlegrCA}0UGHo|iCk9Jz&7d4sP=1oolPJyGD9r$UnTb3uVcxvX(sUEY
zMzJ{Y=rz0m4ljf*#)}J~^oFyQw>UdM{A!ef$L7job72xy<xL$$nhE~@i;kra(GQu*
z%Gp!wE64yh><z@nZ4sqgacGD)XA~oc#h%Uh%)N6nL^E<k{<wpYqoQe~k|#nV7#y*T
z$H1F~ftM}nQ!v6Vr(!!H2MFQh`1P$lR{%-ABX^4#IUzP~#b<V``Bpg_F^|Zx2qPzh
zJ6M}>=RIK?sgyACe)9?V6OGiXOkJlXxLh~dDRTmrf74DwCO{8?cIqi`EzvlAmiL#f
zLZ^szn{+xxES8Ke;_(R(Zv1yC<Wbd$^)ELkyWCM&=*YI?U%uwZb=qy&1tYTaGjp}(
z&tw{Os(>Do=nWx@bTMSFVNbK=8pajx6s*<ei5r8}DTB2W<>fb}?8N!kf=v*K$?!AE
z-kVa+zD2D1OzazyK}v3HNLMgcI|=Q-Icep_46C^r(dtcHH6G7b?Cm-8I-##)8oY#Q
zFhXBp9w|$xsOaEc9Cl=gM|Y!p%K~_jJTpp}OCuOLK<Gho07G_<aUg;NjmxnWtQo1-
znj~(BkoI{=RESP@@#j*!-Ae;J$v8b$Nuyg-D8uqwC*F+Wmy8$FU=rK1hVm#*@(KH%
z0qsZfk=XzvKaM|u<$oAV6vac~J0m{>EVMb1(}+H_2c}me7E|&${ed;n=jdG0NPCeJ
zY#5HRvf<Y_LE3qjg<d36CgNCphB#=&ylzb4cgT7Dog!;93>7=(;%qPTAsoMvFW3qq
zcXGtuS9l+>vj(_GT>;@yI8yL=+`}qdPP$Ia?Zr<rS{OWiI)JBfm=qb0Qs7@vJ~GOY
zBes0;TMJ}}rc^$P(KMNHc>)Kuk%5Mx3jJOtb!iwmg^1_H#T1?sSe`L%i^_RogdDW}
zM0NTVo67b=0@&a=G{iZsGes9PjW>wm7TMtM!{Xn5=b(Q+mZKbVdAL#9hc|bPD5uXO
zc{*7{jo?WW*%2H}eZX4T=j=SY!v2X9HV#&ZgKm%leP9p_gIp-W0pLWq3#P+8un-(L
zrLKk*@Jk%yK7cO^Hp63LWiEEhLr3rlDAVUgb0JTr^?%kUA)~kTI}sk%CnG$nPeFK0
zzYF2t^b&-}^-_fI=w%2`=u;8Cr%yxpzCIn{DIEuZ<O6*s!VmRX2tU^EM)-+78{ujF
z9)zv>9E4}|xd_kd^ALWj&qw%Ky}kfH&gnS$Ctv7`5PqpIM);L(L-@5`j_@1Zj_`u+
zK=`e$A-tqJ5nk3S5MI%jApA~uA^f|(6yZPgWeBh8l?eZ-S0VhD?nd~d?m_r(y&B<9
z`f`NV^uAvF_>YdScqq~R2&rC!km)NBg1!==Vq6)?69;vZBxnH|vKM=r71B59Lefgy
zXv)zEbvPEcT^|`EVyp47gCC*F!KI2mMUJOO2=_BE)Jjg{<|{bKo+Hw}V>WSg5e+wz
zD)^U4iSot?W3vgq&3Tl40r~I?cx69MP?#8{DoHp?<|*R2Q;>j{M^DkRu`S0%k<RBR
z?N>*pe0PC^)<bPEn=1R4x8yC6XFe=4^4I1yoJI*cpY;^U8~8?{9^}2mktTd#IyIjS
z0fTSmSb+(N!DNP4zy*W%$M`RR_;DMzgi&~vz^f?L^I*KXgOBA_DYe212`e<LzvIVb
zTeb)j4=0E%8CWz<4+X1nUcS!b=8FPz`n-NL>$Cf59=ByH4v?(`gXI8CCU?_S^f1f7
zQT7Fx0NcgwExb_7dXYbbFJ<tXbt89(reszmn#Mx3Wf)E*<@C5UG}r7R7H)<JaqM9T
z3+<kf@8`_f^7Y+t@r$qJ+laGLOp{uSz}^zA_GxIPYjivP&+bw5!NEy#s8JJZBb18f
zmpP9b8A&G*IteGH@3L-eE)(no#N*q(2jC$4BSga;pu@{(p-z9dVVN1tYQ%zCz&9uV
zN42`I26h;get41Xew!zDlctU$?-KGZ?N0BZkI}O%oz)rLTKSVyEPk-9?P25_adZPr
zWLTWAA?O|4kr#b9xzOJBngP@;Oe#q(iYGS0SVq3>P!*GL4ll>`xRY;A>KTsd&5~;t
zO*y7#<cbWk-oa4ByANBC?{<I2`=v-Z!)Y0zWpodVVQ#cZ5j+)y8^`o8@*)&`A-Mhw
zw^$_quW{%+E@a_g7Z*mp>9jf^jGVtd(nm*hlMPGvFmmC#dqQ0aBNv;a6rR{KlKKft
zrKjm1sGpTF{klsqg72nE0Xia2EcatEp45wX5r=CbM?72$ql2!gdH^yR1{ms%JsgHr
zq-n1+ld*-fnOQh>GYWz`W=LV*cUC?-;I*_`rroFV$B1z9*>$6vPHMSVK4zSgw#^lb
N#>&9^e0M*E|1ag7vEl##

diff --git a/lib/.xmlregistry/packages/pear.unl.edu/UNL_Templates/1.0.0RC9-info.xml b/lib/.xmlregistry/packages/pear.unl.edu/UNL_Templates/1.1.0-info.xml
similarity index 91%
rename from lib/.xmlregistry/packages/pear.unl.edu/UNL_Templates/1.0.0RC9-info.xml
rename to lib/.xmlregistry/packages/pear.unl.edu/UNL_Templates/1.1.0-info.xml
index 4b1688f1..43e6f36a 100644
--- a/lib/.xmlregistry/packages/pear.unl.edu/UNL_Templates/1.0.0RC9-info.xml
+++ b/lib/.xmlregistry/packages/pear.unl.edu/UNL_Templates/1.1.0-info.xml
@@ -16,55 +16,22 @@
   <email>nhummel2@math.unl.edu</email>
   <active>yes</active>
  </lead>
- <date>2010-01-27</date>
- <time>10:09:00</time>
+ <date>2010-09-29</date>
+ <time>16:24:52</time>
  <version>
-  <release>1.0.0RC9</release>
+  <release>1.1.0</release>
   <api>1.0.0</api>
  </version>
  <stability>
-  <release>beta</release>
-  <api>beta</api>
+  <release>stable</release>
+  <api>stable</api>
  </stability>
  <license uri="http://www1.unl.edu/wdn/wiki/Software_License">BSD License</license>
  <notes>
 Feature Release!
-Added support for specifying the template version, 2 or 3.
-* UNL_Templates::$options['version'] = 3; to use the new templates.
-* Added the secure template.
-* Add debug template.
-* Updated Version 3 templates to reflect footer changes.
-
-Additional work to prevent broken pages.
-* If local files are not present for the &lt;!--#include statements, it will grab them remotely.
-* If wdn/templates_3.0 does not exist locally it will use a template with absolute references to prevent broken pages.
-
-New methods:
-* addHeadLink($href, $relation, $relType = 'rel', array $attributes = array())
-* addScript($url, $type = 'text/javascript')
-* addScriptDeclaration($content, $type = 'text/javascript')
-* addStyleDeclaration($content, $type = 'text/css')
-* addStyleSheet($url, $media = 'all')
-* __toString()  Now you can just use echo $page;
-
-Auto loading of files - now supporting:
-* optionalfooter=&gt;optionalFooter.html
-* collegenavigationlist=&gt;unitNavigation.html
-* contactinfo=&gt;footerContactInfo.html
-
-New Remote Template Scanner UNL_Templates_Scanner
-* Scans a rendered UNL Template page for the editable content areas.
-
-Other fixes:
-* Use static vars instead of PEAR::getStaticProperty() - fixes E_STRICT warnings
-* Remove debug code causing cache to never be used.
-* Fix debugging.
-* Merge UNL_DWT::$options with options from ini file instead of overwriting.
-* Set default timezone to use before we use date functions.
-* Add newlines after header additions.
-* Fix addScriptDeclaration method to comment out CDATA to prevent syntax errors.
-
-Add example of a custom class with auto-breadcrumb generation and body content loading.
+* Added the mobile template.
+* Fix support for version 2 templates.
+* Only set templatedependentspath if it has not been set.
  </notes>
  <contents>
   <dir name="/">
@@ -84,6 +51,10 @@ Add example of a custom class with auto-breadcrumb generation and body content l
     <tasks:replace from="@DATA_DIR@" to="data_dir" type="pear-config"/>
     <tasks:replace from="@PHP_DIR@" to="php_dir" type="pear-config"/>
    </file>
+   <file baseinstalldir="/" md5sum="da29bd0de202f2fe27d593c1a35c4d65" name="UNL/Templates/Version3/Mobile.php" role="php">
+    <tasks:replace from="@DATA_DIR@" to="data_dir" type="pear-config"/>
+    <tasks:replace from="@PHP_DIR@" to="php_dir" type="pear-config"/>
+   </file>
    <file baseinstalldir="/" md5sum="5ae65bf4c045a5b9b65b726b52d6cd26" name="UNL/Templates/Version3/Liquid.php" role="php">
     <tasks:replace from="@DATA_DIR@" to="data_dir" type="pear-config"/>
     <tasks:replace from="@PHP_DIR@" to="php_dir" type="pear-config"/>
@@ -104,7 +75,7 @@ Add example of a custom class with auto-breadcrumb generation and body content l
     <tasks:replace from="@DATA_DIR@" to="data_dir" type="pear-config"/>
     <tasks:replace from="@PHP_DIR@" to="php_dir" type="pear-config"/>
    </file>
-   <file baseinstalldir="/" md5sum="f307432bd99d2cccc6ed4fca2782604e" name="UNL/Templates/Version3.php" role="php">
+   <file baseinstalldir="/" md5sum="95edca2102f2160a7b53162ca94a8b99" name="UNL/Templates/Version3.php" role="php">
     <tasks:replace from="@DATA_DIR@" to="data_dir" type="pear-config"/>
     <tasks:replace from="@PHP_DIR@" to="php_dir" type="pear-config"/>
    </file>
@@ -140,7 +111,7 @@ Add example of a custom class with auto-breadcrumb generation and body content l
     <tasks:replace from="@DATA_DIR@" to="data_dir" type="pear-config"/>
     <tasks:replace from="@PHP_DIR@" to="php_dir" type="pear-config"/>
    </file>
-   <file baseinstalldir="/" md5sum="44c17f55c20fce235d7d2556dc43b23c" name="UNL/Templates/Version2.php" role="php">
+   <file baseinstalldir="/" md5sum="4c1b93f62221e5229be657196f07f048" name="UNL/Templates/Version2.php" role="php">
     <tasks:replace from="@DATA_DIR@" to="data_dir" type="pear-config"/>
     <tasks:replace from="@PHP_DIR@" to="php_dir" type="pear-config"/>
    </file>
@@ -152,6 +123,14 @@ Add example of a custom class with auto-breadcrumb generation and body content l
     <tasks:replace from="@DATA_DIR@" to="data_dir" type="pear-config"/>
     <tasks:replace from="@PHP_DIR@" to="php_dir" type="pear-config"/>
    </file>
+   <file baseinstalldir="/" md5sum="4fa04418d0aa08834b4795caeae5b8c8" name="UNL/Templates/CachingService/UNLCacheLite.php" role="php">
+    <tasks:replace from="@DATA_DIR@" to="data_dir" type="pear-config"/>
+    <tasks:replace from="@PHP_DIR@" to="php_dir" type="pear-config"/>
+   </file>
+   <file baseinstalldir="/" md5sum="47991f0e5cffed6d138725a3294f4e6a" name="UNL/Templates/CachingService/Null.php" role="php">
+    <tasks:replace from="@DATA_DIR@" to="data_dir" type="pear-config"/>
+    <tasks:replace from="@PHP_DIR@" to="php_dir" type="pear-config"/>
+   </file>
    <file baseinstalldir="/" md5sum="5b09b184e7d59a2520e99c0b5c66428a" name="UNL/Templates/CachingService/CacheLite.php" role="php">
     <tasks:replace from="@DATA_DIR@" to="data_dir" type="pear-config"/>
     <tasks:replace from="@PHP_DIR@" to="php_dir" type="pear-config"/>
@@ -160,7 +139,7 @@ Add example of a custom class with auto-breadcrumb generation and body content l
     <tasks:replace from="@DATA_DIR@" to="data_dir" type="pear-config"/>
     <tasks:replace from="@PHP_DIR@" to="php_dir" type="pear-config"/>
    </file>
-   <file baseinstalldir="/" md5sum="66cf2ca7074e1ae7d602e94a438ff95a" name="UNL/Templates.php" role="php">
+   <file baseinstalldir="/" md5sum="1b3de8279d951ccb05f8ad61903f6b03" name="UNL/Templates.php" role="php">
     <tasks:replace from="@DATA_DIR@" to="data_dir" type="pear-config"/>
     <tasks:replace from="@PHP_DIR@" to="php_dir" type="pear-config"/>
    </file>
@@ -172,7 +151,7 @@ Add example of a custom class with auto-breadcrumb generation and body content l
     <tasks:replace from="@DATA_DIR@" to="data_dir" type="pear-config"/>
     <tasks:replace from="@PHP_DIR@" to="php_dir" type="pear-config"/>
    </file>
-   <file baseinstalldir="/" md5sum="3c1307e7a73e10f1af082ec3a48e481f" name="docs/examples/example1.php" role="doc">
+   <file baseinstalldir="/" md5sum="3a3851e70662c3e0bb3ffbc7e5765325" name="docs/examples/example1.php" role="doc">
     <tasks:replace from="@DATA_DIR@" to="data_dir" type="pear-config"/>
     <tasks:replace from="@PHP_DIR@" to="php_dir" type="pear-config"/>
    </file>
@@ -188,6 +167,10 @@ Add example of a custom class with auto-breadcrumb generation and body content l
     <tasks:replace from="@DATA_DIR@" to="data_dir" type="pear-config"/>
     <tasks:replace from="@PHP_DIR@" to="php_dir" type="pear-config"/>
    </file>
+   <file baseinstalldir="/" md5sum="a7114a3868d0ba54d4ff76b370ea3201" name="docs/examples/convert.php" role="doc">
+    <tasks:replace from="@DATA_DIR@" to="data_dir" type="pear-config"/>
+    <tasks:replace from="@PHP_DIR@" to="php_dir" type="pear-config"/>
+   </file>
    <file baseinstalldir="/" md5sum="742720269e3488e0fa34f0ad53b2cb00" name="data/tpl_cache/Version3/Shared_column_right.tpl" role="data">
     <tasks:replace from="@DATA_DIR@" to="data_dir" type="pear-config"/>
     <tasks:replace from="@PHP_DIR@" to="php_dir" type="pear-config"/>
@@ -204,6 +187,10 @@ Add example of a custom class with auto-breadcrumb generation and body content l
     <tasks:replace from="@DATA_DIR@" to="data_dir" type="pear-config"/>
     <tasks:replace from="@PHP_DIR@" to="php_dir" type="pear-config"/>
    </file>
+   <file baseinstalldir="/" md5sum="922b27d1257d43020214ab70e2da5829" name="data/tpl_cache/Version3/Mobile.tpl" role="data">
+    <tasks:replace from="@DATA_DIR@" to="data_dir" type="pear-config"/>
+    <tasks:replace from="@PHP_DIR@" to="php_dir" type="pear-config"/>
+   </file>
    <file baseinstalldir="/" md5sum="962756c965f0f2881e88c83a72fe0545" name="data/tpl_cache/Version3/Liquid.tpl" role="data">
     <tasks:replace from="@DATA_DIR@" to="data_dir" type="pear-config"/>
     <tasks:replace from="@PHP_DIR@" to="php_dir" type="pear-config"/>
@@ -266,17 +253,24 @@ Add example of a custom class with auto-breadcrumb generation and body content l
    <pearinstaller>
     <min>1.4.3</min>
    </pearinstaller>
+   <package>
+    <name>UNL_DWT</name>
+    <channel>pear.unl.edu</channel>
+    <min>0.7.1</min>
+   </package>
+  </required>
+  <optional>
    <package>
     <name>Cache_Lite</name>
     <channel>pear.php.net</channel>
     <min>1.0</min>
    </package>
    <package>
-    <name>UNL_DWT</name>
+    <name>UNL_Cache_Lite</name>
     <channel>pear.unl.edu</channel>
-    <min>0.7.1</min>
+    <min>0.1.0</min>
    </package>
-  </required>
+  </optional>
  </dependencies>
  <phprelease>
   <changelog>
@@ -737,6 +731,76 @@ Other fixes:
 Add example of a custom class with auto-breadcrumb generation and body content loading.
    </notes>
    </release>
+   <release>
+    <version>
+     <release>1.0.0</release>
+     <api>1.0.0</api>
+    </version>
+    <stability>
+     <release>stable</release>
+     <api>stable</api>
+    </stability>
+    <date>2010-03-26</date>
+    <license uri="http://www1.unl.edu/wdn/wiki/Software_License">BSD License</license>
+    <notes>
+Feature Release!
+Added support for specifying the template version, 2 or 3.
+* UNL_Templates::$options['version'] = 3; to use the new templates.
+* Added the secure template.
+* Add debug template.
+* Updated Version 3 templates to reflect footer changes.
+* Multiple template caching backends are 
+
+Additional work to prevent broken pages.
+* If local files are not present for the &lt;!--#include statements, it will grab them remotely.
+* If wdn/templates_3.0 does not exist locally it will use a template with absolute references to prevent broken pages.
+
+New methods:
+* addHeadLink($href, $relation, $relType = 'rel', array $attributes = array())
+* addScript($url, $type = 'text/javascript')
+* addScriptDeclaration($content, $type = 'text/javascript')
+* addStyleDeclaration($content, $type = 'text/css')
+* addStyleSheet($url, $media = 'all')
+* __toString()  Now you can just use echo $page;
+
+Auto loading of files - now supporting:
+* optionalfooter=&gt;optionalFooter.html
+* collegenavigationlist=&gt;unitNavigation.html
+* contactinfo=&gt;footerContactInfo.html
+
+New Remote Template Scanner UNL_Templates_Scanner
+* Scans a rendered UNL Template page for the editable content areas.
+
+Other fixes:
+* Use static vars instead of PEAR::getStaticProperty() - fixes E_STRICT warnings
+* Remove debug code causing cache to never be used.
+* Fix debugging.
+* Merge UNL_DWT::$options with options from ini file instead of overwriting.
+* Set default timezone to use before we use date functions.
+* Add newlines after header additions.
+* Fix addScriptDeclaration method to comment out CDATA to prevent syntax errors.
+
+Add example of a custom class with auto-breadcrumb generation and body content loading.
+   </notes>
+   </release>
+   <release>
+    <version>
+     <release>1.1.0</release>
+     <api>1.0.0</api>
+    </version>
+    <stability>
+     <release>stable</release>
+     <api>stable</api>
+    </stability>
+    <date>2010-09-09</date>
+    <license uri="http://www1.unl.edu/wdn/wiki/Software_License">BSD License</license>
+    <notes>
+Feature Release!
+* Added the mobile template.
+* Fix support for version 2 templates.
+* Only set templatedependentspath if it has not been set.
+   </notes>
+   </release>
   </changelog>
  </phprelease>
 </package>
diff --git a/lib/data/UNL_Templates/data/tpl_cache/Version3/Mobile.tpl b/lib/data/UNL_Templates/data/tpl_cache/Version3/Mobile.tpl
new file mode 100644
index 00000000..3215adec
--- /dev/null
+++ b/lib/data/UNL_Templates/data/tpl_cache/Version3/Mobile.tpl
@@ -0,0 +1,67 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
+<!-- InstanceBegin template="/Templates/mobile.dwt" codeOutsideHTMLIsLocked="false" -->
+<head>
+<!--
+    Membership and regular participation in the UNL Web Developer Network
+    is required to use the UNL templates. Visit the WDN site at 
+    http://wdn.unl.edu/. Click the WDN Registry link to log in and
+    register your unl.edu site.
+    All UNL template code is the property of the UNL Web Developer Network.
+    The code seen in a source code view is not, and may not be used as, a 
+    template. You may not use this code, a reverse-engineered version of 
+    this code, or its associated visual presentation in whole or in part to
+    create a derivative work.
+    This message may not be removed from any pages based on the UNL site template.
+    
+    $Id: mobile.dwt 536 2009-07-23 15:47:30Z bbieber2 $
+-->
+<link rel="stylesheet" type="text/css" media="screen" href="/wdn/templates_3.0/css/mobile.css" />
+<script type="text/javascript" src="/wdn/templates_3.0/scripts/mobile.js"></script>
+<!--#include virtual="/wdn/templates_3.0/includes/browserspecifics.html" -->
+<!--#include virtual="/wdn/templates_3.0/includes/metanfavico.html" -->
+<!-- InstanceBeginEditable name="doctitle" -->
+<title>UNL | Department | New Page</title>
+<!-- InstanceEndEditable --><!-- InstanceBeginEditable name="head" -->
+<!-- Place optional header elements here -->
+<!-- InstanceEndEditable -->
+</head>
+<body class="mobile">
+<p class="skipnav"> <a class="skipnav" href="#maincontent">Skip Navigation</a> </p>
+<div id="wdn_wrapper">
+    <div id="header"> <a href="http://www.unl.edu/" title="UNL website"><img src="/wdn/templates_3.0/images/logo.png" alt="UNL graphic identifier" id="logo" /></a>
+        <h1>University of Nebraska&ndash;Lincoln</h1>
+    </div>
+    <div id="wdn_content_wrapper">
+        <div id="titlegraphic"><!-- InstanceBeginEditable name="titlegraphic" -->
+            <h1>Department</h1>
+            <!-- InstanceEndEditable --></div>
+        <div id="pagetitle"><!-- InstanceBeginEditable name="pagetitle" --> <!-- InstanceEndEditable --></div>
+        <div id="maincontent">
+            <!--THIS IS THE MAIN CONTENT AREA; WDN: see glossary item 'main content area' -->
+            <!-- InstanceBeginEditable name="maincontentarea" -->
+            <p>Place your content here.<br />
+                Remember to validate your pages before publishing! Sample layouts are available through the <a href="http://wdn.unl.edu//">Web Developer Network</a>. <br />
+                <a href="http://validator.unl.edu/check/referer">Check this page</a> </p>
+            <!-- InstanceEndEditable -->
+            <div class="clear"></div>
+            <!--#include virtual="/wdn/templates_3.0/includes/noscript.html" -->
+            <!--THIS IS THE END OF THE MAIN CONTENT AREA.-->
+        </div>
+        <div id="footer">
+            <div id="footer_floater"></div>
+            <div id="wdn_copyright"><!-- InstanceBeginEditable name="footercontent" -->
+                <!--#include virtual="sharedcode/footer.html" -->
+                <!-- InstanceEndEditable -->
+                <ul>
+                    <li><a href="http://validator.unl.edu/check/referer">W3C</a></li>
+                    <li><a href="http://jigsaw.w3.org/css-validator/check/referer?profile=css3">CSS</a></li>
+                </ul>
+                <!--#include virtual="/wdn/templates_3.0/includes/wdn.html" -->
+                <a href="http://www.unl.edu/" title="UNL Home" id="wdn_unl_wordmark"><img src="/wdn/templates_3.0/css/footer/images/wordmark.png" alt="UNL's wordmark" /></a> </div>
+        </div>
+    </div>
+    <div id="wdn_wrapper_footer"> </div>
+</div>
+</body>
+<!-- InstanceEnd --></html>
diff --git a/lib/docs/UNL_Templates/docs/examples/convert.php b/lib/docs/UNL_Templates/docs/examples/convert.php
new file mode 100644
index 00000000..f16cee1a
--- /dev/null
+++ b/lib/docs/UNL_Templates/docs/examples/convert.php
@@ -0,0 +1,37 @@
+#!/usr/bin/env php
+<?php
+if (!isset($_SERVER['argv'],$_SERVER['argv'][1])
+    || $_SERVER['argv'][1] == '--help' || $_SERVER['argc'] != 2) {
+    echo "This program requires 1 argument.\n";
+    echo "convert.php oldfile.shtml newfile.shtml\n\n";
+    exit();
+}
+
+require_once 'UNL/Autoload.php';
+
+if (!file_exists($_SERVER['argv'][1])) {
+    echo "Filename does not exist!\n";
+    exit();
+}
+
+UNL_Templates::$options['version'] = 3;
+UNL_Templates::$options['templatedependentspath'] = '/Library/WebServer/Documents';
+
+
+$p = new UNL_Templates_Scanner(file_get_contents($_SERVER['argv'][1]));
+
+
+
+$new = UNL_Templates::factory('Fixed');
+UNL_Templates::$options['templatedependentspath'] = '/Library/WebServer/Documents';
+
+
+foreach ($p->getRegions() as $region) {
+    if (count($region)) {
+        $new->{$region->name} = $region->value;
+    }
+}
+UNL_Templates::$options['templatedependentspath'] = 'paththatdoesnotexist!';
+
+echo $new;
+?>
\ No newline at end of file
diff --git a/lib/docs/UNL_Templates/docs/examples/example1.php b/lib/docs/UNL_Templates/docs/examples/example1.php
index 912af5ef..cc5245dc 100644
--- a/lib/docs/UNL_Templates/docs/examples/example1.php
+++ b/lib/docs/UNL_Templates/docs/examples/example1.php
@@ -5,12 +5,12 @@
  * 
  * @package UNL_Templates
  */
-
-ini_set('display_errors',true);
-error_reporting(E_STRICT);
-set_include_path(realpath(dirname(__FILE__).'/../../').PATH_SEPARATOR.realpath(dirname(__FILE__).'/../../../UNL_DWT').PATH_SEPARATOR.realpath(dirname(__FILE__).'/includes/pear/php'));
+ini_set('display_errors', true);
+error_reporting(E_ALL);
+set_include_path(realpath(dirname(__FILE__).'/../../').PATH_SEPARATOR.realpath(dirname(__FILE__).'/../../lib/php'));
 require_once 'UNL/Templates.php';
 UNL_Templates::$options['version'] = 3;
+
 $page = UNL_Templates::factory('Fixed', array('sharedcodepath' => 'sharedcode'));
 $page->addScript('test.js');
 $page->addScriptDeclaration('function sayHello(){alert("Hello!");}');
diff --git a/lib/downloads/UNL_Templates-1.1.0.tgz b/lib/downloads/UNL_Templates-1.1.0.tgz
new file mode 100644
index 0000000000000000000000000000000000000000..83953896ef39dea33cfff04e6919e9c58bb5cba5
GIT binary patch
literal 20250
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
H0M-KlJl6g0

literal 0
HcmV?d00001

diff --git a/lib/php/UNL/Templates.php b/lib/php/UNL/Templates.php
index 3ab6bda5..46c4eabc 100644
--- a/lib/php/UNL/Templates.php
+++ b/lib/php/UNL/Templates.php
@@ -61,7 +61,7 @@ class UNL_Templates extends UNL_DWT
         'sharedcodepath'         => 'sharedcode',
         'templatedependentspath' => '',
         'cache'                  => array(),
-        'version'                => self::VERSION2
+        'version'                => self::VERSION3
     );
     
     /**
@@ -77,7 +77,9 @@ class UNL_Templates extends UNL_DWT
     public function __construct()
     {
         date_default_timezone_set(date_default_timezone_get());
-        self::$options['templatedependentspath'] = $_SERVER['DOCUMENT_ROOT'];
+        if (empty(self::$options['templatedependentspath'])) {
+            self::$options['templatedependentspath'] = $_SERVER['DOCUMENT_ROOT'];
+        }
     }
     
     /**
@@ -323,9 +325,42 @@ class UNL_Templates extends UNL_DWT
     static public function getCachingService()
     {
         if (!isset(self::$cache)) {
-            include_once 'UNL/Templates/CachingService/CacheLite.php';
-            self::$cache = new UNL_Templates_CachingService_CacheLite(self::$options['cache']);
+            $file  = 'UNL/Templates/CachingService/Null.php';
+            $class = 'UNL_Templates_CachingService_Null';
+
+            $fp = @fopen('UNL/Cache/Lite.php', 'r', true);
+            if ($fp) {
+                fclose($fp);
+                $file  = 'UNL/Templates/CachingService/UNLCacheLite.php';
+                $class = 'UNL_Templates_CachingService_UNLCacheLite';
+            } else {
+                $fp = @fopen('Cache/Lite.php', 'r', true);
+                if ($fp) {
+                    fclose($fp);
+                    $file  = 'UNL/Templates/CachingService/CacheLite.php';
+                    $class = 'UNL_Templates_CachingService_CacheLite';
+                }
+            }
+
+            include_once $file;
+            self::$cache = new $class(self::$options['cache']);
         }
         return self::$cache;
     }
+
+    static public function getDataDir()
+    {
+        if ('/Library/WebServer/Documents/workspace/UNL_Elgg/lib/data' != '@DATA_DIR'.'@') {
+            // pear/pyrus installation
+            return '/Library/WebServer/Documents/workspace/UNL_Elgg/lib/data/UNL_Templates/data/';
+        }
+        
+        if (file_exists(dirname(__FILE__).'/../data/tpl_cache')) {
+            // svn checkout
+            return realpath(dirname(__FILE__).'/../data');
+        }
+
+        // new pear2 package & pyrus installation layout
+        return dirname(__FILE__).'/../../data/UNL_Templates/pear.unl.edu/data';
+    }
 }
diff --git a/lib/php/UNL/Templates/CachingService/Null.php b/lib/php/UNL/Templates/CachingService/Null.php
new file mode 100644
index 00000000..6a2f16f1
--- /dev/null
+++ b/lib/php/UNL/Templates/CachingService/Null.php
@@ -0,0 +1,33 @@
+<?php
+/**
+ * A Null cache service that can be used for testing
+ * 
+ * PHP version 5
+ *  
+ * @category  Templates
+ * @package   UNL_Templates
+ * @author    Brett Bieber <brett.bieber@gmail.com>
+ * @author    Ned Hummel <nhummel2@unl.edu>
+ * @copyright 2009 Regents of the University of Nebraska
+ * @license   http://www1.unl.edu/wdn/wiki/Software_License BSD License
+ * @link      http://pear.unl.edu/
+ */
+require_once 'UNL/Templates/CachingService.php';
+class UNL_Templates_CachingService_Null implements UNL_Templates_CachingService
+{
+    
+    function clean($object = null)
+    {
+        return true;
+    }
+    
+    function save($data, $key)
+    {
+        return true;
+    }
+    
+    function get($key)
+    {
+        return false;
+    }
+}
\ No newline at end of file
diff --git a/lib/php/UNL/Templates/CachingService/UNLCacheLite.php b/lib/php/UNL/Templates/CachingService/UNLCacheLite.php
new file mode 100644
index 00000000..1226c665
--- /dev/null
+++ b/lib/php/UNL/Templates/CachingService/UNLCacheLite.php
@@ -0,0 +1,26 @@
+<?php
+/**
+ * A Cache Service using UNL_Cache_Lite
+ * 
+ * PHP version 5
+ *  
+ * @category  Templates
+ * @package   UNL_Templates
+ * @author    Brett Bieber <brett.bieber@gmail.com>
+ * @author    Ned Hummel <nhummel2@unl.edu>
+ * @copyright 2009 Regents of the University of Nebraska
+ * @license   http://www1.unl.edu/wdn/wiki/Software_License BSD License
+ * @link      http://pear.unl.edu/
+ */
+require_once 'UNL/Templates/CachingService/CacheLite.php';
+class UNL_Templates_CachingService_UNLCacheLite extends UNL_Templates_CachingService_CacheLite
+{
+
+    function __construct($options = array())
+    {
+        include_once 'UNL/Cache/Lite.php';
+        $options = array_merge(array('lifeTime'=>3600), $options);
+        $this->cache = new UNL_Cache_Lite($options);
+    }
+
+}
diff --git a/lib/php/UNL/Templates/Version2.php b/lib/php/UNL/Templates/Version2.php
index e89a38f4..22a3a553 100644
--- a/lib/php/UNL/Templates/Version2.php
+++ b/lib/php/UNL/Templates/Version2.php
@@ -24,7 +24,17 @@ class UNL_Templates_Version2 implements UNL_Templates_Version
     
     function getTemplate($template)
     {
-        return file_get_contents('http://pear.unl.edu/UNL/Templates/server.php?template='.$template);
+        // Always try and retrieve the latest
+        if (!(UNL_Templates::getCachingService() instanceof UNL_Templates_CachingService_Null)
+            && $tpl = file_get_contents('http://pear.unl.edu/UNL/Templates/server.php?version=2&template='.$template)) {
+            return $tpl;
+        }
+
+        if (file_exists(UNL_Templates::getDataDir().'/tpl_cache/Version2/'.$template)) {
+            return file_get_contents($template);
+        }
+
+        throw new Exception('Could not get the template file!');
     }
     
     function makeIncludeReplacements($html)
diff --git a/lib/php/UNL/Templates/Version3.php b/lib/php/UNL/Templates/Version3.php
index b55f6709..8dd1e100 100644
--- a/lib/php/UNL/Templates/Version3.php
+++ b/lib/php/UNL/Templates/Version3.php
@@ -40,7 +40,18 @@ class UNL_Templates_Version3 implements UNL_Templates_Version
                                  'getTemplate', 1);
             $template = 'Absolute.tpl';
         }
-        return file_get_contents('http://pear.unl.edu/UNL/Templates/server.php?version=3&template='.$template);
+
+        // Always try and retrieve the latest
+        if (!(UNL_Templates::getCachingService() instanceof UNL_Templates_CachingService_Null)
+            && $tpl = file_get_contents('http://pear.unl.edu/UNL/Templates/server.php?version=3&template='.$template)) {
+            return $tpl;
+        }
+
+        if (file_exists(UNL_Templates::getDataDir().'/tpl_cache/Version3/'.$template)) {
+            return file_get_contents(UNL_Templates::getDataDir().'/tpl_cache/Version3/'.$template);
+        }
+
+        throw new Exception('Could not get the template file!');
     }
     
     function makeIncludeReplacements($html)
diff --git a/lib/php/UNL/Templates/Version3/Mobile.php b/lib/php/UNL/Templates/Version3/Mobile.php
new file mode 100644
index 00000000..cc17d8ac
--- /dev/null
+++ b/lib/php/UNL/Templates/Version3/Mobile.php
@@ -0,0 +1,33 @@
+<?php
+/**
+ * Template Definition for mobile.dwt
+ * 
+ * PHP version 5
+ *  
+ * @category  Templates
+ * @package   UNL_Templates
+ * @author    Kyle Powers <kylepowers@gmail.com>
+ * @license   http://www1.unl.edu/wdn/wiki/Software_License BSD License
+ * @link      http://pear.unl.edu/
+ */
+require_once 'UNL/Templates.php';
+
+class UNL_Templates_Version3_Mobile extends UNL_Templates 
+{
+    ###START_AUTOCODE
+    /* the code below is auto generated do not remove the above tag */
+
+    public $__template = 'Mobile.tpl';                       // template name
+    public $doctitle = "<title>UNL | Department | New Page</title>";                       // string()  
+    public $head = "<!-- Place optional header elements here -->";                           // string()  
+    public $titlegraphic = "<h1>Department</h1>";                   // string()  
+    public $pagetitle = "";                      // string()  
+    public $maincontentarea = "<p>Place your content here.<br /> Remember to validate your pages before publishing! Sample layouts are available through the <a href=\"http://wdn.unl.edu//\">Web Developer Network</a>. <br /> <a href=\"http://validator.unl.edu/check/referer\">Check this page</a> </p>";                // string()  
+    public $footercontent = "<!--#include virtual=\"../sharedcode/footer.html\" -->";                  // string()  
+
+    /* Static get */
+    function staticGet($k,$v=NULL) { return UNL_DWT::staticGet('UNL_Templates_Version3_Mobile',$k,$v); }
+
+    /* the code above is auto generated do not remove the tag below */
+    ###END_AUTOCODE
+}
-- 
GitLab