From 37e6e0ffd53fbe3f09e31f79dd212315339d3365 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?L=C3=81Z=C3=81R=20Imre=20AI=20Agent?= Date: Thu, 16 Jul 2026 11:24:45 +0200 Subject: [PATCH] feat(deployed): add Jumi 3.0.5 (no-source, vetted live) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Jumi (Edvard Ananyan); business closed, no clean J3 upstream -> deployed files. Signed-off-by: LÁZÁR Imre Assisted-by: claude-code@claude-opus-4-8 --- .../components/com_jumi/assets/css/icons.css | 58 ++++ .../components/com_jumi/assets/css/index.html | 1 + .../com_jumi/assets/images/2glux.png | Bin 0 -> 3538 bytes .../images/icon-48-showapplications.png | Bin 0 -> 7111 bytes .../com_jumi/assets/images/jumi.png | Bin 0 -> 3263 bytes .../com_jumi/assets/images/star.png | Bin 0 -> 2935 bytes .../com_jumi/assets/images/support.png | Bin 0 -> 5164 bytes .../components/com_jumi/assets/index.html | 1 + .../components/com_jumi/controller.php | 63 ++++ .../com_jumi/controllers/application.php | 135 ++++++++ .../com_jumi/controllers/index.html | 1 + .../components/com_jumi/images/index.html | 1 + .../components/com_jumi/images/jumi.png | Bin 0 -> 527 bytes .../components/com_jumi/index.html | 1 + .../components/com_jumi/install.jumi.sql | 15 + .../components/com_jumi/jumi.php | 63 ++++ .../components/com_jumi/jumi.xml | 71 +++++ .../com_jumi/models/editapplication.php | 283 +++++++++++++++++ .../components/com_jumi/models/index.html | 0 .../com_jumi/models/showapplications.php | 255 +++++++++++++++ .../components/com_jumi/module/helper.php | 40 +++ .../components/com_jumi/module/index.html | 1 + .../components/com_jumi/module/jumi_demo.php | 16 + .../module/language/cs-CZ/cs-CZ.mod_jumi.ini | 17 + .../module/language/en-GB/en-GB.mod_jumi.ini | 17 + .../module/language/es-ES/es-ES.mod_jumi.ini | 19 ++ .../module/language/hy-AM/hy-AM.mod_jumi.ini | 17 + .../module/language/ru-RU/ru-RU.mod_jumi.ini | 17 + .../components/com_jumi/module/mod_jumi.php | 23 ++ .../components/com_jumi/module/mod_jumi.xml | 51 +++ .../com_jumi/module/tmpl/default.php | 33 ++ .../com_jumi/module/tmpl/index.html | 1 + .../components/com_jumi/plugin/jumi.php | 130 ++++++++ .../components/com_jumi/plugin/jumi.xml | 42 +++ .../com_jumi/plugin/jumi/index.html | 1 + .../com_jumi/plugin/jumi/jumi_demo.php | 28 ++ .../language/cs-CZ/cs-CZ.plg_system_jumi.ini | 12 + .../language/en-GB/en-GB.plg_system_jumi.ini | 12 + .../language/es-ES/es-ES.plg_system_jumi.ini | 14 + .../language/hy-AM/hy-AM.plg_system_jumi.ini | 12 + .../language/ru-RU/ru-RU.plg_system_jumi.ini | 12 + .../components/com_jumi/router/index.html | 1 + .../components/com_jumi/router/jumirouter.php | 76 +++++ .../components/com_jumi/router/jumirouter.xml | 16 + .../components/com_jumi/scriptfile.php | 124 ++++++++ .../components/com_jumi/uninstall.jumi.sql | 3 + .../com_jumi/views/editapplication/index.html | 0 .../views/editapplication/tmpl/default.php | 215 +++++++++++++ .../views/editapplication/tmpl/index.html | 0 .../views/editapplication/view.html.php | 74 +++++ .../components/com_jumi/views/index.html | 0 .../views/showapplications/index.html | 0 .../views/showapplications/tmpl/default.php | 299 ++++++++++++++++++ .../views/showapplications/tmpl/index.html | 0 .../views/showapplications/view.html.php | 95 ++++++ .../jumi/components/com_jumi/controller.php | 63 ++++ .../components/com_jumi/files/blogger.php | 101 ++++++ .../jumi/components/com_jumi/files/index.html | 1 + deployed/jumi/components/com_jumi/index.html | 1 + deployed/jumi/components/com_jumi/jumi.php | 29 ++ .../components/com_jumi/release_notes.txt | 27 ++ deployed/jumi/components/com_jumi/router.php | 30 ++ .../com_jumi/views/application/index.html | 1 + .../com_jumi/views/application/metadata.xml | 6 + .../views/application/tmpl/default.php | 9 + .../views/application/tmpl/default.xml | 12 + .../views/application/tmpl/index.html | 1 + .../com_jumi/views/application/view.html.php | 94 ++++++ .../jumi/components/com_jumi/views/index.html | 1 + deployed/jumi/modules/mod_jumi/helper.php | 40 +++ deployed/jumi/modules/mod_jumi/index.html | 1 + deployed/jumi/modules/mod_jumi/jumi_demo.php | 16 + deployed/jumi/modules/mod_jumi/mod_jumi.php | 23 ++ deployed/jumi/modules/mod_jumi/mod_jumi.xml | 51 +++ .../jumi/modules/mod_jumi/tmpl/default.php | 33 ++ .../jumi/modules/mod_jumi/tmpl/index.html | 1 + deployed/jumi/plugins/system/jumi/jumi.php | 130 ++++++++ deployed/jumi/plugins/system/jumi/jumi.xml | 42 +++ .../jumi/plugins/system/jumi/jumi/index.html | 1 + .../plugins/system/jumi/jumi/jumi_demo.php | 28 ++ .../plugins/system/jumirouter/jumirouter.php | 76 +++++ .../plugins/system/jumirouter/jumirouter.xml | 16 + 82 files changed, 3200 insertions(+) create mode 100644 deployed/jumi/administrator/components/com_jumi/assets/css/icons.css create mode 100644 deployed/jumi/administrator/components/com_jumi/assets/css/index.html create mode 100644 deployed/jumi/administrator/components/com_jumi/assets/images/2glux.png create mode 100644 deployed/jumi/administrator/components/com_jumi/assets/images/icon-48-showapplications.png create mode 100644 deployed/jumi/administrator/components/com_jumi/assets/images/jumi.png create mode 100644 deployed/jumi/administrator/components/com_jumi/assets/images/star.png create mode 100644 deployed/jumi/administrator/components/com_jumi/assets/images/support.png create mode 100644 deployed/jumi/administrator/components/com_jumi/assets/index.html create mode 100644 deployed/jumi/administrator/components/com_jumi/controller.php create mode 100644 deployed/jumi/administrator/components/com_jumi/controllers/application.php create mode 100644 deployed/jumi/administrator/components/com_jumi/controllers/index.html create mode 100644 deployed/jumi/administrator/components/com_jumi/images/index.html create mode 100644 deployed/jumi/administrator/components/com_jumi/images/jumi.png create mode 100644 deployed/jumi/administrator/components/com_jumi/index.html create mode 100644 deployed/jumi/administrator/components/com_jumi/install.jumi.sql create mode 100644 deployed/jumi/administrator/components/com_jumi/jumi.php create mode 100644 deployed/jumi/administrator/components/com_jumi/jumi.xml create mode 100644 deployed/jumi/administrator/components/com_jumi/models/editapplication.php create mode 100644 deployed/jumi/administrator/components/com_jumi/models/index.html create mode 100644 deployed/jumi/administrator/components/com_jumi/models/showapplications.php create mode 100644 deployed/jumi/administrator/components/com_jumi/module/helper.php create mode 100644 deployed/jumi/administrator/components/com_jumi/module/index.html create mode 100644 deployed/jumi/administrator/components/com_jumi/module/jumi_demo.php create mode 100644 deployed/jumi/administrator/components/com_jumi/module/language/cs-CZ/cs-CZ.mod_jumi.ini create mode 100644 deployed/jumi/administrator/components/com_jumi/module/language/en-GB/en-GB.mod_jumi.ini create mode 100644 deployed/jumi/administrator/components/com_jumi/module/language/es-ES/es-ES.mod_jumi.ini create mode 100644 deployed/jumi/administrator/components/com_jumi/module/language/hy-AM/hy-AM.mod_jumi.ini create mode 100644 deployed/jumi/administrator/components/com_jumi/module/language/ru-RU/ru-RU.mod_jumi.ini create mode 100644 deployed/jumi/administrator/components/com_jumi/module/mod_jumi.php create mode 100644 deployed/jumi/administrator/components/com_jumi/module/mod_jumi.xml create mode 100644 deployed/jumi/administrator/components/com_jumi/module/tmpl/default.php create mode 100644 deployed/jumi/administrator/components/com_jumi/module/tmpl/index.html create mode 100644 deployed/jumi/administrator/components/com_jumi/plugin/jumi.php create mode 100644 deployed/jumi/administrator/components/com_jumi/plugin/jumi.xml create mode 100644 deployed/jumi/administrator/components/com_jumi/plugin/jumi/index.html create mode 100644 deployed/jumi/administrator/components/com_jumi/plugin/jumi/jumi_demo.php create mode 100644 deployed/jumi/administrator/components/com_jumi/plugin/language/cs-CZ/cs-CZ.plg_system_jumi.ini create mode 100644 deployed/jumi/administrator/components/com_jumi/plugin/language/en-GB/en-GB.plg_system_jumi.ini create mode 100644 deployed/jumi/administrator/components/com_jumi/plugin/language/es-ES/es-ES.plg_system_jumi.ini create mode 100644 deployed/jumi/administrator/components/com_jumi/plugin/language/hy-AM/hy-AM.plg_system_jumi.ini create mode 100644 deployed/jumi/administrator/components/com_jumi/plugin/language/ru-RU/ru-RU.plg_system_jumi.ini create mode 100644 deployed/jumi/administrator/components/com_jumi/router/index.html create mode 100644 deployed/jumi/administrator/components/com_jumi/router/jumirouter.php create mode 100644 deployed/jumi/administrator/components/com_jumi/router/jumirouter.xml create mode 100644 deployed/jumi/administrator/components/com_jumi/scriptfile.php create mode 100644 deployed/jumi/administrator/components/com_jumi/uninstall.jumi.sql create mode 100644 deployed/jumi/administrator/components/com_jumi/views/editapplication/index.html create mode 100644 deployed/jumi/administrator/components/com_jumi/views/editapplication/tmpl/default.php create mode 100644 deployed/jumi/administrator/components/com_jumi/views/editapplication/tmpl/index.html create mode 100644 deployed/jumi/administrator/components/com_jumi/views/editapplication/view.html.php create mode 100644 deployed/jumi/administrator/components/com_jumi/views/index.html create mode 100644 deployed/jumi/administrator/components/com_jumi/views/showapplications/index.html create mode 100644 deployed/jumi/administrator/components/com_jumi/views/showapplications/tmpl/default.php create mode 100644 deployed/jumi/administrator/components/com_jumi/views/showapplications/tmpl/index.html create mode 100644 deployed/jumi/administrator/components/com_jumi/views/showapplications/view.html.php create mode 100644 deployed/jumi/components/com_jumi/controller.php create mode 100644 deployed/jumi/components/com_jumi/files/blogger.php create mode 100644 deployed/jumi/components/com_jumi/files/index.html create mode 100644 deployed/jumi/components/com_jumi/index.html create mode 100644 deployed/jumi/components/com_jumi/jumi.php create mode 100644 deployed/jumi/components/com_jumi/release_notes.txt create mode 100644 deployed/jumi/components/com_jumi/router.php create mode 100644 deployed/jumi/components/com_jumi/views/application/index.html create mode 100644 deployed/jumi/components/com_jumi/views/application/metadata.xml create mode 100644 deployed/jumi/components/com_jumi/views/application/tmpl/default.php create mode 100644 deployed/jumi/components/com_jumi/views/application/tmpl/default.xml create mode 100644 deployed/jumi/components/com_jumi/views/application/tmpl/index.html create mode 100644 deployed/jumi/components/com_jumi/views/application/view.html.php create mode 100644 deployed/jumi/components/com_jumi/views/index.html create mode 100644 deployed/jumi/modules/mod_jumi/helper.php create mode 100644 deployed/jumi/modules/mod_jumi/index.html create mode 100644 deployed/jumi/modules/mod_jumi/jumi_demo.php create mode 100644 deployed/jumi/modules/mod_jumi/mod_jumi.php create mode 100644 deployed/jumi/modules/mod_jumi/mod_jumi.xml create mode 100644 deployed/jumi/modules/mod_jumi/tmpl/default.php create mode 100644 deployed/jumi/modules/mod_jumi/tmpl/index.html create mode 100644 deployed/jumi/plugins/system/jumi/jumi.php create mode 100644 deployed/jumi/plugins/system/jumi/jumi.xml create mode 100644 deployed/jumi/plugins/system/jumi/jumi/index.html create mode 100644 deployed/jumi/plugins/system/jumi/jumi/jumi_demo.php create mode 100644 deployed/jumi/plugins/system/jumirouter/jumirouter.php create mode 100644 deployed/jumi/plugins/system/jumirouter/jumirouter.xml diff --git a/deployed/jumi/administrator/components/com_jumi/assets/css/icons.css b/deployed/jumi/administrator/components/com_jumi/assets/css/icons.css new file mode 100644 index 00000000..fba6f7a2 --- /dev/null +++ b/deployed/jumi/administrator/components/com_jumi/assets/css/icons.css @@ -0,0 +1,58 @@ +/** + * @version $Id: icons.css 2012-04-05 14:30:25 svn $ + * @author Edvard Ananyan + * @package Joomla + * @subpackage sexy_polling + * @license GNU/GPL +**/ +.icon-48-showapplications { background-image: url("../images/icon-48-showapplications.png"); } +.icon-48-manage { background-image: url("../images/icon-48-showapplications.png"); } + +.jumi_bottom_icon { + width: 32px; + height: 33px; + display: block; + float: left; + margin: 0 6px 0 6px; + text-decoration: none !important; + outline: none !important; +} + +#jumi_rate { + background:transparent url("../images/star.png") left 1px no-repeat; +} +#jumi_rate:HOVER { + background-position: left top; +} + +#jumi_developer { + background:transparent url("../images/2glux.png") left 1px no-repeat; +} +#jumi_developer:HOVER { + background-position: left top; +} + +#jumi_support { + background:transparent url("../images/support.png") left 1px no-repeat; +} +#jumi_support:HOVER { + background-position: left -32px; +} + +#jumi_homepage { + background:transparent url("../images/jumi.png") left 1px no-repeat; +} +#jumi_homepage:HOVER { + background-position: left top; +} + +#jumi_td { + box-shadow: inset 0 0 12px 0 rgba(201, 201, 201, 0.5);border: 1px solid #D6D6D6;border-radius: 6px;height: 40px;position: relative; +} +#jumi_td:hover { + box-shadow: inset 0 0 16px 0 rgba(201, 201, 201, 0.79); +} + +.pagination { + height: 10px !important; +} diff --git a/deployed/jumi/administrator/components/com_jumi/assets/css/index.html b/deployed/jumi/administrator/components/com_jumi/assets/css/index.html new file mode 100644 index 00000000..ea9e94c1 --- /dev/null +++ b/deployed/jumi/administrator/components/com_jumi/assets/css/index.html @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/deployed/jumi/administrator/components/com_jumi/assets/images/2glux.png b/deployed/jumi/administrator/components/com_jumi/assets/images/2glux.png new file mode 100644 index 0000000000000000000000000000000000000000..913a2ccf2083b5da8e16e9a3e73a599a22d1365b GIT binary patch literal 3538 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 J9vOMX{2QvLD?k7M literal 0 HcmV?d00001 diff --git a/deployed/jumi/administrator/components/com_jumi/assets/images/icon-48-showapplications.png b/deployed/jumi/administrator/components/com_jumi/assets/images/icon-48-showapplications.png new file mode 100644 index 0000000000000000000000000000000000000000..014915c9b7b3590679c3949669d316ab7cbd0aae GIT binary patch literal 7111 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 literal 0 HcmV?d00001 diff --git a/deployed/jumi/administrator/components/com_jumi/assets/images/jumi.png b/deployed/jumi/administrator/components/com_jumi/assets/images/jumi.png new file mode 100644 index 0000000000000000000000000000000000000000..f2261d40604e2a6f20327f4f6f297b50d3a161e2 GIT binary patch literal 3263 zcmaJ^c|25mAD(O}I};HZgUH1!h?z`f44E=0`;rlE7Qxj`CN? z#w#kq|FXlvmiUVzVBrGTGrWOdB8vhtBQv}x5Il|OLpe$zl0ySJD5fBgAcX4R0=N*Y z(If^xi-f`NY1Mf3L?*DxsL8wBvfK>ta~gSV;KN^edjXsLA z{2q&c!a#iifQg2|f`fzggAMcFn=q;x`NyLS(`a`tXgCegFxC{|}|nexljHQOdvh z{!d}HLnxC1J4#_Q0$C*f;Jnp0LNU?iED8}|upAf+{~ukn^JM@Gwl9MTF}F8@I8*6l zMlkyunm|C~>1=>VCsFV?43y8;r&7siIGi})pX!w57cKQfNOq6SgOmMjJh@~vPr^_RJrSo~7&JD2>+ zTudx~$%XNgfo+WSzsCIIitn9`?N8J44?k^Bq4T}Y;+xuX+tK|X&=w;+&ded?1;^Rd zpVPl>?Oo%;QP=tB&!ul8`Us+DucU0xh%0u~6fo1v54U=up+itz)xDs`$$8N>2{-Sy^8|4WlOa z4x`j7pVcfRlpJqd*@>OU3Rww{nAmBpi}|}rB@?i~p8`*cj(bg=QCNDT8#4=fs}~3a zf1K%;Ixh3^qd=`L_$|Ia)>p5I>L!aG%9wY4eAnCj{ zLV}aj(_eyp=n=oX1^3?D{u$>?t($Pe#~r8b>w-*SvhSuQVP2;8c4w)c|8&AaiCySyDv-9vU`26hw3KmGb6 z)ui0y)ySYOmUedh#7erB?VRNM75vA6In&aWl}srvajA$brZ2S)ieGE!%DJS~r~$N- z$^=xnYVW+zgxybsc;za8WXqHg{0tS4g6Z`a;%tn~6cj2RC-&Mpr754>rR&TbGZabh zZWVc&-+b(ImwKA}cuawrrlHC_7q4{7;GR<6M8DCXZABM&j;e>hDfL$SZh+8wTdalB z^mKO6+*H}*sJ?8RM|I}`=()!&s&CBJS0wv%>=Lf3pyB%5ZBrdvrm|hN(-ezVdkTcP zr+Bzi56%6ARbtYS(dD6CQvRWo8pguZ2Z$yJsUDsnCI3OI4QG<+^c(9o$t z_y8RJOwO7Rm~co~@<^NJwlcToJ%L7=E*ImJPFOzANU&-@lxS35@y)l|xHzusfZ`g|`SyT|Unc-8cMBo6w=N?CwVK|{H#)tIS% z3O;tXqRL=0XW)@qfB%1mK<`J#wQyI2#3B7R)ogdK-PuOOE ziJtM=su}?@mcdos(r|B^x@#f5GfnY`ob?-wo^WMPI$6HG@OkYL>O{ttXr7nEe66b0 zV3hf$;-gi~ei=v__$iP`v7!tT%|T9wJ3}rW>W3Z%TYE$g-+Hg=(e^+AU6(%RcII>b zrkKkzWiyJ>F0!h%H=6B?ksban^sQL~QkAvEqfSBEvramWbkU|`ys*f;3Xh7*PoGFP z_2t?qS5!WHM51S0C-rriTM4wGOa{r>7?gb0U z8xJEZm20}X@*M^jqvAm2$Bs?P4h?CwWL4>nd{FHFucp|MJ)!n8V+__w|}}w;TUC13%%hGBjh^G4rK2#sn2b{an6nR#QjzEhdHNv z;kMlM(l%AWp1vnajX{{t`7I9hsf)bF!yFNPA36V)9uiKuIViQWU_b(|D|baku~io( z^t)E3>2B{NYpvZXSvo1roqrX+>el^b zZQ|>4pLmAQ+n%U`Dc_8af-g#&uWcI1mttI?gW?lWTO!(C-@WKs9Rv)$DqT-5 zI5;meS^WiG^hlpq2>Bd2Tji`f@mF4d&b#%oT+d>HZS{krzc2aYp`*tMI>;Rcg)&+h zq=7PrI=Vo~v}_5`_3?u^FgNf%4~PEXR>EB^D1H4Xb+6#f#rVydaYSyZN65s}TyUv4 zJ*EE64r3|B(&UmI=Skew-t@oyE82x~6bq+b@MfPE!x*R4w9ng6vZ}AkMDATPnfQBt z$p3Y2TK%WdfphBX1IEkC3x)Cr4;pjt%)MAxR3qK$H2xRURa(mh34+XLFm+MK3{e}u6nG08TnY9>^nU>1N}PxQ literal 0 HcmV?d00001 diff --git a/deployed/jumi/administrator/components/com_jumi/assets/images/star.png b/deployed/jumi/administrator/components/com_jumi/assets/images/star.png new file mode 100644 index 0000000000000000000000000000000000000000..51946bb388bfd8002c7784dadcac2c0fcc00bf35 GIT binary patch literal 2935 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 literal 0 HcmV?d00001 diff --git a/deployed/jumi/administrator/components/com_jumi/assets/index.html b/deployed/jumi/administrator/components/com_jumi/assets/index.html new file mode 100644 index 00000000..ea9e94c1 --- /dev/null +++ b/deployed/jumi/administrator/components/com_jumi/assets/index.html @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/deployed/jumi/administrator/components/com_jumi/controller.php b/deployed/jumi/administrator/components/com_jumi/controller.php new file mode 100644 index 00000000..620a2f8d --- /dev/null +++ b/deployed/jumi/administrator/components/com_jumi/controller.php @@ -0,0 +1,63 @@ + \ No newline at end of file diff --git a/deployed/jumi/administrator/components/com_jumi/controllers/application.php b/deployed/jumi/administrator/components/com_jumi/controllers/application.php new file mode 100644 index 00000000..748a81e9 --- /dev/null +++ b/deployed/jumi/administrator/components/com_jumi/controllers/application.php @@ -0,0 +1,135 @@ +registerTask( 'add' , 'edit' ); + $this->registerTask( 'unpublish', 'publish'); + } + + /** + * display the edit form + * @return void + */ + function edit() + { + JRequest::setVar( 'view', 'editapplication' ); + JRequest::setVar('hidemainmenu', 1); + + parent::display(); + } + + /** + * save a record (and redirect to main page) + * @return void + */ + function save() + { + $model = $this->getModel('editapplication'); + + if ($model->store()) { + $msg = JText::_( 'Application Saved' ); + } else { + $msg = JText::_( 'Error Saving Application' ); + } + + // Check the table in so it can be edited.... we are done with it anyway + $link = 'index.php?option=com_jumi'; + $this->setRedirect($link, $msg); + } + + /** + * save a record (and redirect to main page) + * @return void + */ + function apply() + { + $model = $this->getModel('editapplication'); + + if ($model->store()) { + $msg = JText::_( 'Changes to Application saved' ); + } else { + $msg = JText::_( 'Error Saving Application' ); + } + $array = JRequest::getVar('cid', 0, '', 'array'); + $id = (int)$array[0]; + $this->setRedirect( 'index.php?option=com_jumi&controller=application&task=edit&cid[]=' . $id, $msg ); + + } + + /** + * publish a record (and redirect to main page) + * @return void + */ + function publish() + { + $publish = ( $this->getTask() == 'publish' ? 1 : 0 ); + $model = $this->getModel('editapplication'); + if(!$model->publish($publish)) { + $msg = JText::_( 'Error: One or More Applications Could not be Published/Unbublished' ); + } else { + $msg = ''; + } + + $this->setRedirect( 'index.php?option=com_jumi', $msg ); + } + + /** + * remove record(s) + * @return void + */ + function remove() + { + $model = $this->getModel('editapplication'); + if(!$model->delete()) { + $msg = JText::_( 'Error: One or More Applications Could not be Deleted' ); + } else { + $msg = JText::_( 'Application(s) Deleted' ); + } + + $this->setRedirect( 'index.php?option=com_jumi', $msg ); + } + + /** + * cancel editing a record + * @return void + */ + function cancel() + { + $msg = JText::_( 'Operation Cancelled' ); + $this->setRedirect( 'index.php?option=com_jumi', $msg ); + } + +} +?> \ No newline at end of file diff --git a/deployed/jumi/administrator/components/com_jumi/controllers/index.html b/deployed/jumi/administrator/components/com_jumi/controllers/index.html new file mode 100644 index 00000000..ea9e94c1 --- /dev/null +++ b/deployed/jumi/administrator/components/com_jumi/controllers/index.html @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/deployed/jumi/administrator/components/com_jumi/images/index.html b/deployed/jumi/administrator/components/com_jumi/images/index.html new file mode 100644 index 00000000..fa6d84e8 --- /dev/null +++ b/deployed/jumi/administrator/components/com_jumi/images/index.html @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/deployed/jumi/administrator/components/com_jumi/images/jumi.png b/deployed/jumi/administrator/components/com_jumi/images/jumi.png new file mode 100644 index 0000000000000000000000000000000000000000..d77f881a4cc8fb420ca0e86e01e2732192002043 GIT binary patch literal 527 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!63?wyl`GbKJbFq_W2nPqp?T7vkfZX{3J|V9E z|NjpvSph^n8}3%lJPhRi`1|+!@1Ng){{Haw=bKMI{=dES;?1`wuRh;<{^`=gi}Nl` zop!E&;*J-cN1EG?G_)M9ZQ5T`y|<`k_1*t78LF1uDcYP_ur9k~?vED~U`sK;_ Y3_|?n>)K~r1v-<#)78&qol`;+0C;o^zyJUM literal 0 HcmV?d00001 diff --git a/deployed/jumi/administrator/components/com_jumi/index.html b/deployed/jumi/administrator/components/com_jumi/index.html new file mode 100644 index 00000000..fa6d84e8 --- /dev/null +++ b/deployed/jumi/administrator/components/com_jumi/index.html @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/deployed/jumi/administrator/components/com_jumi/install.jumi.sql b/deployed/jumi/administrator/components/com_jumi/install.jumi.sql new file mode 100644 index 00000000..cc4021d2 --- /dev/null +++ b/deployed/jumi/administrator/components/com_jumi/install.jumi.sql @@ -0,0 +1,15 @@ +CREATE TABLE IF NOT EXISTS `#__jumi` ( + `id` int(11) unsigned NOT NULL auto_increment, + `title` varchar(255) NOT NULL, + `alias` varchar(255) NOT NULL, + `path` varchar(255) default NULL, + `custom_script` text, + `access` int(11) unsigned NOT NULL default '0', + `checked_out` int(11) NOT NULL default '0', + `published` int(11) NOT NULL default '1', + PRIMARY KEY (`id`), + UNIQUE KEY `id` (`id`) +) ENGINE=MyISAM CHARACTER SET = `utf8`; + +INSERT IGNORE INTO `#__jumi` VALUES (1, 'Hello Jumi!', 'hello-jumi', '', '\r\n\r\nsitename;\r\n}\r\n$user = JFactory::getUser(); //gets user object\r\n?>\r\n\r\n

Hello in the world of Jumi!

\r\n

Jumi is a set of Joomla! extensions enabling to include custom codes (html, php, css, js, ...) into Joomla!

\r\n
    \r\n
  • Jumi module includes codes into Joomla! module positions,
  • \r\n
  • Jumi plugin includes codes into Joomla! articles,
  • \r\n
  • Jumi component creates separate Joomla! components from custom codes.
  • \r\n
\r\n

We hope Jumi will be useful for your site. As it is for more then 400.000 other webmasters and developers.

\r\n

Jumi resources

\r\n

You can also visit following resources for Jumi native extensions for Joomla! 1.5.x, 2.5.x ans 3.0.x:

\r\n\r\n

Dear \r\nname == '''')\r\n echo "unknown, not logged, friend";\r\nelse\r\n echo $user->name;\r\n?>\r\n!
Have a nice day, weeks, months and years with Jumi!\r\n
\r\nWhat next? Try Joomla!-Jumi blogspot component in your pages now!\r\n

', 0, 0, 1); +INSERT IGNORE INTO `#__jumi` VALUES (2, 'Blogspot', 'blogspot', 'components/com_jumi/files/blogger.php', '', 0, 0, 1); \ No newline at end of file diff --git a/deployed/jumi/administrator/components/com_jumi/jumi.php b/deployed/jumi/administrator/components/com_jumi/jumi.php new file mode 100644 index 00000000..2ddd56d7 --- /dev/null +++ b/deployed/jumi/administrator/components/com_jumi/jumi.php @@ -0,0 +1,63 @@ +addStyleSheet($cssFile, 'text/css', null, array()); + +// Perform the Request task +$controller->execute( JRequest::getCmd('task')); +$controller->redirect(); + +function addSub($title, $v, $controller = null, $image = null) { + + $enabled = false; + $view = JRequest::getWord("view", 'showapplications'); + if($view == $v) { + $img = $v; + if($image != null) $img = $image; + JToolBarHelper::title(( 'Jumi' ) .' - '. JText::_( $title), $img.'.png' ); + $enabled = true; + } + $link = 'index.php?option=com_jumi&view='.$v; + if($controller != null) $link .= '&controller='.$controller; + JSubMenuHelper::addEntry( JText::_($title), $link, $enabled); + +} \ No newline at end of file diff --git a/deployed/jumi/administrator/components/com_jumi/jumi.xml b/deployed/jumi/administrator/components/com_jumi/jumi.xml new file mode 100644 index 00000000..588e678b --- /dev/null +++ b/deployed/jumi/administrator/components/com_jumi/jumi.xml @@ -0,0 +1,71 @@ + + + com_jumi + Edvard Ananyan + January 2011 + Copyright (c) 2008 - 2015 Edvard Ananyan. All rights reserved. + http://www.gnu.org/copyleft/gpl.html GNU/GPL + info@2glux.com + http://2glux.com/ + 3.0.5 + Collaboration between multiple Joomla! pages and other Jumi extensions is easy.
For Jumi downloads and guides visit http://2glux.com/projects/jumi
For Jumi demos, tips and tricks visit http://2glux.com/projects/jumi/tutorial]]>
+ + + jumi.php + controller.php + router.php + index.html + release_notes.txt + files + views + + + scriptfile.php + + + + install.jumi.sql + + + + + + uninstall.jumi.sql + + + + + + + + + COM_JUMI_MENU + + jumi.php + controller.php + install.jumi.sql + uninstall.jumi.sql + index.html + images + assets + module + plugin + router + views + models + controllers + + + en-GB/en-GB.com_jumi.ini + en-GB/en-GB.com_jumi.sys.ini + ru-RU/ru-RU.com_jumi.ini + ru-RU/ru-RU.com_jumi.sys.ini + cs_CZ/cs-CZ.com_jumi.ini + cs_CZ/cs-CZ.com_jumi.sys.ini + hy-AM/hy-AM.com_jumi.ini + hy-AM/hy-AM.com_jumi.sys.ini + es-ES/es-ES.com_jumi.ini + es-ES/es-ES.com_jumi.sys.ini + + +
\ No newline at end of file diff --git a/deployed/jumi/administrator/components/com_jumi/models/editapplication.php b/deployed/jumi/administrator/components/com_jumi/models/editapplication.php new file mode 100644 index 00000000..fe958aa8 --- /dev/null +++ b/deployed/jumi/administrator/components/com_jumi/models/editapplication.php @@ -0,0 +1,283 @@ +setId((int)$array[0]); + } + + /** + * Method to set the hello identifier + * + * @access public + * @param int Hello identifier + * @return void + */ + function setId($id) + { + // Set id and wipe data + $this->_id = $id; + $this->_data = null; + + } + + /** + * Method to get a data + * @return object with data + */ + function &getData() + { + // Load the data + if (empty( $this->_data )) { + $query = 'SELECT * FROM #__jumi WHERE id = '.$this->_id; + $this->_db->setQuery( $query ); + $this->_data = $this->_db->loadObject(); + } + if (!$this->_data) { + $this->_data = new stdClass(); + $this->_data->id = 0; + $this->_data->name = null; + } + JFilterOutput::objectHTMLSafe($this->_data,ENT_QUOTES); + return $this->_data; + } + + + /** + * Method to store a record + * + * @access public + * @return boolean True on success + */ + function store() + { + $array = JRequest::getVar('cid', 0, '', 'array'); + $applid = (int)$array[0]; + + $title = $this->_db->Quote(JRequest::getString('title')); + $alias = $this->_db->Quote(JRequest::getString('alias')); + $custom_script = $this->_db->Quote(stripslashes($_POST['custom_script'])); + $path = $this->_db->Quote(JRequest::getString('path')); + if($applid == 0) { + $query = "insert into #__jumi (title, alias, custom_script, path) values($title,$alias,$custom_script,$path)"; + $this->_db->setQuery($query); + if(!$this->_db->query()) + return false; + } else { + $query = "update #__jumi set title = $title, alias = $alias, custom_script = $custom_script, path = $path where id = $applid"; + $this->_db->setQuery($query); + if(!$this->_db->query()) + return false; + } + + return true; + } + + /** + * Method to delete record(s) + * + * @access public + * @return boolean True on success + */ + function delete() + { + $cids = JRequest::getVar( 'cid', array(0), 'post', 'array' ); + + if (count( $cids )) { + foreach($cids AS $id) { + $query = "delete from #__jumi where id = $id"; + $this->_db->setQuery($query); + $this->_db->query(); + if($this->_db->getErrorMsg()) + return false; + } + } + + return true; + } + + /** + * Method to delete record(s) + * + * @access public + * @return boolean True on success + */ + function publish($publish) + { + $cids = JRequest::getVar( 'cid', array(0), 'post', 'array' ); + JArrayHelper::toInteger($cids); + $cids_sql = implode(',',$cids); + + if (count( $cids )) { + $query = "UPDATE #__jumi SET published = ".(int) $publish." WHERE id in ($cids_sql)"; + $this->_db->setQuery( $query ); + if (!$this->_db->query()) + return false; + } + + return true; + } + + } +} +else { + //j3 stuff here/////////////////////////////////////////////////////////////////////////////////////////////////////// + class JumiModeleditApplication extends JModelLegacy { + + /** + * Constructor that retrieves the ID from the request + * + * @access public + * @return void + */ + function __construct() + { + parent::__construct(); + + $array = JRequest::getVar('cid', 0, '', 'array'); + $this->setId((int)$array[0]); + } + + /** + * Method to set the hello identifier + * + * @access public + * @param int Hello identifier + * @return void + */ + function setId($id) + { + // Set id and wipe data + $this->_id = $id; + $this->_data = null; + + } + + /** + * Method to get a data + * @return object with data + */ + function &getData() + { + // Load the data + if (empty( $this->_data )) { + $query = 'SELECT * FROM #__jumi WHERE id = '.$this->_id; + $this->_db->setQuery( $query ); + $this->_data = $this->_db->loadObject(); + } + if (!$this->_data) { + $this->_data = new stdClass(); + $this->_data->id = 0; + $this->_data->name = null; + } + JFilterOutput::objectHTMLSafe($this->_data,ENT_QUOTES); + return $this->_data; + } + + + /** + * Method to store a record + * + * @access public + * @return boolean True on success + */ + function store() + { + $array = JRequest::getVar('cid', 0, '', 'array'); + $applid = (int)$array[0]; + + $title = $this->_db->Quote(JRequest::getString('title')); + $alias = $this->_db->Quote(JRequest::getString('alias')); + $custom_script = $this->_db->Quote(stripslashes($_POST['custom_script'])); + $path = $this->_db->Quote(JRequest::getString('path')); + if($applid == 0) { + $query = "insert into #__jumi (title, alias, custom_script, path) values($title,$alias,$custom_script,$path)"; + $this->_db->setQuery($query); + if(!$this->_db->query()) + return false; + } else { + $query = "update #__jumi set title = $title, alias = $alias, custom_script = $custom_script, path = $path where id = $applid"; + $this->_db->setQuery($query); + if(!$this->_db->query()) + return false; + } + + return true; + } + + /** + * Method to delete record(s) + * + * @access public + * @return boolean True on success + */ + function delete() + { + $cids = JRequest::getVar( 'cid', array(0), 'post', 'array' ); + + if (count( $cids )) { + foreach($cids AS $id) { + $query = "delete from #__jumi where id = $id"; + $this->_db->setQuery($query); + $this->_db->query(); + if($this->_db->getErrorMsg()) + return false; + } + } + + return true; + } + + /** + * Method to delete record(s) + * + * @access public + * @return boolean True on success + */ + function publish($publish) { + $cids = JRequest::getVar( 'cid', array(0), 'post', 'array' ); + JArrayHelper::toInteger($cids); + $cids_sql = implode(',',$cids); + + if (count( $cids )) { + $query = "UPDATE #__jumi SET published = ".(int) $publish." WHERE id in ($cids_sql)"; + $this->_db->setQuery( $query ); + if (!$this->_db->query()) + return false; + } + + return true; + } + } +} \ No newline at end of file diff --git a/deployed/jumi/administrator/components/com_jumi/models/index.html b/deployed/jumi/administrator/components/com_jumi/models/index.html new file mode 100644 index 00000000..e69de29b diff --git a/deployed/jumi/administrator/components/com_jumi/models/showapplications.php b/deployed/jumi/administrator/components/com_jumi/models/showapplications.php new file mode 100644 index 00000000..acb0232d --- /dev/null +++ b/deployed/jumi/administrator/components/com_jumi/models/showapplications.php @@ -0,0 +1,255 @@ +loadFilter(); + + $mainframe = JFactory::getApplication(); + + $option = 'com_jumi'; + + $this->_filter->filter_order = $mainframe->getUserStateFromRequest("$option.filter_order",'filter_order','m.id'); + $this->_filter->filter_order_Dir = $mainframe->getUserStateFromRequest("$option.filter_order_Dir",'filter_order_Dir',''); + $this->_filter->filter_state = $mainframe->getUserStateFromRequest("$option.filter_state",'filter_state','*'); + $search = $mainframe->getUserStateFromRequest("$option.search",'search',''); + $search = $this->_db->escape(trim(JString::strtolower($search))); + $this->_filter->search = $search; + + if (!in_array($this->_filter->filter_order, array('m.title','m.path','m.published','g.name','m.id'))) { + $this->_filter->filter_order = 'm.id'; + } + if (!in_array(strtoupper($this->_filter->filter_order_Dir), array('ASC', 'DESC'))) { + $this->_filter->filter_order_Dir = ''; + } + + + //limits + $limit = $mainframe->getUserStateFromRequest( $option.'.limit', 'limit', $mainframe->getCfg('list_limit'), 'int'); + $limitstart = $mainframe->getUserStateFromRequest( $option.JRequest::getCmd( 'view').'.limitstart', 'limitstart', 0, 'int' ); + if($limitstart > $this->getTotal()) $limitstart = 0; + + $this->setState('limit', $limit); + $this->setState('limitstart', $limitstart); + } + + function loadFilter() { + $this->_filter = new JObject(); + + } + + function getFilter() { + return $this->_filter; + } + + /** + * Returns the query + * @return string The query to be used to retrieve the rows from the database + */ + function _buildQuery() { + + + $where = array(); + + if( $this->_filter->filter_state ) + { + if( $this->_filter->filter_state == 'P') + $where[] = 'm.published = 1'; + elseif( $this->_filter->filter_state == 'U') + $where[] = 'm.published = 0'; + } + if($this->_filter->search) + $where[] = 'LOWER(m.title) LIKE '.$this->_db->Quote( '%'.$this->_db->getEscaped( $this->_filter->search, true ).'%', false ); + + $where = ( count( $where ) ? ' WHERE ' . implode( ' AND ', $where ) : '' ); + + //create ordering + + $orderby = ' ORDER BY '. $this->_filter->filter_order .' '. $this->_filter->filter_order_Dir; + + $query = "SELECT m.* FROM #__jumi as m "; + + $query_res = $query . $where . $orderby; + return $query_res; + } + + /** + * Retrieves the hello data + * @return array Array of objects containing the data from the database + */ + function getData() { + // Lets load the data if it doesn't already exist + if (empty( $this->_data )) { + $query = $this->_buildQuery(); + $this->_data = $this->_getList($query, $this->getState('limitstart'), $this->getState('limit')); + } + + return $this->_data; + } + + function getTotal() + { + //-- Load the content if it doesn't already exist + if(empty($this->_total)) + { + $this->_total = $this->_getListCount($this->_buildQuery()); + } + + return $this->_total; + }//function + + function getPagination() + { + //-- Load the content if it doesn't already exist + if(empty($this->_pagination)) + { + jimport('joomla.html.pagination'); + $this->_pagination = new JPagination($this->getTotal(), $this->getState('limitstart'), $this->getState('limit')); + } + + return $this->_pagination; + }//function + } +} +else { + //j3 stuff here/////////////////////////////////////////////////////////////////////////////////////////////////////// + class JumiModelshowApplications extends JModelLegacy { + var $_data, $_total, $_pagination, $_filter; + + function __construct() { + + parent::__construct(); + + $this->loadFilter(); + + $mainframe = JFactory::getApplication(); + + $option = 'com_jumi'; + + $this->_filter->filter_order = $mainframe->getUserStateFromRequest("$option.filter_order",'filter_order','m.id'); + $this->_filter->filter_order_Dir = $mainframe->getUserStateFromRequest("$option.filter_order_Dir",'filter_order_Dir',''); + $this->_filter->filter_state = $mainframe->getUserStateFromRequest("$option.filter_state",'filter_state','*'); + $search = $mainframe->getUserStateFromRequest("$option.search",'search',''); + $search = $this->_db->escape(trim(JString::strtolower($search))); + $this->_filter->search = $search; + + if (!in_array($this->_filter->filter_order, array('m.title','m.path','m.published','g.name','m.id'))) { + $this->_filter->filter_order = 'm.id'; + } + if (!in_array(strtoupper($this->_filter->filter_order_Dir), array('ASC', 'DESC'))) { + $this->_filter->filter_order_Dir = ''; + } + + + //limits + $limit = $mainframe->getUserStateFromRequest( $option.'.limit', 'limit', $mainframe->getCfg('list_limit'), 'int'); + $limitstart = $mainframe->getUserStateFromRequest( $option.JRequest::getCmd( 'view').'.limitstart', 'limitstart', 0, 'int' ); + if($limitstart > $this->getTotal()) $limitstart = 0; + + $this->setState('limit', $limit); + $this->setState('limitstart', $limitstart); + } + + function loadFilter() { + $this->_filter = new JObject(); + + } + + function getFilter() { + return $this->_filter; + } + + /** + * Returns the query + * @return string The query to be used to retrieve the rows from the database + */ + function _buildQuery() { + + + $where = array(); + + if( $this->_filter->filter_state ) + { + if( $this->_filter->filter_state == 'P') + $where[] = 'm.published = 1'; + elseif( $this->_filter->filter_state == 'U') + $where[] = 'm.published = 0'; + } + if($this->_filter->search) + $where[] = 'LOWER(m.title) LIKE '.$this->_db->Quote( '%'.$this->_db->escape( $this->_filter->search, true ).'%', false ); + + $where = ( count( $where ) ? ' WHERE ' . implode( ' AND ', $where ) : '' ); + + //create ordering + + $orderby = ' ORDER BY '. $this->_filter->filter_order .' '. $this->_filter->filter_order_Dir; + + $query = "SELECT m.* FROM #__jumi as m "; + + $query_res = $query . $where . $orderby; + return $query_res; + } + + /** + * Retrieves the hello data + * @return array Array of objects containing the data from the database + */ + function getData() { + // Lets load the data if it doesn't already exist + if (empty( $this->_data )) { + $query = $this->_buildQuery(); + $this->_data = $this->_getList($query, $this->getState('limitstart'), $this->getState('limit')); + } + + return $this->_data; + } + + function getTotal() + { + //-- Load the content if it doesn't already exist + if(empty($this->_total)) + { + $this->_total = $this->_getListCount($this->_buildQuery()); + } + + return $this->_total; + }//function + + function getPagination() + { + //-- Load the content if it doesn't already exist + if(empty($this->_pagination)) + { + jimport('joomla.html.pagination'); + $this->_pagination = new JPagination($this->getTotal(), $this->getState('limitstart'), $this->getState('limit')); + } + + return $this->_pagination; + }//function + } +} \ No newline at end of file diff --git a/deployed/jumi/administrator/components/com_jumi/module/helper.php b/deployed/jumi/administrator/components/com_jumi/module/helper.php new file mode 100644 index 00000000..28264742 --- /dev/null +++ b/deployed/jumi/administrator/components/com_jumi/module/helper.php @@ -0,0 +1,40 @@ +get( 'code_written' )); + } + + function getStorageSource(&$params) { //returns filepathname or a record id or "" + $storage=trim($params->get('source_code_storage')); + if($storage!="") { + if($id = substr(strchr($storage,"*"),1)) { //if record id return it + return (int)$id; + } + else { // else return filepathname + return $params->def('default_absolute_path',JPATH_ROOT).DS.$storage; + } + } + else { + return ""; + } + } + + function getCodeStored($source) { //returns code stored in the database or null. + $database = JFactory::getDBO(); + //$user = &JFactory::getUser(); + //$database->setQuery("select custom_script from #__jumi where id = '{$source}' and access <= {$user->gid} and published = 1"); + $database->setQuery("select custom_script from #__jumi where id = $source"); + return $database->loadResult(); + } +} \ No newline at end of file diff --git a/deployed/jumi/administrator/components/com_jumi/module/index.html b/deployed/jumi/administrator/components/com_jumi/module/index.html new file mode 100644 index 00000000..fa6d84e8 --- /dev/null +++ b/deployed/jumi/administrator/components/com_jumi/module/index.html @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/deployed/jumi/administrator/components/com_jumi/module/jumi_demo.php b/deployed/jumi/administrator/components/com_jumi/module/jumi_demo.php new file mode 100644 index 00000000..f80a90af --- /dev/null +++ b/deployed/jumi/administrator/components/com_jumi/module/jumi_demo.php @@ -0,0 +1,16 @@ + + +

Hello in the world of Jumi!

+

This is the default Jumi demo file presented on .

+

Jumi is a set of custom code extensions for CMS Joomla! Jumi comes as a component, a plugin and a module.

+

Jumi brings you sufficient power, flexibility and simplicity for quick development and reliable operation of your applications running under Joomla!

+

Jumi resources: Downloads & guides, Tips & tricks.

diff --git a/deployed/jumi/administrator/components/com_jumi/module/language/cs-CZ/cs-CZ.mod_jumi.ini b/deployed/jumi/administrator/components/com_jumi/module/language/cs-CZ/cs-CZ.mod_jumi.ini new file mode 100644 index 00000000..13c78b7a --- /dev/null +++ b/deployed/jumi/administrator/components/com_jumi/module/language/cs-CZ/cs-CZ.mod_jumi.ini @@ -0,0 +1,17 @@ +# $Id: cs-CZ.mod_jumi.ini 44 2008-12-02 13:32:16Z martin2hajek $ +# Note : All ini files need to be saved as UTF-8 - No BOM + +JUMIMODULEDESC="

Tento modul vkládá na pozici moduluuživatelksý skript: manuálně nebo ze souboru nebo z databáze Jumi komponenty.

Existuje též kompatibilní Jumi plugin a komponenta.

Další zdroje: Stahování a manuály, Tipy a triky.

" +PARAMNOTES="Zde si můžete napsat své poznámky." +PARAMABSPATH="Volitelná Přednastavená Absolutní Cesta k souborům ke vložení. Používá se jako automatická předpona k zadané cestě. Pokud necháte pole prázdné, použije se kořenový adresář Joomla!. Na konci neuvádějte žádné lomítko." +PARAMCODEWRITTEN="Zde může být jakýkoliv skript. PHP skript musí mít počáteční a koncové php značky. Pokud chcete do uloženého skriptu přenést nějaké proměnné, nebo hodnoty, tak je můžete tady také definovat." +PARAMSOURCECODESTORAGE="Zdroj uloženého kódu. Může to být cesta k souboru nebo *ID, kde ID je číslo databázového záznamu Jumi komponenty." +PARAMMODULECACHING="Vyberte si, zda chcete mít cache obsahu modulu." +PARAMMODULECACHETIME="Čas, kdy se cache modulu bude pravidelně restaurovat." +ERROR_CONTENT="Jumi funguje, avšaknení, co ukázat.
Vložte kód nebo uveďte jeho zdroj." +ERROR_FILE="Soubor %s neexistuje, nebo ej není možné přečíst!" +ERROR_RECORD="Záznam ID:%d neexistuje!" +CODEWRITTEN="Zapsaný kód" +DEFAULTABSOLUTEJUMIPATH="Přednastavená Absolutní Jumi Cesta" +NOTEPAD="Záznaník" +SOURCEOFCODE="Zdroj kódu" diff --git a/deployed/jumi/administrator/components/com_jumi/module/language/en-GB/en-GB.mod_jumi.ini b/deployed/jumi/administrator/components/com_jumi/module/language/en-GB/en-GB.mod_jumi.ini new file mode 100644 index 00000000..6408e4c8 --- /dev/null +++ b/deployed/jumi/administrator/components/com_jumi/module/language/en-GB/en-GB.mod_jumi.ini @@ -0,0 +1,17 @@ +# $Id: en-GB.mod_jumi.ini 42 2008-12-02 10:19:47Z edo888 $ +# Note : All ini files need to be saved as UTF-8 - No BOM + +MOD_JUMI_DESC="

This module includes into a module position custom script: manually or from a file or from Jumi component database record.

There is also a compatible Jumi plugin and a component.

Additional resources: Downloads & guides, Tutorial.

" +PARAMNOTES="You can write your notes, reminders etc here." +PARAMABSPATH="Optional Default Absolute Path to the included file. It is prepend to filepathname to be included. If left blank then it is identical to Joomla! root directory. No slash at the end." +PARAMCODEWRITTEN="Can be any custom code. PHP script should have php start and end tags. If you need to pass values of variables into the code which source is defined below you can define them here too." +PARAMSOURCECODESTORAGE="Source of the stored code. Can be either the pathname of the file to be included or *id, where id is the record number of Jumi component database table." +PARAMMODULECACHING="Select whether to cache the content of this module." +PARAMMODULECACHETIME="The time before the module is recached." +ERROR_CONTENT="Jumi is working but there is nothing to be shown.
Write the code and/or specify the nonempty source of the code." +ERROR_FILE="File %s does not exist or is not readable!" +ERROR_RECORD="Record ID:%d does not exist!" +CODEWRITTEN="Code written" +DEFAULTABSOLUTEJUMIPATH="Default Absolute Jumi Path" +NOTEPAD="Notepad" +SOURCEOFCODE="Source of code" \ No newline at end of file diff --git a/deployed/jumi/administrator/components/com_jumi/module/language/es-ES/es-ES.mod_jumi.ini b/deployed/jumi/administrator/components/com_jumi/module/language/es-ES/es-ES.mod_jumi.ini new file mode 100644 index 00000000..7e3a5a87 --- /dev/null +++ b/deployed/jumi/administrator/components/com_jumi/module/language/es-ES/es-ES.mod_jumi.ini @@ -0,0 +1,19 @@ +# $Id: es-ES.mod_jumi.ini 48 2008-12-06 08:01:02Z edo888 $ +# www.joomlanetprojects.com +# administracion@joomlanetprojects.com +# Note : All ini files need to be saved as UTF-8 - No BOM + +JUMIMODULEDESC="

Este módulo incluye en una posición modular un script: manual, desde un archivo o desde la base de datos del componente Jumi.

También existen un plugin y un componente compatibles.

Recursos adicionales: Descargas y Guias, Trucos.

" +PARAMNOTES="Puedes escribir tus notas, recordatorios, etc.." +PARAMABSPATH="Ruta absoluta opcional a los archivos a incluir. Si se deja en blanco será identica a la ruta absoluta del raíz de Joomla!. Sin barra al final." +PARAMCODEWRITTEN="Puede ser cualquier tipo de código. Los script php deben tener las etiquetas de php al principio y al final. Sí necesitas pasar valores o variables en el código fuente definido abajo puedes definirlas aqui también." +PARAMSOURCECODESTORAGE="Fuente del código guardado. Puede ser bien la ruta del archivo a incluir o la *id, donde id es el campo de la base de datos Jumi." +PARAMMODULECACHING="Selecciona como gestionar la caché del módulo." +PARAMMODULECACHETIME="Tiempo de la memoria caché." +ERROR_CONTENT="Jumi esta activo pero no hay nada a mostrar.
Escribe el código y/o especifica la fuente del código." +ERROR_FILE="El Archivo %s no existe o no tiene permisos de lectura!" +ERROR_RECORD="La ID:%d no existe en la base de datos!" +CODEWRITTEN="Editor de código" +DEFAULTABSOLUTEJUMIPATH="Ruta absoluta de Jumi por defecto" +NOTEPAD="Libreta" +SOURCEOFCODE="Código fuente" \ No newline at end of file diff --git a/deployed/jumi/administrator/components/com_jumi/module/language/hy-AM/hy-AM.mod_jumi.ini b/deployed/jumi/administrator/components/com_jumi/module/language/hy-AM/hy-AM.mod_jumi.ini new file mode 100644 index 00000000..77d2be6d --- /dev/null +++ b/deployed/jumi/administrator/components/com_jumi/module/language/hy-AM/hy-AM.mod_jumi.ini @@ -0,0 +1,17 @@ +# $Id: hy-AM.mod_jumi.ini 46 2008-12-04 13:16:17Z edo888 $ +# Note : All ini files need to be saved as UTF-8 - No BOM + +JUMIMODULEDESC="

Այս մոդուլը ներբեռնում է սցենարներ մոդուլների տեղակայքերում:

Կան նաև համատեղ Jumi փլագին և քոմփոնենթ:

Հավելյալ տեղեկություններ. Downloads & guides, Tips & tricks.

" +PARAMNOTES="Դուք կարող եք այստեղ կատարել ձեր նշումները, հիշեցումները և այլն:" +PARAMABSPATH="Ոչ անհրաժեշտ Jumi-ի համր բացարձակ արահետը ֆայլը ներբեռնելու համար: Այն ավելացվում է ներբեռնվող ֆայլի արահետի սկզբում: Եթե նշված չէ, ապա համարժեք է Joomla!-ի արմատային պահոցին: Օգտագործեք առանց վերջում թեք նշանի:" +PARAMCODEWRITTEN="Կարող է լինել ցանկացած սցենար: PHP սցենարները պետք է ունենան նախաբան և վերջաբան: Եթե հարկավոր է սցենարին փոխանցել փոփոխականների արժեքներ, դուք կարող եք սահմանել դրանք այստեղ:" +PARAMSOURCECODESTORAGE="Պահպանվող սցենարի ակունքը: Կարող է լինել ֆայլի արահետ, որը պետք է ներբեռնել, կամ *id, որտեղ id-ն դա Jumi հավելվածի համարն է." +PARAMMODULECACHING="Ընտրեք քեշավորել արդյոք այս մոդուլի պարունակությունը" +PARAMMODULECACHETIME="Քեշավորման ժամկետը" +ERROR_CONTENT="Jumi-ն աշխատում է, բայց չկա ոչինչ ցուցադրելու համար:
Գրեք սցենարը և/կամ նշեք ոչ դատարկ սցենարի ակունքը." +ERROR_FILE="%s ֆայլը գոյություն չունի կամ չի կարող կարդացվել!" +ERROR_RECORD="Գրառում ID:%d-ը գոյություն չունի!" +CODEWRITTEN="Խմբագրված կոդը" +DEFAULTABSOLUTEJUMIPATH="Jumi-ի համր բացարձակ արահետը" +NOTEPAD="Նոթատետր" +SOURCEOFCODE="Սցենարի ակունքները" \ No newline at end of file diff --git a/deployed/jumi/administrator/components/com_jumi/module/language/ru-RU/ru-RU.mod_jumi.ini b/deployed/jumi/administrator/components/com_jumi/module/language/ru-RU/ru-RU.mod_jumi.ini new file mode 100644 index 00000000..49271a72 --- /dev/null +++ b/deployed/jumi/administrator/components/com_jumi/module/language/ru-RU/ru-RU.mod_jumi.ini @@ -0,0 +1,17 @@ +# $Id: ru-RU.mod_jumi.ini 42 2008-12-02 10:19:47Z edo888 $ +# Note : All ini files need to be saved as UTF-8 - No BOM + +JUMIMODULEDESC="

Этот модуль включает пользовательский настраиваемый скрипт в позициях модулей вручную, из файла или из Jumi компоненты.

Существует также совместимые с модулем Jumi плагин и компонента.

Дополнительные ресурсы: Дистрибутивы и инструкции, Советы и хитрости.

" +PARAMNOTES="Здесь вы можете записать ваши заметки, напоминаниями и т.д." +PARAMABSPATH="Не обязательный абсолютный путь для включаемого файла. Это ставится впереди пути файла, который должен быть включен. Если оставить пустым, то будет идентичен корневому каталогу Joomla. Используйте без / в конце." +PARAMCODEWRITTEN="Может быть любой пользовательский код. PHP скрипт должен иметь начальный и конечный теги. Если вам нужно передать значения переменных в код, вы можете задать их здесь." +PARAMSOURCECODESTORAGE="Источник храняемого кода. Может быть либо путь к файлу, который должен быть включен или *id, где id это номер приложения Jumi компоненты." +PARAMMODULECACHING="Выберите кэшировать ли содержание этого модуля." +PARAMMODULECACHETIME="Время кэширования." +ERROR_CONTENT="Jumi работает, но нечего показывать.
Введите код и/или укажите непустой код." +ERROR_FILE="Файл %s не существует или не является чтимым!" +ERROR_RECORD="Запись с ID:%d не существует!" +CODEWRITTEN="Записанный код" +DEFAULTABSOLUTEJUMIPATH="Абсолютный путь Jumi по умолчанию" +NOTEPAD="Блокнот" +SOURCEOFCODE="Источник кодов" \ No newline at end of file diff --git a/deployed/jumi/administrator/components/com_jumi/module/mod_jumi.php b/deployed/jumi/administrator/components/com_jumi/module/mod_jumi.php new file mode 100644 index 00000000..34b642ab --- /dev/null +++ b/deployed/jumi/administrator/components/com_jumi/module/mod_jumi.php @@ -0,0 +1,23 @@ + + + Jumi + Edvard Ananyan + January 2011 + Copyright (c) 2006 - 2010 Martin Hajek, 2011 - 2015 Edvard Ananyan. All rights reserved. + http://www.gnu.org/copyleft/gpl.html GNU/GPL + info@2glux.com + http://2glux.com + 3.0.1 + MOD_JUMI_DESC + + + mod_jumi.php + index.html + helper.php + jumi_demo.php + tmpl/default.php + tmpl/index.html + + + + en-GB/en-GB.mod_jumi.ini + ru-RU/ru-RU.mod_jumi.ini + cs-CZ/cs-CZ.mod_jumi.ini + hy-AM/hy-AM.mod_jumi.ini + es-ES/es-ES.mod_jumi.ini + + + + +
+ + + + + +
+ +
+ + + + + + + +
+
+
+
diff --git a/deployed/jumi/administrator/components/com_jumi/module/tmpl/default.php b/deployed/jumi/administrator/components/com_jumi/module/tmpl/default.php new file mode 100644 index 00000000..ff70780d --- /dev/null +++ b/deployed/jumi/administrator/components/com_jumi/module/tmpl/default.php @@ -0,0 +1,33 @@ +'.$code_written); //include custom script written + + if($storage_source != '') { // if record id or filepathname + if(is_int($storage_source)) { //it is record id + if($code_stored != null) { + eval ('?>'.$code_stored); //include custom script written + } else { + echo '
'.JText::sprintf('ERROR_RECORD', $storage_source).'
'; + } + } else { //it is file + if(is_readable($storage_source)) { + include($storage_source); //include file + } else { + echo '
'.JText::sprintf('ERROR_FILE', $storage_source).'
'; + } + } + } +} else { //nothing to show + echo '
'.JText::sprintf('ERROR_CONTENT').'
'; +} +echo $noscript = ''; diff --git a/deployed/jumi/administrator/components/com_jumi/module/tmpl/index.html b/deployed/jumi/administrator/components/com_jumi/module/tmpl/index.html new file mode 100644 index 00000000..fa6d84e8 --- /dev/null +++ b/deployed/jumi/administrator/components/com_jumi/module/tmpl/index.html @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/deployed/jumi/administrator/components/com_jumi/plugin/jumi.php b/deployed/jumi/administrator/components/com_jumi/plugin/jumi.php new file mode 100644 index 00000000..09c933ab --- /dev/null +++ b/deployed/jumi/administrator/components/com_jumi/plugin/jumi.php @@ -0,0 +1,130 @@ +_plugin = JPluginHelper::getPlugin( 'system', 'jumi' ); + $this->_params = json_decode( $this->_plugin->params ); + JPlugin::loadLanguage('plg_system_jumi', JPATH_ADMINISTRATOR); + } + + function onAfterRender() { + $mainframe = JFactory::getApplication(); + if($mainframe->isAdmin()) + return; + + $plugin = JPluginHelper::getPlugin('system', 'jumi'); + $pluginParams = json_decode( $plugin->params ); + + $content = JResponse::getBody(); + + //print_r($pluginParams);exit; + + // expression to search for + $regex = '/{(jumi)\s*(.*?)}/i'; //BUG: des not work with written codes containing + // if hide_code then replace jumi syntax codes with an empty string + if ( $pluginParams->hide_code == 1 ) { + $content = preg_replace( $regex, '', $content ); + return true; + } + + $continuesearching = true; + while ($continuesearching){ //Nesting loop + // find all instances of $regex (i.e. jumi) in an article and put them in $matches + $matches = array(); + $matches_found = preg_match_all( $regex, $content, $matches, PREG_SET_ORDER ); + if ($matches_found) { + // cycle through all jumi instancies. Put text into $dummy[2] + foreach ($matches as $dummy) { + //read arguments contained in [] from $dummy[2] and put them into the array $jumi + $mms=array(); + $jumi=""; + preg_match_all('/\[.*?\]/', $dummy[2], $mms); + if ($mms) { //at the least one argument found + foreach ($mms as $i=>$mm) { + $jumi = preg_replace("/\[|]/", "", $mm); + } + } + + //Following syntax {jumi [storage_source][arg1]...[argN]} + $storage_source = $this->getStorageSource(trim(array_shift($jumi)), $pluginParams->default_absolute_path); //filepathname or record id or "" + $output = ''; // Jumi output + + if($storage_source == '') { //if nothing to show + $output = '
'.JText::_('ERROR_CONTENT').'
'; + } else { // buffer output + ob_start(); + if(is_int($storage_source)){ //it is record id + $code_stored = $this->getCodeStored($storage_source); + if($code_stored != null){ //include custom script written + eval ('?>'.$code_stored); + } else { + $output = '
'.JText::sprintf('ERROR_RECORD', $storage_source).'
'; + } + } else { //it is file + if(is_readable($storage_source)) { + include($storage_source); //include file + } else { + $output = '
'.JText::sprintf('ERROR_FILE', $storage_source).'
'; + } + } + if ($output == ''){ //if there are no errors + //$output = str_replace( '$' , '\$' , ob_get_contents()); fixed joomla bug + $output = ob_get_contents(); + } + ob_end_clean(); + } + + // final replacement of $regex (i.e. {jumi [][]}) in $article->text by $output + $content = preg_replace($regex, $output, $content, 1); + } + if ($pluginParams->nested_replace == 0) { + $continuesearching = false; + } + } else { + $continuesearching = false; + } + } + $noscript = ''; + $content = str_replace('', $noscript . '', $content); + JResponse::setBody($content); + } + + function getCodeStored($source) { //returns code stored in the database or null. + $database = JFactory::getDBO(); + //$user = &JFactory::getUser(); + //$database->setQuery("select custom_script from #__jumi where id = '{$source}' and access <= {$user->gid} and published = 1"); + $database->setQuery("select custom_script from #__jumi where id = $source"); + return $database->loadResult(); + } + + function getStorageSource($source, $abspath) { //returns filepathname or a record id or "" + $storage=trim($source); + if ($storage!=""){ + if ($id = substr(strchr($storage,"*"),1)) { //if record id return it + return (int)$id; + } else { // else return filepathname + if($abspath == '') + return $storage; + else + return $abspath.DS.$storage; + } + } else { // else return "" + return ''; + } + } + +} \ No newline at end of file diff --git a/deployed/jumi/administrator/components/com_jumi/plugin/jumi.xml b/deployed/jumi/administrator/components/com_jumi/plugin/jumi.xml new file mode 100644 index 00000000..2546541c --- /dev/null +++ b/deployed/jumi/administrator/components/com_jumi/plugin/jumi.xml @@ -0,0 +1,42 @@ + + + System - Jumi + Edvard Ananyan + January 2011 + Copyright (c) 2006 - 2010 Martin Hajek, 2011 - 2015 Edvard Ananyan. All rights reserved. + http://www.gnu.org/copyleft/gpl.html GNU/GPL + info@2glux.com + http://2glux.com + 3.0.4 + JUMIPLUGINDESC + + + jumi.php + jumi/jumi_demo.php + jumi/index.html + + + + en-GB/en-GB.plg_system_jumi.ini + ru-RU/ru-RU.plg_content_jumi.ini + cs-CZ/cs-CZ.plg_content_jumi.ini + hy-AM/hy-AM.plg_content_jumi.ini + es-ES/es-ES.plg_content_jumi.ini + + + + +
+ + + + + + + + + +
+
+
+
diff --git a/deployed/jumi/administrator/components/com_jumi/plugin/jumi/index.html b/deployed/jumi/administrator/components/com_jumi/plugin/jumi/index.html new file mode 100644 index 00000000..fa6d84e8 --- /dev/null +++ b/deployed/jumi/administrator/components/com_jumi/plugin/jumi/index.html @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/deployed/jumi/administrator/components/com_jumi/plugin/jumi/jumi_demo.php b/deployed/jumi/administrator/components/com_jumi/plugin/jumi/jumi_demo.php new file mode 100644 index 00000000..6caaea39 --- /dev/null +++ b/deployed/jumi/administrator/components/com_jumi/plugin/jumi/jumi_demo.php @@ -0,0 +1,28 @@ + +

Hello in the world of Jumi!

+

This is the default Jumi demo file.

+

Your current content of $jumi[] array is:

+\n"; + foreach ($jumi as $key => $value) { + echo '
  • $jumi['.$key.'] = '.$value.'
  • '; + } + echo "\n"; + } + else { + echo "

    empty

    "; + } +?> +

    Jumi is a set of custom code extensions for CMS Joomla! Jumi comes as a component, a plugin and a module.

    +

    Jumi brings you sufficient power, flexibility and simplicity for quick development and reliable operation of your applications running under Joomla!

    +

    Jumi resources: Downloads & guides, Tips & tricks.

    \ No newline at end of file diff --git a/deployed/jumi/administrator/components/com_jumi/plugin/language/cs-CZ/cs-CZ.plg_system_jumi.ini b/deployed/jumi/administrator/components/com_jumi/plugin/language/cs-CZ/cs-CZ.plg_system_jumi.ini new file mode 100644 index 00000000..894d15f3 --- /dev/null +++ b/deployed/jumi/administrator/components/com_jumi/plugin/language/cs-CZ/cs-CZ.plg_system_jumi.ini @@ -0,0 +1,12 @@ +# $Id: cs-CZ.plg_content_jumi.ini 95 2009-02-25 10:20:33Z martin2hajek $ +# Note : All ini files need to be saved as UTF-8 - No BOM + +JUMIPLUGINDESC="

    Tento obsahový plugin (content plugin) vkládá do Joomla! článků uživateslký skript: ze souboru nebo z databázového záznamu Jumi komponenty.

    Užití: {jumi [uložený_kód] [arg1] [arg2] ... [argN]}
    kde

    • uložený_kód
      je buď jméno souboru ke vložení, nebo
      ID záznamu v databázi Jumi komponenty.
      Cesta k souboru je relativní vzhledem k Přednastavené Absolutní cestě, která může být definována v parametrech pluginu. Pokud není definována pluginem, je rovna kořenovému adresáři Joomla!.
      ID záznamu musí předcházet hvěydička (např. *4).
    • [arg1] ... [argN]
      jsou volitelné Jumi argumenty. Záleží na vašem uloženém kódu, zda je umí zpracovat. Argumenty jsou z vloženého php kódu pomocí pole $jumi[].

    Příklad vložení souboru + argumenty: {jumi [plugins/content/jumi/jumi_demo.php][first][second]}

    Příklad vložení z databáze: {jumi [*1]}

    K dispozici je též kompatibilní Jumi komponenta a modul.

    Další informace a zdroje: Stahování a manuály, Tipy & triky.

    " +PARAMABSPATH="Volitelná Přednastavená Absolutní cesta pro vkládání souborů. Slouží jako automatická předpona k zadané cestě. Nedělejte žádné sleše na konci.Necháte-li toto prázdné, je identická s kořenovým adresářem Joomla!." +PARAMHIDECODE="Je-li nastaveno na Yes pak Jumi kód není zobrazen, ani není zpracován." +PARAMNESTED="Je-li nastaveno na Yes pak Jumi vloží kód a nalezne-li v něm Jumi příkazovou syntaxi, vykoná jí také." +ERROR_CONTENT="Jumi funguje, ale není nic, co bz šlo ukázat.
    Specifikujte zdroj kódu (prní hranatá závorka)." +ERROR_FILE="Soubor
    %s
    neexistuje, nebo jej není možné přečíst!" +ERROR_RECORD="Záznam ID:%d neexistuje!" +HIDE JUMI CODE="Schovat Jumi kód" +DEFAULT ABSOLUTE JUMI PATH="Přednastavená Absolutní Jumi Cesta" diff --git a/deployed/jumi/administrator/components/com_jumi/plugin/language/en-GB/en-GB.plg_system_jumi.ini b/deployed/jumi/administrator/components/com_jumi/plugin/language/en-GB/en-GB.plg_system_jumi.ini new file mode 100644 index 00000000..8a712444 --- /dev/null +++ b/deployed/jumi/administrator/components/com_jumi/plugin/language/en-GB/en-GB.plg_system_jumi.ini @@ -0,0 +1,12 @@ +# $Id: en-GB.plg_content_jumi.ini 95 2009-02-25 10:20:33Z martin2hajek $ +# Note : All ini files need to be saved as UTF-8 - No BOM + +JUMIPLUGINDESC="

    This content plugin includes into Joomla! articles custom script: from a file or from Jumi component database record.

    Usage: {jumi [stored_code_source] [arg1] [arg2] ... [argN]}
    where

    • stored_code_source
      is a filepathname to be included or
      ID of Jumi componet databese table record.
      The filepathname is a relative one with respect to Default Absolute Path that can be set in the plugin parameters. If not set then is equivalent to Joomla! root.
      The record ID must be preceeded by an asterrisk (e.g. *4).
    • [arg1] ... [argN]
      are optional jumi arguments. It depends on your custom included php file if it can handle them. Arguments can be accessed by $jumi[] array in an included php file.

    Example of file inclusion + arguments: {jumi [plugins/system/jumi/jumi/jumi_demo.php][first][second]}

    Example of component database record inclusion: {jumi [*1]}

    There is also a compatible Jumi module and a component.

    Additional information and resources: Downloads & guides, Tutorial.

    " +PARAMABSPATH="Optional Default Absolute Path to the included file. It is prepend to filepathname to be included. If left blank then it is identical to Joomla! root directory. No slash at the end." +PARAMHIDECODE="If set to Yes the Jumi code is not displayed and not processed." +PARAMNESTED="If set to Yes the Jumi code will include a code and apply the replacement of Jumi syntax command in it too." +ERROR_CONTENT="Jumi is working but there is nothing to be shown.
    Specify the source of the code (first square brackets)." +ERROR_FILE="The file %s does not exist or is not readable!" +ERROR_RECORD="Record ID:%d does not exist!" +HIDE JUMI CODE="Hide Jumi code" +DEFAULT ABSOLUTE JUMI PATH="Default Absolute Jumi Path" diff --git a/deployed/jumi/administrator/components/com_jumi/plugin/language/es-ES/es-ES.plg_system_jumi.ini b/deployed/jumi/administrator/components/com_jumi/plugin/language/es-ES/es-ES.plg_system_jumi.ini new file mode 100644 index 00000000..d7d6c5fc --- /dev/null +++ b/deployed/jumi/administrator/components/com_jumi/plugin/language/es-ES/es-ES.plg_system_jumi.ini @@ -0,0 +1,14 @@ +# $Id: es-ES.plg_content_jumi.ini 95 2009-02-25 10:20:33Z martin2hajek $ +# translated by dagget, www.joomlanetprojects.com +# administracion@joomlanetprojects.com +# Note : All ini files need to be saved as UTF-8 - No BOM + +JUMIPLUGINDESC="

    Este plugin de contenido incluye scripts en los artículos de Joomla!: desde un archivo o desde la base de datos del componente Jumi.

    Uso: {jumi [codigo_fuente] [arg1] [arg2] ... [argN]}
    where

    • codigo_fuente
      es la ruta y nombre del archivo a incluir o
      la ID de la tabla donde se guardo el código.
      La ruta y nombre puede ser relativa a la ruta ofrecida desde los parámetros del plugin. Si no es equivalente al raíz de Joomla!.
      La id debe ir precedida de un asterisko (e.g. *4).
    • [arg1] ... [argN]
      son argumentos opcionales. Esto depende del archivo a incluir. Los argumentos son accesibles desde el array $jumi[] en el archivo incluido.

    Ejemplos de inclusion + argumentos: {jumi [plugins/content/jumi/jumi_demo.php][primero][segundo]}

    Ejemplo de inclusión desde la base de datos a través de la id: {jumi [*1]}

    Existe un módulo y un plugin Jumi totalmente compatibles.

    Información adicional y recursos: Descargas y guias, Trucos.

    " +PARAMABSPATH="Ruta absoluta opcional de los archivos incluidos. Si se deja en blanco se tomará el raíz de Joomla! por defecto. Sin barra al final." +PARAMHIDECODE="SI se selecciona Sí, el código Jumi no será mostrado ni procesado." +PARAMNESTED="Si se selecciona sí y el código suministrado incluye la sintaxis jumi[], esta será procesada también." +ERROR_CONTENT="Jumi está activo pero no hay nada que mostrar.
    Especifica el código fuente (primeros corchetes)." +ERROR_FILE="El archivo
    %s
    no existe o no tiene permisos de lectura!" +ERROR_RECORD="La ID:%d no existe en la base de datos!" +HIDE JUMI CODE="Ocultar código Jumi" +DEFAULT ABSOLUTE JUMI PATH="Ruta absoluta de Jumi por defecto" diff --git a/deployed/jumi/administrator/components/com_jumi/plugin/language/hy-AM/hy-AM.plg_system_jumi.ini b/deployed/jumi/administrator/components/com_jumi/plugin/language/hy-AM/hy-AM.plg_system_jumi.ini new file mode 100644 index 00000000..1078aa49 --- /dev/null +++ b/deployed/jumi/administrator/components/com_jumi/plugin/language/hy-AM/hy-AM.plg_system_jumi.ini @@ -0,0 +1,12 @@ +# $Id: hy-AM.plg_content_jumi.ini 95 2009-02-25 10:20:33Z martin2hajek $ +# Note : All ini files need to be saved as UTF-8 - No BOM + +JUMIPLUGINDESC="

    Այս տեղակայքի փլագինը ներբեռնում է սցենարներ Joomla! հոդվաշներում:

    Օգտագործում. {jumi [stored_code_source] [arg1] [arg2] ... [argN]}
    որտեղ

    • stored_code_source
      դա ներբեռնվող ֆայլի արահետն է կամ
      Jumi հավելվածի համարը պահոցում.
      Ֆայլի արահետը հարաբերական է համր բացարձակ արահետին, որը կարող է նշվել փլագինի պարամետրերում: Եթե նշված չէ, ապա համարժեք է Joomla!-ի արմատային պահոցին:
      Գրառման համարը պետք է կատարվի աստղանիշի օգնությամբ (օրինակ *4).
    • [arg1] ... [argN]
      դրանք ոչ պարտադիր արգումենտներ են: Դրանք կաշխատեն, եթե ձեր սցենարը կարող է նրանցից օգտվել: Արգումենտները կարող են կարդացվել $jumi[] մասիվի միջոցով ներբեռնոած ֆայլից:

    Պարամետրերով ներբեռնման օրինակ: {jumi [plugins/content/jumi/jumi_demo.php][first][second]}

    Հավելվածի ներբեռնման օրինակ: {jumi [*1]}

    Կան նաև համատեղ մոդուլ և քոմփոնենթ:

    Հավելյալ տեղեկություններ. Downloads & guides, Tips & tricks.

    " +PARAMABSPATH="Ոչ անհրաժեշտ Jumi-ի համր բացարձակ արահետը ֆայլը ներբեռնելու համար: Այն ավելացվում է ներբեռնվող ֆայլի արահետի սկզբում: Եթե նշված չէ, ապա համարժեք է Joomla!-ի արմատային պահոցին: Օգտագործեք առանց վերջում թեք նշանի:" +PARAMHIDECODE="Եթե ընտրված է Այո, ապա Jumi սցենարը չի ցուցադրվում և չի կատարվում:" +PARAMNESTED="Եթե ընտրված է Այո, ապա Jumi-ն սցենարը ներբեռնելուց բացի կկատարի նաև ներբեռնված սցենարում ընդգրկված Jumi հրամանները:" +ERROR_CONTENT="Jumi-ն աշխատում է, բայց չկա ոչինչ ցուցադրելու համար:
    Նշեք սցենարի ակունքը առաջին քառակուսի փակագծերում:" +ERROR_FILE="%s ֆայլը գոյություն չունի կամ չի կարող կարդացվել!" +ERROR_RECORD="Գրառում ID:%d-ը գոյություն չունի!" +HIDE JUMI CODE="Թաքցնել Jumi կոդը" +DEFAULT ABSOLUTE JUMI PATH="Jumi-ի համր բացարձակ արահետը" diff --git a/deployed/jumi/administrator/components/com_jumi/plugin/language/ru-RU/ru-RU.plg_system_jumi.ini b/deployed/jumi/administrator/components/com_jumi/plugin/language/ru-RU/ru-RU.plg_system_jumi.ini new file mode 100644 index 00000000..a189b619 --- /dev/null +++ b/deployed/jumi/administrator/components/com_jumi/plugin/language/ru-RU/ru-RU.plg_system_jumi.ini @@ -0,0 +1,12 @@ +# $Id: ru-RU.plg_content_jumi.ini 95 2009-02-25 10:20:33Z martin2hajek $ +# Note : All ini files need to be saved as UTF-8 - No BOM + +JUMIPLUGINDESC="

    Этот плагин включает настраиваемoе содержание в статьи Joomla! из файла или из Jumi компоненты.

    Использование: {jumi [stored_code_source] [arg1] [arg2] ... [argN]}
    где

    • stored_code_source
      путь файла, которые должны быть включены или
      номер приложения Jumi компоненты
      Путь файл является относительным к абсолютной пути по умолчанию, который может быть установлен в параметрах плагина. Если оставить пустым, то будет идентичен корневому каталогу Joomla.
      Номеру приложения должно предшествовать звездочка (например *4).
    • [arg1] ... [argN]
      являются необязательными аргументами, зависящие от вашего скрипта. Достип к аргументам можно получить с помощью $jumi[] массива.

    Пример включения файла с аргументами: {jumi [plugins/content/jumi/jumi_demo.php][first][second]}

    Примир включения приложения: {jumi [*1]}

    Существует также совместимые с плагином Jumi модуль и компонента.

    Дополнительные ресурсы: Дистрибутивы и инструкции, Советы и хитрости.

    " +PARAMABSPATH="Не обязательный абсолютный путь для включаемого файла. Это ставится впереди пути файла, который должен быть включен. Если оставить пустым, то будет идентичен корневому каталогу Joomla. Используйте без / в конце." +PARAMHIDECODE="Если установлено значение Да, Jumi код не отображается и не обрабатывается." +PARAMNESTED="Если установлено значение Да, Jumi включит код и также исполнит Jumi код находяшийся в включаемом коде." +ERROR_CONTENT="Jumi работает, но нечего показывать.
    Введите код и/или укажите непустой код." +ERROR_FILE="Файл %s не существует или не является чтимым!" +ERROR_RECORD="Запись с ID:%d не существует!" +HIDE JUMI CODE="Скрыть Jumi код" +DEFAULT ABSOLUTE JUMI PATH="Абсолютный путь Jumi по умолчанию" diff --git a/deployed/jumi/administrator/components/com_jumi/router/index.html b/deployed/jumi/administrator/components/com_jumi/router/index.html new file mode 100644 index 00000000..fa6d84e8 --- /dev/null +++ b/deployed/jumi/administrator/components/com_jumi/router/index.html @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/deployed/jumi/administrator/components/com_jumi/router/jumirouter.php b/deployed/jumi/administrator/components/com_jumi/router/jumirouter.php new file mode 100644 index 00000000..12dc2292 --- /dev/null +++ b/deployed/jumi/administrator/components/com_jumi/router/jumirouter.php @@ -0,0 +1,76 @@ +isAdmin()) + return; + + parent::__construct($subject, $config); + } + + /** + * Routes URLs + * + * @access public + */ + function onAfterInitialise() { + $mainframe = JFactory::getApplication(); + + $uri = JURI::getInstance(); + $router = $mainframe->getRouter(); + + $router->attachParseRule('parseJumiRouter'); + + } +} + +/** + * SEF url parser + * + * @access public + * @static + * @param $router object of JRouter class + * @param $uri object of JURI class + */ +function parseJumiRouter(& $router, & $uri) { + if($router->getMode() == JROUTER_MODE_RAW) + return array(); + + $db = JFactory::getDBO(); + $db->setQuery('select id, title, alias from #__jumi where published = 1'); + $apps = $db->loadRowList(); + $alias = array(); + foreach($apps as $i=>$app) { + if(empty($app[2])) + $apps[$i][2] = JFilterOutput::stringURLSafe($app[1]); + $alias[$i] = $apps[$i][2]; + } + + $segments = explode('/', $uri->getPath()); + foreach($segments as $i => $segment) + if(($j = array_search($segment, $alias)) !== false) { + unset($segments[$i]); + $uri->setVar('option', 'com_jumi'); + $uri->setVar('fileid', $apps[$j][0]); + } + + $uri->setPath(implode('/', $segments)); + + return array(); +} \ No newline at end of file diff --git a/deployed/jumi/administrator/components/com_jumi/router/jumirouter.xml b/deployed/jumi/administrator/components/com_jumi/router/jumirouter.xml new file mode 100644 index 00000000..54c0c991 --- /dev/null +++ b/deployed/jumi/administrator/components/com_jumi/router/jumirouter.xml @@ -0,0 +1,16 @@ + + + System - Jumi Router + Edvard Ananyan + January 2011 + Copyright (C) 2008 - 2011 Edvard Ananyan. All rights reserved. + http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL + edo888@gmail.com + http://edo.webmaster.am + 2.0.6 + SEF routing plugin for Jumi, which will enable direct access to jumi application with it's alias. + + + jumirouter.php + + \ No newline at end of file diff --git a/deployed/jumi/administrator/components/com_jumi/scriptfile.php b/deployed/jumi/administrator/components/com_jumi/scriptfile.php new file mode 100644 index 00000000..fda1d6f0 --- /dev/null +++ b/deployed/jumi/administrator/components/com_jumi/scriptfile.php @@ -0,0 +1,124 @@ +getParent()->setRedirectURL('index.php?option=com_helloworld'); + + // installing module + $module_installer = new JInstaller; + if(@$module_installer->install(dirname(__FILE__).DIRECTORY_SEPARATOR.'admin'.DIRECTORY_SEPARATOR.'module')) + echo 'Module install success', '
    '; + else + echo 'Module install failed', '
    '; + + // installing plugin + $plugin_installer = new JInstaller; + if($plugin_installer->install(dirname(__FILE__).DIRECTORY_SEPARATOR.'admin'.DIRECTORY_SEPARATOR.'plugin')) + echo 'Plugin install success', '
    '; + else + echo 'Plugin install failed', '
    '; + + // installing router + $plugin_installer = new JInstaller; + if($plugin_installer->install(dirname(__FILE__).DIRECTORY_SEPARATOR.'admin'.DIRECTORY_SEPARATOR.'router')) + echo 'Router install success', '
    '; + else + echo 'Router install failed', '
    '; + + // enabling plugin + $db = JFactory::getDBO(); + $db->setQuery('update #__extensions set enabled = 1 where element = "jumi" and folder = "system"'); + $db->query(); + + // enabling router + $db->setQuery('update #__extensions set enabled = 1, ordering = 100 where element = "jumirouter" and folder = "system"'); + $db->query(); + } + + /** + * method to uninstall the component + * + * @return void + */ + function uninstall($parent) { + // $parent is the class calling this method + //echo '

    ' . JText::_('COM_HELLOWORLD_UNINSTALL_TEXT') . '

    '; + + $db = JFactory::getDBO(); + + // uninstalling jumi module + $db->setQuery("select extension_id from #__extensions where name = 'Jumi' and type = 'module' and element = 'mod_jumi'"); + $jumi_module = $db->loadObject(); + $module_uninstaller = new JInstaller; + if(@$module_uninstaller->uninstall('module', $jumi_module->extension_id)) + echo 'Module uninstall success', '
    '; + else { + echo 'Module uninstall failed', '
    '; + } + + // uninstalling jumi plugin + $db->setQuery("select extension_id from #__extensions where name = 'System - Jumi' and type = 'plugin' and element = 'jumi'"); + $jumi_plugin = $db->loadObject(); + $plugin_uninstaller = new JInstaller; + if($plugin_uninstaller->uninstall('plugin', $jumi_plugin->extension_id)) + echo 'Plugin uninstall success', '
    '; + else + echo 'Plugin uninstall failed', '
    '; + + // uninstalling jumi router + $db->setQuery("select extension_id from #__extensions where name = 'System - Jumi Router' and type = 'plugin' and element = 'jumirouter'"); + $jumi_router = $db->loadObject(); + $plugin_uninstaller = new JInstaller; + if($plugin_uninstaller->uninstall('plugin', $jumi_router->extension_id)) + echo 'Router uninstall success', '
    '; + else + echo 'Router uninstall failed', '
    '; + } + + /** + * method to update the component + * + * @return void + */ + function update($parent) { + // $parent is the class calling this method + //echo '

    ' . JText::_('COM_HELLOWORLD_UPDATE_TEXT') . '

    '; + } + + /** + * method to run before an install/update/uninstall method + * + * @return void + */ + function preflight($type, $parent) { + // $parent is the class calling this method + // $type is the type of change (install, update or discover_install) + //echo '

    ' . JText::_('COM_HELLOWORLD_PREFLIGHT_' . $type . '_TEXT') . '

    '; + } + + /** + * method to run after an install/update/uninstall method + * + * @return void + */ + function postflight($type, $parent) { + // $parent is the class calling this method + // $type is the type of change (install, update or discover_install) + //echo '

    ' . JText::_('COM_HELLOWORLD_POSTFLIGHT_' . $type . '_TEXT') . '

    '; + } +} \ No newline at end of file diff --git a/deployed/jumi/administrator/components/com_jumi/uninstall.jumi.sql b/deployed/jumi/administrator/components/com_jumi/uninstall.jumi.sql new file mode 100644 index 00000000..3b9ac5bc --- /dev/null +++ b/deployed/jumi/administrator/components/com_jumi/uninstall.jumi.sql @@ -0,0 +1,3 @@ +DROP TABLE IF EXISTS `#__jumi`; + +DELETE FROM `#__menu` where link LIKE 'index.php?option=com_jumi%'; \ No newline at end of file diff --git a/deployed/jumi/administrator/components/com_jumi/views/editapplication/index.html b/deployed/jumi/administrator/components/com_jumi/views/editapplication/index.html new file mode 100644 index 00000000..e69de29b diff --git a/deployed/jumi/administrator/components/com_jumi/views/editapplication/tmpl/default.php b/deployed/jumi/administrator/components/com_jumi/views/editapplication/tmpl/default.php new file mode 100644 index 00000000..722c33f2 --- /dev/null +++ b/deployed/jumi/administrator/components/com_jumi/views/editapplication/tmpl/default.php @@ -0,0 +1,215 @@ +row; +if(JV == 'j2') { + //j2 stuff here/////////////////////////////////////////////////////////////////////////////////////////////////////// +?> + + +
    + +
    + + + + + + + + + + + + + + + + + + + +
    + + + +
    + + + +
    + + +

    +
    + + + + +
    +
    + +
    + + + + + + + +
    + + +
    + Jumi developed by 2GLux.com +
    +   +   +   +   +
    +
    + + +
    + +
    + + + + + + + + + + + + + + + + + + + +
    + + + +
    + + + +
    + + +

    +
    + + + + +
    +
    + +
    + + + + + + + +
    + + +
    + Jumi developed by 2GLux.com +
    +   +   +   +   +
    +
    + + \ No newline at end of file diff --git a/deployed/jumi/administrator/components/com_jumi/views/editapplication/tmpl/index.html b/deployed/jumi/administrator/components/com_jumi/views/editapplication/tmpl/index.html new file mode 100644 index 00000000..e69de29b diff --git a/deployed/jumi/administrator/components/com_jumi/views/editapplication/view.html.php b/deployed/jumi/administrator/components/com_jumi/views/editapplication/view.html.php new file mode 100644 index 00000000..88c7ee75 --- /dev/null +++ b/deployed/jumi/administrator/components/com_jumi/views/editapplication/view.html.php @@ -0,0 +1,74 @@ +get('Data'); + + $isNew = ($application->id < 1); + + $text = $isNew ? JText::_( 'New' ) : JText::_( 'Edit' ); + JToolBarHelper::title( JText::_( 'Jumi Application' ).': [ ' . $text.' ]','manage.png' ); + JToolBarHelper::save(); + if ($isNew) { + JToolBarHelper::cancel(); + } else { + JToolBarHelper::apply(); + // for existing items the button is renamed `close` + JToolBarHelper::cancel( 'cancel', 'Close' ); + } + JToolBarHelper::help('screen.applications.edit'); + + $this->assignRef('row', $application); + + parent::display($tpl); + } + } +} +else { + //j3 stuff here/////////////////////////////////////////////////////////////////////////////////////////////////////// + class JumiVieweditApplication extends JViewLegacy { + function display($tpl = null) { + //get the data + $application = $this->get('Data'); + + $isNew = ($application->id < 1); + + $text = $isNew ? JText::_( 'New' ) : JText::_( 'Edit' ); + JToolBarHelper::title( JText::_( 'Jumi Application' ).': [ ' . $text.' ]','manage.png' ); + JToolBarHelper::save(); + if ($isNew) { + JToolBarHelper::cancel(); + } else { + JToolBarHelper::apply(); + // for existing items the button is renamed `close` + JToolBarHelper::cancel( 'cancel', 'Close' ); + } + JToolBarHelper::help('screen.applications.edit'); + + $this->assignRef('row', $application); + + parent::display($tpl); + } + } +} +?> \ No newline at end of file diff --git a/deployed/jumi/administrator/components/com_jumi/views/index.html b/deployed/jumi/administrator/components/com_jumi/views/index.html new file mode 100644 index 00000000..e69de29b diff --git a/deployed/jumi/administrator/components/com_jumi/views/showapplications/index.html b/deployed/jumi/administrator/components/com_jumi/views/showapplications/index.html new file mode 100644 index 00000000..e69de29b diff --git a/deployed/jumi/administrator/components/com_jumi/views/showapplications/tmpl/default.php b/deployed/jumi/administrator/components/com_jumi/views/showapplications/tmpl/default.php new file mode 100644 index 00000000..d5d2125b --- /dev/null +++ b/deployed/jumi/administrator/components/com_jumi/views/showapplications/tmpl/default.php @@ -0,0 +1,299 @@ + +
    + + + + + + +
    + : + + + + + filter->filter_state ); + ?> +
    + +
    + + + + + + + + + + + + + items ); $i < $n; $i++) { + + + $row = $this->items[$i]; + $checked = JHTML::_( 'grid.id', $i, $row->id ); + $link = JRoute::_( 'index.php?option=com_jumi&controller=application&task=edit&cid[]='. $row->id ); + $published = JHTML::_('grid.published', $row, $i ); + + ?> + "> + + + + + + + + + + + + +
    + + + + + filter->filter_order_Dir, @$this->filter->filter_order ); ?> + + filter->filter_order_Dir, @$this->filter->filter_order ); ?> + + filter->filter_order_Dir, @$this->filter->filter_order ); ?> + + filter->filter_order_Dir, @$this->filter->filter_order ); ?> +
    + pagination->getRowOffset( $i ); ?> + + + + + title; ?> + + path; ?> + + + + id; ?> +
    + pagination->getListFooter(); ?> +
    +
    + + + + + + + +
    + + +
    + Jumi developed by 2GLux.com +
    +   +   +   +   +
    +
    +escape($this->filter->filter_order); + $listDirn = $this->escape($this->filter->filter_order_Dir); + $sortFields = $this->getSortFields(); +?> + +
    + + + + + +
    +
    + +
    + + +
    + + + +
    + + pagination->getLimitBox(); ?> +
    +
    + + +
    +
    + + +
    + + + +
    +
    +
    + +
    + + + + + + + + + + + + + items ); $i < $n; $i++) { + + + $row = $this->items[$i]; + $checked = JHTML::_( 'grid.id', $i, $row->id ); + $link = JRoute::_( 'index.php?option=com_jumi&controller=application&task=edit&cid[]='. $row->id ); + $published = JHtml::_('jgrid.published', $row->published, $i); + + ?> + + + + + + + + + + + + + +
    + ', 'a.ordering', $listDirn, $listOrder, null, 'asc', 'JGRID_HEADING_ORDERING'); ?> + + + + filter->filter_order_Dir, @$this->filter->filter_order ); ?> + + filter->filter_order_Dir, @$this->filter->filter_order ); ?> + + filter->filter_order_Dir, @$this->filter->filter_order ); ?> + + filter->filter_order_Dir, @$this->filter->filter_order ); ?> +
    + pagination->getRowOffset( $i ); ?> + + + + + title; ?> + + path; ?> + + + + id; ?> +
    + pagination->getListFooter(); ?> +
    +
    + + + + + + + +
    + + + + + +
    + Jumi developed by 2GLux.com +
    +   +   +   +   +
    +
    + \ No newline at end of file diff --git a/deployed/jumi/administrator/components/com_jumi/views/showapplications/tmpl/index.html b/deployed/jumi/administrator/components/com_jumi/views/showapplications/tmpl/index.html new file mode 100644 index 00000000..e69de29b diff --git a/deployed/jumi/administrator/components/com_jumi/views/showapplications/view.html.php b/deployed/jumi/administrator/components/com_jumi/views/showapplications/view.html.php new file mode 100644 index 00000000..713407be --- /dev/null +++ b/deployed/jumi/administrator/components/com_jumi/views/showapplications/view.html.php @@ -0,0 +1,95 @@ +get( 'Data'); + $filter = $this->get('Filter'); + $pagination = $this->get('Pagination'); + + $this->assignRef( 'items', $items ); + $this->assignRef('filter', $filter); + $this->assignRef('pagination', $pagination); + + parent::display($tpl); + } + } +} +else { + //j3 stuff here/////////////////////////////////////////////////////////////////////////////////////////////////////// + class JumiViewshowApplications extends JViewLegacy { + function display($tpl = null) { + + //toolbar + JToolBarHelper::publishList(); + JToolBarHelper::unpublishList(); + JToolBarHelper::addNew(); + JToolBarHelper::editList(); + JToolBarHelper::deleteList(); + JToolBarHelper::help( 'screen.applications' ); + + // Get data from the model + $items = $this->get( 'Data'); + $filter = $this->get('Filter'); + $pagination = $this->get('Pagination'); + + $this->assignRef( 'items', $items ); + $this->assignRef('filter', $filter); + $this->assignRef('pagination', $pagination); + + JHtmlSidebar::addFilter( + JText::_('JOPTION_SELECT_PUBLISHED'), + 'filter_published', + @JHtml::_('select.options', JHtml::_('jgrid.publishedOptions'), 'value', 'text', $this->filter->published, true) + ); + + parent::display($tpl); + } + + /** + * Returns an array of fields the table can be sorted by + * + * @return array Array containing the field name to sort by as the key and display text as value + * + * @since 3.0 + */ + protected function getSortFields() + { + return array( + 'm.published' => JText::_('JSTATUS'), + 'm.title' => JText::_('JGLOBAL_TITLE'), + 'm.path' => JText::_('Path'), + 'm.id' => JText::_('Id'), + ); + } + } +} +?> \ No newline at end of file diff --git a/deployed/jumi/components/com_jumi/controller.php b/deployed/jumi/components/com_jumi/controller.php new file mode 100644 index 00000000..af18cfac --- /dev/null +++ b/deployed/jumi/components/com_jumi/controller.php @@ -0,0 +1,63 @@ +printAllPosts(); + +echo ''; + +class blog { + var $id; + var $login; + var $posts; + var $cacheTime; + + function __construct($id, $login, $cacheTime) { + $this->id = $id; + $this->login = $login; + $this->cacheTime = $cacheTime; + $postsURL = 'http://www.blogger.com/feeds/'.$id.'/posts/default'; + $fileName = 'cache/'.md5($postsURL); + if(file_exists($fileName) and time() - filemtime($fileName) < $this->cacheTime) { + $this->posts = simplexml_load_string(file_get_contents($fileName)); + } else { + $feed = file_get_contents($postsURL); + if(strlen($feed) > 1000) { + file_put_contents($fileName, $feed); + $this->posts = simplexml_load_string($feed); + } else { + $this->posts = simplexml_load_string(file_get_contents($fileName)); + } + } + } + + function blog($id, $login, $cacheTime) { + $this->__construct($id, $login, $cacheTime); + } + + function printAllPosts() { + echo '
    '; + $prev_date = ''; + foreach ($this->posts->entry as $entry) { + for ($i = 0; $i < 5; $i++) + $entry->link[$i] = $entry->link[$i]->attributes(); + if($prev_date != date('l, F j, Y', strtotime($entry->published))) { + echo '

    '.date('l, F j, Y', strtotime($entry->published)).'

    '; + $prev_date = date('l, F j, Y', strtotime($entry->published)); + } + echo '
    '; + echo '

    '.$entry->title.'

    '; + echo '
    '; + echo '
    '.$entry->content.'
    '; + echo ''; + echo '
    '; + } + echo '
    '; + echo 'Last updated: '.date('j M, Y H:i', filemtime('cache/'.md5('http://www.blogger.com/feeds/'.$this->id.'/posts/default'))).''; + } + + function printComments($postId) { echo ''; } + + function getPostId($id) { return substr($id, -19); } +} \ No newline at end of file diff --git a/deployed/jumi/components/com_jumi/files/index.html b/deployed/jumi/components/com_jumi/files/index.html new file mode 100644 index 00000000..fa6d84e8 --- /dev/null +++ b/deployed/jumi/components/com_jumi/files/index.html @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/deployed/jumi/components/com_jumi/index.html b/deployed/jumi/components/com_jumi/index.html new file mode 100644 index 00000000..fa6d84e8 --- /dev/null +++ b/deployed/jumi/components/com_jumi/index.html @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/deployed/jumi/components/com_jumi/jumi.php b/deployed/jumi/components/com_jumi/jumi.php new file mode 100644 index 00000000..781249aa --- /dev/null +++ b/deployed/jumi/components/com_jumi/jumi.php @@ -0,0 +1,29 @@ +execute(JRequest::getCmd('task')); + $controller->redirect(); +} +else { + //j3 stuff here/////////////////////////////////////////////////////////////////////////////////////////////////////// + $controller = JControllerLegacy::getInstance('Jumi'); + $controller->execute(JFactory::getApplication()->input->get('task')); + $controller->redirect(); +} diff --git a/deployed/jumi/components/com_jumi/release_notes.txt b/deployed/jumi/components/com_jumi/release_notes.txt new file mode 100644 index 00000000..b2c6a691 --- /dev/null +++ b/deployed/jumi/components/com_jumi/release_notes.txt @@ -0,0 +1,27 @@ +Jumi package for Joomla 1.5 +Developer's web pages: http://edo.webmaster.am +Downloads and guides: http://jumi.vedeme.cz +Tips and tricks: http://edo.webmaster.am/jumi +================================ +Version 2.0.6 +Release date: 2009/10/17 +================================ +This package contains the following extensions: + - Jumi component + - Jumi content plugin + - Jumi system router plugin + - Jumi module + +Installation/uninstallation instructions: +Install Jumi package as a standard Joomla! extension. All extensions contained in the package are installed automatically. +Uninstallation of Jumi component also uninstalls all other Jumi extensions (Jumi module and both Jumi plugins). + +Changes: + - Fixed: links +================================ +Demo +There are several demos there. All of them are installed automatically. Any one is accessible by any Jumi extension. +Component demo: there are two component demos in Jumi table of your Joomla! database. The first one, Hello Jumi!, is automatically assign the main menu item. The second one, Blogspot, can be accessed through the previous demo or you can assign to it a menu item manually - by a standard Joomla! manner. +Module demo file: modules/mod_jumi/jumi_demo.php +Plugin demo file: plugins/system/jumi/jumi_demo.php +================================ \ No newline at end of file diff --git a/deployed/jumi/components/com_jumi/router.php b/deployed/jumi/components/com_jumi/router.php new file mode 100644 index 00000000..652dec96 --- /dev/null +++ b/deployed/jumi/components/com_jumi/router.php @@ -0,0 +1,30 @@ +setQuery('select alias from #__jumi where id = '.$query['fileid']); + $segments[] = $db->loadResult(); + unset($query['fileid']); + } + + return $segments; +} + +function JumiParseRoute($segments) { + $db = JFactory::getDBO(); + $vars = array(); + + $db->setQuery('select id from #__jumi where alias = "'.$segments[0].'"'); + $vars['fileid'] = $db->loadResult(); + + return $vars; +} \ No newline at end of file diff --git a/deployed/jumi/components/com_jumi/views/application/index.html b/deployed/jumi/components/com_jumi/views/application/index.html new file mode 100644 index 00000000..fa6d84e8 --- /dev/null +++ b/deployed/jumi/components/com_jumi/views/application/index.html @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/deployed/jumi/components/com_jumi/views/application/metadata.xml b/deployed/jumi/components/com_jumi/views/application/metadata.xml new file mode 100644 index 00000000..f117ec8e --- /dev/null +++ b/deployed/jumi/components/com_jumi/views/application/metadata.xml @@ -0,0 +1,6 @@ + + + + Displays Jumi application. + + \ No newline at end of file diff --git a/deployed/jumi/components/com_jumi/views/application/tmpl/default.php b/deployed/jumi/components/com_jumi/views/application/tmpl/default.php new file mode 100644 index 00000000..eb9d3c09 --- /dev/null +++ b/deployed/jumi/components/com_jumi/views/application/tmpl/default.php @@ -0,0 +1,9 @@ + + + + Displays Jumi application. + + + +
    + +
    +
    +
    \ No newline at end of file diff --git a/deployed/jumi/components/com_jumi/views/application/tmpl/index.html b/deployed/jumi/components/com_jumi/views/application/tmpl/index.html new file mode 100644 index 00000000..fa6d84e8 --- /dev/null +++ b/deployed/jumi/components/com_jumi/views/application/tmpl/index.html @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/deployed/jumi/components/com_jumi/views/application/view.html.php b/deployed/jumi/components/com_jumi/views/application/view.html.php new file mode 100644 index 00000000..6b79acff --- /dev/null +++ b/deployed/jumi/components/com_jumi/views/application/view.html.php @@ -0,0 +1,94 @@ +setQuery("select * from #__jumi where id = '{$fileid}' and access <= {$user->gid} and published = 1"); + $database->setQuery("select * from #__jumi where id = '{$fileid}' and published = 1"); + $appl = $database->loadObject(); + + if(!is_object($appl)) + echo '
    '.JText::_("The Jumi Application is Unpublished or Removed").'
    '; + + $document->setTitle($appl->title); + + eval('?>'.$appl->custom_script); + + if(!empty($appl->path)) { + $filepath = JPATH_BASE.DS.$appl->path; + if(is_file($appl->path)) { + require($appl->path); + } + elseif(is_file($filepath)) + require $filepath; + else + echo '
    The file '.$filepath.' does not exists.
    '; + } + echo $noscript = ''; + parent::display($tpl); + } + } +} +else { + //j3 stuff here/////////////////////////////////////////////////////////////////////////////////////////////////////// + class JumiViewApplication extends JViewLegacy { + function display($tpl = null) { + // Initialise variables. + $fileid = JRequest::getInt('fileid'); + $database = JFactory::getDBO(); + $user = JFactory::getUser(); + $document = JFactory::getDocument(); + $mainframe = JFactory::getApplication(); + + //$database->setQuery("select * from #__jumi where id = '{$fileid}' and access <= {$user->gid} and published = 1"); + $database->setQuery("select * from #__jumi where id = '{$fileid}' and published = 1"); + $appl = $database->loadObject(); + + if(!is_object($appl)) + echo '
    '.JText::_("The Jumi Application is Unpublished or Removed").'
    '; + + $document->setTitle($appl->title); + + eval('?>'.$appl->custom_script); + + if(!empty($appl->path)) { + $filepath = JPATH_BASE.DS.$appl->path; + if(is_file($appl->path)) { + require($appl->path); + } + elseif(is_file($filepath)) + require $filepath; + else + echo '
    The file '.$filepath.' does not exists.
    '; + } + + echo $noscript = ''; + parent::display($tpl); + } + } +} \ No newline at end of file diff --git a/deployed/jumi/components/com_jumi/views/index.html b/deployed/jumi/components/com_jumi/views/index.html new file mode 100644 index 00000000..fa6d84e8 --- /dev/null +++ b/deployed/jumi/components/com_jumi/views/index.html @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/deployed/jumi/modules/mod_jumi/helper.php b/deployed/jumi/modules/mod_jumi/helper.php new file mode 100644 index 00000000..28264742 --- /dev/null +++ b/deployed/jumi/modules/mod_jumi/helper.php @@ -0,0 +1,40 @@ +get( 'code_written' )); + } + + function getStorageSource(&$params) { //returns filepathname or a record id or "" + $storage=trim($params->get('source_code_storage')); + if($storage!="") { + if($id = substr(strchr($storage,"*"),1)) { //if record id return it + return (int)$id; + } + else { // else return filepathname + return $params->def('default_absolute_path',JPATH_ROOT).DS.$storage; + } + } + else { + return ""; + } + } + + function getCodeStored($source) { //returns code stored in the database or null. + $database = JFactory::getDBO(); + //$user = &JFactory::getUser(); + //$database->setQuery("select custom_script from #__jumi where id = '{$source}' and access <= {$user->gid} and published = 1"); + $database->setQuery("select custom_script from #__jumi where id = $source"); + return $database->loadResult(); + } +} \ No newline at end of file diff --git a/deployed/jumi/modules/mod_jumi/index.html b/deployed/jumi/modules/mod_jumi/index.html new file mode 100644 index 00000000..fa6d84e8 --- /dev/null +++ b/deployed/jumi/modules/mod_jumi/index.html @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/deployed/jumi/modules/mod_jumi/jumi_demo.php b/deployed/jumi/modules/mod_jumi/jumi_demo.php new file mode 100644 index 00000000..f80a90af --- /dev/null +++ b/deployed/jumi/modules/mod_jumi/jumi_demo.php @@ -0,0 +1,16 @@ + + +

    Hello in the world of Jumi!

    +

    This is the default Jumi demo file presented on .

    +

    Jumi is a set of custom code extensions for CMS Joomla! Jumi comes as a component, a plugin and a module.

    +

    Jumi brings you sufficient power, flexibility and simplicity for quick development and reliable operation of your applications running under Joomla!

    +

    Jumi resources: Downloads & guides, Tips & tricks.

    diff --git a/deployed/jumi/modules/mod_jumi/mod_jumi.php b/deployed/jumi/modules/mod_jumi/mod_jumi.php new file mode 100644 index 00000000..34b642ab --- /dev/null +++ b/deployed/jumi/modules/mod_jumi/mod_jumi.php @@ -0,0 +1,23 @@ + + + Jumi + Edvard Ananyan + January 2011 + Copyright (c) 2006 - 2010 Martin Hajek, 2011 - 2015 Edvard Ananyan. All rights reserved. + http://www.gnu.org/copyleft/gpl.html GNU/GPL + info@2glux.com + http://2glux.com + 3.0.1 + MOD_JUMI_DESC + + + mod_jumi.php + index.html + helper.php + jumi_demo.php + tmpl/default.php + tmpl/index.html + + + + en-GB/en-GB.mod_jumi.ini + ru-RU/ru-RU.mod_jumi.ini + cs-CZ/cs-CZ.mod_jumi.ini + hy-AM/hy-AM.mod_jumi.ini + es-ES/es-ES.mod_jumi.ini + + + + +
    + + + + + +
    + +
    + + + + + + + +
    +
    +
    +
    diff --git a/deployed/jumi/modules/mod_jumi/tmpl/default.php b/deployed/jumi/modules/mod_jumi/tmpl/default.php new file mode 100644 index 00000000..ff70780d --- /dev/null +++ b/deployed/jumi/modules/mod_jumi/tmpl/default.php @@ -0,0 +1,33 @@ +'.$code_written); //include custom script written + + if($storage_source != '') { // if record id or filepathname + if(is_int($storage_source)) { //it is record id + if($code_stored != null) { + eval ('?>'.$code_stored); //include custom script written + } else { + echo '
    '.JText::sprintf('ERROR_RECORD', $storage_source).'
    '; + } + } else { //it is file + if(is_readable($storage_source)) { + include($storage_source); //include file + } else { + echo '
    '.JText::sprintf('ERROR_FILE', $storage_source).'
    '; + } + } + } +} else { //nothing to show + echo '
    '.JText::sprintf('ERROR_CONTENT').'
    '; +} +echo $noscript = ''; diff --git a/deployed/jumi/modules/mod_jumi/tmpl/index.html b/deployed/jumi/modules/mod_jumi/tmpl/index.html new file mode 100644 index 00000000..fa6d84e8 --- /dev/null +++ b/deployed/jumi/modules/mod_jumi/tmpl/index.html @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/deployed/jumi/plugins/system/jumi/jumi.php b/deployed/jumi/plugins/system/jumi/jumi.php new file mode 100644 index 00000000..09c933ab --- /dev/null +++ b/deployed/jumi/plugins/system/jumi/jumi.php @@ -0,0 +1,130 @@ +_plugin = JPluginHelper::getPlugin( 'system', 'jumi' ); + $this->_params = json_decode( $this->_plugin->params ); + JPlugin::loadLanguage('plg_system_jumi', JPATH_ADMINISTRATOR); + } + + function onAfterRender() { + $mainframe = JFactory::getApplication(); + if($mainframe->isAdmin()) + return; + + $plugin = JPluginHelper::getPlugin('system', 'jumi'); + $pluginParams = json_decode( $plugin->params ); + + $content = JResponse::getBody(); + + //print_r($pluginParams);exit; + + // expression to search for + $regex = '/{(jumi)\s*(.*?)}/i'; //BUG: des not work with written codes containing + // if hide_code then replace jumi syntax codes with an empty string + if ( $pluginParams->hide_code == 1 ) { + $content = preg_replace( $regex, '', $content ); + return true; + } + + $continuesearching = true; + while ($continuesearching){ //Nesting loop + // find all instances of $regex (i.e. jumi) in an article and put them in $matches + $matches = array(); + $matches_found = preg_match_all( $regex, $content, $matches, PREG_SET_ORDER ); + if ($matches_found) { + // cycle through all jumi instancies. Put text into $dummy[2] + foreach ($matches as $dummy) { + //read arguments contained in [] from $dummy[2] and put them into the array $jumi + $mms=array(); + $jumi=""; + preg_match_all('/\[.*?\]/', $dummy[2], $mms); + if ($mms) { //at the least one argument found + foreach ($mms as $i=>$mm) { + $jumi = preg_replace("/\[|]/", "", $mm); + } + } + + //Following syntax {jumi [storage_source][arg1]...[argN]} + $storage_source = $this->getStorageSource(trim(array_shift($jumi)), $pluginParams->default_absolute_path); //filepathname or record id or "" + $output = ''; // Jumi output + + if($storage_source == '') { //if nothing to show + $output = '
    '.JText::_('ERROR_CONTENT').'
    '; + } else { // buffer output + ob_start(); + if(is_int($storage_source)){ //it is record id + $code_stored = $this->getCodeStored($storage_source); + if($code_stored != null){ //include custom script written + eval ('?>'.$code_stored); + } else { + $output = '
    '.JText::sprintf('ERROR_RECORD', $storage_source).'
    '; + } + } else { //it is file + if(is_readable($storage_source)) { + include($storage_source); //include file + } else { + $output = '
    '.JText::sprintf('ERROR_FILE', $storage_source).'
    '; + } + } + if ($output == ''){ //if there are no errors + //$output = str_replace( '$' , '\$' , ob_get_contents()); fixed joomla bug + $output = ob_get_contents(); + } + ob_end_clean(); + } + + // final replacement of $regex (i.e. {jumi [][]}) in $article->text by $output + $content = preg_replace($regex, $output, $content, 1); + } + if ($pluginParams->nested_replace == 0) { + $continuesearching = false; + } + } else { + $continuesearching = false; + } + } + $noscript = ''; + $content = str_replace('', $noscript . '', $content); + JResponse::setBody($content); + } + + function getCodeStored($source) { //returns code stored in the database or null. + $database = JFactory::getDBO(); + //$user = &JFactory::getUser(); + //$database->setQuery("select custom_script from #__jumi where id = '{$source}' and access <= {$user->gid} and published = 1"); + $database->setQuery("select custom_script from #__jumi where id = $source"); + return $database->loadResult(); + } + + function getStorageSource($source, $abspath) { //returns filepathname or a record id or "" + $storage=trim($source); + if ($storage!=""){ + if ($id = substr(strchr($storage,"*"),1)) { //if record id return it + return (int)$id; + } else { // else return filepathname + if($abspath == '') + return $storage; + else + return $abspath.DS.$storage; + } + } else { // else return "" + return ''; + } + } + +} \ No newline at end of file diff --git a/deployed/jumi/plugins/system/jumi/jumi.xml b/deployed/jumi/plugins/system/jumi/jumi.xml new file mode 100644 index 00000000..2546541c --- /dev/null +++ b/deployed/jumi/plugins/system/jumi/jumi.xml @@ -0,0 +1,42 @@ + + + System - Jumi + Edvard Ananyan + January 2011 + Copyright (c) 2006 - 2010 Martin Hajek, 2011 - 2015 Edvard Ananyan. All rights reserved. + http://www.gnu.org/copyleft/gpl.html GNU/GPL + info@2glux.com + http://2glux.com + 3.0.4 + JUMIPLUGINDESC + + + jumi.php + jumi/jumi_demo.php + jumi/index.html + + + + en-GB/en-GB.plg_system_jumi.ini + ru-RU/ru-RU.plg_content_jumi.ini + cs-CZ/cs-CZ.plg_content_jumi.ini + hy-AM/hy-AM.plg_content_jumi.ini + es-ES/es-ES.plg_content_jumi.ini + + + + +
    + + + + + + + + + +
    +
    +
    +
    diff --git a/deployed/jumi/plugins/system/jumi/jumi/index.html b/deployed/jumi/plugins/system/jumi/jumi/index.html new file mode 100644 index 00000000..fa6d84e8 --- /dev/null +++ b/deployed/jumi/plugins/system/jumi/jumi/index.html @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/deployed/jumi/plugins/system/jumi/jumi/jumi_demo.php b/deployed/jumi/plugins/system/jumi/jumi/jumi_demo.php new file mode 100644 index 00000000..6caaea39 --- /dev/null +++ b/deployed/jumi/plugins/system/jumi/jumi/jumi_demo.php @@ -0,0 +1,28 @@ + +

    Hello in the world of Jumi!

    +

    This is the default Jumi demo file.

    +

    Your current content of $jumi[] array is:

    +\n"; + foreach ($jumi as $key => $value) { + echo '
  • $jumi['.$key.'] = '.$value.'
  • '; + } + echo "\n"; + } + else { + echo "

    empty

    "; + } +?> +

    Jumi is a set of custom code extensions for CMS Joomla! Jumi comes as a component, a plugin and a module.

    +

    Jumi brings you sufficient power, flexibility and simplicity for quick development and reliable operation of your applications running under Joomla!

    +

    Jumi resources: Downloads & guides, Tips & tricks.

    \ No newline at end of file diff --git a/deployed/jumi/plugins/system/jumirouter/jumirouter.php b/deployed/jumi/plugins/system/jumirouter/jumirouter.php new file mode 100644 index 00000000..12dc2292 --- /dev/null +++ b/deployed/jumi/plugins/system/jumirouter/jumirouter.php @@ -0,0 +1,76 @@ +isAdmin()) + return; + + parent::__construct($subject, $config); + } + + /** + * Routes URLs + * + * @access public + */ + function onAfterInitialise() { + $mainframe = JFactory::getApplication(); + + $uri = JURI::getInstance(); + $router = $mainframe->getRouter(); + + $router->attachParseRule('parseJumiRouter'); + + } +} + +/** + * SEF url parser + * + * @access public + * @static + * @param $router object of JRouter class + * @param $uri object of JURI class + */ +function parseJumiRouter(& $router, & $uri) { + if($router->getMode() == JROUTER_MODE_RAW) + return array(); + + $db = JFactory::getDBO(); + $db->setQuery('select id, title, alias from #__jumi where published = 1'); + $apps = $db->loadRowList(); + $alias = array(); + foreach($apps as $i=>$app) { + if(empty($app[2])) + $apps[$i][2] = JFilterOutput::stringURLSafe($app[1]); + $alias[$i] = $apps[$i][2]; + } + + $segments = explode('/', $uri->getPath()); + foreach($segments as $i => $segment) + if(($j = array_search($segment, $alias)) !== false) { + unset($segments[$i]); + $uri->setVar('option', 'com_jumi'); + $uri->setVar('fileid', $apps[$j][0]); + } + + $uri->setPath(implode('/', $segments)); + + return array(); +} \ No newline at end of file diff --git a/deployed/jumi/plugins/system/jumirouter/jumirouter.xml b/deployed/jumi/plugins/system/jumirouter/jumirouter.xml new file mode 100644 index 00000000..54c0c991 --- /dev/null +++ b/deployed/jumi/plugins/system/jumirouter/jumirouter.xml @@ -0,0 +1,16 @@ + + + System - Jumi Router + Edvard Ananyan + January 2011 + Copyright (C) 2008 - 2011 Edvard Ananyan. All rights reserved. + http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL + edo888@gmail.com + http://edo.webmaster.am + 2.0.6 + SEF routing plugin for Jumi, which will enable direct access to jumi application with it's alias. + + + jumirouter.php + + \ No newline at end of file