From 75655be10388e5d5f1681f53572a91cf755db6fb Mon Sep 17 00:00:00 2001 From: masiv_ Date: Sun, 15 Mar 2026 21:59:05 -0300 Subject: [PATCH] Preliminary adition to transing the internet webring, and tweaks and optimization to previous code regarding javascript to php rewrite, more concise and legible code functions. --- css/main/layouts/mobile.css | 17 +- img/webrings/transfem_cloud_button.png | Bin 0 -> 875 bytes img/webrings/transfem_cloud_left_arrow.png | Bin 0 -> 200 bytes img/webrings/transfem_cloud_right_arrow.png | Bin 0 -> 205 bytes img/webrings/transfem_enby_button.png | Bin 0 -> 10305 bytes img/webrings/transfem_enby_left_arrow.png | Bin 0 -> 906 bytes img/webrings/transfem_enby_right_arrow.png | Bin 0 -> 919 bytes img/webrings/transfem_trans_button.png | Bin 0 -> 4076 bytes img/webrings/transfem_trans_left_arrow.png | Bin 0 -> 636 bytes img/webrings/transfem_trans_right_arrow.png | Bin 0 -> 610 bytes includes/common_webrings.inc.php | 40 + includes/transfemwebring.inc.php | 3 +- .../{transfemring.js => transfemwebring.js} | 0 includes/transfemwebring_contr.inc.php | 241 ++--- includes/transfemwebring_view.inc.php | 18 +- includes/transingtheinternet.inc.php | 9 + includes/transingtheinternet.js | 926 ++++++++++++++++++ includes/transingtheinternet_contr.inc.php | 108 ++ includes/transingtheinternet_view.inc.php | 24 + 19 files changed, 1232 insertions(+), 154 deletions(-) create mode 100644 img/webrings/transfem_cloud_button.png create mode 100644 img/webrings/transfem_cloud_left_arrow.png create mode 100644 img/webrings/transfem_cloud_right_arrow.png create mode 100644 img/webrings/transfem_enby_button.png create mode 100644 img/webrings/transfem_enby_left_arrow.png create mode 100644 img/webrings/transfem_enby_right_arrow.png create mode 100644 img/webrings/transfem_trans_button.png create mode 100644 img/webrings/transfem_trans_left_arrow.png create mode 100644 img/webrings/transfem_trans_right_arrow.png create mode 100644 includes/common_webrings.inc.php rename includes/{transfemring.js => transfemwebring.js} (100%) create mode 100644 includes/transingtheinternet.inc.php create mode 100644 includes/transingtheinternet.js create mode 100644 includes/transingtheinternet_contr.inc.php create mode 100644 includes/transingtheinternet_view.inc.php diff --git a/css/main/layouts/mobile.css b/css/main/layouts/mobile.css index eb822eb..8ae3a9b 100644 --- a/css/main/layouts/mobile.css +++ b/css/main/layouts/mobile.css @@ -81,15 +81,24 @@ align-content: center;} .webrings .auto-scroll { + height: 65%; + width: fit-content; flex-direction: row; animation-name: scroll-webring-mobile;} .webrings .scroll_one, .webrings .scroll_two { + gap: 2em; flex-direction: row;} + .webrings .scroll_one > div , .webrings .scroll_two > div { + flex-shrink: 0; + height: 100%; + width: fit-content; + } + .webrings .auto-scroll > * > div img { - height: 60px; - width: auto;} + height: 100%; + width: auto;} .scroll_below-clip-box { position: absolute; @@ -127,6 +136,10 @@ from {transform: translateX(calc(-50%));} to {transform: translateX(0%);}} + .webrings .auto-scroll { + animation-duration: 25s; + } + /* Vertical scroll text */ .verticalscroll .auto-scroll { animation-name: scroll-vertical; diff --git a/img/webrings/transfem_cloud_button.png b/img/webrings/transfem_cloud_button.png new file mode 100644 index 0000000000000000000000000000000000000000..caf2d42b942732208652e36fb117d7e6f34de95c GIT binary patch literal 875 zcmV-x1C;!UP)Px&B}qgmqw7HKAV`i5631K7|I0u zK?H-RJL6zJvCh{IqGXrpbh)2t?y`EeF^dlZ^S!yeMKw5`&0<3QAY$@UtBS$Xoz05psqPoNj8>g&p#fM_DTOrYX<;$ z?x*d1Oc6g_AL)NLYUR;0^_k|uI52t?lJt+5D@w^_xY#5%` z%Uthouk8Kp)w+#cd398pRcq+-1|WQJ-|ghox6RZOs0o{6q6tmxm{4i%3V@F?%_MAd zM$6co$tFxyOk2?9Mq8%2n$#Bl|6B#(G>WsYX*N(A0zm)()K(>~-;zcX{GT1VDx!?7 z>2+~hvA(=zoQP^)e{Pej~(=2Slzb&>+|nRbvahJ+)600009a7bBm000XT z000XT0n*)m`~Uy|8+1ijbW?9;ba!ELWdK8EY;$>YAX9X8WNB|8RBvx=!KdMT001BW zNklztmMp6=;(Rb#U+ z#`bibI$cwzT;(!$c`vX5fsjC8HW#k;R2@&Bt~LhSNN7ndDX|%YjSYsXvOyA3zIWGH z=8yZdr1GVd*!1+AzIjf*m+|7piyQHYZ*0H#rMU9LcLfHQ0Q}(fz-57C@G5`+XrKf% z9xyvCs>PB2?-4i4u?eY`Y!=Ez#&PncpMNT2-rb6#|S(YiJ(Csu^T=O_~pcEFIZ;FI=s zaH&I{_wk?p1LD#FpaMaIX9Phrt*|W~u^&%KAfN$=2<$=76%jJp%ig^SS!$4Bk^)KU zGwNh7es6}-IgO4H)AyF zllxJ$c@3*Z342RqM-ZvN?mdCgxt?ZsL_Mb=)D5E4ggH63O7Ue6oz21JuR)SgHIg)) zq@PC^U1Osz6g5JX6r`jyG_Mm-F=)yTNq2y_r8_9Y7S0g_7E6OeiV@N20g4AMN7#R} z1`0qSAOyV7q`IJANVL>MN>PPAiUcPlQdN-0xVS|51TRaPpvbhN%oWBsJd#pbvOLBm z6_wXSxrH)9*DMLi86-{siUE}i@AxnIcqH{|l!6botQqhd$q?0jC))1V8O5wAT zP{lY^B5VwCpSqR^tB6ftFM)2=&=>=u&6C1mX9?&5#e@ujqrwf|1p*F85qKO{c$`bg zgr~6$G80(as;Lnf!MlO7h{JqifS^H!R*?4PLxA-HCp;Z2eGCSN@Dh~3J3$f)iVC8r zMwTPUZV%s2A+AYOj4MDYk4QAS?ktKBzlW9w3 zYC=CI){-(*C>`TNjzr^>K@~lm?ht%M6d9bfsJl$eVWvz+hfV6?Wgak|B1(^^uI6P|BfbQ#ZI|$t1N01R{2Jajd0))f66yrQ( z4Yl?AffT~w5lH-g%%={k4z5Ny=n!*2BM8)k5Iblf9!Eh+7e^&(RBgbt{bW-Ix+bHq z1Bokfbr%^|tlxYa7o2%DB90K+Bl-$P0;cDXBPn*$Pt$TD%Zg=WwYZv$my4Fom*%o8!(sFCYPN`G;2r3+#OLNu0}Y2PtSf zCT#`yU{wtSBoQHaywb!Wr$myFP>4PqWhirvk4ub?v5_Sd4kr~}TapmtRD&yOtnQGS z9!=gM$cCUBWRN%&ql!LGB`77ap^p+>e3-=RE++3$nGCeUyp|YCV#>B!>`(?GO&E=;pg-8;zfQkjO1Q~ns5P*i%#cWu=^{{CyUUU`$5Mu|xY=2U=t=ls6 zo~5UrNfmqM%*k+}q85@EixY+|k8Yh+c`Q3)86Zf;atb;qJc71+ml~>E5b1`1Y%4iH zh#Z@L^u%G)J%8~zRJI~Mt_zhVian~YDMkVt9@;qco_8-kA8$4B@e1j4a9un-lh>+DM5N3Ui;Xr(p<85DaHosV<9drUZsTK5K%)_#q3zW z`LOq&vFI!uf;nRcz+|A9JJwB1i+}p!(=jfCP~+!W5|L3^%f$L^ud6JUE?U;kbmvAW zax{{4k8K|w_w=QpKqrFnO^0s)%T8O2k2_?ECF**LoBHi-(?g z^o@c2jCax#31f5H6@c28#JYpcdx$v0g&LG)-NUm}qNS%U$47xq26-$9z9Ee~O>PLL zWb4|ejtu#tci_m-V{R~klz1w}*G<3otVL%bg$0ojMjYDJY~J+5>n?{@K_QwKh*0D~ zvGvj63b*|9Wq2T(FWB^>Ek{iIywlFcMIJJZ>3X7`qZrB9_|UrPio57sq!CCP6OHEh z)DXLfD)jlm55|A%`hL$@?*^c+Ujzc;BOksqbn)E!ty|x)?)_a$-ov94KYT;dI(x~v zbZSX8U(rz&Wr&GGg^LWn?;xpo^arz7qorq@1yZ9s4N`eLDOFvP#W5Qm-8`!_7B4y* zOT)<6fm!*swNDO>d)67tkPhTXP27petz+WRiPv2Y%LfW-#-PEodELxuoVjQj2Emr6 zw#-_crG{v(Ag&bsZea8Ghr{-sCGVnc3Zml-+G}*k$wkcCN7lU|_5Gg37b1Yy)Qboq z5SM)DmJk@>+2^*Cd5Mc^YM+q~2D#s#m|0c-r?cKeE+ew0#EO_&Su#;$>y(F|e0YZO z%LO1ci48N4MbB7HDKuk8OD2noj*cmPg;Oz^E_meO*H_s~7cYmZBs!); z=_|6xVyl>1mh4#f)U482v}g$_4nNQ1T}tdMn>G#4#~G(CBaXq(ZIDgOmctAomMuOH z=`BJyobv>cvF*wAZ9_f%90206Kt;snwd;pBh%?V53K6xG?AS5826y)9=ir^fys5ys zh^&(QaO0-o4du-9$XrBxOitk=R51ML(I3qMyz?nBWH>AiG5FcHOuueN3;0E6UVsCv zda<3^U;N?K!BX(6XI{bzN9{cwVQGAd6pn{~`jz3}EcjzgP-xkwq6@NzsWU2NLDW3@ z+)cyP^@LC0wMCIq*aj^FjSg&n_U57SFF5&AxKI=31!5UfhKfwZ*u0%6jc@(>bO;w* zMW_W6FHY|jmb~SoxTuSmJ4uHQlXXeQ#8jbTV&cwOgZ_?_t|o3g;!P#WcG$da#q{r5 za2b);6yB1J#OSQzu}!OoLvrFL@u7zj9jvp&vA{cr6OMoxEd7I;7ZZm*KiV=poh5Jm zBu4h|#BBb>irF{ZldeWsP4uP$oMz*e+or`i_v9-Pjlv}YGuI%hg0(wtJ8ZfaEw~Pg zzym3gdf!alx3l(iFpI}KFa~@J?;iakl7RU4AG$p_A^G(yPvG!$L`rTwBDLT=4{iMV z@NwqCPf|&Ns#Ek)lLSVH;z?Yd5wzo>@vlu+&jnXg$P8^AYRsaIB;<8jo~KE}iq>o%?$u0$tX2dZJ~&!!jNqLV&O5++e|yA)B6Zk5oJB?iOR ziB+?%&@u3bTq9)i3FC5<=|LV{$|J? zCtORVdyFQAp3%giV$17L&wbaaCtgY>Vxp0XO*^LNXW4>FAVjDUgZ6!zG-dOqTV_n} zoeMvX_8vLbDowjo->w*fKojt2A_70yGQ7uGw(wJ^s$l%Zm9P7G7N2-2M#RW&#iqxn zKhHS}E(fbHqX{DIvv%Xm4f@=Zufk$T30NVBM;(<@WN8bibM3Cz0s9Yu#SMl4DZBUl z93+T;^)GG=AC510|@|WM7p&?v{@Hz4E3aS)IpL(Ze^NTZgi%Z{j z4VlrXQAZ`(-KlD@NUsK4%#UoodFJutTQA4!jIGZPuY=_$UdEQ6ubu&_E6APW@n6i) z_}_XhI@aj19;O-LhZDoq^X!wZ!3#s`EmnXU0hb0gZoK8Nb$-FgAIAb_USRj0mk&J(y$nv*bNk5WwM{^u85uQyG z(<|+?6D}r`9kxC{T;UflxPsV6j6XlT;FmAFq8-~fsGY|JMU1BeKDywNp$XkJeisr5^Bi$dG?7E(iV!&vfj?X@y>M>byc$`7QkKik zyK4A@t-l$e1WibgvQH;9^tHx>9F5|m@3@vX;<|bL3KSkY)^?lM41p8ihVdInT$d{J z`PBKJ8lLCPE4b?HYo^1!`Bt1u$ZUZ;ULl-DQ~{THa2mVQgO*&n{E`{-dEcfx@d4yK zx!+_Y#`CXE8Gg?_TW%w-Qm(w<;^FYEyB#3|Iucxd_HamVUAK~}FT8SE_>CKGA|u8I zM|TeV`_r#J44}8Rwi~0635zA;W2atn#Cln^@m4?#6!fKbC+Xk3=f;qaC?;QimP&X! zC`vpr@NZ6;p{1^0LnI-a@8|_ZCpa1-5jlKh(eR9{-f%l!*HC3#apCYdE7#pZC1XbC z=JbQcL=qKh3Jj9KRd2ug4ckn(Vg1cSfE=3{&=u=ffyfC$bM3jWuW_tiw+0#Kh`9-( z24PxbnNBINu|Nh#@rptj&&A6xomoZ4*N`Al^IFr8|82p=Gsa!B{w^YE`Ga$Z_h7e; z-$pDHc^SC&qAOnC^Q>PQ3F0?F-$92!vC9pnLU7f&)9dlp zjW_L|7Di)&J$rxI0{SmMbVEqJ=7n89CIM;`mcS(oXD+mR#_u4Pnoe4w6HVnEDo7d) zA3JIIeYdZ>8KEYY@|DAtZR1K}DylIjx8!vEki2 zz={oDM+i-mDU!10igRW^yjV4UJFd~pJ=Wr!A{c?J!3lvd;406ERP25QECJDUR^WyD96W69bVBl zt-TeYJe|4F4}n-~La4an)KAXbU2nJwv9qUb9SCI-19H48|W@K`}6(*0R6{g&-hNl!HSl*PZ|I!z!p56I^-P^uoSn z<1NrgWCA9Js%yCBq)TVl9X@skJ{F`F^c=yzeaFWR>ay=6AxCv%bjMNJn2((N?`G(! z9v}{u8iASDp8fil3;$qf+Jf;+U?Ye$>ICBqwbv)2;#8{MbysRV?&iYiemWwtq$j+YfF$da=xM1JF^jk zvFA{elN_xeSCrLoLy)LBbN>+m3D_}(9+*<^`wg0^H~hPFa~2ICqTwcMQMn8mgGmHc z*E7~^#%?v4y;$0X57J-=$FYTP!LhNYyZd@hU75#AN z=Obbnvgx9a>*0HnrmKmT z4ADsZagLEn&`%`lWl29dGN5z9dHA3hode#$Kka(`fF2#*i=?I@V{~3?Qt|WMKR8UI zxDaVPuejkxBy+0wAd^XSk`THQH`&Kkn#piv6S>%)gQP-@X(XQ7C&;*u`p1~bWb(jw8U?!l=g707cLQa`Zq++pFnqpSjgGiwMzh z3#P;^rM8Z-V`KVNAdwQ6R`7C{$@uWV9W5@zdx+*rFoA!5W$o*#urc*sGUsq2M$#bX zx837QuMP+FSaA_ZL#Q0T*25Kau3U~NyU62u$WmfE5pvQ~R?rU{4x1ls&mj&DHzqJ5 z!qZ3kgkG~u zk)y{HA_UNa+Q-DY&)!{+56?h(7LC+oM^(6>kQnmGnOm-Gmg1wsckS&0yCxY6Q;w7= zrXDe~yTQ%SjnkYBL%KNWmJ>A)B_5k7l0@KCjqZ18svc1}!tQux=#Hu{!o`|wUO`oA zUhU6LLEj?YOCQJr*x(T;%)A2!%6_?f_=$(3-Mc_2g0j3CrswM@bw0L;5m66)R7?mG zU*^b;qI@Y3B9PKD$?!5C_2<$L1*1nNR7D@FGK^5*OM1P8tm;uk9U8UqHv&}J#q9~J zu>(@Gck-q7XwAR)z*j;DmS4Z}{NSKfAb+hrZR2SOUZRb~`@wN08IZLm%=btHDkwAs zeKhf2NgqchCH)Fw<*0)uQWZWZ;xR+1bCNuwKdBL&UC1C&1WMFE=G9<|(;ihzbH~r3 zQ6zz*qoRd0cl=}2MF7VP!uEx~9ChK4Z~@eVMQ)44AZW0ph2kY)uv&7QQ$$wcHJC=w zBpy);(%(_kJ0}q;29p!-OnH7(qRTEvcP5GIhPX03pJfE^IXM)#Oh6SdeZeofBlsrb zP3l#2q7lv@U4{0VBJsp--y*z6PX>M(&%rx5u{()ygVV6IrfD&dqtMjEMc|n*2NwlS ziF#Nip#&8<`pVPE6}>btZ?EM^F-A!GydxT6Z~bfV5+6yj*Bn1dyGR9ZwmIHdgmUQJ zh8Ii%y5>!>z!p7>?$G!Orwyre)MWuGBguO_pB;-V3y#bBxDey1NHEmi;-tdRP@(AL zftMnKRg&ZSpjAW&?SQNRlDYd%{1@!){i-#$`@n_Q2ir|3fBjr*C<^%90!u|g2S-V8 za>^0WAOmKe8Z4qqB$|Z4YkMHBJhco&N<*mdw2J9fj!Gho()3k<-X$Te`0lsAdf3+W z<`aLP)t9g4&&F?J>)(BDTG%mB!GHPo*A5$gq_jW1c?HLn0vSW7Br3L8t4NNs&`)UC z&EG%p)hYLUcIyf@{HMR15_bLLcXNU)xc~mYm=gZE$M51q<+%60Kb=*6{%ZTZtbOp0 zW)=5~TkhpY-}$2>#=Cy}K77>U#Mtw|y`P!#*Q$)*SYcsg8mR?5w>3L?;6HtS+Gl^c{Z2MM_ zZrd6*|Lvd5D($}*|2pG;_gAwNgj+bKTN4u#@cR{XaEQ7cgHFDT0>lU3|K$J;yLSB? zF@Q7P?+YUXQGpdxPt}J2x>ZPlqC&LmmUyIysX~s{3Ykml0hl^SC02Hp=iNfrk zcmLNzK>NnTm-lzuvjOo);Wtivg&0RcjPVsoBl(5u5UgO~d`Vsfk_3F|P+d*vD^Q-& z=6v^oFHTj^Eo<2Doj;jY_@5nrfDM25sVQNffBbIVrW|pos6>ozD(-%8s)~K&mVYlRXaJQL?Q9Lz|WI;93Q>H{r636Joi3xJEDYpAN=$oDtb33 z&B?jltE$n?*ILzDfiv5 z{Y!LnctNEIp*ViTqYzXBy%Pf_+L?u7&*VS0%ZML*|L1~3uzT0f2m@zUhO~76ihe$UZV{88QZ~tOe`94@x537h9R&vs@AahTx0+q}8&-Z_2 zYB_JdiQ`8U-Z_+1SZv$S2D5~16RTLhX^bl>MQT?gNHOjH~;{=T?>I({RkjCQEJN2`iZchS0{HiAx` z(8Lu*S+ebkHB;{U+?IQJ;n}b54-=g&L*KXE@ck_4IuaLCW}dKTC*ON~)s#4Y^~C)w z>`F2b==FPif5$CH%=;Igc#xCbD}3+iRY#2bh0UvJIpq)f000NTNkl$-i^3qTL`iNPuQMt{_!;|(uV)M{VP+#uODBNdf+R)9sva6u7)XM-kpAbfxjCAr*qjx@3IER6xHlaW~KZcq(LH+Wak!8+ny= z+g48ntNg=`Rfhn2FN;P!mW(=ojfZ#KJgdBae*69W;^{9RlD7vq zA=||xTUQ+t_dXWRvplqJYQC@Eeh(+ayLfbBYAHs@m zW6N_>>*Uj0R`8Zi4N*p@8oX?fM1wWn8i~Q~UtBy0&=0)t`XFfd^{!uWuwOe5Y@b-g zk|mcjF?eP8NOa0JrIZ=!)B0^FO0M%$MD0@9NJ$>g? zRUE&M7k)ZbiN5ssoxE8(e)RY)Q^O}7WWi|by{<#W&VJz0CvH3h&~LMF)R7VB<$WHS zC7@s0elI_L`m2Y4_$^M+J-+w&%~Qj-e2Y^?E#KRGNc_!fc&o8I`qb2XU%zD)FFt$A ztn%>}8*bxwj)kN&^!;wOK7P;CI@xq1ZyU|4(V?K<)MHMTW~)Z&?7C#4-0P%N<11#LxckfG*hb`(;}iCIKbmsoFcwID<}ou1}rafWQ*=y|PA zZd*ZWMC0p#`#iVl`(inVnhI>xJ^a_0{em31aHj z`GJ5?2V4vtBvmbmbOmMvS@&^5lcId7K6)_PNh1YcB)~}^^5k9FWI1)BpQSh1SLQSl3LRkfzma;>X5`WwgwvuG8>>a6di@C`$YTUtf|OoJ>UhhASh); zOb16p_zmDZ6w-;9LT>=6H9hKn>+r&<4DtdSCm3JSh?rPaRD}ZV za9)x`V5NiH5KM#8o_Pjiwa^FQK&%D1PU#PXd6K! z8Z3G+kMTIfG-tu${qOsH_#Y9@eSj(gez0*%knCH>2tgucK=^==vRw`n7AY0Z`nF4# z0cF7pfflO$7YJG+8U;~6`_>Sn}C-NheAn#vYtjlH26mvB1oL@7zwTs$jH+)?E`2P zs2d59BQyfE$9sVep4x+q0?s+`nxJcN5!N?EQcz2XEYuQ&cL)&?Xr1oP1nB<@?Pep_ TE6|1T00000NkvXXu0mjfb7_a{ literal 0 HcmV?d00001 diff --git a/img/webrings/transfem_enby_left_arrow.png b/img/webrings/transfem_enby_left_arrow.png new file mode 100644 index 0000000000000000000000000000000000000000..0fa3a45b7ba542bfcefaa4748a64b15817f232bb GIT binary patch literal 906 zcmV;519kj~P)YAX9X8WNB|8RBvx=!KdMT0009O zNklQpfg8oCu^+5G$0FHBD*NRTT+A1^j^&`jATZNQlRh z|A5#eYa}*wQ?)4++5~|Fs1$*!qGbG-@yzvjJob3z9u_u9iD1)*+4O9#&gwhgJy+)* zLqzz$!gvh7-?)4IwD?sMziM&h%sFEu@b>oW(hbIFy9JbO;a4q|&z~I?{FFqkF+z71 z&o)sti=*e?eU$KZ0f(-8gMJj!ZRH4@0=_+ms+zod;hl#MPop)-HilLbOX}yi6K?O=hwPxPSs8YCru!t1*k(nM2jf9KZM= zaES!zA#^|oi1tBzL_1{iC6ZtR(H^;J6X-*n<+lwN&$ejQ$^=f4ZhMMudjg&0&`Aai z5CLP~d3t@(_;(cLX_{6h-2I+&uLwFms2iil#1?`fVoCQ3h#<%24&q4PIsGBI; zNH)m)W{rr=zAwqCEY67K5>Sj0M9mcJtN!*Z%#bUj$;7ju-ctJD{6L+Cao7 z>3QVKhuGe_L*>9xJlmvIH`&|>xpmtn?v5im3o>|rL-D=t0-szy`CstT(A*!I`=IMc zI4usE#U*~e;^XbiQJH;(gQu1r{*c-H@>4;47MC@Wx+J|eQKwJn zJcTvAjK5Ri##NV-AH4nO#_P>5&WUJ65(m8a@+56%0>5hE*%tGKBOH3`rO|vWmp@;T zjyK7|GtZ;!IaIyK%7<@`2>#h?(ouQl7hb@(ErLdwm5<&qM!HO_zyF>D%`%}s!^O3; gqlG_SAnzys0x}9D@7UUB)Bpeg07*qoM6N<$f{uN&PXGV_ literal 0 HcmV?d00001 diff --git a/img/webrings/transfem_enby_right_arrow.png b/img/webrings/transfem_enby_right_arrow.png new file mode 100644 index 0000000000000000000000000000000000000000..782fa16ca487f80542d5e6ebfaade10de9f97da7 GIT binary patch literal 919 zcmV;I18Dq-P)YAX9X8WNB|8RBvx=!KdMT0009b zNkl)G{gY;Pi}3W-ty5~xiJg{D<5a6#gnToC^QM+!pX zUMjT(ntuRLK}b5?nW1~wE zUKo@0SF!UuVwX_;l6q7vn*#5<4WU4yjC=w6lTZw|McqhYn*X z#*ltMd*vtW(U$;^-sUPO9}ypv2g*Yvw+l~!Bmu>p8$a*C_lymK>~(-0lF2TX-6o?q zIC-XsE;jJSYEW8XJ+7dSKL4k=s9+bq-#m{7T)`*9QizG%t6%Yvym{%5>K#CKuK69|`7pCUT z0B9JP@6`#bOCtF@$Db~9>TDKWYNE?EqP0cFCyvmL?_rJP5EUQ^A5;+$ch}rSBu`~w z<>ByulY7@IrndSG-dLSy&%4}jR!C&H@xlnV9FYsQ`2O2XtdxT& z&8au8Ji75Z_ul757n|s?&eAVGlJPc~dUI|#AIsdkUl?b!fg46FFa1D9x0!nDtKq;e t&RjKFcMYe|VETg(hr3KXULX%6e*n*EORN#{qCo%v002ovPDHLkV1ikjp*#Qp literal 0 HcmV?d00001 diff --git a/img/webrings/transfem_trans_button.png b/img/webrings/transfem_trans_button.png new file mode 100644 index 0000000000000000000000000000000000000000..cc38b3b9d11935d4054512544a37dd33fd29cba1 GIT binary patch literal 4076 zcmVPx&08mU+MK2y!DIQ)eA6+pXRyH0~I383r9$7FQUpgIH6(V03BwiRGUl=4`BO^y8 zBS$19M<^pjA|pv8BS<17OC=;pB_d2GBuywHN+~5uDkDuPBu*?PPAVu!C@D@YC{8dT zPd6h^F(pqYAW$nIQ7$D>EhbkkDN!paRxT)3EhShfB3~^bUoItICn#AeC|N8hSuQPG zDkxnoDqb)mQ8Fe`G$l|qBUCaaRW&A6J0wszCRH*iQZ^}4GALFyDOETrQ#dJCHX&Iv zBv~{jSTP`9FeO|xC0susT{tFQJ|tW*DOxrtSu!kIH7;5*DP1)yUNJ6SHZ5K`DOo!# zS~x0SE-_y$HC{0=UNkUXF*RN_HD5V0T`C`AE+1kl9%U^aWhx$MEgfkw9%3~eVlf_O zH6CU>8)7*fVL2XUF&=3)9ceKhY&ITkI38*_A8tJ#Z8IKlIv#R8A96Y#bUYt)6C-05 zBVrULVHP1|7A0jEAz>LMVj3Z4942NQDPkHaW)~xB8zXBLC~F)kY#k(X9w~DjC3q(w zVl5$LE-hptByBAsY9T9bE-q*?B4j%xWHc>gJ1t~0B5OM%Y&0%vJS}W4Fk>w-XfrWm zIx}TAIAc6GW;HWvJ2Y!HIBYyQY#}9dAt`hsDS0&`ay=t*JT7rOBzQM6a6L3}K00zk z9bH2pT|pjVNFQiLB4tSm{PCu1XK9gKOmsmcSK0<~)LWo2{g-Sw&MM#8ANP$E`ic3R_Lr9EJ zONCNKjZsRCT}zKmLy}8Nl2t^LSVNUmOO#wnl~qETTt%BwNt#_tn_N(wV@Hre$Z|DWFD)8_yG|MSN- z`Tzh7nn^@KR9Jz7&FSnOjd54RW3vv(yhi$XIT*~fU94A0{5o&6KO+$lY z;~q^e2x#gTuFt&fooy;A=I&-^o|~87{Ac#r*@>;LuCBpvwXrJVwZ`hl4T#rPKU!@x z*6M3F>No2vjg`hH*Kb|_WVvx|`TFA0BK^L*@ZRjg{QUgvrTMwpt>JQ8Jb&r3v|hSA zcX@91m4(@PsJbwBbzx!g%F?yP<(1_+>!g13){O@A+i0xb{D{U49?~(Ot25G@ki7|) zTWcS$KxXa3|6H%H)jzng()i%ojT=jie}DM?zgGTHzqY)5b@{JLSKfU0>Z?~@U6_CS z(%d_jUjExw%(<86X$+9Bygq;Ft>}-pF3r9=`^ww%mltLi80p^^mR?_6T3TGXwp@R| zvGP&9L2*|;zSXEVuCLwz*gBAPr(=yqZMsH7mHoo=7lUxd56{=8gXwBe3&OA*`awAi zrh+gi2mT44l#h>jgxC(jd5m?ZkiifNI0}UV?&X%=L%NP}kBhg4f>Xdc)=3`QW47bl ze%U*5wj5Neeh^mS6Tl^?g+Vpo;rm^n=ya8V&hTFtycC4zYQasi?LiqZD??WR% z?2)1eADg%a!A>3<1w6bNw7}3frhx2~sBSO)zu@4*4uArw>*SrLO^SBWtDY@}el76B z2_U840De?G2ZnANT>01el- zhsu_`RVw=v{scMUk+I{_s3M)te2*>-io#}HWRgtQRvQTYqQxEAEtL@BJtZ>x*tDJS zgUvLRG+U$FIZInXfz&S^_lZAt)^8beD%PRzLoHCcI14PDG}Rt=xV;Hg&Fh9_js~ZW z*kk#kEjTUUtomD}E0sXe8;xLnTiC`4jU4ldQ#B@t)7Ev)015Tp$go2J5g+Ezd(B~e zQws=T;zr5Htf73-;EMKBIRdh+?@|dAtv9wqt(Uf&%zl`9zi78{Qem(=?6wSj3fwq6 znNwg@Y-&MO9f_x?ZDxdRG4my>82H;c*Db3n9lO3-s+@YdA~mc)vUE!1tP*_0AETzP z`;L3My@8RPZlPE2X&Dq1?sSnvI4{R&BGsf9DQFIjv?-ur*A~frr^!SM?^wm6fr5Uo zD^_1-WR(pTD6~~6Sv>a}tE5>bPg|x-Tw=Q{gEV&8InqOhUA)l>BTBC*ft0+%ZKi5! z7D6UMuCQpT)>a2dxgGVJ6Na=}mPskilGP7#b->iueeecVpZ|TzdeJ`z4vCjNW|6Wj z>S?3kNTQw)$J*=u+~{cs1s!{Nq7S*cBtb4A(5>n4L2Mw?ZL5RKJa0lXkzJOY6qDFx zpAeW;>zf~e{^|%wkGfcvRKhe<DX=7q)Q3DoqG9fVfO^f4*f%J(wmTHS0 zMm5v*ok%5eHH76*^&r0)6T#wF9M{#i@;8&-dxeAJqWTWC@h0h)*{y$LJ9C(*#cRf+~pO-zl7Mv&p^#x~BTq83DZ zNpnYgr^tK+9^h~zNERxoocht<@~ftaf4T5EQhHzbYT%3xo{hnIr@|x4fPAG;oV1V+=UGlERq z0!KMr&Y`O6dOQ)Ed&7krT0C7%OdKK}(IcuV_YhhVizhe`!u`|QXDW((vg_DrJ;1I0 z;+DNdsZx=ya?^@jajm5OB_-Lq%UmmZ~Y>b}lYrgP^VS)hbZ@yB}R zk;e|`4~`BFjylG(<3|j~p7b2gn>;ywZ*GO5l?68hbHM;16#MbBsAyJDB#0auQ4u(ySPs9$$-Kna$l zp6^jJpNg=t{wRy~$XJ@QD$mhQ+NCgKce_ zJ75+;QE>RPuj|9`;K{JJSPVYF7}nVfxPFMfsHHw16dM@c@g2k%ndu-S@;(#vXe&81 zD#12^4z#u1BTfwH8l7cH7t42Un(4tD6XVXzeJNT6=6la((2aGNo#ftZ)`6GiG24xV z0j(H@J!wzUg!jUb$FAO_ck(Dxk=U%5^QovKrUL1i zKXYlyvy2|9E5~g1((?q4hH;yUk)qH8hV7qYyJaNR;otRfzvlZ)+Hl%$&9~P|9z?Cu zgOT}ha6I1?Ei)n@D}bV}y~Ym&n!>2-!+C!00+}YY?rAnTsN6kJ&?tF3adFc3I>{2%nimy6IvFLOe4^YceIPPF2L2;M6JO<^KvBTEcQZvn+@{`Shb|d; zd<1$IID8u@N0f0UmHbk6AgjAho;Z1fng(e!#5#PUR=seXfz~J}oB9{VhkTkm$P9yj zq49oJdVofw8T8=b;{znmKp)2`js_70ou|}I88Jw98ds2~N&f>>DzKmE4!peiOwn-~ z9dQ_LIDL*QTAT4&#fO;bG)q=l?8w2162G_Iz4V&xb@g5*7zcfs(KY2F1?$7O?a=FU zK?e%NrsrJI)UO}3*(3+S1)iv0Yy)LO8Dfea2-rYvsjD10CQQ-W;RZh}kSOS7ESGHS z+_3Gi69Acumsc5sQ%)sQsoSzyl6PPaYwL#n%+R3ioE#tWCjFB~hr)0MX8Y7Qoq8Gm zJT&gvFFZMJc&DEmI#>&<&m9=_9OIdxp;5ya#qjyb{>O-}qt4s11N=av3(2qpnr9z zf7V5>_op-W(>mSht}goRNZ*@IbbTw)5l?*kYl(Q`8}azpY$ya(_P)bknW~mNNwYM-~r0noqh-g0hnp}15PO0&FXigJMK-~11&W(EkEvXRsby4lBz50000Px%Hc3Q5R7i=fmA!5gK@^3*JF_Jru|O8FFl#80APo`{MG#w2@di8v1y4YiXFxPG zbRY^hc1@WgfTAE1$H?N(gxKrY*t@I+8m)A9X3jn5+?f$oWtoUyd{%(a zdaOP!O4fDWxe;GAlzs#_tVIbd4*a&coJ2{O%rk2!HI$o$B%vVUz9=G@RXzo<<`sT-2z)6Tq$(l&G_Y?fQ8}(*7&z5{_$xozqlBXNW*qMn9k|Yf%)pBdL z9Mwr9jjd3Hy{~Tg1=v5BX|7ejm`u}jDe2OwCQOp4$JKI687aYo9Q+xu~6DLxp?+cK4y^yPOr??S$+cG-zAraoc)?#?Un$J>y&*7|W2U3nX}WNkoLo>u<^+ zCb+jY&!(j!Wqk5DR9-d|Ah^2*VFaC_>uzxDBZVth)2_BRO0Y@hGbLvoe38k8P<>uk z`Z2-n6$c1#96JkQO{G3+d|Bv`I1~6}5df8~U8Nrp+{sOVqY?4Q{a=*v+(%-nFafAO z`=GQ31RJ^W3;>Sm4OS^;#huUiUr~L!twba4-*N>k`W~MfcpT*?+X^rc;nCJcX5hd3 W@CW*`tT2}V0000Px%97#k$R7i=nmceQhQ51&1GcyT|Gfk`og<>+XAjRrJe1v4voe$tfdN zUxPFOz`cJ>X5KgjPMO6vNwLqfugdfO>{%~DJQX_wWoJ-20k6zr5dkzC6yKX`us0s8 zGgArXw>s;Ma4ioJ0H1#;UruueL?nMEv6$j^%MxZZ@d&P8f@NTEmPJKX&l5jOiCj)Tuc&H#~r+qB&?(<^;|I!hGQFm_=o+zc^Tqk@Llk&CLR4&&Qgkv7K=C6 zjL^g=g*SL8$V4)N*jXu7WfqGFZad6^_8kvwa{=rQA@J;6vH4sM(Tkt9#!6vfexPXK zO%`i}O)z;7_WN+71-l0}=DWq5Ostzg^zsl;yl)?dRDh~U0jL>+ZxRAysE=!0PZMsn znzWh}ZpATdw5{Tb6zY_zilbMD;0T?qRk2q8XGE`uP<83vy&{vxvy?fjd55NZ`vAD> zAsl=MPx21NcVW2#fk*WI7=Z4*=3hn5_(~CK#G7O6T!rscUlX=8Aep w;5l@j+@9-RE=BydH=;UrXzS^ng? 1, - "sources" => - [["url" => "https://fem.nz/ring/transfemring.js", - "source" => "internet"], - ["url" => "includes/transfemring.js", - "source" => "local"]] - ]; - -$VALID_WIDGET_TYPES = ["transgender", "nonbinary"]; - -$widget_type = $VALID_WIDGET_TYPES[1]; -$id = 8; - - -/* Implement fallback if scraping doesn't work */ - -function scrapeSitesFromSource(array $source) { - - function getSiteArray(array $source) { - function getFile(array $source){ - - $selected_source = $source["sources"][$source["selected_source"]]; - - if ($selected_source["source"] === "local") { - $file = file_get_contents($selected_source["url"]); - } else { - $curl = curl_init($selected_source["url"]); - curl_setopt($curl, CURLOPT_RETURNTRANSFER, true); - - $file = curl_exec($curl); - if ($file === false) { - echo "Error: " . curl_error($curl); - exit; - } - - curl_close($curl); - } - return $file; - } - - function extractSites(string $script) { - $start_pos = strpos($script,"sites: [") + 8; // needle has 9 characters - $end_pos = strpos($script, "]", $start_pos); - - $sites = substr($script, $start_pos, $end_pos - $start_pos); - - return $sites; - } - - return extractSites(getFile($source)); - } - - function primarySplit(string $array) { - $i = 0; - while (strlen($array) !== 0) { - // Strip coma if found - if (str_starts_with($array,',')) { - $array = substr($array,1); - } - - // Get substring position and length - $start_pos = 1; - $end_pos = strpos($array,"}",1); - $item_len = $end_pos - $start_pos; - - // Save website into array, and strip array - $return_array[$i] = substr($array,$start_pos,$item_len); - $array = substr($array,$item_len+2); // +2 from { and } - - $i++; - } - return $return_array; - } - - function secondarySplit(string $sub_array) { - while (strlen($sub_array) !== 0){ - if (str_starts_with($sub_array,',')) { - $sub_array = substr($sub_array,1); - } - - $key_start_pos = 1; - $key_end_pos = strpos($sub_array,"\"",1); - $key_len = $key_end_pos - $key_start_pos; - $key = substr($sub_array,$key_start_pos,$key_len); - - $value_start_pos = $key_len + 3; // +3 from " , " and : - // Check if key is quoted - if (strpos($sub_array,"\"",$value_start_pos) != $value_start_pos) { - $keyhasQuotes = FALSE; - $value_end_pos = strpos($sub_array,","); - } else { - $value_start_pos++; // +1 from " - $value_end_pos = strpos($sub_array,"\"",$value_start_pos); - $keyhasQuotes = TRUE; - } - $value_len = $value_end_pos - $value_start_pos; - $value = substr($sub_array,$value_start_pos,$value_len); - - $return_sub_array[$key] = $value; - - $sub_sub_array_len = $key_len + $value_len + 3; // +3 from " , " and : - if ($keyhasQuotes) { - $sub_sub_array_len = $sub_sub_array_len + 2; // +2 from " and " - } - - $sub_array = substr($sub_array,$sub_sub_array_len); - } - return $return_sub_array; - } - - $websites = primarySplit(getSiteArray($source)); - - for ($i = 0; $i < sizeof($websites); $i++) { - $return_websites[$i] = secondarySplit($websites[$i]); - } - - return $return_websites; - -} - -$transfermring_sites = scrapeSitesFromSource($JS_SCRIPT_URL); - - -$root = "https://fem.nz"; - -// Add checks if id is at the start - -for ($i = 0; $i < count($transfermring_sites); $i++){ - if ($transfermring_sites[$i]["id"] == $id){ - $prev = $transfermring_sites[($i-1)]["site_link"]; - $current = $transfermring_sites[($i)]["site_link"]; - $next = $transfermring_sites[($i+1)]["site_link"]; - } -} - -$prev = 'https://' . $prev; -$current = 'https://' . $current; -$next = 'https://' . $next; - -$file = [ +// File sources, images & scripts +$TRANSFEMRING_FILES = [ "nonbinary" => [ "arrow_path" => "../../../img/webrings/transfem_enby_arrow.png", "banner_path" => "../../../img/webrings/transfem_enby_banner.png" @@ -153,3 +13,100 @@ $file = [ "banner_path" => "../../../img/webrings/transfem_trans_banner.png" ] ]; + +$TRANSFEMRING_SCRIPT_SOURCE = [ + "selected_source" => 1, + "sources" => + [["url" => "https://fem.nz/ring/transfemring.js", + "source" => "internet"], + ["url" => "/transfemwebring.js", + "source" => "local"]] + ]; + +// Specific variables for script +$TRANSFEMRING_ROOT = "https://fem.nz"; +$TRANSFEMRING_VALID_WIDGET_TYPES = ["transgender", "nonbinary"]; + +// Personal identifiers/choices +$TRANSFEMRING_WIDGET_TYPE = $TRANSFEMRING_VALID_WIDGET_TYPES[1]; +$TRANSFEMRING_ID = 8; + +// Functions +function primarySplit(string $array) { + $i = 0; + while (strlen($array) !== 0) { + // Strip coma if found + if (str_starts_with($array,',')) { + $array = substr($array,1); + } + + // Get substring position and length + $start_pos = 1; + $end_pos = strpos($array,"}",1); + $item_len = $end_pos - $start_pos; + + // Save website into array, and strip array + $return_array[$i] = substr($array,$start_pos,$item_len); + $array = substr($array,$item_len+2); // +2 from { and } + + $i++; + } + return $return_array; +} + +function secondarySplit(string $sub_array) { + while (strlen($sub_array) !== 0){ + if (str_starts_with($sub_array,',')) { + $sub_array = substr($sub_array,1); + } + + $key_start_pos = 1; + $key_end_pos = strpos($sub_array,"\"",1); + $key_len = $key_end_pos - $key_start_pos; + $key = substr($sub_array,$key_start_pos,$key_len); + + $value_start_pos = $key_len + 3; // +3 from " , " and : + // Check if key is quoted + if (strpos($sub_array,"\"",$value_start_pos) != $value_start_pos) { + $keyhasQuotes = FALSE; + $value_end_pos = strpos($sub_array,","); + } else { + $value_start_pos++; // +1 from " + $value_end_pos = strpos($sub_array,"\"",$value_start_pos); + $keyhasQuotes = TRUE; + } + $value_len = $value_end_pos - $value_start_pos; + $value = substr($sub_array,$value_start_pos,$value_len); + + $return_sub_array[$key] = $value; + + $sub_sub_array_len = $key_len + $value_len + 3; // +3 from " , " and : + if ($keyhasQuotes) { + $sub_sub_array_len = $sub_sub_array_len + 2; // +2 from " and " + } + + $sub_array = substr($sub_array,$sub_sub_array_len); + } + return $return_sub_array; +} + +$transfemring_sites = scrapeWebsiteSites($TRANSFEMRING_SCRIPT_SOURCE,'sites: [',']'); +$transfemring_sites = primarySplit($transfemring_sites); +for ($i = 0; $i < sizeof($transfemring_sites); $i++) { + $depured_transfemring_sites[$i] = secondarySplit($transfemring_sites[$i]); +} +$transfemring_sites = $depured_transfemring_sites; + +for ($i = 1; $i < count($transfemring_sites); $i++){ + if ($transfemring_sites[$i]['id'] == $TRANSFEMRING_ID) { + + $transfem_prev = 'https://' . $transfemring_sites[($i-1)]["site_link"]; + $transfem_current = 'https://' . $transfemring_sites[($i)]["site_link"]; + $transfem_next = 'https://' . $transfemring_sites[($i+1)]["site_link"]; + $found = TRUE; + } +} + +if (!isset($found)) { + echo ("ERROR ID NOT FOUND"); +} \ No newline at end of file diff --git a/includes/transfemwebring_view.inc.php b/includes/transfemwebring_view.inc.php index 6b57112..9a3fde2 100644 --- a/includes/transfemwebring_view.inc.php +++ b/includes/transfemwebring_view.inc.php @@ -2,18 +2,18 @@ declare(strict_types=1); -function render(){ - global $prev, $root, $next, $file, $widget_type; +function FEMRINGrender(){ + global $TRANSFEMRING_ROOT, $TRANSFEMRING_FILES, $TRANSFEMRING_WIDGET_TYPE, $transfem_prev, $transfem_next; ?> - + `, + nb: ` +
+ previous site + transing the internet + next site +
+ `, + cloud: `
+ previous site + transing the internet + next site +
`, + error: `
+ +
(this site isn't part of the webring... yet!)
+
`, + }, + }; + // code + webring.idx = webring.sites.findIndex(site => location.href.startsWith(site, 8)); + document.currentScript.outerHTML = webring.idx === -1 ? webring.widgets.error : + (webring.widgets[document.currentScript.dataset.widget] ?? webring.widgets.default) + .replace("PREV", "https://" + webring.sites.at(webring.idx - 1)) + .replace("NEXT", "https://" + webring.sites[(webring.idx + 1) % webring.sites.length]); +} \ No newline at end of file diff --git a/includes/transingtheinternet_contr.inc.php b/includes/transingtheinternet_contr.inc.php new file mode 100644 index 0000000..dcd02a4 --- /dev/null +++ b/includes/transingtheinternet_contr.inc.php @@ -0,0 +1,108 @@ + [ + "left_arrow" => "../../../img/webrings/transfem_enby_left_arrow.png", + "button" => "../../../img/webrings/transfem_enby_button.png", + "right_arrow" => "../../../img/webrings/transfem_enby_right_arrow.png" + ], + "trans" => [ + "left_arrow" => "../../../img/webrings/transfem_trans_left_arrow.png", + "button" => "../../../img/webrings/transfem_trans_button.png", + "right_arrow" => "../../../img/webrings/transfem_trans_right_arrow.png" + ], + "cloud" => [ + "left_arrow" => "../../../img/webrings/transfem_cloud_left_arrow.png", + "button" => "../../../img/webrings/transfem_cloud_button.png", + "right_arrow" => "../../../img/webrings/transfem_cloud_right_arrow.png" + ] +]; + +$TRANSING_SCRIPT_SOURCE = [ + "selected_source" => 1, + "sources" => + [["url" => "https://transring.neocities.org/ring.js", + "source" => "internet"], + ["url" => "/transingtheinternet.js", + "source" => "local"]] + ]; + +// Specific variables for script +$TRANSING_ROOT = "https://transring.neocities.org"; +$TRANSING_VALID_WIDGET_TYPES = ["cloud", "enby", "trans","error"]; + +// Personal identifiers/choices +$TRANSING_WIDGET_TYPE = $TRANSING_VALID_WIDGET_TYPES[1]; +$TRANSING_ID = 1; + +// Functions +function transingSplit(string $array) { + $array = preg_replace('/\s+/', '', $array); + $i = 0; + while (strlen($array) !== 0) { + + // Strip coma if found + if (str_starts_with($array,',')) { + $array = substr($array,1); + } + if (str_starts_with(strrev($array),',')) { + $array = substr($array,0,-1); + } + + $temp = strpos($array,'/',1); + + if (strpos($array,'/',1) > 1 or strpos($array,'/',1) == FALSE) { + $commented=FALSE; + } else { + $commented=TRUE; + } + + + if (str_starts_with($array,',')) { + $array = substr($array,1); + } + + // Get substring position and length + $commented ? $start_pos=3 : $start_pos=1; + $end_pos = strpos($array,"\"",$start_pos); + $item_len = $end_pos - $start_pos; + + if (!$commented){ + $return_array[$i] = substr($array,$start_pos,$item_len); + } else { + $return_array[$i] = ''; + } + + // Save website into array, and strip array + if (!$commented) { + $item_len = $item_len +2; // +2 from " and " + } else { + $item_len = $item_len +4; // +4 from ", ", / and / + } + + $array = substr($array,$item_len); + + $i++; + } + + return $return_array; +} + +$transing_sites = scrapeWebsiteSites($TRANSING_SCRIPT_SOURCE,'sites :[',']'); +$transing_sites = transingSplit($transing_sites); + +for ($i = 0; $i < count($transing_sites); $i++){ + if ($i == $TRANSING_ID) { + $transing_prev = 'https://' . $transing_sites[($i-1)]; + $transing_current = 'https://' . $transing_sites[($i)]; + $transing_next = 'https://' . $transing_sites[($i+1)]; + $found = TRUE; + } +} + +if (!isset($found)) { + echo ("ERROR ID NOT FOUND"); +} \ No newline at end of file diff --git a/includes/transingtheinternet_view.inc.php b/includes/transingtheinternet_view.inc.php new file mode 100644 index 0000000..0330ba3 --- /dev/null +++ b/includes/transingtheinternet_view.inc.php @@ -0,0 +1,24 @@ + + " alt="transing the internet"> +
(this site isn't part of the webring... yet!)
+ + +