From d0601027562fa8c86f42d49f3e950031ad1efccb 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:30:02 +0200 Subject: [PATCH] feat(pkg): reconcile Phoca Download to live (Cadline delta) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Reconcile to live bytes. Diff vs pristine = Cadline modifications (trial-download flow, Hungarian routes, DB query — ~10 files per audit) + line-endings/install files. Signed-off-by: LÁZÁR Imre Assisted-by: claude-code@claude-opus-4-8 --- .../components/com_phocadownload/access.xml | 12 + .../components/com_phocadownload/config.xml | 550 +++++++ .../com_phocadownload/controller.php | 56 + .../com_phocadownload/controllers/index.html | 1 + .../controllers/phocadownloadcat.php | 56 + .../controllers/phocadownloadcats.php | 42 + .../controllers/phocadownloaddownloads.php | 46 + .../controllers/phocadownloadfile.php | 79 ++ .../controllers/phocadownloadfiles.php | 81 ++ .../controllers/phocadownloadinfo.php | 25 + .../controllers/phocadownloadinstall.php | 993 +++++++++++++ .../controllers/phocadownloadlayout.php | 110 ++ .../controllers/phocadownloadlayouts.php | 18 + .../controllers/phocadownloadlic.php | 45 + .../controllers/phocadownloadlics.php | 36 + .../controllers/phocadownloadlinkfile.php | 18 + .../controllers/phocadownloadlogs.php | 32 + .../controllers/phocadownloadm.php | 56 + .../controllers/phocadownloadrafile.php | 33 + .../controllers/phocadownloadset.php | 67 + .../controllers/phocadownloadstat.php | 44 + .../controllers/phocadownloadstyle.php | 43 + .../controllers/phocadownloadstyles.php | 39 + .../controllers/phocadownloadtag.php | 45 + .../controllers/phocadownloadtags.php | 34 + .../controllers/phocadownloaduninstall.php | 37 + .../controllers/phocadownloadupload.php | 116 ++ .../controllers/phocadownloaduploads.php | 30 + .../com_phocadownload/help/en-GB/index.html | 1 + .../help/en-GB/logo-phoca.png | Bin 0 -> 6474 bytes .../help/en-GB/screen.phocadownload.html | 31 + .../com_phocadownload/help/index.html | 1 + .../com_phocadownload/help/logo-phoca.png | Bin 0 -> 6474 bytes .../help/screen.phocadownload.html | 31 + .../com_phocadownload/helpers/index.html | 1 + .../helpers/phocadownloadcats.php | 29 + .../helpers/phocadownloadcp.php | 24 + .../helpers/phocadownloaddownloads.php | 30 + .../helpers/phocadownloadfiles.php | 29 + .../helpers/phocadownloadlayouts.php | 51 + .../helpers/phocadownloadlics.php | 29 + .../helpers/phocadownloadlogs.php | 30 + .../helpers/phocadownloadmanager.php | 36 + .../helpers/phocadownloadrafile.php | 36 + .../helpers/phocadownloadrate.php | 313 ++++ .../helpers/phocadownloadstat.php | 29 + .../helpers/phocadownloadstyles.php | 29 + .../helpers/phocadownloadtags.php | 29 + .../helpers/phocadownloaduploads.php | 29 + .../helpers/phocauserstat.php | 62 + .../components/com_phocadownload/index.html | 1 + .../com_phocadownload/install/index.html | 1 + .../com_phocadownload/install/script.php | 140 ++ .../com_phocadownload/install/sql/index.html | 1 + .../install/sql/mysql/index.html | 1 + .../install/sql/mysql/install.utf8.sql | 278 ++++ .../install/sql/mysql/uninstall.utf8.sql | 10 + .../com_phocadownload/libraries/index.html | 1 + .../com_phocadownload/libraries/loader.php | 78 + .../libraries/phocadownload/access/access.php | 174 +++ .../libraries/phocadownload/access/index.html | 1 + .../phocadownload/category/category.php | 152 ++ .../phocadownload/category/index.html | 1 + .../phocadownload/download/download.php | 715 ++++++++++ .../phocadownload/download/index.html | 1 + .../libraries/phocadownload/file/file.php | 423 ++++++ .../phocadownload/file/fileupload.php | 693 +++++++++ .../phocadownload/file/fileuploadmultiple.php | 288 ++++ .../phocadownload/file/fileuploadsingle.php | 39 + .../libraries/phocadownload/file/index.html | 1 + .../libraries/phocadownload/html/batch.php | 60 + .../libraries/phocadownload/html/grid.php | 30 + .../libraries/phocadownload/html/index.html | 1 + .../libraries/phocadownload/html/jgrid.php | 37 + .../libraries/phocadownload/index.html | 1 + .../libraries/phocadownload/log/index.html | 1 + .../libraries/phocadownload/log/log.php | 68 + .../libraries/phocadownload/mail/index.html | 1 + .../libraries/phocadownload/mail/mail.php | 83 ++ .../phocadownload/ordering/index.html | 1 + .../phocadownload/ordering/ordering.php | 152 ++ .../phocadownload/pagination/index.html | 1 + .../phocadownload/pagination/pagination.php | 40 + .../libraries/phocadownload/path/index.html | 1 + .../libraries/phocadownload/path/path.php | 88 ++ .../libraries/phocadownload/path/route.php | 393 +++++ .../libraries/phocadownload/rate/index.html | 1 + .../libraries/phocadownload/rate/rate.php | 288 ++++ .../libraries/phocadownload/render/layout.php | 327 +++++ .../phocadownload/render/renderadmin.php | 104 ++ .../phocadownload/render/renderadminview.php | 80 ++ .../phocadownload/render/renderadminviews.php | 399 ++++++ .../phocadownload/render/renderfront.php | 317 +++++ .../libraries/phocadownload/stat/index.html | 1 + .../libraries/phocadownload/stat/stat.php | 84 ++ .../libraries/phocadownload/tag/index.html | 1 + .../libraries/phocadownload/tag/tag.php | 103 ++ .../libraries/phocadownload/user/index.html | 1 + .../libraries/phocadownload/user/user.php | 134 ++ .../phocadownload/utils/exception.php | 25 + .../phocadownload/utils/external.php | 24 + .../libraries/phocadownload/utils/index.html | 1 + .../phocadownload/utils/settings.php | 126 ++ .../libraries/phocadownload/utils/utils.php | 128 ++ .../models/fields/index.html | 1 + .../models/fields/phocaaccesslevel.php | 103 ++ .../models/fields/phocacolortext.php | 90 ++ .../models/fields/phocadownloadcategory.php | 67 + .../models/fields/phocadownloadeditor.php | 128 ++ .../models/fields/phocadownloadfile.php | 47 + .../models/fields/phocadownloadlicense.php | 37 + .../models/fields/phocadownloadordering.php | 88 ++ .../models/fields/phocadownloadtoken.php | 51 + .../models/fields/phocahead.php | 48 + .../models/fields/phocaheadexpert.php | 48 + .../models/fields/phocainfotext.php | 33 + .../models/fields/phocalongtext.php | 83 ++ .../models/fields/phocaselectfilename.php | 87 ++ .../models/fields/phocatags.php | 34 + .../models/fields/phocatext.php | 75 + .../models/fields/phocatextarea.php | 81 ++ .../models/fields/phocausers.php | 28 + .../com_phocadownload/models/forms/index.html | 1 + .../models/forms/phocadownloadcat.xml | 88 ++ .../models/forms/phocadownloadfile.xml | 159 +++ .../models/forms/phocadownloadlayout.xml | 22 + .../models/forms/phocadownloadlic.xml | 33 + .../models/forms/phocadownloadmanager.xml | 33 + .../models/forms/phocadownloadstyle.xml | 32 + .../models/forms/phocadownloadtag.xml | 37 + .../com_phocadownload/models/index.html | 1 + .../models/phocadownloadcat.php | 627 ++++++++ .../models/phocadownloadcats.php | 281 ++++ .../models/phocadownloaddownloads.php | 214 +++ .../models/phocadownloadfile.php | 690 +++++++++ .../models/phocadownloadfiles.php | 203 +++ .../models/phocadownloadlayout.php | 50 + .../models/phocadownloadlic.php | 93 ++ .../models/phocadownloadlics.php | 154 ++ .../models/phocadownloadlinkcat.php | 81 ++ .../models/phocadownloadlinkfile.php | 123 ++ .../models/phocadownloadlog.php | 28 + .../models/phocadownloadlogs.php | 194 +++ .../models/phocadownloadm.php | 514 +++++++ .../models/phocadownloadmanager.php | 168 +++ .../models/phocadownloadrafile.php | 252 ++++ .../models/phocadownloadstat.php | 248 ++++ .../models/phocadownloadstyle.php | 278 ++++ .../models/phocadownloadstyles.php | 258 ++++ .../models/phocadownloadtag.php | 93 ++ .../models/phocadownloadtags.php | 151 ++ .../models/phocadownloadupload.php | 30 + .../models/phocadownloaduploads.php | 221 +++ .../com_phocadownload/phocadownload.php | 42 + .../com_phocadownload/phocadownload.xml | 99 ++ .../com_phocadownload/tables/index.html | 1 + .../tables/phocadownload.php | 113 ++ .../tables/phocadownloadcat.php | 37 + .../tables/phocadownloadfilevotes.php | 21 + .../phocadownloadfilevotesstatistics.php | 21 + .../tables/phocadownloadlayout.php | 21 + .../tables/phocadownloadlic.php | 20 + .../tables/phocadownloadlogging.php | 18 + .../tables/phocadownloadstyle.php | 29 + .../tables/phocadownloadtag.php | 31 + .../tables/phocadownloaduserstats.php | 20 + .../com_phocadownload/update/index.html | 1 + .../com_phocadownload/update/sql/index.html | 1 + .../update/sql/mysql/3.0.2.sql | 23 + .../update/sql/mysql/3.1.1.sql | 4 + .../update/sql/mysql/index.html | 1 + .../com_phocadownload/views/index.html | 1 + .../views/phocadownloadcat/index.html | 1 + .../views/phocadownloadcat/tmpl/edit.php | 62 + .../phocadownloadcat/tmpl/edit_metadata.php | 31 + .../views/phocadownloadcat/tmpl/index.html | 1 + .../views/phocadownloadcat/view.html.php | 89 ++ .../views/phocadownloadcats/index.html | 1 + .../views/phocadownloadcats/tmpl/default.php | 154 ++ .../phocadownloadcats/tmpl/default_batch.php | 48 + .../views/phocadownloadcats/tmpl/index.html | 1 + .../views/phocadownloadcats/view.html.php | 211 +++ .../views/phocadownloadcp/index.html | 1 + .../views/phocadownloadcp/tmpl/default.php | 49 + .../views/phocadownloadcp/tmpl/index.html | 1 + .../views/phocadownloadcp/view.html.php | 62 + .../views/phocadownloaddownloads/index.html | 1 + .../phocadownloaddownloads/tmpl/default.php | 142 ++ .../phocadownloaddownloads/tmpl/index.html | 1 + .../phocadownloaddownloads/view.html.php | 78 + .../views/phocadownloadfile/index.html | 1 + .../views/phocadownloadfile/tmpl/edit.php | 192 +++ .../phocadownloadfile/tmpl/edit_metadata.php | 31 + .../phocadownloadfile/tmpl/edit_text.php | 66 + .../views/phocadownloadfile/tmpl/index.html | 1 + .../views/phocadownloadfile/view.html.php | 71 + .../views/phocadownloadfiles/index.html | 1 + .../views/phocadownloadfiles/tmpl/default.php | 173 +++ .../phocadownloadfiles/tmpl/default_batch.php | 48 + .../views/phocadownloadfiles/tmpl/index.html | 1 + .../views/phocadownloadfiles/view.html.php | 108 ++ .../views/phocadownloadinfo/index.html | 1 + .../views/phocadownloadinfo/tmpl/default.php | 53 + .../views/phocadownloadinfo/tmpl/index.html | 1 + .../views/phocadownloadinfo/view.html.php | 46 + .../views/phocadownloadlayout/index.html | 1 + .../views/phocadownloadlayout/tmpl/edit.php | 102 ++ .../views/phocadownloadlayout/tmpl/index.html | 1 + .../views/phocadownloadlayout/view.html.php | 55 + .../views/phocadownloadlayouts/index.html | 1 + .../phocadownloadlayouts/tmpl/default.php | 1 + .../phocadownloadlayouts/tmpl/index.html | 1 + .../views/phocadownloadlayouts/view.html.php | 26 + .../views/phocadownloadlic/index.html | 1 + .../views/phocadownloadlic/tmpl/edit.php | 56 + .../views/phocadownloadlic/tmpl/index.html | 1 + .../views/phocadownloadlic/view.html.php | 62 + .../views/phocadownloadlics/index.html | 1 + .../views/phocadownloadlics/tmpl/default.php | 123 ++ .../views/phocadownloadlics/tmpl/index.html | 1 + .../views/phocadownloadlics/view.html.php | 81 ++ .../views/phocadownloadlinkcat/index.html | 1 + .../phocadownloadlinkcat/tmpl/default.php | 93 ++ .../phocadownloadlinkcat/tmpl/index.html | 1 + .../views/phocadownloadlinkcat/view.html.php | 66 + .../views/phocadownloadlinkcats/index.html | 1 + .../phocadownloadlinkcats/tmpl/default.php | 65 + .../phocadownloadlinkcats/tmpl/index.html | 1 + .../views/phocadownloadlinkcats/view.html.php | 72 + .../views/phocadownloadlinkfile/index.html | 1 + .../phocadownloadlinkfile/tmpl/default.php | 398 ++++++ .../phocadownloadlinkfile/tmpl/index.html | 1 + .../views/phocadownloadlinkfile/view.html.php | 130 ++ .../views/phocadownloadlinks/index.html | 1 + .../views/phocadownloadlinks/tmpl/default.php | 20 + .../views/phocadownloadlinks/tmpl/index.html | 1 + .../views/phocadownloadlinks/view.html.php | 48 + .../views/phocadownloadlinkytb/index.html | 1 + .../phocadownloadlinkytb/tmpl/default.php | 54 + .../phocadownloadlinkytb/tmpl/index.html | 1 + .../views/phocadownloadlinkytb/view.html.php | 42 + .../views/phocadownloadlogs/index.html | 1 + .../views/phocadownloadlogs/tmpl/default.php | 147 ++ .../views/phocadownloadlogs/tmpl/index.html | 1 + .../views/phocadownloadlogs/view.html.php | 82 ++ .../views/phocadownloadmanager/index.html | 1 + .../phocadownloadmanager/tmpl/default.php | 192 +++ .../tmpl/default_file.php | 53 + .../tmpl/default_folder.php | 36 + .../tmpl/default_multipleupload.php | 13 + .../phocadownloadmanager/tmpl/default_up.php | 11 + .../tmpl/default_upload.php | 12 + .../phocadownloadmanager/tmpl/index.html | 1 + .../views/phocadownloadmanager/view.html.php | 185 +++ .../views/phocadownloadrafile/index.html | 1 + .../phocadownloadrafile/tmpl/default.php | 143 ++ .../views/phocadownloadrafile/tmpl/index.html | 1 + .../views/phocadownloadrafile/view.html.php | 70 + .../views/phocadownloadset/index.html | 1 + .../views/phocadownloadset/tmpl/default.php | 66 + .../views/phocadownloadset/tmpl/index.html | 1 + .../views/phocadownloadset/view.html.php | 42 + .../views/phocadownloadstat/index.html | 1 + .../views/phocadownloadstat/tmpl/default.php | 150 ++ .../views/phocadownloadstat/tmpl/index.html | 1 + .../views/phocadownloadstat/view.html.php | 66 + .../views/phocadownloadstyle/index.html | 1 + .../views/phocadownloadstyle/tmpl/edit.php | 81 ++ .../phocadownloadstyle/tmpl/edit_ftp.php | 41 + .../views/phocadownloadstyle/tmpl/index.html | 1 + .../views/phocadownloadstyle/view.html.php | 89 ++ .../views/phocadownloadstyles/index.html | 1 + .../phocadownloadstyles/tmpl/default.php | 149 ++ .../views/phocadownloadstyles/tmpl/index.html | 1 + .../views/phocadownloadstyles/view.html.php | 88 ++ .../views/phocadownloadtag/index.html | 1 + .../views/phocadownloadtag/tmpl/edit.php | 57 + .../views/phocadownloadtag/tmpl/index.html | 1 + .../views/phocadownloadtag/view.html.php | 64 + .../views/phocadownloadtags/index.html | 1 + .../views/phocadownloadtags/tmpl/default.php | 130 ++ .../views/phocadownloadtags/tmpl/index.html | 1 + .../views/phocadownloadtags/view.html.php | 83 ++ .../views/phocadownloaduploads/index.html | 1 + .../phocadownloaduploads/tmpl/default.php | 137 ++ .../phocadownloaduploads/tmpl/index.html | 1 + .../views/phocadownloaduploads/view.html.php | 78 + .../en-GB/en-GB.com_phocadownload.ini | 811 +++++++++++ .../en-GB/en-GB.com_phocadownload.sys.ini | 59 + .../en-GB/en-GB.plg_content_phocadownload.ini | 33 + .../en-GB.plg_content_phocadownload.sys.ini | 14 + .../en-GB.plg_editors-xtd_phocadownload.ini | 19 + ...n-GB.plg_editors-xtd_phocadownload.sys.ini | 13 + .../en-GB/en-GB.plg_search_phocadownload.ini | 17 + .../en-GB.plg_search_phocadownload.sys.ini | 13 + .../assets/flowplayer/LICENSE-flowplayer.txt | 10 + .../flowplayer/LICENSE-flowplayeraudio.txt | 21 + .../assets/flowplayer/flowplayer-3.2.2.min.js | 24 + .../assets/flowplayer/flowplayer-3.2.2.swf | Bin 0 -> 115213 bytes .../flowplayer/flowplayer.audio-3.2.0.swf | Bin 0 -> 3150 bytes .../flowplayer/flowplayer.controls-3.2.1.swf | Bin 0 -> 35736 bytes .../assets/flowplayer/index.html | 4 + .../assets/overlib/index.html | 1 + .../assets/overlib/overlib_mini.js | 322 +++++ .../assets/plupload/i18n/cs.js | 14 + .../assets/plupload/i18n/da.js | 12 + .../assets/plupload/i18n/de.js | 24 + .../assets/plupload/i18n/el.js | 14 + .../assets/plupload/i18n/es.js | 25 + .../assets/plupload/i18n/et.js | 33 + .../assets/plupload/i18n/fa.js | 37 + .../assets/plupload/i18n/fi.js | 33 + .../assets/plupload/i18n/fr-ca.js | 35 + .../assets/plupload/i18n/fr.js | 25 + .../assets/plupload/i18n/hr.js | 25 + .../assets/plupload/i18n/hu.js | 33 + .../assets/plupload/i18n/index.html | 1 + .../assets/plupload/i18n/it.js | 24 + .../assets/plupload/i18n/ja.js | 37 + .../assets/plupload/i18n/ko.js | 36 + .../assets/plupload/i18n/lv.js | 33 + .../assets/plupload/i18n/nl.js | 21 + .../assets/plupload/i18n/pl.js | 24 + .../assets/plupload/i18n/pt-br.js | 35 + .../assets/plupload/i18n/ro.js | 24 + .../assets/plupload/i18n/ru.js | 21 + .../assets/plupload/i18n/sk.js | 25 + .../assets/plupload/i18n/sr.js | 14 + .../assets/plupload/i18n/sv.js | 12 + .../assets/plupload/index.html | 1 + .../plupload/jquery.plupload.queue.min.js | 12 + .../jquery.plupload.queue/css/index.html | 1 + .../css/jquery.plupload.queue.css | 194 +++ .../jquery.plupload.queue/img/backgrounds.gif | Bin 0 -> 2977 bytes .../img/buttons-disabled.png | Bin 0 -> 1292 bytes .../jquery.plupload.queue/img/buttons.png | Bin 0 -> 1439 bytes .../jquery.plupload.queue/img/delete.gif | Bin 0 -> 180 bytes .../jquery.plupload.queue/img/done.gif | Bin 0 -> 1024 bytes .../jquery.plupload.queue/img/error.gif | Bin 0 -> 994 bytes .../jquery.plupload.queue/img/index.html | 1 + .../jquery.plupload.queue/img/throbber.gif | Bin 0 -> 1922 bytes .../jquery.plupload.queue/img/transp50.png | Bin 0 -> 399 bytes .../plupload/jquery.plupload.queue/index.html | 1 + .../jquery.plupload.queue.js | 348 +++++ .../jquery.ui.plupload/css/index.html | 1 + .../css/jquery.ui.plupload.css | 147 ++ .../jquery.ui.plupload/img/index.html | 1 + .../jquery.ui.plupload/img/plupload-bw.png | Bin 0 -> 2105 bytes .../jquery.ui.plupload/img/plupload.png | Bin 0 -> 3641 bytes .../plupload/jquery.ui.plupload/index.html | 1 + .../jquery.ui.plupload/jquery.ui.plupload.js | 1 + .../assets/plupload/plupload.browserplus.js | 1 + .../assets/plupload/plupload.flash.js | 1 + .../assets/plupload/plupload.flash.swf | Bin 0 -> 18958 bytes .../assets/plupload/plupload.gears.js | 1 + .../assets/plupload/plupload.html4.js | 1 + .../assets/plupload/plupload.html5.js | 1 + .../assets/plupload/plupload.js | 2 + .../assets/plupload/plupload.silverlight.js | 1 + .../assets/plupload/plupload.silverlight.xap | Bin 0 -> 44139 bytes .../com_phocadownload/models/categories.php | 6 +- .../com_phocadownload/models/category.php | 571 ++++++-- .../com_phocadownload/models/download.php | 220 ++- .../com_phocadownload/models/file.php | 537 ++++++- .../com_phocadownload/models/user.php | 1153 +++++++-------- .../com_phocadownload/phocadownload.php | 1 + .../components/com_phocadownload/router.php | 175 ++- .../views/categories/tmpl/default.php | 408 +++--- .../views/categories/tmpl/default.xml | 9 +- .../categories/tmpl/default_bootstrap.php | 170 +++ .../views/categories/view.html.php | 37 +- .../views/category/metadata.xml | 10 +- .../views/category/tmpl/default.php | 800 ++++++++++- .../views/category/tmpl/default.xml | 62 +- .../views/category/tmpl/default_bootstrap.php | 132 ++ .../category/tmpl/default_comments-fb.php | 84 +- .../views/category/tmpl/default_files.php | 640 ++++++--- .../category/tmpl/default_files_bootstrap.php | 541 +++++++ .../category/tmpl/default_pagination.php | 54 +- .../views/category/view.html.php | 395 ++++-- .../views/download/metadata.xml | 10 +- .../views/download/tmpl/default.php | 1119 ++++++++++----- .../views/download/tmpl/default.xml | 24 +- .../views/download/tmpl/default_bootstrap.php | 81 ++ .../views/download/view.html.php | 213 ++- .../com_phocadownload/views/feed/metadata.xml | 6 +- .../views/feed/view.feed.php | 2 +- .../com_phocadownload/views/file/metadata.xml | 10 +- .../views/file/tmpl/default.php | 1260 +++++++++++++++-- .../views/file/tmpl/default.xml | 78 +- .../views/file/tmpl/default_bootstrap.php | 362 +++++ .../views/file/tmpl/default_comments-fb.php | 84 +- .../views/file/view.html.php | 637 ++++++--- .../phocadownloadlinkcat/tmpl/default.php | 4 +- .../views/phocadownloadlinkcat/view.html.php | 4 +- .../phocadownloadlinkcats/tmpl/default.php | 2 +- .../views/phocadownloadlinkcats/view.html.php | 5 +- .../phocadownloadlinkfile/tmpl/default.php | 2 +- .../views/phocadownloadlinkfile/view.html.php | 7 +- .../views/phocadownloadlinks/view.html.php | 4 +- .../phocadownloadlinkytb/tmpl/default.php | 2 +- .../views/phocadownloadlinkytb/view.html.php | 5 +- .../views/user/tmpl/default.php | 86 +- .../views/user/tmpl/default_bootstrap.php | 25 + .../views/user/tmpl/default_files.php | 667 ++++----- .../user/tmpl/default_files_bootstrap.php | 355 +++++ .../views/user/view.html.php | 40 +- .../en-GB/en-GB.com_phocadownload.ini | 841 +++++++++++ .../en-GB/en-GB.com_phocadownload.sys.ini | 59 + .../hu-HU/hu-HU.com_phocadownload.ini | 841 +++++++++++ .../bootstrap/css/bootstrap.extended.css | 36 + .../css/bootstrap.glyphicons.min.css | 14 + .../bootstrap/css/bootstrap.min.css | 890 ++++++++++++ .../bootstrap/css/bs_modal_transition.css | 91 ++ .../bootstrap/css/index.html | 1 + .../fonts/glyphicons-halflings-regular.eot | Bin 0 -> 20290 bytes .../fonts/glyphicons-halflings-regular.svg | 229 +++ .../fonts/glyphicons-halflings-regular.ttf | Bin 0 -> 41236 bytes .../fonts/glyphicons-halflings-regular.woff | Bin 0 -> 23292 bytes .../bootstrap/fonts/index.html | 1 + .../com_phocadownload/bootstrap/index.html | 1 + .../bootstrap/js/bootstrap.min.js | 11 + .../com_phocadownload/bootstrap/js/index.html | 1 + .../css/administrator/index.html | 1 + .../css/administrator/phocadownload.css | 616 ++++++++ .../administrator/phocadownloadoptions.css | 41 + .../css/administrator/rating.css | 268 ++++ .../com_phocadownload/css/custom/default.css | 5 + .../com_phocadownload/css/custom/index.html | 1 + .../media/com_phocadownload/css/index.html | 1 + .../css/main/bootstrap.min.css | 9 + .../com_phocadownload/css/main/button.css | 110 ++ .../com_phocadownload/css/main/buttonrc.css | 18 + .../com_phocadownload/css/main/index.html | 1 + .../css/main/phocadownload.css | 819 +++++++++++ .../com_phocadownload/css/main/rating.css | 268 ++++ .../images/administrator/b-prm.png | Bin 0 -> 21641 bytes .../images/administrator/bg-install.png | Bin 0 -> 2164 bytes .../images/administrator/bg-upgrade.png | Bin 0 -> 2394 bytes .../images/administrator/btn.png | Bin 0 -> 135 bytes .../images/administrator/icon-12-approve.png | Bin 0 -> 702 bytes .../administrator/icon-12-authorizeall.png | Bin 0 -> 669 bytes .../images/administrator/icon-12-back.png | Bin 0 -> 350 bytes .../administrator/icon-12-disapprove.png | Bin 0 -> 682 bytes .../images/administrator/icon-12-multiple.png | Bin 0 -> 621 bytes .../images/administrator/icon-12-reset.png | Bin 0 -> 640 bytes .../images/administrator/icon-16-edb-back.png | Bin 0 -> 758 bytes .../administrator/icon-16-edb-categories.png | Bin 0 -> 637 bytes .../administrator/icon-16-edb-category.png | Bin 0 -> 557 bytes .../images/administrator/icon-16-edb-file.png | Bin 0 -> 869 bytes .../images/administrator/icon-16-edb-play.png | Bin 0 -> 907 bytes .../administrator/icon-16-edb-preview.png | Bin 0 -> 588 bytes .../administrator/icon-16-edb-section.png | Bin 0 -> 541 bytes .../administrator/icon-16-edb-sections.png | Bin 0 -> 642 bytes .../administrator/icon-16-folder-small.png | Bin 0 -> 395 bytes .../images/administrator/icon-16-folder.png | Bin 0 -> 537 bytes .../icon-16-pdl-control-panel.png | Bin 0 -> 670 bytes .../icon-16-pdl-menu-category.png | Bin 0 -> 557 bytes .../icon-16-pdl-menu-downloads.png | Bin 0 -> 759 bytes .../administrator/icon-16-pdl-menu-files.png | Bin 0 -> 869 bytes .../administrator/icon-16-pdl-menu-info.png | Bin 0 -> 777 bytes .../administrator/icon-16-pdl-menu-layout.png | Bin 0 -> 512 bytes .../administrator/icon-16-pdl-menu-lic.png | Bin 0 -> 747 bytes .../icon-16-pdl-menu-section.png | Bin 0 -> 541 bytes .../icon-16-pdl-menu-settings.png | Bin 0 -> 871 bytes .../administrator/icon-16-pdl-menu-stat.png | Bin 0 -> 605 bytes .../administrator/icon-16-pdl-menu-styles.png | Bin 0 -> 887 bytes .../administrator/icon-16-pdl-menu-tags.png | Bin 0 -> 710 bytes .../administrator/icon-16-pdl-menu-upload.png | Bin 0 -> 756 bytes .../administrator/icon-16-pdl-menu-users.png | Bin 0 -> 654 bytes .../icon-16-pdl-menu-vote-file.png | Bin 0 -> 719 bytes .../images/administrator/icon-16-pdl-menu.png | Bin 0 -> 859 bytes .../images/administrator/icon-16-up.png | Bin 0 -> 576 bytes .../administrator/icon-16-upload-multiple.png | Bin 0 -> 821 bytes .../images/administrator/icon-16-upload.png | Bin 0 -> 887 bytes .../administrator/icon-16-user-stat.png | Bin 0 -> 711 bytes .../images/administrator/icon-32-approve.png | Bin 0 -> 1838 bytes .../administrator/icon-32-authorizeall.png | Bin 0 -> 1748 bytes .../administrator/icon-32-disapprove.png | Bin 0 -> 1776 bytes .../images/administrator/icon-32-multiple.png | Bin 0 -> 1584 bytes .../images/administrator/icon-32-reset.png | Bin 0 -> 2196 bytes .../images/administrator/icon-48-cat.png | Bin 0 -> 1348 bytes .../images/administrator/icon-48-cats.png | Bin 0 -> 1348 bytes .../administrator/icon-48-downloads.png | Bin 0 -> 2194 bytes .../images/administrator/icon-48-file.png | Bin 0 -> 3234 bytes .../images/administrator/icon-48-files.png | Bin 0 -> 3234 bytes .../images/administrator/icon-48-info.png | Bin 0 -> 2430 bytes .../images/administrator/icon-48-layouts.png | Bin 0 -> 932 bytes .../images/administrator/icon-48-lic.png | Bin 0 -> 3961 bytes .../images/administrator/icon-48-lics.png | Bin 0 -> 3961 bytes .../images/administrator/icon-48-logs.png | Bin 0 -> 3762 bytes .../administrator/icon-48-pd-multiple.png | Bin 0 -> 2710 bytes .../images/administrator/icon-48-phoca.png | Bin 0 -> 4373 bytes .../administrator/icon-48-phocadownload.png | Bin 0 -> 2984 bytes .../images/administrator/icon-48-rafile.png | Bin 0 -> 2592 bytes .../images/administrator/icon-48-sec.png | Bin 0 -> 1305 bytes .../images/administrator/icon-48-set.png | Bin 0 -> 3568 bytes .../images/administrator/icon-48-stat.png | Bin 0 -> 1190 bytes .../images/administrator/icon-48-styles.png | Bin 0 -> 3085 bytes .../images/administrator/icon-48-tags.png | Bin 0 -> 2082 bytes .../images/administrator/icon-48-uploads.png | Bin 0 -> 2234 bytes .../administrator/icon-48-user-stat.png | Bin 0 -> 2047 bytes .../images/administrator/icon-48-users.png | Bin 0 -> 2029 bytes .../administrator/icon-48-vote-file.png | Bin 0 -> 2592 bytes .../images/administrator/icon-box-pc.png | Bin 0 -> 10813 bytes .../images/administrator/icon-box-pcm.png | Bin 0 -> 10657 bytes .../images/administrator/icon-box-pd.png | Bin 0 -> 10690 bytes .../images/administrator/icon-box-pdc.png | Bin 0 -> 10344 bytes .../images/administrator/icon-box-pe.png | Bin 0 -> 10585 bytes .../images/administrator/icon-box-pf.png | Bin 0 -> 10594 bytes .../images/administrator/icon-box-pfv.png | Bin 0 -> 10578 bytes .../images/administrator/icon-box-pg.png | Bin 0 -> 10763 bytes .../images/administrator/icon-box-pgb.png | Bin 0 -> 10614 bytes .../images/administrator/icon-box-ph.png | Bin 0 -> 10488 bytes .../images/administrator/icon-box-pi.png | Bin 0 -> 10562 bytes .../images/administrator/icon-box-pm.png | Bin 0 -> 10581 bytes .../images/administrator/icon-box-pp.png | Bin 0 -> 11402 bytes .../images/administrator/icon-box-ppdf.png | Bin 0 -> 10606 bytes .../images/administrator/icon-box-prm.png | Bin 0 -> 11053 bytes .../images/administrator/icon-box-psef.png | Bin 0 -> 10647 bytes .../images/administrator/icon-box-pt.png | Bin 0 -> 10340 bytes .../images/administrator/icon-file.png | Bin 0 -> 408 bytes .../images/administrator/icon-folder.png | Bin 0 -> 598 bytes .../images/administrator/icon-phoca-logo.png | Bin 0 -> 2121 bytes .../images/administrator/icon-up.png | Bin 0 -> 856 bytes .../administrator/icon-voting-small.png | Bin 0 -> 1940 bytes .../images/administrator/icon-voting.png | Bin 0 -> 2506 bytes .../images/administrator/index.html | 1 + .../images/administrator/line.png | Bin 0 -> 1597 bytes .../images/administrator/logo-phoca.png | Bin 0 -> 24438 bytes .../images/administrator/logo.png | Bin 0 -> 7953 bytes .../images/administrator/spacer.gif | Bin 0 -> 43 bytes .../images/administrator/white-space.png | Bin 0 -> 378 bytes .../com_phocadownload/images/bg-details.png | Bin 0 -> 262 bytes .../com_phocadownload/images/bg-download.png | Bin 0 -> 257 bytes .../com_phocadownload/images/bg-play.png | Bin 0 -> 244 bytes .../com_phocadownload/images/bg-preview.png | Bin 0 -> 246 bytes .../media/com_phocadownload/images/bl.png | Bin 0 -> 275 bytes .../com_phocadownload/images/blue-bg.png | Bin 0 -> 217 bytes .../media/com_phocadownload/images/br.png | Bin 0 -> 3157 bytes .../media/com_phocadownload/images/btn.png | Bin 0 -> 135 bytes .../images/button-detail-l.png | Bin 0 -> 1563 bytes .../images/button-detail-r.png | Bin 0 -> 572 bytes .../images/button-download-l.png | Bin 0 -> 1352 bytes .../images/button-download-r.png | Bin 0 -> 582 bytes .../images/button-play-l.png | Bin 0 -> 1877 bytes .../images/button-play-r.png | Bin 0 -> 568 bytes .../images/button-preview-l.png | Bin 0 -> 1415 bytes .../images/button-preview-r.png | Bin 0 -> 572 bytes .../com_phocadownload/images/category.png | Bin 0 -> 932 bytes .../com_phocadownload/images/document.png | Bin 0 -> 754 bytes .../media/com_phocadownload/images/folder.png | Bin 0 -> 395 bytes .../com_phocadownload/images/grey-bg.png | Bin 0 -> 208 bytes .../media/com_phocadownload/images/htl.png | Bin 0 -> 213 bytes .../media/com_phocadownload/images/htr.png | Bin 0 -> 216 bytes .../com_phocadownload/images/icon-details.png | Bin 0 -> 554 bytes .../images/icon-document-16.png | Bin 0 -> 682 bytes .../images/icon-document-32.png | Bin 0 -> 1464 bytes .../images/icon-document-48.png | Bin 0 -> 2372 bytes .../images/icon-document-64.png | Bin 0 -> 3459 bytes .../images/icon-download.png | Bin 0 -> 775 bytes .../images/icon-extlink1.png | Bin 0 -> 895 bytes .../images/icon-extlink2.png | Bin 0 -> 907 bytes .../com_phocadownload/images/icon-hot.png | Bin 0 -> 948 bytes .../com_phocadownload/images/icon-loading.gif | Bin 0 -> 8787 bytes .../images/icon-loading2.gif | Bin 0 -> 1569 bytes .../com_phocadownload/images/icon-new.png | Bin 0 -> 882 bytes .../images/icon-phoca-logo.png | Bin 0 -> 2121 bytes .../com_phocadownload/images/icon-play.png | Bin 0 -> 899 bytes .../com_phocadownload/images/icon-preview.png | Bin 0 -> 749 bytes .../images/icon-publish-g.png | Bin 0 -> 643 bytes .../com_phocadownload/images/icon-publish.png | Bin 0 -> 1003 bytes .../com_phocadownload/images/icon-trash-g.png | Bin 0 -> 761 bytes .../com_phocadownload/images/icon-trash.png | Bin 0 -> 854 bytes .../images/icon-unpublish-g.png | Bin 0 -> 600 bytes .../images/icon-unpublish.png | Bin 0 -> 891 bytes .../images/icon-voting-small.png | Bin 0 -> 1401 bytes .../com_phocadownload/images/icon-voting.png | Bin 0 -> 1735 bytes .../media/com_phocadownload/images/index.html | 1 + .../images/mime/16/icon-7zip.png | Bin 0 -> 551 bytes .../images/mime/16/icon-audio.png | Bin 0 -> 554 bytes .../images/mime/16/icon-document.png | Bin 0 -> 535 bytes .../images/mime/16/icon-drawing.png | Bin 0 -> 679 bytes .../images/mime/16/icon-empty.png | Bin 0 -> 311 bytes .../images/mime/16/icon-folder-open.png | Bin 0 -> 431 bytes .../images/mime/16/icon-folder.png | Bin 0 -> 395 bytes .../images/mime/16/icon-gzip.png | Bin 0 -> 551 bytes .../images/mime/16/icon-html.png | Bin 0 -> 770 bytes .../images/mime/16/icon-img.png | Bin 0 -> 671 bytes .../images/mime/16/icon-jar.png | Bin 0 -> 551 bytes .../images/mime/16/icon-pdf.png | Bin 0 -> 799 bytes .../images/mime/16/icon-php.png | Bin 0 -> 757 bytes .../images/mime/16/icon-presentation.png | Bin 0 -> 629 bytes .../images/mime/16/icon-rar.png | Bin 0 -> 621 bytes .../images/mime/16/icon-source.png | Bin 0 -> 586 bytes .../images/mime/16/icon-spreadsheet.png | Bin 0 -> 506 bytes .../images/mime/16/icon-sql.png | Bin 0 -> 510 bytes .../images/mime/16/icon-tar.png | Bin 0 -> 406 bytes .../images/mime/16/icon-txt.png | Bin 0 -> 463 bytes .../images/mime/16/icon-video.png | Bin 0 -> 739 bytes .../images/mime/16/icon-xml.png | Bin 0 -> 585 bytes .../images/mime/16/icon-zip.png | Bin 0 -> 617 bytes .../images/mime/16/index.html | 1 + .../images/mime/32/icon-7zip.png | Bin 0 -> 1310 bytes .../images/mime/32/icon-audio.png | Bin 0 -> 1251 bytes .../images/mime/32/icon-document.png | Bin 0 -> 1843 bytes .../images/mime/32/icon-drawing.png | Bin 0 -> 1153 bytes .../images/mime/32/icon-empty.png | Bin 0 -> 678 bytes .../images/mime/32/icon-folder-open.png | Bin 0 -> 1042 bytes .../images/mime/32/icon-folder.png | Bin 0 -> 995 bytes .../images/mime/32/icon-gzip.png | Bin 0 -> 1183 bytes .../images/mime/32/icon-html.png | Bin 0 -> 1819 bytes .../images/mime/32/icon-img.png | Bin 0 -> 1468 bytes .../images/mime/32/icon-jar.png | Bin 0 -> 1411 bytes .../images/mime/32/icon-pdf.png | Bin 0 -> 1756 bytes .../images/mime/32/icon-php.png | Bin 0 -> 1891 bytes .../images/mime/32/icon-presentation.png | Bin 0 -> 1525 bytes .../images/mime/32/icon-rar.png | Bin 0 -> 1384 bytes .../images/mime/32/icon-source.png | Bin 0 -> 1459 bytes .../images/mime/32/icon-spreadsheet.png | Bin 0 -> 1351 bytes .../images/mime/32/icon-sql.png | Bin 0 -> 933 bytes .../images/mime/32/icon-tar.png | Bin 0 -> 704 bytes .../images/mime/32/icon-txt.png | Bin 0 -> 1516 bytes .../images/mime/32/icon-video.png | Bin 0 -> 2058 bytes .../images/mime/32/icon-xml.png | Bin 0 -> 1628 bytes .../images/mime/32/icon-zip.png | Bin 0 -> 1347 bytes .../images/mime/32/index.html | 1 + .../images/mime/48/icon-7zip.png | Bin 0 -> 1955 bytes .../images/mime/48/icon-audio.png | Bin 0 -> 2062 bytes .../images/mime/48/icon-document.png | Bin 0 -> 3298 bytes .../images/mime/48/icon-drawing.png | Bin 0 -> 1833 bytes .../images/mime/48/icon-empty.png | Bin 0 -> 997 bytes .../images/mime/48/icon-folder-open.png | Bin 0 -> 1577 bytes .../images/mime/48/icon-folder.png | Bin 0 -> 1516 bytes .../images/mime/48/icon-gzip.png | Bin 0 -> 1836 bytes .../images/mime/48/icon-html.png | Bin 0 -> 3352 bytes .../images/mime/48/icon-img.png | Bin 0 -> 2556 bytes .../images/mime/48/icon-jar.png | Bin 0 -> 2246 bytes .../images/mime/48/icon-pdf.png | Bin 0 -> 2806 bytes .../images/mime/48/icon-php.png | Bin 0 -> 3358 bytes .../images/mime/48/icon-presentation.png | Bin 0 -> 2586 bytes .../images/mime/48/icon-rar.png | Bin 0 -> 2309 bytes .../images/mime/48/icon-source.png | Bin 0 -> 2443 bytes .../images/mime/48/icon-spreadsheet.png | Bin 0 -> 2007 bytes .../images/mime/48/icon-sql.png | Bin 0 -> 1286 bytes .../images/mime/48/icon-tar.png | Bin 0 -> 1013 bytes .../images/mime/48/icon-txt.png | Bin 0 -> 2754 bytes .../images/mime/48/icon-video.png | Bin 0 -> 3265 bytes .../images/mime/48/icon-xml.png | Bin 0 -> 2954 bytes .../images/mime/48/icon-zip.png | Bin 0 -> 2232 bytes .../images/mime/48/index.html | 1 + .../images/mime/64/icon-7zip.png | Bin 0 -> 2976 bytes .../images/mime/64/icon-audio.png | Bin 0 -> 3019 bytes .../images/mime/64/icon-document.png | Bin 0 -> 5273 bytes .../images/mime/64/icon-drawing.png | Bin 0 -> 2736 bytes .../images/mime/64/icon-empty.png | Bin 0 -> 1385 bytes .../images/mime/64/icon-folder-open.png | Bin 0 -> 2339 bytes .../images/mime/64/icon-folder.png | Bin 0 -> 2174 bytes .../images/mime/64/icon-gzip.png | Bin 0 -> 2810 bytes .../images/mime/64/icon-html.png | Bin 0 -> 5152 bytes .../images/mime/64/icon-img.png | Bin 0 -> 3832 bytes .../images/mime/64/icon-jar.png | Bin 0 -> 3463 bytes .../images/mime/64/icon-pdf.png | Bin 0 -> 4032 bytes .../images/mime/64/icon-php.png | Bin 0 -> 5146 bytes .../images/mime/64/icon-presentation.png | Bin 0 -> 3775 bytes .../images/mime/64/icon-rar.png | Bin 0 -> 3596 bytes .../images/mime/64/icon-source.png | Bin 0 -> 3739 bytes .../images/mime/64/icon-spreadsheet.png | Bin 0 -> 2832 bytes .../images/mime/64/icon-sql.png | Bin 0 -> 1979 bytes .../images/mime/64/icon-tar.png | Bin 0 -> 2210 bytes .../images/mime/64/icon-txt.png | Bin 0 -> 4107 bytes .../images/mime/64/icon-video.png | Bin 0 -> 5220 bytes .../images/mime/64/icon-xml.png | Bin 0 -> 4367 bytes .../images/mime/64/icon-zip.png | Bin 0 -> 3378 bytes .../images/mime/64/index.html | 1 + .../com_phocadownload/images/mime/AUTHORS | 5 + .../com_phocadownload/images/mime/COPYING | 674 +++++++++ .../com_phocadownload/images/mime/index.html | 1 + .../com_phocadownload/images/next-grey.png | Bin 0 -> 750 bytes .../media/com_phocadownload/images/next.png | Bin 0 -> 835 bytes .../images/phoca-download.png | Bin 0 -> 9257 bytes .../com_phocadownload/images/prev-grey.png | Bin 0 -> 741 bytes .../media/com_phocadownload/images/prev.png | Bin 0 -> 835 bytes .../media/com_phocadownload/images/tl.png | Bin 0 -> 235 bytes .../media/com_phocadownload/images/tr.png | Bin 0 -> 308 bytes .../media/com_phocadownload/images/up.png | Bin 0 -> 827 bytes .../com_phocadownload/images/white-space.png | Bin 0 -> 378 bytes .../media/com_phocadownload/index.html | 1 + .../media/com_phocadownload/js/index.html | 1 + .../js/jquery.equalheights.min.js | 11 + .../js/jquery.matchHeight.js | 385 +++++ .../js/jquery.matchHeight.min.js | 1 + .../plugins/content/phocadownload/index.html | 1 + .../content/phocadownload/phocadownload.php | 640 +++++++++ .../content/phocadownload/phocadownload.xml | 64 + .../phocadownload/assets/css/index.html | 1 + .../assets/css/phocadownload.css | 4 + .../assets/images/icon-button.png | Bin 0 -> 1224 bytes .../phocadownload/assets/images/index.html | 1 + .../phocadownload/assets/index.html | 1 + .../editors-xtd/phocadownload/index.html | 1 + .../phocadownload/phocadownload.php | 57 + .../phocadownload/phocadownload.xml | 42 + .../plugins/search/phocadownload/index.html | 4 + .../search/phocadownload/phocadownload.php | 290 ++++ .../search/phocadownload/phocadownload.xml | 38 + 706 files changed, 40542 insertions(+), 2865 deletions(-) create mode 100644 packages/phocadownload/administrator/components/com_phocadownload/access.xml create mode 100644 packages/phocadownload/administrator/components/com_phocadownload/config.xml create mode 100644 packages/phocadownload/administrator/components/com_phocadownload/controller.php create mode 100644 packages/phocadownload/administrator/components/com_phocadownload/controllers/index.html create mode 100644 packages/phocadownload/administrator/components/com_phocadownload/controllers/phocadownloadcat.php create mode 100644 packages/phocadownload/administrator/components/com_phocadownload/controllers/phocadownloadcats.php create mode 100644 packages/phocadownload/administrator/components/com_phocadownload/controllers/phocadownloaddownloads.php create mode 100644 packages/phocadownload/administrator/components/com_phocadownload/controllers/phocadownloadfile.php create mode 100644 packages/phocadownload/administrator/components/com_phocadownload/controllers/phocadownloadfiles.php create mode 100644 packages/phocadownload/administrator/components/com_phocadownload/controllers/phocadownloadinfo.php create mode 100644 packages/phocadownload/administrator/components/com_phocadownload/controllers/phocadownloadinstall.php create mode 100644 packages/phocadownload/administrator/components/com_phocadownload/controllers/phocadownloadlayout.php create mode 100644 packages/phocadownload/administrator/components/com_phocadownload/controllers/phocadownloadlayouts.php create mode 100644 packages/phocadownload/administrator/components/com_phocadownload/controllers/phocadownloadlic.php create mode 100644 packages/phocadownload/administrator/components/com_phocadownload/controllers/phocadownloadlics.php create mode 100644 packages/phocadownload/administrator/components/com_phocadownload/controllers/phocadownloadlinkfile.php create mode 100644 packages/phocadownload/administrator/components/com_phocadownload/controllers/phocadownloadlogs.php create mode 100644 packages/phocadownload/administrator/components/com_phocadownload/controllers/phocadownloadm.php create mode 100644 packages/phocadownload/administrator/components/com_phocadownload/controllers/phocadownloadrafile.php create mode 100644 packages/phocadownload/administrator/components/com_phocadownload/controllers/phocadownloadset.php create mode 100644 packages/phocadownload/administrator/components/com_phocadownload/controllers/phocadownloadstat.php create mode 100644 packages/phocadownload/administrator/components/com_phocadownload/controllers/phocadownloadstyle.php create mode 100644 packages/phocadownload/administrator/components/com_phocadownload/controllers/phocadownloadstyles.php create mode 100644 packages/phocadownload/administrator/components/com_phocadownload/controllers/phocadownloadtag.php create mode 100644 packages/phocadownload/administrator/components/com_phocadownload/controllers/phocadownloadtags.php create mode 100644 packages/phocadownload/administrator/components/com_phocadownload/controllers/phocadownloaduninstall.php create mode 100644 packages/phocadownload/administrator/components/com_phocadownload/controllers/phocadownloadupload.php create mode 100644 packages/phocadownload/administrator/components/com_phocadownload/controllers/phocadownloaduploads.php create mode 100644 packages/phocadownload/administrator/components/com_phocadownload/help/en-GB/index.html create mode 100644 packages/phocadownload/administrator/components/com_phocadownload/help/en-GB/logo-phoca.png create mode 100644 packages/phocadownload/administrator/components/com_phocadownload/help/en-GB/screen.phocadownload.html create mode 100644 packages/phocadownload/administrator/components/com_phocadownload/help/index.html create mode 100644 packages/phocadownload/administrator/components/com_phocadownload/help/logo-phoca.png create mode 100644 packages/phocadownload/administrator/components/com_phocadownload/help/screen.phocadownload.html create mode 100644 packages/phocadownload/administrator/components/com_phocadownload/helpers/index.html create mode 100644 packages/phocadownload/administrator/components/com_phocadownload/helpers/phocadownloadcats.php create mode 100644 packages/phocadownload/administrator/components/com_phocadownload/helpers/phocadownloadcp.php create mode 100644 packages/phocadownload/administrator/components/com_phocadownload/helpers/phocadownloaddownloads.php create mode 100644 packages/phocadownload/administrator/components/com_phocadownload/helpers/phocadownloadfiles.php create mode 100644 packages/phocadownload/administrator/components/com_phocadownload/helpers/phocadownloadlayouts.php create mode 100644 packages/phocadownload/administrator/components/com_phocadownload/helpers/phocadownloadlics.php create mode 100644 packages/phocadownload/administrator/components/com_phocadownload/helpers/phocadownloadlogs.php create mode 100644 packages/phocadownload/administrator/components/com_phocadownload/helpers/phocadownloadmanager.php create mode 100644 packages/phocadownload/administrator/components/com_phocadownload/helpers/phocadownloadrafile.php create mode 100644 packages/phocadownload/administrator/components/com_phocadownload/helpers/phocadownloadrate.php create mode 100644 packages/phocadownload/administrator/components/com_phocadownload/helpers/phocadownloadstat.php create mode 100644 packages/phocadownload/administrator/components/com_phocadownload/helpers/phocadownloadstyles.php create mode 100644 packages/phocadownload/administrator/components/com_phocadownload/helpers/phocadownloadtags.php create mode 100644 packages/phocadownload/administrator/components/com_phocadownload/helpers/phocadownloaduploads.php create mode 100644 packages/phocadownload/administrator/components/com_phocadownload/helpers/phocauserstat.php create mode 100644 packages/phocadownload/administrator/components/com_phocadownload/index.html create mode 100644 packages/phocadownload/administrator/components/com_phocadownload/install/index.html create mode 100644 packages/phocadownload/administrator/components/com_phocadownload/install/script.php create mode 100644 packages/phocadownload/administrator/components/com_phocadownload/install/sql/index.html create mode 100644 packages/phocadownload/administrator/components/com_phocadownload/install/sql/mysql/index.html create mode 100644 packages/phocadownload/administrator/components/com_phocadownload/install/sql/mysql/install.utf8.sql create mode 100644 packages/phocadownload/administrator/components/com_phocadownload/install/sql/mysql/uninstall.utf8.sql create mode 100644 packages/phocadownload/administrator/components/com_phocadownload/libraries/index.html create mode 100644 packages/phocadownload/administrator/components/com_phocadownload/libraries/loader.php create mode 100644 packages/phocadownload/administrator/components/com_phocadownload/libraries/phocadownload/access/access.php create mode 100644 packages/phocadownload/administrator/components/com_phocadownload/libraries/phocadownload/access/index.html create mode 100644 packages/phocadownload/administrator/components/com_phocadownload/libraries/phocadownload/category/category.php create mode 100644 packages/phocadownload/administrator/components/com_phocadownload/libraries/phocadownload/category/index.html create mode 100644 packages/phocadownload/administrator/components/com_phocadownload/libraries/phocadownload/download/download.php create mode 100644 packages/phocadownload/administrator/components/com_phocadownload/libraries/phocadownload/download/index.html create mode 100644 packages/phocadownload/administrator/components/com_phocadownload/libraries/phocadownload/file/file.php create mode 100644 packages/phocadownload/administrator/components/com_phocadownload/libraries/phocadownload/file/fileupload.php create mode 100644 packages/phocadownload/administrator/components/com_phocadownload/libraries/phocadownload/file/fileuploadmultiple.php create mode 100644 packages/phocadownload/administrator/components/com_phocadownload/libraries/phocadownload/file/fileuploadsingle.php create mode 100644 packages/phocadownload/administrator/components/com_phocadownload/libraries/phocadownload/file/index.html create mode 100644 packages/phocadownload/administrator/components/com_phocadownload/libraries/phocadownload/html/batch.php create mode 100644 packages/phocadownload/administrator/components/com_phocadownload/libraries/phocadownload/html/grid.php create mode 100644 packages/phocadownload/administrator/components/com_phocadownload/libraries/phocadownload/html/index.html create mode 100644 packages/phocadownload/administrator/components/com_phocadownload/libraries/phocadownload/html/jgrid.php create mode 100644 packages/phocadownload/administrator/components/com_phocadownload/libraries/phocadownload/index.html create mode 100644 packages/phocadownload/administrator/components/com_phocadownload/libraries/phocadownload/log/index.html create mode 100644 packages/phocadownload/administrator/components/com_phocadownload/libraries/phocadownload/log/log.php create mode 100644 packages/phocadownload/administrator/components/com_phocadownload/libraries/phocadownload/mail/index.html create mode 100644 packages/phocadownload/administrator/components/com_phocadownload/libraries/phocadownload/mail/mail.php create mode 100644 packages/phocadownload/administrator/components/com_phocadownload/libraries/phocadownload/ordering/index.html create mode 100644 packages/phocadownload/administrator/components/com_phocadownload/libraries/phocadownload/ordering/ordering.php create mode 100644 packages/phocadownload/administrator/components/com_phocadownload/libraries/phocadownload/pagination/index.html create mode 100644 packages/phocadownload/administrator/components/com_phocadownload/libraries/phocadownload/pagination/pagination.php create mode 100644 packages/phocadownload/administrator/components/com_phocadownload/libraries/phocadownload/path/index.html create mode 100644 packages/phocadownload/administrator/components/com_phocadownload/libraries/phocadownload/path/path.php create mode 100644 packages/phocadownload/administrator/components/com_phocadownload/libraries/phocadownload/path/route.php create mode 100644 packages/phocadownload/administrator/components/com_phocadownload/libraries/phocadownload/rate/index.html create mode 100644 packages/phocadownload/administrator/components/com_phocadownload/libraries/phocadownload/rate/rate.php create mode 100644 packages/phocadownload/administrator/components/com_phocadownload/libraries/phocadownload/render/layout.php create mode 100644 packages/phocadownload/administrator/components/com_phocadownload/libraries/phocadownload/render/renderadmin.php create mode 100644 packages/phocadownload/administrator/components/com_phocadownload/libraries/phocadownload/render/renderadminview.php create mode 100644 packages/phocadownload/administrator/components/com_phocadownload/libraries/phocadownload/render/renderadminviews.php create mode 100644 packages/phocadownload/administrator/components/com_phocadownload/libraries/phocadownload/render/renderfront.php create mode 100644 packages/phocadownload/administrator/components/com_phocadownload/libraries/phocadownload/stat/index.html create mode 100644 packages/phocadownload/administrator/components/com_phocadownload/libraries/phocadownload/stat/stat.php create mode 100644 packages/phocadownload/administrator/components/com_phocadownload/libraries/phocadownload/tag/index.html create mode 100644 packages/phocadownload/administrator/components/com_phocadownload/libraries/phocadownload/tag/tag.php create mode 100644 packages/phocadownload/administrator/components/com_phocadownload/libraries/phocadownload/user/index.html create mode 100644 packages/phocadownload/administrator/components/com_phocadownload/libraries/phocadownload/user/user.php create mode 100644 packages/phocadownload/administrator/components/com_phocadownload/libraries/phocadownload/utils/exception.php create mode 100644 packages/phocadownload/administrator/components/com_phocadownload/libraries/phocadownload/utils/external.php create mode 100644 packages/phocadownload/administrator/components/com_phocadownload/libraries/phocadownload/utils/index.html create mode 100644 packages/phocadownload/administrator/components/com_phocadownload/libraries/phocadownload/utils/settings.php create mode 100644 packages/phocadownload/administrator/components/com_phocadownload/libraries/phocadownload/utils/utils.php create mode 100644 packages/phocadownload/administrator/components/com_phocadownload/models/fields/index.html create mode 100644 packages/phocadownload/administrator/components/com_phocadownload/models/fields/phocaaccesslevel.php create mode 100644 packages/phocadownload/administrator/components/com_phocadownload/models/fields/phocacolortext.php create mode 100644 packages/phocadownload/administrator/components/com_phocadownload/models/fields/phocadownloadcategory.php create mode 100644 packages/phocadownload/administrator/components/com_phocadownload/models/fields/phocadownloadeditor.php create mode 100644 packages/phocadownload/administrator/components/com_phocadownload/models/fields/phocadownloadfile.php create mode 100644 packages/phocadownload/administrator/components/com_phocadownload/models/fields/phocadownloadlicense.php create mode 100644 packages/phocadownload/administrator/components/com_phocadownload/models/fields/phocadownloadordering.php create mode 100644 packages/phocadownload/administrator/components/com_phocadownload/models/fields/phocadownloadtoken.php create mode 100644 packages/phocadownload/administrator/components/com_phocadownload/models/fields/phocahead.php create mode 100644 packages/phocadownload/administrator/components/com_phocadownload/models/fields/phocaheadexpert.php create mode 100644 packages/phocadownload/administrator/components/com_phocadownload/models/fields/phocainfotext.php create mode 100644 packages/phocadownload/administrator/components/com_phocadownload/models/fields/phocalongtext.php create mode 100644 packages/phocadownload/administrator/components/com_phocadownload/models/fields/phocaselectfilename.php create mode 100644 packages/phocadownload/administrator/components/com_phocadownload/models/fields/phocatags.php create mode 100644 packages/phocadownload/administrator/components/com_phocadownload/models/fields/phocatext.php create mode 100644 packages/phocadownload/administrator/components/com_phocadownload/models/fields/phocatextarea.php create mode 100644 packages/phocadownload/administrator/components/com_phocadownload/models/fields/phocausers.php create mode 100644 packages/phocadownload/administrator/components/com_phocadownload/models/forms/index.html create mode 100644 packages/phocadownload/administrator/components/com_phocadownload/models/forms/phocadownloadcat.xml create mode 100644 packages/phocadownload/administrator/components/com_phocadownload/models/forms/phocadownloadfile.xml create mode 100644 packages/phocadownload/administrator/components/com_phocadownload/models/forms/phocadownloadlayout.xml create mode 100644 packages/phocadownload/administrator/components/com_phocadownload/models/forms/phocadownloadlic.xml create mode 100644 packages/phocadownload/administrator/components/com_phocadownload/models/forms/phocadownloadmanager.xml create mode 100644 packages/phocadownload/administrator/components/com_phocadownload/models/forms/phocadownloadstyle.xml create mode 100644 packages/phocadownload/administrator/components/com_phocadownload/models/forms/phocadownloadtag.xml create mode 100644 packages/phocadownload/administrator/components/com_phocadownload/models/index.html create mode 100644 packages/phocadownload/administrator/components/com_phocadownload/models/phocadownloadcat.php create mode 100644 packages/phocadownload/administrator/components/com_phocadownload/models/phocadownloadcats.php create mode 100644 packages/phocadownload/administrator/components/com_phocadownload/models/phocadownloaddownloads.php create mode 100644 packages/phocadownload/administrator/components/com_phocadownload/models/phocadownloadfile.php create mode 100644 packages/phocadownload/administrator/components/com_phocadownload/models/phocadownloadfiles.php create mode 100644 packages/phocadownload/administrator/components/com_phocadownload/models/phocadownloadlayout.php create mode 100644 packages/phocadownload/administrator/components/com_phocadownload/models/phocadownloadlic.php create mode 100644 packages/phocadownload/administrator/components/com_phocadownload/models/phocadownloadlics.php create mode 100644 packages/phocadownload/administrator/components/com_phocadownload/models/phocadownloadlinkcat.php create mode 100644 packages/phocadownload/administrator/components/com_phocadownload/models/phocadownloadlinkfile.php create mode 100644 packages/phocadownload/administrator/components/com_phocadownload/models/phocadownloadlog.php create mode 100644 packages/phocadownload/administrator/components/com_phocadownload/models/phocadownloadlogs.php create mode 100644 packages/phocadownload/administrator/components/com_phocadownload/models/phocadownloadm.php create mode 100644 packages/phocadownload/administrator/components/com_phocadownload/models/phocadownloadmanager.php create mode 100644 packages/phocadownload/administrator/components/com_phocadownload/models/phocadownloadrafile.php create mode 100644 packages/phocadownload/administrator/components/com_phocadownload/models/phocadownloadstat.php create mode 100644 packages/phocadownload/administrator/components/com_phocadownload/models/phocadownloadstyle.php create mode 100644 packages/phocadownload/administrator/components/com_phocadownload/models/phocadownloadstyles.php create mode 100644 packages/phocadownload/administrator/components/com_phocadownload/models/phocadownloadtag.php create mode 100644 packages/phocadownload/administrator/components/com_phocadownload/models/phocadownloadtags.php create mode 100644 packages/phocadownload/administrator/components/com_phocadownload/models/phocadownloadupload.php create mode 100644 packages/phocadownload/administrator/components/com_phocadownload/models/phocadownloaduploads.php create mode 100644 packages/phocadownload/administrator/components/com_phocadownload/phocadownload.php create mode 100644 packages/phocadownload/administrator/components/com_phocadownload/phocadownload.xml create mode 100644 packages/phocadownload/administrator/components/com_phocadownload/tables/index.html create mode 100644 packages/phocadownload/administrator/components/com_phocadownload/tables/phocadownload.php create mode 100644 packages/phocadownload/administrator/components/com_phocadownload/tables/phocadownloadcat.php create mode 100644 packages/phocadownload/administrator/components/com_phocadownload/tables/phocadownloadfilevotes.php create mode 100644 packages/phocadownload/administrator/components/com_phocadownload/tables/phocadownloadfilevotesstatistics.php create mode 100644 packages/phocadownload/administrator/components/com_phocadownload/tables/phocadownloadlayout.php create mode 100644 packages/phocadownload/administrator/components/com_phocadownload/tables/phocadownloadlic.php create mode 100644 packages/phocadownload/administrator/components/com_phocadownload/tables/phocadownloadlogging.php create mode 100644 packages/phocadownload/administrator/components/com_phocadownload/tables/phocadownloadstyle.php create mode 100644 packages/phocadownload/administrator/components/com_phocadownload/tables/phocadownloadtag.php create mode 100644 packages/phocadownload/administrator/components/com_phocadownload/tables/phocadownloaduserstats.php create mode 100644 packages/phocadownload/administrator/components/com_phocadownload/update/index.html create mode 100644 packages/phocadownload/administrator/components/com_phocadownload/update/sql/index.html create mode 100644 packages/phocadownload/administrator/components/com_phocadownload/update/sql/mysql/3.0.2.sql create mode 100644 packages/phocadownload/administrator/components/com_phocadownload/update/sql/mysql/3.1.1.sql create mode 100644 packages/phocadownload/administrator/components/com_phocadownload/update/sql/mysql/index.html create mode 100644 packages/phocadownload/administrator/components/com_phocadownload/views/index.html create mode 100644 packages/phocadownload/administrator/components/com_phocadownload/views/phocadownloadcat/index.html create mode 100644 packages/phocadownload/administrator/components/com_phocadownload/views/phocadownloadcat/tmpl/edit.php create mode 100644 packages/phocadownload/administrator/components/com_phocadownload/views/phocadownloadcat/tmpl/edit_metadata.php create mode 100644 packages/phocadownload/administrator/components/com_phocadownload/views/phocadownloadcat/tmpl/index.html create mode 100644 packages/phocadownload/administrator/components/com_phocadownload/views/phocadownloadcat/view.html.php create mode 100644 packages/phocadownload/administrator/components/com_phocadownload/views/phocadownloadcats/index.html create mode 100644 packages/phocadownload/administrator/components/com_phocadownload/views/phocadownloadcats/tmpl/default.php create mode 100644 packages/phocadownload/administrator/components/com_phocadownload/views/phocadownloadcats/tmpl/default_batch.php create mode 100644 packages/phocadownload/administrator/components/com_phocadownload/views/phocadownloadcats/tmpl/index.html create mode 100644 packages/phocadownload/administrator/components/com_phocadownload/views/phocadownloadcats/view.html.php create mode 100644 packages/phocadownload/administrator/components/com_phocadownload/views/phocadownloadcp/index.html create mode 100644 packages/phocadownload/administrator/components/com_phocadownload/views/phocadownloadcp/tmpl/default.php create mode 100644 packages/phocadownload/administrator/components/com_phocadownload/views/phocadownloadcp/tmpl/index.html create mode 100644 packages/phocadownload/administrator/components/com_phocadownload/views/phocadownloadcp/view.html.php create mode 100644 packages/phocadownload/administrator/components/com_phocadownload/views/phocadownloaddownloads/index.html create mode 100644 packages/phocadownload/administrator/components/com_phocadownload/views/phocadownloaddownloads/tmpl/default.php create mode 100644 packages/phocadownload/administrator/components/com_phocadownload/views/phocadownloaddownloads/tmpl/index.html create mode 100644 packages/phocadownload/administrator/components/com_phocadownload/views/phocadownloaddownloads/view.html.php create mode 100644 packages/phocadownload/administrator/components/com_phocadownload/views/phocadownloadfile/index.html create mode 100644 packages/phocadownload/administrator/components/com_phocadownload/views/phocadownloadfile/tmpl/edit.php create mode 100644 packages/phocadownload/administrator/components/com_phocadownload/views/phocadownloadfile/tmpl/edit_metadata.php create mode 100644 packages/phocadownload/administrator/components/com_phocadownload/views/phocadownloadfile/tmpl/edit_text.php create mode 100644 packages/phocadownload/administrator/components/com_phocadownload/views/phocadownloadfile/tmpl/index.html create mode 100644 packages/phocadownload/administrator/components/com_phocadownload/views/phocadownloadfile/view.html.php create mode 100644 packages/phocadownload/administrator/components/com_phocadownload/views/phocadownloadfiles/index.html create mode 100644 packages/phocadownload/administrator/components/com_phocadownload/views/phocadownloadfiles/tmpl/default.php create mode 100644 packages/phocadownload/administrator/components/com_phocadownload/views/phocadownloadfiles/tmpl/default_batch.php create mode 100644 packages/phocadownload/administrator/components/com_phocadownload/views/phocadownloadfiles/tmpl/index.html create mode 100644 packages/phocadownload/administrator/components/com_phocadownload/views/phocadownloadfiles/view.html.php create mode 100644 packages/phocadownload/administrator/components/com_phocadownload/views/phocadownloadinfo/index.html create mode 100644 packages/phocadownload/administrator/components/com_phocadownload/views/phocadownloadinfo/tmpl/default.php create mode 100644 packages/phocadownload/administrator/components/com_phocadownload/views/phocadownloadinfo/tmpl/index.html create mode 100644 packages/phocadownload/administrator/components/com_phocadownload/views/phocadownloadinfo/view.html.php create mode 100644 packages/phocadownload/administrator/components/com_phocadownload/views/phocadownloadlayout/index.html create mode 100644 packages/phocadownload/administrator/components/com_phocadownload/views/phocadownloadlayout/tmpl/edit.php create mode 100644 packages/phocadownload/administrator/components/com_phocadownload/views/phocadownloadlayout/tmpl/index.html create mode 100644 packages/phocadownload/administrator/components/com_phocadownload/views/phocadownloadlayout/view.html.php create mode 100644 packages/phocadownload/administrator/components/com_phocadownload/views/phocadownloadlayouts/index.html create mode 100644 packages/phocadownload/administrator/components/com_phocadownload/views/phocadownloadlayouts/tmpl/default.php create mode 100644 packages/phocadownload/administrator/components/com_phocadownload/views/phocadownloadlayouts/tmpl/index.html create mode 100644 packages/phocadownload/administrator/components/com_phocadownload/views/phocadownloadlayouts/view.html.php create mode 100644 packages/phocadownload/administrator/components/com_phocadownload/views/phocadownloadlic/index.html create mode 100644 packages/phocadownload/administrator/components/com_phocadownload/views/phocadownloadlic/tmpl/edit.php create mode 100644 packages/phocadownload/administrator/components/com_phocadownload/views/phocadownloadlic/tmpl/index.html create mode 100644 packages/phocadownload/administrator/components/com_phocadownload/views/phocadownloadlic/view.html.php create mode 100644 packages/phocadownload/administrator/components/com_phocadownload/views/phocadownloadlics/index.html create mode 100644 packages/phocadownload/administrator/components/com_phocadownload/views/phocadownloadlics/tmpl/default.php create mode 100644 packages/phocadownload/administrator/components/com_phocadownload/views/phocadownloadlics/tmpl/index.html create mode 100644 packages/phocadownload/administrator/components/com_phocadownload/views/phocadownloadlics/view.html.php create mode 100644 packages/phocadownload/administrator/components/com_phocadownload/views/phocadownloadlinkcat/index.html create mode 100644 packages/phocadownload/administrator/components/com_phocadownload/views/phocadownloadlinkcat/tmpl/default.php create mode 100644 packages/phocadownload/administrator/components/com_phocadownload/views/phocadownloadlinkcat/tmpl/index.html create mode 100644 packages/phocadownload/administrator/components/com_phocadownload/views/phocadownloadlinkcat/view.html.php create mode 100644 packages/phocadownload/administrator/components/com_phocadownload/views/phocadownloadlinkcats/index.html create mode 100644 packages/phocadownload/administrator/components/com_phocadownload/views/phocadownloadlinkcats/tmpl/default.php create mode 100644 packages/phocadownload/administrator/components/com_phocadownload/views/phocadownloadlinkcats/tmpl/index.html create mode 100644 packages/phocadownload/administrator/components/com_phocadownload/views/phocadownloadlinkcats/view.html.php create mode 100644 packages/phocadownload/administrator/components/com_phocadownload/views/phocadownloadlinkfile/index.html create mode 100644 packages/phocadownload/administrator/components/com_phocadownload/views/phocadownloadlinkfile/tmpl/default.php create mode 100644 packages/phocadownload/administrator/components/com_phocadownload/views/phocadownloadlinkfile/tmpl/index.html create mode 100644 packages/phocadownload/administrator/components/com_phocadownload/views/phocadownloadlinkfile/view.html.php create mode 100644 packages/phocadownload/administrator/components/com_phocadownload/views/phocadownloadlinks/index.html create mode 100644 packages/phocadownload/administrator/components/com_phocadownload/views/phocadownloadlinks/tmpl/default.php create mode 100644 packages/phocadownload/administrator/components/com_phocadownload/views/phocadownloadlinks/tmpl/index.html create mode 100644 packages/phocadownload/administrator/components/com_phocadownload/views/phocadownloadlinks/view.html.php create mode 100644 packages/phocadownload/administrator/components/com_phocadownload/views/phocadownloadlinkytb/index.html create mode 100644 packages/phocadownload/administrator/components/com_phocadownload/views/phocadownloadlinkytb/tmpl/default.php create mode 100644 packages/phocadownload/administrator/components/com_phocadownload/views/phocadownloadlinkytb/tmpl/index.html create mode 100644 packages/phocadownload/administrator/components/com_phocadownload/views/phocadownloadlinkytb/view.html.php create mode 100644 packages/phocadownload/administrator/components/com_phocadownload/views/phocadownloadlogs/index.html create mode 100644 packages/phocadownload/administrator/components/com_phocadownload/views/phocadownloadlogs/tmpl/default.php create mode 100644 packages/phocadownload/administrator/components/com_phocadownload/views/phocadownloadlogs/tmpl/index.html create mode 100644 packages/phocadownload/administrator/components/com_phocadownload/views/phocadownloadlogs/view.html.php create mode 100644 packages/phocadownload/administrator/components/com_phocadownload/views/phocadownloadmanager/index.html create mode 100644 packages/phocadownload/administrator/components/com_phocadownload/views/phocadownloadmanager/tmpl/default.php create mode 100644 packages/phocadownload/administrator/components/com_phocadownload/views/phocadownloadmanager/tmpl/default_file.php create mode 100644 packages/phocadownload/administrator/components/com_phocadownload/views/phocadownloadmanager/tmpl/default_folder.php create mode 100644 packages/phocadownload/administrator/components/com_phocadownload/views/phocadownloadmanager/tmpl/default_multipleupload.php create mode 100644 packages/phocadownload/administrator/components/com_phocadownload/views/phocadownloadmanager/tmpl/default_up.php create mode 100644 packages/phocadownload/administrator/components/com_phocadownload/views/phocadownloadmanager/tmpl/default_upload.php create mode 100644 packages/phocadownload/administrator/components/com_phocadownload/views/phocadownloadmanager/tmpl/index.html create mode 100644 packages/phocadownload/administrator/components/com_phocadownload/views/phocadownloadmanager/view.html.php create mode 100644 packages/phocadownload/administrator/components/com_phocadownload/views/phocadownloadrafile/index.html create mode 100644 packages/phocadownload/administrator/components/com_phocadownload/views/phocadownloadrafile/tmpl/default.php create mode 100644 packages/phocadownload/administrator/components/com_phocadownload/views/phocadownloadrafile/tmpl/index.html create mode 100644 packages/phocadownload/administrator/components/com_phocadownload/views/phocadownloadrafile/view.html.php create mode 100644 packages/phocadownload/administrator/components/com_phocadownload/views/phocadownloadset/index.html create mode 100644 packages/phocadownload/administrator/components/com_phocadownload/views/phocadownloadset/tmpl/default.php create mode 100644 packages/phocadownload/administrator/components/com_phocadownload/views/phocadownloadset/tmpl/index.html create mode 100644 packages/phocadownload/administrator/components/com_phocadownload/views/phocadownloadset/view.html.php create mode 100644 packages/phocadownload/administrator/components/com_phocadownload/views/phocadownloadstat/index.html create mode 100644 packages/phocadownload/administrator/components/com_phocadownload/views/phocadownloadstat/tmpl/default.php create mode 100644 packages/phocadownload/administrator/components/com_phocadownload/views/phocadownloadstat/tmpl/index.html create mode 100644 packages/phocadownload/administrator/components/com_phocadownload/views/phocadownloadstat/view.html.php create mode 100644 packages/phocadownload/administrator/components/com_phocadownload/views/phocadownloadstyle/index.html create mode 100644 packages/phocadownload/administrator/components/com_phocadownload/views/phocadownloadstyle/tmpl/edit.php create mode 100644 packages/phocadownload/administrator/components/com_phocadownload/views/phocadownloadstyle/tmpl/edit_ftp.php create mode 100644 packages/phocadownload/administrator/components/com_phocadownload/views/phocadownloadstyle/tmpl/index.html create mode 100644 packages/phocadownload/administrator/components/com_phocadownload/views/phocadownloadstyle/view.html.php create mode 100644 packages/phocadownload/administrator/components/com_phocadownload/views/phocadownloadstyles/index.html create mode 100644 packages/phocadownload/administrator/components/com_phocadownload/views/phocadownloadstyles/tmpl/default.php create mode 100644 packages/phocadownload/administrator/components/com_phocadownload/views/phocadownloadstyles/tmpl/index.html create mode 100644 packages/phocadownload/administrator/components/com_phocadownload/views/phocadownloadstyles/view.html.php create mode 100644 packages/phocadownload/administrator/components/com_phocadownload/views/phocadownloadtag/index.html create mode 100644 packages/phocadownload/administrator/components/com_phocadownload/views/phocadownloadtag/tmpl/edit.php create mode 100644 packages/phocadownload/administrator/components/com_phocadownload/views/phocadownloadtag/tmpl/index.html create mode 100644 packages/phocadownload/administrator/components/com_phocadownload/views/phocadownloadtag/view.html.php create mode 100644 packages/phocadownload/administrator/components/com_phocadownload/views/phocadownloadtags/index.html create mode 100644 packages/phocadownload/administrator/components/com_phocadownload/views/phocadownloadtags/tmpl/default.php create mode 100644 packages/phocadownload/administrator/components/com_phocadownload/views/phocadownloadtags/tmpl/index.html create mode 100644 packages/phocadownload/administrator/components/com_phocadownload/views/phocadownloadtags/view.html.php create mode 100644 packages/phocadownload/administrator/components/com_phocadownload/views/phocadownloaduploads/index.html create mode 100644 packages/phocadownload/administrator/components/com_phocadownload/views/phocadownloaduploads/tmpl/default.php create mode 100644 packages/phocadownload/administrator/components/com_phocadownload/views/phocadownloaduploads/tmpl/index.html create mode 100644 packages/phocadownload/administrator/components/com_phocadownload/views/phocadownloaduploads/view.html.php create mode 100644 packages/phocadownload/administrator/language/en-GB/en-GB.com_phocadownload.ini create mode 100644 packages/phocadownload/administrator/language/en-GB/en-GB.com_phocadownload.sys.ini create mode 100644 packages/phocadownload/administrator/language/en-GB/en-GB.plg_content_phocadownload.ini create mode 100644 packages/phocadownload/administrator/language/en-GB/en-GB.plg_content_phocadownload.sys.ini create mode 100644 packages/phocadownload/administrator/language/en-GB/en-GB.plg_editors-xtd_phocadownload.ini create mode 100644 packages/phocadownload/administrator/language/en-GB/en-GB.plg_editors-xtd_phocadownload.sys.ini create mode 100644 packages/phocadownload/administrator/language/en-GB/en-GB.plg_search_phocadownload.ini create mode 100644 packages/phocadownload/administrator/language/en-GB/en-GB.plg_search_phocadownload.sys.ini create mode 100644 packages/phocadownload/components/com_phocadownload/assets/flowplayer/LICENSE-flowplayer.txt create mode 100644 packages/phocadownload/components/com_phocadownload/assets/flowplayer/LICENSE-flowplayeraudio.txt create mode 100644 packages/phocadownload/components/com_phocadownload/assets/flowplayer/flowplayer-3.2.2.min.js create mode 100644 packages/phocadownload/components/com_phocadownload/assets/flowplayer/flowplayer-3.2.2.swf create mode 100644 packages/phocadownload/components/com_phocadownload/assets/flowplayer/flowplayer.audio-3.2.0.swf create mode 100644 packages/phocadownload/components/com_phocadownload/assets/flowplayer/flowplayer.controls-3.2.1.swf create mode 100644 packages/phocadownload/components/com_phocadownload/assets/flowplayer/index.html create mode 100644 packages/phocadownload/components/com_phocadownload/assets/overlib/index.html create mode 100644 packages/phocadownload/components/com_phocadownload/assets/overlib/overlib_mini.js create mode 100644 packages/phocadownload/components/com_phocadownload/assets/plupload/i18n/cs.js create mode 100644 packages/phocadownload/components/com_phocadownload/assets/plupload/i18n/da.js create mode 100644 packages/phocadownload/components/com_phocadownload/assets/plupload/i18n/de.js create mode 100644 packages/phocadownload/components/com_phocadownload/assets/plupload/i18n/el.js create mode 100644 packages/phocadownload/components/com_phocadownload/assets/plupload/i18n/es.js create mode 100644 packages/phocadownload/components/com_phocadownload/assets/plupload/i18n/et.js create mode 100644 packages/phocadownload/components/com_phocadownload/assets/plupload/i18n/fa.js create mode 100644 packages/phocadownload/components/com_phocadownload/assets/plupload/i18n/fi.js create mode 100644 packages/phocadownload/components/com_phocadownload/assets/plupload/i18n/fr-ca.js create mode 100644 packages/phocadownload/components/com_phocadownload/assets/plupload/i18n/fr.js create mode 100644 packages/phocadownload/components/com_phocadownload/assets/plupload/i18n/hr.js create mode 100644 packages/phocadownload/components/com_phocadownload/assets/plupload/i18n/hu.js create mode 100644 packages/phocadownload/components/com_phocadownload/assets/plupload/i18n/index.html create mode 100644 packages/phocadownload/components/com_phocadownload/assets/plupload/i18n/it.js create mode 100644 packages/phocadownload/components/com_phocadownload/assets/plupload/i18n/ja.js create mode 100644 packages/phocadownload/components/com_phocadownload/assets/plupload/i18n/ko.js create mode 100644 packages/phocadownload/components/com_phocadownload/assets/plupload/i18n/lv.js create mode 100644 packages/phocadownload/components/com_phocadownload/assets/plupload/i18n/nl.js create mode 100644 packages/phocadownload/components/com_phocadownload/assets/plupload/i18n/pl.js create mode 100644 packages/phocadownload/components/com_phocadownload/assets/plupload/i18n/pt-br.js create mode 100644 packages/phocadownload/components/com_phocadownload/assets/plupload/i18n/ro.js create mode 100644 packages/phocadownload/components/com_phocadownload/assets/plupload/i18n/ru.js create mode 100644 packages/phocadownload/components/com_phocadownload/assets/plupload/i18n/sk.js create mode 100644 packages/phocadownload/components/com_phocadownload/assets/plupload/i18n/sr.js create mode 100644 packages/phocadownload/components/com_phocadownload/assets/plupload/i18n/sv.js create mode 100644 packages/phocadownload/components/com_phocadownload/assets/plupload/index.html create mode 100644 packages/phocadownload/components/com_phocadownload/assets/plupload/jquery.plupload.queue.min.js create mode 100644 packages/phocadownload/components/com_phocadownload/assets/plupload/jquery.plupload.queue/css/index.html create mode 100644 packages/phocadownload/components/com_phocadownload/assets/plupload/jquery.plupload.queue/css/jquery.plupload.queue.css create mode 100644 packages/phocadownload/components/com_phocadownload/assets/plupload/jquery.plupload.queue/img/backgrounds.gif create mode 100644 packages/phocadownload/components/com_phocadownload/assets/plupload/jquery.plupload.queue/img/buttons-disabled.png create mode 100644 packages/phocadownload/components/com_phocadownload/assets/plupload/jquery.plupload.queue/img/buttons.png create mode 100644 packages/phocadownload/components/com_phocadownload/assets/plupload/jquery.plupload.queue/img/delete.gif create mode 100644 packages/phocadownload/components/com_phocadownload/assets/plupload/jquery.plupload.queue/img/done.gif create mode 100644 packages/phocadownload/components/com_phocadownload/assets/plupload/jquery.plupload.queue/img/error.gif create mode 100644 packages/phocadownload/components/com_phocadownload/assets/plupload/jquery.plupload.queue/img/index.html create mode 100644 packages/phocadownload/components/com_phocadownload/assets/plupload/jquery.plupload.queue/img/throbber.gif create mode 100644 packages/phocadownload/components/com_phocadownload/assets/plupload/jquery.plupload.queue/img/transp50.png create mode 100644 packages/phocadownload/components/com_phocadownload/assets/plupload/jquery.plupload.queue/index.html create mode 100644 packages/phocadownload/components/com_phocadownload/assets/plupload/jquery.plupload.queue/jquery.plupload.queue.js create mode 100644 packages/phocadownload/components/com_phocadownload/assets/plupload/jquery.ui.plupload/css/index.html create mode 100644 packages/phocadownload/components/com_phocadownload/assets/plupload/jquery.ui.plupload/css/jquery.ui.plupload.css create mode 100644 packages/phocadownload/components/com_phocadownload/assets/plupload/jquery.ui.plupload/img/index.html create mode 100644 packages/phocadownload/components/com_phocadownload/assets/plupload/jquery.ui.plupload/img/plupload-bw.png create mode 100644 packages/phocadownload/components/com_phocadownload/assets/plupload/jquery.ui.plupload/img/plupload.png create mode 100644 packages/phocadownload/components/com_phocadownload/assets/plupload/jquery.ui.plupload/index.html create mode 100644 packages/phocadownload/components/com_phocadownload/assets/plupload/jquery.ui.plupload/jquery.ui.plupload.js create mode 100644 packages/phocadownload/components/com_phocadownload/assets/plupload/plupload.browserplus.js create mode 100644 packages/phocadownload/components/com_phocadownload/assets/plupload/plupload.flash.js create mode 100644 packages/phocadownload/components/com_phocadownload/assets/plupload/plupload.flash.swf create mode 100644 packages/phocadownload/components/com_phocadownload/assets/plupload/plupload.gears.js create mode 100644 packages/phocadownload/components/com_phocadownload/assets/plupload/plupload.html4.js create mode 100644 packages/phocadownload/components/com_phocadownload/assets/plupload/plupload.html5.js create mode 100644 packages/phocadownload/components/com_phocadownload/assets/plupload/plupload.js create mode 100644 packages/phocadownload/components/com_phocadownload/assets/plupload/plupload.silverlight.js create mode 100644 packages/phocadownload/components/com_phocadownload/assets/plupload/plupload.silverlight.xap create mode 100644 packages/phocadownload/components/com_phocadownload/views/categories/tmpl/default_bootstrap.php create mode 100644 packages/phocadownload/components/com_phocadownload/views/category/tmpl/default_bootstrap.php create mode 100644 packages/phocadownload/components/com_phocadownload/views/category/tmpl/default_files_bootstrap.php create mode 100644 packages/phocadownload/components/com_phocadownload/views/download/tmpl/default_bootstrap.php create mode 100644 packages/phocadownload/components/com_phocadownload/views/file/tmpl/default_bootstrap.php create mode 100644 packages/phocadownload/components/com_phocadownload/views/user/tmpl/default_bootstrap.php create mode 100644 packages/phocadownload/components/com_phocadownload/views/user/tmpl/default_files_bootstrap.php create mode 100644 packages/phocadownload/language/en-GB/en-GB.com_phocadownload.ini create mode 100644 packages/phocadownload/language/en-GB/en-GB.com_phocadownload.sys.ini create mode 100644 packages/phocadownload/language/hu-HU/hu-HU.com_phocadownload.ini create mode 100644 packages/phocadownload/media/com_phocadownload/bootstrap/css/bootstrap.extended.css create mode 100644 packages/phocadownload/media/com_phocadownload/bootstrap/css/bootstrap.glyphicons.min.css create mode 100644 packages/phocadownload/media/com_phocadownload/bootstrap/css/bootstrap.min.css create mode 100644 packages/phocadownload/media/com_phocadownload/bootstrap/css/bs_modal_transition.css create mode 100644 packages/phocadownload/media/com_phocadownload/bootstrap/css/index.html create mode 100644 packages/phocadownload/media/com_phocadownload/bootstrap/fonts/glyphicons-halflings-regular.eot create mode 100644 packages/phocadownload/media/com_phocadownload/bootstrap/fonts/glyphicons-halflings-regular.svg create mode 100644 packages/phocadownload/media/com_phocadownload/bootstrap/fonts/glyphicons-halflings-regular.ttf create mode 100644 packages/phocadownload/media/com_phocadownload/bootstrap/fonts/glyphicons-halflings-regular.woff create mode 100644 packages/phocadownload/media/com_phocadownload/bootstrap/fonts/index.html create mode 100644 packages/phocadownload/media/com_phocadownload/bootstrap/index.html create mode 100644 packages/phocadownload/media/com_phocadownload/bootstrap/js/bootstrap.min.js create mode 100644 packages/phocadownload/media/com_phocadownload/bootstrap/js/index.html create mode 100644 packages/phocadownload/media/com_phocadownload/css/administrator/index.html create mode 100644 packages/phocadownload/media/com_phocadownload/css/administrator/phocadownload.css create mode 100644 packages/phocadownload/media/com_phocadownload/css/administrator/phocadownloadoptions.css create mode 100644 packages/phocadownload/media/com_phocadownload/css/administrator/rating.css create mode 100644 packages/phocadownload/media/com_phocadownload/css/custom/default.css create mode 100644 packages/phocadownload/media/com_phocadownload/css/custom/index.html create mode 100644 packages/phocadownload/media/com_phocadownload/css/index.html create mode 100644 packages/phocadownload/media/com_phocadownload/css/main/bootstrap.min.css create mode 100644 packages/phocadownload/media/com_phocadownload/css/main/button.css create mode 100644 packages/phocadownload/media/com_phocadownload/css/main/buttonrc.css create mode 100644 packages/phocadownload/media/com_phocadownload/css/main/index.html create mode 100644 packages/phocadownload/media/com_phocadownload/css/main/phocadownload.css create mode 100644 packages/phocadownload/media/com_phocadownload/css/main/rating.css create mode 100644 packages/phocadownload/media/com_phocadownload/images/administrator/b-prm.png create mode 100644 packages/phocadownload/media/com_phocadownload/images/administrator/bg-install.png create mode 100644 packages/phocadownload/media/com_phocadownload/images/administrator/bg-upgrade.png create mode 100644 packages/phocadownload/media/com_phocadownload/images/administrator/btn.png create mode 100644 packages/phocadownload/media/com_phocadownload/images/administrator/icon-12-approve.png create mode 100644 packages/phocadownload/media/com_phocadownload/images/administrator/icon-12-authorizeall.png create mode 100644 packages/phocadownload/media/com_phocadownload/images/administrator/icon-12-back.png create mode 100644 packages/phocadownload/media/com_phocadownload/images/administrator/icon-12-disapprove.png create mode 100644 packages/phocadownload/media/com_phocadownload/images/administrator/icon-12-multiple.png create mode 100644 packages/phocadownload/media/com_phocadownload/images/administrator/icon-12-reset.png create mode 100644 packages/phocadownload/media/com_phocadownload/images/administrator/icon-16-edb-back.png create mode 100644 packages/phocadownload/media/com_phocadownload/images/administrator/icon-16-edb-categories.png create mode 100644 packages/phocadownload/media/com_phocadownload/images/administrator/icon-16-edb-category.png create mode 100644 packages/phocadownload/media/com_phocadownload/images/administrator/icon-16-edb-file.png create mode 100644 packages/phocadownload/media/com_phocadownload/images/administrator/icon-16-edb-play.png create mode 100644 packages/phocadownload/media/com_phocadownload/images/administrator/icon-16-edb-preview.png create mode 100644 packages/phocadownload/media/com_phocadownload/images/administrator/icon-16-edb-section.png create mode 100644 packages/phocadownload/media/com_phocadownload/images/administrator/icon-16-edb-sections.png create mode 100644 packages/phocadownload/media/com_phocadownload/images/administrator/icon-16-folder-small.png create mode 100644 packages/phocadownload/media/com_phocadownload/images/administrator/icon-16-folder.png create mode 100644 packages/phocadownload/media/com_phocadownload/images/administrator/icon-16-pdl-control-panel.png create mode 100644 packages/phocadownload/media/com_phocadownload/images/administrator/icon-16-pdl-menu-category.png create mode 100644 packages/phocadownload/media/com_phocadownload/images/administrator/icon-16-pdl-menu-downloads.png create mode 100644 packages/phocadownload/media/com_phocadownload/images/administrator/icon-16-pdl-menu-files.png create mode 100644 packages/phocadownload/media/com_phocadownload/images/administrator/icon-16-pdl-menu-info.png create mode 100644 packages/phocadownload/media/com_phocadownload/images/administrator/icon-16-pdl-menu-layout.png create mode 100644 packages/phocadownload/media/com_phocadownload/images/administrator/icon-16-pdl-menu-lic.png create mode 100644 packages/phocadownload/media/com_phocadownload/images/administrator/icon-16-pdl-menu-section.png create mode 100644 packages/phocadownload/media/com_phocadownload/images/administrator/icon-16-pdl-menu-settings.png create mode 100644 packages/phocadownload/media/com_phocadownload/images/administrator/icon-16-pdl-menu-stat.png create mode 100644 packages/phocadownload/media/com_phocadownload/images/administrator/icon-16-pdl-menu-styles.png create mode 100644 packages/phocadownload/media/com_phocadownload/images/administrator/icon-16-pdl-menu-tags.png create mode 100644 packages/phocadownload/media/com_phocadownload/images/administrator/icon-16-pdl-menu-upload.png create mode 100644 packages/phocadownload/media/com_phocadownload/images/administrator/icon-16-pdl-menu-users.png create mode 100644 packages/phocadownload/media/com_phocadownload/images/administrator/icon-16-pdl-menu-vote-file.png create mode 100644 packages/phocadownload/media/com_phocadownload/images/administrator/icon-16-pdl-menu.png create mode 100644 packages/phocadownload/media/com_phocadownload/images/administrator/icon-16-up.png create mode 100644 packages/phocadownload/media/com_phocadownload/images/administrator/icon-16-upload-multiple.png create mode 100644 packages/phocadownload/media/com_phocadownload/images/administrator/icon-16-upload.png create mode 100644 packages/phocadownload/media/com_phocadownload/images/administrator/icon-16-user-stat.png create mode 100644 packages/phocadownload/media/com_phocadownload/images/administrator/icon-32-approve.png create mode 100644 packages/phocadownload/media/com_phocadownload/images/administrator/icon-32-authorizeall.png create mode 100644 packages/phocadownload/media/com_phocadownload/images/administrator/icon-32-disapprove.png create mode 100644 packages/phocadownload/media/com_phocadownload/images/administrator/icon-32-multiple.png create mode 100644 packages/phocadownload/media/com_phocadownload/images/administrator/icon-32-reset.png create mode 100644 packages/phocadownload/media/com_phocadownload/images/administrator/icon-48-cat.png create mode 100644 packages/phocadownload/media/com_phocadownload/images/administrator/icon-48-cats.png create mode 100644 packages/phocadownload/media/com_phocadownload/images/administrator/icon-48-downloads.png create mode 100644 packages/phocadownload/media/com_phocadownload/images/administrator/icon-48-file.png create mode 100644 packages/phocadownload/media/com_phocadownload/images/administrator/icon-48-files.png create mode 100644 packages/phocadownload/media/com_phocadownload/images/administrator/icon-48-info.png create mode 100644 packages/phocadownload/media/com_phocadownload/images/administrator/icon-48-layouts.png create mode 100644 packages/phocadownload/media/com_phocadownload/images/administrator/icon-48-lic.png create mode 100644 packages/phocadownload/media/com_phocadownload/images/administrator/icon-48-lics.png create mode 100644 packages/phocadownload/media/com_phocadownload/images/administrator/icon-48-logs.png create mode 100644 packages/phocadownload/media/com_phocadownload/images/administrator/icon-48-pd-multiple.png create mode 100644 packages/phocadownload/media/com_phocadownload/images/administrator/icon-48-phoca.png create mode 100644 packages/phocadownload/media/com_phocadownload/images/administrator/icon-48-phocadownload.png create mode 100644 packages/phocadownload/media/com_phocadownload/images/administrator/icon-48-rafile.png create mode 100644 packages/phocadownload/media/com_phocadownload/images/administrator/icon-48-sec.png create mode 100644 packages/phocadownload/media/com_phocadownload/images/administrator/icon-48-set.png create mode 100644 packages/phocadownload/media/com_phocadownload/images/administrator/icon-48-stat.png create mode 100644 packages/phocadownload/media/com_phocadownload/images/administrator/icon-48-styles.png create mode 100644 packages/phocadownload/media/com_phocadownload/images/administrator/icon-48-tags.png create mode 100644 packages/phocadownload/media/com_phocadownload/images/administrator/icon-48-uploads.png create mode 100644 packages/phocadownload/media/com_phocadownload/images/administrator/icon-48-user-stat.png create mode 100644 packages/phocadownload/media/com_phocadownload/images/administrator/icon-48-users.png create mode 100644 packages/phocadownload/media/com_phocadownload/images/administrator/icon-48-vote-file.png create mode 100644 packages/phocadownload/media/com_phocadownload/images/administrator/icon-box-pc.png create mode 100644 packages/phocadownload/media/com_phocadownload/images/administrator/icon-box-pcm.png create mode 100644 packages/phocadownload/media/com_phocadownload/images/administrator/icon-box-pd.png create mode 100644 packages/phocadownload/media/com_phocadownload/images/administrator/icon-box-pdc.png create mode 100644 packages/phocadownload/media/com_phocadownload/images/administrator/icon-box-pe.png create mode 100644 packages/phocadownload/media/com_phocadownload/images/administrator/icon-box-pf.png create mode 100644 packages/phocadownload/media/com_phocadownload/images/administrator/icon-box-pfv.png create mode 100644 packages/phocadownload/media/com_phocadownload/images/administrator/icon-box-pg.png create mode 100644 packages/phocadownload/media/com_phocadownload/images/administrator/icon-box-pgb.png create mode 100644 packages/phocadownload/media/com_phocadownload/images/administrator/icon-box-ph.png create mode 100644 packages/phocadownload/media/com_phocadownload/images/administrator/icon-box-pi.png create mode 100644 packages/phocadownload/media/com_phocadownload/images/administrator/icon-box-pm.png create mode 100644 packages/phocadownload/media/com_phocadownload/images/administrator/icon-box-pp.png create mode 100644 packages/phocadownload/media/com_phocadownload/images/administrator/icon-box-ppdf.png create mode 100644 packages/phocadownload/media/com_phocadownload/images/administrator/icon-box-prm.png create mode 100644 packages/phocadownload/media/com_phocadownload/images/administrator/icon-box-psef.png create mode 100644 packages/phocadownload/media/com_phocadownload/images/administrator/icon-box-pt.png create mode 100644 packages/phocadownload/media/com_phocadownload/images/administrator/icon-file.png create mode 100644 packages/phocadownload/media/com_phocadownload/images/administrator/icon-folder.png create mode 100644 packages/phocadownload/media/com_phocadownload/images/administrator/icon-phoca-logo.png create mode 100644 packages/phocadownload/media/com_phocadownload/images/administrator/icon-up.png create mode 100644 packages/phocadownload/media/com_phocadownload/images/administrator/icon-voting-small.png create mode 100644 packages/phocadownload/media/com_phocadownload/images/administrator/icon-voting.png create mode 100644 packages/phocadownload/media/com_phocadownload/images/administrator/index.html create mode 100644 packages/phocadownload/media/com_phocadownload/images/administrator/line.png create mode 100644 packages/phocadownload/media/com_phocadownload/images/administrator/logo-phoca.png create mode 100644 packages/phocadownload/media/com_phocadownload/images/administrator/logo.png create mode 100644 packages/phocadownload/media/com_phocadownload/images/administrator/spacer.gif create mode 100644 packages/phocadownload/media/com_phocadownload/images/administrator/white-space.png create mode 100644 packages/phocadownload/media/com_phocadownload/images/bg-details.png create mode 100644 packages/phocadownload/media/com_phocadownload/images/bg-download.png create mode 100644 packages/phocadownload/media/com_phocadownload/images/bg-play.png create mode 100644 packages/phocadownload/media/com_phocadownload/images/bg-preview.png create mode 100644 packages/phocadownload/media/com_phocadownload/images/bl.png create mode 100644 packages/phocadownload/media/com_phocadownload/images/blue-bg.png create mode 100644 packages/phocadownload/media/com_phocadownload/images/br.png create mode 100644 packages/phocadownload/media/com_phocadownload/images/btn.png create mode 100644 packages/phocadownload/media/com_phocadownload/images/button-detail-l.png create mode 100644 packages/phocadownload/media/com_phocadownload/images/button-detail-r.png create mode 100644 packages/phocadownload/media/com_phocadownload/images/button-download-l.png create mode 100644 packages/phocadownload/media/com_phocadownload/images/button-download-r.png create mode 100644 packages/phocadownload/media/com_phocadownload/images/button-play-l.png create mode 100644 packages/phocadownload/media/com_phocadownload/images/button-play-r.png create mode 100644 packages/phocadownload/media/com_phocadownload/images/button-preview-l.png create mode 100644 packages/phocadownload/media/com_phocadownload/images/button-preview-r.png create mode 100644 packages/phocadownload/media/com_phocadownload/images/category.png create mode 100644 packages/phocadownload/media/com_phocadownload/images/document.png create mode 100644 packages/phocadownload/media/com_phocadownload/images/folder.png create mode 100644 packages/phocadownload/media/com_phocadownload/images/grey-bg.png create mode 100644 packages/phocadownload/media/com_phocadownload/images/htl.png create mode 100644 packages/phocadownload/media/com_phocadownload/images/htr.png create mode 100644 packages/phocadownload/media/com_phocadownload/images/icon-details.png create mode 100644 packages/phocadownload/media/com_phocadownload/images/icon-document-16.png create mode 100644 packages/phocadownload/media/com_phocadownload/images/icon-document-32.png create mode 100644 packages/phocadownload/media/com_phocadownload/images/icon-document-48.png create mode 100644 packages/phocadownload/media/com_phocadownload/images/icon-document-64.png create mode 100644 packages/phocadownload/media/com_phocadownload/images/icon-download.png create mode 100644 packages/phocadownload/media/com_phocadownload/images/icon-extlink1.png create mode 100644 packages/phocadownload/media/com_phocadownload/images/icon-extlink2.png create mode 100644 packages/phocadownload/media/com_phocadownload/images/icon-hot.png create mode 100644 packages/phocadownload/media/com_phocadownload/images/icon-loading.gif create mode 100644 packages/phocadownload/media/com_phocadownload/images/icon-loading2.gif create mode 100644 packages/phocadownload/media/com_phocadownload/images/icon-new.png create mode 100644 packages/phocadownload/media/com_phocadownload/images/icon-phoca-logo.png create mode 100644 packages/phocadownload/media/com_phocadownload/images/icon-play.png create mode 100644 packages/phocadownload/media/com_phocadownload/images/icon-preview.png create mode 100644 packages/phocadownload/media/com_phocadownload/images/icon-publish-g.png create mode 100644 packages/phocadownload/media/com_phocadownload/images/icon-publish.png create mode 100644 packages/phocadownload/media/com_phocadownload/images/icon-trash-g.png create mode 100644 packages/phocadownload/media/com_phocadownload/images/icon-trash.png create mode 100644 packages/phocadownload/media/com_phocadownload/images/icon-unpublish-g.png create mode 100644 packages/phocadownload/media/com_phocadownload/images/icon-unpublish.png create mode 100644 packages/phocadownload/media/com_phocadownload/images/icon-voting-small.png create mode 100644 packages/phocadownload/media/com_phocadownload/images/icon-voting.png create mode 100644 packages/phocadownload/media/com_phocadownload/images/index.html create mode 100644 packages/phocadownload/media/com_phocadownload/images/mime/16/icon-7zip.png create mode 100644 packages/phocadownload/media/com_phocadownload/images/mime/16/icon-audio.png create mode 100644 packages/phocadownload/media/com_phocadownload/images/mime/16/icon-document.png create mode 100644 packages/phocadownload/media/com_phocadownload/images/mime/16/icon-drawing.png create mode 100644 packages/phocadownload/media/com_phocadownload/images/mime/16/icon-empty.png create mode 100644 packages/phocadownload/media/com_phocadownload/images/mime/16/icon-folder-open.png create mode 100644 packages/phocadownload/media/com_phocadownload/images/mime/16/icon-folder.png create mode 100644 packages/phocadownload/media/com_phocadownload/images/mime/16/icon-gzip.png create mode 100644 packages/phocadownload/media/com_phocadownload/images/mime/16/icon-html.png create mode 100644 packages/phocadownload/media/com_phocadownload/images/mime/16/icon-img.png create mode 100644 packages/phocadownload/media/com_phocadownload/images/mime/16/icon-jar.png create mode 100644 packages/phocadownload/media/com_phocadownload/images/mime/16/icon-pdf.png create mode 100644 packages/phocadownload/media/com_phocadownload/images/mime/16/icon-php.png create mode 100644 packages/phocadownload/media/com_phocadownload/images/mime/16/icon-presentation.png create mode 100644 packages/phocadownload/media/com_phocadownload/images/mime/16/icon-rar.png create mode 100644 packages/phocadownload/media/com_phocadownload/images/mime/16/icon-source.png create mode 100644 packages/phocadownload/media/com_phocadownload/images/mime/16/icon-spreadsheet.png create mode 100644 packages/phocadownload/media/com_phocadownload/images/mime/16/icon-sql.png create mode 100644 packages/phocadownload/media/com_phocadownload/images/mime/16/icon-tar.png create mode 100644 packages/phocadownload/media/com_phocadownload/images/mime/16/icon-txt.png create mode 100644 packages/phocadownload/media/com_phocadownload/images/mime/16/icon-video.png create mode 100644 packages/phocadownload/media/com_phocadownload/images/mime/16/icon-xml.png create mode 100644 packages/phocadownload/media/com_phocadownload/images/mime/16/icon-zip.png create mode 100644 packages/phocadownload/media/com_phocadownload/images/mime/16/index.html create mode 100644 packages/phocadownload/media/com_phocadownload/images/mime/32/icon-7zip.png create mode 100644 packages/phocadownload/media/com_phocadownload/images/mime/32/icon-audio.png create mode 100644 packages/phocadownload/media/com_phocadownload/images/mime/32/icon-document.png create mode 100644 packages/phocadownload/media/com_phocadownload/images/mime/32/icon-drawing.png create mode 100644 packages/phocadownload/media/com_phocadownload/images/mime/32/icon-empty.png create mode 100644 packages/phocadownload/media/com_phocadownload/images/mime/32/icon-folder-open.png create mode 100644 packages/phocadownload/media/com_phocadownload/images/mime/32/icon-folder.png create mode 100644 packages/phocadownload/media/com_phocadownload/images/mime/32/icon-gzip.png create mode 100644 packages/phocadownload/media/com_phocadownload/images/mime/32/icon-html.png create mode 100644 packages/phocadownload/media/com_phocadownload/images/mime/32/icon-img.png create mode 100644 packages/phocadownload/media/com_phocadownload/images/mime/32/icon-jar.png create mode 100644 packages/phocadownload/media/com_phocadownload/images/mime/32/icon-pdf.png create mode 100644 packages/phocadownload/media/com_phocadownload/images/mime/32/icon-php.png create mode 100644 packages/phocadownload/media/com_phocadownload/images/mime/32/icon-presentation.png create mode 100644 packages/phocadownload/media/com_phocadownload/images/mime/32/icon-rar.png create mode 100644 packages/phocadownload/media/com_phocadownload/images/mime/32/icon-source.png create mode 100644 packages/phocadownload/media/com_phocadownload/images/mime/32/icon-spreadsheet.png create mode 100644 packages/phocadownload/media/com_phocadownload/images/mime/32/icon-sql.png create mode 100644 packages/phocadownload/media/com_phocadownload/images/mime/32/icon-tar.png create mode 100644 packages/phocadownload/media/com_phocadownload/images/mime/32/icon-txt.png create mode 100644 packages/phocadownload/media/com_phocadownload/images/mime/32/icon-video.png create mode 100644 packages/phocadownload/media/com_phocadownload/images/mime/32/icon-xml.png create mode 100644 packages/phocadownload/media/com_phocadownload/images/mime/32/icon-zip.png create mode 100644 packages/phocadownload/media/com_phocadownload/images/mime/32/index.html create mode 100644 packages/phocadownload/media/com_phocadownload/images/mime/48/icon-7zip.png create mode 100644 packages/phocadownload/media/com_phocadownload/images/mime/48/icon-audio.png create mode 100644 packages/phocadownload/media/com_phocadownload/images/mime/48/icon-document.png create mode 100644 packages/phocadownload/media/com_phocadownload/images/mime/48/icon-drawing.png create mode 100644 packages/phocadownload/media/com_phocadownload/images/mime/48/icon-empty.png create mode 100644 packages/phocadownload/media/com_phocadownload/images/mime/48/icon-folder-open.png create mode 100644 packages/phocadownload/media/com_phocadownload/images/mime/48/icon-folder.png create mode 100644 packages/phocadownload/media/com_phocadownload/images/mime/48/icon-gzip.png create mode 100644 packages/phocadownload/media/com_phocadownload/images/mime/48/icon-html.png create mode 100644 packages/phocadownload/media/com_phocadownload/images/mime/48/icon-img.png create mode 100644 packages/phocadownload/media/com_phocadownload/images/mime/48/icon-jar.png create mode 100644 packages/phocadownload/media/com_phocadownload/images/mime/48/icon-pdf.png create mode 100644 packages/phocadownload/media/com_phocadownload/images/mime/48/icon-php.png create mode 100644 packages/phocadownload/media/com_phocadownload/images/mime/48/icon-presentation.png create mode 100644 packages/phocadownload/media/com_phocadownload/images/mime/48/icon-rar.png create mode 100644 packages/phocadownload/media/com_phocadownload/images/mime/48/icon-source.png create mode 100644 packages/phocadownload/media/com_phocadownload/images/mime/48/icon-spreadsheet.png create mode 100644 packages/phocadownload/media/com_phocadownload/images/mime/48/icon-sql.png create mode 100644 packages/phocadownload/media/com_phocadownload/images/mime/48/icon-tar.png create mode 100644 packages/phocadownload/media/com_phocadownload/images/mime/48/icon-txt.png create mode 100644 packages/phocadownload/media/com_phocadownload/images/mime/48/icon-video.png create mode 100644 packages/phocadownload/media/com_phocadownload/images/mime/48/icon-xml.png create mode 100644 packages/phocadownload/media/com_phocadownload/images/mime/48/icon-zip.png create mode 100644 packages/phocadownload/media/com_phocadownload/images/mime/48/index.html create mode 100644 packages/phocadownload/media/com_phocadownload/images/mime/64/icon-7zip.png create mode 100644 packages/phocadownload/media/com_phocadownload/images/mime/64/icon-audio.png create mode 100644 packages/phocadownload/media/com_phocadownload/images/mime/64/icon-document.png create mode 100644 packages/phocadownload/media/com_phocadownload/images/mime/64/icon-drawing.png create mode 100644 packages/phocadownload/media/com_phocadownload/images/mime/64/icon-empty.png create mode 100644 packages/phocadownload/media/com_phocadownload/images/mime/64/icon-folder-open.png create mode 100644 packages/phocadownload/media/com_phocadownload/images/mime/64/icon-folder.png create mode 100644 packages/phocadownload/media/com_phocadownload/images/mime/64/icon-gzip.png create mode 100644 packages/phocadownload/media/com_phocadownload/images/mime/64/icon-html.png create mode 100644 packages/phocadownload/media/com_phocadownload/images/mime/64/icon-img.png create mode 100644 packages/phocadownload/media/com_phocadownload/images/mime/64/icon-jar.png create mode 100644 packages/phocadownload/media/com_phocadownload/images/mime/64/icon-pdf.png create mode 100644 packages/phocadownload/media/com_phocadownload/images/mime/64/icon-php.png create mode 100644 packages/phocadownload/media/com_phocadownload/images/mime/64/icon-presentation.png create mode 100644 packages/phocadownload/media/com_phocadownload/images/mime/64/icon-rar.png create mode 100644 packages/phocadownload/media/com_phocadownload/images/mime/64/icon-source.png create mode 100644 packages/phocadownload/media/com_phocadownload/images/mime/64/icon-spreadsheet.png create mode 100644 packages/phocadownload/media/com_phocadownload/images/mime/64/icon-sql.png create mode 100644 packages/phocadownload/media/com_phocadownload/images/mime/64/icon-tar.png create mode 100644 packages/phocadownload/media/com_phocadownload/images/mime/64/icon-txt.png create mode 100644 packages/phocadownload/media/com_phocadownload/images/mime/64/icon-video.png create mode 100644 packages/phocadownload/media/com_phocadownload/images/mime/64/icon-xml.png create mode 100644 packages/phocadownload/media/com_phocadownload/images/mime/64/icon-zip.png create mode 100644 packages/phocadownload/media/com_phocadownload/images/mime/64/index.html create mode 100644 packages/phocadownload/media/com_phocadownload/images/mime/AUTHORS create mode 100644 packages/phocadownload/media/com_phocadownload/images/mime/COPYING create mode 100644 packages/phocadownload/media/com_phocadownload/images/mime/index.html create mode 100644 packages/phocadownload/media/com_phocadownload/images/next-grey.png create mode 100644 packages/phocadownload/media/com_phocadownload/images/next.png create mode 100644 packages/phocadownload/media/com_phocadownload/images/phoca-download.png create mode 100644 packages/phocadownload/media/com_phocadownload/images/prev-grey.png create mode 100644 packages/phocadownload/media/com_phocadownload/images/prev.png create mode 100644 packages/phocadownload/media/com_phocadownload/images/tl.png create mode 100644 packages/phocadownload/media/com_phocadownload/images/tr.png create mode 100644 packages/phocadownload/media/com_phocadownload/images/up.png create mode 100644 packages/phocadownload/media/com_phocadownload/images/white-space.png create mode 100644 packages/phocadownload/media/com_phocadownload/index.html create mode 100644 packages/phocadownload/media/com_phocadownload/js/index.html create mode 100644 packages/phocadownload/media/com_phocadownload/js/jquery.equalheights.min.js create mode 100644 packages/phocadownload/media/com_phocadownload/js/jquery.matchHeight.js create mode 100644 packages/phocadownload/media/com_phocadownload/js/jquery.matchHeight.min.js create mode 100644 packages/phocadownload/plugins/content/phocadownload/index.html create mode 100644 packages/phocadownload/plugins/content/phocadownload/phocadownload.php create mode 100644 packages/phocadownload/plugins/content/phocadownload/phocadownload.xml create mode 100644 packages/phocadownload/plugins/editors-xtd/phocadownload/assets/css/index.html create mode 100644 packages/phocadownload/plugins/editors-xtd/phocadownload/assets/css/phocadownload.css create mode 100644 packages/phocadownload/plugins/editors-xtd/phocadownload/assets/images/icon-button.png create mode 100644 packages/phocadownload/plugins/editors-xtd/phocadownload/assets/images/index.html create mode 100644 packages/phocadownload/plugins/editors-xtd/phocadownload/assets/index.html create mode 100644 packages/phocadownload/plugins/editors-xtd/phocadownload/index.html create mode 100644 packages/phocadownload/plugins/editors-xtd/phocadownload/phocadownload.php create mode 100644 packages/phocadownload/plugins/editors-xtd/phocadownload/phocadownload.xml create mode 100644 packages/phocadownload/plugins/search/phocadownload/index.html create mode 100644 packages/phocadownload/plugins/search/phocadownload/phocadownload.php create mode 100644 packages/phocadownload/plugins/search/phocadownload/phocadownload.xml diff --git a/packages/phocadownload/administrator/components/com_phocadownload/access.xml b/packages/phocadownload/administrator/components/com_phocadownload/access.xml new file mode 100644 index 00000000..82dd6413 --- /dev/null +++ b/packages/phocadownload/administrator/components/com_phocadownload/access.xml @@ -0,0 +1,12 @@ + + +
+ + + + + + +
+ +
\ No newline at end of file diff --git a/packages/phocadownload/administrator/components/com_phocadownload/config.xml b/packages/phocadownload/administrator/components/com_phocadownload/config.xml new file mode 100644 index 00000000..0b832e18 --- /dev/null +++ b/packages/phocadownload/administrator/components/com_phocadownload/config.xml @@ -0,0 +1,550 @@ + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ +
+
\ No newline at end of file diff --git a/packages/phocadownload/administrator/components/com_phocadownload/controller.php b/packages/phocadownload/administrator/components/com_phocadownload/controller.php new file mode 100644 index 00000000..19b28ab3 --- /dev/null +++ b/packages/phocadownload/administrator/components/com_phocadownload/controller.php @@ -0,0 +1,56 @@ +input->get('option'); + +$l['cp'] = array('COM_PHOCADOWNLOAD_CONTROL_PANEL', ''); +$l['f'] = array('COM_PHOCADOWNLOAD_FILES', 'phocadownloadfiles'); +$l['c'] = array('COM_PHOCADOWNLOAD_CATEGORIES', 'phocadownloadcats'); +$l['l'] = array('COM_PHOCADOWNLOAD_LICENSES', 'phocadownloadlics'); +$l['st'] = array('COM_PHOCADOWNLOAD_STATISTICS', 'phocadownloadstat'); +$l['d'] = array('COM_PHOCADOWNLOAD_DOWNLOADS', 'phocadownloaddownloads'); +$l['u'] = array('COM_PHOCADOWNLOAD_UPLOADS', 'phocadownloaduploads'); +$l['fr'] = array('COM_PHOCADOWNLOAD_FILE_RATING', 'phocadownloadrafile'); +$l['t'] = array('COM_PHOCADOWNLOAD_TAGS', 'phocadownloadtags'); +$l['ly'] = array('COM_PHOCADOWNLOAD_LAYOUT', 'phocadownloadlayouts'); +$l['sty'] = array('COM_PHOCADOWNLOAD_STYLES', 'phocadownloadstyles'); +$l['log'] = array('COM_PHOCADOWNLOAD_LOGGING', 'phocadownloadlogs'); +$l['in'] = array('COM_PHOCADOWNLOAD_INFO', 'phocadownloadinfo'); + +// Submenu view +//$view = JRequest::getVar( 'view', '', '', 'string', JREQUEST_ALLOWRAW ); +//$layout = JRequest::getVar( 'layout', '', '', 'string', JREQUEST_ALLOWRAW ); +$view = JFactory::getApplication()->input->get('view'); +$layout = JFactory::getApplication()->input->get('layout'); + +if ($layout == 'edit') { +} else { + foreach ($l as $k => $v) { + + if ($v[1] == '') { + $link = 'index.php?option='.$option; + } else { + $link = 'index.php?option='.$option.'&view='; + } + + if ($view == $v[1]) { + JHtmlSidebar::addEntry(JText::_($v[0]), $link.$v[1], true ); + } else { + JHtmlSidebar::addEntry(JText::_($v[0]), $link.$v[1]); + } + } +} + +class PhocadownloadCpController extends JControllerLegacy { + function display($cachable = false, $urlparams = array()) { + parent::display($cachable , $urlparams); + } +} +?> diff --git a/packages/phocadownload/administrator/components/com_phocadownload/controllers/index.html b/packages/phocadownload/administrator/components/com_phocadownload/controllers/index.html new file mode 100644 index 00000000..fa6d84e8 --- /dev/null +++ b/packages/phocadownload/administrator/components/com_phocadownload/controllers/index.html @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/phocadownload/administrator/components/com_phocadownload/controllers/phocadownloadcat.php b/packages/phocadownload/administrator/components/com_phocadownload/controllers/phocadownloadcat.php new file mode 100644 index 00000000..f03d0c08 --- /dev/null +++ b/packages/phocadownload/administrator/components/com_phocadownload/controllers/phocadownloadcat.php @@ -0,0 +1,56 @@ +authorise('core.create', 'com_phocadownload'); + if ($allow === null) { + return parent::allowAdd($data); + } else { + return $allow; + } + } + + protected function allowEdit($data = array(), $key = 'id') { + $user = JFactory::getUser(); + $allow = null; + $allow = $user->authorise('core.edit', 'com_phocadownload'); + if ($allow === null) { + return parent::allowEdit($data, $key); + } else { + return $allow; + } + } + + public function batch($model = null) { + JRequest::checkToken() or jexit(JText::_('JINVALID_TOKEN')); + + // Set the model + $model = $this->getModel('phocadownloadcat', '', array()); + + // Preset the redirect + $this->setRedirect(JRoute::_('index.php?option=com_phocadownload&view=phocadownloadcats'.$this->getRedirectToListAppend(), false)); + + return parent::batch($model); + } +} +?> diff --git a/packages/phocadownload/administrator/components/com_phocadownload/controllers/phocadownloadcats.php b/packages/phocadownload/administrator/components/com_phocadownload/controllers/phocadownloadcats.php new file mode 100644 index 00000000..77cca7aa --- /dev/null +++ b/packages/phocadownload/administrator/components/com_phocadownload/controllers/phocadownloadcats.php @@ -0,0 +1,42 @@ + true)); + return $model; + } + + public function saveOrderAjax() { + JSession::checkToken() or jexit(JText::_('JINVALID_TOKEN')); + $pks = $this->input->post->get('cid', array(), 'array'); + $order = $this->input->post->get('order', array(), 'array'); + JArrayHelper::toInteger($pks); + JArrayHelper::toInteger($order); + $model = $this->getModel(); + $return = $model->saveorder($pks, $order); + if ($return) { echo "1";} + JFactory::getApplication()->close(); + } + +} +?> \ No newline at end of file diff --git a/packages/phocadownload/administrator/components/com_phocadownload/controllers/phocadownloaddownloads.php b/packages/phocadownload/administrator/components/com_phocadownload/controllers/phocadownloaddownloads.php new file mode 100644 index 00000000..888c4c53 --- /dev/null +++ b/packages/phocadownload/administrator/components/com_phocadownload/controllers/phocadownloaddownloads.php @@ -0,0 +1,46 @@ + true)); + return $model; + } + + function cancel($key = NULL) { + $model = $this->getModel( 'phocadownload' ); + $this->setRedirect( 'index.php?option=com_phocadownload&view=phocadownloaddownloads' ); + } + + function reset() { + + $post = JRequest::get('post'); + $cid = JRequest::getVar( 'cid', array(0), 'post', 'array' ); + $idFile = JRequest::getVar( 'idfile', 0, 'post', 'int' ); + + $model = $this->getModel( 'phocadownloaddownloads' ); + + if ($model->reset($cid)) { + $msg = JText::_( 'COM_PHOCADOWNLOAD_SUCCESS_RESET_USER_STAT' ); + } else { + $msg = JText::_( 'COM_PHOCADOWNLOAD_ERROR_RESET_USER_STAT' ); + } + + $link = 'index.php?option=com_phocadownload&view=phocadownloaddownloads&id='.(int)$idFile; + $this->setRedirect($link, $msg); + } +} +?> diff --git a/packages/phocadownload/administrator/components/com_phocadownload/controllers/phocadownloadfile.php b/packages/phocadownload/administrator/components/com_phocadownload/controllers/phocadownloadfile.php new file mode 100644 index 00000000..197d063e --- /dev/null +++ b/packages/phocadownload/administrator/components/com_phocadownload/controllers/phocadownloadfile.php @@ -0,0 +1,79 @@ +authorise('core.create', 'com_phocadownload'); + if ($allow === null) { + return parent::allowAdd($data); + } else { + return $allow; + } + } + + protected function allowEdit($data = array(), $key = 'id') { + $user = JFactory::getUser(); + $allow = null; + $allow = $user->authorise('core.edit', 'com_phocadownload'); + if ($allow === null) { + return parent::allowEdit($data, $key); + } else { + return $allow; + } + } + + public function batch($model = null) { + JRequest::checkToken() or jexit(JText::_('JINVALID_TOKEN')); + + // Set the model + $model = $this->getModel('phocadownloadfile', '', array()); + + // Preset the redirect + $this->setRedirect(JRoute::_('index.php?option=com_phocadownload&view=phocadownloadfiles'.$this->getRedirectToListAppend(), false)); + + return parent::batch($model); + } + + /* + function copyquick() { + $cid = JRequest::getVar( 'cid', array(0), 'post', 'array' ); + $model = $this->getModel( 'phocadownloadfile' ); + if ($model->copyQuick($cid)) { + $msg = JText::_( 'COM_PHOCADOWNLOAD_SUCCESS_COPY_FILE' ); + } else { + $msg = JText::_( 'COM_PHOCADOWNLOAD_ERROR_COPY_FILE' ); + } + $link = 'index.php?option=com_phocadownload&view=phocadownloadfiles'; + $this->setRedirect($link, $msg); + }*/ + +} +?> diff --git a/packages/phocadownload/administrator/components/com_phocadownload/controllers/phocadownloadfiles.php b/packages/phocadownload/administrator/components/com_phocadownload/controllers/phocadownloadfiles.php new file mode 100644 index 00000000..7f837f7a --- /dev/null +++ b/packages/phocadownload/administrator/components/com_phocadownload/controllers/phocadownloadfiles.php @@ -0,0 +1,81 @@ +registerTask('disapprove', 'approve'); + + } + + public function &getModel($name = 'PhocaDownloadFile', $prefix = 'PhocaDownloadCpModel', $config = array()) + { + $model = parent::getModel($name, $prefix, array('ignore_request' => true)); + return $model; + } + + + function approve() + { + // Check for request forgeries + JRequest::checkToken() or die(JText::_('JINVALID_TOKEN')); + + // Get items to publish from the request. + $cid = JRequest::getVar('cid', array(), '', 'array'); + $data = array('approve' => 1, 'disapprove' => 0); + $task = $this->getTask(); + $value = JArrayHelper::getValue($data, $task, 0, 'int'); + + if (empty($cid)) { + JError::raiseWarning(500, JText::_($this->text_prefix.'_NO_ITEM_SELECTED')); + } else { + // Get the model. + $model = $this->getModel(); + + // Make sure the item ids are integers + JArrayHelper::toInteger($cid); + + // Publish the items. + + if (!$model->approve($cid, $value)) { + JError::raiseWarning(500, $model->getError()); + } else { + if ($value == 1) { + $ntext = $this->text_prefix.'_N_ITEMS_APPROVED'; + } else if ($value == 0) { + $ntext = $this->text_prefix.'_N_ITEMS_DISAPPROVED'; + } + $this->setMessage(JText::plural($ntext, count($cid))); + } + } + + $this->setRedirect(JRoute::_('index.php?option='.$this->option.'&view='.$this->view_list, false)); + } + + public function saveOrderAjax() { + JSession::checkToken() or jexit(JText::_('JINVALID_TOKEN')); + $pks = $this->input->post->get('cid', array(), 'array'); + $order = $this->input->post->get('order', array(), 'array'); + JArrayHelper::toInteger($pks); + JArrayHelper::toInteger($order); + $model = $this->getModel(); + $return = $model->saveorder($pks, $order); + if ($return) { echo "1";} + JFactory::getApplication()->close(); + } + +} +?> \ No newline at end of file diff --git a/packages/phocadownload/administrator/components/com_phocadownload/controllers/phocadownloadinfo.php b/packages/phocadownload/administrator/components/com_phocadownload/controllers/phocadownloadinfo.php new file mode 100644 index 00000000..7dd43c52 --- /dev/null +++ b/packages/phocadownload/administrator/components/com_phocadownload/controllers/phocadownloadinfo.php @@ -0,0 +1,25 @@ +setRedirect( 'index.php?option=com_phocadownload' ); + } +} +?> diff --git a/packages/phocadownload/administrator/components/com_phocadownload/controllers/phocadownloadinstall.php b/packages/phocadownload/administrator/components/com_phocadownload/controllers/phocadownloadinstall.php new file mode 100644 index 00000000..56d8ac99 --- /dev/null +++ b/packages/phocadownload/administrator/components/com_phocadownload/controllers/phocadownloadinstall.php @@ -0,0 +1,993 @@ +registerTask( 'install' , 'install' ); + $this->registerTask( 'upgrade' , 'upgrade' ); + } + + function install() { + $db = JFactory::getDBO(); + $msgSQL = ''; + $msgFile = ''; + $msgError = ''; + + // -------------------------------------------------------------------------- + + $query =' DROP TABLE IF EXISTS '.$db->quoteName('#__phocadownload_categories').' ;'; + $db->setQuery( $query ); + if (!$result = $db->query()){$msgSQL .= $db->stderr() . '
';} + + + $query ='CREATE TABLE '.$db->quoteName('#__phocadownload_categories').' ('."\n"; + $query.=' '.$db->quoteName('id').' int(11) NOT NULL auto_increment,'."\n"; + $query.=' '.$db->quoteName('parent_id').' int(11) NOT NULL default 0,'."\n"; + $query.=' '.$db->quoteName('section').' int(11) NOT NULL default 0,'."\n"; + $query.=' '.$db->quoteName('title').' varchar(255) NOT NULL default \'\','."\n"; + $query.=' '.$db->quoteName('name').' varchar(255) NOT NULL default \'\','."\n"; + $query.=' '.$db->quoteName('alias').' varchar(255) NOT NULL default \'\','."\n"; + $query.=' '.$db->quoteName('image').' varchar(255) NOT NULL default \'\','."\n"; + $query.=' '.$db->quoteName('image_position').' varchar(30) NOT NULL default \'\','."\n"; + $query.=' '.$db->quoteName('description').' text,'."\n"; + $query.=' '.$db->quoteName('published').' tinyint(1) NOT NULL default \'0\','."\n"; + $query.=' '.$db->quoteName('checked_out').' int(11) unsigned NOT NULL default \'0\','."\n"; + $query.=' '.$db->quoteName('checked_out_time').' datetime NOT NULL default \'0000-00-00 00:00:00\','."\n"; + $query.=' '.$db->quoteName('editor').' varchar(50) default NULL,'."\n"; + $query.=' '.$db->quoteName('ordering').' int(11) NOT NULL default \'0\','."\n"; + $query.=' '.$db->quoteName('access').' int(11) unsigned NOT NULL default \'0\','."\n"; + $query.=' '.$db->quoteName('uploaduserid').' text,'."\n"; + $query.=' '.$db->quoteName('accessuserid').' text,'."\n"; + $query.=' '.$db->quoteName('deleteuserid').' text,'."\n"; + $query.=' '.$db->quoteName('date').' datetime NOT NULL default \'0000-00-00 00:00:00\','."\n"; + $query.=' '.$db->quoteName('count').' int(11) NOT NULL default \'0\','."\n"; + $query.=' '.$db->quoteName('params').' text,'."\n"; + $query.=' '.$db->quoteName('hits').' int(11) NOT NULL default \'0\','."\n"; + $query.=' '.$db->quoteName('metakey').' text,'."\n"; + $query.=' '.$db->quoteName('metadesc').' text,'."\n"; + $query.=' '.$db->quoteName('metadata').' text,'."\n"; + $query.=' '.$db->quoteName('language').' char(7) NOT NULL default \'\','."\n"; + $query.=' PRIMARY KEY ('.$db->quoteName('id').'),'."\n"; + $query.=' KEY '.$db->quoteName('cat_idx').' ('.$db->quoteName('section').', '. $db->quoteName('published').', '. $db->quoteName('access').'),'."\n"; + $query.=' KEY '.$db->quoteName('idx_access').' ('.$db->quoteName('access').'),'."\n"; + $query.=' KEY '.$db->quoteName('idx_checkout').' ('.$db->quoteName('checked_out').')'."\n"; + $query.=') default CHARSET=utf8;'; + + $db->setQuery( $query ); + if (!$result = $db->query()){$msgSQL .= $db->stderr() . '
';} + + // -------------------------------------------------------------------------- + /* + $query=' DROP TABLE IF EXISTS '.$db->quoteName('#__phocadownload_sections').' ;'."\n"; + + $db->setQuery( $query ); + if (!$result = $db->query()){$msgSQL .= $db->stderr() . '
';} + + $query ='CREATE TABLE '.$db->quoteName('#__phocadownload_sections').' ('."\n"; + $query.=' '.$db->quoteName('id').' int(11) NOT NULL auto_increment,'."\n"; + $query.=' '.$db->quoteName('title').' varchar(255) NOT NULL default \'\','."\n"; + $query.=' '.$db->quoteName('name').' varchar(255) NOT NULL default \'\','."\n"; + $query.=' '.$db->quoteName('alias').' varchar(255) NOT NULL default \'\','."\n"; + $query.=' '.$db->quoteName('image').' text,'."\n"; + $query.=' '.$db->quoteName('scope').' varchar(50) NOT NULL default \'\','."\n"; + $query.=' '.$db->quoteName('image_position').' varchar(30) NOT NULL default \'\','."\n"; + $query.=' '.$db->quoteName('description').' text,'."\n"; + $query.=' '.$db->quoteName('published').' tinyint(1) NOT NULL default \'0\','."\n"; + $query.=' '.$db->quoteName('checked_out').' int(11) unsigned NOT NULL default \'0\','."\n"; + $query.=' '.$db->quoteName('checked_out_time').' datetime NOT NULL default \'0000-00-00 00:00:00\','."\n"; + $query.=' '.$db->quoteName('ordering').' int(11) NOT NULL default \'0\','."\n"; + $query.=' '.$db->quoteName('access').' int(11) unsigned NOT NULL default \'0\','."\n"; + $query.=' '.$db->quoteName('date').' datetime NOT NULL default \'0000-00-00 00:00:00\','."\n"; + $query.=' '.$db->quoteName('count').' int(11) NOT NULL default \'0\','."\n"; + $query.=' '.$db->quoteName('params').' text,'."\n"; + $query.=' '.$db->quoteName('metakey').' text,'."\n"; + $query.=' '.$db->quoteName('metadesc').' text,'."\n"; + $query.=' PRIMARY KEY ('.$db->quoteName('id').'),'."\n"; + $query.=' KEY '.$db->quoteName('idx_scope').' ('.$db->quoteName('scope').')'."\n"; + $query.=') TYPE=MyISAM CHARACTER SET '.$db->quoteName('utf8').' ;'; + + $db->setQuery( $query ); + if (!$result = $db->query()){$msgSQL .= $db->stderr() . '
';} + */ + // -------------------------------------------------------------------------- + + $query=' DROP TABLE IF EXISTS '.$db->quoteName('#__phocadownload').' ;'."\n"; + + $db->setQuery( $query ); + if (!$result = $db->query()){$msgSQL .= $db->stderr() . '
';} + + $query ='CREATE TABLE '.$db->quoteName('#__phocadownload').' ('."\n"; + $query.=' '.$db->quoteName('id').' int(11) unsigned NOT NULL auto_increment,'."\n"; + $query.=' '.$db->quoteName('catid').' int(11) NOT NULL default \'0\','."\n"; + $query.=' '.$db->quoteName('sectionid').' int(11) NOT NULL default \'0\','."\n"; + $query.=' '.$db->quoteName('owner_id').' int(11) NOT NULL default \'0\','."\n"; + $query.=' '.$db->quoteName('sid').' int(11) NOT NULL default \'0\','."\n"; + $query.=' '.$db->quoteName('title').' varchar(250) NOT NULL default \'\','."\n"; + $query.=' '.$db->quoteName('alias').' varchar(255) NOT NULL default \'\','."\n"; + $query.=' '.$db->quoteName('filename').' varchar(250) NOT NULL default \'\','."\n"; + $query.=' '.$db->quoteName('filesize').' int(11) NOT NULL default \'0\','."\n"; + $query.=' '.$db->quoteName('filename_play').' varchar(250) NOT NULL default \'\','."\n"; + $query.=' '.$db->quoteName('filename_preview').' varchar(250) NOT NULL default \'\','."\n"; + $query.=' '.$db->quoteName('author').' varchar(255) NOT NULL default \'\','."\n"; + $query.=' '.$db->quoteName('author_email').' varchar(255) NOT NULL default \'\','."\n"; + $query.=' '.$db->quoteName('author_url').' varchar(255) NOT NULL default \'\','."\n"; + $query.=' '.$db->quoteName('license').' varchar(255) NOT NULL default \'\','."\n"; + $query.=' '.$db->quoteName('license_url').' varchar(255) NOT NULL default \'\','."\n"; + $query.=' '.$db->quoteName('video_filename').' varchar(255) NOT NULL default \'\','."\n"; + $query.=' '.$db->quoteName('image_filename').' varchar(255) NOT NULL default \'\','."\n"; + $query.=' '.$db->quoteName('image_filename_spec1').' varchar(255) NOT NULL default \'\','."\n"; + $query.=' '.$db->quoteName('image_filename_spec2').' varchar(255) NOT NULL default \'\','."\n"; + $query.=' '.$db->quoteName('image_download').' varchar(255) NOT NULL default \'\','."\n"; + $query.=' '.$db->quoteName('link_external').' varchar(255) NOT NULL default \'\','."\n"; + + $query.=' '.$db->quoteName('mirror1link').' varchar(255) NOT NULL default \'\','."\n"; + $query.=' '.$db->quoteName('mirror1title').' varchar(255) NOT NULL default \'\','."\n"; + $query.=' '.$db->quoteName('mirror1target').' varchar(10) NOT NULL default \'\','."\n"; + + $query.=' '.$db->quoteName('mirror2link').' varchar(255) NOT NULL default \'\','."\n"; + $query.=' '.$db->quoteName('mirror2title').' varchar(255) NOT NULL default \'\','."\n"; + $query.=' '.$db->quoteName('mirror2target').' varchar(10) NOT NULL default \'\','."\n"; + + $query.=' '.$db->quoteName('description').' text,'."\n"; + $query.=' '.$db->quoteName('features').' text,'."\n"; + $query.=' '.$db->quoteName('changelog').' text,'."\n"; + $query.=' '.$db->quoteName('notes').' text,'."\n"; + $query.=' '.$db->quoteName('userid').' int(11) NOT NULL default \'0\','."\n"; + $query.=' '.$db->quoteName('version').' varchar(255) NOT NULL default \'\','."\n"; + $query.=' '.$db->quoteName('directlink').' tinyint(1) NOT NULL default \'0\','."\n"; + $query.=' '.$db->quoteName('date').' datetime NOT NULL default \'0000-00-00 00:00:00\','."\n"; + $query.=' '.$db->quoteName('publish_up').' datetime NOT NULL default \'0000-00-00 00:00:00\','."\n"; + $query.=' '.$db->quoteName('publish_down').' datetime NOT NULL default \'0000-00-00 00:00:00\','."\n"; + $query.=' '.$db->quoteName('hits').' int(11) NOT NULL default \'0\','."\n"; + $query.=' '.$db->quoteName('textonly').' tinyint(1) NOT NULL default \'0\','."\n"; + $query.=' '.$db->quoteName('published').' tinyint(1) NOT NULL default \'0\','."\n"; + $query.=' '.$db->quoteName('approved').' tinyint(3) unsigned NOT NULL default \'0\','."\n"; + $query.=' '.$db->quoteName('checked_out').' int(11) NOT NULL default \'0\','."\n"; + $query.=' '.$db->quoteName('checked_out_time').' datetime NOT NULL default \'0000-00-00 00:00:00\','."\n"; + $query.=' '.$db->quoteName('ordering').' int(11) NOT NULL default \'0\','."\n"; + $query.=' '.$db->quoteName('access').' int(11) unsigned NOT NULL default \'0\','."\n"; + $query.=' '.$db->quoteName('confirm_license').' int(11) NOT NULL default \'0\','."\n"; + $query.=' '.$db->quoteName('unaccessible_file').' int(11) NOT NULL default \'0\','."\n"; + $query.=' '.$db->quoteName('params').' text,'."\n"; + $query.=' '.$db->quoteName('metakey').' text,'."\n"; + $query.=' '.$db->quoteName('metadesc').' text,'."\n"; + $query.=' '.$db->quoteName('metadata').' text,'."\n"; + $query.=' '.$db->quoteName('language').' char(7) NOT NULL default \'\','."\n"; + $query.=' PRIMARY KEY ('.$db->quoteName('id').'),'."\n"; + $query.=' KEY '.$db->quoteName('catid').' ('.$db->quoteName('catid').', '. $db->quoteName('published').')'."\n"; + $query.=') default CHARSET=utf8;'; + + $db->setQuery( $query ); + if (!$result = $db->query()){$msgSQL .= $db->stderr() . '
';} + + // -------------------------------------------------------------------------- + /* + $query=' DROP TABLE IF EXISTS '.$db->quoteName('#__phocadownload_settings').' ;'."\n"; + + $db->setQuery( $query ); + if (!$result = $db->query()){$msgSQL .= $db->stderr() . '
';} + + $query =' CREATE TABLE '.$db->quoteName('#__phocadownload_settings').' ('."\n"; + $query.=' '.$db->quoteName('id').' int(11) unsigned NOT NULL auto_increment,'."\n"; + $query.=' '.$db->quoteName('title').' varchar(250) NOT NULL default \'\','."\n"; + $query.=' '.$db->quoteName('value').' text,'."\n"; + $query.=' '.$db->quoteName('values').' text,'."\n"; + $query.=' '.$db->quoteName('type').' varchar(50) NOT NULL default \'\','."\n"; + $query.=' PRIMARY KEY ('.$db->quoteName('id').')'."\n"; + $query.=') TYPE=MyISAM CHARACTER SET '.$db->quoteName('utf8').' ;'; + + $db->setQuery( $query ); + if (!$result = $db->query()){$msgSQL .= $db->stderr() . '
';} + + // VALUES + + $queries[] = "INSERT INTO ".$db->quoteName('#__phocadownload_settings')." VALUES (null, 'download_folder', 'phocadownload','', 'text');"."\n"; + + $queries[] = "INSERT INTO ".$db->quoteName('#__phocadownload_settings')." VALUES (null, 'allowed_file_types', '{hqx=application/mac-binhex40}\n{cpt=application/mac-compactpro}\n{csv=text/x-comma-separated-values}\n{bin=application/macbinary}\n{dms=application/octet-stream}\n{lha=application/octet-stream}\n{lzh=application/octet-stream}\n{exe=application/octet-stream}\n{class=application/octet-stream}\n{psd=application/x-photoshop}\n{so=application/octet-stream}\n{sea=application/octet-stream}\n{dll=application/octet-stream}\n{oda=application/oda}\n{pdf=application/pdf}\n{ai=application/postscript}\n{eps=application/postscript}\n{ps=application/postscript}\n{smi=application/smil}\n{smil=application/smil}\n{mif=application/vnd.mif}\n{xls=application/vnd.ms-excel}\n{ppt=application/powerpoint}\n{wbxml=application/wbxml}\n{wmlc=application/wmlc}\n{dcr=application/x-director}\n{dir=application/x-director}\n{dxr=application/x-director}\n{dvi=application/x-dvi}\n{gtar=application/x-gtar}\n{gz=application/x-gzip}\n{php=application/x-httpd-php}\n{php4=application/x-httpd-php}\n{php3=application/x-httpd-php}\n{phtml=application/x-httpd-php}\n{phps=application/x-httpd-php-source}\n{js=application/x-javascript}\n{swf=application/x-shockwave-flash}\n{sit=application/x-stuffit}\n{tar=application/x-tar}\n{tgz=application/x-tar}\n{xhtml=application/xhtml+xml}\n{xht=application/xhtml+xml}\n{zip=application/x-zip}\n{mid=audio/midi}\n{midi=audio/midi}\n{mpga=audio/mpeg}\n{mp2=audio/mpeg}\n{mp3=audio/mpeg}\n{aif=audio/x-aiff}\n{aiff=audio/x-aiff}\n{aifc=audio/x-aiff}\n{ram=audio/x-pn-realaudio}\n{rm=audio/x-pn-realaudio}\n{rpm=audio/x-pn-realaudio-plugin}\n{ra=audio/x-realaudio}\n{rv=video/vnd.rn-realvideo}\n{wav=audio/x-wav}\n{bmp=image/bmp}\n{gif=image/gif}\n{jpeg=image/jpeg}\n{jpg=image/jpeg}\n{jpe=image/jpeg}\n{png=image/png}\n{tiff=image/tiff}\n{tif=image/tiff}\n{css=text/css}\n{html=text/html}\n{htm=text/html}\n{shtml=text/html}\n{txt=text/plain}\n{text=text/plain}\n{log=text/plain}\n{rtx=text/richtext}\n{rtf=text/rtf}\n{xml=text/xml}\n{xsl=text/xml}\n{mpeg=video/mpeg}\n{mpg=video/mpeg}\n{mpe=video/mpeg}\n{qt=video/quicktime}\n{mov=video/quicktime}\n{avi=video/x-msvideo}\n{flv=video/x-flv}\n{movie=video/x-sgi-movie}\n{doc=application/msword}\n{xl=application/excel}\n{eml=message/rfc822}', '', 'textarea');"."\n"; + + $queries[] = "INSERT INTO ".$db->quoteName('#__phocadownload_settings')." VALUES (null, 'disallowed_file_types', '','', 'textarea');"."\n"; + $queries[] = "INSERT INTO ".$db->quoteName('#__phocadownload_settings')." VALUES (null, 'upload_maxsize', '3145728','', 'text');"."\n"; + $queries[] = "INSERT INTO ".$db->quoteName('#__phocadownload_settings')." VALUES (null, 'enable_flash', 0,'{0=No}{1=Yes}', 'select');"."\n"; + + // Version 1.0.6 + $queries[] = "INSERT INTO ".$db->quoteName('#__phocadownload_settings')." VALUES (null, 'enable_user_statistics', 1,'{0=No}{1=Yes}', 'select');"."\n"; + // Version 1.1.0 + $queries[] = "INSERT INTO ".$db->quoteName('#__phocadownload_settings')." VALUES (null, 'absolute_path', '','', 'text');"."\n"; + // Version 1.3.4 + $queries[] = "INSERT INTO ".$db->quoteName('#__phocadownload_settings')." VALUES (null, 'description', '','', 'textareaeditor');"."\n"; + + foreach ($queries as $valueQuery) { + $db->setQuery( $valueQuery ); + if (!$result = $db->query()){$msgSQL .= $db->stderr() . '
';} + } +*/ + // -------------------------------------------------------------------------- + + $query=' DROP TABLE IF EXISTS '.$db->quoteName('#__phocadownload_user_stat').' ;'."\n"; + + $db->setQuery( $query ); + if (!$result = $db->query()){$msgSQL .= $db->stderr() . '
';} + + $query='CREATE TABLE '.$db->quoteName('#__phocadownload_user_stat').' ('."\n"; + $query.=' '.$db->quoteName('id').' int(11) NOT NULL auto_increment,'."\n"; + $query.=' '.$db->quoteName('fileid').' int(11) NOT NULL default \'0\','."\n"; + $query.=' '.$db->quoteName('userid').' int(11) NOT NULL default \'0\','."\n"; + $query.=' '.$db->quoteName('count').' int(11) NOT NULL default \'0\','."\n"; + $query.=' '.$db->quoteName('date').' datetime NOT NULL default \'0000-00-00 00:00:00\','."\n"; + $query.=' '.$db->quoteName('published').' tinyint(1) NOT NULL default \'0\','."\n"; + $query.=' '.$db->quoteName('ordering').' int(11) NOT NULL default \'0\','."\n"; + $query.=' '.$db->quoteName('language').' char(7) NOT NULL default \'\','."\n"; + $query.=' PRIMARY KEY ('.$db->quoteName('id').')'."\n"; + $query.=') default CHARSET=utf8;'; + + $db->setQuery( $query ); + if (!$result = $db->query()){$msgSQL .= $db->stderr() . '
';} + + // -------------------------------------------------------------------------- + + $query=' DROP TABLE IF EXISTS '.$db->quoteName('#__phocadownload_licenses').' ;'."\n"; + + $db->setQuery( $query ); + if (!$result = $db->query()){$msgSQL .= $db->stderr() . '
';} + + $query ='CREATE TABLE '.$db->quoteName('#__phocadownload_licenses').' ('."\n"; + $query.=' '.$db->quoteName('id').' int(11) NOT NULL auto_increment,'."\n"; + $query.=' '.$db->quoteName('title').' varchar(255) NOT NULL default \'\','."\n"; + $query.=' '.$db->quoteName('alias').' varchar(255) NOT NULL default \'\','."\n"; + $query.=' '.$db->quoteName('description').' text,'."\n"; + $query.=' '.$db->quoteName('checked_out').' int(11) unsigned NOT NULL default \'0\','."\n"; + $query.=' '.$db->quoteName('checked_out_time').' datetime NOT NULL default \'0000-00-00 00:00:00\','."\n"; + $query.=' '.$db->quoteName('published').' tinyint(1) NOT NULL default \'0\','."\n"; + $query.=' '.$db->quoteName('ordering').' int(11) NOT NULL default \'0\','."\n"; + $query.=' '.$db->quoteName('language').' char(7) NOT NULL default \'\','."\n"; + $query.=' PRIMARY KEY ('.$db->quoteName('id').')'."\n"; + $query.=') default CHARSET=utf8;'; + + $db->setQuery( $query ); + if (!$result = $db->query()){$msgSQL .= $db->stderr() . '
';} + + + // ------------------------------------------ + // PHOCADOWNLOAD FILE VOTES (2.0.0 RC2) + // ------------------------------------------ + $query ='DROP TABLE IF EXISTS '.$db->quoteName('#__phocadownload_file_votes').';'."\n"; + + $db->setQuery( $query ); + if (!$result = $db->query()){$msgSQL .= $db->stderr() . '
';} + + $query =' CREATE TABLE '.$db->quoteName('#__phocadownload_file_votes').' ('."\n"; + $query.=' '.$db->quoteName('id').' int(11) NOT NULL auto_increment,'."\n"; + $query.=' '.$db->quoteName('fileid').' int(11) NOT NULL default 0,'."\n"; + $query.=' '.$db->quoteName('userid').' int(11) NOT NULL default 0,'."\n"; + $query.=' '.$db->quoteName('date').' datetime NOT NULL default \'0000-00-00 00:00:00\','."\n"; + $query.=' '.$db->quoteName('rating').' tinyint(1) NOT NULL default \'0\','."\n"; + $query.=' '.$db->quoteName('published').' tinyint(1) NOT NULL default \'0\','."\n"; + $query.=' '.$db->quoteName('checked_out').' int(11) unsigned NOT NULL default \'0\','."\n"; + $query.=' '.$db->quoteName('checked_out_time').' datetime NOT NULL default \'0000-00-00 00:00:00\','."\n"; + $query.=' '.$db->quoteName('ordering').' int(11) NOT NULL default \'0\','."\n"; + $query.=' '.$db->quoteName('params').' text,'."\n"; + $query.=' '.$db->quoteName('language').' char(7) NOT NULL default \'\','."\n"; + $query.=' PRIMARY KEY ('.$db->quoteName('id').')'."\n"; + $query.=') default CHARSET=utf8;'."\n"; + + $db->setQuery( $query ); + if (!$result = $db->query()){$msgSQL .= $db->stderr() . '
';} + + // ------------------------------------------ + // PHOCADOWNLOAD FILE VOTES STATISTICS (2.0.0 RC2) + // ------------------------------------------ + $query ='DROP TABLE IF EXISTS '.$db->quoteName('#__phocadownload_file_votes_statistics').';'."\n"; + + $db->setQuery( $query ); + if (!$result = $db->query()){$msgSQL .= $db->stderr() . '
';} + + $query =' CREATE TABLE '.$db->quoteName('#__phocadownload_file_votes_statistics').' ('."\n"; + $query.=' '.$db->quoteName('id').' int(11) NOT NULL auto_increment,'."\n"; + $query.=' '.$db->quoteName('fileid').' int(11) NOT NULL default 0,'."\n"; + $query.=' '.$db->quoteName('count').' int(11) NOT NULL default \'0\','."\n"; + $query.=' '.$db->quoteName('average').' float(8,6) NOT NULL default \'0\','."\n"; + $query.=' '.$db->quoteName('language').' char(7) NOT NULL default \'\','."\n"; + $query.=' PRIMARY KEY ('.$db->quoteName('id').')'."\n"; + $query.=') default CHARSET=utf8;'."\n"; + + $db->setQuery( $query ); + if (!$result = $db->query()){$msgSQL .= $db->stderr() . '
';} + + + // ------------------------------------------ + // PHOCADOWNLOAD TAGS (2.1.0) + // ------------------------------------------ + + $query =' DROP TABLE IF EXISTS '.$db->quoteName('#__phocadownload_tags').' ;'; + $db->setQuery( $query ); + if (!$result = $db->query()){$msgSQL .= $db->stderr() . '
';} + + $query ='CREATE TABLE '.$db->quoteName('#__phocadownload_tags').' ('."\n"; + $query.=' '.$db->quoteName('id').' int(11) NOT NULL auto_increment,'."\n"; + $query.=' '.$db->quoteName('title').' varchar(255) NOT NULL default \'\','."\n"; + $query.=' '.$db->quoteName('alias').' varchar(255) NOT NULL default \'\','."\n"; + $query.=' '.$db->quoteName('link_cat').' int(11) NOT NULL default 0,'."\n"; + $query.=' '.$db->quoteName('link_ext').' varchar(255) NOT NULL default \'\','."\n"; + $query.=' '.$db->quoteName('description').' text,'."\n"; + $query.=' '.$db->quoteName('published').' tinyint(1) NOT NULL default \'0\','."\n"; + $query.=' '.$db->quoteName('checked_out').' int(11) unsigned NOT NULL default \'0\','."\n"; + $query.=' '.$db->quoteName('checked_out_time').' datetime NOT NULL default \'0000-00-00 00:00:00\','."\n"; + $query.=' '.$db->quoteName('ordering').' int(11) NOT NULL default \'0\','."\n"; + $query.=' '.$db->quoteName('params').' text,'."\n"; + $query.=' '.$db->quoteName('language').' char(7) NOT NULL default \'\','."\n"; + $query.=' PRIMARY KEY ('.$db->quoteName('id').')'."\n"; + $query.=') default CHARSET=utf8;'."\n"; + + $db->setQuery( $query ); + if (!$result = $db->query()){$msgSQL .= $db->stderr() . '
';} + + + + $query =' DROP TABLE IF EXISTS '.$db->quoteName('#__phocadownload_tags_ref').' ;'; + $db->setQuery( $query ); + if (!$result = $db->query()){$msgSQL .= $db->stderr() . '
';} + + $query ='CREATE TABLE '.$db->quoteName('#__phocadownload_tags_ref').' ('."\n"; + $query.=' '.$db->quoteName('id').' SERIAL,'."\n"; + $query.=' '.$db->quoteName('fileid').' int(11) NOT NULL default 0,'."\n"; + $query.=' '.$db->quoteName('tagid').' int(11) NOT NULL default 0,'."\n"; + $query.=' PRIMARY KEY ('.$db->quoteName('id').'),'."\n"; + $query.=' UNIQUE KEY '.$db->quoteName('i_fileid').' ('.$db->quoteName('fileid').','.$db->quoteName('tagid').')'."\n"; + $query.=') default CHARSET=utf8;'."\n"; + + + $db->setQuery( $query ); + if (!$result = $db->query()){$msgSQL .= $db->stderr() . '
';} + + + + $query =' DROP TABLE IF EXISTS '.$db->quoteName('#__phocadownload_layout').' ;'; + $db->setQuery( $query ); + if (!$result = $db->query()){$msgSQL .= $db->stderr() . '
';} + + $query ='CREATE TABLE '.$db->quoteName('#__phocadownload_layout').' ('."\n"; + $query.=' '.$db->quoteName('id').' int(11) NOT NULL auto_increment,'."\n"; + $query.=' '.$db->quoteName('categories').' text,'."\n"; + $query.=' '.$db->quoteName('category').' text,'."\n"; + $query.=' '.$db->quoteName('file').' text,'."\n"; + $query.=' '.$db->quoteName('checked_out').' int(11) unsigned NOT NULL default \'0\','."\n"; + $query.=' '.$db->quoteName('checked_out_time').' datetime NOT NULL default \'0000-00-00 00:00:00\','."\n"; + $query.=' '.$db->quoteName('params').' text,'."\n"; + $query.=' PRIMARY KEY ('.$db->quoteName('id').')'."\n"; + $query.=') default CHARSET=utf8;'."\n"; + + $db->setQuery( $query ); + if (!$result = $db->query()){$msgSQL .= $db->stderr() . '
';} + + + $query ='INSERT INTO '.$db->quoteName('#__phocadownload_layout').' ('."\n"; + $query.=' '.$db->quoteName('id').' ,'."\n"; + $query.=' '.$db->quoteName('categories').' ,'."\n"; + $query.=' '.$db->quoteName('category').' ,'."\n"; + $query.=' '.$db->quoteName('file').' ,'."\n"; + $query.=' '.$db->quoteName('checked_out').' ,'."\n"; + $query.=' '.$db->quoteName('checked_out_time').' ,'."\n"; + $query.=' '.$db->quoteName('params').' )'."\n"; + $query.=' VALUES ('."\n"; + $query.=' NULL,'."\n"; + + $query.=' '.$db->Quote('
+
{pdtitle}
+{pdsubcategories} +{pdclear} +
').','."\n"; + $query.=' '.$db->Quote('
+{pdfiledesctop} +{pdfile} +
{pdbuttondownload}
+
{pdbuttondetails}
+
{pdbuttonpreview}
+
{pdbuttonplay}
+
{pdmirrorlink2} {pdmirrorlink1}
+
{pdrating}
+
{pdtags}
+{pdfiledescbottom} +
+
').','."\n"; + $query.=' '.$db->Quote('
+{pdimage} +{pdfile} +{pdfilesize} +{pdversion} +{pdlicense} +{pdauthor} +{pdauthoremail} +{pdfiledate} +{pddownloads} +{pddescription} +{pdfeatures} +{pdchangelog} +{pdnotes} +
{pdmirrorlink2} {pdmirrorlink1}
+
{pdreportlink}
+
{pdrating}
+
{pdtags}
+
+
').','."\n"; + $query.=' '.$db->Quote('0').','."\n"; + $query.=' '.$db->Quote('0000-00-00 00:00:00').','."\n"; + $query.=' NULL'."\n"; + $query.=' );'."\n"; + + $db->setQuery( $query ); + if (!$result = $db->query()){$msgSQL .= $db->stderr() . '
';} + + + // END ------------------------------------------------------------------------------- + + + + // Error + if ($msgSQL !='') { + $msgError .= '
' . $msgSQL; + } + if ($msgFile !='') { + $msgError .= '
' . $msgFile; + } + + // End Message + if ($msgError !='') { + $msg = JText::_( 'Phoca Download not successfully installed' ) . ': ' . $msgError; + } else { + $msg = JText::_( 'Phoca Download successfully installed' ); + } + + + $link = 'index.php?option=com_phocadownload'; + $this->setRedirect($link, $msg); + } + + + + + + + + + + + + + function upgrade() + { + $db = JFactory::getDBO(); + $dbPref = $db->getPrefix(); + $msgSQL = ''; + $msgFile = ''; + $msgError = ''; + + + $query =' SELECT * FROM '.$db->quoteName('#__phocadownload').' LIMIT 1;'; + $db->setQuery( $query ); + $result = $db->loadResult(); + if ($db->getErrorNum()) + { + $msgSQL .= $db->getErrorMsg(). '
'; + } + + + $query=' SELECT * FROM '.$db->quoteName('#__phocadownload_categories').' LIMIT 1;'."\n"; + + $db->setQuery( $query ); + $result = $db->loadResult(); + if ($db->getErrorNum()) + { + $msgSQL .= $db->getErrorMsg(). '
'; + } + /* + $query=' SELECT * FROM '.$db->quoteName('#__phocadownload_sections').' LIMIT 1;'."\n"; + + $db->setQuery( $query ); + $result = $db->loadResult(); + if ($db->getErrorNum()) + { + $msgSQL .= $db->getErrorMsg(). '
'; + } + */ + // UPGRADE PHOCA DOWNLOAD 2.1.0 VERSION + // ------------------------------------------ + // PHOCADOWNLOAD TAGS + // ------------------------------------------ + + $query ='CREATE TABLE IF NOT EXISTS '.$db->quoteName('#__phocadownload_tags').' ('."\n"; + $query.=' '.$db->quoteName('id').' int(11) NOT NULL auto_increment,'."\n"; + $query.=' '.$db->quoteName('title').' varchar(255) NOT NULL default \'\','."\n"; + $query.=' '.$db->quoteName('alias').' varchar(255) NOT NULL default \'\','."\n"; + $query.=' '.$db->quoteName('link_cat').' int(11) NOT NULL default 0,'."\n"; + $query.=' '.$db->quoteName('link_ext').' varchar(255) NOT NULL default \'\','."\n"; + $query.=' '.$db->quoteName('description').' text,'."\n"; + $query.=' '.$db->quoteName('published').' tinyint(1) NOT NULL default \'0\','."\n"; + $query.=' '.$db->quoteName('checked_out').' int(11) unsigned NOT NULL default \'0\','."\n"; + $query.=' '.$db->quoteName('checked_out_time').' datetime NOT NULL default \'0000-00-00 00:00:00\','."\n"; + $query.=' '.$db->quoteName('ordering').' int(11) NOT NULL default \'0\','."\n"; + $query.=' '.$db->quoteName('params').' text,'."\n"; + $query.=' '.$db->quoteName('language').' char(7) NOT NULL default \'\','."\n"; + $query.=' PRIMARY KEY ('.$db->quoteName('id').')'."\n"; + $query.=') default CHARSET=utf8;'."\n"; + + $db->setQuery( $query ); + if (!$result = $db->query()){$msgSQL .= $db->stderr() . '
';} + + + $query ='CREATE TABLE IF NOT EXISTS'.$db->quoteName('#__phocadownload_tags_ref').' ('."\n"; + $query.=' '.$db->quoteName('id').' SERIAL,'."\n"; + $query.=' '.$db->quoteName('fileid').' int(11) NOT NULL default 0,'."\n"; + $query.=' '.$db->quoteName('tagid').' int(11) NOT NULL default 0,'."\n"; + $query.=' PRIMARY KEY ('.$db->quoteName('id').'),'."\n"; + $query.=' UNIQUE KEY '.$db->quoteName('i_fileid').' ('.$db->quoteName('fileid').','.$db->quoteName('tagid').')'."\n"; + $query.=') default CHARSET=utf8;'."\n"; + + $db->setQuery( $query ); + if (!$result = $db->query()){$msgSQL .= $db->stderr() . '
';} + + + $query ='CREATE TABLE IF NOT EXISTS '.$db->quoteName('#__phocadownload_layout').' ('."\n"; + $query.=' '.$db->quoteName('id').' int(11) NOT NULL auto_increment,'."\n"; + $query.=' '.$db->quoteName('categories').' text,'."\n"; + $query.=' '.$db->quoteName('category').' text,'."\n"; + $query.=' '.$db->quoteName('file').' text,'."\n"; + $query.=' '.$db->quoteName('checked_out').' int(11) unsigned NOT NULL default \'0\','."\n"; + $query.=' '.$db->quoteName('checked_out_time').' datetime NOT NULL default \'0000-00-00 00:00:00\','."\n"; + $query.=' '.$db->quoteName('params').' text,'."\n"; + $query.=' PRIMARY KEY ('.$db->quoteName('id').')'."\n"; + $query.=') default CHARSET=utf8;'."\n"; + + $db->setQuery( $query ); + if (!$result = $db->query()){$msgSQL .= $db->stderr() . '
';} + + + $update0 = false; + $errorMsg = ''; + $update0 = $this->AddColumnIfNotExists( $errorMsg, "#__phocadownload", "features", "text", "description" ); + if (!$update0) { + $msgSQL .= 'Error while updating Features column'; + } + $update1 = false; + $errorMsg = ''; + $update1 = $this->AddColumnIfNotExists( $errorMsg, "#__phocadownload", "changelog", "text", "description" ); + if (!$update1) { + $msgSQL .= 'Error while updating Changelog column'; + } + $update2 = false; + $errorMsg = ''; + $update2 = $this->AddColumnIfNotExists( $errorMsg, "#__phocadownload", "notes", "text", "description" ); + if (!$update2) { + $msgSQL .= 'Error while updating Notes column'; + } + + /* + $query=' SELECT title FROM '.$db->quoteName('#__phocadownload_settings').' WHERE title = \'enable_user_statistics\' LIMIT 1;'."\n"; + $db->setQuery($query); + + if (!$result = $db->loadObject()) { + $query = "INSERT INTO ".$db->quoteName('#__phocadownload_settings')." VALUES (null, 'enable_user_statistics', 1,'{0=No}{1=Yes}', 'select');"."\n"; + $db->setQuery( $query ); + if (!$result = $db->query()){$msgSQL .= $db->stderr() . '
';} + } + + // -------------------------------------------------------------------------- + + // UPGRADE PHOCA DOWNLOAD 1.1.0 VERSION + // ------------------------------------------ + // PHOCADOWNLOAD USER STAT + // ------------------------------------------ + + $query='CREATE TABLE IF NOT EXISTS '.$db->quoteName('#__phocadownload_licenses').' ('."\n"; + $query.=' '.$db->quoteName('id').' int(11) NOT NULL auto_increment,'."\n"; + $query.=' '.$db->quoteName('title').' varchar(255) NOT NULL default \'\','."\n"; + $query.=' '.$db->quoteName('alias').' varchar(255) NOT NULL default \'\','."\n"; + $query.=' '.$db->quoteName('description').' text,'."\n"; + $query.=' '.$db->quoteName('checked_out').' int(11) unsigned NOT NULL default \'0\','."\n"; + $query.=' '.$db->quoteName('checked_out_time').' datetime NOT NULL default \'0000-00-00 00:00:00\','."\n"; + $query.=' '.$db->quoteName('published').' tinyint(1) NOT NULL default \'0\','."\n"; + $query.=' '.$db->quoteName('ordering').' int(11) NOT NULL default \'0\','."\n"; + $query.=' PRIMARY KEY ('.$db->quoteName('id').')'."\n"; + $query.=') TYPE=MyISAM CHARACTER SET '.$db->quoteName('utf8').' ;'; + + $db->setQuery( $query ); + if (!$result = $db->query()){$msgSQL .= $db->stderr() . '
';} + + // -------------------------------------------------------------------------- + + // ------------------------------------------ + // PHOCADOWNLOAD UPDATE confirm_license + // ------------------------------------------ + $updateCL = false; + $updateCL = $this->AddColumnIfNotExists($errorMsg, "#__phocadownload", "confirm_license", "int(11) NOT NULL default '0'", "access" ); + if (!$updateCL) { + $msgSQL .= 'Error while updating Confirm License column
'; + } + + // ------------------------------------------ + // PHOCADOWNLOAD UPDATE confirm_license + // ------------------------------------------ + $updateUF = false; + $updateUF = $this->AddColumnIfNotExists($errorMsg, "#__phocadownload", "unaccessible_file", "int(11) NOT NULL default '0'", "access" ); + if (!$updateUF) { + $msgSQL .= 'Error while updating Display Unaccessible Files column
'; + } + + // ------------------------------------------ + // PHOCADOWNLOAD CATEGORIES UPDATE date + // ------------------------------------------ + $updateCD = false; + $updateCD = $this->AddColumnIfNotExists($errorMsg, "#__phocadownload_categories", "date", "datetime NOT NULL default '0000-00-00 00:00:00'", "access" ); + if (!$updateCD) { + $msgSQL .= 'Error while updating Date column (categories)
'; + } + + // ------------------------------------------ + // PHOCADOWNLOAD SECTIONS UPDATE date + // ------------------------------------------ + $updateSD = false; + $updateSD = $this->AddColumnIfNotExists($errorMsg, "#__phocadownload_sections", "date", "datetime NOT NULL default '0000-00-00 00:00:00'", "access" ); + if (!$updateSD) { + $msgSQL .= 'Error while updating Date column (sections)
'; + } + // ------------------------------------------ + // PHOCADOWNLOAD SETTINGS UPDATE absolute_path + // ------------------------------------------ + + $query=' SELECT title FROM '.$db->quoteName('#__phocadownload_settings').' WHERE title = \'absolute_path\' LIMIT 1;'."\n"; + $db->setQuery($query); + + if (!$result = $db->loadObject()) { + $query = "INSERT INTO ".$db->quoteName('#__phocadownload_settings')." VALUES (null, 'absolute_path', '','', 'text');"."\n"; + $db->setQuery( $query ); + if (!$result = $db->query()){$msgSQL .= $db->stderr() . '
';} + } + + // ------------------------------------------ + // PHOCA DOWNLOAD UPDATE 1.2.0 + // ------------------------------------------ + + // Filename_preview + $updateFPR = false; + $updateFPR = $this->AddColumnIfNotExists($errorMsg, "#__phocadownload", "filename_preview", "varchar(250) NOT NULL default ''", "filename" ); + if (!$updateFPR) { + $msgSQL .= 'Error while updating Filename Preview column
'; + } + + // Filename_play + $updateFPL = false; + $updateFPL = $this->AddColumnIfNotExists($errorMsg, "#__phocadownload", "filename_play", "varchar(250) NOT NULL default ''", "filename" ); + if (!$updateFPL) { + $msgSQL .= 'Error while updating Filename Play column
'; + } + + $updateIFS1 = false; + $updateIFS1 = $this->AddColumnIfNotExists($errorMsg, "#__phocadownload", "image_filename_spec1", "varchar(250) NOT NULL default ''", "filename" ); + if (!$updateIFS1) { + $msgSQL .= 'Error while updating Image Filename Spec1 column
'; + } + + $updateIFS2 = false; + $updateIFS2 = $this->AddColumnIfNotExists($errorMsg, "#__phocadownload", "image_filename_spec2", "varchar(250) NOT NULL default ''", "filename" ); + if (!$updateIFS2) { + $msgSQL .= 'Error while updating Image Filename Spec2 column
'; + } + + // ------------------------------------------ + // PHOCA DOWNLOAD UPDATE 1.3.0 + // ------------------------------------------ + + // Approved + $updateApr = false; + $updateApr = $this->AddColumnIfNotExists($errorMsg, "#__phocadownload", "approved", "tinyint(1) NOT NULL default '0'", "published" ); + if (!$updateApr) { + $msgSQL .= 'Error while updating Approved column
'; + } + + // Upload + $updateUpl = false; + $updateUpl = $this->AddColumnIfNotExists($errorMsg, "#__phocadownload_categories", "uploaduserid", "text", "access" ); + if (!$updateUpl) { + $msgSQL .= 'Error while updating Upload User ID column
'; + } + + // Owner ID + $updateOid = false; + $updateOid = $this->AddColumnIfNotExists($errorMsg, "#__phocadownload", "owner_id", "int(11) NOT NULL default '0'", "id" ); + if (!$updateOid) { + $msgSQL .= 'Error while updating Owner ID column
'; + } + + // Owner ID + $fileSize = false; + $fileSize = $this->AddColumnIfNotExists($errorMsg, "#__phocadownload", "filesize", "int(11) NOT NULL default '0'", "filename" ); + if (!$fileSize) { + $msgSQL .= 'Error while updating File Size column
'; + } + + // ------------------------------------------ + // PHOCA DOWNLOAD UPDATE 1.3.2 + // ------------------------------------------ + + $updateMK = false; + $errorMsg = ''; + $updateMK = $this->AddColumnIfNotExists( $errorMsg, "#__phocadownload", "metakey", "text", "params" ); + if (!$updateMK) { + $msgSQL .= 'Error while updating Metakey (File) column'; + } + $updateMKC = false; + $errorMsg = ''; + $updateMKC = $this->AddColumnIfNotExists( $errorMsg, "#__phocadownload_categories", "metakey", "text", "params" ); + if (!$updateMKC) { + $msgSQL .= 'Error while updating Metakey (Category) column'; + } + $updateMKS = false; + $errorMsg = ''; + $updateMKS = $this->AddColumnIfNotExists( $errorMsg, "#__phocadownload_sections", "metakey", "text", "params" ); + if (!$updateMKS) { + $msgSQL .= 'Error while updating Metakey (Section) column'; + } + $updateMD = false; + $errorMsg = ''; + $updateMD = $this->AddColumnIfNotExists( $errorMsg, "#__phocadownload", "metadesc", "text", "params" ); + if (!$updateMD) { + $msgSQL .= 'Error while updating Metadesc (File) column'; + } + $updateMDC = false; + $errorMsg = ''; + $updateMDC = $this->AddColumnIfNotExists( $errorMsg, "#__phocadownload_categories", "metadesc", "text", "params" ); + if (!$updateMDC) { + $msgSQL .= 'Error while updating Metadesc (Category) column'; + } + $updateMDS = false; + $errorMsg = ''; + $updateMDS = $this->AddColumnIfNotExists( $errorMsg, "#__phocadownload_sections", "metadesc", "text", "params" ); + if (!$updateMDS) { + $msgSQL .= 'Error while updating Metadesc (Section) column'; + } + + // ------------------------------------------ + // PHOCA DOWNLOAD UPDATE 1.3.4 + // ------------------------------------------ + + $query=' SELECT title FROM '.$db->quoteName('#__phocadownload_settings').' WHERE title = \'description\' LIMIT 1;'."\n"; + $db->setQuery($query); + + if (!$result = $db->loadObject()) { + $query = "INSERT INTO ".$db->quoteName('#__phocadownload_settings')." VALUES (null, 'description', '','', 'textareaeditor');"."\n"; + $db->setQuery( $query ); + if (!$result = $db->query()){$msgSQL .= $db->stderr() . '
';} + } + + $updatePU = false; + $errorMsg = ''; + $updatePU = $this->AddColumnIfNotExists( $errorMsg, "#__phocadownload", "publish_up", "datetime NOT NULL default '0000-00-00 00:00:00'", "date" ); + if (!$updatePU) { + $msgSQL .= 'Error while updating Publish Up column'; + } + + $updatePD = false; + $errorMsg = ''; + $updatePD = $this->AddColumnIfNotExists( $errorMsg, "#__phocadownload", "publish_down", "datetime NOT NULL default '0000-00-00 00:00:00'", "date" ); + if (!$updatePD) { + $msgSQL .= 'Error while updating Publish Down column'; + } + + + // ------------------------------------------ + // PHOCA DOWNLOAD UPDATE 1.3.4 + // ------------------------------------------ + + // Access User ID + $updateAid = false; + $updateAid = $this->AddColumnIfNotExists($errorMsg, "#__phocadownload_categories", "accessuserid", "text", "access" ); + if (!$updateAid) { + $msgSQL .= 'Error while updating Access User ID column
'; + } + + // Delete User ID + $updateDid = false; + $updateDid = $this->AddColumnIfNotExists($errorMsg, "#__phocadownload_categories", "deleteuserid", "text", "access" ); + if (!$updateDid) { + $msgSQL .= 'Error while updating Delete User ID column
'; + } + + */ + // CHECK TABLES + + $query =' SELECT * FROM '.$db->quoteName('#__phocadownload').' LIMIT 1;'; + $db->setQuery( $query ); + $result = $db->loadResult(); + if ($db->getErrorNum()) { + $msgSQL .= $db->getErrorMsg(). '
'; + } + + $query =' SELECT * FROM '.$db->quoteName('#__phocadownload_categories').' LIMIT 1;'; + $db->setQuery( $query ); + $result = $db->loadResult(); + if ($db->getErrorNum()) { + $msgSQL .= $db->getErrorMsg(). '
'; + } + /* + $query =' SELECT * FROM '.$db->quoteName('#__phocadownload_sections').' LIMIT 1;'; + $db->setQuery( $query ); + $result = $db->loadResult(); + if ($db->getErrorNum()) { + $msgSQL .= $db->getErrorMsg(). '
'; + } + + $query =' SELECT * FROM '.$db->quoteName('#__phocadownload_settings').' LIMIT 1;'; + $db->setQuery( $query ); + $result = $db->loadResult(); + if ($db->getErrorNum()) { + $msgSQL .= $db->getErrorMsg(). '
'; + } + */ + $query =' SELECT * FROM '.$db->quoteName('#__phocadownload_user_stat').' LIMIT 1;'; + $db->setQuery( $query ); + $result = $db->loadResult(); + if ($db->getErrorNum()) { + $msgSQL .= $db->getErrorMsg(). '
'; + } + + $query =' SELECT * FROM '.$db->quoteName('#__phocadownload_licenses').' LIMIT 1;'; + $db->setQuery( $query ); + $result = $db->loadResult(); + if ($db->getErrorNum()) { + $msgSQL .= $db->getErrorMsg(). '
'; + } + + $query =' SELECT * FROM '.$db->quoteName('#__phocadownload_tags').' LIMIT 1;'; + $db->setQuery( $query ); + $result = $db->loadResult(); + if ($db->getErrorNum()) { + $msgSQL .= $db->getErrorMsg(). '
'; + } + + $query =' SELECT * FROM '.$db->quoteName('#__phocadownload_layout').' LIMIT 1;'; + $db->setQuery( $query ); + $result = $db->loadObjectList(); + if ($db->getErrorNum()) { + $msgSQL .= $db->getErrorMsg(). '
'; + } + + if ((!isset($result->categories) && !isset($result->category) && !isset($result->file)) || + (isset($result->categories) && $result->category == '' && isset($result->category) && $result->category == '' && isset($result->file) && $result->file == '') + ) { + + $query ='INSERT INTO '.$db->quoteName('#__phocadownload_layout').' ('."\n"; + $query.=' '.$db->quoteName('id').' ,'."\n"; + $query.=' '.$db->quoteName('categories').' ,'."\n"; + $query.=' '.$db->quoteName('category').' ,'."\n"; + $query.=' '.$db->quoteName('file').' ,'."\n"; + $query.=' '.$db->quoteName('checked_out').' ,'."\n"; + $query.=' '.$db->quoteName('checked_out_time').' ,'."\n"; + $query.=' '.$db->quoteName('params').' )'."\n"; + $query.=' VALUES ('."\n"; + $query.=' NULL,'."\n"; + + $query.=' '.$db->Quote('
+
{pdtitle}
+{pdsubcategories} +{pdclear} +
').','."\n"; + $query.=' '.$db->Quote('
+{pdfiledesctop} +{pdfile} +
{pdbuttondownload}
+
{pdbuttondetails}
+
{pdbuttonpreview}
+
{pdbuttonplay}
+
{pdmirrorlink2} {pdmirrorlink1}
+
{pdrating}
+
{pdtags}
+{pdfiledescbottom} +
+
').','."\n"; + $query.=' '.$db->Quote('
+{pdimage} +{pdfile} +{pdfilesize} +{pdversion} +{pdlicense} +{pdauthor} +{pdauthoremail} +{pdfiledate} +{pddownloads} +{pddescription} +{pdfeatures} +{pdchangelog} +{pdnotes} +
{pdmirrorlink2} {pdmirrorlink1}
+
{pdreportlink}
+
{pdrating}
+
{pdtags}
+
+
').','."\n"; + $query.=' '.$db->Quote('0').','."\n"; + $query.=' '.$db->Quote('0000-00-00 00:00:00').','."\n"; + $query.=' NULL'."\n"; + $query.=' );'."\n"; + + $db->setQuery( $query ); + if (!$result = $db->query()){$msgSQL .= $db->stderr() . '
';} + } + // - - - - - - - - - - - - - - - - + + + // ------------------------------------------ + // PHOCA DOWNLOAD UPDATE 2.1.1 + // ------------------------------------------ + + $updateVL = false; + $errorMsg = ''; + $updateVL = $this->AddColumnIfNotExists( $errorMsg, "#__phocadownload", "video_filename", "varchar(255) NOT NULL default ''", "params" ); + if (!$updateVL) { + $msgSQL .= 'Error while updating Video Filename column'; + } + + + + // Error + if ($msgSQL !='') { + $msgError .= '
' . $msgSQL; + } + if ($msgFile !='') { + $msgError .= '
' . $msgFile; + } + + // End Message + if ($msgError !='') { + $msg = JText::_( 'Phoca Download not successfully upgraded' ) . ': ' . $msgError; + } else { + $msg = JText::_( 'Phoca Download successfully upgraded' ); + } + + $link = 'index.php?option=com_phocadownload'; + $this->setRedirect($link, $msg); + } + + function AddColumnIfNotExists(&$errorMsg, $table, $column, $attributes = "INT( 11 ) NOT NULL default '0'", $after = '' ) { + + + $db = JFactory::getDBO(); + $columnExists = false; + + $query = 'SHOW COLUMNS FROM '.$table; + $db->setQuery( $query ); + if (!$result = $db->query()){return false;} + $columnData = $db->loadObjectList(); + + foreach ($columnData as $valueColumn) { + if ($valueColumn->Field == $column) { + $columnExists = true; + break; + } + } + + if (!$columnExists) { + if ($after != '') { + $query = 'ALTER TABLE '.$db->quoteName($table).' ADD '.$db->quoteName($column).' '.$attributes.' AFTER '.$db->quoteName($after).';'; + } else { + $query = 'ALTER TABLE '.$db->quoteName($table).' ADD '.$db->quoteName($column).' '.$attributes.';'; + } + $db->setQuery( $query ); + if (!$result = $db->query()){return false;} + $errorMsg = 'notexistcreated'; + } + + return true; + } +} +// utf-8 test: ,,,, +?> \ No newline at end of file diff --git a/packages/phocadownload/administrator/components/com_phocadownload/controllers/phocadownloadlayout.php b/packages/phocadownload/administrator/components/com_phocadownload/controllers/phocadownloadlayout.php new file mode 100644 index 00000000..5a854b74 --- /dev/null +++ b/packages/phocadownload/administrator/components/com_phocadownload/controllers/phocadownloadlayout.php @@ -0,0 +1,110 @@ +clean(); + } + } + + protected function allowAdd($data = array()) { + $user = JFactory::getUser(); + $allow = null; + $allow = $user->authorise('core.create', 'com_phocadownload'); + if ($allow === null) { + return parent::allowAdd($data); + } else { + return $allow; + } + } + + protected function allowEdit($data = array(), $key = 'id') { + $user = JFactory::getUser(); + $allow = null; + $allow = $user->authorise('core.edit', 'com_phocadownload'); + if ($allow === null) { + return parent::allowEdit($data, $key); + } else { + return $allow; + } + } + + public function back($key = null) { + JSession::checkToken() or jexit(JText::_('JINVALID_TOKEN')); + + // Initialise variables. + $app = JFactory::getApplication(); + $model = $this->getModel(); + $table = $model->getTable(); + $checkin = property_exists($table, 'checked_out'); + $context = "$this->option.edit.$this->context"; + + if (empty($key)) + { + $key = $table->getKeyName(); + } + + $recordId = JRequest::getInt($key); + + + // Attempt to check-in the current record. + if ($recordId) + { + // Check we are holding the id in the edit list. + if (!$this->checkEditId($context, $recordId)) + { + // Somehow the person just went to the form - we don't allow that. + $this->setError(JText::sprintf('JLIB_APPLICATION_ERROR_UNHELD_ID', $recordId)); + $this->setMessage($this->getError(), 'error'); + $this->setRedirect(JRoute::_('index.php?option=' . $this->option, false)); + + return false; + } + + if ($checkin) + { + if ($model->checkin($recordId) === false) + { + // Check-in failed, go back to the record and display a notice. + $this->setError(JText::sprintf('JLIB_APPLICATION_ERROR_CHECKIN_FAILED', $model->getError())); + $this->setMessage($this->getError(), 'error'); + $this->setRedirect(JRoute::_('index.php?option=' . $this->option, false)); + + return false; + } + } + } + + // Clean the session data and redirect. + $this->releaseEditId($context, $recordId); + $app->setUserState($context . '.data', null); + $this->setRedirect(JRoute::_('index.php?option=' . $this->option, false)); + + return true; + } +} \ No newline at end of file diff --git a/packages/phocadownload/administrator/components/com_phocadownload/controllers/phocadownloadlayouts.php b/packages/phocadownload/administrator/components/com_phocadownload/controllers/phocadownloadlayouts.php new file mode 100644 index 00000000..50e30842 --- /dev/null +++ b/packages/phocadownload/administrator/components/com_phocadownload/controllers/phocadownloadlayouts.php @@ -0,0 +1,18 @@ + diff --git a/packages/phocadownload/administrator/components/com_phocadownload/controllers/phocadownloadlic.php b/packages/phocadownload/administrator/components/com_phocadownload/controllers/phocadownloadlic.php new file mode 100644 index 00000000..06b74628 --- /dev/null +++ b/packages/phocadownload/administrator/components/com_phocadownload/controllers/phocadownloadlic.php @@ -0,0 +1,45 @@ +authorise('core.create', 'com_phocadownload'); + if ($allow === null) { + return parent::allowAdd($data); + } else { + return $allow; + } + } + + protected function allowEdit($data = array(), $key = 'id') { + $user = JFactory::getUser(); + $allow = null; + $allow = $user->authorise('core.edit', 'com_phocadownload'); + if ($allow === null) { + return parent::allowEdit($data, $key); + } else { + return $allow; + } + } + +} +?> diff --git a/packages/phocadownload/administrator/components/com_phocadownload/controllers/phocadownloadlics.php b/packages/phocadownload/administrator/components/com_phocadownload/controllers/phocadownloadlics.php new file mode 100644 index 00000000..431a7800 --- /dev/null +++ b/packages/phocadownload/administrator/components/com_phocadownload/controllers/phocadownloadlics.php @@ -0,0 +1,36 @@ + true)); + return $model; + } + + public function saveOrderAjax() { + JSession::checkToken() or jexit(JText::_('JINVALID_TOKEN')); + $pks = $this->input->post->get('cid', array(), 'array'); + $order = $this->input->post->get('order', array(), 'array'); + JArrayHelper::toInteger($pks); + JArrayHelper::toInteger($order); + $model = $this->getModel(); + $return = $model->saveorder($pks, $order); + if ($return) { echo "1";} + JFactory::getApplication()->close(); + } +} +?> \ No newline at end of file diff --git a/packages/phocadownload/administrator/components/com_phocadownload/controllers/phocadownloadlinkfile.php b/packages/phocadownload/administrator/components/com_phocadownload/controllers/phocadownloadlinkfile.php new file mode 100644 index 00000000..67a47252 --- /dev/null +++ b/packages/phocadownload/administrator/components/com_phocadownload/controllers/phocadownloadlinkfile.php @@ -0,0 +1,18 @@ + diff --git a/packages/phocadownload/administrator/components/com_phocadownload/controllers/phocadownloadlogs.php b/packages/phocadownload/administrator/components/com_phocadownload/controllers/phocadownloadlogs.php new file mode 100644 index 00000000..4baae69b --- /dev/null +++ b/packages/phocadownload/administrator/components/com_phocadownload/controllers/phocadownloadlogs.php @@ -0,0 +1,32 @@ +registerTask( 'reset', 'reset'); + } + + function reset() { + + $model = $this->getModel( 'phocadownloadlog' ); + + if ($model->reset($cid)) { + $msg = JText::_( 'COM_PHOCADOWNLOAD_SUCCESS_RESET_LOG_STAT' ); + } else { + $msg = JText::_( 'COM_PHOCADOWNLOAD_ERROR_RESET_LOG_STAT' ); + } + + $link = 'index.php?option=com_phocadownload&view=phocadownloadlogs'; + $this->setRedirect($link, $msg); + } +} +?> diff --git a/packages/phocadownload/administrator/components/com_phocadownload/controllers/phocadownloadm.php b/packages/phocadownload/administrator/components/com_phocadownload/controllers/phocadownloadm.php new file mode 100644 index 00000000..7d6c1989 --- /dev/null +++ b/packages/phocadownload/administrator/components/com_phocadownload/controllers/phocadownloadm.php @@ -0,0 +1,56 @@ +layout = 'edit'; + } + + protected function allowAdd($data = array()) { + $user = JFactory::getUser(); + $allow = null; + $allow = $user->authorise('core.create', 'com_phocadownload'); + if ($allow === null) { + return parent::allowAdd($data); + } else { + return $allow; + } + } + + protected function allowEdit($data = array(), $key = 'id') { + $user = JFactory::getUser(); + $allow = null; + $allow = $user->authorise('core.edit', 'com_phocadownload'); + if ($allow === null) { + return parent::allowEdit($data, $key); + } else { + return $allow; + } + } + + function edit($key = NULL, $urlVar = NULL) { + $this->setRedirect(JRoute::_('index.php?option='.$this->option.'&view='.$this->view_list.'&layout='.$this->layout.'&manager=filemultiple', false)); + } + + function cancel($key = NULL) { + $this->setRedirect( 'index.php?option=com_phocadownload&view=phocadownloadfiles' ); + } +} +?> diff --git a/packages/phocadownload/administrator/components/com_phocadownload/controllers/phocadownloadrafile.php b/packages/phocadownload/administrator/components/com_phocadownload/controllers/phocadownloadrafile.php new file mode 100644 index 00000000..a5c4fbf0 --- /dev/null +++ b/packages/phocadownload/administrator/components/com_phocadownload/controllers/phocadownloadrafile.php @@ -0,0 +1,33 @@ + true)); + return $model; + } + + public function saveOrderAjax() { + $pks = $this->input->post->get('cid', array(), 'array'); + $order = $this->input->post->get('order', array(), 'array'); + JArrayHelper::toInteger($pks); + JArrayHelper::toInteger($order); + $model = $this->getModel(); + $return = $model->saveorder($pks, $order); + if ($return) { echo "1";} + JFactory::getApplication()->close(); + } +} +?> \ No newline at end of file diff --git a/packages/phocadownload/administrator/components/com_phocadownload/controllers/phocadownloadset.php b/packages/phocadownload/administrator/components/com_phocadownload/controllers/phocadownloadset.php new file mode 100644 index 00000000..c9c7fbb8 --- /dev/null +++ b/packages/phocadownload/administrator/components/com_phocadownload/controllers/phocadownloadset.php @@ -0,0 +1,67 @@ +registerTask( 'apply' , 'save' ); + } + + function save() { + $post = JRequest::get('post'); + $phocaSet = JRequest::getVar( 'phocaset', array(0), 'post', 'array' ); + + $model = $this->getModel( 'phocadownloadset' ); + $errorMsg = ''; + switch ( JRequest::getCmd('task') ) { + case 'apply': + + if ($model->store($phocaSet, $errorMsg)) { + $msg = JText::_( 'Changes to Phoca Download Settings Saved' ); + if ($errorMsg != '') { + $msg .= '
'.JText::_($errorMsg); + } + } else { + $msg = JText::_( 'Error Saving Phoca Download Settings' ); + } + $this->setRedirect( 'index.php?option=com_phocadownload&view=phocadownloadset', $msg ); + break; + + case 'save': + default: + if ($model->store($phocaSet, $errorMsg)) { + $msg = JText::_( 'Phoca Download Settings Saved' ); + if ($errorMsg != '') { + $msg .= '
'.JText::_($errorMsg); + } + } else { + $msg = JText::_( 'Error Saving Phoca Download Settings' ); + } + $this->setRedirect( 'index.php?option=com_phocadownload', $msg ); + break; + } + // Check the table in so it can be edited.... we are done with it anyway + $model->checkin(); + } + + + function cancel($key = NULL) { + $model = $this->getModel( 'phocadownload' ); + $model->checkin(); + + $this->setRedirect( 'index.php?option=com_phocadownload' ); + } +} +?> diff --git a/packages/phocadownload/administrator/components/com_phocadownload/controllers/phocadownloadstat.php b/packages/phocadownload/administrator/components/com_phocadownload/controllers/phocadownloadstat.php new file mode 100644 index 00000000..901379f0 --- /dev/null +++ b/packages/phocadownload/administrator/components/com_phocadownload/controllers/phocadownloadstat.php @@ -0,0 +1,44 @@ +getModel( 'phocadownload' ); + $model->checkin(); + + $this->setRedirect( 'index.php?option=com_phocadownload' ); + }*/ + + public function back($key = null) { + JSession::checkToken() or jexit(JText::_('JINVALID_TOKEN')); + $this->setRedirect(JRoute::_('index.php?option=com_phocadownload', false)); + + return true; + } + + public function saveOrderAjax() { + JSession::checkToken() or jexit(JText::_('JINVALID_TOKEN')); + $pks = $this->input->post->get('cid', array(), 'array'); + $order = $this->input->post->get('order', array(), 'array'); + JArrayHelper::toInteger($pks); + JArrayHelper::toInteger($order); + $model = $this->getModel(); + $return = $model->saveorder($pks, $order); + if ($return) { echo "1";} + JFactory::getApplication()->close(); + } +} +?> diff --git a/packages/phocadownload/administrator/components/com_phocadownload/controllers/phocadownloadstyle.php b/packages/phocadownload/administrator/components/com_phocadownload/controllers/phocadownloadstyle.php new file mode 100644 index 00000000..e82a4142 --- /dev/null +++ b/packages/phocadownload/administrator/components/com_phocadownload/controllers/phocadownloadstyle.php @@ -0,0 +1,43 @@ +authorise('core.create', 'com_phocadownload'); + if ($allow === null) { + return parent::allowAdd($data); + } else { + return $allow; + } + } + + protected function allowEdit($data = array(), $key = 'id') { + $user = JFactory::getUser(); + $allow = null; + $allow = $user->authorise('core.edit', 'com_phocadownload'); + if ($allow === null) { + return parent::allowEdit($data, $key); + } else { + return $allow; + } + } +} +?> diff --git a/packages/phocadownload/administrator/components/com_phocadownload/controllers/phocadownloadstyles.php b/packages/phocadownload/administrator/components/com_phocadownload/controllers/phocadownloadstyles.php new file mode 100644 index 00000000..6e34c6bf --- /dev/null +++ b/packages/phocadownload/administrator/components/com_phocadownload/controllers/phocadownloadstyles.php @@ -0,0 +1,39 @@ +registerTask('apply', 'save'); + } + + public function &getModel($name = 'PhocaDownloadStyle', $prefix = 'PhocaDownloadCpModel', $config = array()) { + $model = parent::getModel($name, $prefix, array('ignore_request' => true)); + return $model; + } + + public function saveOrderAjax() { + JSession::checkToken() or jexit(JText::_('JINVALID_TOKEN')); + $pks = $this->input->post->get('cid', array(), 'array'); + $order = $this->input->post->get('order', array(), 'array'); + JArrayHelper::toInteger($pks); + JArrayHelper::toInteger($order); + $model = $this->getModel(); + $return = $model->saveorder($pks, $order); + if ($return) { echo "1";} + JFactory::getApplication()->close(); + } + + +} +?> \ No newline at end of file diff --git a/packages/phocadownload/administrator/components/com_phocadownload/controllers/phocadownloadtag.php b/packages/phocadownload/administrator/components/com_phocadownload/controllers/phocadownloadtag.php new file mode 100644 index 00000000..5a4ccfc2 --- /dev/null +++ b/packages/phocadownload/administrator/components/com_phocadownload/controllers/phocadownloadtag.php @@ -0,0 +1,45 @@ +authorise('core.create', 'com_phocadownload'); + if ($allow === null) { + return parent::allowAdd($data); + } else { + return $allow; + } + } + + protected function allowEdit($data = array(), $key = 'id') { + $user = JFactory::getUser(); + $allow = null; + $allow = $user->authorise('core.edit', 'com_phocadownload'); + if ($allow === null) { + return parent::allowEdit($data, $key); + } else { + return $allow; + } + } + +} +?> diff --git a/packages/phocadownload/administrator/components/com_phocadownload/controllers/phocadownloadtags.php b/packages/phocadownload/administrator/components/com_phocadownload/controllers/phocadownloadtags.php new file mode 100644 index 00000000..022b9f5e --- /dev/null +++ b/packages/phocadownload/administrator/components/com_phocadownload/controllers/phocadownloadtags.php @@ -0,0 +1,34 @@ + true)); + return $model; + } + + public function saveOrderAjax() { + JSession::checkToken() or jexit(JText::_('JINVALID_TOKEN')); + $pks = $this->input->post->get('cid', array(), 'array'); + $order = $this->input->post->get('order', array(), 'array'); + JArrayHelper::toInteger($pks); + JArrayHelper::toInteger($order); + $model = $this->getModel(); + $return = $model->saveorder($pks, $order); + if ($return) { echo "1";} + JFactory::getApplication()->close(); + } +} +?> \ No newline at end of file diff --git a/packages/phocadownload/administrator/components/com_phocadownload/controllers/phocadownloaduninstall.php b/packages/phocadownload/administrator/components/com_phocadownload/controllers/phocadownloaduninstall.php new file mode 100644 index 00000000..a93d2777 --- /dev/null +++ b/packages/phocadownload/administrator/components/com_phocadownload/controllers/phocadownloaduninstall.php @@ -0,0 +1,37 @@ +registerTask( 'remove' , 'remove' ); + $this->registerTask( 'keep' , 'keep' ); + } + + + + function remove() + { + + } + + function keep() + { + + } +} \ No newline at end of file diff --git a/packages/phocadownload/administrator/components/com_phocadownload/controllers/phocadownloadupload.php b/packages/phocadownload/administrator/components/com_phocadownload/controllers/phocadownloadupload.php new file mode 100644 index 00000000..db45dd28 --- /dev/null +++ b/packages/phocadownload/administrator/components/com_phocadownload/controllers/phocadownloadupload.php @@ -0,0 +1,116 @@ +get( 'folder_permissions', 0755 ); + //$folder_permissions = octdec((int)$folder_permissions); + + + $folderNew = JRequest::getCmd( 'foldername', ''); + $folderCheck = JRequest::getVar( 'foldername', null, '', 'string', JREQUEST_ALLOWRAW); + $parent = JRequest::getVar( 'folderbase', '', '', 'path' ); + $tab = JRequest::getVar( 'tab', 0, '', 'string' ); + $field = JRequest::getVar( 'field'); + $viewBack = JRequest::getVar( 'viewback', '', '', 'phocadownloadmanager' ); + $manager = JRequest::getVar( 'manager', 'file', '', 'string' ); + + + $link = ''; + if ($manager != '') { + $group = PhocaDownloadSettings::getManagerGroup($manager); + $link = 'index.php?option=com_phocadownload&view='.(string)$viewBack.'&manager='.(string)$manager + .str_replace('&', '&', $group['c']).'&folder='.$parent.'&tab='.(string)$tab.'&field='.$field; + $path = PhocaDownloadPath::getPathSet($manager);// we use viewback to get right path + } else { + + $app->enqueueMessage( JText::_('COM_PHOCADOWNLOAD_ERROR_CONTROLLER_MANAGER_NOT_SET')); + $app->redirect('index.php?option=com_phocadownload'); + exit; + } + + JRequest::setVar('folder', $parent); + + if (($folderCheck !== null) && ($folderNew !== $folderCheck)) { + $app->enqueueMessage( JText::_('COM_PHOCADOWNLOAD_WARNING_DIRNAME')); + $app->redirect($link); + } + + if (strlen($folderNew) > 0) { + $folder = JPath::clean($path['orig_abs_ds'].$parent.DS.$folderNew); + + if (!JFolder::exists($folder) && !JFile::exists($folder)) { + //JFolder::create($path, $folder_permissions ); + + switch((int)$folder_permissions) { + case 777: + JFolder::create($folder, 0777 ); + break; + case 705: + JFolder::create($folder, 0705 ); + break; + case 666: + JFolder::create($folder, 0666 ); + break; + case 644: + JFolder::create($folder, 0644 ); + break; + case 755: + Default: + JFolder::create($folder, 0755 ); + break; + } + if (isset($folder)) { + $data = "\n\n\n"; + JFile::write($folder.DS."index.html", $data); + } else { + $app->redirect($link, JText::_('COM_PHOCADOWNLOAD_ERROR_FOLDER_CREATING')); + } + + $app->redirect($link, JText::_('COM_PHOCADOWNLOAD_SUCCESS_FOLDER_CREATING')); + } else { + $app->redirect($link, JText::_('COM_PHOCADOWNLOAD_ERROR_FOLDER_CREATING_EXISTS')); + } + //JRequest::setVar('folder', ($parent) ? $parent.'/'.$folder : $folder); + } + $app->redirect($link); + } + + function multipleupload() { + $result = PhocaDownloadFileUpload::realMultipleUpload(); + return true; + } + + function upload() { + $result = PhocaDownloadFileUpload::realSingleUpload(); + return true; + } + + +} \ No newline at end of file diff --git a/packages/phocadownload/administrator/components/com_phocadownload/controllers/phocadownloaduploads.php b/packages/phocadownload/administrator/components/com_phocadownload/controllers/phocadownloaduploads.php new file mode 100644 index 00000000..62838726 --- /dev/null +++ b/packages/phocadownload/administrator/components/com_phocadownload/controllers/phocadownloaduploads.php @@ -0,0 +1,30 @@ +registerTask( 'approveall', 'approveall'); + } + + function approveall() { + + $model = $this->getModel('phocadownloadupload'); + if(!$model->approveall()) { + $msg = JText::_( 'COM_PHOCADOWNLOAD_ERROR_APPROVE_ALL' ); + } else { + $msg = JText::_( 'COM_PHOCADOWNLOAD_ALL_APPROVED' ); + } + + $this->setRedirect( 'index.php?option=com_phocadownload&view=phocadownloaduploads' , $msg); + } +} +?> diff --git a/packages/phocadownload/administrator/components/com_phocadownload/help/en-GB/index.html b/packages/phocadownload/administrator/components/com_phocadownload/help/en-GB/index.html new file mode 100644 index 00000000..fa6d84e8 --- /dev/null +++ b/packages/phocadownload/administrator/components/com_phocadownload/help/en-GB/index.html @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/phocadownload/administrator/components/com_phocadownload/help/en-GB/logo-phoca.png b/packages/phocadownload/administrator/components/com_phocadownload/help/en-GB/logo-phoca.png new file mode 100644 index 0000000000000000000000000000000000000000..07de88231795227d6b53985c4d332bf0a76e4a4b GIT binary patch literal 6474 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 literal 0 HcmV?d00001 diff --git a/packages/phocadownload/administrator/components/com_phocadownload/help/en-GB/screen.phocadownload.html b/packages/phocadownload/administrator/components/com_phocadownload/help/en-GB/screen.phocadownload.html new file mode 100644 index 00000000..c73d426a --- /dev/null +++ b/packages/phocadownload/administrator/components/com_phocadownload/help/en-GB/screen.phocadownload.html @@ -0,0 +1,31 @@ + + + + +Phoca Download + + + + +

Phoca Download

+
+ +
+

 

+

 

+

+Phoca Download Main Site
+Phoca Download User Manual
+Phoca Download Forum
+

+

 

+

 

+

 

+Close window + + \ No newline at end of file diff --git a/packages/phocadownload/administrator/components/com_phocadownload/help/index.html b/packages/phocadownload/administrator/components/com_phocadownload/help/index.html new file mode 100644 index 00000000..fa6d84e8 --- /dev/null +++ b/packages/phocadownload/administrator/components/com_phocadownload/help/index.html @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/phocadownload/administrator/components/com_phocadownload/help/logo-phoca.png b/packages/phocadownload/administrator/components/com_phocadownload/help/logo-phoca.png new file mode 100644 index 0000000000000000000000000000000000000000..07de88231795227d6b53985c4d332bf0a76e4a4b GIT binary patch literal 6474 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 literal 0 HcmV?d00001 diff --git a/packages/phocadownload/administrator/components/com_phocadownload/help/screen.phocadownload.html b/packages/phocadownload/administrator/components/com_phocadownload/help/screen.phocadownload.html new file mode 100644 index 00000000..c73d426a --- /dev/null +++ b/packages/phocadownload/administrator/components/com_phocadownload/help/screen.phocadownload.html @@ -0,0 +1,31 @@ + + + + +Phoca Download + + + + +

Phoca Download

+
+ +
+

 

+

 

+

+Phoca Download Main Site
+Phoca Download User Manual
+Phoca Download Forum
+

+

 

+

 

+

 

+Close window + + \ No newline at end of file diff --git a/packages/phocadownload/administrator/components/com_phocadownload/helpers/index.html b/packages/phocadownload/administrator/components/com_phocadownload/helpers/index.html new file mode 100644 index 00000000..fa6d84e8 --- /dev/null +++ b/packages/phocadownload/administrator/components/com_phocadownload/helpers/index.html @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/phocadownload/administrator/components/com_phocadownload/helpers/phocadownloadcats.php b/packages/phocadownload/administrator/components/com_phocadownload/helpers/phocadownloadcats.php new file mode 100644 index 00000000..19c7f226 --- /dev/null +++ b/packages/phocadownload/administrator/components/com_phocadownload/helpers/phocadownloadcats.php @@ -0,0 +1,29 @@ +set($action, $user->authorise($action, $assetName)); + } + return $result; + } +} +?> \ No newline at end of file diff --git a/packages/phocadownload/administrator/components/com_phocadownload/helpers/phocadownloadcp.php b/packages/phocadownload/administrator/components/com_phocadownload/helpers/phocadownloadcp.php new file mode 100644 index 00000000..d45ed77a --- /dev/null +++ b/packages/phocadownload/administrator/components/com_phocadownload/helpers/phocadownloadcp.php @@ -0,0 +1,24 @@ +set($action, $user->authorise($action, $assetName)); + } + return $result; + } +} +?> \ No newline at end of file diff --git a/packages/phocadownload/administrator/components/com_phocadownload/helpers/phocadownloaddownloads.php b/packages/phocadownload/administrator/components/com_phocadownload/helpers/phocadownloaddownloads.php new file mode 100644 index 00000000..b5fc0342 --- /dev/null +++ b/packages/phocadownload/administrator/components/com_phocadownload/helpers/phocadownloaddownloads.php @@ -0,0 +1,30 @@ +set($action, $user->authorise($action, $assetName)); + } + return $result; + } +} +?> \ No newline at end of file diff --git a/packages/phocadownload/administrator/components/com_phocadownload/helpers/phocadownloadfiles.php b/packages/phocadownload/administrator/components/com_phocadownload/helpers/phocadownloadfiles.php new file mode 100644 index 00000000..3e74516d --- /dev/null +++ b/packages/phocadownload/administrator/components/com_phocadownload/helpers/phocadownloadfiles.php @@ -0,0 +1,29 @@ +set($action, $user->authorise($action, $assetName)); + } + return $result; + } +} +?> \ No newline at end of file diff --git a/packages/phocadownload/administrator/components/com_phocadownload/helpers/phocadownloadlayouts.php b/packages/phocadownload/administrator/components/com_phocadownload/helpers/phocadownloadlayouts.php new file mode 100644 index 00000000..7f5014c8 --- /dev/null +++ b/packages/phocadownload/administrator/components/com_phocadownload/helpers/phocadownloadlayouts.php @@ -0,0 +1,51 @@ +set($action, $user->authorise($action, $assetName)); + } + return $result; + } + + public static function getTableId() { + + $idString = ''; + $db = JFactory::getDBO(); + $query = ' SELECT a.id' + .' FROM #__phocadownload_layout AS a'; + $db->setQuery($query, 0,1); + + if (!$db->query()) { + $this->setError('Database Error - Getting Layout ID'); + return false; + } + $idO = $db->loadObject(); + + //First autoincrement line can be different + if (isset($idO->id) && $idO->id > 0) { + $idString = '&id='.(int)$idO->id; + } + return $idString; + } +} +?> \ No newline at end of file diff --git a/packages/phocadownload/administrator/components/com_phocadownload/helpers/phocadownloadlics.php b/packages/phocadownload/administrator/components/com_phocadownload/helpers/phocadownloadlics.php new file mode 100644 index 00000000..b191f52a --- /dev/null +++ b/packages/phocadownload/administrator/components/com_phocadownload/helpers/phocadownloadlics.php @@ -0,0 +1,29 @@ +set($action, $user->authorise($action, $assetName)); + } + return $result; + } +} +?> \ No newline at end of file diff --git a/packages/phocadownload/administrator/components/com_phocadownload/helpers/phocadownloadlogs.php b/packages/phocadownload/administrator/components/com_phocadownload/helpers/phocadownloadlogs.php new file mode 100644 index 00000000..5a2a5199 --- /dev/null +++ b/packages/phocadownload/administrator/components/com_phocadownload/helpers/phocadownloadlogs.php @@ -0,0 +1,30 @@ +set($action, $user->authorise($action, $assetName)); + } + return $result; + } +} +?> \ No newline at end of file diff --git a/packages/phocadownload/administrator/components/com_phocadownload/helpers/phocadownloadmanager.php b/packages/phocadownload/administrator/components/com_phocadownload/helpers/phocadownloadmanager.php new file mode 100644 index 00000000..6e2a4560 --- /dev/null +++ b/packages/phocadownload/administrator/components/com_phocadownload/helpers/phocadownloadmanager.php @@ -0,0 +1,36 @@ +set($action, $user->authorise($action, $assetName)); + } + return $result; + } +} +?> \ No newline at end of file diff --git a/packages/phocadownload/administrator/components/com_phocadownload/helpers/phocadownloadrafile.php b/packages/phocadownload/administrator/components/com_phocadownload/helpers/phocadownloadrafile.php new file mode 100644 index 00000000..60ad8784 --- /dev/null +++ b/packages/phocadownload/administrator/components/com_phocadownload/helpers/phocadownloadrafile.php @@ -0,0 +1,36 @@ +set($action, $user->authorise($action, $assetName)); + } + return $result; + } +} +?> \ No newline at end of file diff --git a/packages/phocadownload/administrator/components/com_phocadownload/helpers/phocadownloadrate.php b/packages/phocadownload/administrator/components/com_phocadownload/helpers/phocadownloadrate.php new file mode 100644 index 00000000..ad3826fb --- /dev/null +++ b/packages/phocadownload/administrator/components/com_phocadownload/helpers/phocadownloadrate.php @@ -0,0 +1,313 @@ +setQuery($query, 0, 1); + $votesStatistics = $db->loadObject(); + // if no count, set the average to 0 + if($votesStatistics->count == 0) { + $votesStatistics->count = (int)0; + $votesStatistics->average = (float)0; + } + + if (isset($votesStatistics->count) && isset($votesStatistics->average)) { + // Insert or update + $query = 'SELECT vs.id AS id' + .' FROM #__phocadownload_file_votes_statistics AS vs' + .' WHERE vs.fileid = '.(int) $fileid; + $db->setQuery($query, 0, 1); + $votesStatisticsId = $db->loadObject(); + + // Yes, there is id (UPDATE) x No, there isn't (INSERT) + if (!empty($votesStatisticsId->id)) { + + $query = 'UPDATE #__phocadownload_file_votes_statistics' + .' SET count = ' .(int)$votesStatistics->count + .' , average = ' .(float)$votesStatistics->average + .' WHERE fileid = '.(int) $fileid; + $db->setQuery($query); + + if (!$db->query()) { + $this->setError('Database Error Voting 1'); + return false; + } + + } else { + + $query = 'INSERT into #__phocadownload_file_votes_statistics' + .' (id, fileid, count, average)' + .' VALUES (null, '.(int)$fileid + .' , '.(int)$votesStatistics->count + .' , '.(float)$votesStatistics->average + .')'; + $db->setQuery($query); + + if (!$db->query()) { + $this->setError('Database Error Voting 2'); + return false; + } + + } + } else { + return false; + } + return true; + } + + function getVotesStatisticsFile($id) { + + $db = JFactory::getDBO(); + $query = 'SELECT vs.count AS count, vs.average AS average' + .' FROM #__phocadownload_file_votes_statistics AS vs' + .' WHERE vs.fileid = '.(int) $id; + $db->setQuery($query, 0, 1); + $votesStatistics = $db->loadObject(); + + return $votesStatistics; + } + + function checkUserVoteFile($fileid, $userid) { + + $db = JFactory::getDBO(); + $query = 'SELECT v.id AS id' + .' FROM #__phocadownload_file_votes AS v' + .' WHERE v.fileid = '. (int)$fileid + .' AND v.userid = '. (int)$userid; + $db->setQuery($query, 0, 1); + $checkUserVote = $db->loadObject(); + if ($checkUserVote) { + return true; + } + return false; + } + + + public function renderRateFile($id, $displayRating, $small = 1, $refresh = false) { + + $user = JFactory::getUser(); + $neededAccessLevels = PhocaDownloadAccess::getNeededAccessLevels(); + $access = PhocaDownloadAccess::isAccess($user->getAuthorisedViewLevels(), $neededAccessLevels); + + + if ($small == 1) { + $smallO = '-small'; + $ratio = 18; + } else { + $smallO = ''; + $ratio = 22; + } + + $o = ''; + + //.$rating['urlvote'].$amp.'controller=detail&task=rate&rating=1 + //$amp = PhocaDownloadUtils::setQuestionmarkOrAmp($rating['urlvote']); + $href = 'javascript:void(0);'; + + if ((int)$displayRating != 1) { + return ''; + } else { + + $rating['alreadyratedfile'] = self::checkUserVoteFile( (int)$id, (int)$user->id ); + + $rating['notregisteredfile'] = true; + //$rating['usernamefile'] = ''; + if ($access > 0) { + $rating['notregisteredfile'] = false; + $rating['usernamefile'] = $user->name; + } + + $rating['votescountfile'] = 0; + $rating['votesaveragefile'] = 0; + $rating['voteswidthfile'] = 0; + $votesStatistics = self::getVotesStatisticsFile((int)$id); + if (!empty($votesStatistics->count)) { + $rating['votescountfile'] = $votesStatistics->count; + } + if (!empty($votesStatistics->average)) { + $rating['votesaveragefile'] = $votesStatistics->average; + if ($rating['votesaveragefile'] > 0) { + $rating['votesaveragefile'] = round(((float)$rating['votesaveragefile'] / 0.5)) * 0.5; + $rating['voteswidthfile'] = $ratio * $rating['votesaveragefile']; + } else { + $rating['votesaveragefile'] = (int)0;// not float displaying + } + } + + // Leave message for already voted images + //$vote = JRequest::getVar('vote', 0, '', 'int'); + $voteMsg = JText::_('COM_PHOCADOWNLOAD_RATING_ALREADY_RATED_FILE'); + //if ($vote == 1) { + // $voteMsg = JText::_('COM_PHOCADOWNLOAD_ALREADY_RATED_FILE_THANKS'); + //} + + $rating['votestextimg'] = 'VOTE'; + if ((int)$rating['votescountfile'] > 1) { + $rating['votestextimg'] = 'VOTES'; + } + + $o .= '
' + . JText::_('COM_PHOCADOWNLOAD_RATING'). ': ' . $rating['votesaveragefile'] .' / ' + .$rating['votescountfile'] . ' ' . JText::_('COM_PHOCADOWNLOAD_'.$rating['votestextimg']). '  
'; + + if ($rating['alreadyratedfile']) { + $o .= '
    ' + .'
  • ' + .'
  • '; + + for ($i = 2;$i < 6;$i++) { + $o .= '
  • '; + } + $o .= '
'; + + $or ='
'.JText::_('COM_PHOCADOWNLOAD_RATING_ALREADY_RATED_FILE').'
'; + + } else if ($rating['notregisteredfile']) { + + $o .= '
    ' + .'
  • ' + .'
  • '; + + for ($i = 2;$i < 6;$i++) { + $o .= '
  • '; + } + $o .= '
'; + + $or ='
'.JText::_('COM_PHOCADOWNLOAD_ONLY_REGISTERED_LOGGED_RATE_FILE').'
'; + + } else { + + $o .= '
    ' + .'
  • ' + .'
  • 1
  • '; + + for ($i = 2;$i < 6;$i++) { + $o .= '
  • '.$i.'
  • '; + } + $o .= '
'; + + $or ='
'; + } + + + + } + + if ($refresh == true) { + return $o;//we are in Ajax, return only content of pdvoting div + } else { + return '
'.$o.'
' .$or ;//not in ajax, return the contend in div + } + + + } + + public function renderRateFileJS($small = 1) { + + $document = JFactory::getDocument(); + $url = 'index.php?option=com_phocadownload&view=ratingfilea&task=rate&format=json&'.JSession::getFormToken().'=1'; + $urlRefresh = 'index.php?option=com_phocadownload&view=ratingfilea&task=refreshrate&small='.$small.'&format=json&'.JSession::getFormToken().'=1'; + $imgLoadingUrl = JURI::base(). 'components/com_phocadownload/assets/images/icon-loading2.gif'; + $imgLoadingHTML = ''; + $js = ''; + $document->addCustomTag($js); + + } +} +?> \ No newline at end of file diff --git a/packages/phocadownload/administrator/components/com_phocadownload/helpers/phocadownloadstat.php b/packages/phocadownload/administrator/components/com_phocadownload/helpers/phocadownloadstat.php new file mode 100644 index 00000000..79ab1be1 --- /dev/null +++ b/packages/phocadownload/administrator/components/com_phocadownload/helpers/phocadownloadstat.php @@ -0,0 +1,29 @@ +set($action, $user->authorise($action, $assetName)); + } + return $result; + } +} +?> \ No newline at end of file diff --git a/packages/phocadownload/administrator/components/com_phocadownload/helpers/phocadownloadstyles.php b/packages/phocadownload/administrator/components/com_phocadownload/helpers/phocadownloadstyles.php new file mode 100644 index 00000000..057a5d94 --- /dev/null +++ b/packages/phocadownload/administrator/components/com_phocadownload/helpers/phocadownloadstyles.php @@ -0,0 +1,29 @@ +set($action, $user->authorise($action, $assetName)); + } + return $result; + } +} +?> \ No newline at end of file diff --git a/packages/phocadownload/administrator/components/com_phocadownload/helpers/phocadownloadtags.php b/packages/phocadownload/administrator/components/com_phocadownload/helpers/phocadownloadtags.php new file mode 100644 index 00000000..d404577e --- /dev/null +++ b/packages/phocadownload/administrator/components/com_phocadownload/helpers/phocadownloadtags.php @@ -0,0 +1,29 @@ +set($action, $user->authorise($action, $assetName)); + } + return $result; + } +} +?> \ No newline at end of file diff --git a/packages/phocadownload/administrator/components/com_phocadownload/helpers/phocadownloaduploads.php b/packages/phocadownload/administrator/components/com_phocadownload/helpers/phocadownloaduploads.php new file mode 100644 index 00000000..24b4b90f --- /dev/null +++ b/packages/phocadownload/administrator/components/com_phocadownload/helpers/phocadownloaduploads.php @@ -0,0 +1,29 @@ +set($action, $user->authorise($action, $assetName)); + } + return $result; + } +} +?> \ No newline at end of file diff --git a/packages/phocadownload/administrator/components/com_phocadownload/helpers/phocauserstat.php b/packages/phocadownload/administrator/components/com_phocadownload/helpers/phocauserstat.php new file mode 100644 index 00000000..5af96a98 --- /dev/null +++ b/packages/phocadownload/administrator/components/com_phocadownload/helpers/phocauserstat.php @@ -0,0 +1,62 @@ +quoteName('#__phocadownload_user_stat') + .' WHERE '. $db->quoteName('userid') + .' = ' + .$db->Quote((int)$user->id) + .' AND '. $db->quoteName('fileid') + .' = ' + .$db->Quote((int)$downloadId); + + $db->setQuery($query); + $results = $db->loadObjectList(); + + $date = gmdate('Y-m-d H:i:s'); + if ($results) { + // Update count + $query = 'UPDATE '.$db->quoteName('#__phocadownload_user_stat') + .' SET count = (count + 1),' + .' date = '.$db->Quote($date) + .' WHERE userid = '.$db->Quote((int)$user->id) + .' AND fileid = '.$db->Quote((int)$downloadId); + + $db->setQuery($query); + $db->query(); + } else { + + $query = 'INSERT INTO '.$db->quoteName('#__phocadownload_user_stat') + .' ('.$db->quoteName('count').',' + .' '.$db->quoteName('userid').',' + .' '.$db->quoteName('fileid').',' + .' '.$db->quoteName('date').')' + .' VALUES ('.$db->Quote(1).',' + .' '.$db->Quote((int)$user->id).',' + .' '.$db->Quote((int)$downloadId).',' + .' '.$db->Quote($date).')'; + $db->setQuery($query); + $db->query(); + } + return true; + } +} +?> \ No newline at end of file diff --git a/packages/phocadownload/administrator/components/com_phocadownload/index.html b/packages/phocadownload/administrator/components/com_phocadownload/index.html new file mode 100644 index 00000000..fa6d84e8 --- /dev/null +++ b/packages/phocadownload/administrator/components/com_phocadownload/index.html @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/phocadownload/administrator/components/com_phocadownload/install/index.html b/packages/phocadownload/administrator/components/com_phocadownload/install/index.html new file mode 100644 index 00000000..ea9e94c1 --- /dev/null +++ b/packages/phocadownload/administrator/components/com_phocadownload/install/index.html @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/phocadownload/administrator/components/com_phocadownload/install/script.php b/packages/phocadownload/administrator/components/com_phocadownload/install/script.php new file mode 100644 index 00000000..583a4a1e --- /dev/null +++ b/packages/phocadownload/administrator/components/com_phocadownload/install/script.php @@ -0,0 +1,140 @@ +' . JText::_('COM_PHOCAGALLLERY_INSTALL_TEXT') . '

'; + + + $folder[0][0] = 'phocadownload' ; + $folder[0][1] = JPATH_ROOT . DS . $folder[0][0]; + + $folder[1][0] = 'images' . DS . 'phocadownload' ; + $folder[1][1] = JPATH_ROOT . DS . $folder[1][0]; + + $folder[2][0] = 'phocadownload' . DS .'userupload'; + $folder[2][1] = JPATH_ROOT . DS . $folder[2][0]; + + $folder[3][0] = 'phocadownloadpap'; + $folder[3][1] = JPATH_ROOT . DS . $folder[3][0]; + + $folder[4][0] = 'phocadownloadpap' . DS .'userupload'; + $folder[4][1] = JPATH_ROOT . DS . $folder[4][0]; + + $message = ''; + $error = array(); + foreach ($folder as $key => $value) + { + if (!JFolder::exists( $value[1])) + { + if (JFolder::create( $value[1], 0755 )) + { + + $data = "\n\n\n"; + JFile::write($value[1].DS."index.html", $data); + $message .= '
Folder ' . $value[0] + .' created!
'; + $error[] = 0; + } + else + { + $message .= '
Folder ' . $value[0] + .' creation failed! Please create it manually.
'; + $error[] = 1; + } + } + else//Folder exist + { + $message .= '
Folder ' . $value[0] + .' exists!
'; + $error[] = 0; + } + } + + + JFactory::getApplication()->enqueueMessage($message, 'message'); + //$app = JFactory::getApplication(); + //$app->redirect(JRoute::_('index.php?option=com_phocadownload'), $message); + $parent->getParent()->setRedirectURL('index.php?option=com_phocadownload'); + } + function uninstall($parent) { + //echo '

' . JText::_('COM_PHOCAGALLLERY_UNINSTALL_TEXT') . '

'; + } + + function update($parent) { + //echo '

' . JText::sprintf('COM_PHOCADOWNLOAD_UPDATE_TEXT', $parent->get('manifest')->version) . '

'; + + $folder[0][0] = 'phocadownload' ; + $folder[0][1] = JPATH_ROOT . DS . $folder[0][0]; + + $folder[1][0] = 'images' . DS . 'phocadownload' ; + $folder[1][1] = JPATH_ROOT . DS . $folder[1][0]; + + $folder[2][0] = 'phocadownload' . DS .'userupload'; + $folder[2][1] = JPATH_ROOT . DS . $folder[2][0]; + + $folder[3][0] = 'phocadownloadpap'; + $folder[3][1] = JPATH_ROOT . DS . $folder[3][0]; + + $folder[4][0] = 'phocadownloadpap' . DS .'userupload'; + $folder[4][1] = JPATH_ROOT . DS . $folder[4][0]; + + $message = ''; + $error = array(); + foreach ($folder as $key => $value) + { + if (!JFolder::exists( $value[1])) + { + if (JFolder::create( $value[1], 0755 )) + { + + $data = "\n\n\n"; + JFile::write($value[1].DS."index.html", $data); + $message .= '
Folder ' . $value[0] + .' created!
'; + $error[] = 0; + } + else + { + $message .= '
Folder ' . $value[0] + .' creation failed! Please create it manually.
'; + $error[] = 1; + } + } + else//Folder exist + { + $message .= '
Folder ' . $value[0] + .' exists!
'; + $error[] = 0; + } + } + + $msg = JText::_('COM_PHOCADOWNLOAD_UPDATE_TEXT'); + $msg .= ' (' . JText::_('COM_PHOCADOWNLOAD_VERSION'). ': ' . $parent->get('manifest')->version . ')'; + + $msg .= '
'. $message; + //$parent->getParent()->setRedirectURL('index.php?option=com_phocadownload'); + $app = JFactory::getApplication(); + $app->enqueueMessage($msg); + $app->redirect(JRoute::_('index.php?option=com_phocadownload')); + } + + function preflight($type, $parent) { + //echo '

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

'; + } + + function postflight($type, $parent) { + //echo '

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

'; + } +} \ No newline at end of file diff --git a/packages/phocadownload/administrator/components/com_phocadownload/install/sql/index.html b/packages/phocadownload/administrator/components/com_phocadownload/install/sql/index.html new file mode 100644 index 00000000..ea9e94c1 --- /dev/null +++ b/packages/phocadownload/administrator/components/com_phocadownload/install/sql/index.html @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/phocadownload/administrator/components/com_phocadownload/install/sql/mysql/index.html b/packages/phocadownload/administrator/components/com_phocadownload/install/sql/mysql/index.html new file mode 100644 index 00000000..ea9e94c1 --- /dev/null +++ b/packages/phocadownload/administrator/components/com_phocadownload/install/sql/mysql/index.html @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/phocadownload/administrator/components/com_phocadownload/install/sql/mysql/install.utf8.sql b/packages/phocadownload/administrator/components/com_phocadownload/install/sql/mysql/install.utf8.sql new file mode 100644 index 00000000..bc93f5b7 --- /dev/null +++ b/packages/phocadownload/administrator/components/com_phocadownload/install/sql/mysql/install.utf8.sql @@ -0,0 +1,278 @@ +-- -------------------------------------------------------------------- -- +-- Phoca Download manual installation -- +-- -------------------------------------------------------------------- -- +-- See documentation on http://www.phoca.cz/ -- +-- -- +-- Change all prefixes #__ to prefix which is set in your Joomla! site -- +-- (e.g. from #__phocadownload to jos_phocadownload) -- +-- Run this SQL queries in your database tool, e.g. in phpMyAdmin -- +-- If you have questions, just ask in Phoca Forum -- +-- http://www.phoca.cz/forum/ -- +-- -------------------------------------------------------------------- -- + +CREATE TABLE IF NOT EXISTS `#__phocadownload_categories` ( + `id` int(11) NOT NULL auto_increment, + `parent_id` int(11) NOT NULL default 0, + `section` int(11) NOT NULL default 0, + `title` varchar(255) NOT NULL default '', + `name` varchar(255) NOT NULL default '', + `alias` varchar(255) NOT NULL default '', + `image` varchar(255) NOT NULL default '', + `image_position` varchar(30) NOT NULL default '', + `description` text, + `published` tinyint(1) NOT NULL default '0', + `checked_out` int(11) unsigned NOT NULL default '0', + `checked_out_time` datetime NOT NULL default '0000-00-00 00:00:00', + `editor` varchar(50) default NULL, + `ordering` int(11) NOT NULL default '0', + `access` int(11) unsigned NOT NULL default '0', + `uploaduserid` text, + `accessuserid` text, + `deleteuserid` text, + `date` datetime NOT NULL default '0000-00-00 00:00:00', + `count` int(11) NOT NULL default '0', + `hits` int(11) NOT NULL default '0', + `params` text, + `metakey` text, + `metadesc` text, + `metadata` text, + `language` char(7) NOT NULL default '', + PRIMARY KEY (`id`), + KEY `cat_idx` (`section`,`published`,`access`), + KEY `idx_access` (`access`), + KEY `idx_checkout` (`checked_out`) +) default CHARSET=utf8; + +CREATE TABLE IF NOT EXISTS `#__phocadownload` ( + `id` int(11) unsigned NOT NULL auto_increment, + `catid` int(11) NOT NULL default '0', + `sectionid` int(11) NOT NULL default '0', + `sid` int(11) NOT NULL default '0', + `owner_id` int(11) NOT NULL default 0, + `title` varchar(250) NOT NULL default '', + `alias` varchar(255) NOT NULL default '', + `filename` varchar(250) NOT NULL default '', + `filename_play` varchar(250) NOT NULL default '', + `filename_preview` varchar(250) NOT NULL default '', + `filesize` int(11) NOT NULL default 0, + `author` varchar(255) NOT NULL default '', + `author_email` varchar(255) NOT NULL default '', + `author_url` varchar(255) NOT NULL default '', + `license` varchar(255) NOT NULL default '', + `license_url` varchar(255) NOT NULL default '', + `image_filename` varchar(255) NOT NULL default '', + `image_filename_spec1` varchar(255) NOT NULL default '', + `image_filename_spec2` varchar(255) NOT NULL default '', + `image_download` varchar(255) NOT NULL default '', + `video_filename` varchar(255) NOT NULL default '', + `link_external` varchar(255) NOT NULL default '', + `mirror1link` varchar(255) NOT NULL default '', + `mirror1title` varchar(255) NOT NULL default '', + `mirror1target` varchar(10) NOT NULL default '', + `mirror2link` varchar(255) NOT NULL default '', + `mirror2title` varchar(255) NOT NULL default '', + `mirror2target` varchar(10) NOT NULL default '', + `description` text, + `features` text, + `changelog` text, + `notes` text, + `userid` int(11) NOT NULL default '0', + `version` varchar(255) NOT NULL default '', + `directlink` tinyint(1) NOT NULL default '0', + `date` datetime NOT NULL default '0000-00-00 00:00:00', + `publish_up` datetime NOT NULL default '0000-00-00 00:00:00', + `publish_down` datetime NOT NULL default '0000-00-00 00:00:00', + `hits` int(11) NOT NULL default '0', + `textonly` tinyint(1) NOT NULL default '0', + `published` tinyint(1) NOT NULL default '0', + `approved` tinyint(1) NOT NULL default '0', + `checked_out` int(11) NOT NULL default '0', + `checked_out_time` datetime NOT NULL default '0000-00-00 00:00:00', + `ordering` int(11) NOT NULL default '0', + `access` int(11) unsigned NOT NULL default '0', + `confirm_license` int(11) NOT NULL default '0', + `unaccessible_file` int(11) NOT NULL default '0', + `token` char(64) default NULL, + `tokenhits` int(11) NOT NULL default 0, + `tags_string` varchar(255) NOT NULL default '', + `params` text, + `metakey` text, + `metadesc` text, + `metadata` text, + `language` char(7) NOT NULL default '', + PRIMARY KEY (`id`), + KEY `catid` (`catid`,`published`) +) default CHARSET=utf8; + +CREATE TABLE IF NOT EXISTS `#__phocadownload_user_stat` ( + `id` int(11) NOT NULL auto_increment, + `fileid` int(11) NOT NULL default '0', + `userid` int(11) NOT NULL default '0', + `count` int(11) NOT NULL default '0', + `date` datetime NOT NULL default '0000-00-00 00:00:00', + `published` tinyint(1) NOT NULL default '0', + `ordering` int(11) NOT NULL default '0', + `language` char(7) NOT NULL default '', + PRIMARY KEY (`id`) +) default CHARSET=utf8; + +CREATE TABLE IF NOT EXISTS `#__phocadownload_licenses` ( + `id` int(11) NOT NULL auto_increment, + `title` varchar(255) NOT NULL default '', + `alias` varchar(255) NOT NULL default '', + `description` text, + `checked_out` int(11) unsigned NOT NULL default '0', + `checked_out_time` datetime NOT NULL default '0000-00-00 00:00:00', + `published` tinyint(1) NOT NULL default '0', + `ordering` int(11) NOT NULL default '0', + `language` char(7) NOT NULL default '', + PRIMARY KEY (`id`) +) default CHARSET=utf8; + +CREATE TABLE IF NOT EXISTS `#__phocadownload_file_votes` ( + `id` int(11) NOT NULL auto_increment, + `fileid` int(11) NOT NULL default 0, + `userid` int(11) NOT NULL default 0, + `date` datetime NOT NULL default '0000-00-00 00:00:00', + `rating` tinyint(1) NOT NULL default '0', + `published` tinyint(1) NOT NULL default '0', + `checked_out` int(11) unsigned NOT NULL default '0', + `checked_out_time` datetime NOT NULL default '0000-00-00 00:00:00', + `ordering` int(11) NOT NULL default '0', + `params` text, + `language` char(7) NOT NULL default '', + PRIMARY KEY (`id`) +) default CHARSET=utf8; + +CREATE TABLE IF NOT EXISTS `#__phocadownload_file_votes_statistics` ( + `id` int(11) NOT NULL auto_increment, + `fileid` int(11) NOT NULL default 0, + `count` int(11) NOT NULL default '0', + `average` float(8,6) NOT NULL default '0', + `language` char(7) NOT NULL default '', + PRIMARY KEY (`id`) +) default CHARSET=utf8; + +CREATE TABLE IF NOT EXISTS `#__phocadownload_tags` ( + `id` int(11) NOT NULL auto_increment, + `title` varchar(255) NOT NULL default '', + `alias` varchar(255) NOT NULL default '', + `link_ext` varchar(255) NOT NULL default '', + `link_cat` int(11) unsigned NOT NULL default '0', + `description` text, + `published` tinyint(1) NOT NULL default '0', + `checked_out` int(11) unsigned NOT NULL default '0', + `checked_out_time` datetime NOT NULL default '0000-00-00 00:00:00', + `ordering` int(11) NOT NULL default '0', + `params` text, + `language` char(7) NOT NULL default '', + PRIMARY KEY (`id`) +) default CHARSET=utf8; + +CREATE TABLE IF NOT EXISTS `#__phocadownload_tags_ref` ( + `id` SERIAL, + `fileid` int(11) NOT NULL default 0, + `tagid` int(11) NOT NULL default 0, + PRIMARY KEY (`id`), + UNIQUE KEY `i_fileid` (`fileid`,`tagid`) +) default CHARSET=utf8; + +CREATE TABLE IF NOT EXISTS `#__phocadownload_layout` ( + `id` int(11) NOT NULL auto_increment, + `categories` text, + `category` text, + `file` text, + `checked_out` int(11) unsigned NOT NULL default '0', + `checked_out_time` datetime NOT NULL default '0000-00-00 00:00:00', + `params` text, + PRIMARY KEY (`id`) +) default CHARSET=utf8; + +INSERT INTO `#__phocadownload_layout` ( +`id` , +`categories` , +`category` , +`file` , +`checked_out` , +`checked_out_time` , +`params` +) +VALUES ( +NULL , '
+
{pdtitle}
+{pdsubcategories} +{pdclear} +
', + +'
+{pdfiledesctop} +{pdfile} +
{pdbuttondownload}
+
{pdbuttondetails}
+
{pdbuttonpreview}
+
{pdbuttonplay}
+
{pdmirrorlink2} {pdmirrorlink1}
+
{pdrating}
+
{pdtags}
+{pdfiledescbottom} +
+
' + +, '
+{pdimage} +{pdfile} +{pdfilesize} +{pdversion} +{pdlicense} +{pdauthor} +{pdauthoremail} +{pdfiledate} +{pddownloads} +{pddescription} +{pdfeatures} +{pdchangelog} +{pdnotes} +
{pdmirrorlink2} {pdmirrorlink1}
+
{pdreportlink}
+
{pdrating}
+
{pdtags}
+
+
' , '0', '0000-00-00 00:00:00', NULL +); + +CREATE TABLE IF NOT EXISTS `#__phocadownload_styles` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `title` varchar(255) NOT NULL DEFAULT '', + `alias` varchar(255) NOT NULL DEFAULT '', + `filename` varchar(255) NOT NULL DEFAULT '', + `menulink` text, + `type` tinyint(1) NOT NULL DEFAULT '0', + `published` tinyint(1) NOT NULL DEFAULT '0', + `checked_out` int(11) unsigned NOT NULL DEFAULT '0', + `checked_out_time` datetime NOT NULL DEFAULT '0000-00-00 00:00:00', + `ordering` int(11) NOT NULL DEFAULT '0', + `params` text, + `language` char(7) NOT NULL DEFAULT '', + PRIMARY KEY (`id`) +) DEFAULT CHARSET=utf8 ; + +INSERT INTO `#__phocadownload_styles` (`id`, `title`, `alias`, `filename`, `menulink`, `type`, `published`, `checked_out`, `checked_out_time`, `ordering`, `params`, `language`) VALUES +(1, 'Phocadownload', 'phocadownload', 'phocadownload.css', NULL, 1, 1, 0, '0000-00-00 00:00:00', 1, NULL, '*'), +(2, 'Rating', 'rating', 'rating.css', NULL, 1, 1, 0, '0000-00-00 00:00:00', 2, NULL, '*'), +(3, 'Button', 'button', 'button.css', NULL, 1, 0, 0, '0000-00-00 00:00:00', 3, NULL, '*'), +(4, 'Button (Rounded Corners)', '', 'buttonrc.css', NULL, 1, 0, 0, '0000-00-00 00:00:00', 4, NULL, '*'), +(5, 'Default', 'default', 'default.css', NULL, 2, 1, 0, '0000-00-00 00:00:00', 1, NULL, '*'), +(6, 'Bootstrap', '', 'bootstrap.min.css', NULL, 1, 0, 0, '0000-00-00 00:00:00', 5, NULL, '*'); + +CREATE TABLE IF NOT EXISTS `#__phocadownload_logging` ( + `id` int(11) unsigned NOT NULL auto_increment, + `fileid` int(11) NOT NULL default '0', + `catid` int(11) NOT NULL default '0', + `userid` int(11) NOT NULL default '0', + `ip` varchar(20) NOT NULL default '', + `page` varchar(255) NOT NULL, + `date` datetime NOT NULL default '0000-00-00 00:00:00', + `type` tinyint(1) NOT NULL DEFAULT '0', + `params` text NOT NULL, + PRIMARY KEY (`id`) +) DEFAULT CHARSET=utf8 ; \ No newline at end of file diff --git a/packages/phocadownload/administrator/components/com_phocadownload/install/sql/mysql/uninstall.utf8.sql b/packages/phocadownload/administrator/components/com_phocadownload/install/sql/mysql/uninstall.utf8.sql new file mode 100644 index 00000000..232e43eb --- /dev/null +++ b/packages/phocadownload/administrator/components/com_phocadownload/install/sql/mysql/uninstall.utf8.sql @@ -0,0 +1,10 @@ +DROP TABLE IF EXISTS `#__phocadownload`; +DROP TABLE IF EXISTS `#__phocadownload_categories`; +DROP TABLE IF EXISTS `#__phocadownload_user_stat`; +DROP TABLE IF EXISTS `#__phocadownload_licenses`; +DROP TABLE IF EXISTS `#__phocadownload_file_votes`; +DROP TABLE IF EXISTS `#__phocadownload_file_votes_statistics`; +DROP TABLE IF EXISTS `#__phocadownload_tags`; +DROP TABLE IF EXISTS `#__phocadownload_tags_ref`; +DROP TABLE IF EXISTS `#__phocadownload_layout`; +DROP TABLE IF EXISTS `#__phocadownload_styles`; diff --git a/packages/phocadownload/administrator/components/com_phocadownload/libraries/index.html b/packages/phocadownload/administrator/components/com_phocadownload/libraries/index.html new file mode 100644 index 00000000..fa6d84e8 --- /dev/null +++ b/packages/phocadownload/administrator/components/com_phocadownload/libraries/index.html @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/phocadownload/administrator/components/com_phocadownload/libraries/loader.php b/packages/phocadownload/administrator/components/com_phocadownload/libraries/loader.php new file mode 100644 index 00000000..696be7b7 --- /dev/null +++ b/packages/phocadownload/administrator/components/com_phocadownload/libraries/loader.php @@ -0,0 +1,78 @@ +setQuery($query, 0, 1); + $output = $db->loadObject(); + return $output; + } + + public static function getCategoryAccessByFileId($id) { + + $output = array(); + $db = JFactory::getDBO(); + $query = 'SELECT c.access, c.uploaduserid, c.deleteuserid' . + ' FROM #__phocadownload_categories AS c' . + ' LEFT JOIN #__phocadownload as a ON a.catid = c.id' . + ' WHERE a.id = '. (int) $id . + ' ORDER BY c.id'; + $db->setQuery($query, 0, 1); + $output = $db->loadObject(); + return $output; + } + + + + /** + * Method to check if the user have access to category + * Display or hide the not accessible categories - subcat folder will be not displayed + * Check whether category access level allows access + * + * E.g.: Should the link to Subcategory or to Parentcategory be displayed + * E.g.: Should the delete button displayed, should be the upload button displayed + * + * @param string $params rightType: accessuserid, uploaduserid, deleteuserid - access, upload, delete right + * @param int $params rightUsers - All selected users which should have the "rightType" right + * @param int $params rightGroup - All selected Groups of users(public, registered or special ) which should have the "rT" right + * @param int $params userAID - Specific group of user who display the category in front (public, special, registerd) + * @param int $params userId - Specific id of user who display the category in front (1,2,3,...) + * @param int $params Additional param - e.g. $display_access_category (Should be unaccessed category displayed) + * @return boolean 1 or 0 + * $rightUsers -> $userId + * $rightGroup -> $userAID + */ + + + + public static function getUserRight($rightType = 'accessuserid', $rightUsers, $rightGroup = 0, $userAID = array(), $userId = 0 , $additionalParam = 0 ) { + + $user = JFactory::getUser(); + // we can get the variables here, not before function call + $userAID = $user->getAuthorisedViewLevels(); + $userId = $user->get('id', 0); + + $guest = 0; + if (isset($user->guest) && $user->guest == 1) { + $guest = 1; + } + + // User ACL + $rightGroupAccess = 0; + // User can be assigned to different groups + foreach ($userAID as $keyUserAID => $valueUserAID) { + if ((int)$rightGroup == (int)$valueUserAID) { + $rightGroupAccess = 1; + break; + } + } + ; + + $rightUsersIdArray = array(); + if (!empty($rightUsers)) { + $rightUsersIdArray = explode( ',', trim( $rightUsers ) ); + } else { + $rightUsersIdArray = array(); + } + + $rightDisplay = 1; + if ($additionalParam == 0) { // We want not to display unaccessable categories ($display_access_category) + if ($rightGroup != 0) { + + if ($rightGroupAccess == 0) { + $rightDisplay = 0; + } else { // Access level only for one registered user + if (!empty($rightUsersIdArray)) { + // Check if the user is contained in selected array + $userIsContained = 0; + foreach ($rightUsersIdArray as $key => $value) { + if ($userId == $value) { + $userIsContained = 1;// check if the user id is selected in multiple box + break;// don't search again + } + // for access (-1 not selected - all registered, 0 all users) + if ($value == -1) { + if ($guest == 0) { + $userIsContained = 1;// in multiple select box is selected - All registered users + } + break;// don't search again + } + } + + if ($userIsContained == 0) { + $rightDisplay = 0; + } + } else { + + // Access rights (Default open for all) + // Upload and Delete rights (Default closed for all) + switch ($rightType) { + case 'accessuserid': + $rightDisplay = 1; + break; + + Default: + $rightDisplay = 0; + break; + } + } + } + } + } + return $rightDisplay; + } + + + /* + * + */ + public static function getNeededAccessLevels() { + + $paramsC = JComponentHelper::getParams('com_phocadownload'); + $registeredAccessLevel = $paramsC->get( 'registered_access_level', array(2,3,4) ); + return $registeredAccessLevel; + } + + /* + * Check if user's groups access rights (e.g. user is public, registered, special) can meet needed Levels + */ + + public static function isAccess($userLevels, $neededLevels) { + + $rightGroupAccess = 0; + + // User can be assigned to different groups + foreach($userLevels as $keyuserLevels => $valueuserLevels) { + foreach($neededLevels as $keyneededLevels => $valueneededLevels) { + + if ((int)$valueneededLevels == (int)$valueuserLevels) { + $rightGroupAccess = 1; + break; + } + } + if ($rightGroupAccess == 1) { + break; + } + } + return (boolean)$rightGroupAccess; + } +} +?> \ No newline at end of file diff --git a/packages/phocadownload/administrator/components/com_phocadownload/libraries/phocadownload/access/index.html b/packages/phocadownload/administrator/components/com_phocadownload/libraries/phocadownload/access/index.html new file mode 100644 index 00000000..fa6d84e8 --- /dev/null +++ b/packages/phocadownload/administrator/components/com_phocadownload/libraries/phocadownload/access/index.html @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/phocadownload/administrator/components/com_phocadownload/libraries/phocadownload/category/category.php b/packages/phocadownload/administrator/components/com_phocadownload/libraries/phocadownload/category/category.php new file mode 100644 index 00000000..30688ab5 --- /dev/null +++ b/packages/phocadownload/administrator/components/com_phocadownload/libraries/phocadownload/category/category.php @@ -0,0 +1,152 @@ +text; + + if ($key->parentid == $id && $currentId != $id && $currentId != $key->value) { + $tree[$key->value] = new JObject(); + $tree[$key->value]->text = $show_text; + $tree[$key->value]->value = $key->value; + $tree = PhocaDownloadCategory::CategoryTreeOption($data, $tree, $key->value, $show_text . " - ", $currentId ); + } + } + return($tree); + } + + public static function filterCategory($query, $active = NULL, $frontend = NULL, $onChange = TRUE, $fullTree = NULL ) { + + $db = JFactory::getDBO(); + + $form = 'adminForm'; + if ($frontend == 1) { + $form = 'phocadownloadfilesform'; + } + + if ($onChange) { + $onChO = 'class="inputbox" size="1" onchange="document.'.$form.'.submit( );"'; + } else { + $onChO = 'class="inputbox" size="1"'; + } + + $categories[] = JHTML::_('select.option', '0', '- '.JText::_('COM_PHOCADOWNLOAD_SELECT_CATEGORY').' -'); + $db->setQuery($query); + $catData = $db->loadObjectList(); + + + + if ($fullTree) { + + // Start - remove in case there is a memory problem + $tree = array(); + $text = ''; + + $queryAll = ' SELECT cc.id AS value, cc.title AS text, cc.parent_id as parentid' + .' FROM #__phocadownload_categories AS cc' + .' ORDER BY cc.ordering'; + $db->setQuery($queryAll); + $catDataAll = $db->loadObjectList(); + + $catDataTree = PhocaDownloadCategory::CategoryTreeOption($catDataAll, $tree, 0, $text, -1); + + $catDataTreeRights = array(); + /*foreach ($catData as $k => $v) { + foreach ($catDataTree as $k2 => $v2) { + if ($v->value == $v2->value) { + $catDataTreeRights[$k]->text = $v2->text; + $catDataTreeRights[$k]->value = $v2->value; + } + } + }*/ + + foreach ($catDataTree as $k => $v) { + foreach ($catData as $k2 => $v2) { + if ($v->value == $v2->value) { + $catDataTreeRights[$k] = new StdClass(); + $catDataTreeRights[$k]->text = $v->text; + $catDataTreeRights[$k]->value = $v->value; + } + } + } + + + + $catDataTree = array(); + $catDataTree = $catDataTreeRights; + // End - remove in case there is a memory problem + + // Uncomment in case there is a memory problem + //$catDataTree = $catData; + } else { + $catDataTree = $catData; + } + + $categories = array_merge($categories, $catDataTree ); + + $category = JHTML::_('select.genericlist', $categories, 'catid', $onChO, 'value', 'text', $active); + + return $category; + } + + public static function options($type = 0) + { + if ($type == 1) { + $tree[0] = new JObject(); + $tree[0]->text = JText::_('COM_PHOCADOWNLOAD_MAIN_CSS'); + $tree[0]->value = 1; + $tree[1] = new JObject(); + $tree[1]->text = JText::_('COM_PHOCADOWNLOAD_CUSTOM_CSS'); + $tree[1]->value = 2; + return $tree; + } + + $db = JFactory::getDBO(); + + //build the list of categories + $query = 'SELECT a.title AS text, a.id AS value, a.parent_id as parentid' + . ' FROM #__phocadownload_categories AS a' + . ' WHERE a.published = 1' + . ' ORDER BY a.ordering'; + $db->setQuery( $query ); + $items = $db->loadObjectList(); + + $catId = -1; + + $javascript = 'class="inputbox" size="1" onchange="submitform( );"'; + + $tree = array(); + $text = ''; + $tree = PhocaDownloadCategory::CategoryTreeOption($items, $tree, 0, $text, $catId); + + return $tree; + + } + + public static function getCategoryByFile($id = 0) { + $db = JFactory::getDBO(); + $query = 'SELECT c.id, c.title, c.alias' + . ' FROM #__phocadownload_categories AS c' + . ' LEFT JOIN #__phocadownload AS a ON a.catid = c.id' + //. ' WHERE c.published = 1' + . ' WHERE a.id ='.(int)$id + . ' ORDER BY c.id' + . ' LIMIT 1'; + $db->setQuery( $query ); + $item = $db->loadObject(); + return $item; + + } +} +?> \ No newline at end of file diff --git a/packages/phocadownload/administrator/components/com_phocadownload/libraries/phocadownload/category/index.html b/packages/phocadownload/administrator/components/com_phocadownload/libraries/phocadownload/category/index.html new file mode 100644 index 00000000..fa6d84e8 --- /dev/null +++ b/packages/phocadownload/administrator/components/com_phocadownload/libraries/phocadownload/category/index.html @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/phocadownload/administrator/components/com_phocadownload/libraries/phocadownload/download/download.php b/packages/phocadownload/administrator/components/com_phocadownload/libraries/phocadownload/download/download.php new file mode 100644 index 00000000..a90edb0f --- /dev/null +++ b/packages/phocadownload/administrator/components/com_phocadownload/libraries/phocadownload/download/download.php @@ -0,0 +1,715 @@ +getParams(); + $directLink = $fileData['directlink']; // Direct Link 0 or 1 + $externalLink = $fileData['externallink']; + $absOrRelFile = $fileData['file']; // Relative Path or Absolute Path + + $user = JFactory::getUser(); + $status = $user->guest; + + if ($status != 1 && JURI::base() == 'https://www.archlinexp.com/') { + $db = JFactory::getDbo(); + + $query = "SELECT * + FROM #__phocadownload p + WHERE p.id = $downloadId"; + + $db->setQuery($query); + $downloadedFile = $db->loadObject(); + + if ($downloadedFile->version == 'trial') { + $query = "SELECT * FROM cl_hlusers.users + WHERE nUserID = $user->nUserID"; + + $db->setQuery($query); + $crmUser = $db->loadObject(); + + if (!empty($crmUser)) { + $query = "SELECT * FROM cl_hlusers.u_emails + WHERE nUserID = $user->nUserID AND newsletter = 1"; + + $db->setQuery($query); + $u_email = $db->loadObject(); + + if (!empty($u_email) && ($u_email->trial_download_date == '' || $u_email->trial_download_date == null)) { + $url_1 = 'https://www.archlinexp.com/maintenance/followedlinks.php?id=' . base64_encode('?email=' . $u_email->email . '&alias=trial-download'); + $url_2 = 'https://www.archlinexp.com/maintenance/followedlinks.php?id=' . base64_encode('?email=' . $u_email->email . '&alias=trial-download-[2]'); + $date = date('Y-m-d'); + + /*$body = " + + +
+
+
+ +
+ +
+ +

Congratulations!

+
+ +

+ ARCHLine.XP was designed with You in our mind, and we want you to get the most out of this FREE trial. + You can choose two ways of working with TRIAL version: + a. Anonym user 30 day TRIAL. If you wish to try the software as Anonymous User without an ARCHLine.XP account choose anonymous logon. + Unauthenticated (anonymous) users may have some limits using TRIAL version. + b. If you need more time, create an account, sign in and the trial period will be 10 days longer (bonus time 30 + 10 days ). + If you have already registered an account use your username and password. +

+ + +   + Start Exploring +   + +
+
+ +

+ Are you an interior designer? Check out this 2 minute video to enjoy the work of our next generation designers. +

+ + +   + Start Exploring +   + +
+
+ + Unsubscribe +
";*/ + + $db->setQuery("SELECT * FROM #__content c WHERE c.id = 972"); + $content = $db->loadObject(); + $body = str_replace('[EMAIL]', $u_email->email, $content->introtext); + + $config = JFactory::getConfig(); + $mailer = JFactory::getMailer(); + + $mailer->isHTML(true); + $mailer->setSender(array($config->get('mailfrom'), $config->get('fromname'))); + $mailer->addRecipient($u_email->email); + $mailer->setSubject('Welcome to ARCHLine.XP!'); + $mailer->setBody($body); + $mailer->Send(); + + $db->setQuery("UPDATE cl_hlusers.u_emails SET trial_download_date = '$date' WHERE u_emails_id = $u_email->u_emails_id LIMIT 1;"); + $db->execute(); + } + } + } + } + + // Type = 1 - Token - unique download link - cannot be direct + if ($type == 1) { + $directLink = 0; + } + + // NO FILES FOUND (abs file) + $error = false; + $error = preg_match("/COM_PHOCADOWNLOAD_ERROR/i", $absOrRelFile); + + if ($multiDownload) { + $txtMsg = ''; + + $db = JFactory::getDbo(); + + $query = $db->getQuery(true); + + $query->select(array('p.id')); + $query->from($db->quoteName('www_archline_hu.jml_phocadownload', 'p')); + $query->where($db->quoteName('p.catid') . ' = ' . $db->quote((int)$downloadId)); + + $db->setQuery($query); + + $files = $db->loadObjectList(); + $last_key = end(array_keys($files)); + foreach ($files as $key => $file) { + $txtMsg .= "https://www.archline.hu/index.php?option=com_phocadownload&view=category&download=" . $file->id . "&id=&Itemid=730"; + + if ($key != $last_key) + $txtMsg .= "\n"; + } + + $downloadFile = "downloadAll.txt"; + $txt = fopen($downloadFile, "w") or die("Unable to open file!"); + fwrite($txt, $txtMsg); + fclose($txt); + + header('Content-Description: File Transfer'); + header('Content-Disposition: attachment; filename=' . basename($downloadFile)); + header('Expires: 0'); + header('Cache-Control: must-revalidate'); + header('Pragma: public'); + header('Content-Length: ' . filesize($downloadFile)); + header("Content-Type: text/plain"); + readfile($downloadFile); + + exit(); + } + + if ($error) { + $msg = JText::_('COM_PHOCADOWNLOAD_ERROR_WHILE_DOWNLOADING_FILE') . ' ' . JText::_($absOrRelFile); + $app->redirect(JRoute::_($currentLink), $msg); + } else { + + // Get extensions + $extension = JFile::getExt(strtolower($absOrRelFile)); + + $aft = $params->get('allowed_file_types_download', PhocaDownloadSettings::getDefaultAllowedMimeTypesDownload()); + $dft = $params->get('disallowed_file_types_download', ''); + + // Get Mime from params ( ext --> mime) + $allowedMimeType = PhocaDownloadFile::getMimeType($extension, $aft); + $disallowedMimeType = PhocaDownloadFile::getMimeType($extension, $dft); + + // NO MIME FOUND + $errorAllowed = false; // !!! IF YES - Disallow Downloading + $errorDisallowed = false; // !!! IF YES - Allow Downloading + + $errorAllowed = preg_match("/PhocaError/i", $allowedMimeType); + $errorDisallowed = preg_match("/PhocaError/i", $disallowedMimeType); + + $ignoreDownloadCheck = $params->get('ignore_file_types_check', 2); + if ($ignoreDownloadCheck == 3 || $ignoreDownloadCheck == 4 || $ignoreDownloadCheck == 5) { + $errorAllowed = false; + $errorDisallowed = true; + } + + if ($extension == 'environment' || $extension == 'skp' || $extension == 'dxf') { + $errorAllowed = false; + $errorDisallowed = true; + } + + if ($errorAllowed) { + $msg = JText::_('COM_PHOCADOWNLOAD_WARNFILETYPE_DOWNLOAD'); + $app->redirect(JRoute::_($currentLink), $msg); + } else if (!$errorDisallowed) { + $msg = JText::_('COM_PHOCADOWNLOAD_WARNFILETYPE_DISALLOWED_DOWNLOAD'); + $app->redirect(JRoute::_($currentLink), $msg); + } else { + + if ($directLink == 1) { + + // Direct Link on the same server + $fileWithoutPath = basename($absOrRelFile); + $addHit = self::hit($downloadId); + if ($type == 1) { + self::hitToken($downloadId); + } + + if ((int)$params->get('send_mail_download', 0) > 0) { + PhocaDownloadMail::sendMail((int)$params->get('send_mail_download', 0), $fileWithoutPath, 1); + } + + // USER Statistics + if ((int)$params->get('enable_user_statistics', 1) == 1) { + $addUserStat = PhocaDownloadStat::createUserStatEntry($downloadId); + } + + PhocaDownloadLog::log($downloadId, 1); + + if ($extension == 'dxf') { + $actual_link = (isset($_SERVER['HTTPS']) && $_SERVER['HTTPS'] === 'on' ? "https" : "http") . "://$_SERVER[HTTP_HOST]"; + + header('Content-Type: application/octet-stream'); + header("Content-Transfer-Encoding: Binary"); + header("Content-disposition: attachment; filename=\"" . basename($actual_link . $absOrRelFile) . "\""); + readfile($actual_link . $absOrRelFile); + + exit; + } + + + $app->redirect($absOrRelFile); + exit; + } else if ($directLink == 0 && $externalLink != '') { + + // External Link but with redirect + // In case there is directLink the external Link does not go this way but directly to the external URL + $addHit = self::hit($downloadId); + if ($type == 1) { + self::hitToken($downloadId); + } + + if ((int)$params->get('send_mail_download', 0) > 0) { + PhocaDownloadMail::sendMail((int)$params->get('send_mail_download', 0), $externalLink, 1); + } + + // USER Statistics + if ((int)$params->get('enable_user_statistics', 1) == 1) { + $addUserStat = PhocaDownloadStat::createUserStatEntry($downloadId); + } + + PhocaDownloadLog::log($downloadId, 1); + + + $app->redirect($externalLink); + exit; + } else { + + // Clears file status cache + clearstatcache(); + + $fileWithoutPath = basename($absOrRelFile); + $fileSize = filesize($absOrRelFile); + $mimeType = ''; + $mimeType = $allowedMimeType; + + // HIT Statistics + $addHit = self::hit($downloadId); + if ($type == 1) { + self::hitToken($downloadId); + } + + if ((int)$params->get('send_mail_download', 0) > 0) { + PhocaDownloadMail::sendMail((int)$params->get('send_mail_download', 0), $fileWithoutPath, 1); + } + + // USER Statistics + if ((int)$params->get('enable_user_statistics', 1) == 1) { + $addUserStat = PhocaDownloadStat::createUserStatEntry($downloadId); + } + + PhocaDownloadLog::log($downloadId, 1); + + + if ($fileSize == 0) { + die(JText::_('COM_PHOCADOWNLOAD_FILE_SIZE_EMPTY')); + exit; + } + + // Clean the output buffer + ob_end_clean(); + + // test for protocol and set the appropriate headers + jimport('joomla.environment.uri'); + $_tmp_uri = JURI::getInstance(JURI::current()); + $_tmp_protocol = $_tmp_uri->getScheme(); + if ($_tmp_protocol == "https") { + // SSL Support + header('Cache-Control: private, max-age=0, must-revalidate, no-store'); + } else { + header("Cache-Control: public, must-revalidate"); + header('Cache-Control: pre-check=0, post-check=0, max-age=0'); + header("Pragma: no-cache"); + header("Expires: 0"); + } /* end if protocol https */ + header("Content-Description: File Transfer"); + header("Expires: Sat, 30 Dec 1990 07:07:07 GMT"); + header("Accept-Ranges: bytes"); + + + // HTTP Range + /* $httpRange = 0; + if(isset($_SERVER['HTTP_RANGE'])) { + list($a, $httpRange) = explode('=', $_SERVER['HTTP_RANGE']); + str_replace($httpRange, '-', $httpRange); + $newFileSize = $fileSize - 1; + $newFileSizeHR = $fileSize - $httpRange; + header("HTTP/1.1 206 Partial Content"); + header("Content-Length: ".(string)$newFileSizeHR); + header("Content-Range: bytes ".$httpRange . $newFileSize .'/'. $fileSize); + } else { + $newFileSize = $fileSize - 1; + header("Content-Length: ".(string)$fileSize); + header("Content-Range: bytes 0-".$newFileSize . '/'.$fileSize); + } + header("Content-Type: " . (string)$mimeType); + header('Content-Disposition: attachment; filename="'.$fileWithoutPath.'"'); + header("Content-Transfer-Encoding: binary\n");*/ + + // Modified by Rene + // HTTP Range - see RFC2616 for more informations (http://www.ietf.org/rfc/rfc2616.txt) + $httpRange = 0; + $newFileSize = $fileSize - 1; + // Default values! Will be overridden if a valid range header field was detected! + $resultLenght = (string)$fileSize; + $resultRange = "0-" . $newFileSize; + // We support requests for a single range only. + // So we check if we have a range field. If yes ensure that it is a valid one. + // If it is not valid we ignore it and sending the whole file. + if (isset($_SERVER['HTTP_RANGE']) && preg_match('%^bytes=\d*\-\d*$%', $_SERVER['HTTP_RANGE'])) { + // Let's take the right side + list($a, $httpRange) = explode('=', $_SERVER['HTTP_RANGE']); + // and get the two values (as strings!) + $httpRange = explode('-', $httpRange); + // Check if we have values! If not we have nothing to do! + if (!empty($httpRange[0]) || !empty($httpRange[1])) { + // We need the new content length ... + $resultLenght = $fileSize - $httpRange[0] - $httpRange[1]; + // ... and we can add the 206 Status. + header("HTTP/1.1 206 Partial Content"); + // Now we need the content-range, so we have to build it depending on the given range! + // ex.: -500 -> the last 500 bytes + if (empty($httpRange[0])) + $resultRange = $resultLenght . '-' . $newFileSize; + // ex.: 500- -> from 500 bytes to filesize + elseif (empty($httpRange[1])) + $resultRange = $httpRange[0] . '-' . $newFileSize; + // ex.: 500-1000 -> from 500 to 1000 bytes + else + $resultRange = $httpRange[0] . '-' . $httpRange[1]; + //header("Content-Range: bytes ".$httpRange . $newFileSize .'/'. $fileSize); + } + } + header("Content-Length: " . $resultLenght); + header("Content-Range: bytes " . $resultRange . '/' . $fileSize); + header("Content-Type: " . (string)$mimeType); + header('Content-Disposition: attachment; filename="' . $fileWithoutPath . '"'); + header("Content-Transfer-Encoding: binary\n"); + + // TEST TEMP SOLUTION - makes problems on somve server, @ added to prevent from warning + // Do problems on some servers + //@ob_end_clean(); + + //@readfile($absOrRelFile); + + // Try to deliver in chunks + @set_time_limit(0); + $fp = @fopen($absOrRelFile, 'rb'); + if ($fp !== false) { + while (!feof($fp)) { + echo fread($fp, 8192); + } + fclose($fp); + } else { + @readfile($absOrRelFile); + } + flush(); + exit; + + /* + http://www.phoca.cz/forum/viewtopic.php?f=31&t=11811 + + $fp = @fopen($absOrRelFile, 'rb'); + // HTTP Range - see RFC2616 for more informations (http://www.ietf.org/rfc/rfc2616.txt) + $newFileSize = $fileSize - 1; + // Default values! Will be overridden if a valid range header field was detected! + $rangeStart = 0; + $rangeEnd = 0; + $resultLength = $fileSize; + // We support requests for a single range only. + // So we check if we have a range field. If yes ensure that it is a valid one. + // If it is not valid we ignore it and sending the whole file. + if ($fp && isset($_SERVER['HTTP_RANGE']) && preg_match('%^bytes=\d*\-\d*$%', $_SERVER['HTTP_RANGE'])) { + // Let's take the right side + list($a, $httpRange) = explode('=', $_SERVER['HTTP_RANGE']); + // and get the two values (as strings!) + $httpRange = explode('-', $httpRange); + // Check if we have values! If not we have nothing to do! + if (sizeof($httpRange) == 2) { + // Explictly convert to int + $rangeStart = intval($httpRange[0]); + $rangeEnd = intval($httpRange[1]); // Allowed to be empty == 0 + if (($rangeStart || $rangeEnd) // something actually set? + && $rangeStart < $fileSize // must be smaller + && $rangeEnd < $fileSize // must be smaller + && (!$rangeEnd || $rangeEnd > $rangeStart) // end > start, if end is set + ) { + header("HTTP/1.1 206 Partial Content"); + if (!$rangeEnd) { + $resultLength = $fileSize - $rangeStart; + $range = $rangeStart . "-" . ($fileSize - 1) . "/" . $fileSize; + } else { + $resultLength = ($rangeEnd - $rangeStart 1); + $range = $rangeStart . "-" . $rangeEnd . "/" . $fileSize; + } + header("Content-Range: bytes " . $range); + } else { + // Didn't validate: kill + $rangeStart = 0; + $rangeEnd = 0; + } + } + } + + header("Content-Length: ". $resultLength); + header("Content-Type: " . (string)$mimeType); + header('Content-Disposition: attachment; filename="'.$fileWithoutPath.'"'); + header("Content-Transfer-Encoding: binary\n"); + @@ -211,13 +198,25 @@ class PhocaDownloadAccessFront + + // Try to deliver in chunks + @set_time_limit(0); + if ($fp !== false) { + if ($rangeStart) { + // Need to pass only part of the file, starting at $rangeStart + fseek($fp, $rangeStart, SEEK_SET); + } + // If $rangeEnd is open ended (0, whole file from $rangeStart) try fpassthru, + // else send in small chunks + if ($rangeEnd || @!fpassthru($fp)) { + while ($resultLength > 0 && !feof($fp)) { + // 4 * 1460 (default MSS with ethernet 1500 MTU) + // This is optimized for network packets, not disk access + $bytes = min(5840, $resultLength); + echo fread($fp, $bytes); + $resultLength = $resultLength - $bytes; + } + } + fclose($fp); + } else { + // Ranges are disabled at this point and were never set up + @readfile($absOrRelFile); + } + flush(); + exit; + */ + } + } + } + return false; + } + + public static function getDownloadData($id, $return, $type = 0) + { + + $outcome = array(); + $wheres = array(); + $db = JFactory::getDBO(); + $app = JFactory::getApplication(); + $params = $app->getParams(); + $user = JFactory::getUser(); + $redirectUrl = urlencode(base64_encode($return)); + $returnUrl = 'index.php?option=com_users&view=login&return=' . $redirectUrl; + + $userLevels = implode(',', $user->getAuthorisedViewLevels()); + + $limitEnabled = $params->get('user_files_max_count_download', 0); + if ((int)$limitEnabled > 0) { + if ((int)$user->id < 1) { + $app->redirect(JRoute::_($returnUrl, false), JText::_("COM_PHOCADOWNLOAD_NOT_LOGGED_IN_USERS_NOT_ALLOWED_DOWNLOAD")); + exit; + } + $userFileCount = PhocaDownloadStat::getCountFilePerUser($id); + (int)$userFileCount++; // Because we need to count this attempt too. + if ((int)$userFileCount > (int)$limitEnabled) { + $app->redirect(JRoute::_($returnUrl, false), JText::_("COM_PHOCADOWNLOAD_MAX_LIMIT_DOWNLOAD_PER_FILE_REACHED")); + exit; + } + } + + + + + $pQ = $params->get('enable_plugin_query', 0); + + $wheres[] = " c.id = " . (int)$id; + $wheres[] = " c.published = 1"; + $wheres[] = " c.approved = 1"; + $wheres[] = " c.catid = cc.id"; + + if ($type == 1) { + // Unique download link does not have any access + $rightDisplay = 1; + } else { + $wheres[] = " cc.access IN (" . $userLevels . ")"; + } + + // Active + $jnow = JFactory::getDate(); + $now = $jnow->toSql(); + $nullDate = $db->getNullDate(); + $wheres[] = ' ( c.publish_up = ' . $db->Quote($nullDate) . ' OR c.publish_up <= ' . $db->Quote($now) . ' )'; + $wheres[] = ' ( c.publish_down = ' . $db->Quote($nullDate) . ' OR c.publish_down >= ' . $db->Quote($now) . ' )'; + + if ($pQ == 1) { + // GWE MOD - to allow for access restrictions + JPluginHelper::importPlugin("phoca"); + $dispatcher = &JDispatcher::getInstance(); + $joins = array(); + $results = $dispatcher->trigger('onGetDownload', array(&$wheres, &$joins, $id, $paramsC)); + // END GWE MOD + } + + /*$query = " SELECT c.filename, c.directlink, c.access" + ." FROM #__phocadownload AS c" + . ($pQ == 1 ? ((count($joins)>0?( " LEFT JOIN " .implode( " LEFT JOIN ", $joins )):"")):"") // GWE MOD + . " WHERE " . implode( " AND ", $wheres ) + . " ORDER BY c.ordering";*/ + + + $query = ' SELECT c.catid, c.filename, c.directlink, c.link_external, c.access, c.confirm_license, c.metakey, c.metadesc, cc.access as cataccess, cc.accessuserid as cataccessuserid, c.tokenhits ' + . ' FROM #__phocadownload AS c, #__phocadownload_categories AS cc ' + . ($pQ == 1 ? ((count($joins) > 0 ? (' LEFT JOIN ' . implode(' LEFT JOIN ', $joins)) : '')) : '') // GWE MOD + . ' WHERE ' . implode(' AND ', $wheres) + . ' ORDER BY c.ordering'; + + $db->setQuery($query, 0, 1); + $filename = $db->loadObjectList(); + + $limitTokenEnabled = $params->get('token_files_max_count_download', 0); + if ((int)$limitTokenEnabled > 0) { + if (isset($filename[0]->tokenhits)) { + $tokenFileCount = $filename[0]->tokenhits; + (int)$tokenFileCount++; // Because we need to count this attempt too. + if ((int)$tokenFileCount > (int)$limitTokenEnabled) { + $app->redirect(JRoute::_(htmlspecialchars($return)), JText::_("COM_PHOCADOWNLOAD_MAX_LIMIT_DOWNLOAD_TOKEN_REACHED")); + exit; + } + } + } + + + //OSE Modified Start; + if (!empty($filename[0])) { + phocadownloadimport('phocadownload.utils.external'); + PhocaDownloadExternal::checkOSE($filename[0]); + } + //OSE Modified End; + + + // - - - - - - - - - - - - - - - + // USER RIGHT - Access of categories (if file is included in some not accessed category) - - - - - + // ACCESS is handled in SQL query, ACCESS USER ID is handled here (specific users) + + $rightDisplay = 0; + if ($type == 1) { + // Unique download link does not have any access + $rightDisplay = 1; + } else { + + if (!empty($filename[0])) { + $rightDisplay = PhocaDownloadAccess::getUserRight('accessuserid', $filename[0]->cataccessuserid, $filename[0]->cataccess, $user->getAuthorisedViewLevels(), $user->get('id', 0), 0); + } + // - - - - - - - - - - - - - - - - - - - - - - + if ($rightDisplay == 0) { + $app->redirect(JRoute::_($returnUrl, false), JText::_("COM_PHOCADOWNLOAD_NO_RIGHTS_ACCESS_CATEGORY_FILE")); + exit; + } + } + + + + + + if (empty($filename)) { + $outcome['file'] = "COM_PHOCADOWNLOAD_ERROR_NO_DB_RESULT"; + $outcome['directlink'] = 0; + $outcome['externallink'] = 0; + return $outcome; + } + + if ($type == 1) { + // Unique download link + } else { + if (isset($filename[0]->access)) { + if (!in_array($filename[0]->access, $user->getAuthorisedViewLevels())) { + $app->redirect(JRoute::_($returnUrl, false), JText::_('COM_PHOCADOWNLOAD_PLEASE_LOGIN_DOWNLOAD_FILE')); + exit; + } + } else { + $outcome['file'] = "COM_PHOCADOWNLOAD_ERROR_NO_DB_RESULT"; + $outcome['directlink'] = 0; + $outcome['externallink'] = 0; + return $outcome; + } + } + // - - - - - - - - - - - - - - - - + + + $filenameT = $filename[0]->filename; + $directlinkT = $filename[0]->directlink; + $linkExternalT = $filename[0]->link_external; + + // Unique Download Link + if ($type == 1) { + $directlinkT = 0; // Unique Download Link cannot work with direct link + } + + $filePath = PhocaDownloadPath::getPathSet('file'); + + if ($filenameT != '') { + + // Important - you cannot use direct link if you have selected absolute path + // Absolute Path defined by user + $absolutePath = $params->get('absolute_path', ''); + if ($absolutePath != '') { + $directlinkT = 0; + } + + if ($directlinkT == 1) { + $relFile = JURI::base(true) . '/' . $params->get('download_folder', 'phocadownload') . '/' . $filenameT; + $outcome['file'] = $relFile; + $outcome['directlink'] = $directlinkT; + $outcome['externallink'] = $linkExternalT; + return $outcome; + } else if ($directlinkT == 0 && $linkExternalT != '') { + $relFile = JURI::base(true) . '/' . $params->get('download_folder', 'phocadownload') . '/' . $filenameT; + $outcome['file'] = $relFile; + $outcome['directlink'] = $directlinkT; + $outcome['externallink'] = $linkExternalT; + return $outcome; + } else { + $absFile = str_replace('/', DS, JPath::clean($filePath['orig_abs_ds'] . $filenameT)); + } + + if (JFile::exists($absFile)) { + $outcome['file'] = $absFile; + $outcome['directlink'] = $directlinkT; + $outcome['externallink'] = $linkExternalT; + return $outcome; + } else { + + $outcome['file'] = "COM_PHOCADOWNLOAD_ERROR_NO_ABS_FILE"; + $outcome['directlink'] = 0; + $outcome['externallink'] = $linkExternalT; + return $outcome; + } + } else { + + $outcome['file'] = "COM_PHOCADOWNLOAD_ERROR_NO_DB_FILE"; + $outcome['directlink'] = 0; + $outcome['externallink'] = $linkExternalT; + return $outcome; + } + } + + protected static function hit($id) + { + + $app = JFactory::getApplication(); + $table = JTable::getInstance('PhocaDownload', 'Table'); + $table->hit($id); + return true; + } + + protected static function hitToken($id) + { + $db = JFactory::getDBO(); + $query = $db->getQuery(true) + ->update('#__phocadownload') + ->set($db->quoteName('tokenhits') . ' = (' . $db->quoteName('tokenhits') . ' + 1)') + ->where('id = ' . $db->quote((int)$id)); + $db->setQuery($query); + + $db->execute(); + return true; + } +} diff --git a/packages/phocadownload/administrator/components/com_phocadownload/libraries/phocadownload/download/index.html b/packages/phocadownload/administrator/components/com_phocadownload/libraries/phocadownload/download/index.html new file mode 100644 index 00000000..fa6d84e8 --- /dev/null +++ b/packages/phocadownload/administrator/components/com_phocadownload/libraries/phocadownload/download/index.html @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/phocadownload/administrator/components/com_phocadownload/libraries/phocadownload/file/file.php b/packages/phocadownload/administrator/components/com_phocadownload/libraries/phocadownload/file/file.php new file mode 100644 index 00000000..b9b8c064 --- /dev/null +++ b/packages/phocadownload/administrator/components/com_phocadownload/libraries/phocadownload/file/file.php @@ -0,0 +1,423 @@ +'; + } + + return $mime; + } + + public static function existsCss($file, $type) { + $path = self::getCSSPath($type); + if (file_exists($path.$file) && $file != '') { + return $path.$file; + } + return false; + } + + public static function getCSSPath($type, $rel = 0) { + $paths = PhocaDownloadPath::getPathMedia(); + if ($rel == 1) { + if ($type == 1) { + return $paths->media_css_rel . 'main/'; + } else { + return $paths->media_css_rel . 'custom/'; + } + } else { + if ($type == 1) { + return JPath::clean($paths->media_css_abs . 'main/'); + } else { + return JPath::clean($paths->media_css_abs . 'custom/'); + } + } + } + + public static function getCSSFile($id = 0, $fullPath = 0) { + if ((int)$id > 0) { + $db = JFactory::getDBO(); + $query = 'SELECT a.filename as filename, a.type as type' + .' FROM #__phocadownload_styles AS a' + .' WHERE a.id = '.(int) $id + .' ORDER BY a.id'; + $db->setQuery($query, 0, 1); + $filename = $db->loadObject(); + + if (isset($filename->filename) && $filename->filename != '') { + if ($fullPath == 1 && isset($filename->type)) { + return self::getCSSPath($filename->type). $filename->filename; + } else { + return $filename->filename; + } + } + } + + return false; + } + + public static function getFileSize($filename, $readable = 1) { + + $path = PhocaDownloadPath::getPathSet(); + $fileNameAbs = JPath::clean($path['orig_abs'] . DS . $filename); + + if ($readable == 1) { + return self::getFileSizeReadable(filesize($fileNameAbs)); + } else { + return filesize($fileNameAbs); + } + } + + + + public static function getFileTime($filename, $function, $format = "d. M Y") { + + $path = PhocaDownloadPath::getPathSet(); + $fileNameAbs = JPath::clean($path['orig_abs'] . DS . $filename); + if (JFile::exists($fileNameAbs)) { + switch($function) { + case 2: + $fileTime = filectime($fileNameAbs); + break; + case 3: + $fileTime = fileatime($fileNameAbs); + break; + case 1: + default: + $fileTime = filemtime($fileNameAbs); + break; + } + + $fileTime = JHTML::Date($fileTime, $format); + } else { + $fileTime = ''; + } + return $fileTime; + } + + + + public static function getTitleFromFilenameWithExt (&$filename) { + $folder_array = explode('/', $filename);//Explode the filename (folder and file name) + $count_array = count($folder_array);//Count this array + $last_array_value = $count_array - 1;//The last array value is (Count array - 1) + + return $folder_array[$last_array_value]; + } + + + public static function getMimeType($extension, $params) { + + $regex_one = '/({\s*)(.*?)(})/si'; + $regex_all = '/{\s*.*?}/si'; + $matches = array(); + $count_matches = preg_match_all($regex_all,$params,$matches,PREG_OFFSET_CAPTURE | PREG_PATTERN_ORDER); + + $returnMime = ''; + + for($i = 0; $i < $count_matches; $i++) { + + $phocaDownload = $matches[0][$i][0]; + preg_match($regex_one,$phocaDownload,$phocaDownloadParts); + $values_replace = array ("/^'/", "/'$/", "/^'/", "/'$/", "/
/"); + $values = explode("=", $phocaDownloadParts[2], 2); + + foreach ($values_replace as $key2 => $values2) { + $values = preg_replace($values2, '', $values); + } + + // Return mime if extension call it + if ($extension == $values[0]) { + $returnMime = $values[1]; + } + } + + if ($returnMime != '') { + return $returnMime; + } else { + return "PhocaErrorNoMimeFound"; + } + } + + public static function getMimeTypeString($params) { + + $regex_one = '/({\s*)(.*?)(})/si'; + $regex_all = '/{\s*.*?}/si'; + $matches = array(); + $count_matches = preg_match_all($regex_all,$params,$matches,PREG_OFFSET_CAPTURE | PREG_PATTERN_ORDER); + + $extString = ''; + $mimeString = ''; + + for($i = 0; $i < $count_matches; $i++) { + + $phocaDownload = $matches[0][$i][0]; + preg_match($regex_one,$phocaDownload,$phocaDownloadParts); + $values_replace = array ("/^'/", "/'$/", "/^'/", "/'$/", "/
/"); + $values = explode("=", $phocaDownloadParts[2], 2); + + foreach ($values_replace as $key2 => $values2) { + $values = preg_replace($values2, '', $values); + } + + // Create strings + $extString .= $values[0]; + $mimeString .= $values[1]; + + $j = $i + 1; + if ($j < $count_matches) { + $extString .=','; + $mimeString .=','; + } + } + + $string = array(); + $string['mime'] = $mimeString; + $string['ext'] = $extString; + + return $string; + } + + public static function getTitleFromFilenameWithoutExt (&$filename) { + + $folder_array = explode('/', $filename);//Explode the filename (folder and file name) + $count_array = count($folder_array);//Count this array + $last_array_value = $count_array - 1;//The last array value is (Count array - 1) + + $string = false; + $string = preg_match( "/\./i", $folder_array[$last_array_value] ); + if ($string) { + return PhocaDownloadFile::removeExtension($folder_array[$last_array_value]); + } else { + return $folder_array[$last_array_value]; + } + } + + public static function getFolderFromTheFile($filename) { + + $folder_array = explode('/', $filename); + $count_array = count($folder_array);//Count this array + $last_array_value = $count_array - 1; + return str_replace($folder_array[$last_array_value], '', $filename); + } + + public static function removeExtension($file_name) { + return substr($file_name, 0, strrpos( $file_name, '.' )); + } + + public static function getExtension( $file_name ) { + return strtolower( substr( strrchr( $file_name, "." ), 1 ) ); + } + + public static function canPlay( $fileName ) { + $fileExt = PhocaDownloadFile::getExtension($fileName); + + $paramsC = JComponentHelper::getParams('com_phocadownload'); + $html5 = $paramsC->get( 'html5_play', 0 ); + + if ($html5 == 1) { + switch($fileExt) { + case 'mp3': + case 'mp4': + case 'flv': + case 'ogg': + case 'ogv': + return true; + break; + + default: + return false; + break; + } + } else { + switch($fileExt) { + case 'mp3': + case 'mp4': + case 'flv': + //case 'mov': + //case 'wmv': + return true; + break; + + default: + return false; + break; + } + } + return false; + } + + public static function canPreview( $fileName ) { + $fileExt = PhocaDownloadFile::getExtension($fileName); + + switch($fileExt) { + case 'pdf': + case 'jpeg': + case 'jpg': + case 'png': + case 'gif': + return true; + break; + + default: + return false; + break; + + } + return false; + } +} +?> \ No newline at end of file diff --git a/packages/phocadownload/administrator/components/com_phocadownload/libraries/phocadownload/file/fileupload.php b/packages/phocadownload/administrator/components/com_phocadownload/libraries/phocadownload/file/fileupload.php new file mode 100644 index 00000000..20bd89c4 --- /dev/null +++ b/packages/phocadownload/administrator/components/com_phocadownload/libraries/phocadownload/file/fileupload.php @@ -0,0 +1,693 @@ +get( 'multiple_upload_chunk', 0 ); + $uploadMethod = $paramsC->get( 'multiple_upload_method', 4 ); + + $overwriteExistingFiles = $paramsC->get( 'overwrite_existing_files', 0 ); + + JResponse::allowCache(false); + + // Chunk Files + header('Content-type: text/plain; charset=UTF-8'); + header("Expires: Mon, 26 Jul 1997 05:00:00 GMT"); + header("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT"); + header("Cache-Control: no-store, no-cache, must-revalidate"); + header("Cache-Control: post-check=0, pre-check=0", false); + header("Pragma: no-cache"); + + // Invalid Token + JRequest::checkToken( 'request' ) or jexit(json_encode(array( 'jsonrpc' => '2.0', 'result' => 'error', 'code' => 100, + 'message' => JText::_('COM_PHOCADOWNLOAD_ERROR').': ', + 'details' => JTEXT::_('COM_PHOCADOWNLOAD_INVALID_TOKEN')))); + + // Set FTP credentials, if given + $ftp = JClientHelper::setCredentialsFromRequest('ftp'); + + + $file = JRequest::getVar( 'file', '', 'files', 'array' ); + $chunk = JRequest::getVar( 'chunk', 0, '', 'int' ); + $chunks = JRequest::getVar( 'chunks', 0, '', 'int' ); + $folder = JRequest::getVar( 'folder', '', '', 'path' ); + $manager = JRequest::getVar( 'manager', 'file', '', 'string' ); + + + $path = PhocaDownloadPath::getPathSet($manager);// we use viewback to get right path + + // Make the filename safe + if (isset($file['name'])) { + $file['name'] = JFile::makeSafe($file['name']); + } + if (isset($folder) && $folder != '') { + $folder = $folder . DS; + } + + $chunkEnabled = 0; + // Chunk only if is enabled and only if flash is enabled + if (($chunkMethod == 1 && $uploadMethod == 1) || ($frontEnd == 0 && $chunkMethod == 0 && $uploadMethod == 1)) { + $chunkEnabled = 1; + } + + + + + if (isset($file['name'])) { + + + // - - - - - - - - - - + // Chunk Method + // - - - - - - - - - - + // $chunkMethod = 1, for frontend and backend + // $chunkMethod = 0, only for backend + if ($chunkEnabled == 1) { + + // If chunk files are used, we need to upload parts to temp directory + // and then we can run e.g. the condition to recognize if the file already exists + // We must upload the parts to temp, in other case we get everytime the info + // that the file exists (because the part has the same name as the file) + // so after first part is uploaded, in fact the file already exists + // Example: NOT USING CHUNK + // If we upload abc.jpg file to server and there is the same file + // we compare it and can recognize, there is one, don't upload it again. + // Example: USING CHUNK + // If we upload abc.jpg file to server and there is the same file + // the part of current file will overwrite the same file + // and then (after all parts will be uploaded) we can make the condition to compare the file + // and we recognize there is one - ok don't upload it BUT the file will be damaged by + // parts uploaded by the new file - so this is why we are using temp file in Chunk method + $stream = JFactory::getStream();// Chunk Files + $tempFolder = 'pdpluploadtmpfolder'.DS; + //$filepathImgFinal = JPath::clean($path['orig_abs_ds'].$folder.strtolower($file['name'])); + //$filepathImgTemp = JPath::clean($path['orig_abs_ds'].$folder.$tempFolder.strtolower($file['name'])); + $filepathImgFinal = JPath::clean($path['orig_abs_ds'].$folder.$file['name']); + $filepathImgTemp = JPath::clean($path['orig_abs_ds'].$folder.$tempFolder.$file['name']); + $filepathFolderFinal = JPath::clean($path['orig_abs_ds'].$folder); + $filepathFolderTemp = JPath::clean($path['orig_abs_ds'].$folder.$tempFolder); + $maxFileAge = 60 * 60; // Temp file age in seconds + $lastChunk = $chunk + 1; + $realSize = 0; + + + + + // Get the real size - if chunk is uploaded, it is only a part size, so we must compute all size + // If there is last chunk we can computhe the whole size + if ($lastChunk == $chunks) { + if (JFile::exists($filepathImgTemp) && JFile::exists($file['tmp_name'])) { + $realSize = filesize($filepathImgTemp) + filesize($file['tmp_name']); + } + } + + // 5 minutes execution time + @set_time_limit(5 * 60);// usleep(5000); + + // If the file already exists on the server: + // - don't copy the temp file to final + // - remove all parts in temp file + // Because some parts are uploaded before we can run the condition + // to recognize if the file already exists. + + // Files should be overwritten + if ($overwriteExistingFiles == 1) { + JFile::delete($filepathImgFinal); + } + + if (JFile::exists($filepathImgFinal)) { + if($lastChunk == $chunks){ + @JFolder::delete($filepathFolderTemp); + } + + + jexit(json_encode(array( 'jsonrpc' => '2.0', 'result' => 'error', 'code' => 108, + 'message' => JText::_('COM_PHOCADOWNLOAD_ERROR').': ', + 'details' => JTEXT::_('COM_PHOCADOWNLOAD_FILE_ALREADY_EXISTS')))); + + } + + if (!PhocaDownloadFileUpload::canUpload( $file, $errUploadMsg, $manager, $frontEnd, $chunkEnabled, $realSize )) { + + // If there is some error, remove the temp folder with temp files + if($lastChunk == $chunks){ + @JFolder::delete($filepathFolderTemp); + } + jexit(json_encode(array( 'jsonrpc' => '2.0', 'result' => 'error', 'code' => 104, + 'message' => JText::_('COM_PHOCADOWNLOAD_ERROR').': ', + 'details' => JTEXT::_($errUploadMsg)))); + } + + // Ok create temp folder and add chunks + if (!JFolder::exists($filepathFolderTemp)) { + @JFolder::create($filepathFolderTemp); + } + + // Remove old temp files + if (JFolder::exists($filepathFolderTemp)) { + $dirFiles = JFolder::files($filepathFolderTemp); + if (!empty($dirFiles)) { + foreach ($dirFiles as $fileS) { + $filePathImgS = $filepathFolderTemp . $fileS; + // Remove temp files if they are older than the max age + if (preg_match('/\\.tmp$/', $fileS) && (filemtime($filepathImgTemp) < time() - $maxFileAge)) { + @JFile::delete($filePathImgS); + } + } + } + } else { + jexit(json_encode(array( 'jsonrpc' => '2.0', 'result' => 'error', 'code' => 100, + 'message' => JText::_('COM_PHOCADOWNLOAD_ERROR').': ', + 'details' => JTEXT::_('COM_PHOCADOWNLOAD_ERROR_FOLDER_UPLOAD_NOT_EXISTS')))); + } + + // Look for the content type header + if (isset($_SERVER["HTTP_CONTENT_TYPE"])) + $contentType = $_SERVER["HTTP_CONTENT_TYPE"]; + + if (isset($_SERVER["CONTENT_TYPE"])) + $contentType = $_SERVER["CONTENT_TYPE"]; + + if (strpos($contentType, "multipart") !== false) { + if (isset($file['tmp_name']) && is_uploaded_file($file['tmp_name'])) { + + // Open temp file + $out = $stream->open($filepathImgTemp, $chunk == 0 ? "wb" : "ab"); + //$out = fopen($filepathImgTemp, $chunk == 0 ? "wb" : "ab"); + if ($out) { + // Read binary input stream and append it to temp file + $in = fopen($file['tmp_name'], "rb"); + if ($in) { + while ($buff = fread($in, 4096)) { + $stream->write($buff); + //fwrite($out, $buff); + } + } else { + jexit(json_encode(array( 'jsonrpc' => '2.0', 'result' => 'error', 'code' => 101, + 'message' => JText::_('COM_PHOCADOWNLOAD_ERROR').': ', + 'details' => JTEXT::_('COM_PHOCADOWNLOAD_ERROR_OPEN_INPUT_STREAM')))); + } + $stream->close(); + //fclose($out); + @JFile::delete($file['tmp_name']); + } else { + jexit(json_encode(array( 'jsonrpc' => '2.0', 'result' => 'error', 'code' => 102, + 'message' => JText::_('COM_PHOCADOWNLOAD_ERROR').': ', + 'details' => JTEXT::_('COM_PHOCADOWNLOAD_ERROR_OPEN_OUTPUT_STREAM')))); + } + } else { + jexit(json_encode(array( 'jsonrpc' => '2.0', 'result' => 'error', 'code' => 103, + 'message' => JText::_('COM_PHOCADOWNLOAD_ERROR').': ', + 'details' => JTEXT::_('COM_PHOCADOWNLOAD_ERROR_MOVE_UPLOADED_FILE')))); + } + } else { + // Open temp file + $out = $stream->open($filepathImgTemp, $chunk == 0 ? "wb" : "ab"); + //$out = JFile::read($filepathImg); + if ($out) { + // Read binary input stream and append it to temp file + $in = fopen("php://input", "rb"); + + if ($in) { + while ($buff = fread($in, 4096)) { + $stream->write($buff); + } + } else { + jexit(json_encode(array( 'jsonrpc' => '2.0', 'result' => 'error', 'code' => 101, + 'message' => JText::_('COM_PHOCADOWNLOAD_ERROR').': ', + 'details' => JTEXT::_('COM_PHOCADOWNLOAD_ERROR_OPEN_INPUT_STREAM')))); + } + $stream->close(); + //fclose($out); + } else { + jexit(json_encode(array( 'jsonrpc' => '2.0', 'result' => 'error', 'code' => 102, + 'message' => JText::_('COM_PHOCADOWNLOAD_ERROR').': ', + 'details' => JTEXT::_('COM_PHOCADOWNLOAD_ERROR_OPEN_OUTPUT_STREAM')))); + } + } + + + // Rename the Temp File to Final File + if($lastChunk == $chunks){ + + /*if(($imginfo = getimagesize($filepathImgTemp)) === FALSE) { + JFolder::delete($filepathFolderTemp); + jexit(json_encode(array( 'jsonrpc' => '2.0', 'result' => 'error', 'code' => 110, + 'message' => JText::_('COM_PHOCADOWNLOAD_ERROR').': ', + 'details' => JTEXT::_('COM_PHOCADOWNLOAD_WARNING_INVALIDIMG')))); + }*/ + + // Files should be overwritten + if ($overwriteExistingFiles == 1) { + JFile::delete($filepathImgFinal); + } + + if(!JFile::move($filepathImgTemp, $filepathImgFinal)) { + + JFolder::delete($filepathFolderTemp); + + jexit(json_encode(array( 'jsonrpc' => '2.0', 'result' => 'error', 'code' => 109, + 'message' => JText::_('COM_PHOCADOWNLOAD_ERROR').': ', + 'details' => JTEXT::_('COM_PHOCADOWNLOAD_ERROR_UNABLE_TO_MOVE_FILE') .'
' + . JText::_('COM_PHOCADOWNLOAD_CHECK_PERMISSIONS_OWNERSHIP')))); + } + + + JFolder::delete($filepathFolderTemp); + } + + if ((int)$frontEnd > 0) { + return $file['name']; + } + + jexit(json_encode(array( 'jsonrpc' => '2.0', 'result' => 'OK', 'code' => 200, + 'message' => JText::_('COM_PHOCADOWNLOAD_SUCCESS').': ', + 'details' => JTEXT::_('COM_PHOCADOWNLOAD_FILES_UPLOADED')))); + + + } else { + // No Chunk Method + $filepathImgFinal = JPath::clean($path['orig_abs_ds'].$folder.strtolower($file['name'])); + $filepathImgFinal = JPath::clean($path['orig_abs_ds'].$folder.$file['name']); + $filepathFolderFinal = JPath::clean($path['orig_abs_ds'].$folder); + + + + if (!PhocaDownloadFileUpload::canUpload( $file, $errUploadMsg, $manager, $frontEnd, $chunkMethod, 0 )) { + jexit(json_encode(array( 'jsonrpc' => '2.0', 'result' => 'error', 'code' => 104, + 'message' => JText::_('COM_PHOCADOWNLOAD_ERROR').': ', + 'details' => JTEXT::_($errUploadMsg)))); + } + + if (JFile::exists($filepathImgFinal) && $overwriteExistingFiles == 0) { + jexit(json_encode(array( 'jsonrpc' => '2.0', 'result' => 'error', 'code' => 108, + 'message' => JText::_('COM_PHOCADOWNLOAD_ERROR').': ', + 'details' => JTEXT::_('COM_PHOCADOWNLOAD_FILE_ALREADY_EXISTS')))); + } + + + if(!JFile::upload($file['tmp_name'], $filepathImgFinal, false, true)) { + jexit(json_encode(array( 'jsonrpc' => '2.0', 'result' => 'error', 'code' => 109, + 'message' => JText::_('COM_PHOCADOWNLOAD_ERROR').': ', + 'details' => JTEXT::_('COM_PHOCADOWNLOAD_ERROR_UNABLE_TO_UPLOAD_FILE') .'
' + . JText::_('COM_PHOCADOWNLOAD_CHECK_PERMISSIONS_OWNERSHIP')))); + } + + if ((int)$frontEnd > 0) { + return $file['name']; + } + + jexit(json_encode(array( 'jsonrpc' => '2.0', 'result' => 'OK', 'code' => 200, + 'message' => JText::_('COM_PHOCADOWNLOAD_SUCCESS').': ', + 'details' => JTEXT::_('COM_PHOCADOWNLOAD_IMAGES_UPLOADED')))); + + + } + } else { + // No isset $file['name'] + jexit(json_encode(array( 'jsonrpc' => '2.0', 'result' => 'error', 'code' => 104, + 'message' => JText::_('COM_PHOCADOWNLOAD_ERROR').': ', + 'details' => JTEXT::_('COM_PHOCADOWNLOAD_ERROR_UNABLE_TO_UPLOAD_FILE')))); + } + + } + + + public static function realSingleUpload( $frontEnd = 0 ) { + + $paramsC = JComponentHelper::getParams('com_phocadownload'); + // $chunkMethod = $paramsC->get( 'multiple_upload_chunk', 0 ); + // $uploadMethod = $paramsC->get( 'multiple_upload_method', 4 ); + + $overwriteExistingFiles = $paramsC->get( 'overwrite_existing_files', 0 ); + + $app = JFactory::getApplication(); + JRequest::checkToken( 'request' ) or jexit( 'ERROR: '. JTEXT::_('COM_PHOCADOWNLOAD_INVALID_TOKEN')); + JResponse::allowCache(false); + + + $file = JRequest::getVar( 'Filedata', '', 'files', 'array' ); + $folder = JRequest::getVar( 'folder', '', '', 'path' ); + $format = JRequest::getVar( 'format', 'html', '', 'cmd'); + $return = JRequest::getVar( 'return-url', null, 'post', 'base64' );//includes field + $viewBack = JRequest::getVar( 'viewback', '', '', '' ); + $manager = JRequest::getVar( 'manager', 'file', '', 'string' ); + $tab = JRequest::getVar( 'tab', '', '', 'string' ); + $field = JRequest::getVar( 'field' ); + $errUploadMsg = ''; + $folderUrl = $folder; + $tabUrl = ''; + $component = JRequest::getVar( 'option', '', '', 'string' ); + + $path = PhocaDownloadPath::getPathSet($manager);// we use viewback to get right path + + + // In case no return value will be sent (should not happen) + if ($component != '' && $frontEnd == 0) { + $componentUrl = 'index.php?option='.$component; + } else { + $componentUrl = 'index.php'; + } + if ($tab != '') { + $tabUrl = '&tab='.(string)$tab; + } + + $ftp = JClientHelper::setCredentialsFromRequest('ftp'); + + // Make the filename safe + if (isset($file['name'])) { + $file['name'] = JFile::makeSafe($file['name']); + } + + + if (isset($folder) && $folder != '') { + $folder = $folder . DS; + } + + + // All HTTP header will be overwritten with js message + if (isset($file['name'])) { + $filepath = JPath::clean($path['orig_abs_ds'].$folder.strtolower($file['name'])); + $filepath = JPath::clean($path['orig_abs_ds'].$folder.$file['name']); + + if (!PhocaDownloadFileUpload::canUpload( $file, $errUploadMsg, $manager, $frontEnd )) { + + if ($errUploadMsg == 'COM_PHOCADOWNLOAD_WARNING_FILE_TOOLARGE') { + $errUploadMsg = JText::_($errUploadMsg) . ' ('.PhocaDownloadFileUpload::getFileSizeReadable($file['size']).')'; + } /* else if ($errUploadMsg == 'COM_PHOCADOWNLOAD_WARNING_FILE_TOOLARGE_RESOLUTION') { + $imgSize = phocadownloadImage::getImageSize($file['tmp_name']); + $errUploadMsg = JText::_($errUploadMsg) . ' ('.(int)$imgSize[0].' x '.(int)$imgSize[1].' px)'; + } */ else { + $errUploadMsg = JText::_($errUploadMsg); + } + + + if ($return) { + $app->enqueueMessage( $errUploadMsg, 'error'); + $app->redirect(base64_decode($return).'&manager='.(string)$manager.'&folder='.$folderUrl); + exit; + } else { + $app->enqueueMessage( $errUploadMsg, 'error'); + $app->redirect($componentUrl, $errUploadMsg); + exit; + } + } + + if (JFile::exists($filepath) && $overwriteExistingFiles == 0) { + if ($return) { + $app->redirect(base64_decode($return).'&manager='.(string)$manager.'&folder='.$folderUrl, JText::_('COM_PHOCADOWNLOAD_FILE_ALREADY_EXISTS'), 'error'); + exit; + } else { + $app->enqueueMessage( JText::_('COM_PHOCADOWNLOAD_FILE_ALREADY_EXISTS'), 'error'); + $app->redirect($componentUrl); + exit; + } + } + + if (!JFile::upload($file['tmp_name'], $filepath, false, true)) { + if ($return) { + $app->enqueueMessage( JText::_('COM_PHOCADOWNLOAD_ERROR_UNABLE_TO_UPLOAD_FILE'), 'error'); + $app->redirect(base64_decode($return).'&manager='.(string)$manager.'&folder='.$folderUrl); + exit; + } else { + $app->enqueueMessage( JText::_('COM_PHOCADOWNLOAD_ERROR_UNABLE_TO_UPLOAD_FILE'), 'error'); + $app->redirect($componentUrl); + exit; + } + } else { + + if ((int)$frontEnd > 0) { + return $file['name']; + } + + if ($return) { + $app->enqueueMessage( JText::_('COM_PHOCADOWNLOAD_SUCCESS_FILE_UPLOAD')); + $app->redirect(base64_decode($return).'&manager='.(string)$manager.'&folder='.$folderUrl); + exit; + } else { + $app->enqueueMessage( JText::_('COM_PHOCADOWNLOAD_SUCCESS_FILE_UPLOAD')); + $app->redirect($componentUrl); + exit; + } + } + } else { + $msg = JText::_('COM_PHOCADOWNLOAD_ERROR_UNABLE_TO_UPLOAD_FILE'); + if ($return) { + $app->enqueueMessage( $msg, 'error'); + $app->redirect(base64_decode($return).'&manager='.(string)$manager.'&folder='.$folderUrl); + exit; + } else { + if($viewBack != '') { + $group = PhocaDownloadSettings::getManagerGroup($manager); + $link = 'index.php?option=com_phocadownload&view=phocadownloadmanager&manager='.(string)$manager + .str_replace('&', '&', $group['c']).'&'.$tabUrl.'&folder='.$folder.'&field='.$field; + $app->enqueueMessage( $msg, 'error'); + $app->redirect($link); + } else { + $app->enqueueMessage( $msg, 'error'); + $app->redirect('index.php?option=com_phocadownload'); + } + + } + } + + } + + + + public static function canUpload( $file, &$err, $manager = '', $frontEnd = 0, $chunkEnabled = 0, $realSize = 0) { + + $paramsC = JComponentHelper::getParams( 'com_phocadownload' ); + + if ($frontEnd == 1) { + $aft = $paramsC->get( 'allowed_file_types_upload', PhocaDownloadSettings::getDefaultAllowedMimeTypesUpload() ); + $dft = $paramsC->get( 'disallowed_file_types_upload', '' ); + $allowedMimeType = PhocaDownloadFile::getMimeTypeString($aft); + $disallowedMimeType = PhocaDownloadFile::getMimeTypeString($dft); + + $ignoreUploadCh = 0; + $ignoreUploadCheck = $params->get( 'ignore_file_types_check', 2 ); + if ($ignoreUploadCheck == 1 || $ignoreUploadCheck == 4 ) { + $ignoreUploadCh = 1; + } + + } else { + + $aft = $paramsC->get( 'allowed_file_types_download', PhocaDownloadSettings::getDefaultAllowedMimeTypesDownload() ); + $dft = $paramsC->get( 'disallowed_file_types_download', '' ); + $allowedMimeType = PhocaDownloadFile::getMimeTypeString($aft); + $disallowedMimeType = PhocaDownloadFile::getMimeTypeString($dft); + + $ignoreUploadCh = 0; + $ignoreUploadCheck = $paramsC->get( 'ignore_file_types_check', 2 ); + if ($ignoreUploadCheck == 5 || $ignoreUploadCheck == 5 ) { + $ignoreUploadCh = 1; + } + } + + + + $paramsL = array(); + $group = PhocaDownloadSettings::getManagerGroup($manager); + if ($group['f'] == 2) { + $paramsL['upload_extensions'] = 'gif,jpg,png,jpeg'; + $paramsL['image_extensions'] = 'gif,jpg,png,jpeg'; + $paramsL['upload_mime'] = 'image/jpeg,image/gif,image/png'; + $paramsL['upload_mime_illegal'] ='application/x-shockwave-flash,application/msword,application/excel,application/pdf,application/powerpoint,text/plain,application/x-zip,text/html'; + $paramsL['upload_ext_illegal'] = $disallowedMimeType['ext']; + } else { + $paramsL['upload_extensions'] = $allowedMimeType['ext']; + $paramsL['image_extensions'] = 'bmp,gif,jpg,png,jpeg'; + $paramsL['upload_mime'] = $allowedMimeType['mime']; + $paramsL['upload_mime_illegal'] = $disallowedMimeType['mime']; + $paramsL['upload_ext_illegal'] = $disallowedMimeType['ext']; + } + + + // The file doesn't exist + if(empty($file['name'])) { + $err = 'COM_PHOCADOWNLOAD_WARNING_INPUT_FILE_UPLOAD'; + return false; + } + // Not safe file + jimport('joomla.filesystem.file'); + if ($file['name'] !== JFile::makesafe($file['name'])) { + $err = 'COM_PHOCADOWNLOAD_WARNFILENAME'; + return false; + } + + $format = strtolower(JFile::getExt($file['name'])); + if ($ignoreUploadCh == 1) { + + } else { + + $allowable = explode( ',', $paramsL['upload_extensions']); + $notAllowable = explode( ',', $paramsL['upload_ext_illegal']); + if(in_array($format, $notAllowable)) { + $err = 'COM_PHOCADOWNLOAD_WARNFILETYPE_DISALLOWED'; + return false; + } + + + //if (!in_array($format, $allowable)) { + if ($format == '' || $format == false || (!in_array($format, $allowable))) { + $err = 'COM_PHOCADOWNLOAD_WARNFILETYPE_NOT_ALLOWED'; + return false; + } + } + + + // Max size of image + // If chunk method is used, we need to get computed size + $maxSize = $paramsC->get( 'upload_maxsize', 3145728 ); + if ((int)$frontEnd > 0) { + $maxSize = $paramsC->get( 'user_file_upload_size', 3145728 ); + } else { + $maxSize = $paramsC->get( 'upload_maxsize', 3145728 ); + } + + if ($chunkEnabled == 1) { + if ((int)$maxSize > 0 && (int)$realSize > (int)$maxSize) { + $err = 'COM_PHOCADOWNLOAD_WARNFILETOOLARGE'; + + return false; + } + } else { + if ((int)$maxSize > 0 && (int)$file['size'] > (int)$maxSize) { + $err = 'COM_PHOCADOWNLOAD_WARNFILETOOLARGE'; + + return false; + } + } + + + // User (only in ucp) - Check the size of all files by users + if ($frontEnd == 2) { + $user = JFactory::getUser(); + $maxUserUploadSize = (int)$paramsC->get( 'user_files_max_size', 20971520 ); + $maxUserUploadCount = (int)$paramsC->get( 'user_files_max_count', 5 ); + $allFile = PhocaDownloadUser:: getUserFileInfo($file, $user->id); + + if ($chunkEnabled == 1) { + $fileSize = $realSize; + } else { + $fileSize = $file['size']; + } + + if ((int)$maxUserUploadSize > 0 && (int) $allFile['size'] > $maxUserUploadSize) { + $err = JText::_('COM_PHOCADOWNLOAD_WARNUSERFILESTOOLARGE'); + return false; + } + + if ((int) $allFile['count'] > $maxUserUploadCount) { + $err = JText::_('COM_PHOCADOWNLOAD_WARNUSERFILESTOOMUCH'); + return false; + } + } + + + + + // Image check + $imginfo = null; + $images = explode( ',', $paramsL['image_extensions']); + + if(in_array($format, $images)) { // if its an image run it through getimagesize + + $group = PhocaDownloadSettings::getManagerGroup($manager); + if($group['i'] == 1) { + if ($chunkEnabled != 1) { + if(($imginfo = getimagesize($file['tmp_name'])) === FALSE) { + $err = 'COM_PHOCADOWNLOAD_WARNINVALIDIMG'; + $err = $imginfo[0]; + return false; + } + } + } + } else if(!in_array($format, $images)) { // if its not an image...and we're not ignoring it + $allowed_mime = explode(',', $paramsL['upload_mime']); + $illegal_mime = explode(',', $paramsL['upload_mime_illegal']); + if(function_exists('finfo_open')) {// We have fileinfo + $finfo = finfo_open(FILEINFO_MIME); + $type = finfo_file($finfo, $file['tmp_name']); + if(strlen($type) && !in_array($type, $allowed_mime) && in_array($type, $illegal_mime)) { + $err = 'COM_PHOCADOWNLOAD_WARNINVALIDMIME'; + return false; + } + finfo_close($finfo); + } else if(function_exists('mime_content_type')) { // we have mime magic + $type = mime_content_type($file['tmp_name']); + if(strlen($type) && !in_array($type, $allowed_mime) && in_array($type, $illegal_mime)) { + $err = 'COM_PHOCADOWNLOAD_WARNINVALIDMIME'; + return false; + } + } + } + + // XSS Check + $xss_check = JFile::read($file['tmp_name'],false,256); + $html_tags = PhocaDownloadSettings::getHTMLTagsUpload(); + foreach($html_tags as $tag) { // A tag is '' + if(stristr($xss_check, '<'.$tag.' ') || stristr($xss_check, '<'.$tag.'>')) { + $err = 'COM_PHOCADOWNLOAD_WARNIEXSS'; + return false; + } + } + + return true; + } + + + public static function renderFTPaccess() { + + $ftpOutput = '
' + .''. JText::_('COM_PHOCADOWNLOAD_FTP_LOGIN_LABEL').'' + .JText::_('COM_PHOCADOWNLOAD_FTP_LOGIN_DESC') + .'' + .'' + .'' + .'' + .'' + .'' + .'' + .'' + .'
'; + return $ftpOutput; + } + + public static function renderCreateFolder($sessName, $sessId, $currentFolder, $viewBack, $attribs = '') { + + if ($attribs != '') { + $attribs = '&'.$attribs; + } + + $folderOutput = '
'."\n" + + .'

'.JText::_('COM_PHOCADOWNLOAD_FOLDER').'

'."\n" + .'
' + .'' + .'' + .' ' + .'
'."\n" + .JHTML::_( 'form.token' ) + .'
'; + return $folderOutput; + } +} +?> \ No newline at end of file diff --git a/packages/phocadownload/administrator/components/com_phocadownload/libraries/phocadownload/file/fileuploadmultiple.php b/packages/phocadownload/administrator/components/com_phocadownload/libraries/phocadownload/file/fileuploadmultiple.php new file mode 100644 index 00000000..64053140 --- /dev/null +++ b/packages/phocadownload/administrator/components/com_phocadownload/libraries/phocadownload/file/fileuploadmultiple.php @@ -0,0 +1,288 @@ +get( 'multiple_upload_chunk', 0 ); + $uploadMethod = $paramsC->get( 'multiple_upload_method', 4 ); + + JHtml::_('behavior.framework', true);// Load it here to be sure, it is loaded before jquery + JHtml::_('jquery.framework', false);// Load it here because of own nonConflict method (nonconflict is set below) + $document = JFactory::getDocument(); + // No more used - - - - - + //$document->addScript(JURI::root(true).'/components/com_phocadownload/assets/jquery/jquery-1.6.4.min.js');//USE SYSTEM + //$nC = 'var pgJQ = jQuery.noConflict();';//SET BELOW + //$document->addScriptDeclaration($nC);//SET BELOW + // - - - - - - - - - - - - + + //$document->addScript(JURI::root(true).'/components/com_phocadownload/assets/plupload/jquery.ui.plupload/jquery.ui.plupload.js'); + + if ($uploadMethod == 2) { + //$document->addScript(JURI::root(true).'/components/com_phocadownload/assets/plupload/plupload.gears.js'); + } + if ($uploadMethod == 5) { + //$document->addScript(JURI::root(true).'/components/com_phocadownload/assets/plupload/plupload.browserplus.js'); + } + $document->addScript(JURI::root(true).'/components/com_phocadownload/assets/plupload/plupload.js'); + if ($uploadMethod == 2) { + $document->addScript(JURI::root(true).'/components/com_phocadownload/assets/plupload/plupload.gears.js'); + } + if ($uploadMethod == 3) { + $document->addScript(JURI::root(true).'/components/com_phocadownload/assets/plupload/plupload.silverlight.js'); + } + if ($uploadMethod == 1) { + $document->addScript(JURI::root(true).'/components/com_phocadownload/assets/plupload/plupload.flash.js'); + } + if ($uploadMethod == 5) { + $document->addScript(JURI::root(true).'/components/com_phocadownload/assets/plupload/plupload.browserplus.js'); + } + if ($uploadMethod == 6) { + $document->addScript(JURI::root(true).'/components/com_phocadownload/assets/plupload/plupload.html4.js'); + } + if ($uploadMethod == 4) { + $document->addScript(JURI::root(true).'/components/com_phocadownload/assets/plupload/plupload.html5.js'); + } + $document->addScript(JURI::root(true).'/components/com_phocadownload/assets/plupload/jquery.plupload.queue/jquery.plupload.queue.js'); + JHTML::stylesheet( 'components/com_phocadownload/assets/plupload/jquery.plupload.queue/css/jquery.plupload.queue.css' ); + } + + public static function getMultipleUploadSizeFormat($size) { + $readableSize = PhocaDownloadFile::getFileSizeReadable($size, '%01.0f %s', 1); + + $readableSize = str_replace(' ', '', $readableSize); + + $readableSize = strtolower($readableSize); + return $readableSize; + } + + public function renderMultipleUploadJS($frontEnd = 0, $chunkMethod = 0) { + + $document = JFactory::getDocument(); + + switch ($this->method) { + case 2: + $name = 'gears_uploader'; + $runtime = 'gears'; + break; + case 3: + $name = 'silverlight_uploader'; + $runtime = 'silverlight'; + break; + case 4: + $name = 'html5_uploader'; + $runtime = 'html5'; + break; + + case 5: + $name = 'browserplus_uploader'; + $runtime = 'browserplus'; + break; + + case 6: + $name = 'html4_uploader'; + $runtime = 'html4'; + break; + + case 1: + default: + $name = 'flash_uploader'; + $runtime = 'flash'; + break; + } + + $chunkEnabled = 0; + // Chunk only if is enabled and only if flash is enabled + if (($chunkMethod == 1 && $this->method == 1) || ($this->frontEnd == 0 && $chunkMethod == 0 && $this->method == 1)) { + $chunkEnabled = 1; + } + + $this->url = str_replace('&', '&', $this->url); + $this->reload = str_replace('&', '&', $this->reload); + + + $js = 'var pgJQ = jQuery.noConflict();'; + + $js .='pgJQ(function() {'."\n"; + + $js.=''."\n"; + $js.=' plupload.addI18n({'."\n"; + $js.=' \'Select files\' : \''.addslashes(JText::_('COM_PHOCADOWNLOAD_SELECT_FILES')).'\','."\n"; + $js.=' \'Add files to the upload queue and click the start button.\' : \''.addslashes(JText::_('COM_PHOCADOWNLOAD_ADD_FILES_TO_UPLOAD_QUEUE_AND_CLICK_START_BUTTON')).'\','."\n"; + $js.=' \'Filename\' : \''.addslashes(JText::_('COM_PHOCADOWNLOAD_FILENAME')).'\','."\n"; + $js.=' \'Status\' : \''.addslashes(JText::_('COM_PHOCADOWNLOAD_STATUS')).'\','."\n"; + $js.=' \'Size\' : \''.addslashes(JText::_('COM_PHOCADOWNLOAD_SIZE')).'\','."\n"; + $js.=' \'Add files\' : \''.addslashes(JText::_('COM_PHOCADOWNLOAD_ADD_FILES')).'\','."\n"; + $js.=' \'Start upload\':\''.addslashes(JText::_('COM_PHOCADOWNLOAD_START_UPLOAD')).'\','."\n"; + $js.=' \'Stop current upload\' : \''.addslashes(JText::_('COM_PHOCADOWNLOAD_STOP_CURRENT_UPLOAD')).'\','."\n"; + $js.=' \'Start uploading queue\' : \''.addslashes(JText::_('COM_PHOCADOWNLOAD_START_UPLOADING_QUEUE')).'\','."\n"; + $js.=' \'Drag files here.\' : \''.addslashes(JText::_('COM_PHOCADOWNLOAD_DRAG_FILES_HERE')).'\''."\n"; + $js.=' });'; + $js.=''."\n"; + + + $js.=' pgJQ("#'.$name.'").pluploadQueue({'."\n"; + $js.=' runtimes : \''.$runtime.'\','."\n"; + $js.=' url : \''.$this->url.'\','."\n"; + //$js.=' max_file_size : \''.$this->maxFileSize.'\','."\n"; + + if ($this->maxFileSize != '0b') { + $js.=' max_file_size : \''.$this->maxFileSize.'\','."\n"; + } + + if ($chunkEnabled == 1) { + $js.=' chunk_size : \'1mb\','."\n"; + } + $js.=' preinit: attachCallbacks,'."\n"; + $js.=' unique_names : false,'."\n"; + $js.=' multipart: true,'."\n"; + $js.=' filters : ['."\n"; + //$js.=' {title : "'.JText::_('COM_PHOCADOWNLOAD_IMAGE_FILES').'", extensions : "jpg,gif,png"}'."\n"; + //$js.=' {title : "Zip files", extensions : "zip"}'."\n"; + $js.=' ],'."\n"; + $js.=''."\n"; + /*if ($this->method != 6) { + if ((int)$this->imageWidth > 0 || (int)$this->imageWidth > 0) { + $js.=' resize : {width : '.$this->imageWidth.', height : '.$this->imageHeight.', quality : '.$this->imageQuality.'},'."\n"; + $js.=''."\n"; + } + }*/ + if ($this->method == 1) { + $js.=' flash_swf_url : \''.JURI::root(true).'/components/com_phocadownload/assets/plupload/plupload.flash.swf\''."\n"; + } else if ($this->method == 3) { + $js.=' silverlight_xap_url : \''.JURI::root(true).'/components/com_phocadownload/assets/plupload/plupload.silverlight.xap\''."\n"; + } + $js.=' });'."\n"; + + $js.=''."\n"; + + $js.='function attachCallbacks(Uploader) {'."\n"; + $js.=' Uploader.bind(\'FileUploaded\', function(Up, File, Response) {'."\n"; + $js.=' var obj = eval(\'(\' + Response.response + \')\');'."\n"; + //if ($this->method == 4 || $this->method == 6) { + if ($this->method == 6) { + $js.=' var queueFiles = Uploader.total.failed + Uploader.total.uploaded;'."\n"; + $js.=' var uploaded0 = Uploader.total.uploaded;'."\n"; + } else { + $js.=' var queueFiles = Uploader.total.failed + Uploader.total.uploaded + 1;'."\n"; + $js.=' var uploaded0 = Uploader.total.uploaded + 1;'."\n"; + } + $js.=''."\n"; + $js.=' if ((typeof(obj.result) != \'undefined\') && obj.result == \'error\') {'."\n"; + $js.=' '."\n"; + if ($this->method == 6) { + //$js.=' var uploaded0 = Uploader.total.uploaded;'."\n"; + } else { + //$js.=' var uploaded0 = Uploader.total.uploaded + 1;'."\n"; + } + $js.=' Up.trigger("Error", {message : obj.message, code : obj.code, details : obj.details, file: File});'."\n"; + $js.=' if( queueFiles == Uploader.files.length) {'."\n"; + if ($this->method == 6) { + $js.=' var uploaded0 = Uploader.total.uploaded;'."\n"; + } else { + $js.=' var uploaded0 = Uploader.total.uploaded;'."\n"; + } + $js.=' window.location = \''.$this->reload.'\' + \'&muuploaded=\' + uploaded0 + \'&mufailed=\' + Uploader.total.failed;'."\n"; + //$js.=' alert(\'Error\' + obj.message)'."\n"; + $js.=' }'."\n"; + $js.=' return false; '."\n"; + $js.=''."\n"; + $js.=' } else {'."\n"; + $js.=' if( queueFiles == Uploader.files.length) {'."\n"; + //$js.=' var uploaded = Uploader.total.uploaded + 1;'."\n"; + if ($this->method == 6) { + $js.=' var uploaded = Uploader.total.uploaded;'."\n"; + } else { + $js.=' var uploaded = Uploader.total.uploaded + 1;'."\n"; + } + $js.=' window.location = \''.$this->reload.'\' + \'&muuploaded=\' + uploaded + \'&mufailed=\' + Uploader.total.failed;'."\n"; + //$js.=' alert(\'OK\' + obj.message)'."\n"; + $js.=' }'."\n"; + $js.=' }'."\n"; + $js.=' });'."\n"; + $js.=' '."\n"; + $js.=' Uploader.bind(\'Error\', function(Up, ErrorObj) {'."\n"; + $js.=''."\n"; + // $js.=' if (ErrorObj.code == 100) { '."\n"; + //$js.=' pgJQ(\'#\' + ErrorObj.file.id).append(\'
\'+ ErrorObj.message + ErrorObj.details +\'
\');'."\n"; + $js.=' pgJQ(\'#\' + ErrorObj.file.id).append(\'
\'+ ErrorObj.message + ErrorObj.details +\'
\');'."\n"; + // $js.=' }'."\n"; + $js.=' }); '."\n"; + $js.='}'; + + $js.='});'."\n";// End $(function() + + $document->addScriptDeclaration($js); + } + + public function getMultipleUploadHTML($width = '', $height = '330', $mootools = 1) { + + + switch ($this->method) { + case 2: + $name = 'gears_uploader'; + $msg = JText::_('COM_PHOCADOWNLOAD_NOT_INSTALLED_GEARS'); + break; + case 3: + $name = 'silverlight_uploader'; + $msg = JText::_('COM_PHOCADOWNLOAD_NOT_INSTALLED_SILVERLIGHT'); + break; + case 4: + $name = 'html5_uploader'; + $msg = JText::_('COM_PHOCADOWNLOAD_NOT_SUPPORTED_HTML5'); + break; + + case 5: + $name = 'browserplus_uploader'; + $msg = JText::_('COM_PHOCADOWNLOAD_NOT_INSTALLED_BROWSERPLUS'); + break; + + case 6: + $name = 'html4_uploader'; + $msg = JText::_('COM_PHOCADOWNLOAD_NOT_SUPPORTED_HTML4'); + break; + + case 1: + default: + $name = 'flash_uploader'; + $msg = JText::_('COM_PHOCADOWNLOAD_NOT_INSTALLED_FLASH'); + break; + } + + $style = ''; + if ($width != '') { + $style .= 'width: '.(int)$width.'px;'; + } + if ($height != '') { + $style .= 'height: '.(int)$height.'px;'; + } + + return '
'.$msg.'
'; + + } +} +?> \ No newline at end of file diff --git a/packages/phocadownload/administrator/components/com_phocadownload/libraries/phocadownload/file/fileuploadsingle.php b/packages/phocadownload/administrator/components/com_phocadownload/libraries/phocadownload/file/fileuploadsingle.php new file mode 100644 index 00000000..e69ce4f0 --- /dev/null +++ b/packages/phocadownload/administrator/components/com_phocadownload/libraries/phocadownload/file/fileuploadsingle.php @@ -0,0 +1,39 @@ +' + .''; + + } else { + $html = '' + //.'' + .'' + .'' + .''; + } + + return $html; + + } +} +?> \ No newline at end of file diff --git a/packages/phocadownload/administrator/components/com_phocadownload/libraries/phocadownload/file/index.html b/packages/phocadownload/administrator/components/com_phocadownload/libraries/phocadownload/file/index.html new file mode 100644 index 00000000..fa6d84e8 --- /dev/null +++ b/packages/phocadownload/administrator/components/com_phocadownload/libraries/phocadownload/file/index.html @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/phocadownload/administrator/components/com_phocadownload/libraries/phocadownload/html/batch.php b/packages/phocadownload/administrator/components/com_phocadownload/libraries/phocadownload/html/batch.php new file mode 100644 index 00000000..4bcdd119 --- /dev/null +++ b/packages/phocadownload/administrator/components/com_phocadownload/libraries/phocadownload/html/batch.php @@ -0,0 +1,60 @@ +setQuery( $query ); + $data = $db->loadObjectList(); + $tree = array(); + $text = ''; + $catId= -1; + $tree = PhocaDownloadCategory::CategoryTreeOption($data, $tree, 0, $text, $catId); + + if ($category == 1) { + array_unshift($tree, JHTML::_('select.option', 0, JText::_('JLIB_HTML_ADD_TO_ROOT'), 'value', 'text')); + } + + + // Create the batch selector to change select the category by which to move or copy. + $lines = array( + '', + '
', + '', + JHTML::_( 'select.radiolist', $options, 'batch[move_copy]', '', 'value', 'text', 'm'), + '
' + ); + + return implode("\n", $lines); + } +} +?> \ No newline at end of file diff --git a/packages/phocadownload/administrator/components/com_phocadownload/libraries/phocadownload/html/grid.php b/packages/phocadownload/administrator/components/com_phocadownload/libraries/phocadownload/html/grid.php new file mode 100644 index 00000000..738e2f10 --- /dev/null +++ b/packages/phocadownload/administrator/components/com_phocadownload/libraries/phocadownload/html/grid.php @@ -0,0 +1,30 @@ + array('disapprove', 'COM_PHOCADOWNLOAD_APPROVED', 'COM_PHOCADOWNLOAD_NOT_APPROVE_ITEM', 'COM_PHOCADOWNLOAD_APPROVED', false, 'publish', 'publish'), + 0 => array('approve', 'COM_PHOCADOWNLOAD_NOT_APPROVED', 'COM_PHOCADOWNLOAD_APPROVE_ITEM', 'COM_PHOCADOWNLOAD_NOT_APPROVED', false, 'unpublish', 'unpublish') + ); + return self::state($states, $value, $i, $prefix, $enabled, true, $checkbox); + } +} diff --git a/packages/phocadownload/administrator/components/com_phocadownload/libraries/phocadownload/html/index.html b/packages/phocadownload/administrator/components/com_phocadownload/libraries/phocadownload/html/index.html new file mode 100644 index 00000000..42682b47 --- /dev/null +++ b/packages/phocadownload/administrator/components/com_phocadownload/libraries/phocadownload/html/index.html @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/phocadownload/administrator/components/com_phocadownload/libraries/phocadownload/html/jgrid.php b/packages/phocadownload/administrator/components/com_phocadownload/libraries/phocadownload/html/jgrid.php new file mode 100644 index 00000000..6b275a2d --- /dev/null +++ b/packages/phocadownload/administrator/components/com_phocadownload/libraries/phocadownload/html/jgrid.php @@ -0,0 +1,37 @@ + array('disapprove', 'COM_PHOCADOWNLOAD_APPROVED', 'COM_PHOCADOWNLOAD_NOT_APPROVE_ITEM', 'COM_PHOCADOWNLOAD_APPROVED', false, 'publish', 'publish'), + 0 => array('approve', 'COM_PHOCADOWNLOAD_NOT_APPROVED', 'COM_PHOCADOWNLOAD_APPROVE_ITEM', 'COM_PHOCADOWNLOAD_NOT_APPROVED', false, 'unpublish', 'unpublish') + ); + return self::state($states, $value, $i, $prefix, $enabled, true, $checkbox); + } +} +?> \ No newline at end of file diff --git a/packages/phocadownload/administrator/components/com_phocadownload/libraries/phocadownload/index.html b/packages/phocadownload/administrator/components/com_phocadownload/libraries/phocadownload/index.html new file mode 100644 index 00000000..fa6d84e8 --- /dev/null +++ b/packages/phocadownload/administrator/components/com_phocadownload/libraries/phocadownload/index.html @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/phocadownload/administrator/components/com_phocadownload/libraries/phocadownload/log/index.html b/packages/phocadownload/administrator/components/com_phocadownload/libraries/phocadownload/log/index.html new file mode 100644 index 00000000..fa6d84e8 --- /dev/null +++ b/packages/phocadownload/administrator/components/com_phocadownload/libraries/phocadownload/log/index.html @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/phocadownload/administrator/components/com_phocadownload/libraries/phocadownload/log/log.php b/packages/phocadownload/administrator/components/com_phocadownload/libraries/phocadownload/log/log.php new file mode 100644 index 00000000..fed5ac9b --- /dev/null +++ b/packages/phocadownload/administrator/components/com_phocadownload/libraries/phocadownload/log/log.php @@ -0,0 +1,68 @@ +get('enable_logging', 0); + // No Logging + if ($logging == 0) { + return false; + } + + // Only Downloads + if ($logging == 1 && $type == 2) { + return false; + } + + // Only Uploads + if ($logging == 2 && $type == 1) { + return false; + } + + + $user = JFactory::getUser(); + $uri = JFactory::getURI(); + $db = JFactory::getDBO(); + + $row = JTable::getInstance('PhocaDownloadLogging', 'Table'); + $data = array(); + $data['type'] = (int)$type; + $data['fileid'] = (int)$fileid; + $data['catid'] = 0;// Don't stored catid, bind the catid while displaying log + $data['userid'] = (int)$user->id; + $data['ip'] = $_SERVER["REMOTE_ADDR"]; + $data['page'] = $uri->toString(); + + + if (!$row->bind($data)) { + $this->setError($db->getErrorMsg()); + return false; + } + + $jnow = JFactory::getDate(); + $row->date = $jnow->toSql(); + + if (!$row->check()) { + $this->setError($db->getErrorMsg()); + return false; + } + + if (!$row->store()) { + $this->setError($db->getErrorMsg()); + return false; + } + return true; + } +} +?> \ No newline at end of file diff --git a/packages/phocadownload/administrator/components/com_phocadownload/libraries/phocadownload/mail/index.html b/packages/phocadownload/administrator/components/com_phocadownload/libraries/phocadownload/mail/index.html new file mode 100644 index 00000000..fa6d84e8 --- /dev/null +++ b/packages/phocadownload/administrator/components/com_phocadownload/libraries/phocadownload/mail/index.html @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/phocadownload/administrator/components/com_phocadownload/libraries/phocadownload/mail/mail.php b/packages/phocadownload/administrator/components/com_phocadownload/libraries/phocadownload/mail/mail.php new file mode 100644 index 00000000..7591c091 --- /dev/null +++ b/packages/phocadownload/administrator/components/com_phocadownload/libraries/phocadownload/mail/mail.php @@ -0,0 +1,83 @@ +getCfg( 'sitename' ); + $mailfrom = $app->getCfg( 'mailfrom' ); + $fromname = $sitename; + $date = JHTML::_('date', gmdate('Y-m-d H:i:s'), JText::_( 'DATE_FORMAT_LC2' )); + $user = JFactory::getUser(); + $params = $app->getParams(); + + if (isset($user->name) && $user->name != '') { + $name = $user->name; + } else { + $name = JText::_('COM_PHOCADOWNLOAD_ANONYMOUS'); + } + if (isset($user->username) && $user->username != '') { + $userName = ' ('.$user->username.')'; + } else { + $userName = ''; + } + + if ($method == 1) { + $subject = $sitename. ' - ' . JText::_( 'COM_PHOCADOWNLOAD_FILE_DOWNLOADED' ); + $title = JText::_( 'COM_PHOCADOWNLOAD_FILE_DOWNLOADED' ); + $messageText = JText::_( 'COM_PHOCADOWNLOAD_FILE') . ' "' .$fileName . '" '.JText::_('COM_PHOCADOWNLOAD_WAS_DOWNLOADED_BY'). ' '.$name . $userName.'.'; + } else { + $subject = $sitename. ' - ' . JText::_( 'COM_PHOCADOWNLOAD_SUCCESS_FILE_UPLOADED' ); + $title = JText::_( 'COM_PHOCADOWNLOAD_SUCCESS_NEW_FILE_UPLOADED' ); + $messageText = JText::_( 'COM_PHOCADOWNLOAD_FILE') . ' "' .$fileName . '" '.JText::_('COM_PHOCADOWNLOAD_WAS_UPLOADED_BY'). ' '.$name . $userName.'.'; + } + + //get all super administrator + $query = 'SELECT name, email, sendEmail' . + ' FROM #__users' . + ' WHERE id = '.(int)$id . + ' ORDER BY id'; + $db->setQuery( $query ); + $rows = $db->loadObjectList(); + + if (isset($rows[0]->email)) { + $email = $rows[0]->email; + } + + + $message = $title . "\n\n" + . JText::_( 'COM_PHOCADOWNLOAD_WEBSITE' ) . ': '. $sitename . "\n" + . JText::_( 'COM_PHOCADOWNLOAD_DATE' ) . ': '. $date . "\n" + . 'IP: ' . $_SERVER["REMOTE_ADDR"]. "\n\n" + . JText::_( 'COM_PHOCADOWNLOAD_MESSAGE' ) . ': '."\n" + . "\n\n" + . $messageText + . "\n\n" + . JText::_( 'COM_PHOCADOWNLOAD_REGARDS' ) .", \n" + . $sitename ."\n"; + + $subject = html_entity_decode($subject, ENT_QUOTES); + $message = html_entity_decode($message, ENT_QUOTES); + + $mail = JFactory::getMailer(); + $mail->sendMail($mailfrom, $fromname, $email, $subject, $message); + return true; + } +} +?> \ No newline at end of file diff --git a/packages/phocadownload/administrator/components/com_phocadownload/libraries/phocadownload/ordering/index.html b/packages/phocadownload/administrator/components/com_phocadownload/libraries/phocadownload/ordering/index.html new file mode 100644 index 00000000..fa6d84e8 --- /dev/null +++ b/packages/phocadownload/administrator/components/com_phocadownload/libraries/phocadownload/ordering/index.html @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/phocadownload/administrator/components/com_phocadownload/libraries/phocadownload/ordering/ordering.php b/packages/phocadownload/administrator/components/com_phocadownload/libraries/phocadownload/ordering/ordering.php new file mode 100644 index 00000000..246458bc --- /dev/null +++ b/packages/phocadownload/administrator/components/com_phocadownload/libraries/phocadownload/ordering/ordering.php @@ -0,0 +1,152 @@ + JText::_('COM_PHOCADOWNLOAD_ORDERING_ASC'), + 2 => JText::_('COM_PHOCADOWNLOAD_ORDERING_DESC'), + 3 => JText::_('COM_PHOCADOWNLOAD_TITLE_ASC'), + 4 => JText::_('COM_PHOCADOWNLOAD_TITLE_DESC'), + 5 => JText::_('COM_PHOCADOWNLOAD_DATE_ASC'), + 6 => JText::_('COM_PHOCADOWNLOAD_DATE_DESC'), + //7 => JText::_('COM_PHOCADOWNLOAD_ID_ASC'), + //8 => JText::_('COM_PHOCADOWNLOAD_ID_DESC'), + 11 => JText::_('COM_PHOCADOWNLOAD_FILENAME_ASC'), + 12 => JText::_('COM_PHOCADOWNLOAD_FILENAME_DESC'), + + 15 => JText::_('COM_PHOCADOWNLOAD_COUNT_ASC'), + 16 => JText::_('COM_PHOCADOWNLOAD_COUNT_DESC'), + 13 => JText::_('COM_PHOCADOWNLOAD_AVERAGE_ASC'), + 14 => JText::_('COM_PHOCADOWNLOAD_AVERAGE_DESC'), + 9 => JText::_('COM_PHOCADOWNLOAD_DOWNLOADS_ASC'), + 10 => JText::_('COM_PHOCADOWNLOAD_DOWNLOADS_DESC')); + return $imgOrdering; + } + + public static function getOrderingCategoryArray() { + $imgOrdering = array( + 1 => JText::_('COM_PHOCADOWNLOAD_ORDERING_ASC'), + 2 => JText::_('COM_PHOCADOWNLOAD_ORDERING_DESC'), + 3 => JText::_('COM_PHOCADOWNLOAD_TITLE_ASC'), + 4 => JText::_('COM_PHOCADOWNLOAD_TITLE_DESC'), + 5 => JText::_('COM_PHOCADOWNLOAD_DATE_ASC'), + 6 => JText::_('COM_PHOCADOWNLOAD_DATE_DESC'), + //7 => JText::_('COM_PHOCADOWNLOAD_ID_ASC'), + //8 => JText::_('COM_PHOCADOWNLOAD_ID_DESC'), + 11 => JText::_('COM_PHOCADOWNLOAD_COUNT_ASC'), + 12 => JText::_('COM_PHOCADOWNLOAD_COUNT_DESC'), + 13 => JText::_('COM_PHOCADOWNLOAD_AVERAGE_ASC'), + 14 => JText::_('COM_PHOCADOWNLOAD_AVERAGE_DESC'), + 15 => JText::_('COM_PHOCADOWNLOAD_HITS_ASC'), + 16 => JText::_('COM_PHOCADOWNLOAD_HITS_DESC')); + return $imgOrdering; + } +} +?> \ No newline at end of file diff --git a/packages/phocadownload/administrator/components/com_phocadownload/libraries/phocadownload/pagination/index.html b/packages/phocadownload/administrator/components/com_phocadownload/libraries/phocadownload/pagination/index.html new file mode 100644 index 00000000..fa6d84e8 --- /dev/null +++ b/packages/phocadownload/administrator/components/com_phocadownload/libraries/phocadownload/pagination/index.html @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/phocadownload/administrator/components/com_phocadownload/libraries/phocadownload/pagination/pagination.php b/packages/phocadownload/administrator/components/com_phocadownload/libraries/phocadownload/pagination/pagination.php new file mode 100644 index 00000000..2a2edad2 --- /dev/null +++ b/packages/phocadownload/administrator/components/com_phocadownload/libraries/phocadownload/pagination/pagination.php @@ -0,0 +1,40 @@ +get( 'pagination', '5,10,15,20,50,100' ); + $paginationArray = explode( ',', $pagination ); + + // Initialize variables + $limits = array (); + + foreach ($paginationArray as $paginationValue) { + $limits[] = JHTML::_('select.option', $paginationValue); + } + $limits[] = JHTML::_('select.option', '0', JText::_('COM_PHOCADOWNLOAD_ALL')); + + $selected = $this->viewall ? 0 : $this->limit; + + // Build the select list + if ($app->isAdmin()) { + $html = JHTML::_('select.genericlist', $limits, 'limit', 'class="inputbox" size="1" onchange="submitform();"', 'value', 'text', $selected); + } else { + $html = JHTML::_('select.genericlist', $limits, 'limit', 'class="inputbox input-mini" size="1" onchange="this.form.submit()"', 'value', 'text', $selected); + } + return $html; + } + +} +?> \ No newline at end of file diff --git a/packages/phocadownload/administrator/components/com_phocadownload/libraries/phocadownload/path/index.html b/packages/phocadownload/administrator/components/com_phocadownload/libraries/phocadownload/path/index.html new file mode 100644 index 00000000..fa6d84e8 --- /dev/null +++ b/packages/phocadownload/administrator/components/com_phocadownload/libraries/phocadownload/path/index.html @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/phocadownload/administrator/components/com_phocadownload/libraries/phocadownload/path/path.php b/packages/phocadownload/administrator/components/com_phocadownload/libraries/phocadownload/path/path.php new file mode 100644 index 00000000..48a2641b --- /dev/null +++ b/packages/phocadownload/administrator/components/com_phocadownload/libraries/phocadownload/path/path.php @@ -0,0 +1,88 @@ +get( 'download_folder', 'phocadownload' ); + $downloadFolderPap = $paramsC->get( 'download_folder_pap', 'phocadownloadpap' ); + // Absolute path which can be outside public_html - if this will be set, download folder will be ignored + $absolutePath = $paramsC->get( 'absolute_path', '' ); + + // Path of preview and play + $downloadFolderPap = JPath::clean($downloadFolderPap); + $path['orig_abs_pap'] = JPATH_ROOT . DS . $downloadFolderPap; + $path['orig_abs_pap_ds'] = $path['orig_abs_pap'] . DS ; + + if ($group['f'] == 2) { + // Images + $path['orig_abs'] = JPATH_ROOT . DS . 'images' . DS . 'phocadownload' ; + $path['orig_abs_ds'] = $path['orig_abs'] . DS ; + $path['orig_abs_user_upload'] = $path['orig_abs'] . DS . 'userupload' ; + $path['orig_abs_user_upload_pap']= $path['orig_abs_pap'] . DS . 'userupload' ; + $path['orig_rel_ds'] = '../images/phocadownload/'; + } else if ($group['f'] == 3) { + // Play and Preview + $path['orig_abs'] = $path['orig_abs_pap']; + $path['orig_abs_ds'] = $path['orig_abs_pap_ds']; + $path['orig_abs_user_upload'] = $path['orig_abs'] . DS . 'userupload' ; + $path['orig_abs_user_upload_pap']= $path['orig_abs_pap'] . DS . 'userupload' ; + $path['orig_rel_ds'] = '../'.str_replace('/', DS, JPath::clean($downloadFolderPap)).'/'; + } else { + // Standard Path + if ($absolutePath != '') { + $downloadFolder = str_replace('/', DS, JPath::clean($absolutePath)); + $path['orig_abs'] = str_replace('/', DS, JPath::clean($absolutePath)); + $path['orig_abs_ds'] = JPath::clean($path['orig_abs'] . DS) ; + $path['orig_abs_user_upload'] = JPath::clean($path['orig_abs'] . DS . 'userupload') ; + $path['orig_abs_user_upload_pap']= JPath::clean($path['orig_abs_pap'] . DS . 'userupload') ; + //$downloadFolderRel = str_replace(DS, '/', JPath::clean($downloadFolder)); + $path['orig_rel_ds'] = ''; + + } else { + $downloadFolder = str_replace('/', DS, JPath::clean($downloadFolder)); + $path['orig_abs'] = JPATH_ROOT . DS . $downloadFolder ; + $path['orig_abs_ds'] = JPATH_ROOT . DS . $downloadFolder . DS ; + $path['orig_abs_user_upload'] = $path['orig_abs'] . DS . 'userupload' ; + $path['orig_abs_user_upload_pap']= $path['orig_abs_pap'] . DS . 'userupload' ; + + $downloadFolderRel = str_replace(DS, '/', JPath::clean($downloadFolder)); + $path['orig_rel_ds'] = '../' . $downloadFolderRel .'/'; + } + } + return $path; + } + + public static function getPathMedia() { + + //TODO create a singleton + $option = 'com_phocadownload'; + $instance = new StdClass(); + $baseFront = JURI::root(true); + $instance->media_css_abs = JPATH_ROOT . DS . 'media'. DS . $option . DS . 'css' . DS; + $instance->media_img_abs = JPATH_ROOT . DS . 'media'. DS . $option . DS . 'images' . DS; + $instance->media_js_abs = JPATH_ROOT . DS . 'media'. DS . $option . DS . 'js' . DS; + $instance->media_css_rel = 'media/'. $option .'/css/'; + $instance->media_img_rel = 'media/'. $option .'/images/'; + $instance->media_js_rel = 'components/'. $option .'/assets/'; + $instance->media_css_rel_full = $baseFront . '/' . $instance->media_css_rel; + $instance->media_img_rel_full = $baseFront . '/' . $instance->media_img_rel; + $instance->media_js_rel_full = $baseFront . '/' . $instance->media_js_rel; + return $instance; + + } +} +?> \ No newline at end of file diff --git a/packages/phocadownload/administrator/components/com_phocadownload/libraries/phocadownload/path/route.php b/packages/phocadownload/administrator/components/com_phocadownload/libraries/phocadownload/path/route.php new file mode 100644 index 00000000..3e33ecdf --- /dev/null +++ b/packages/phocadownload/administrator/components/com_phocadownload/libraries/phocadownload/path/route.php @@ -0,0 +1,393 @@ +getMenu(); + $active = $menu->getActive(); + + $activeId = 0; + if (isset($active->id)){ + $activeId = $active->id; + } + + $itemId = 0; + $option = $app->input->get( 'option', '', 'string' ); + $view = $app->input->get( 'view', '', 'string' ); + if ($option == 'com_phocadownload' && $view == 'category') { + if ((int)$activeId > 0) { + // 2) if there are two menu links, try to select the one active + $itemId = $activeId; + } + } + + + $needles = array( + 'categories' => '' + ); + + $link = 'index.php?option=com_phocadownload&view=categories'; + + if($item = self::_findItem($needles, 1)) { + if(isset($item->query['layout'])) { + $link .= '&layout='.$item->query['layout']; + } + + // 1) get standard item id if exists + if ((int)$itemId > 0) { + $link .= '&Itemid='.(int)$itemId; + } else if (isset($item->id)) { + $link .= '&Itemid='.(int)$item->id;; + } + + /*if (isset($item->id)) { + $link .= '&Itemid='.$item->id; + }*/ + } + return $link; + } + + public static function getCategoryRoute($catid, $catidAlias = '') { + + // TEST SOLUTION + $app = JFactory::getApplication(); + $menu = $app->getMenu(); + $active = $menu->getActive(); + $option = $app->input->get( 'option', '', 'string' ); + + $activeId = 0; + if (isset($active->id)){ + $activeId = $active->id; + } + if ((int)$activeId > 0 && $option == 'com_phocadownload') { + $needles = array( + 'category' => (int)$catid, + 'categories' => (int)$activeId + ); + } else { + $needles = array( + 'category' => (int)$catid, + 'categories' => '' + ); + } + + if ($catidAlias != '') { + $catid = $catid . ':' . $catidAlias; + } + + //Create the link + $link = 'index.php?option=com_phocadownload&view=category&id='. $catid; + + if($item = self::_findItem($needles)) { + if(isset($item->query['layout'])) { + $link .= '&layout='.$item->query['layout']; + } + if(isset($item->id)) { + $link .= '&Itemid='.$item->id; + } + }; + + return $link; + } + + public static function getCategoryRouteByTag($tagId) + { + $needles = array( + 'category' => '', + //'section' => (int) $sectionid, + 'categories' => '' + ); + + $db = JFactory::getDBO(); + + $query = 'SELECT a.id, a.title, a.link_ext, a.link_cat' + .' FROM #__phocadownload_tags AS a' + .' WHERE a.id = '.(int)$tagId; + + $db->setQuery($query, 0, 1); + $tag = $db->loadObject(); + + if (!$db->query()) { + $this->setError($db->getErrorMsg()); + return false; + } + + //Create the link + if (isset($tag->id)) { + $link = 'index.php?option=com_phocadownload&view=category&id=tag&tagid='.(int)$tag->id; + } else { + $link = 'index.php?option=com_phocadownload&view=category&id=tag&tagid=0'; + } + + if($item = self::_findItem($needles)) { + if(isset($item->query['layout'])) { + $link .= '&layout='.$item->query['layout']; + } + if(isset($item->id)) { + $link .= '&Itemid='.$item->id; + } + }; + + return $link; + } + + + public static function getFileRoute($id, $catid = 0, $idAlias = '', $catidAlias = '', $sectionid = 0, $type = 'file', $suffix = '') + { + // TEST SOLUTION + $app = JFactory::getApplication(); + $menu = $app->getMenu(); + $active = $menu->getActive(); + $option = $app->input->get( 'option', '', 'string' ); + + $activeId = 0; + if (isset($active->id)){ + $activeId = $active->id; + } + + if ((int)$activeId > 0 && $option == 'com_phocadownload') { + + $needles = array( + 'file' => (int) $id, + 'category' => (int) $catid, + 'categories' => (int)$activeId + ); + } else { + $needles = array( + 'file' => (int) $id, + 'category' => (int) $catid, + 'categories' => '' + ); + } + + if ($idAlias != '') { + $id = $id . ':' . $idAlias; + } + if ($catidAlias != '') { + $catid = $catid . ':' . $catidAlias; + } + + //Create the link + + switch ($type) + { + + + case 'play': + $link = 'index.php?option=com_phocadownload&view=play&id='. $id.'&tmpl=component'; + break; + case 'detail': + $link = 'index.php?option=com_phocadownload&view=file&id='. $id.'&tmpl=component'; + break; + case 'download': + $link = 'index.php?option=com_phocadownload&view=category&download='. $id . '&id='. $catid; + break; + default: + $link = 'index.php?option=com_phocadownload&view=file&id='. $id; + break; + + } + + if ($item = self::_findItem($needles)) { + if (isset($item->id)) { + $link .= '&Itemid='.$item->id; + } + } + + if ($suffix != '') { + $link .= '&'.$suffix; + } + + return $link; + + + } + + public static function getDownloadRoute($id, $catid, $token, $directDownload = 1) + { + $needles = array( + 'download' => '', + 'categories' => '', + 'category' => (int) $catid, + 'file' => (int) $id + ); + if ($directDownload == 1) { + $link = 'index.php?option=com_phocadownload&view=download&id='. $token.'&download=1&' . JSession::getFormToken() . '=1'; + } else { + $link = 'index.php?option=com_phocadownload&view=download&id='. $token; + } + + if($item = self::_findItem($needles)) { + if (isset($item->id)) { + $link .= '&Itemid='.$item->id; + } + } + + return $link; + } + + public static function getFeedRoute($id, $catid = 0, $sectionid = 0, $type = 'rss') + { + $needles = array( + 'categories' => '', + //'section' => (int) $sectionid, + 'category' => (int) $catid, + 'file' => (int) $id + ); + + /* + if ($idAlias != '') { + $id = $id . ':' . $idAlias; + } + if ($catidAlias != '') { + $catid = $catid . ':' . $catidAlias; + }*/ + + //Create the link + $link = 'index.php?option=com_phocadownload&view=feed&id='.$id.'&format=feed&type='.$type; + + if($item = self::_findItem($needles, 1)) { + if (isset($item->id)) { + $link .= '&Itemid='.$item->id; + } + } + return $link; + } + + public static function getGuestbookRoute($id, $title) + { + $needles = array( + 'guestbook' => (int) $id + ); + + $link = 'index.php?option=com_phocaguestbook&view=guestbook&cid='.(int)$id.'&reporttitle='.strip_tags($title).'&tmpl=component'; + + if($item = self::_findItem($needles, 1, 'com_phocaguestbook')) { + if (isset($item->id)) { + $link .= '&Itemid='.$item->id; + } + } + return $link; + } + + + + + /* + function getSectionRoute($sectionid, $sectionidAlias = '') + { + $needles = array( + 'section' => (int) $sectionid, + 'sections' => '' + ); + + if ($sectionidAlias != '') { + $sectionid = $sectionid . ':' . $sectionidAlias; + } + + //Create the link + $link = 'index.php?option=com_phocadownload&view=section&id='.$sectionid; + + if($item = self::_findItem($needles)) { + if(isset($item->query['layout'])) { + $link .= '&layout='.$item->query['layout']; + } + $link .= '&Itemid='.$item->id; + } + + return $link; + } + + function getSectionsRoute() + { + $needles = array( + 'sections' => '' + ); + + //Create the link + $link = 'index.php?option=com_phocadownload&view=sections'; + + if($item = self::_findItem($needles)) { + if(isset($item->query['layout'])) { + $link .= '&layout='.$item->query['layout']; + } + if (isset($item->id)) { + $link .= '&Itemid='.$item->id; + } + } + + return $link; + }*/ + + protected static function _findItem($needles, $notCheckId = 0, $component = 'com_phocadownload') + { + + $app = JFactory::getApplication(); + $menus = $app->getMenu('site', array()); + $items = $menus->getItems('component', $component); + + if(!$items) { + return $app->input->get('Itemid', 0, '', 'int'); + //return null; + } + + $match = null; + + + foreach($needles as $needle => $id) + { + + if ($notCheckId == 0) { + foreach($items as $item) { + if ((@$item->query['view'] == $needle) && (@$item->query['id'] == $id)) { + $match = $item; + break; + } + } + } else { + foreach($items as $item) { + if (@$item->query['view'] == $needle) { + $match = $item; + break; + } + } + } + + if(isset($match)) { + break; + } + } + + return $match; + } +} +?> diff --git a/packages/phocadownload/administrator/components/com_phocadownload/libraries/phocadownload/rate/index.html b/packages/phocadownload/administrator/components/com_phocadownload/libraries/phocadownload/rate/index.html new file mode 100644 index 00000000..fa6d84e8 --- /dev/null +++ b/packages/phocadownload/administrator/components/com_phocadownload/libraries/phocadownload/rate/index.html @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/phocadownload/administrator/components/com_phocadownload/libraries/phocadownload/rate/rate.php b/packages/phocadownload/administrator/components/com_phocadownload/libraries/phocadownload/rate/rate.php new file mode 100644 index 00000000..d8011929 --- /dev/null +++ b/packages/phocadownload/administrator/components/com_phocadownload/libraries/phocadownload/rate/rate.php @@ -0,0 +1,288 @@ +setQuery($query, 0, 1); + $votesStatistics = $db->loadObject(); + // if no count, set the average to 0 + if($votesStatistics->count == 0) { + $votesStatistics->count = (int)0; + $votesStatistics->average = (float)0; + } + + if (isset($votesStatistics->count) && isset($votesStatistics->average)) { + // Insert or update + $query = 'SELECT vs.id AS id' + .' FROM #__phocadownload_file_votes_statistics AS vs' + .' WHERE vs.fileid = '.(int) $fileid + .' ORDER BY vs.id'; + $db->setQuery($query, 0, 1); + $votesStatisticsId = $db->loadObject(); + + // Yes, there is id (UPDATE) x No, there isn't (INSERT) + if (!empty($votesStatisticsId->id)) { + + $query = 'UPDATE #__phocadownload_file_votes_statistics' + .' SET count = ' .(int)$votesStatistics->count + .' , average = ' .(float)$votesStatistics->average + .' WHERE fileid = '.(int) $fileid; + $db->setQuery($query); + + if (!$db->query()) { + $this->setError('Database Error Voting 1'); + return false; + } + + } else { + + $query = 'INSERT into #__phocadownload_file_votes_statistics' + .' (id, fileid, count, average)' + .' VALUES (null, '.(int)$fileid + .' , '.(int)$votesStatistics->count + .' , '.(float)$votesStatistics->average + .')'; + $db->setQuery($query); + + if (!$db->query()) { + $this->setError('Database Error Voting 2'); + return false; + } + + } + } else { + return false; + } + return true; + } + + public static function getVotesStatisticsFile($id) { + + $db = JFactory::getDBO(); + $query = 'SELECT vs.count AS count, vs.average AS average' + .' FROM #__phocadownload_file_votes_statistics AS vs' + .' WHERE vs.fileid = '.(int) $id + .' ORDER BY vs.fileid'; + $db->setQuery($query, 0, 1); + $votesStatistics = $db->loadObject(); + + return $votesStatistics; + } + + public static function checkUserVoteFile($fileid, $userid) { + + $db = JFactory::getDBO(); + $query = 'SELECT v.id AS id' + .' FROM #__phocadownload_file_votes AS v' + .' WHERE v.fileid = '. (int)$fileid + .' AND v.userid = '. (int)$userid + .' ORDER BY v.id'; + $db->setQuery($query, 0, 1); + $checkUserVote = $db->loadObject(); + if ($checkUserVote) { + return true; + } + return false; + } + + + public static function renderRateFile($id, $displayRating, $small = 1, $refresh = false) { + + $user = JFactory::getUser(); + $neededAccessLevels = PhocaDownloadAccess::getNeededAccessLevels(); + $access = PhocaDownloadAccess::isAccess($user->getAuthorisedViewLevels(), $neededAccessLevels); + + + if ($small == 1) { + $smallO = '-small'; + $ratio = 18; + } else { + $smallO = ''; + $ratio = 22; + } + + $o = ''; + + //.$rating['urlvote'].$amp.'controller=detail&task=rate&rating=1 + //$amp = PhocaDownloadAccess::setQuestionmarkOrAmp($rating['urlvote']); + $href = 'javascript:void(0);'; + + if ((int)$displayRating != 1) { + return ''; + } else { + + $rating['alreadyratedfile'] = self::checkUserVoteFile( (int)$id, (int)$user->id ); + + $rating['notregisteredfile'] = true; + //$rating['usernamefile'] = ''; + if ($access > 0) { + $rating['notregisteredfile'] = false; + $rating['usernamefile'] = $user->name; + } + + $rating['votescountfile'] = 0; + $rating['votesaveragefile'] = 0; + $rating['voteswidthfile'] = 0; + $votesStatistics = self::getVotesStatisticsFile((int)$id); + if (!empty($votesStatistics->count)) { + $rating['votescountfile'] = $votesStatistics->count; + } + if (!empty($votesStatistics->average)) { + $rating['votesaveragefile'] = $votesStatistics->average; + if ($rating['votesaveragefile'] > 0) { + $rating['votesaveragefile'] = round(((float)$rating['votesaveragefile'] / 0.5)) * 0.5; + $rating['voteswidthfile'] = $ratio * $rating['votesaveragefile']; + } else { + $rating['votesaveragefile'] = (int)0;// not float displaying + } + } + + // Leave message for already voted images + //$vote = JRequest::getVar('vote', 0, '', 'int'); + $voteMsg = JText::_('COM_PHOCADOWNLOAD_RATING_ALREADY_RATED_FILE'); + //if ($vote == 1) { + // $voteMsg = JText::_('COM_PHOCADOWNLOAD_ALREADY_RATED_FILE_THANKS'); + //} + + $rating['votestextimg'] = 'VOTE'; + if ((int)$rating['votescountfile'] > 1) { + $rating['votestextimg'] = 'VOTES'; + } + + $o .= '
' + . JText::_('COM_PHOCADOWNLOAD_RATING'). ': ' . $rating['votesaveragefile'] .' / ' + .$rating['votescountfile'] . ' ' . JText::_('COM_PHOCADOWNLOAD_'.$rating['votestextimg']). '  
'; + + if ($rating['alreadyratedfile']) { + $o .= '
    ' + .'
  • ' + .'
  • '; + + for ($i = 2;$i < 6;$i++) { + $o .= '
  • '; + } + $o .= '
'; + + $or ='
'.JText::_('COM_PHOCADOWNLOAD_RATING_ALREADY_RATED_FILE').'
'; + + } else if ($rating['notregisteredfile']) { + + $o .= '
    ' + .'
  • ' + .'
  • '; + + for ($i = 2;$i < 6;$i++) { + $o .= '
  • '; + } + $o .= '
'; + + $or ='
'.JText::_('COM_PHOCADOWNLOAD_ONLY_REGISTERED_LOGGED_RATE_FILE').'
'; + + } else { + + $o .= '
    ' + .'
  • ' + .'
  • 1
  • '; + + for ($i = 2;$i < 6;$i++) { + $o .= '
  • '.$i.'
  • '; + } + $o .= '
'; + + $or ='
'; + } + + + + } + + if ($refresh == true) { + return $o;//we are in Ajax, return only content of pdvoting div + } else { + return '
'.$o.'
' .$or ;//not in ajax, return the contend in div + } + + + } + + public static function renderRateFileJS($small = 1) { + + $document = JFactory::getDocument(); + $url = 'index.php?option=com_phocadownload&view=ratingfilea&task=rate&format=json&'.JSession::getFormToken().'=1'; + $urlRefresh = 'index.php?option=com_phocadownload&view=ratingfilea&task=refreshrate&small='.$small.'&format=json&'.JSession::getFormToken().'=1'; + $imgLoadingUrl = JURI::base(). 'media/com_phocadownload/images/icon-loading2.gif'; + $imgLoadingHTML = ''; + $js = ''; + $document->addCustomTag($js); + + } +} +?> \ No newline at end of file diff --git a/packages/phocadownload/administrator/components/com_phocadownload/libraries/phocadownload/render/layout.php b/packages/phocadownload/administrator/components/com_phocadownload/libraries/phocadownload/render/layout.php new file mode 100644 index 00000000..d0173af7 --- /dev/null +++ b/packages/phocadownload/administrator/components/com_phocadownload/libraries/phocadownload/render/layout.php @@ -0,0 +1,327 @@ +params = JComponentHelper::getParams('com_phocadownload'); + } + + if ($this->filePath == '') { + $this->filePath = PhocaDownloadPath::getPathSet('file'); + } + + if ($this->iconPath == '') { + $this->iconPath = PhocaDownloadPath::getPathSet('icon'); + } + + if ($this->cssImagePath == '') { + $this->cssImagePath = str_replace('../', JURI::base(true) . '/', $this->iconPath['orig_rel_ds']); + } + + if ($this->fileAbsPath == '') { + $this->fileAbsPath = $this->filePath['orig_abs_ds']; + } + } + + + public function getName($title, $filename, $preferTitle = 0) + { + + $name = $title; + $fon = $this->params->get('filename_or_name', 'filename'); + + if ($fon == 'title') { + $name = $title; + } else if ($fon == 'filename') { + $name = PhocaDownloadFile::getTitleFromFilenameWithExt($filename); + } else if ($fon == 'filenametitle') { + if ($preferTitle == 1) { + $name = $title; + } else { + // Must be solved before + $name = PhocaDownloadFile::getTitleFromFilenameWithExt($filename); + } + } + + return $name; + } + + public function getImageFileName($imageFilename, $fileName = '', $type = 1, $iconSize = 16) + { + + $name['filenamestyle'] = ''; + $name['filenamethumb'] = ''; + + if ($imageFilename != '') { + $thumbnail = false; + $thumbnail = preg_match("/phocathumbnail/i", $imageFilename); + if ($thumbnail) { + $name['filenamethumb'] = '
' + . '
'; + $name['filenamestyle'] = ''; + } else { + $name['filenamethumb'] = ''; + $name['filenamestyle'] = 'style="background: url(\'' . $this->cssImagePath . $imageFilename . '\') 0 center no-repeat;"'; + } + } else { + $file_icon_mime = $this->params->get('file_icon_mime', 1); + if ($fileName != '' && $file_icon_mime == 1) { + if ($type == 3) { // Plugin + $file_icon_size = $iconSize; + } else if ($type == 2) { + $file_icon_size = $this->params->get('file_icon_size_md', 16); + } else { + $file_icon_size = $this->params->get('file_icon_size', 16); + } + $icon = PhocaDownloadFile::getMimeTypeIcon($fileName, (int)$file_icon_size, 1); + $name['filenamethumb'] = ''; + $name['filenamestyle'] = $icon; + } + } + + + return $name; + } + + public function getFileSize($filename) + { + + $size = ''; + if ($filename != '') { + $absFile = str_replace('/', DS, JPath::clean($this->fileAbsPath . $filename)); + if (JFile::exists($absFile)) { + $size = PhocaDownloadFile::getFileSizeReadable(filesize($absFile)); + } else { + $size = ''; + } + } + + return $size; + } + + public function getProtectEmail($email) + { + + $email = str_replace('@', '[' . JText::_('COM_PHOCADOWNLOAD_AT') . ']', $email); + $email = str_replace('.', '[' . JText::_('COM_PHOCADOWNLOAD_DOT') . ']', $email); + + return $email; + } + + public function getFileDate($filename, $date) + { + + $dateO = ''; + $ddt = $this->params->get('display_date_type', 0); + if ((int)$ddt > 0) { + if ($filename != '') { + $dateO = PhocaDownloadFile::getFileTime($filename, $ddt); + } + } else { + $dateO = JHTML::Date($date, JText::_('DATE_FORMAT_LC3')); + } + + $newDate = date_create($date); + date_modify($newDate, "+1 hour"); + $newDate = date_format($newDate, "Y-m-d H:i:s"); + + $dateArray = explode(" ", $newDate); + + return $dateO . ' ' . $dateArray[1]; + } + + public function isValueEditor($text) + { + + if ($text != '' && $text != '

 

' && $text != '

 

' && $text != '

' && $text != '
') { + return true; + } + return false; + } + + public function getImageDownload($img) + { + + return ''; + } + + public function displayTags($fileId, $type = 0) + { + + $o = ''; + $db = JFactory::getDBO(); + + $query = 'SELECT a.id, a.title, a.link_ext, a.link_cat' + . ' FROM #__phocadownload_tags AS a' + . ' LEFT JOIN #__phocadownload_tags_ref AS r ON r.tagid = a.id' + . ' WHERE r.fileid = ' . (int)$fileId + . ' ORDER BY a.id'; + + $db->setQuery($query); + $fileIdObject = $db->loadObjectList(); + + if (!$db->query()) { + $this->setError($db->getErrorMsg()); + return false; + } + + $tl = $this->params->get('tags_links', 0); + + $class = ''; + if ($type == 1) { + $class = 'class="label label-default"'; + } + + foreach ($fileIdObject as $k => $v) { + $o .= ''; + if ($tl == 0) { + $o .= $v->title; + } else if ($tl == 1) { + if ($v->link_ext != '') { + $o .= '' . $v->title . ''; + } else { + $o .= $v->title; + } + } else if ($tl == 2) { + + if ($v->link_cat != '') { + $query = 'SELECT a.id, a.alias' + . ' FROM #__phocadownload_categories AS a' + . ' WHERE a.id = ' . (int)$v->link_cat + . ' ORDER BY a.id'; + + $db->setQuery($query, 0, 1); + $category = $db->loadObject(); + + if (!$db->query()) { + $this->setError($db->getErrorMsg()); + return false; + } + if (isset($category->id) && isset($category->alias)) { + $link = PhocaDownloadRoute::getCategoryRoute($category->id, $category->alias); + $o .= '' . $v->title . ''; + } else { + $o .= $v->title; + } + } else { + $o .= $v->title; + } + } else if ($tl == 3) { + $link = PhocaDownloadRoute::getCategoryRouteByTag($v->id); + $o .= '' . $v->title . ''; + } + + $o .= ' '; + } + + return $o; + } + + public function displayTagsString($string = '') + { + $o = array(); + if ($string != '') { + $sA = explode(',', $string); + if (!empty($sA)) { + foreach ($sA as $k => $v) { + + // Specific cases for Joomla! CMS + switch ($v) { + case '1.5': + $c = 'pd-j-15'; + break; + case '1.7': + $c = 'pd-j-17'; + break; + case '2.5': + $c = 'pd-j-25'; + break; + case '3.x': + $c = 'pd-j-3x'; + break; + case '3.5': + $c = 'pd-j-35'; + break; + default: + $c = 'label-default'; + break; + } + + $o[] = '' . $v . ''; + } + } + } + return implode(" ", $o); + } + + public function displayVideo($url, $view = 0, $ywidth = 0, $yheight = 0) + { + + $o = ''; + if ($url != '' && PhocaDownloadUtils::isURLAddress($url)) { + + + $ssl = strpos($url, 'https'); + $yLink = 'http://www.youtube.com/v/'; + if ($ssl != false) { + $yLink = 'https://www.youtube.com/v/'; + } + + $shortUrl = 'http://youtu.be/'; + $shortUrl2 = 'https://youtu.be/'; + $pos = strpos($url, $shortUrl); + $pos2 = strpos($url, $shortUrl2); + if ($pos !== false) { + $code = str_replace($shortUrl, '', $url); + } else if ($pos2 !== false) { + $code = str_replace($shortUrl2, '', $url); + } else { + $codeArray = explode('=', $url); + $code = str_replace($codeArray[0] . '=', '', $url); + } + + + + if ($view == 0) { + // Category View + $youtubeheight = $this->params->get('youtube_height_cv', 240); + $youtubewidth = $this->params->get('youtube_width_cv', 320); + } else { + // Detail View + $youtubeheight = $this->params->get('youtube_height_dv', 360); + $youtubewidth = $this->params->get('youtube_width_dv', 480); + } + + if ((int)$ywidth > 0) { + $youtubewidth = (int)$ywidth; + } + if ((int)$yheight > 0) { + $youtubeheight = (int)$yheight; + } + + $o .= '' + . '' + . '' + . '' + . ''; + } + return $o; + } +} diff --git a/packages/phocadownload/administrator/components/com_phocadownload/libraries/phocadownload/render/renderadmin.php b/packages/phocadownload/administrator/components/com_phocadownload/libraries/phocadownload/render/renderadmin.php new file mode 100644 index 00000000..5dbf6cac --- /dev/null +++ b/packages/phocadownload/administrator/components/com_phocadownload/libraries/phocadownload/render/renderadmin.php @@ -0,0 +1,104 @@ +' + .'' + .JHTML::_('image', $imgUrl . $image, $text ) + .'
'.$text.'
'. "\n"; + } + + public static function getLinks() { + $app = JFactory::getApplication(); + $option = $app->input->get('option'); + $oT = strtoupper($option); + + $links = array(); + switch ($option) { + + case 'com_phocadownload': + $links[] = array('Phoca Download site', 'http://www.phoca.cz/phocadownload'); + $links[] = array('Phoca Download documentation site', 'http://www.phoca.cz/documentation/category/17-phoca-download-component'); + $links[] = array('Phoca Download download site', 'http://www.phoca.cz/download/category/68-phoca-download'); + break; + + } + + $links[] = array('Phoca News', 'http://www.phoca.cz/news'); + $links[] = array('Phoca Forum', 'http://www.phoca.cz/forum'); + + $components = array(); + $components[] = array('Phoca Gallery','phocagallery', 'pg'); + $components[] = array('Phoca Guestbook','phocaguestbook', 'pgb'); + $components[] = array('Phoca Download','phocadownload', 'pd'); + $components[] = array('Phoca Documentation','phocadocumentation', 'pdc'); + $components[] = array('Phoca Favicon','phocafavicon', 'pfv'); + $components[] = array('Phoca SEF','phocasef', 'psef'); + $components[] = array('Phoca PDF','phocapdf', 'ppdf'); + $components[] = array('Phoca Restaurant Menu','phocamenu', 'prm'); + $components[] = array('Phoca Maps','phocamaps', 'pm'); + $components[] = array('Phoca Font','phocafont', 'pf'); + $components[] = array('Phoca Email','phocaemail', 'pe'); + $components[] = array('Phoca Install','phocainstall', 'pi'); + $components[] = array('Phoca Template','phocatemplate', 'pt'); + $components[] = array('Phoca Panorama','phocapanorama', 'pp'); + $components[] = array('Phoca Photo','phocaphoto', 'ph'); + $components[] = array('Phoca Commander','phocacommander', 'pcm'); + + $banners = array(); + $banners[] = array('Phoca Restaurant Menu','phocamenu', 'prm'); + + $o = ''; + $o .= '

 

'; + $o .= '

'.JText::_($oT.'_USEFUL_LINKS'). '

'; + $o .= '
    '; + foreach ($links as $k => $v) { + $o .= '
  • '.$v[0].'
  • '; + } + $o .= '
'; + + $o .= '
'; + $o .= '

 

'; + $o .= '

'.JText::_($oT.'_USEFUL_TIPS'). '

'; + + $m = mt_rand(0, 10); + if ((int)$m > 0) { + $o .= '
'; + $num = range(0,(count($components) - 1 )); + shuffle($num); + for ($i = 0; $i<3; $i++) { + $numO = $num[$i]; + $o .= ''; + } + $o .= '
'; + $o .= '
'; + } else { + $num = range(0,(count($banners) - 1 )); + shuffle($num); + $numO = $num[0]; + $o .= ''; + + } + + $o .= '

 

'; + $o .= '

'.JText::_($oT.'_PLEASE_READ'). '

'; + $o .= ''; + + $o .= '
'; + return $o; + } +} +?> \ No newline at end of file diff --git a/packages/phocadownload/administrator/components/com_phocadownload/libraries/phocadownload/render/renderadminview.php b/packages/phocadownload/administrator/components/com_phocadownload/libraries/phocadownload/render/renderadminview.php new file mode 100644 index 00000000..e6d6e163 --- /dev/null +++ b/packages/phocadownload/administrator/components/com_phocadownload/libraries/phocadownload/render/renderadminview.php @@ -0,0 +1,80 @@ +
'."\n" + .'
'."\n"; + } + + public function endForm() { + return '
'."\n".'
'."\n".''."\n"; + } + + public function formInputs() { + + return ''. "\n" + . JHtml::_('form.token'). "\n"; + } + + public function navigation($tabs) { + $o = ''; + return $o; + } + + public function group($form, $formArray, $clear = 0) { + $o = ''; + if (!empty($formArray)) { + if ($clear == 1) { + foreach ($formArray as $value) { + $o .= '
'. $form->getLabel($value) . '
'."\n" + . '
'. "\n" + . '
' . $form->getInput($value). '
'."\n"; + } + } else { + foreach ($formArray as $value) { + $o .= '
'."\n" + . '
'. $form->getLabel($value) . '
'."\n" + . '
' . $form->getInput($value). '
'."\n" + . '
' . "\n"; + } + } + } + return $o; + } + + public function item($form, $item, $suffix = '') { + $value = $o = ''; + if ($suffix != '') { + $value = $suffix; + } else { + $value = $form->getInput($item); + } + $o .= '
'."\n"; + $o .= '
'. $form->getLabel($item) . '
'."\n" + . '
' . $value.'
'."\n" + . '
' . "\n"; + return $o; + } +} +?> \ No newline at end of file diff --git a/packages/phocadownload/administrator/components/com_phocadownload/libraries/phocadownload/render/renderadminviews.php b/packages/phocadownload/administrator/components/com_phocadownload/libraries/phocadownload/render/renderadminviews.php new file mode 100644 index 00000000..a24d8e9c --- /dev/null +++ b/packages/phocadownload/administrator/components/com_phocadownload/libraries/phocadownload/render/renderadminviews.php @@ -0,0 +1,399 @@ +' . "\n" + .'Joomla.orderTable = function() {' . "\n" + .' table = document.getElementById("sortTable");' . "\n" + .' direction = document.getElementById("directionTable");' . "\n" + .' order = table.options[table.selectedIndex].value;' . "\n" + .' if (order != \''. $listOrder.'\') {' . "\n" + .' dirn = \'asc\';' . "\n" + .' } else {' . "\n" + .' dirn = direction.options[direction.selectedIndex].value;' . "\n" + .' }' . "\n" + .' Joomla.tableOrdering(order, dirn, \'\');' . "\n" + .'}' . "\n" + .'' . "\n"; + } + + public function startForm($option, $view, $id = 'adminForm', $name = 'adminForm') { + return '
'."\n"; + } + + public function endForm() { + return '
'."\n".'
'."\n"; + } + + public function startFilter($txtFilter = ''){ + $o = '
'."\n". JHtmlSidebar::render()."\n"; + + + if ($txtFilter != '') { + $o .= '
'."\n" . '
'."\n" + + . ''."\n"; + } else { + $o .= '
'; + } + + return $o; + } + + public function endFilter() { + return '
' . "\n" . '
' . "\n"; + } + + public function selectFilterPublished($txtSp, $state) { + return '
'. "\n" + .'
'. "\n"; + } + + public function selectFilterType($txtSp, $type, $typeList) { + return '
'. "\n" + .'
'. "\n"; + } + + public function selectFilterLanguage($txtLng, $state) { + return '
'. "\n" + .'
'. "\n"; + } + + public function selectFilterCategory($categoryList, $txtLng, $state) { + return '
'. "\n" + .'
'. "\n"; + } + + public function selectFilterLevels($txtLng, $state) { + $levelList = array(1 => 1, 2 => 2, 3 => 3, 4 => 4, 5 => 5); + return + '
'. "\n" + .'
'. "\n"; + } + + public function startMainContainer() { + return '
'. "\n"; + } + + public function endMainContainer() { + return '
'. "\n"; + } + + public function startFilterBar($id = 0) { + if ((int)$id > 0) { + return '
'. "\n"; + } else { + return '
'. "\n"; + } + + } + + public function endFilterBar() { + return '
' . "\n" . '
'. "\n"; + } + + public function inputFilterSearch($txtSl, $txtSd, $state) { + return ''. "\n"; + } + + /*public function inputFilterSearchClear($txtFs, $txtFc) { + return '
'. "\n" + .''. "\n" + .''. "\n" + .'
'. "\n"; + }*/ + + public function inputFilterSearchClear($txtFs, $txtFc) { + return '
'. "\n" + .''. "\n" + .''. "\n" + .'
'. "\n"; + } + + + public function inputFilterSearchLimit($txtSl, $paginationLimitBox) { + return '
'. "\n" + .''. "\n" + .$paginationLimitBox ."\n" . '
'. "\n"; + } + + public function selectFilterDirection($txtOd, $txtOasc, $txtOdesc, $listDirn) { + $ascDir = $descDir = ''; + if ($listDirn == 'asc') {$ascDir = 'selected="selected"';} + if ($listDirn == 'desc') {$descDir = 'selected="selected"';} + return '
'. "\n" + .''. "\n" + .''. "\n" + .'
'. "\n"; + } + + public function selectFilterSortBy($txtSb, $sortFields, $listOrder) { + return '
'. "\n" + .''. "\n" + .''. "\n" + .'
'. "\n"; + } + + public function startTable($id) { + return ''. "\n"; + } + + public function endTable() { + return '
'. "\n"; + } + public function tblFoot($listFooter, $columns) { + return '' . "\n" . ''.$listFooter.''. "\n".''. "\n"; + } + + public function startTblHeader() { + return ''."\n".''."\n"; + } + + public function endTblHeader() { + return ''."\n".''."\n"; + } + + public function thOrdering($txtHo, $listDirn, $listOrder ) { + return ''. "\n" + . JHtml::_('grid.sort', '', 'a.ordering', $listDirn, $listOrder, null, 'asc', $txtHo). "\n" + . ''; + } + + public function thCheck($txtCh) { + return ''. "\n" + .''. "\n" + .''. "\n"; + } + + public function tdOrder($canChange, $saveOrder, $orderkey){ + + $o = ''. "\n"; + if ($canChange) { + $disableClassName = ''; + $disabledLabel = ''; + if (!$saveOrder) { + $disabledLabel = JText::_('JORDERINGDISABLED'); + $disableClassName = 'inactive tip-top'; + } + $o .= ''."\n"; + } else { + $o .= ''."\n"; + } + $orderkeyPlus = $orderkey + 1; + $o .= ''. "\n" + .''. "\n"; + return $o; + } + + public function tdRating($ratingAvg) { + $o = ''; + $voteAvg = round(((float)$ratingAvg / 0.5)) * 0.5; + $voteAvgWidth = 16 * $voteAvg; + $o .= '
    ' + .'
  • ' + .'
  • '; + + for ($ir = 2;$ir < 6;$ir++) { + $o .= '
  • '; + } + $o .= '
'; + $o .=''. "\n"; + return $o; + } + + public function tdLanguage($lang, $langTitle, $langTitleE ) { + + $o = ''; + if ($lang == '*') { + $o .= JText::_('JALL'); + } else { + if ($langTitle) { + $o .= $langTitleE; + } else { + $o .= JText::_('JUNDEFINED');; + } + } + $o .= ''. "\n"; + return $o; + } + + /*public function formInputs($listOrder, $originalOrders) { + + return ''. "\n" + .''. "\n" + .''. "\n" + .''. "\n" + . JHtml::_('form.token'). "\n" + .''. "\n"; + }*/ + + public function formInputs($listOrder, $listDirn, $originalOrders) { + + return ''. "\n" + .''. "\n" + .''. "\n" + .''. "\n" + . JHtml::_('form.token'). "\n" + .''. "\n"; + } + + public function td($value, $class = '') { + if ($class != ''){ + return ''. $value.''. "\n"; + } else { + return ''. $value.''. "\n"; + } + } + + /* TODO: + * CHANGE PATHS + * SET NEW PARAM IN PG: '/media/com_phocagallery/images/administrator/' + */ + public function tdImage($item, $button, $txtE, $class = '', $avatarAbs = '', $avatarRel = '') { + $o = ''. "\n"; + $o .= '
'. "\n" + .'
'. "\n" + .'
'. "\n" + .'
'. "\n" + .'
'. "\n" + .'
'. "\n"; + + if ($avatarAbs != '' && $avatarRel != '') { + // AVATAR + if (JFile::exists($avatarAbs.$item->avatar)){ + $o .= '' + .''.JText::_($txtE).'' + .''; + } else { + $o .= JHTML::_( 'image', '/media/com_phocagallery/images/administrator/phoca_thumb_s_no_image.gif', ''); + } + } else { + // PICASA + if (isset($item->extid) && $item->extid !='') { + + $resW = explode(',', $item->extw); + $resH = explode(',', $item->exth); + $correctImageRes = PhocaGalleryImage::correctSizeWithRate($resW[2], $resH[2], 50, 50); + $imgLink = $item->extl; + + $o .= '' + . ''.JText::_($txtE).'' + .''. "\n"; + } else if (isset ($item->fileoriginalexist) && $item->fileoriginalexist == 1) { + + $imageRes = PhocaGalleryImage::getRealImageSize($item->filename, 'small'); + $correctImageRes = PhocaGalleryImage::correctSizeWithRate($imageRes['w'], $imageRes['h'], 50, 50); + $imgLink = PhocaGalleryFileThumbnail::getThumbnailName($item->filename, 'large'); + + $o .= '' + . ''.JText::_($txtE).'' + .''. "\n"; + } else { + $o .= JHTML::_( 'image', 'media/com_phocagallery/images/administrator/phoca_thumb_s_no_image.gif', ''); + } + } + $o .= '
'. "\n" + .'
'. "\n" + .'
'. "\n" + .'
'. "\n" + .'
'. "\n" + .'
'. "\n"; + $o .= ''. "\n"; + return $o; + } + + + public function tdPublishDownUp ($publishUp, $publishDown, $langPref) { + + $o = ''; + $db = JFactory::getDBO(); + //$app = JFactory::getApplication(); + $nullDate = $db->getNullDate(); + $now = JFactory::getDate(); + $config = JFactory::getConfig(); + $publish_up = JFactory::getDate($publishUp); + $publish_down = JFactory::getDate($publishDown); + //$tz = new DateTimeZone($config->get('offset')); + //$publish_up->setTimezone($tz); + //$publish_down->setTimezone($tz); + + + if ( $now->toUnix() <= $publish_up->toUnix() ) { + $text = JText::_( $langPref . '_PENDING' ); + } else if ( ( $now->toUnix() <= $publish_down->toUnix() || $publishDown == $nullDate ) ) { + $text = JText::_( $langPref . '_ACTIVE' ); + } else if ( $now->toUnix() > $publish_down->toUnix() ) { + $text = JText::_( $langPref . '_EXPIRED' ); + } + + $times = ''; + if (isset($publishUp)) { + if ($publishUp == $nullDate) { + $times .= JText::_( $langPref . '_START') . ': '.JText::_( $langPref . '_ALWAYS' ); + } else { + $times .= JText::_( $langPref . '_START') .": ". JHtml::_('date', $publish_up, 'D, d M Y H:i:s'); + } + } + if (isset($publishDown)) { + + if ($publishDown == $nullDate) { + $times .= "
". JText::_( $langPref . '_FINISH'). ': '. JText::_( $langPref . '_NO_EXPIRY' ); + } else { + $times .= "
". JText::_( $langPref . '_FINISH') .": ". JHtml::_('date', $publish_down, 'D, d M Y H:i:s'); + } + } + + if ( $times ) { + $o .= '' + .'' + .''. $text.'' + .''. "\n"; + } else { + $o .= ''. "\n"; + } + return $o; + } +} +?> \ No newline at end of file diff --git a/packages/phocadownload/administrator/components/com_phocadownload/libraries/phocadownload/render/renderfront.php b/packages/phocadownload/administrator/components/com_phocadownload/libraries/phocadownload/render/renderfront.php new file mode 100644 index 00000000..8b2cc83a --- /dev/null +++ b/packages/phocadownload/administrator/components/com_phocadownload/libraries/phocadownload/render/renderfront.php @@ -0,0 +1,317 @@ +input->get('Itemid', 0, 'int'); + $db = JFactory::getDBO(); + $query = 'SELECT a.filename as filename, a.type as type, a.menulink as menulink' + .' FROM #__phocadownload_styles AS a' + .' WHERE a.published = 1' + .' ORDER BY a.type, a.ordering ASC'; + $db->setQuery($query); + $filenames = $db->loadObjectList(); + if (!empty($filenames)) { + foreach ($filenames as $fk => $fv) { + + $path = PhocaDownloadFile::getCSSPath($fv->type, 1); + + if ($fv->menulink != '' && (int)$fv->menulink > 1) { + + $menuLinks = explode(',', $fv->menulink); + $isIncluded = in_array((int)$itemid, $menuLinks); + if ($isIncluded) { + JHtml::stylesheet($path . $fv->filename ); + } + } else { + JHtml::stylesheet($path . $fv->filename ); + } + } + } + } + + public static function renderPhocaDownload() { + return '
Po' + .'wered by Phoca Down'.'load
'; + } + + public static function displayMirrorLinks($view = 1, $link, $title, $target) { + + $paramsC = JComponentHelper::getParams( 'com_phocadownload' ); + $param['display_mirror_links'] = $paramsC->get( 'display_mirror_links', 0 ); + $o = ''; + + $displayM = 0; + if ($view == 1) { + //Category View + if ($param['display_mirror_links'] == 1 || $param['display_mirror_links'] == 3 + || $param['display_mirror_links'] == 4 || $param['display_mirror_links'] == 6) { + $displayM = 1; + } + + } else { + //File View + if ($param['display_mirror_links'] == 2 || $param['display_mirror_links'] == 3 + || $param['display_mirror_links'] == 5 || $param['display_mirror_links'] == 6) { + $displayM = 1; + } + } + + + + if ($displayM == 1 && $link != '' && PhocaDownloadUtils::isURLAddress($link) && $title != '') { + + $targetO = ''; + if ($target != '') { + $targetO = 'target="'.$target.'"'; + } + $o .= ''.strip_tags($title).''; + + } + + return $o; + } + + public static function displayReportLink($view = 1, $title = '') { + + $paramsC = JComponentHelper::getParams( 'com_phocadownload' ); + $param['display_report_link'] = $paramsC->get( 'display_report_link', 0 ); + $param['report_link_guestbook_id'] = $paramsC->get( 'report_link_guestbook_id', 0 ); + $o = ''; + + $displayL = 0; + if ($view == 1) { + //Category View + if ($param['display_report_link'] == 1 || $param['display_report_link'] == 3) { + $displayL = 1; + } + + } else { + //File View + if ($param['display_report_link'] == 2 || $param['display_report_link'] == 3) { + $displayL = 1; + } + } + + if ($displayL == 1 && (int)$param['report_link_guestbook_id'] > 0) { + + $onclick = "window.open(this.href,'win2','width=600,height=500,scrollbars=yes,menubar=no,resizable=yes'); return false;"; + //$href = JRoute::_('index.php?option=com_phocaguestbook&view=guestbook&id='.(int)$param['report_link_guestbook_id'].'&reporttitle='.strip_tags($title).'&tmpl=component&Itemid='. JRequest::getVar('Itemid', 0, '', 'int') ); + + $href = PhocaDownloadRoute::getGuestbookRoute((int)$param['report_link_guestbook_id'],urlencode(strip_tags($title) )); + //$href = JRoute::_('index.php?option=com_phocaguestbook&view=guestbook&id='.(int)$param['report_link_guestbook_id'].'&reporttitle='.strip_tags($title).'&tmpl=component'); + + + $o .= ''.JText::_('COM_PHOCADOWNLOAD_REPORT').''; + + } + + return $o; + } + + public static function displayNewIcon ($date, $time = 0) { + + if ($time == 0) { + return ''; + } + + $dateAdded = strtotime($date, time()); + $dateToday = time(); + $dateExists = $dateToday - $dateAdded; + $dateNew = $time * 24 * 60 * 60; + + + if ($dateExists < $dateNew) { + //return ' '. JHTML::_('image', 'media/com_phocadownload/images/icon-new.png', JText::_('COM_PHOCADOWNLOAD_NEW')); + return ' '.JText::_('COM_PHOCADOWNLOAD_NEW').''; + } else { + return ''; + } + + } + + public static function displayHotIcon ($hits, $requiredHits = 0) { + + if ($requiredHits == 0) { + return ''; + } + + if ($requiredHits <= $hits) { + //return ' '. JHTML::_('image', 'media/com_phocadownload/images/icon-hot.png', JText::_('COM_PHOCADOWNLOAD_HOT')); + return ' '.JText::_('COM_PHOCADOWNLOAD_HOT').''; + } else { + return ''; + } + } + + public static function renderOnUploadJS() { + + $tag = ""; + + return $tag; + } + + public static function renderDescriptionUploadJS($chars) { + + $tag = ""; + + return $tag; + } + + public static function userTabOrdering() { + $js = "\t". '' . "\n"; + + return $js; + } + + public static function renderOverlibCSS($ol_fg_color, $ol_bg_color, $ol_tf_color, $ol_cf_color, $opacity = 0.8) { + + $opacityPer = (float)$opacity * 100; + + $css = "\n"; + + return $css; + } + + public static function renderBootstrapModalJs($item = '.btn') { + $document = JFactory::getDocument(); + JHtml::_('jquery.framework', false); + $s = ' + jQuery(document).ready(function(){ + + jQuery("#phModalPlay").on("hidden.bs.modal", function (e) { + jQuery("#phModalPlay iframe").attr("src", jQuery("#phModalPlay iframe").attr("src")); + jQuery("audio").each(function(){this.pause();this.currentTime = 0;}); + jQuery("video").each(function(){this.pause();this.currentTime = 0;}); + }); + + + jQuery("'.$item.'").on("click", function () { + var $target = jQuery(this).data("target"); + var $href = jQuery(this).data("href"); + var $body = $target + "Body"; + var $dialog = $target + "Dialog"; + var $height = jQuery(this).data("height"); + var $width = jQuery(this).data("width"); + var $heightD= jQuery(this).data("height-dialog"); + var $widthD = jQuery(this).data("width-dialog"); + var $type = jQuery(this).data("type"); + jQuery($body).css("height", $height); + jQuery($target).css("width", $width); + jQuery($body).css("overflow-y", "auto"); + jQuery($dialog).css("height", $heightD); + jQuery($dialog).css("width", $widthD); + + + if ($type == "image") { + jQuery($body).html(\'\'); + } else if ($type == "document") { + $widthD = $widthD -50; + $heightD = $heightD -40; + jQuery($body).html(\'\'); + } else { + jQuery($body).load($href, function (response, status, xhr) { + if (status == "success") { + /*jQuery($target).modal({ show: true });*/ + } + }); + } + }); + });'; + $document->addScriptDeclaration($s); + } + + /* Launch + .. + */ + + public static function bootstrapModalHtml($item = 'phModal', $title) { + + $close = JText::_('COM_PHOCADOWNLAD_CLOSE'); + $o = ''; + + return $o; + } +} +?> \ No newline at end of file diff --git a/packages/phocadownload/administrator/components/com_phocadownload/libraries/phocadownload/stat/index.html b/packages/phocadownload/administrator/components/com_phocadownload/libraries/phocadownload/stat/index.html new file mode 100644 index 00000000..fa6d84e8 --- /dev/null +++ b/packages/phocadownload/administrator/components/com_phocadownload/libraries/phocadownload/stat/index.html @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/phocadownload/administrator/components/com_phocadownload/libraries/phocadownload/stat/stat.php b/packages/phocadownload/administrator/components/com_phocadownload/libraries/phocadownload/stat/stat.php new file mode 100644 index 00000000..8d50fcd5 --- /dev/null +++ b/packages/phocadownload/administrator/components/com_phocadownload/libraries/phocadownload/stat/stat.php @@ -0,0 +1,84 @@ +quoteName('#__phocadownload_user_stat') + .' WHERE '. $db->quoteName('userid') + .' = ' + .$db->Quote((int)$user->id) + .' AND '. $db->quoteName('fileid') + .' = ' + .$db->Quote((int)$downloadId); + + $db->setQuery($query); + $results = $db->loadObjectList(); + + $date = gmdate('Y-m-d H:i:s'); + if ($results) { + // Update count + $query = 'UPDATE '.$db->quoteName('#__phocadownload_user_stat') + .' SET count = (count + 1),' + .' date = '.$db->Quote($date) + .' WHERE userid = '.$db->Quote((int)$user->id) + .' AND fileid = '.$db->Quote((int)$downloadId); + + $db->setQuery($query); + $db->query(); + } else { + + $query = 'INSERT INTO '.$db->quoteName('#__phocadownload_user_stat') + .' ('.$db->quoteName('count').',' + .' '.$db->quoteName('userid').',' + .' '.$db->quoteName('fileid').',' + .' '.$db->quoteName('date').')' + .' VALUES ('.$db->Quote(1).',' + .' '.$db->Quote((int)$user->id).',' + .' '.$db->Quote((int)$downloadId).',' + .' '.$db->Quote($date).')'; + $db->setQuery($query); + $db->query(); + } + return true; + } + + public static function getCountFilePerUser($downloadId) { + $db = JFactory::getDBO(); + $user = JFactory::getUser(); + + $query = ' SELECT count FROM '.$db->quoteName('#__phocadownload_user_stat') + .' WHERE '. $db->quoteName('userid') + .' = ' + .$db->Quote((int)$user->id) + .' AND '. $db->quoteName('fileid') + .' = ' + .$db->Quote((int)$downloadId) + .' LIMIT 0, 1'; + + $db->setQuery($query); + $count = $db->loadObject(); + if (isset($count->count)) { + return (int)$count->count; + } else { + return 0; + } + } +} +?> \ No newline at end of file diff --git a/packages/phocadownload/administrator/components/com_phocadownload/libraries/phocadownload/tag/index.html b/packages/phocadownload/administrator/components/com_phocadownload/libraries/phocadownload/tag/index.html new file mode 100644 index 00000000..fa6d84e8 --- /dev/null +++ b/packages/phocadownload/administrator/components/com_phocadownload/libraries/phocadownload/tag/index.html @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/phocadownload/administrator/components/com_phocadownload/libraries/phocadownload/tag/tag.php b/packages/phocadownload/administrator/components/com_phocadownload/libraries/phocadownload/tag/tag.php new file mode 100644 index 00000000..80372f63 --- /dev/null +++ b/packages/phocadownload/administrator/components/com_phocadownload/libraries/phocadownload/tag/tag.php @@ -0,0 +1,103 @@ +setQuery($query); + + if (!$db->query()) { + echo PhocaDownloadException::renderErrorInfo('Database Error - Getting Selected Tags'); + return false; + } + if ($select == 1) { + $tags = $db->loadColumn(); + } else { + $tags = $db->loadObjectList(); + } + + return $tags; + } + + public static function storeTags($tagsArray, $fileId) { + + + if ((int)$fileId > 0) { + $db = JFactory::getDBO(); + $query = ' DELETE ' + .' FROM #__phocadownload_tags_ref' + . ' WHERE fileid = '. (int)$fileId; + $db->setQuery($query); + if (!$db->query()) { + echo PhocaDownloadException::renderErrorInfo('Database Error - Deleting FileId Tags'); + return false; + } + + if (!empty($tagsArray)) { + + $values = array(); + $valuesString = ''; + + foreach($tagsArray as $k => $v) { + $values[] = ' ('.(int)$fileId.', '.(int)$v.')'; + } + + if (!empty($values)) { + $valuesString = implode($values, ','); + + $query = ' INSERT INTO #__phocadownload_tags_ref (fileid, tagid)' + .' VALUES '.(string)$valuesString; + + $db->setQuery($query); + if (!$db->query()) { + echo PhocaDownloadException::renderErrorInfo('Database Error - Insert FileId Tags'); + return false; + } + + } + } + } + + } + + public static function getAllTagsSelectBox($name, $id, $activeArray, $javascript = NULL, $order = 'id' ) { + + $db = JFactory::getDBO(); + $query = 'SELECT a.id AS value, a.title AS text' + .' FROM #__phocadownload_tags AS a' + . ' ORDER BY '. $order; + //. ' ORDER BY a.id'; + $db->setQuery($query); + + if (!$db->query()) { + echo PhocaDownloadException::renderErrorInfo('Database Error - Getting All Tags'); + return false; + } + + $tags = $db->loadObjectList(); + + $tagsO = JHTML::_('select.genericlist', $tags, $name, 'class="inputbox" size="4" multiple="multiple"'. $javascript, 'value', 'text', $activeArray, $id); + + return $tagsO; + } +} \ No newline at end of file diff --git a/packages/phocadownload/administrator/components/com_phocadownload/libraries/phocadownload/user/index.html b/packages/phocadownload/administrator/components/com_phocadownload/libraries/phocadownload/user/index.html new file mode 100644 index 00000000..fa6d84e8 --- /dev/null +++ b/packages/phocadownload/administrator/components/com_phocadownload/libraries/phocadownload/user/index.html @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/phocadownload/administrator/components/com_phocadownload/libraries/phocadownload/user/user.php b/packages/phocadownload/administrator/components/com_phocadownload/libraries/phocadownload/user/user.php new file mode 100644 index 00000000..8d4b2dc3 --- /dev/null +++ b/packages/phocadownload/administrator/components/com_phocadownload/libraries/phocadownload/user/user.php @@ -0,0 +1,134 @@ +get( 'user_ucp_lang', 1 ); + + $o = array(); + + switch ($userLang){ + case 2: + $registry = new JRegistry; + $registry->loadString($user->params); + $o['lang'] = $registry->get('language','*'); + $o['langinput'] = ''; + break; + + case 3: + $o['lang'] = JFactory::getLanguage()->getTag(); + $o['langinput'] = ''; + break; + + default: + case 1: + $o['lang'] = '*'; + $o['langinput'] = ''; + break; + } + return $o; + } + + public static function getUserFileInfo($file, $userId) { + + $db = JFactory::getDBO(); + $allFile['size'] = 0; + $allFile['count'] = 0; + $query = 'SELECT SUM(a.filesize) AS sumfiles, COUNT(a.id) AS countfiles' + .' FROM #__phocadownload AS a' + .' WHERE a.owner_id = '.(int)$userId; + $db->setQuery($query, 0, 1); + $fileData = $db->loadObject(); + + if(isset($fileData->sumfiles) && (int)$fileData->sumfiles > 0) { + $allFile['size'] = (int)$allFile['size'] + (int)$fileData->sumfiles; + } + + if (isset($file['size'])) { + $allFile['size'] = (int)$allFile['size'] + (int)$file['size']; + $allFile['count'] = (int)$fileData->countfiles + 1; + } + + return $allFile; + } + + /** + * Method to display multiple select box + * @param string $name Name (id, name parameters) + * @param array $active Array of items which will be selected + * @param int $nouser Select no user + * @param string $javascript Add javascript to the select box + * @param string $order Ordering of items + * @param int $reg Only registered users + * @return array of id + */ + + public static function usersList( $name, $id, $active, $nouser = 0, $javascript = NULL, $order = 'name', $reg = 1 ) { + + $activeArray = $active; + if ($active != '') { + $activeArray = explode(',',$active); + } + + $db = JFactory::getDBO(); + $and = ''; + if ($reg) { + // does not include registered users in the list + $and = ' AND m.group_id != 2'; + } + + $query = 'SELECT u.id AS value, u.name AS text' + . ' FROM #__users AS u' + . ' JOIN #__user_usergroup_map AS m ON m.user_id = u.id' + . ' WHERE u.block = 0' + . $and + . ' GROUP BY u.id' + . ' ORDER BY '. $order; + + + + $db->setQuery( $query ); + if ( $nouser ) { + + // Access rights (Default open for all) + // Upload and Delete rights (Default closed for all) + switch ($name) { + case 'jform[accessuserid][]': + $idInput1 = -1; + $idText1 = JText::_( 'COM_PHOCADOWNLOAD_ALL_REGISTERED_USERS' ); + $idInput2 = -2; + $idText2 = JText::_( 'COM_PHOCADOWNLOAD_NOBODY' ); + break; + + Default: + $idInput1 = -2; + $idText1 = JText::_( 'COM_PHOCADOWNLOAD_NOBODY' ); + $idInput2 = -1; + $idText2 = JText::_( 'COM_PHOCADOWNLOAD_ALL_REGISTERED_USERS' ); + break; + } + + $users[] = JHTML::_('select.option', $idInput1, '- '. $idText1 .' -' ); + $users[] = JHTML::_('select.option', $idInput2, '- '. $idText2 .' -' ); + + $users = array_merge( $users, $db->loadObjectList() ); + } else { + $users = $db->loadObjectList(); + } + + $users = JHTML::_('select.genericlist', $users, $name, 'class="inputbox" size="4" multiple="multiple"'. $javascript, 'value', 'text', $activeArray, $id ); + + return $users; + } +} +?> \ No newline at end of file diff --git a/packages/phocadownload/administrator/components/com_phocadownload/libraries/phocadownload/utils/exception.php b/packages/phocadownload/administrator/components/com_phocadownload/libraries/phocadownload/utils/exception.php new file mode 100644 index 00000000..de132f3e --- /dev/null +++ b/packages/phocadownload/administrator/components/com_phocadownload/libraries/phocadownload/utils/exception.php @@ -0,0 +1,25 @@ +'.JText::_($msg).'
'; + } else { + return '
'.$msg.'
'; + } + } +} +?> \ No newline at end of file diff --git a/packages/phocadownload/administrator/components/com_phocadownload/libraries/phocadownload/utils/external.php b/packages/phocadownload/administrator/components/com_phocadownload/libraries/phocadownload/utils/external.php new file mode 100644 index 00000000..946ffca6 --- /dev/null +++ b/packages/phocadownload/administrator/components/com_phocadownload/libraries/phocadownload/utils/external.php @@ -0,0 +1,24 @@ +checkAccess('phoca', 'category', $fileName->catid); + } else if (file_exists(JPATH_ADMINISTRATOR . DS . "components" . DS . "com_osemsc" . DS . "warehouse" . DS . "api.php")) { + require_once (JPATH_ADMINISTRATOR . DS . "components" . DS . "com_osemsc" . DS . "warehouse" . DS . "api.php"); + $checkmsc = new OSEMSCAPI(); + $checkmsc->ACLCheck("phoca", "cat", $fileName->catid, true); + } + } +} +?> \ No newline at end of file diff --git a/packages/phocadownload/administrator/components/com_phocadownload/libraries/phocadownload/utils/index.html b/packages/phocadownload/administrator/components/com_phocadownload/libraries/phocadownload/utils/index.html new file mode 100644 index 00000000..fa6d84e8 --- /dev/null +++ b/packages/phocadownload/administrator/components/com_phocadownload/libraries/phocadownload/utils/index.html @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/phocadownload/administrator/components/com_phocadownload/libraries/phocadownload/utils/settings.php b/packages/phocadownload/administrator/components/com_phocadownload/libraries/phocadownload/utils/settings.php new file mode 100644 index 00000000..d81ef0d0 --- /dev/null +++ b/packages/phocadownload/administrator/components/com_phocadownload/libraries/phocadownload/utils/settings.php @@ -0,0 +1,126 @@ +setQuery($query, 0, 1); + $layout = $db->loadObject(); + + if (!$db->query()) { + $this->setError($db->getErrorMsg()); + return false; + } + + if (isset($layout->$type)) { + return $layout->$type; + } + + return ''; + + } + + public static function getLayoutParams($type) { + + $params = array(); + switch($type) { + + case 'categories': + $params['style'] = array('pd-title','pd-desc', 'pd-subcategory', 'pd-no-subcat');//'pd-', + $params['search'] = array('{pdtitle}','{pddescription}', '{pdsubcategories}', '{pdclear}'); + break; + + case 'category': + $params['style'] = array('pd-title','pd-image', 'pd-file', 'pd-fdesc', 'pd-mirrors', 'pd-mirror', 'pd-report', 'pd-rating', 'pd-tags', 'pd-buttons', 'pd-downloads', 'pd-video'); + $params['search'] = array('{pdtitle}','{pdimage}', '{pdfile}', '{pdfilesize}', '{pdversion}', '{pdlicense}', '{pdauthor}', '{pdauthoremail}', '{pdfiledate}', '{pddownloads}', '{pddescription}', '{pdfeatures}', '{pdchangelog}', '{pdnotes}', '{pdmirrorlink1}', '{pdmirrorlink2}', '{pdreportlink}', '{pdrating}', '{pdtags}', '{pdfiledesctop}', '{pdfiledescbottom}', '{pdbuttondownload}', '{pdbuttondetails}', '{pdbuttonpreview}', '{pdbuttonplay}', '{pdvideo}'); + break; + + + case 'file': + $params['style'] = array('pd-title','pd-image', 'pd-file', 'pd-fdesc', 'pd-mirrors', 'pd-mirror', 'pd-report', 'pd-rating', 'pd-tags', 'pd-downloads', 'pd-video'); + $params['search'] = array('{pdtitle}','{pdimage}', '{pdfile}', '{pdfilesize}', '{pdversion}', '{pdlicense}', '{pdauthor}', '{pdauthoremail}', '{pdfiledate}', '{pddownloads}', '{pddescription}', '{pdfeatures}', '{pdchangelog}', '{pdnotes}', '{pdmirrorlink1}', '{pdmirrorlink2}', '{pdreportlink}', '{pdrating}', '{pdtags}', '{pdvideo}'); + break; + } + + return $params; + } +} +?> \ No newline at end of file diff --git a/packages/phocadownload/administrator/components/com_phocadownload/libraries/phocadownload/utils/utils.php b/packages/phocadownload/administrator/components/com_phocadownload/libraries/phocadownload/utils/utils.php new file mode 100644 index 00000000..5f7f72ac --- /dev/null +++ b/packages/phocadownload/administrator/components/com_phocadownload/libraries/phocadownload/utils/utils.php @@ -0,0 +1,128 @@ +Powe'.'red b'.'y Pho' + .'ca Downl'.'oad
'; + } + + public static function getExtensionVersion($c = 'phocadownload') { + $folder = JPATH_ADMINISTRATOR .DS. 'components'.DS.'com_'.$c; + if (JFolder::exists($folder)) { + $xmlFilesInDir = JFolder::files($folder, '.xml$'); + } else { + $folder = JPATH_SITE .DS. 'components'.DS.'com_'.$c; + if (JFolder::exists($folder)) { + $xmlFilesInDir = JFolder::files($folder, '.xml$'); + } else { + $xmlFilesInDir = null; + } + } + + $xml_items = ''; + if (count($xmlFilesInDir)) + { + foreach ($xmlFilesInDir as $xmlfile) + { + if ($data = JApplicationHelper::parseXMLInstallFile($folder.DS.$xmlfile)) { + foreach($data as $key => $value) { + $xml_items[$key] = $value; + } + } + } + } + + if (isset($xml_items['version']) && $xml_items['version'] != '' ) { + return $xml_items['version']; + } else { + return ''; + } + } + + public static function setVars( $task = '') { + + $a = array(); + $app = JFactory::getApplication(); + $a['o'] = htmlspecialchars(strip_tags($app->input->get('option'))); + $a['c'] = str_replace('com_', '', $a['o']); + $a['n'] = 'Phoca' . ucfirst(str_replace('com_phoca', '', $a['o'])); + $a['l'] = strtoupper($a['o']); + $a['i'] = 'media/'.$a['o'].'/images/administrator/'; + $a['s'] = 'media/'.$a['o'].'/css/administrator/'.$a['c'].'.css'; + $a['task'] = $a['c'] . htmlspecialchars(strip_tags($task)); + $a['tasks'] = $a['task']. 's'; + return $a; + } + + public static function getAliasName($alias) { + $alias = JApplication::stringURLSafe($alias); + if (trim(str_replace('-', '', $alias)) == '') { + $alias = JFactory::getDate()->format("Y-m-d-H-i-s"); + } + return $alias; + } + + public static function strTrimAll($input) { + $output = ''; + $input = trim($input); + for($i=0;$i 0); + } else if (empty($value)) { + return array(0 => 0); + } else if (is_array($value)) { + return $value; + } else { + return array(0 => $value); + } + + } + public static function isURLAddress($url) { + return preg_match('|^http(s)?://[a-z0-9-]+(.[a-z0-9-]+)*(:[0-9]+)?(/.*)?$|i', $url); + } + + public static function setQuestionmarkOrAmp($url) { + $isThereQMR = false; + $isThereQMR = preg_match("/\?/i", $url); + if ($isThereQMR) { + return '&'; + } else { + return '?'; + } + } + + public static function getToken($title = '') { + $salt = md5($title . 'string '. date('s'). mt_rand(0,9999) . str_replace(mt_rand(0,9), mt_rand(0,9999), date('r')). 'end string'); + $token = hash('sha256', $salt . time()); + return $token; + } + + public static function cleanFolderUrlName($string) { + $string = str_replace('@', '-', $string); + $string = str_replace('?', '-', $string); + $string = str_replace('&', '-', $string); + $string = str_replace('%', '-', $string); + return $string; + + } +} +?> \ No newline at end of file diff --git a/packages/phocadownload/administrator/components/com_phocadownload/models/fields/index.html b/packages/phocadownload/administrator/components/com_phocadownload/models/fields/index.html new file mode 100644 index 00000000..fa6d84e8 --- /dev/null +++ b/packages/phocadownload/administrator/components/com_phocadownload/models/fields/index.html @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/phocadownload/administrator/components/com_phocadownload/models/fields/phocaaccesslevel.php b/packages/phocadownload/administrator/components/com_phocadownload/models/fields/phocaaccesslevel.php new file mode 100644 index 00000000..0aff87d2 --- /dev/null +++ b/packages/phocadownload/administrator/components/com_phocadownload/models/fields/phocaaccesslevel.php @@ -0,0 +1,103 @@ +element['class'] ? ' class="'.(string) $this->element['class'].'"' : ''; + $attr .= ((string) $this->element['disabled'] == 'true') ? ' disabled="disabled"' : ''; + $attr .= $this->element['size'] ? ' size="'.(int) $this->element['size'].'"' : ''; + $attr .= $this->multiple ? ' multiple="multiple"' : ''; + + // Initialize JavaScript field attributes. + $attr .= $this->element['onchange'] ? ' onchange="'.(string) $this->element['onchange'].'"' : ''; + + // Get the field options. + $options = $this->getOptions(); + + + return $this->_level( $this->name, $this->value, $attr, $options, $this->id); + } + + + public static function _level($name, $selected, $attribs = '', $params = true, $id = false) { + + $db = JFactory::getDbo(); + $query = $db->getQuery(true); + + $query->select('a.id AS value, a.title AS text'); + $query->from('#__viewlevels AS a'); + //PHOCAEDIT + $query->where('a.id <> 1'); + //ENDPHOCAEDIT + $query->group('a.id'); + $query->order('a.ordering ASC'); + $query->order('`title` ASC'); + + // Get the options. + $db->setQuery($query); + $options = $db->loadObjectList(); + + // Check for a database error. + if ($db->getErrorNum()) { + JError::raiseWarning(500, $db->getErrorMsg()); + return null; + } + + // If params is an array, push these options to the array + if (is_array($params)) { + $options = array_merge($params,$options); + } + // If all levels is allowed, push it into the array. + elseif ($params) { + array_unshift($options, JHtml::_('select.option', '', JText::_('JOPTION_ACCESS_SHOW_ALL_LEVELS'))); + } + + return JHtml::_('select.genericlist', $options, $name, + array( + 'list.attr' => $attribs, + 'list.select' => $selected, + 'id' => $id + ) + ); + } +} diff --git a/packages/phocadownload/administrator/components/com_phocadownload/models/fields/phocacolortext.php b/packages/phocadownload/administrator/components/com_phocadownload/models/fields/phocacolortext.php new file mode 100644 index 00000000..d46dd38f --- /dev/null +++ b/packages/phocadownload/administrator/components/com_phocadownload/models/fields/phocacolortext.php @@ -0,0 +1,90 @@ +_getPhocaParams( $this->element['name'] ); + + JHTML::stylesheet( 'administrator/components/com_phocadownload/assets/jcp/picker.css' ); + $document->addScript(JURI::base(true).'/components/com_phocadownload/assets/jcp/picker.js'); + + // Initialize some field attributes. + $size = $this->element['size'] ? ' size="'.(int) $this->element['size'].'"' : ''; + $class = $this->element['class'] ? ' class="'.(string) $this->element['class'].'"' : ''; + $maxLength = $this->element['maxlength'] ? ' maxlength="'.(int) $this->element['maxlength'].'"' : ''; + $readonly = ((string) $this->element['readonly'] == 'true') ? ' readonly="readonly"' : ''; + $disabled = ((string) $this->element['disabled'] == 'true') ? ' disabled="disabled"' : ''; + // Initialize JavaScript field attributes. + $onchange = $this->element['onchange'] ? ' onchange="'.(string) $this->element['onchange'].'"' : ''; + + $value = htmlspecialchars($this->value, ENT_COMPAT, 'UTF-8'); + + // TODO 1.6 + // MENU - Set Default value to "" because of saving "" value into the menu link ( use global = "") + if ($option == "com_menus") { + $DefaultValue = (string)$this->element['default']; + if ($value == $DefaultValue) { + $value = ''; + } + } + + $html =''; + + // Color Picker + $nameCP = str_replace('[', '_', $this->name); + $nameCP = str_replace(']', '', $nameCP); + $html .= '' . JText::_('COM_PHOCADOWNLOAD_PICK_COLOR') . ''; + + // MENU - Display the global value + if ($option == "com_menus") { + $html .= '[ ' . $globalValue . ' ]'; + } + return $html; + + } + + protected function getLabel() { + echo '
'; + return parent::getLabel(); + echo '
'; + } + + protected function _setPhocaParams(){ + + $component = 'com_phocadownload'; + $table = JTable::getInstance('extension'); + $idCom = $table->find( array('element' => $component )); + $table->load($idCom); + $phocaParams = new JParameter( $table->params ); + $this->phocaParams = $phocaParams; + } + + protected function _getPhocaParams( $name ){ + + // Don't call sql query by every param item (it will be loaded only one time) + if (!$this->phocaParams) { + $params = $this->_setPhocaParams(); + } + $globalValue = $this->phocaParams->get( $name, '' ); + return $globalValue; + } +} +?> \ No newline at end of file diff --git a/packages/phocadownload/administrator/components/com_phocadownload/models/fields/phocadownloadcategory.php b/packages/phocadownload/administrator/components/com_phocadownload/models/fields/phocadownloadcategory.php new file mode 100644 index 00000000..2dd0026a --- /dev/null +++ b/packages/phocadownload/administrator/components/com_phocadownload/models/fields/phocadownloadcategory.php @@ -0,0 +1,67 @@ +setQuery( $query ); + $data = $db->loadObjectList(); + + // TODO - check for other views than category edit + $view = JRequest::getVar( 'view' ); + $catId = -1; + if ($view == 'phocadownloadcat') { + $id = $this->form->getValue('id'); // id of current category + if ((int)$id > 0) { + $catId = $id; + } + } + /*if ($view == 'phocadownloadfile') { + $id = $this->form->getValue('catid'); // id of current category + if ((int)$id > 0) { + $catId = $id; + } + }*/ + + + + //$required = ((string) $this->element['required'] == 'true') ? TRUE : FALSE; + $attr = ''; + $attr .= $this->required ? ' required aria-required="true"' : ''; + $attr .= ' class="inputbox"'; + + $tree = array(); + $text = ''; + $tree = PhocaDownloadCategory::CategoryTreeOption($data, $tree, 0, $text, $catId); + + //if ($required == TRUE) { + + //} else { + + array_unshift($tree, JHTML::_('select.option', '', '- '.JText::_('COM_PHOCADOWNLOAD_SELECT_CATEGORY').' -', 'value', 'text')); + //} + return JHTML::_('select.genericlist', $tree, $this->name, trim($attr), 'value', 'text', $this->value, $this->id ); + } +} +?> \ No newline at end of file diff --git a/packages/phocadownload/administrator/components/com_phocadownload/models/fields/phocadownloadeditor.php b/packages/phocadownload/administrator/components/com_phocadownload/models/fields/phocadownloadeditor.php new file mode 100644 index 00000000..1cc31243 --- /dev/null +++ b/packages/phocadownload/administrator/components/com_phocadownload/models/fields/phocadownloadeditor.php @@ -0,0 +1,128 @@ +element['rows']; + $cols = (int) $this->element['cols']; + $height = ((string) $this->element['height']) ? (string) $this->element['height'] : '250'; + $width = ((string) $this->element['width']) ? (string) $this->element['width'] : '100%'; + + // Build the buttons array. + $buttons = (string) $this->element['buttons']; + if ($buttons == 'true' || $buttons == 'yes' || $buttons == '1') { + $buttons = true; + } else if ($buttons == 'false' || $buttons == 'no' || $buttons == '0') { + $buttons = false; + } else { + $buttons = explode(',', $buttons); + } + + $hide = ((string) $this->element['hide']) ? explode(',',(string) $this->element['hide']) : array(); + + $globalValue = $this->_getPhocaParameter( 'display_editor' ); + if ($globalValue == '') { + $globalValue = 1; + } + $widthE = $width + 200; + if ($globalValue == 1) { + // Get an editor object. + $editor = $this->getEditor(); + + $editorOutput = '
'. $editor->display($this->name, htmlspecialchars($this->value, ENT_COMPAT, 'UTF-8'), $width, $height, $cols, $rows, $buttons ? (is_array($buttons) ? array_merge($buttons,$hide) : $hide) : false, $this->id).'
'; + + return '
' .$editorOutput; + } + else { + $style = ''; + if ($width != '' && $height != '') { + $style = 'style="width:'.$width.'; height:'.$height.'"'; + } + return ''; + } + + } + + protected function & getEditor() + { + // Only create the editor if it is not already created. + if (empty($this->editor)) { + + // Initialize variables. + $editor = null; + + // Get the editor type attribute. Can be in the form of: editor="desired|alternative". + $type = trim((string) $this->element['editor']); + if ($type) { + // Get the list of editor types. + $types = explode('|', $type); + + // Get the database object. + $db = JFactory::getDBO(); + + // Iterate over teh types looking for an existing editor. + foreach ($types as $element) { + // Build the query. + $query = $db->getQuery(true); + $query->select('element'); + $query->from('#__extensions'); + $query->where('element = '.$db->quote($element)); + $query->where('folder = '.$db->quote('editors')); + $query->where('enabled = 1'); + + // Check of the editor exists. + $db->setQuery($query, 0, 1); + $editor = $db->loadResult(); + + // If an editor was found stop looking. + if ($editor) { + break; + } + } + } + + // Create the JEditor intance based on the given editor. + $this->editor = JFactory::getEditor($editor ? $editor : null); + } + + return $this->editor; + } + + public function save() + { + return $this->getEditor()->save($this->id); + } + + protected function _setPhocaParams(){ + $component = 'com_phocadownload'; + $paramsC = JComponentHelper::getParams($component) ; + $this->phocaParams = $paramsC; + } + + protected function _getPhocaParameter( $name ){ + + // Don't call sql query by every param item (it will be loaded only one time) + if (!$this->phocaParams) { + $params = $this->_setPhocaParams(); + } + $globalValue = $this->phocaParams->get( $name, '' ); + return $globalValue; + } +} diff --git a/packages/phocadownload/administrator/components/com_phocadownload/models/fields/phocadownloadfile.php b/packages/phocadownload/administrator/components/com_phocadownload/models/fields/phocadownloadfile.php new file mode 100644 index 00000000..2d0e593a --- /dev/null +++ b/packages/phocadownload/administrator/components/com_phocadownload/models/fields/phocadownloadfile.php @@ -0,0 +1,47 @@ +setQuery( $query ); + + $messages = $db->loadObjectList(); + $options = array(); + if ($messages) + { + foreach($messages as $message) + { + $options[] = JHtml::_('select.option', $message->id, $message->title); + } + } + + $attr = ''; + $attr .= $this->required ? ' required aria-required="true"' : ''; + $attr .= ' class="inputbox"'; + + array_unshift($options, JHTML::_('select.option', '', '- '.JText::_('COM_PHOCADOWNLOAD_SELECT_FILE').' -', 'value', 'text')); + return JHTML::_('select.genericlist', $options, $this->name, trim($attr), 'value', 'text', $this->value, $this->id ); + + } +} +?> \ No newline at end of file diff --git a/packages/phocadownload/administrator/components/com_phocadownload/models/fields/phocadownloadlicense.php b/packages/phocadownload/administrator/components/com_phocadownload/models/fields/phocadownloadlicense.php new file mode 100644 index 00000000..37c55a2e --- /dev/null +++ b/packages/phocadownload/administrator/components/com_phocadownload/models/fields/phocadownloadlicense.php @@ -0,0 +1,37 @@ +setQuery( $query ); + $licenses = $db->loadObjectList(); + + $id = $this->form->getValue('id'); // id of current license + $required = ((string) $this->element['required'] == 'true') ? TRUE : FALSE; + + array_unshift($licenses, JHTML::_('select.option', '', '- '.JText::_('COM_PHOCADOWNLOAD_SELECT_LICENSE').' -', 'value', 'text')); + + return JHTML::_('select.genericlist', $licenses, $this->name, 'class="inputbox"', 'value', 'text', $this->value, $this->id ); + } +} +?> \ No newline at end of file diff --git a/packages/phocadownload/administrator/components/com_phocadownload/models/fields/phocadownloadordering.php b/packages/phocadownload/administrator/components/com_phocadownload/models/fields/phocadownloadordering.php new file mode 100644 index 00000000..91e01d26 --- /dev/null +++ b/packages/phocadownload/administrator/components/com_phocadownload/models/fields/phocadownloadordering.php @@ -0,0 +1,88 @@ +form->getValue('id'); + + if ($this->element['table']) { + switch (strtolower($this->element['table'])) { + + case "category": + $whereLabel = 'parent_id'; + $whereValue = (int) $this->form->getValue('parent_id'); + $table = '#__phocadownload_categories'; + break; + + case "tag": + $whereLabel = ''; + $whereValue = ''; + $table = '#__phocadownload_tags'; + break; + + case "file": + default: + $whereLabel = 'catid'; + $whereValue = (int) $this->form->getValue('catid'); + $table = '#__phocadownload'; + break; + + } + } else { + $whereLabel = 'catid'; + $whereValue = (int) $this->form->getValue('catid'); + $table = '#__phocadownload'; + } + + // Initialize some field attributes. + $attr .= $this->element['class'] ? ' class="'.(string) $this->element['class'].'"' : ''; + $attr .= ((string) $this->element['disabled'] == 'true') ? ' disabled="disabled"' : ''; + $attr .= $this->element['size'] ? ' size="'.(int) $this->element['size'].'"' : ''; + + // Initialize JavaScript field attributes. + $attr .= $this->element['onchange'] ? ' onchange="'.(string) $this->element['onchange'].'"' : ''; + + + + // Build the query for the ordering list. + $query = 'SELECT ordering AS value, title AS text' . + ' FROM ' . $table; + if ($whereLabel != '') { + $query .= ' WHERE '.$whereLabel.' = ' . (int) $whereValue; + } + $query .= ' ORDER BY ordering'; + + // Create a read-only list (no name) with a hidden input to store the value. + if ((string) $this->element['readonly'] == 'true') { + $html[] = JHtml::_('list.ordering', '', $query, trim($attr), $this->value, $id ? 0 : 1); + $html[] = ''; + } + // Create a regular list. + else { + $html[] = JHtml::_('list.ordering', $this->name, $query, trim($attr), $this->value, $id ? 0 : 1); + } + + return implode($html); + } +} \ No newline at end of file diff --git a/packages/phocadownload/administrator/components/com_phocadownload/models/fields/phocadownloadtoken.php b/packages/phocadownload/administrator/components/com_phocadownload/models/fields/phocadownloadtoken.php new file mode 100644 index 00000000..36745c53 --- /dev/null +++ b/packages/phocadownload/administrator/components/com_phocadownload/models/fields/phocadownloadtoken.php @@ -0,0 +1,51 @@ +element['size'] ? ' size="'.(int) $this->element['size'].'"' : ''; + $maxLength = $this->element['maxlength'] ? ' maxlength="'.(int) $this->element['maxlength'].'"' : ''; + $class = $this->element['class'] ? ' class="'.(string) $this->element['class'].'"' : ''; + $readonly = ((string) $this->element['readonly'] == 'true') ? ' readonly="readonly"' : ''; + $disabled = ((string) $this->element['disabled'] == 'true') ? ' disabled="disabled"' : ''; + + $maptype = ( (string)$this->element['maptype'] ? $this->element['maptype'] : '' ); + + // Initialize JavaScript field attributes. + $onchange = (string) $this->element['onchange']; + $onchangeOutput = ' onChange="'.(string) $this->element['onchange'].'"'; + + + + $html[] = '
'; + $html[] = ''; + $html[] = '' + . JText::_('COM_PHOCADOWNLOAD_SET_TOKEN').''; + $html[] = '
'. "\n"; + return implode("\n", $html); + + } +} +?> \ No newline at end of file diff --git a/packages/phocadownload/administrator/components/com_phocadownload/models/fields/phocahead.php b/packages/phocadownload/administrator/components/com_phocadownload/models/fields/phocahead.php new file mode 100644 index 00000000..805f8e8e --- /dev/null +++ b/packages/phocadownload/administrator/components/com_phocadownload/models/fields/phocahead.php @@ -0,0 +1,48 @@ +'; + $phocaImage = ( (string)$this->element['phocaimage'] ? $this->element['phocaimage'] : '' ); + $image = ''; + + if ($phocaImage != ''){ + $image = JHTML::_('image', $ti . $phocaImage, '' ); + } + + if ($this->element['default']) { + if ($image != '') { + return '
' + .'
'. $image.' '. JText::_($this->element['default']) . '
' + .'
'; + } else { + return '
' + .''. JText::_($this->element['default']) . '' + .'
'; + } + } else { + return parent::getLabel(); + } + echo '
'; + } +} +?> \ No newline at end of file diff --git a/packages/phocadownload/administrator/components/com_phocadownload/models/fields/phocaheadexpert.php b/packages/phocadownload/administrator/components/com_phocadownload/models/fields/phocaheadexpert.php new file mode 100644 index 00000000..c2ce723c --- /dev/null +++ b/packages/phocadownload/administrator/components/com_phocadownload/models/fields/phocaheadexpert.php @@ -0,0 +1,48 @@ +'; + $phocaImage = ( (string)$this->element['phocaimage'] ? $this->element['phocaimage'] : '' ); + $image = ''; + + if ($phocaImage != ''){ + $image = JHTML::_('image', $ti . $phocaImage, '' ); + } + + if ($this->element['default']) { + if ($image != '') { + return '
' + .'
'. $image.' '. JText::_($this->element['default']) . '
' + .'
'; + } else { + return '
' + .''. JText::_($this->element['default']) . '' + .'
'; + } + } else { + return parent::getLabel(); + } + echo '
'; + } +} +?> \ No newline at end of file diff --git a/packages/phocadownload/administrator/components/com_phocadownload/models/fields/phocainfotext.php b/packages/phocadownload/administrator/components/com_phocadownload/models/fields/phocainfotext.php new file mode 100644 index 00000000..6d99f121 --- /dev/null +++ b/packages/phocadownload/administrator/components/com_phocadownload/models/fields/phocainfotext.php @@ -0,0 +1,33 @@ +element['class'] != '') { + $class = $this->element['class']; + } + + return '
'.$this->value.'
'; + } + + + protected function getLabel() + { + echo '
'; + + return parent::getLabel(); + + echo '
'; + } + +} \ No newline at end of file diff --git a/packages/phocadownload/administrator/components/com_phocadownload/models/fields/phocalongtext.php b/packages/phocadownload/administrator/components/com_phocadownload/models/fields/phocalongtext.php new file mode 100644 index 00000000..d5ee5d82 --- /dev/null +++ b/packages/phocadownload/administrator/components/com_phocadownload/models/fields/phocalongtext.php @@ -0,0 +1,83 @@ +_getPhocaParams( $this->element['name'] ); + + // Initialize some field attributes. + $size = $this->element['size'] ? ' size="'.(int) $this->element['size'].'"' : ''; + $class = $this->element['class'] ? ' class="'.(string) $this->element['class'].'"' : ''; + $maxLength = $this->element['maxlength'] ? ' maxlength="'.(int) $this->element['maxlength'].'"' : ''; + $readonly = ((string) $this->element['readonly'] == 'true') ? ' readonly="readonly"' : ''; + $disabled = ((string) $this->element['disabled'] == 'true') ? ' disabled="disabled"' : ''; + // Initialize JavaScript field attributes. + $onchange = $this->element['onchange'] ? ' onchange="'.(string) $this->element['onchange'].'"' : ''; + + $value = htmlspecialchars($this->value, ENT_COMPAT, 'UTF-8'); + + // TODO 1.6 + // MENU - Set Default value to "" because of saving "" value into the menu link ( use global = "") + if ($option == "com_menus") { + $DefaultValue = (string)$this->element['default']; + if ($value == $DefaultValue) { + $value = ''; + } + } + + // MENU - Display the global value + if ($option == "com_menus") { + $html =''; + $html .='
[]
'; + } else { + $html =''; + } + return $html; + } + + protected function getLabel() { + echo '
'; + return parent::getLabel(); + echo '
'; + } + + protected function _setPhocaParams(){ + + $component = 'com_phocadownload'; + $table = JTable::getInstance('extension'); + $idCom = $table->find( array('element' => $component )); + $table->load($idCom); + $phocaParams = new JParameter( $table->params ); + $this->phocaParams = $phocaParams; + } + + protected function _getPhocaParams( $name ){ + + // Don't call sql query by every param item (it will be loaded only one time) + if (!$this->phocaParams) { + $params = $this->_setPhocaParams(); + } + $globalValue = $this->phocaParams->get( $name, '' ); + return $globalValue; + } +} +?> \ No newline at end of file diff --git a/packages/phocadownload/administrator/components/com_phocadownload/models/fields/phocaselectfilename.php b/packages/phocadownload/administrator/components/com_phocadownload/models/fields/phocaselectfilename.php new file mode 100644 index 00000000..3129bd0b --- /dev/null +++ b/packages/phocadownload/administrator/components/com_phocadownload/models/fields/phocaselectfilename.php @@ -0,0 +1,87 @@ +element['manager'] ? '&manager='.(string) $this->element['manager'] : ''; + + $group = PhocaDownloadSettings::getManagerGroup((string) $this->element['manager']); + $textButton = 'COM_PHOCADOWNLOAD_FORM_SELECT_'.strtoupper($group['t']); + + $link = 'index.php?option=com_phocadownload&view=phocadownloadmanager'.$group['c'].$managerOutput.'&field='.$this->id; + + // Initialize some field attributes. + $attr = $this->element['class'] ? ' class="'.(string) $this->element['class'].'"' : ''; + $attr .= $this->element['size'] ? ' size="'.(int) $this->element['size'].'"' : ''; + + // Initialize JavaScript field attributes. + $onchange = (string) $this->element['onchange']; + + // Load the modal behavior script. + JHtml::_('behavior.modal', 'a.modal_'.$this->id); + + // If external image, we don't need the filename will be required + $extId = (int) $this->form->getValue('extid'); + if ($extId > 0) { + $readonly = ' readonly="readonly"'; + return ''; + } + + // Build the script. + $script = array(); + $script[] = ' function phocaSelectFileName_'.$this->id.'(title) {'; + $script[] = ' document.getElementById("'.$this->id.'_id").value = title;'; + $script[] = ' '.$onchange; + $script[] = ' SqueezeBox.close();'; + $script[] = ' }'; + + // Add the script to the document head. + JFactory::getDocument()->addScriptDeclaration(implode("\n", $script)); + + + /*$html[] = '
'; + $html[] = ' '; + $html[] = '
'; + + // Create the user select button. + $html[] = '
'; + $html[] = '
'; + $html[] = ' '; + $html[] = ' '.JText::_($textButton).''; + $html[] = '
'; + $html[] = '
';*/ + + $html[] = '
'; + $html[] = ''; + $html[] = '' + . JText::_($textButton).''; + $html[] = '
'. "\n"; + + + return implode("\n", $html); + } +} \ No newline at end of file diff --git a/packages/phocadownload/administrator/components/com_phocadownload/models/fields/phocatags.php b/packages/phocadownload/administrator/components/com_phocadownload/models/fields/phocatags.php new file mode 100644 index 00000000..aafab89f --- /dev/null +++ b/packages/phocadownload/administrator/components/com_phocadownload/models/fields/phocatags.php @@ -0,0 +1,34 @@ +form->getValue('id'); + + $activeTags = array(); + if ((int)$id > 0) { + $activeTags = PhocaDownloadTag::getTags($id, 1); + } + + + return PhocaDownloadTag::getAllTagsSelectBox($this->name, $this->id, $activeTags, NULL, 'a.id' ); + + + } +} +?> \ No newline at end of file diff --git a/packages/phocadownload/administrator/components/com_phocadownload/models/fields/phocatext.php b/packages/phocadownload/administrator/components/com_phocadownload/models/fields/phocatext.php new file mode 100644 index 00000000..448b0789 --- /dev/null +++ b/packages/phocadownload/administrator/components/com_phocadownload/models/fields/phocatext.php @@ -0,0 +1,75 @@ +_getPhocaParams( $this->element['name'] ); + + // Initialize some field attributes. + $size = $this->element['size'] ? ' size="'.(int) $this->element['size'].'"' : ''; + $class = $this->element['class'] ? ' class="'.(string) $this->element['class'].'"' : ''; + $maxLength = $this->element['maxlength'] ? ' maxlength="'.(int) $this->element['maxlength'].'"' : ''; + $readonly = ((string) $this->element['readonly'] == 'true') ? ' readonly="readonly"' : ''; + $disabled = ((string) $this->element['disabled'] == 'true') ? ' disabled="disabled"' : ''; + // Initialize JavaScript field attributes. + $onchange = $this->element['onchange'] ? ' onchange="'.(string) $this->element['onchange'].'"' : ''; + + $value = htmlspecialchars($this->value, ENT_COMPAT, 'UTF-8'); + + // TODO 1.6 + // MENU - Set Default value to "" because of saving "" value into the menu link ( use global = "") + if ($option == "com_menus") { + $DefaultValue = (string)$this->element['default']; + if ($value == $DefaultValue) { + $value = ''; + } + } + + $html =''; + + // MENU - Display the global value + if ($option == "com_menus") { + $html .= '[ ' . $globalValue . ' ]'; + } + + return $html; + } + + protected function getLabel() { + echo '
'; + return parent::getLabel(); + echo '
'; + } + + protected function _setPhocaParams(){ + $component = 'com_phocadownload'; + $paramsC = JComponentHelper::getParams($component) ; + $this->phocaParams = $paramsC; + } + + protected function _getPhocaParams( $name ){ + // Don't call sql query by every param item (it will be loaded only one time) + if (!$this->phocaParams) { + $params = $this->_setPhocaParams(); + } + $globalValue = $this->phocaParams->get( $name, '' ); + return $globalValue; + } +} +?> \ No newline at end of file diff --git a/packages/phocadownload/administrator/components/com_phocadownload/models/fields/phocatextarea.php b/packages/phocadownload/administrator/components/com_phocadownload/models/fields/phocatextarea.php new file mode 100644 index 00000000..da2298b1 --- /dev/null +++ b/packages/phocadownload/administrator/components/com_phocadownload/models/fields/phocatextarea.php @@ -0,0 +1,81 @@ +_getPhocaParams( $this->element['name'] ); + + // Initialize some field attributes. + $class = $this->element['class'] ? ' class="'.(string) $this->element['class'].'"' : ''; + $disabled = ((string) $this->element['disabled'] == 'true') ? ' disabled="disabled"' : ''; + $columns = $this->element['cols'] ? ' cols="'.(int) $this->element['cols'].'"' : ''; + $rows = $this->element['rows'] ? ' rows="'.(int) $this->element['rows'].'"' : ''; + + // Initialize JavaScript field attributes. + $onchange = $this->element['onchange'] ? ' onchange="'.(string) $this->element['onchange'].'"' : ''; + + $value = htmlspecialchars($this->value, ENT_COMPAT, 'UTF-8'); + + // TODO 1.6 + // MENU - Set Default value to "" because of saving "" value into the menu link ( use global = "") + if ($option == "com_menus") { + $DefaultValue = (string)$this->element['default']; + if ($value == $DefaultValue) { + $value = ''; + } + } + + // MENU - Display the global value + if ($option == "com_menus") { + $html =''; + $html .='
[]
'; + } else { + $html = ''; + } + return $html; + } + + protected function getLabel() { + echo '
'; + return parent::getLabel(); + echo '
'; + } + + protected function _setPhocaParams(){ + $component = 'com_phocadownload'; + $paramsC = JComponentHelper::getParams($component) ; + $this->phocaParams = $paramsC; + } + + protected function _getPhocaParams( $name ){ + + // Don't call sql query by every param item (it will be loaded only one time) + if (!$this->phocaParams) { + $params = $this->_setPhocaParams(); + } + $globalValue = $this->phocaParams->get( $name, '' ); + return $globalValue; + } +} +?> \ No newline at end of file diff --git a/packages/phocadownload/administrator/components/com_phocadownload/models/fields/phocausers.php b/packages/phocadownload/administrator/components/com_phocadownload/models/fields/phocausers.php new file mode 100644 index 00000000..ceb78138 --- /dev/null +++ b/packages/phocadownload/administrator/components/com_phocadownload/models/fields/phocausers.php @@ -0,0 +1,28 @@ +form->getValue($this->element['name']); + + return PhocaDownloadUser::usersList($this->name, $this->id, $userId, 1, NULL,'name', 0 ); + + + } +} +?> \ No newline at end of file diff --git a/packages/phocadownload/administrator/components/com_phocadownload/models/forms/index.html b/packages/phocadownload/administrator/components/com_phocadownload/models/forms/index.html new file mode 100644 index 00000000..42682b47 --- /dev/null +++ b/packages/phocadownload/administrator/components/com_phocadownload/models/forms/index.html @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/phocadownload/administrator/components/com_phocadownload/models/forms/phocadownloadcat.xml b/packages/phocadownload/administrator/components/com_phocadownload/models/forms/phocadownloadcat.xml new file mode 100644 index 00000000..6a1da9da --- /dev/null +++ b/packages/phocadownload/administrator/components/com_phocadownload/models/forms/phocadownloadcat.xml @@ -0,0 +1,88 @@ + +
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + + + + + + + + + + + + +
+ + +
+ +
+
+ + +
diff --git a/packages/phocadownload/administrator/components/com_phocadownload/models/forms/phocadownloadfile.xml b/packages/phocadownload/administrator/components/com_phocadownload/models/forms/phocadownloadfile.xml new file mode 100644 index 00000000..7f33b2e4 --- /dev/null +++ b/packages/phocadownload/administrator/components/com_phocadownload/models/forms/phocadownloadfile.xml @@ -0,0 +1,159 @@ + +
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ + +
+
+ +
diff --git a/packages/phocadownload/administrator/components/com_phocadownload/models/forms/phocadownloadlayout.xml b/packages/phocadownload/administrator/components/com_phocadownload/models/forms/phocadownloadlayout.xml new file mode 100644 index 00000000..ee00a7f6 --- /dev/null +++ b/packages/phocadownload/administrator/components/com_phocadownload/models/forms/phocadownloadlayout.xml @@ -0,0 +1,22 @@ + +
+ +
+ + + + + + + + + + + +
+ + + + + +
diff --git a/packages/phocadownload/administrator/components/com_phocadownload/models/forms/phocadownloadlic.xml b/packages/phocadownload/administrator/components/com_phocadownload/models/forms/phocadownloadlic.xml new file mode 100644 index 00000000..65a51785 --- /dev/null +++ b/packages/phocadownload/administrator/components/com_phocadownload/models/forms/phocadownloadlic.xml @@ -0,0 +1,33 @@ + +
+ +
+ + + + + + + + + + + + + + + +
+ + +
+ + + + + + + +
+ +
diff --git a/packages/phocadownload/administrator/components/com_phocadownload/models/forms/phocadownloadmanager.xml b/packages/phocadownload/administrator/components/com_phocadownload/models/forms/phocadownloadmanager.xml new file mode 100644 index 00000000..8742e423 --- /dev/null +++ b/packages/phocadownload/administrator/components/com_phocadownload/models/forms/phocadownloadmanager.xml @@ -0,0 +1,33 @@ + +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
+
diff --git a/packages/phocadownload/administrator/components/com_phocadownload/models/forms/phocadownloadstyle.xml b/packages/phocadownload/administrator/components/com_phocadownload/models/forms/phocadownloadstyle.xml new file mode 100644 index 00000000..81c2e3c2 --- /dev/null +++ b/packages/phocadownload/administrator/components/com_phocadownload/models/forms/phocadownloadstyle.xml @@ -0,0 +1,32 @@ + +
+ +
+ + + + + + + + + + + + + + + + +
+ + +
+ + + + + + +
+
diff --git a/packages/phocadownload/administrator/components/com_phocadownload/models/forms/phocadownloadtag.xml b/packages/phocadownload/administrator/components/com_phocadownload/models/forms/phocadownloadtag.xml new file mode 100644 index 00000000..5ce177d4 --- /dev/null +++ b/packages/phocadownload/administrator/components/com_phocadownload/models/forms/phocadownloadtag.xml @@ -0,0 +1,37 @@ + +
+ +
+ + + + + + + + + + + + + + + +
+ + +
+ + + + + + + + + + +
+ + +
diff --git a/packages/phocadownload/administrator/components/com_phocadownload/models/index.html b/packages/phocadownload/administrator/components/com_phocadownload/models/index.html new file mode 100644 index 00000000..fa6d84e8 --- /dev/null +++ b/packages/phocadownload/administrator/components/com_phocadownload/models/index.html @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/phocadownload/administrator/components/com_phocadownload/models/phocadownloadcat.php b/packages/phocadownload/administrator/components/com_phocadownload/models/phocadownloadcat.php new file mode 100644 index 00000000..495323fd --- /dev/null +++ b/packages/phocadownload/administrator/components/com_phocadownload/models/phocadownloadcat.php @@ -0,0 +1,627 @@ +catid)) { + return $user->authorise('core.delete', 'com_phocadownload.phocadownloadcat.'.(int) $record->catid); + } else { + return parent::canDelete($record); + } + } + + protected function canEditState($record){ + $user = JFactory::getUser(); + + if (!empty($record->catid)) { + return $user->authorise('core.edit.state', 'com_phocadownload.phocadownloadcat.'.(int) $record->catid); + } else { + return parent::canEditState($record); + } + } + + public function getTable($type = 'PhocaDownloadCat', $prefix = 'Table', $config = array()){ + return JTable::getInstance($type, $prefix, $config); + } + + public function getForm($data = array(), $loadData = true) { + + $app = JFactory::getApplication(); + $form = $this->loadForm('com_phocadownload.phocadownloadcat', 'phocadownloadcat', array('control' => 'jform', 'load_data' => $loadData)); + if (empty($form)) { + return false; + } + return $form; + } + + protected function loadFormData() + { + // Check the session for previously entered form data. + $data = JFactory::getApplication()->getUserState('com_phocadownload.edit.phocadownloadcat.data', array()); + + if (empty($data)) { + $data = $this->getItem(); + } + + return $data; + } + + public function getItem($pk = null) { + if ($item = parent::getItem($pk)) { + // Convert the params field to an array. + $registry = new JRegistry; + $registry->loadString($item->metadata); + $item->metadata = $registry->toArray(); + } + + return $item; + } + + protected function prepareTable($table){ + jimport('joomla.filter.output'); + $date = JFactory::getDate(); + $user = JFactory::getUser(); + + $table->title = htmlspecialchars_decode($table->title, ENT_QUOTES); + $table->alias = JApplication::stringURLSafe($table->alias); + + if (empty($table->alias)) { + $table->alias = JApplication::stringURLSafe($table->title); + } + + if (empty($table->id)) { + // Set the values + //$table->created = $date->toSql(); + + // Set ordering to the last item if not set + if (empty($table->ordering)) { + $db = JFactory::getDbo(); + $db->setQuery('SELECT MAX(ordering) FROM #__phocadownload_categories'); + $max = $db->loadResult(); + + $table->ordering = $max+1; + } + } + else { + // Set the values + //$table->modified = $date->toSql(); + //$table->modified_by = $user->get('id'); + } + } + + + protected function getReorderConditions($table = null) + { + $condition = array(); + $condition[] = 'parent_id = '. (int) $table->parent_id; + //$condition[] = 'state >= 0'; + return $condition; + } + + + + + + + /* + * Custom Save method - libraries/joomla/application/component/modeladmin.php + */ + public function save($data) + { + + // = = = = = = = = = = + // Default VALUES FOR Rights in FRONTEND + // ACCESS - 0: all users can see the category (registered or not registered) + // if registered or not registered it will be set in ACCESS LEVEL not here) + // if -1 - user was not selected so every registered or special users can see category + // UPLOAD - -2: nobody can upload or add images in front (if 0 - every users can do it) + // DELETE - -2: nobody can upload or add images in front (if 0 - every users can do it) + if(!isset($data['accessuserid'])) { $data['accessuserid'] = array();} + if(!isset($data['uploaduserid'])) { $data['uploaduserid'] = array();} + if(!isset($data['deleteuserid'])) { $data['deleteuserid'] = array();} + $accessUserIdArray = PhocaDownloadUtils::toArray($data['accessuserid']); + $uploadUserIdArray = PhocaDownloadUtils::toArray($data['uploaduserid']); + $deleteUserIdArray = PhocaDownloadUtils::toArray($data['deleteuserid']); + + if (isset($data['access']) && (int)$data['access'] > 0 && (int)$accessUserIdArray[0] == 0) { + $accessUserId[0] = -1; + } + $data['accessuserid'] = implode(',',$accessUserIdArray); + $data['uploaduserid'] = implode(',',$uploadUserIdArray); + $data['deleteuserid'] = implode(',',$deleteUserIdArray); + + // = = = = = = = = = = + + + // Initialise variables; + $dispatcher = JDispatcher::getInstance(); + $table = $this->getTable(); + $pk = (!empty($data['id'])) ? $data['id'] : (int)$this->getState($this->getName().'.id'); + $isNew = true; + + // Include the content plugins for the on save events. + JPluginHelper::importPlugin('content'); + + // Load the row if saving an existing record. + if ($pk > 0) { + $table->load($pk); + $isNew = false; + } + + // Bind the data. + if (!$table->bind($data)) { + $this->setError($table->getError()); + return false; + } + + if(intval($table->date) == 0) { + $table->date = JFactory::getDate()->toSql(); + } + + // Prepare the row for saving + $this->prepareTable($table); + + // Check the data. + if (!$table->check()) { + $this->setError($table->getError()); + return false; + } + + // Trigger the onContentBeforeSave event. + /*$result = $dispatcher->trigger($this->event_before_save, array($this->option.'.'.$this->name, $table, $isNew)); + if (in_array(false, $result, true)) { + $this->setError($table->getError()); + return false; + }*/ + + // Store the data. + if (!$table->store()) { + $this->setError($table->getError()); + return false; + } + + // Clean the cache. + $cache = JFactory::getCache($this->option); + $cache->clean(); + + // Trigger the onContentAfterSave event. + //$dispatcher->trigger($this->event_after_save, array($this->option.'.'.$this->name, $table, $isNew)); + + $pkName = $table->getKeyName(); + if (isset($table->$pkName)) { + $this->setState($this->getName().'.id', $table->$pkName); + } + $this->setState($this->getName().'.new', $isNew); + + + + return true; + } + + + + + + + function delete(&$cid = array()) { + $app = JFactory::getApplication(); + $db = JFactory::getDBO(); + + $result = false; + if (count( $cid )) { + JArrayHelper::toInteger($cid); + $cids = implode( ',', $cid ); + + // FIRST - if there are subcategories - - - - - + $query = 'SELECT c.id, c.name, c.title, COUNT( s.parent_id ) AS numcat' + . ' FROM #__phocadownload_categories AS c' + . ' LEFT JOIN #__phocadownload_categories AS s ON s.parent_id = c.id' + . ' WHERE c.id IN ( '.$cids.' )' + . ' GROUP BY c.id' + ; + $db->setQuery( $query ); + + if (!($rows2 = $db->loadObjectList())) { + JError::raiseError( 500, $db->stderr('Load Data Problem') ); + return false; + } + + // Add new CID without categories which have subcategories (we don't delete categories with subcat) + $err_cat = array(); + $cid = array(); + foreach ($rows2 as $row) { + if ($row->numcat == 0) { + $cid[] = (int) $row->id; + } else { + $err_cat[] = $row->title; + } + } + // - - - - - - - - - - - - - - - + + // Images with new cid - - - - - + if (count( $cid )) { + JArrayHelper::toInteger($cid); + $cids = implode( ',', $cid ); + + // Select id's from phocadownload tables. If the category has some images, don't delete it + $query = 'SELECT c.id, c.name, c.title, COUNT( s.catid ) AS numcat' + . ' FROM #__phocadownload_categories AS c' + . ' LEFT JOIN #__phocadownload AS s ON s.catid = c.id' + . ' WHERE c.id IN ( '.$cids.' )' + . ' GROUP BY c.id'; + + $db->setQuery( $query ); + + if (!($rows = $db->loadObjectList())) { + JError::raiseError( 500, $db->stderr('Load Data Problem') ); + return false; + } + + $err_img = array(); + $cid = array(); + foreach ($rows as $row) { + if ($row->numcat == 0) { + $cid[] = (int) $row->id; + } else { + $err_img[] = $row->title; + } + } + + if (count( $cid )) { + $cids = implode( ',', $cid ); + $query = 'DELETE FROM #__phocadownload_categories' + . ' WHERE id IN ( '.$cids.' )'; + $db->setQuery( $query ); + if (!$db->query()) { + $this->setError($this->_db->getErrorMsg()); + return false; + } + + // Delete items in phocadownload_user_category + /* $query = 'DELETE FROM #__phocadownload_user_category' + . ' WHERE catid IN ( '.$cids.' )'; + $db->setQuery( $query ); + if (!$db->query()) { + $this->setError($this->_db->getErrorMsg()); + return false; + }*/ + } + } + + // There are some images in the category - don't delete it + $msg = ''; + if (count( $err_cat ) || count( $err_img )) { + if (count( $err_cat )) { + $cids_cat = implode( ", ", $err_cat ); + $msg .= JText::plural( 'COM_PHOCADOWNLOAD_ERROR_DELETE_CONTAIN_CAT', $cids_cat ); + } + + if (count( $err_img )) { + $cids_img = implode( ", ", $err_img ); + $msg .= JText::plural( 'COM_PHOCADOWNLOAD_ERROR_DELETE_CONTAIN_FILE', $cids_img ); + } + $link = 'index.php?option=com_phocadownload&view=phocadownloadcats'; + $app->redirect($link, $msg); + } + } + return true; + } + + protected function batchCopy($value, $pks, $contexts) + { + $categoryId = (int) $value; + + + $table = $this->getTable(); + $db = $this->getDbo(); + + // Check that the category exists + if ($categoryId) { + $categoryTable = JTable::getInstance('PhocaDownloadCat', 'Table'); + + if (!$categoryTable->load($categoryId)) { + if ($error = $categoryTable->getError()) { + // Fatal error + $this->setError($error); + return false; + } + else { + $this->setError(JText::_('JLIB_APPLICATION_ERROR_BATCH_MOVE_CATEGORY_NOT_FOUND')); + return false; + } + } + } + + //if (empty($categoryId)) { + if (!isset($categoryId)) { + $this->setError(JText::_('JLIB_APPLICATION_ERROR_BATCH_MOVE_CATEGORY_NOT_FOUND')); + return false; + } + + // Check that the user has create permission for the component + $extension = JRequest::getCmd('option'); + $user = JFactory::getUser(); + if (!$user->authorise('core.create', $extension)) { + $this->setError(JText::_('JLIB_APPLICATION_ERROR_BATCH_CANNOT_CREATE')); + return false; + } + + $i = 0; + + // Parent exists so we let's proceed + while (!empty($pks)) + { + // Pop the first ID off the stack + $pk = array_shift($pks); + + $table->reset(); + + // Check that the row actually exists + if (!$table->load($pk)) { + if ($error = $table->getError()) { + // Fatal error + $this->setError($error); + return false; + } + else { + // Not fatal error + $this->setError(JText::sprintf('JLIB_APPLICATION_ERROR_BATCH_MOVE_ROW_NOT_FOUND', $pk)); + continue; + } + } + + // Alter the title & alias + $data = $this->generateNewTitle($categoryId, $table->alias, $table->title); + $table->title = $data['0']; + $table->alias = $data['1']; + + // Reset the ID because we are making a copy + $table->id = 0; + + // New category ID + $table->parent_id = $categoryId; + + // Ordering + $table->ordering = $this->increaseOrdering($categoryId); + + $table->hits = 0; + + // Check the row. + if (!$table->check()) { + $this->setError($table->getError()); + return false; + } + + // Store the row. + if (!$table->store()) { + $this->setError($table->getError()); + return false; + } + + // Get the new item ID + $newId = $table->get('id'); + + // Add the new ID to the array + $newIds[$i] = $newId; + $i++; + } + + // Clean the cache + $this->cleanCache(); + + return $newIds; + } + + protected function batchMove($value, $pks, $contexts) + { + $categoryId = (int) $value; + + $table = $this->getTable(); + //$db = $this->getDbo(); + + // Check that the category exists + if ($categoryId) { + $categoryTable = JTable::getInstance('PhocaDownloadCat', 'Table'); + if (!$categoryTable->load($categoryId)) { + if ($error = $categoryTable->getError()) { + // Fatal error + $this->setError($error); + return false; + } + else { + $this->setError(JText::_('JLIB_APPLICATION_ERROR_BATCH_MOVE_CATEGORY_NOT_FOUND')); + return false; + } + } + } + + //if (empty($categoryId)) { + if (!isset($categoryId)) { + $this->setError(JText::_('JLIB_APPLICATION_ERROR_BATCH_MOVE_CATEGORY_NOT_FOUND')); + return false; + } + + // Check that user has create and edit permission for the component + $extension = JRequest::getCmd('option'); + $user = JFactory::getUser(); + if (!$user->authorise('core.create', $extension)) { + $this->setError(JText::_('JLIB_APPLICATION_ERROR_BATCH_CANNOT_CREATE')); + return false; + } + + if (!$user->authorise('core.edit', $extension)) { + $this->setError(JText::_('JLIB_APPLICATION_ERROR_BATCH_CANNOT_EDIT')); + return false; + } + + // Parent exists so we let's proceed + foreach ($pks as $pk) + { + // Check that the row actually exists + if (!$table->load($pk)) { + if ($error = $table->getError()) { + // Fatal error + $this->setError($error); + return false; + } + else { + // Not fatal error + $this->setError(JText::sprintf('JLIB_APPLICATION_ERROR_BATCH_MOVE_ROW_NOT_FOUND', $pk)); + continue; + } + } + + // Set the new category ID + $table->parent_id = $categoryId; + + + // Cannot move the node to be a child of itself. + if ((int)$table->id == (int)$categoryId) { + $e = new JException(JText::sprintf('JLIB_DATABASE_ERROR_INVALID_NODE_RECURSION', get_class($pk))); + $this->setError($e); + return false; + } + + // Check the row. + if (!$table->check()) { + $this->setError($table->getError()); + return false; + } + + // Store the row. + if (!$table->store()) { + $this->setError($table->getError()); + return false; + } + } + + // Clean the cache + $this->cleanCache(); + + return true; + } + + + public function increaseOrdering($categoryId) { + + $ordering = 1; + $this->_db->setQuery('SELECT MAX(ordering) FROM #__phocadownload_categories WHERE parent_id='.(int)$categoryId); + $max = $this->_db->loadResult(); + $ordering = $max + 1; + return $ordering; + } + + + public function batch($commands, $pks, $contexts) + { + + // Sanitize user ids. + $pks = array_unique($pks); + JArrayHelper::toInteger($pks); + + // Remove any values of zero. + if (array_search(0, $pks, true)) { + unset($pks[array_search(0, $pks, true)]); + } + + if (empty($pks)) { + $this->setError(JText::_('JGLOBAL_NO_ITEM_SELECTED')); + return false; + } + + $done = false; + + if (!empty($commands['assetgroup_id'])) { + if (!$this->batchAccess($commands['assetgroup_id'], $pks)) { + return false; + } + + $done = true; + } + + //PHOCAEDIT - Parent is by Phoca 0 not 1 like by Joomla! + $comCat =false; + if ($commands['category_id'] == '') { + $comCat = false; + } else if ( $commands['category_id'] == '0') { + $comCat = true; + } else if ((int)$commands['category_id'] > 0) { + $comCat = true; + } + + if ($comCat) + //if (isset($commands['category_id'])) + { + $cmd = JArrayHelper::getValue($commands, 'move_copy', 'c'); + + if ($cmd == 'c') + { + $result = $this->batchCopy($commands['category_id'], $pks, $contexts); + if (is_array($result)) + { + $pks = $result; + } + else + { + return false; + } + } + elseif ($cmd == 'm' && !$this->batchMove($commands['category_id'], $pks, $contexts)) + { + return false; + } + $done = true; + } + + if (!empty($commands['language_id'])) + { + if (!$this->batchLanguage($commands['language_id'], $pks, $contexts)) + { + return false; + } + + $done = true; + } + + if (!$done) { + $this->setError(JText::_('JLIB_APPLICATION_ERROR_INSUFFICIENT_BATCH_INFORMATION')); + return false; + } + + // Clear the cache + $this->cleanCache(); + + return true; + } + + + protected function generateNewTitle($category_id, $alias, $title) + { + // Alter the title & alias + $table = $this->getTable(); + while ($table->load(array('alias' => $alias, 'parent_id' => $category_id))) + { + $title = JString::increment($title); + $alias = JString::increment($alias, 'dash'); + } + + return array($title, $alias); + } + +} +?> \ No newline at end of file diff --git a/packages/phocadownload/administrator/components/com_phocadownload/models/phocadownloadcats.php b/packages/phocadownload/administrator/components/com_phocadownload/models/phocadownloadcats.php new file mode 100644 index 00000000..dfc4a1e9 --- /dev/null +++ b/packages/phocadownload/administrator/components/com_phocadownload/models/phocadownloadcats.php @@ -0,0 +1,281 @@ +getUserStateFromRequest($this->context.'.filter.search', 'filter_search'); + $this->setState('filter.search', $search); + + $accessId = $app->getUserStateFromRequest($this->context.'.filter.access', 'filter_access', null, 'int'); + $this->setState('filter.access', $accessId); + + $state = $app->getUserStateFromRequest($this->context.'.filter.state', 'filter_published', '', 'string'); + $this->setState('filter.state', $state); + + // Not used in SQL - used in view in recursive category tree function + $levels = $app->getUserStateFromRequest($this->context.'.filter.level', 'filter_level', '', 'string'); + $this->setState('filter.level', $levels); + + $categoryId = $app->getUserStateFromRequest($this->context.'.filter.parent_id', 'filter_parent_id', null); + $this->setState('filter.parent_id', $categoryId); + + $language = $app->getUserStateFromRequest($this->context.'.filter.language', 'filter_language', ''); + $this->setState('filter.language', $language); + + // Load the parameters. + $params = JComponentHelper::getParams('com_phocadownload'); + $this->setState('params', $params); + + // List state information. + parent::populateState('a.title', 'asc'); + } + + protected function getStoreId($id = '') + { + // Compile the store id. + $id .= ':'.$this->getState('filter.search'); + $id .= ':'.$this->getState('filter.access'); + $id .= ':'.$this->getState('filter.state'); + $id .= ':'.$this->getState('filter.category_id'); + $id .= ':'.$this->getState('filter.file_id'); + + return parent::getStoreId($id); + } + + /* + * Because of tree we need to load all the items + * + * We need to load all items because of creating tree + * After creating tree we get info from pagination + * and will set displaying of categories for current pagination + * E.g. pagination is limitstart 5, limit 5 - so only categories from 5 to 10 will be displayed (in Default.php) + */ + + public function getItems() + { + // Get a storage key. + $store = $this->getStoreId(); + + // Try to load the data from internal storage. + if (!empty($this->cache[$store])) { + return $this->cache[$store]; + } + + // Load the list items. + $query = $this->getListQuery(); + //$items = $this->_getList($query, $this->getState('list.start'), $this->getState('list.limit')); + + $items = $this->_getList($query); + + // Check for a database error. + if ($this->_db->getErrorNum()) { + $this->setError($this->_db->getErrorMsg()); + return false; + } + + // Add the items to the internal cache. + $this->cache[$store] = $items; + + return $this->cache[$store]; + } + + protected function getListQuery() + { + /* + $query = ' SELECT a.*, cc.title AS parentname, u.name AS editor, v.average AS ratingavg, ua.username AS usercatname, c.countid AS countid, ag.title AS access_level' + . ' FROM #__phocadownload_categories AS a ' + . ' LEFT JOIN #__users AS u ON u.id = a.checked_out ' + . ' LEFT JOIN #__viewlevels AS ag ON ag.id = a.access ' + . ' LEFT JOIN #__phocadownload_categories AS cc ON cc.id = a.parent_id' + . ' LEFT JOIN #__phocadownload_votes_statistics AS v ON v.catid = a.id' + . ' LEFT JOIN #__users AS ua ON ua.id = a.owner_id' + . ' JOIN (SELECT c.parent_id, count(*) AS countid' + . ' FROM #__phocadownload_categories AS c' + .' GROUP BY c.parent_id ) AS c' + .' ON a.parent_id = c.parent_id' + . $where + . $orderby; + */ + // Create a new query object. + $db = $this->getDbo(); + $query = $db->getQuery(true); + + // Select the required fields from the table. + $query->select( + $this->getState( + 'list.select', + 'a.*' + ) + ); + $query->from('`#__phocadownload_categories` AS a'); + + // Join over the language + $query->select('l.title AS language_title'); + $query->join('LEFT', '`#__languages` AS l ON l.lang_code = a.language'); + + // Join over the users for the checked out user. + + + $query->select('uc.name AS editor'); + $query->join('LEFT', '#__users AS uc ON uc.id=a.checked_out'); + + + + // Join over the asset groups. + $query->select('ag.title AS access_level'); + $query->join('LEFT', '#__viewlevels AS ag ON ag.id = a.access'); + + // Join over the categories. + $query->select('c.title AS parentcat_title, c.id AS parentcat_id'); + $query->join('LEFT', '#__phocadownload_categories AS c ON c.id = a.parent_id'); + + //$query->select('ua.id AS userid, ua.username AS username, ua.name AS usernameno'); + //$query->join('LEFT', '#__users AS ua ON ua.id = a.owner_id'); + + + + $query->select('cc.countid AS countid'); + $query->join('LEFT', '(SELECT cc.parent_id, count(*) AS countid' + . ' FROM #__phocadownload_categories AS cc' + .' GROUP BY cc.parent_id ) AS cc' + .' ON a.parent_id = cc.parent_id'); + + + // Filter by access level. + if ($access = $this->getState('filter.access')) { + $query->where('a.access = '.(int) $access); + } + + // Filter by published state. + $published = $this->getState('filter.state'); + if (is_numeric($published)) { + $query->where('a.published = '.(int) $published); + } + else if ($published === '') { + $query->where('(a.published IN (0, 1))'); + } + + // Filter by category. + $categoryId = $this->getState('filter.parent_id'); + if (is_numeric($categoryId)) { + $query->where('a.parent_id = ' . (int) $categoryId); + } + + // Filter on the language. + if ($language = $this->getState('filter.language')) { + $query->where('a.language = ' . $db->quote($language)); + } + + // Filter by search in title + $search = $this->getState('filter.search'); + if (!empty($search)) + { + if (stripos($search, 'id:') === 0) { + $query->where('a.id = '.(int) substr($search, 3)); + } + else + { + $search = $db->Quote('%'.$db->escape($search, true).'%'); + $query->where('( a.title LIKE '.$search.' OR a.alias LIKE '.$search.')'); + } + } + + $query->group('a.id'); + + // Add the list ordering clause. + $orderCol = $this->state->get('list.ordering', 'title'); + $orderDirn = $this->state->get('list.direction', 'asc'); + /*if ($orderCol == 'a.ordering' || $orderCol == 'parentcat_title') { + $orderCol = 'parentcat_title '.$orderDirn.', a.ordering'; + }*/ + $query->order($db->escape($orderCol.' '.$orderDirn)); + + //echo nl2br(str_replace('#__', 'jos_', $query->__toString())); + + + return $query; + } + + public function getTotal() { + $store = $this->getStoreId('getTotal'); + if (isset($this->cache[$store])) { + return $this->cache[$store]; + } + + // PHOCAEDIT + if (isset($this->total) && (int)$this->total > 0) { + $total = (int)$this->total; + } else { + $query = $this->_getListQuery(); + + try { + $total = (int) $this->_getListCount($query); + } + catch (RuntimeException $e) { + $this->setError($e->getMessage()); + + return false; + } + } + + $this->cache[$store] = $total; + return $this->cache[$store]; + } + + public function setTotal($total) { + // When we use new total and new pagination, we need to clean their cache + $store1 = $this->getStoreId('getTotal'); + $store2 = $this->getStoreId('getStart'); + $store3 = $this->getStoreId('getPagination'); + + unset($this->cache[$store1]); + unset($this->cache[$store2]); + unset($this->cache[$store3]); + $this->total = (int)$total; + } + +} +?> \ No newline at end of file diff --git a/packages/phocadownload/administrator/components/com_phocadownload/models/phocadownloaddownloads.php b/packages/phocadownload/administrator/components/com_phocadownload/models/phocadownloaddownloads.php new file mode 100644 index 00000000..23c24d05 --- /dev/null +++ b/packages/phocadownload/administrator/components/com_phocadownload/models/phocadownloaddownloads.php @@ -0,0 +1,214 @@ +getUserStateFromRequest($this->context.'.filter.search', 'filter_search'); + $this->setState('filter.search', $search); +/* + $accessId = $app->getUserStateFromRequest($this->context.'.filter.access', 'filter_access', null, 'int'); + $this->setState('filter.access', $accessId); + + $state = $app->getUserStateFromRequest($this->context.'.filter.state', 'filter_published', '', 'string'); + $this->setState('filter.state', $state); +*/ + $id = JRequest::getVar( 'id', '', '', 'int'); + if ((int)$id > 0) { + $this->setState('filter.filestat_id', $id); + } else { + //$fileStatId = $app->getUserStateFromRequest($this->context.'.filter.filestat_id', 'filter_filestat_id', $id); + $this->setState('filter.filestat_id', 0); + } +/* + $language = $app->getUserStateFromRequest($this->context.'.filter.language', 'filter_language', ''); + $this->setState('filter.language', $language);*/ + + // Load the parameters. + $params = JComponentHelper::getParams('com_phocadownload'); + $this->setState('params', $params); + + // List state information. + parent::populateState('username', 'asc'); + } + + protected function getStoreId($id = '') + { + // Compile the store id. + $id .= ':'.$this->getState('filter.search'); + /*$id .= ':'.$this->getState('filter.access'); + $id .= ':'.$this->getState('filter.state'); + $id .= ':'.$this->getState('filter.category_id');*/ + $id .= ':'.$this->getState('filter.filestat_id'); + + return parent::getStoreId($id); + } + + + protected function getListQuery() + { + /*$query = ' SELECT a.id, a.userid, a.fileid, d.filename AS filename, d.title AS filetitle, a.count, a.date, u.name AS uname, u.username AS username, 0 AS checked_out' + . ' FROM #__phocadownload_user_stat AS a ' + . ' LEFT JOIN #__phocadownload AS d ON d.id = a.fileid ' + . ' LEFT JOIN #__users AS u ON u.id = a.userid ' + . $where + . ' GROUP by a.id' + . $orderby; + */ + // Create a new query object. + $db = $this->getDbo(); + $query = $db->getQuery(true); + + // Select the required fields from the table. + $query->select( + $this->getState( + 'list.select', + 'a.*' + ) + ); + $query->from('`#__phocadownload_user_stat` AS a'); + + // Join over the language + //$query->select('l.title AS language_title'); + //$query->join('LEFT', '`#__languages` AS l ON l.lang_code = a.language'); + + // Join over the users for the checked out user. + + + //$query->select('uc.name AS editor'); + //$query->join('LEFT', '#__users AS uc ON uc.id=a.checked_out'); + + + + // Join over the asset groups. + //$query->select('ag.title AS access_level'); + //$query->join('LEFT', '#__viewlevels AS ag ON ag.id = a.access'); + + // Join over the categories. + $query->select('d.filename AS filename, d.title AS filetitle'); + $query->join('LEFT', '#__phocadownload AS d ON d.id = a.fileid'); + + $query->select('ua.id AS userid, ua.username AS username, ua.name AS usernameno'); + $query->join('LEFT', '#__users AS ua ON ua.id = a.userid'); + + //$query->select('v.average AS ratingavg'); + //$query->join('LEFT', '#__phocadownload_img_votes_statistics AS v ON v.imgid = a.id'); + + // Filter by access level. + //if ($access = $this->getState('filter.access')) { + // $query->where('a.access = '.(int) $access); + //} + + // Filter by published state. + /*$published = $this->getState('filter.state'); + if (is_numeric($published)) { + $query->where('a.published = '.(int) $published); + } + else if ($published === '') { + $query->where('(a.published IN (0, 1))'); + } + + // Filter by category.*/ + /*$fileStatId = $this->getState('filter.filestat_id'); + + if (is_numeric($fileStatId)) { + $query->where('a.fileid = ' . (int) $fileStatId); + }*/ + + // Filter by search in title + $search = $this->getState('filter.search'); + + if (!empty($search)) + { + if (stripos($search, 'id:') === 0) { + $query->where('a.id = '.(int) substr($search, 3)); + } + else + { + $search = $db->Quote('%'.$db->escape($search, true).'%'); + $query->where('( ua.username LIKE '.$search.' OR ua.name LIKE '.$search.' OR d.filename LIKE '.$search.' OR d.title LIKE '.$search.')'); + } + } + + $query->group('a.id'); + + // Add the list ordering clause. + //$orderCol = $this->state->get('list.ordering'); + //$orderDirn = $this->state->get('list.direction'); + $orderCol = $this->state->get('list.ordering', 'username'); + $orderDirn = $this->state->get('list.direction', 'asc'); + + if ($orderCol == 'a.id' || $orderCol == 'username') { + $orderCol = 'ua.username '.$orderDirn.', a.id'; + } + $query->order($db->escape($orderCol.' '.$orderDirn)); + + + return $query; + + } + + + function reset($cid = array()) { + if (count( $cid )) { + JArrayHelper::toInteger($cid); + $cids = implode( ',', $cid ); + $date = gmdate('Y-m-d H:i:s'); + //Delete it from DB + $query = 'UPDATE #__phocadownload_user_stat' + .' SET count = 0,' + .' date = '.$this->_db->Quote($date) + .' WHERE id IN ( '.$cids.' )'; + + $this->_db->setQuery( $query ); + if(!$this->_db->query()) { + $this->setError($this->_db->getErrorMsg()); + return false; + } + } + return true; + } +} +?> \ No newline at end of file diff --git a/packages/phocadownload/administrator/components/com_phocadownload/models/phocadownloadfile.php b/packages/phocadownload/administrator/components/com_phocadownload/models/phocadownloadfile.php new file mode 100644 index 00000000..eed9d609 --- /dev/null +++ b/packages/phocadownload/administrator/components/com_phocadownload/models/phocadownloadfile.php @@ -0,0 +1,690 @@ +catid)) { + return $user->authorise('core.delete', 'com_phocadownload.phocadownloadfile.'.(int) $record->catid); + } else { + return parent::canDelete($record); + } + } + + protected function canEditState($record) + { + $user = JFactory::getUser(); + + if (!empty($record->catid)) { + return $user->authorise('core.edit.state', 'com_phocadownload.phocadownloadfile.'.(int) $record->catid); + } else { + return parent::canEditState($record); + } + } + + public function getTable($type = 'PhocaDownload', $prefix = 'Table', $config = array()) + { + return JTable::getInstance($type, $prefix, $config); + } + + public function getForm($data = array(), $loadData = true) { + + $app = JFactory::getApplication(); + $form = $this->loadForm('com_phocadownload.phocadownloadfile', 'phocadownloadfile', array('control' => 'jform', 'load_data' => $loadData)); + + if (empty($form)) { + return false; + } + return $form; + } + + protected function loadFormData() + { + // Check the session for previously entered form data. + $data = JFactory::getApplication()->getUserState('com_phocadownload.edit.phocadownload.data', array()); + + if (empty($data)) { + $data = $this->getItem(); + } + + return $data; + } + + public function getItem($pk = null) + { + if ($item = parent::getItem($pk)) { + // Convert the params field to an array. + $registry = new JRegistry; + $registry->loadString($item->metadata); + $item->metadata = $registry->toArray(); + } + + return $item; + } + + protected function prepareTable($table) + { + jimport('joomla.filter.output'); + $date = JFactory::getDate(); + $user = JFactory::getUser(); + + $table->title = htmlspecialchars_decode($table->title, ENT_QUOTES); + $table->alias = JApplication::stringURLSafe($table->alias); + + if (empty($table->alias)) { + $table->alias = JApplication::stringURLSafe($table->title); + } + + if (empty($table->id)) { + // Set the values + //$table->created = $date->toSql(); + + // Set ordering to the last item if not set + if (empty($table->ordering)) { + $db = JFactory::getDbo(); + //$db->setQuery('SELECT MAX(ordering) FROM #__phocadownload'); + $db->setQuery('SELECT MAX(ordering) FROM #__phocadownload WHERE catid = '.(int)$table->catid); + $max = $db->loadResult(); + + $table->ordering = $max+1; + } + } + else { + // Set the values + //$table->modified = $date->toSql(); + //$table->modified_by = $user->get('id'); + } + } + + + + protected function getReorderConditions($table = null) + { + $condition = array(); + $condition[] = 'catid = '. (int) $table->catid; + //$condition[] = 'state >= 0'; + return $condition; + } + + function approve(&$pks, $value = 1) + { + // Initialise variables. + $dispatcher = JDispatcher::getInstance(); + $user = JFactory::getUser(); + $table = $this->getTable('phocadownload'); + $pks = (array) $pks; + + // Include the content plugins for the change of state event. + JPluginHelper::importPlugin('content'); + + // Access checks. + foreach ($pks as $i => $pk) { + if ($table->load($pk)) { + if (!$this->canEditState($table)) { + // Prune items that you can't change. + unset($pks[$i]); + JError::raiseWarning(403, JText::_('JLIB_APPLICATION_ERROR_EDIT_STATE_NOT_PERMITTED')); + } + } + } + + // Attempt to change the state of the records. + if (!$table->approve($pks, $value, $user->get('id'))) { + $this->setError($table->getError()); + return false; + } + + $context = $this->option.'.'.$this->name; + + // Trigger the onContentChangeState event. + /* $result = $dispatcher->trigger($this->event_change_state, array($context, $pks, $value)); + if (in_array(false, $result, true)) { + $this->setError($table->getError()); + return false; + } */ + + return true; + } + + function save($data) { + + //$data['filesize'] = PhocaDownloadUtils::getFileSize($data['filename'], 0); + + if ($data['alias'] == '') { + $data['alias'] = $data['title']; + } + + //$data['alias'] = PhocaDownloadText::get AliasName($data['alias']); + + + // Initialise variables; + $dispatcher = JDispatcher::getInstance(); + $table = $this->getTable(); + $pk = (!empty($data['id'])) ? $data['id'] : (int)$this->getState($this->getName().'.id'); + $isNew = true; + + // Include the content plugins for the on save events. + JPluginHelper::importPlugin('content'); + + // Load the row if saving an existing record. + if ($pk > 0) { + $table->load($pk); + $isNew = false; + } + + // ================================================= + // Make a copy for play and preview + $paramsC = JComponentHelper::getParams('com_phocadownload') ; + $papCopy = $paramsC->get( 'pap_copy', 0 ); + $overwriteExistingFiles = $paramsC->get( 'overwrite_existing_files', 0 ); + $path = PhocaDownloadPath::getPathSet(); + + + if ($papCopy == 2 || $papCopy == 3) { + $canPlay = PhocaDownloadFile::canPlay($data['filename']); + $canPreview = PhocaDownloadFile::canPreview($data['filename']); + $filepath = JPath::clean($path['orig_abs_ds'] . DS.$data['filename']); + $filepathPAP = JPath::clean($path['orig_abs_pap_ds'] . DS.$data['filename']); + $filepathPAPFolder = JPath::clean($path['orig_abs_pap_ds'] . DS. PhocaDownloadFile::getFolderFromTheFile($data['filename'])); + + if ($canPlay || $canPreview) { + + $uploadPAP = 1;// upload file for preview and play + if (JFile::exists($filepathPAP) && $overwriteExistingFiles == 0) { + //$errUploadMsg = JText::_("COM_PHOCADOWNLOAD_FILE_ALREADY_EXISTS"); + //return false; + $uploadPAP = 0; // don't upload if it exists, it is not main file, don't do false and exit + + if ($canPlay == 1) { + // set new file only no other is set + if ($data['filename_play'] != '') { + $uploadPAP = 0; + } else { + $data['filename_play'] = $data['filename']; + } + } else if ($canPreview == 1) { + // set new file only no other is set + if ($data['filename_preview'] != '') { + $uploadPAP = 0; + } else { + $data['filename_preview'] = $data['filename']; + } + } + } + + + // Overwrite file and add no new item to database + $fileExistsPAP = 0; + if (JFile::exists($filepathPAP) && $overwriteExistingFiles == 1) { + $fileExistsPAP = 1; + + if ($canPlay == 1) { + // set new file only no other is set or it is the same like currect - to overwrite updated version of the same file + if ($data['filename_play'] == '' || $data['filename_play'] == $data['filename']) { + $data['filename_play'] = $data['filename']; + } else { + $uploadPAP = 0; + } + } else if ($canPreview == 1) { + // set new file only no other is set or it is the same like currect - to overwrite updated version of the same file + if ($data['filename_preview'] == '' || $data['filename_preview'] == $data['filename']) { + $data['filename_preview'] = $data['filename']; + } else { + $uploadPAP = 0; + } + } + } + + if ($uploadPAP == 0) { + + } else { + if (!JFolder::exists($filepathPAPFolder)) { + if (JFolder::create($filepathPAPFolder)) { + $dataFile = "\n\n\n"; + JFile::write($filepathPAPFolder . DS ."index.html", $dataFile); + } + // else { + //$errUploadMsg = JText::_("COM_PHOCADOWNLOAD_UNABLE_TO_CREATE_FOLDER"); + //return false; + //} + } + + if (!JFile::copy($filepath, $filepathPAP)) { + //$errUploadMsg = JText::_("COM_PHOCADOWNLOAD_UNABLE_TO_UPLOAD_FILE"); + //return false; + } else { + + + if ($canPlay == 1) { + $data['filename_play'] = $data['filename']; + } else if ($canPreview == 1) { + $data['filename_preview'] = $data['filename']; + } + } + } + } + } + // ============================================== + + + // Bind the data. + if (!$table->bind($data)) { + $this->setError($table->getError()); + return false; + } + + // Date - - - - - + $nullDate = $this->_db->getNullDate(); + $config = JFactory::getConfig(); + $tzoffset = $config->get('offset'); + //$date = JFactory::getDate($table->date, $tzoffset); + //$table->date = $date->toSql(); + + // Append time if not added to publish date + //if (strlen(trim($table->publish_up)) <= 10) { + // $table->publish_up .= ' 00:00:00'; + //} + //$date = JFactory::getDate($table->publish_up, $tzoffset); + //$table->publish_up = $date->toSql(); + + if ($table->id) { + + // Test Solution add date when it is removed + if (!intval($table->date)) { + $date = JFactory::getDate(); + $table->date = $date->toSql(); + } + + } else { + if (!intval($table->date)) { + $date = JFactory::getDate(); + $table->date = $date->toSql(); + } + } + + if(intval($table->publish_up) == 0) { + $table->publish_up = JFactory::getDate()->toSql(); + } + + // Handle never unpublish date + if (trim($table->publish_down) == JText::_('Never') || trim( $table->publish_down ) == '') { + $table->publish_down = $nullDate; + } else { + if (strlen(trim( $table->publish_down )) <= 10) { + $table->publish_down .= ' 00:00:00'; + } + //$date = JFactory::getDate($table->publish_down, $tzoffset); + $date = JFactory::getDate($table->publish_down); + $table->publish_down = $date->toSql(); + } + // - - - - - - + + + // if new item, order last in appropriate group + if (!$table->id) { + $where = 'catid = ' . (int) $table->catid ; + $table->ordering = $table->getNextOrder( $where ); + } + + + + + + + + // Prepare the row for saving + $this->prepareTable($table); + + // Check the data. + if (!$table->check()) { + $this->setError($table->getError()); + return false; + } + + // Trigger the onContentBeforeSave event. + /* $result = $dispatcher->trigger($this->event_before_save, array($this->option.'.'.$this->name, $table, $isNew)); + if (in_array(false, $result, true)) { + $this->setError($table->getError()); + return false; + } */ + + // Store the data. + if (!$table->store()) { + $this->setError($table->getError()); + return false; + } + + // Store to ref table + if (!isset($data['tags'])) { + $data['tags'] = array(); + } + if ((int)$table->id > 0) { + PhocaDownloadTag::storeTags($data['tags'], (int)$table->id); + } + + // Clean the cache. + $cache = JFactory::getCache($this->option); + $cache->clean(); + + // Trigger the onContentAfterSave event. + //$dispatcher->trigger($this->event_after_save, array($this->option.'.'.$this->name, $table, $isNew)); + + $pkName = $table->getKeyName(); + if (isset($table->$pkName)) { + $this->setState($this->getName().'.id', $table->$pkName); + } + $this->setState($this->getName().'.new', $isNew); + + + + + + return true; + } + + + + function delete(&$cid = array()) { + + $result = false; + + $paramsC = JComponentHelper::getParams('com_phocadownload'); + $deleteExistingFiles = $paramsC->get( 'delete_existing_files', 0 ); + + if (count( $cid )) { + JArrayHelper::toInteger($cid); + $cids = implode( ',', $cid ); + + // - - - - - - - - - - - - - + // Get all filenames we want to delete from database, we delete all thumbnails from server of this file + $queryd = 'SELECT filename as filename FROM #__phocadownload WHERE id IN ( '.$cids.' )'; + $this->_db->setQuery($queryd); + $fileObject = $this->_db->loadObjectList(); + // - - - - - - - - - - - - - + + + //Delete it from DB + $query = 'DELETE FROM #__phocadownload' + . ' WHERE id IN ( '.$cids.' )'; + $this->_db->setQuery( $query ); + if(!$this->_db->query()) { + $this->setError($this->_db->getErrorMsg); + return false; + } + + //Delete tags from DB + $query = 'DELETE FROM #__phocadownload_tags_ref' + . ' WHERE fileid IN ( '.$cids.' )'; + $this->_db->setQuery( $query ); + if(!$this->_db->query()) { + $this->setError($this->_db->getErrorMsg()); + return false; + } + + // - - - - - - - - - - - - - - + // DELETE FILES ON SERVER + if ($deleteExistingFiles == 1) { + $path = PhocaDownloadPath::getPathSet(); + foreach ($fileObject as $key => $value) { + //The file can be stored in other category - don't delete it from server because other category use it + $querys = "SELECT id as id FROM #__phocadownload WHERE filename='".$value->filename."' "; + $this->_db->setQuery($querys); + $sameFileObject = $this->_db->loadObject(); + // same file in other category doesn't exist - we can delete it + if (!$sameFileObject) { + JFile::delete(JPath::clean($path['orig_abs_ds'].$value->filename)); + } + } + } + + } + return true; + } + + protected function batchCopy($value, $pks, $contexts) + { + $categoryId = (int) $value; + + $table = $this->getTable(); + $db = $this->getDbo(); + + // Check that the category exists + if ($categoryId) { + $categoryTable = JTable::getInstance('PhocaDownloadCat', 'Table'); + if (!$categoryTable->load($categoryId)) { + if ($error = $categoryTable->getError()) { + // Fatal error + $this->setError($error); + return false; + } + else { + $this->setError(JText::_('JLIB_APPLICATION_ERROR_BATCH_MOVE_CATEGORY_NOT_FOUND')); + return false; + } + } + } + + if (empty($categoryId)) { + $this->setError(JText::_('JLIB_APPLICATION_ERROR_BATCH_MOVE_CATEGORY_NOT_FOUND')); + return false; + } + + // Check that the user has create permission for the component + $extension = JRequest::getCmd('option'); + $user = JFactory::getUser(); + if (!$user->authorise('core.create', $extension)) { + $this->setError(JText::_('JLIB_APPLICATION_ERROR_BATCH_CANNOT_CREATE')); + return false; + } + + $i = 0; + + // Parent exists so we let's proceed + while (!empty($pks)) + { + // Pop the first ID off the stack + $pk = array_shift($pks); + + $table->reset(); + + // Check that the row actually exists + if (!$table->load($pk)) { + if ($error = $table->getError()) { + // Fatal error + $this->setError($error); + return false; + } + else { + // Not fatal error + $this->setError(JText::sprintf('JLIB_APPLICATION_ERROR_BATCH_MOVE_ROW_NOT_FOUND', $pk)); + continue; + } + } + + // Alter the title & alias + $data = $this->generateNewTitle($categoryId, $table->alias, $table->title); + $table->title = $data['0']; + $table->alias = $data['1']; + + // Reset the ID because we are making a copy + $table->id = 0; + + // New category ID + $table->catid = $categoryId; + + // Ordering + $table->ordering = $this->increaseOrdering($categoryId); + + $table->hits = 0; + + // Check the row. + if (!$table->check()) { + $this->setError($table->getError()); + return false; + } + + // Store the row. + if (!$table->store()) { + $this->setError($table->getError()); + return false; + } + + $newId = $table->get('id'); + + // Add the new ID to the array + $newIds[$i] = $newId; + $i++; + } + + // Clean the cache + $this->cleanCache(); + + return $newIds; + } + + /** + * Batch move articles to a new category + * + * @param integer $value The new category ID. + * @param array $pks An array of row IDs. + * + * @return booelan True if successful, false otherwise and internal error is set. + * + * @since 11.1 + */ + protected function batchMove($value, $pks, $contexts) + { + $categoryId = (int) $value; + + $table = $this->getTable(); + //$db = $this->getDbo(); + + // Check that the category exists + if ($categoryId) { + $categoryTable = JTable::getInstance('PhocaDownloadCat', 'Table'); + if (!$categoryTable->load($categoryId)) { + if ($error = $categoryTable->getError()) { + // Fatal error + $this->setError($error); + return false; + } + else { + $this->setError(JText::_('JLIB_APPLICATION_ERROR_BATCH_MOVE_CATEGORY_NOT_FOUND')); + return false; + } + } + } + + if (empty($categoryId)) { + $this->setError(JText::_('JLIB_APPLICATION_ERROR_BATCH_MOVE_CATEGORY_NOT_FOUND')); + return false; + } + + // Check that user has create and edit permission for the component + $extension = JRequest::getCmd('option'); + $user = JFactory::getUser(); + if (!$user->authorise('core.create', $extension)) { + $this->setError(JText::_('JLIB_APPLICATION_ERROR_BATCH_CANNOT_CREATE')); + return false; + } + + if (!$user->authorise('core.edit', $extension)) { + $this->setError(JText::_('JLIB_APPLICATION_ERROR_BATCH_CANNOT_EDIT')); + return false; + } + + // Parent exists so we let's proceed + foreach ($pks as $pk) + { + // Check that the row actually exists + if (!$table->load($pk)) { + if ($error = $table->getError()) { + // Fatal error + $this->setError($error); + return false; + } + else { + // Not fatal error + $this->setError(JText::sprintf('JLIB_APPLICATION_ERROR_BATCH_MOVE_ROW_NOT_FOUND', $pk)); + continue; + } + } + + // Set the new category ID + $table->catid = $categoryId; + + // Check the row. + if (!$table->check()) { + $this->setError($table->getError()); + return false; + } + + // Store the row. + if (!$table->store()) { + $this->setError($table->getError()); + return false; + } + } + + // Clean the cache + $this->cleanCache(); + + return true; + } + + + public function increaseOrdering($categoryId) { + + $ordering = 1; + $this->_db->setQuery('SELECT MAX(ordering) FROM #__phocadownload WHERE catid='.(int)$categoryId); + $max = $this->_db->loadResult(); + $ordering = $max + 1; + return $ordering; + } + /* + function copyQuick($cid) { + $table = $this->getTable(); + + + foreach ($cid as $id) { + $table->load($id); + + // Find last ordering + $this->_db->setQuery('SELECT MAX(ordering) FROM #__phocadownload WHERE catid='.(int)$table->catid); + $max = $this->_db->loadResult(); + $table->ordering = $max+1; + // End Ordering + $table->id = null; + $table->hits = 0; + + if ( !$table->check() ) { + $this->setError($this->_db->getErrorMsg()); + return false; + } + if ( !$table->store() ) { + $this->setError($this->_db->getErrorMsg()); + return false; + } + } + return true; + }*/ + +} +?> \ No newline at end of file diff --git a/packages/phocadownload/administrator/components/com_phocadownload/models/phocadownloadfiles.php b/packages/phocadownload/administrator/components/com_phocadownload/models/phocadownloadfiles.php new file mode 100644 index 00000000..3061c4c8 --- /dev/null +++ b/packages/phocadownload/administrator/components/com_phocadownload/models/phocadownloadfiles.php @@ -0,0 +1,203 @@ +getUserStateFromRequest($this->context.'.filter.search', 'filter_search'); + $this->setState('filter.search', $search); + + $accessId = $app->getUserStateFromRequest($this->context.'.filter.access', 'filter_access', null, 'int'); + $this->setState('filter.access', $accessId); + + $state = $app->getUserStateFromRequest($this->context.'.filter.state', 'filter_published', '', 'string'); + $this->setState('filter.state', $state); + + $categoryId = $app->getUserStateFromRequest($this->context.'.filter.category_id', 'filter_category_id', null); + $this->setState('filter.category_id', $categoryId); + + $language = $app->getUserStateFromRequest($this->context.'.filter.language', 'filter_language', ''); + $this->setState('filter.language', $language); + + // Load the parameters. + $params = JComponentHelper::getParams('com_phocadownload'); + $this->setState('params', $params); + + // List state information. + parent::populateState('a.title', 'asc'); + } + + protected function getStoreId($id = '') + { + // Compile the store id. + $id .= ':'.$this->getState('filter.search'); + $id .= ':'.$this->getState('filter.access'); + $id .= ':'.$this->getState('filter.state'); + $id .= ':'.$this->getState('filter.category_id'); + $id .= ':'.$this->getState('filter.image_id'); + + return parent::getStoreId($id); + } + + + protected function getListQuery() + { + /* + SELECT a.*, cc.title AS categorytitle, s.title AS sectiontitle, u.name AS editor, g.name AS groupname, us.id AS ownerid, us.username AS ownername ' + . ' FROM #__phocadownload AS a ' + . ' LEFT JOIN #__phocadownload_categories AS cc ON cc.id = a.catid' + . ' LEFT JOIN #__phocadownload_sections AS s ON s.id = a.sectionid' + . ' LEFT JOIN #__groups AS g ON g.id = a.access' + . ' LEFT JOIN #__users AS u ON u.id = a.checked_out' + . ' LEFT JOIN #__users AS us ON us.id = a.owner_id' + */ + // Create a new query object. + $db = $this->getDbo(); + $query = $db->getQuery(true); + + // Select the required fields from the table. + $query->select( + $this->getState( + 'list.select', + 'a.*' + ) + ); + $query->from('`#__phocadownload` AS a'); + + // Join over the language + $query->select('l.title AS language_title'); + $query->join('LEFT', '`#__languages` AS l ON l.lang_code = a.language'); + + // Join over the users for the checked out user. + + + $query->select('uc.name AS editor'); + $query->join('LEFT', '#__users AS uc ON uc.id=a.checked_out'); + + $query->select('uua.id AS uploaduserid, uua.username AS uploadusername, uua.name AS uploadname'); + $query->join('LEFT', '#__users AS uua ON uua.id=a.userid'); + + // Join over the asset groups. + $query->select('ag.title AS access_level'); + $query->join('LEFT', '#__viewlevels AS ag ON ag.id = a.access'); + + // Join over the categories. + $query->select('c.title AS category_title, c.id AS category_id'); + $query->join('LEFT', '#__phocadownload_categories AS c ON c.id = a.catid'); + + $query->select('ua.id AS userid, ua.username AS username, ua.name AS usernameno'); + $query->join('LEFT', '#__users AS ua ON ua.id = a.owner_id'); + + //$query->select('v.average AS ratingavg'); + //$query->join('LEFT', '#__phocadownload_img_votes_statistics AS v ON v.imgid = a.id'); + + // Filter by access level. + if ($access = $this->getState('filter.access')) { + $query->where('a.access = '.(int) $access); + } + + // Filter by published state. + $published = $this->getState('filter.state'); + if (is_numeric($published)) { + $query->where('a.published = '.(int) $published); + } + else if ($published === '') { + $query->where('(a.published IN (0, 1))'); + } + + // Filter by category. + $categoryId = $this->getState('filter.category_id'); + if (is_numeric($categoryId)) { + $query->where('a.catid = ' . (int) $categoryId); + } + + // Filter on the language. + if ($language = $this->getState('filter.language')) { + $query->where('a.language = ' . $db->quote($language)); + } + + // Filter by search in title + $search = $this->getState('filter.search'); + if (!empty($search)) + { + if (stripos($search, 'id:') === 0) { + $query->where('a.id = '.(int) substr($search, 3)); + } + else + { + $search = $db->Quote('%'.$db->escape($search, true).'%'); + $query->where('( a.title LIKE '.$search.' OR a.filename LIKE '.$search.')'); + } + } + + $query->group('a.id'); + + // Add the list ordering clause. + //$orderCol = $this->state->get('list.ordering'); + //$orderDirn = $this->state->get('list.direction'); + $orderCol = $this->state->get('list.ordering', 'title'); + $orderDirn = $this->state->get('list.direction', 'asc'); + if ($orderCol == 'a.ordering' || $orderCol == 'category_title') { + $orderCol = 'category_title '.$orderDirn.', a.ordering'; + } + $query->order($db->escape($orderCol.' '.$orderDirn)); + + + return $query; + } + + public function getNotApprovedFile() { + + $query = 'SELECT COUNT(a.id) AS count' + .' FROM #__phocadownload AS a' + .' WHERE approved = 0'; + $this->_db->setQuery($query, 0, 1); + $countNotApproved = $this->_db->loadObject(); + return $countNotApproved; + } +} +?> \ No newline at end of file diff --git a/packages/phocadownload/administrator/components/com_phocadownload/models/phocadownloadlayout.php b/packages/phocadownload/administrator/components/com_phocadownload/models/phocadownloadlayout.php new file mode 100644 index 00000000..0e9cc27f --- /dev/null +++ b/packages/phocadownload/administrator/components/com_phocadownload/models/phocadownloadlayout.php @@ -0,0 +1,50 @@ +loadForm('com_phocadownload.phocadownloadlayout', 'phocadownloadlayout', array('control' => 'jform', 'load_data' => $loadData)); + if (empty($form)) { + return false; + } + return $form; + } + + protected function loadFormData() + { + // Check the session for previously entered form data. + $data = JFactory::getApplication()->getUserState('com_phocadownload.edit.phocadownloadlayout.data', array()); + + if (empty($data)) { + $data = $this->getItem(); + } + + return $data; + } + +} +?> \ No newline at end of file diff --git a/packages/phocadownload/administrator/components/com_phocadownload/models/phocadownloadlic.php b/packages/phocadownload/administrator/components/com_phocadownload/models/phocadownloadlic.php new file mode 100644 index 00000000..a46429a1 --- /dev/null +++ b/packages/phocadownload/administrator/components/com_phocadownload/models/phocadownloadlic.php @@ -0,0 +1,93 @@ +loadForm('com_phocadownload.phocadownloadlic', 'phocadownloadlic', array('control' => 'jform', 'load_data' => $loadData)); + if (empty($form)) { + return false; + } + return $form; + } + + protected function loadFormData() + { + // Check the session for previously entered form data. + $data = JFactory::getApplication()->getUserState('com_phocadownload.edit.phocadownloadlic.data', array()); + + if (empty($data)) { + $data = $this->getItem(); + } + + return $data; + } + + protected function prepareTable($table) + { + jimport('joomla.filter.output'); + $date = JFactory::getDate(); + $user = JFactory::getUser(); + + $table->title = htmlspecialchars_decode($table->title, ENT_QUOTES); + $table->alias = JApplication::stringURLSafe($table->alias); + + if (empty($table->alias)) { + $table->alias = JApplication::stringURLSafe($table->title); + } + + if (empty($table->id)) { + // Set the values + //$table->created = $date->toSql(); + + // Set ordering to the last item if not set + if (empty($table->ordering)) { + $db = JFactory::getDbo(); + $db->setQuery('SELECT MAX(ordering) FROM #__phocadownload_licenses'); + $max = $db->loadResult(); + + $table->ordering = $max+1; + } + } + else { + // Set the values + //$table->modified = $date->toSql(); + //$table->modified_by = $user->get('id'); + } + } +} +?> \ No newline at end of file diff --git a/packages/phocadownload/administrator/components/com_phocadownload/models/phocadownloadlics.php b/packages/phocadownload/administrator/components/com_phocadownload/models/phocadownloadlics.php new file mode 100644 index 00000000..96684bac --- /dev/null +++ b/packages/phocadownload/administrator/components/com_phocadownload/models/phocadownloadlics.php @@ -0,0 +1,154 @@ +getUserStateFromRequest($this->context.'.filter.search', 'filter_search'); + $this->setState('filter.search', $search); + +/* $accessId = $app->getUserStateFromRequest($this->context.'.filter.access', 'filter_access', null, 'int'); + $this->setState('filter.access', $accessId);*/ + + + + $state = $app->getUserStateFromRequest($this->context.'.filter.state', 'filter_published', '', 'string'); + $this->setState('filter.state', $state); + + $language = $app->getUserStateFromRequest($this->context.'.filter.language', 'filter_language', ''); + $this->setState('filter.language', $language); + + // Load the parameters. + $params = JComponentHelper::getParams('com_phocadownload'); + $this->setState('params', $params); + + // List state information. + parent::populateState('a.title', 'asc'); + } + + protected function getStoreId($id = '') + { + // Compile the store id. + $id .= ':'.$this->getState('filter.search'); + //$id .= ':'.$this->getState('filter.access'); + $id .= ':'.$this->getState('filter.state'); + $id .= ':'.$this->getState('filter.lic_id'); + + + return parent::getStoreId($id); + } + + protected function getListQuery() + { + /* + $query = ' SELECT a.*, u.name AS editor ' + . ' FROM #__phocadownload_licenses AS a ' + . ' LEFT JOIN #__users AS u ON u.id = a.checked_out ' + */ + // Create a new query object. + $db = $this->getDbo(); + $query = $db->getQuery(true); + + // Select the required fields from the table. + $query->select( + $this->getState( + 'list.select', + 'a.*' + ) + ); + $query->from('`#__phocadownload_licenses` AS a'); + + // Join over the language + $query->select('l.title AS language_title'); + $query->join('LEFT', '`#__languages` AS l ON l.lang_code = a.language'); + + // Join over the users for the checked out user. + $query->select('uc.name AS editor'); + $query->join('LEFT', '#__users AS uc ON uc.id=a.checked_out'); + + + // Filter by access level. +/* if ($access = $this->getState('filter.access')) { + $query->where('a.access = '.(int) $access); + }*/ + + + + // Filter by published state. + $published = $this->getState('filter.state'); + if (is_numeric($published)) { + $query->where('a.published = '.(int) $published); + } + else if ($published === '') { + $query->where('(a.published IN (0, 1))'); + } + + + // Filter by search in title + $search = $this->getState('filter.search'); + if (!empty($search)) + { + if (stripos($search, 'id:') === 0) { + $query->where('a.id = '.(int) substr($search, 3)); + } + else + { + $search = $db->Quote('%'.$db->escape($search, true).'%'); + $query->where('( a.title LIKE '.$search.' OR a.alias LIKE '.$search.')'); + } + } + + //$orderCol = $this->state->get('list.ordering'); + //$orderDirn = $this->state->get('list.direction'); + $orderCol = $this->state->get('list.ordering', 'title'); + $orderDirn = $this->state->get('list.direction', 'asc'); + $query->order($db->escape($orderCol.' '.$orderDirn)); + + //echo nl2br(str_replace('#__', 'jos_', $query->__toString())); + return $query; + + } + + +} +?> \ No newline at end of file diff --git a/packages/phocadownload/administrator/components/com_phocadownload/models/phocadownloadlinkcat.php b/packages/phocadownload/administrator/components/com_phocadownload/models/phocadownloadlinkcat.php new file mode 100644 index 00000000..0a659fb0 --- /dev/null +++ b/packages/phocadownload/administrator/components/com_phocadownload/models/phocadownloadlinkcat.php @@ -0,0 +1,81 @@ +_loadDataSec()) { + + } else { + $this->_initDataSec(); + } + return $this->_data_sec; + }*/ + + function &getDataCat($sectionList) { + if ($this->_loadDataCat($sectionList)) { + + } else { + $this->_initDataCat(); + } + return $this->_data_cat; + } + /* + function _loadDataSec() { + if (empty($this->_data_sec)) { + $query = 'SELECT s.id, s.title' + . ' FROM #__phocadownload_sections AS s' + . ' WHERE s.published = 1' + . ' ORDER BY s.ordering'; + $this->_db->setQuery($query); + $this->_data_sec = $this->_db->loadObjectList(); + return (boolean) $this->_data_sec; + } + return true; + }*/ + /* + function _loadDataCat($sectionList) { + if (empty($this->_data_cat)) { + $query = 'SELECT c.id, c.title, c.section' + .' FROM #__phocadownload_categories AS c' + .' WHERE c.section IN ( \''.$sectionList.'\' )' + .' AND c.published = 1' + .' ORDER BY c.ordering'; + $this->_db->setQuery($query); + $this->_data_cat = $this->_db->loadObjectList(); + return (boolean) $this->_data_cat; + } + return true; + }*/ + /* + function _initDataSec() { + if (empty($this->_data_sec)) { + return (boolean) array(); + } + return true; + }*/ + function _initDataCat() { + if (empty($this->_data_cat)) { + return (boolean) array(); + } + return true; + } +} +?> \ No newline at end of file diff --git a/packages/phocadownload/administrator/components/com_phocadownload/models/phocadownloadlinkfile.php b/packages/phocadownload/administrator/components/com_phocadownload/models/phocadownloadlinkfile.php new file mode 100644 index 00000000..e8f80487 --- /dev/null +++ b/packages/phocadownload/administrator/components/com_phocadownload/models/phocadownloadlinkfile.php @@ -0,0 +1,123 @@ +getUserStateFromRequest( $this->_context.'.list.limit', 'limit', $app->getCfg('list_limit'), 'int' ); + $limitstart = $app->getUserStateFromRequest( $this->_context.'.limitstart', 'limitstart', 0, 'int' ); + // In case limit has been changed, adjust limitstart accordingly + $limitstart = ($limit != 0 ? (floor($limitstart / $limit) * $limit) : 0); + + $this->setState('limit', $limit); + $this->setState('limitstart', $limitstart); + } + + function getData() { + if (empty($this->_data)) { + $query = $this->_buildQuery(); + $this->_data = $this->_getList($query, $this->getState('limitstart'), $this->getState('limit')); + } + return $this->_data; + } + + function getTotal() { + if (empty($this->_total)) { + $query = $this->_buildQuery(); + $this->_total = $this->_getListCount($query); + } + return $this->_total; + } + + function getPagination() { + if (empty($this->_pagination)) { + jimport('joomla.html.pagination'); + $this->_pagination = new JPagination( $this->getTotal(), $this->getState('limitstart'), $this->getState('limit') ); + } + return $this->_pagination; + } + + function _buildQuery() { + $where = $this->_buildContentWhere(); + $orderby = $this->_buildContentOrderBy(); + + $query = ' SELECT a.*, cc.title AS categorytitle, ag.title AS access_level ' + . ' FROM #__phocadownload AS a ' + . ' LEFT JOIN #__phocadownload_categories AS cc ON cc.id = a.catid ' + //. ' LEFT JOIN #__phocadownload_sections AS s ON s.id = a.sectionid ' + . ' LEFT JOIN #__viewlevels AS ag ON ag.id = a.access ' + . ' LEFT JOIN #__users AS u ON u.id = a.checked_out ' + . $where + . $orderby + ; + + return $query; + } + + function _buildContentOrderBy() { + $app = JFactory::getApplication(); + $filter_order = $app->getUserStateFromRequest( $this->_context.'.filter_order', 'filter_order', 'a.ordering','cmd' ); + $filter_order_Dir = $app->getUserStateFromRequest( $this->_context.'.filter_order_Dir', 'filter_order_Dir', '', 'word' ); + + if ($filter_order == 'a.ordering'){ + $orderby = ' ORDER BY categorytitle, a.ordering '.$filter_order_Dir; + } else { + $orderby = ' ORDER BY '.$filter_order.' '.$filter_order_Dir.', categorytitle, a.ordering '; + } + return $orderby; + } + + function _buildContentWhere() { + $app = JFactory::getApplication(); + $filter_state = $app->getUserStateFromRequest( $this->_context.'.filter_state', 'filter_state', '', 'word' ); + $filter_catid = $app->getUserStateFromRequest( $this->_context.'.catid','catid',0, 'int' ); + //$filter_sectionid = $app->getUserStateFromRequest( $this->_context.'.filter_sectionid', 'filter_sectionid', 0, 'int' ); + $filter_order = $app->getUserStateFromRequest( $this->_context.'.filter_order', 'filter_order', 'a.ordering', 'cmd' ); + $filter_order_Dir = $app->getUserStateFromRequest( $this->_context.'.filter_order_Dir', 'filter_order_Dir', '', 'word' ); + $search = $app->getUserStateFromRequest( $this->_context.'.search','search','','string' ); + $search = JString::strtolower( $search ); + + $where = array(); + + if ($filter_catid > 0) { + $where[] = 'a.catid = '.(int) $filter_catid; + } + if ($search) { + $where[] = 'LOWER(a.title) LIKE '.$this->_db->Quote('%'.$search.'%'); + } + if ( $filter_state ) { + if ( $filter_state == 'P' ) { + $where[] = 'a.published = 1'; + } else if ($filter_state == 'U' ) { + $where[] = 'a.published = 0'; + } + } + + + $where[] = 'a.published = 1'; + $where[] = 'a.approved = 1'; + $where[] = 'a.textonly <> 1'; + + $where = ( count( $where ) ? ' WHERE '. implode( ' AND ', $where ) : '' ); + return $where; + } +} +?> \ No newline at end of file diff --git a/packages/phocadownload/administrator/components/com_phocadownload/models/phocadownloadlog.php b/packages/phocadownload/administrator/components/com_phocadownload/models/phocadownloadlog.php new file mode 100644 index 00000000..4b90887b --- /dev/null +++ b/packages/phocadownload/administrator/components/com_phocadownload/models/phocadownloadlog.php @@ -0,0 +1,28 @@ +_db->setQuery( $query ); + if (!$this->_db->query()) { + $this->setError($this->_db->getErrorMsg()); + return false; + } + return true; + } +} +?> \ No newline at end of file diff --git a/packages/phocadownload/administrator/components/com_phocadownload/models/phocadownloadlogs.php b/packages/phocadownload/administrator/components/com_phocadownload/models/phocadownloadlogs.php new file mode 100644 index 00000000..e980c151 --- /dev/null +++ b/packages/phocadownload/administrator/components/com_phocadownload/models/phocadownloadlogs.php @@ -0,0 +1,194 @@ +getUserStateFromRequest($this->context.'.filter.search', 'filter_search'); + $this->setState('filter.search', $search); +/* + $accessId = $app->getUserStateFromRequest($this->context.'.filter.access', 'filter_access', null, 'int'); + $this->setState('filter.access', $accessId); +*/ + //$state = $app->getUserStateFromRequest($this->context.'.filter.state', 'filter_published', '', 'string'); + // $this->setState('filter.state', $state); +/* + $categoryId = $app->getUserStateFromRequest($this->context.'.filter.category_id', 'filter_category_id', null); + $this->setState('filter.category_id', $categoryId); + + $language = $app->getUserStateFromRequest($this->context.'.filter.language', 'filter_language', ''); + $this->setState('filter.language', $language); +*/ + + $type = $app->getUserStateFromRequest($this->context.'.filter.type', 'filter_type', '', 'string'); + $this->setState('filter.type', $type); + // Load the parameters. + $params = JComponentHelper::getParams('com_phocadownload'); + $this->setState('params', $params); + + // List state information. + parent::populateState('a.date', 'asc'); + } + + protected function getStoreId($id = '') + { + // Compile the store id. + $id .= ':'.$this->getState('filter.search'); + $id .= ':'.$this->getState('filter.type'); + //$id .= ':'.$this->getState('filter.access'); + //$id .= ':'.$this->getState('filter.state'); + + return parent::getStoreId($id); + } + + protected function getListQuery() + { + + // Create a new query object. + $db = $this->getDbo(); + $query = $db->getQuery(true); + + // Select the required fields from the table. + $query->select( + $this->getState( + 'list.select', + 'a.*' + ) + ); + $query->from('#__phocadownload_logging AS a'); + + // Join over the language + //$query->select('l.title AS language_title'); + //$query->join('LEFT', '#__languages AS l ON l.lang_code = a.language'); + + + $query->select('f.id as file_id, f.title as file_title, f.filename as filename'); + $query->join('LEFT', '#__phocadownload AS f ON f.id = a.fileid'); + + $query->select('cc.id as category_id'); + $query->join('LEFT', '#__phocadownload_categories AS cc ON cc.id = f.catid'); + + // Join over the users for the checked out user. + //$query->select('ua.id AS userid, ua.username AS username, ua.name AS usernameno'); + //$query->join('LEFT', '#__users AS ua ON ua.id=a.userid'); + + $query->select('ua.id AS userid, ua.username AS username, ua.name AS usernameno'); + $query->join('LEFT', '#__users AS ua ON ua.id = a.userid'); + + //$query->select('uc.name AS editor'); + //$query->join('LEFT', '#__users AS uc ON uc.id=f.checked_out'); + + + + + +/* // Join over the asset groups. + $query->select('ag.title AS access_level'); + $query->join('LEFT', '#__viewlevels AS ag ON ag.id = a.access'); +*/ + + // Filter by access level. + /* if ($access = $this->getState('filter.access')) { + $query->where('a.access = '.(int) $access); + }*/ + + // Filter by published state. + /*$published = $this->getState('filter.state'); + if (is_numeric($published)) { + $query->where('a.published = '.(int) $published); + } + else if ($published === '') { + $query->where('(a.published IN (0, 1))'); + }*/ + + + // Filter by published type. + $type = $this->getState('filter.type'); + + if (is_numeric($type)) { + $query->where('a.type = '.(int) $type); + + } + else if ($type === '') { + $query->where('(a.type IN (1, 2))'); + + } + + + // Filter by category. + /*$categoryId = $this->getState('filter.category_id'); + if (is_numeric($categoryId)) { + $query->where('a.catid = ' . (int) $categoryId); + }*/ + + // Filter by search in title + $search = $this->getState('filter.search'); + if (!empty($search)) + { + if (stripos($search, 'id:') === 0) { + $query->where('a.id = '.(int) substr($search, 3)); + } + else + { + $search = $db->Quote('%'.$db->escape($search, true).'%'); + $query->where('( ua.username LIKE '.$search.' OR ua.name LIKE '.$search.' OR f.title LIKE '.$search.' OR f.filename LIKE '.$search.' or a.ip LIKE '.$search.')'); + } + } + + //$query->group('a.id'); + + // Add the list ordering clause. + $orderCol = $this->state->get('list.ordering', 'date'); + $orderDirn = $this->state->get('list.direction', 'asc'); + + + if ($orderCol == 'a.id' || $orderCol == 'username') { + $orderCol = 'username '.$orderDirn.', a.id'; + } + $query->order($db->escape($orderCol.' '.$orderDirn)); + + //echo nl2br(str_replace('#__', 'jos_', $query->__toString())); + return $query; + } +} +?> \ No newline at end of file diff --git a/packages/phocadownload/administrator/components/com_phocadownload/models/phocadownloadm.php b/packages/phocadownload/administrator/components/com_phocadownload/models/phocadownloadm.php new file mode 100644 index 00000000..772929b6 --- /dev/null +++ b/packages/phocadownload/administrator/components/com_phocadownload/models/phocadownloadm.php @@ -0,0 +1,514 @@ +fileCount = 0; + $this->categoryCount = 0; + parent::__construct(); + } + + function setFileCount($count) { + $this->fileCount = $this->fileCount + $count; + } + + function setCategoryCount($count) { + $this->categoryCount = $this->categoryCount + $count; + } + + function save($data) { + + $app = JFactory::getApplication(); + + $post = JRequest::get('post'); + $data = JRequest::getVar('jform', array(0), 'post', 'array'); + + // ================================================= + // Make a copy for play and preview + $paramsC = JComponentHelper::getParams('com_phocadownload') ; + $papCopy = $paramsC->get( 'pap_copy', 0 ); + $data['pap_copy_m'] = 0; + if ($papCopy == 2 || $papCopy == 3) { + $data['pap_copy_m'] = 1; + } + // ================================================= + + + if(isset($post['foldercid'])) { + $data['foldercid'] = $post['foldercid']; + } + if(isset($post['cid'])) { + $data['cid'] = $post['cid']; + } + + if (isset($data['catid']) && (int)$data['catid'] > 0) { + $data['catid'] = (int)$data['catid']; + } else { + $data['catid'] = 0; + } + + //Get folder variables from Helper + $path = PhocaDownloadPath::getPathSet(); + $origPath = $path['orig_abs_ds']; + $origPathServer = str_replace(DS, '/', JPath::clean($path['orig_abs_ds'])); + + + + // Cache all existing categories + $query = 'SELECT id, title, parent_id' + . ' FROM #__phocadownload_categories' ; + $this->_db->setQuery( $query ); + $existingCategories = $this->_db->loadObjectList() ; + + // Cache all existing files + $query = 'SELECT catid, filename' + . ' FROM #__phocadownload'; + $this->_db->setQuery( $query ); + $existingFiles = $this->_db->loadObjectList() ; + + $result = new StdClass(); + $result->category_count = 0; + $result->image_count = 0; + + + + // Category will be saved - Files will be saved in recursive function + if (isset($data['foldercid'])) { + foreach ($data['foldercid'] as $foldername) { + if (strlen($foldername) > 0) { + $fullPath = $path['orig_abs_ds'].$foldername; + + $result = $this->_createCategoriesRecursive( $origPathServer, $fullPath, $existingCategories, $existingFiles, $data['catid'], $data ); + } + } + } + + // Only Files will be saved + + if (isset($data['cid'])) { + + // Make a copy for play and preview (1) -------- + if (isset($data['pap_copy_m']) && $data['pap_copy_m'] == 1) { + //$paramsC = JComponentHelper::getParams('com_phocadownload') ; + $overwriteExistingFiles = $paramsC->get( 'overwrite_existing_files', 0 ); + } + // ------------------------------------------------ + + foreach ($data['cid'] as $filename) { + if ($filename) { + //$ext = strtolower(JFile::getExt($filename)); + $row = $this->getTable('phocadownload'); + + $datam = array(); + $datam['published'] = $data['published']; + $datam['catid'] = $data['catid']; + $datam['approved'] = $data['approved']; + $datam['language'] = $data['language']; + $datam['filename'] = $filename; + + + if ($data['title'] != '') { + $datam['title'] = $data['title']; + } else { + $datam['title'] = PhocaDownloadFile::getTitleFromFilenameWithoutExt($filename); + } + + if ($data['alias'] != '') { + $datam['alias'] = $data['alias']; + } else { + $datam['alias'] = $data['alias']; // PhocaDownloadFile::getAliasName($datam['title']); + } + $datam['token'] = PhocaDownloadUtils::getToken($datam['title'].$datam['filename']); + // Make a copy for play and preview (2) + if (isset($data['pap_copy_m']) && $data['pap_copy_m'] == 1) { + $filenameExt = PhocaDownloadFile::getTitleFromFilenameWithExt($filename); + $storedfilename = $filename; + $storedfoldername = str_replace($filenameExt, '', $storedfilename); + $o = $this->_copyPreviewAndPlay($filenameExt, $storedfilename, $storedfoldername, $path, $overwriteExistingFiles); + $datam['filename_play'] = $o['filename_play']; + $datam['filename_preview'] = $o['filename_preview']; + } + + // Save + // Bind the form fields to the Phoca download table + if (!$row->bind($datam)) { + $this->setError($this->_db->getErrorMsg()); + return false; + } + + // Create the timestamp for the date + $row->date = gmdate('Y-m-d H:i:s'); + + // if new item, order last in appropriate group + + if (!$row->id) { + $where = 'catid = ' . (int) $row->catid ; + $row->ordering = $row->getNextOrder( $where ); + } + + + // Make sure the Phoca download table is valid + if (!$row->check()) { + $this->setError($this->_db->getErrorMsg()); + return false; + } + + // Store the Phoca download table to the database + if (!$row->store()) { + $this->setError($this->_db->getErrorMsg()); + return false; + } + $result->image_count++; + + } + } + $this->setfileCount($result->image_count); + + } + + $msg = $this->categoryCount. ' ' .JText::_('COM_PHOCADOWNLOAD_CATEGORIES_ADDED') .', '.$this->fileCount. ' ' . JText::_('COM_PHOCADOWNLOAD_FILES_ADDED'); + $app->enqueueMessage($msg); + $app->redirect(JRoute::_('index.php?option=com_phocadownload&view=phocadownloadfiles', false)); + + return true; + + } + + protected function _createCategoriesRecursive(&$origPathServer, $path, &$existingCategories, &$existingFiles, $parentId = 0, $data = array() ) { + + $totalresult = new StdClass(); + $totalresult->files_count = 0 ; + $totalresult->category_count = 0 ; + $totalresult->image_count = 0 ; + + $categoryName = basename($path); + $id = $this->_getCategoryId( $existingCategories, $categoryName, $parentId ) ; + $category = null; + + // Full path: eg. "/home/www/joomla/files/categ/subcat/" + $fullPath = str_replace(DS, '/', JPath::clean(DS . $path)); + // Relative path eg "categ/subcat" + $relativePath = str_replace($origPathServer, '', $fullPath); + + // Category doesn't exist + if ( $id == -1 ) { + $row = $this->getTable('phocadownloadcat'); + + $row->published = $data['published']; + // $row->approved = $data['approved']; + $row->language = $data['language']; + $row->parent_id = $parentId; + $row->title = $categoryName; + + // Create the timestamp for the date + $row->date = gmdate('Y-m-d H:i:s'); + // $row->alias = $row->title; //PhocaDownloadFile::getAliasName($categoryName); + //$row->userfolder = ltrim(str_replace(DS, '/', JPath::clean($relativePath )), '/'); + $row->ordering = $row->getNextOrder( "parent_id = " . $this->_db->Quote($row->parent_id) ); + + if (!$row->check()) { + JError::raiseError(500, $row->getError('Check Problem') ); + } + + if (!$row->store()) { + JError::raiseError(500, $row->getError('Store Problem') ); + } + + $category = new JObject(); + $category->title = $categoryName ; + $category->parent_id = $parentId; + $category->id = $row->id; + $totalresult->category_count++; + $id = $category->id; + $existingCategories[] = &$category ; + $this->setCategoryCount(1);//This subcategory was added + } + + + + // Add all files from this folder + $totalresult->image_count += $this->_addAllFilesFromFolder( $existingFiles, $id, $path, $relativePath, $data ); + $this->setfileCount($totalresult->image_count); + + // Do sub folders + $parentId = $id; + $folderList = JFolder::folders( $path, $filter = '.', $recurse = false, $fullpath = true, $exclude = array() ); + // Iterate over the folders if they exist + if ($folderList !== false) { + foreach ($folderList as $folder) { + //$this->setCategoryCount(1);//This subcategory was added + $folderName = $relativePath .'/' . str_replace($origPathServer, '', $folder); + $result = $this->_createCategoriesRecursive( $origPathServer, $folder, $existingCategories, $existingFiles, $id , $data); + $totalresult->image_count += $result->image_count ; + $totalresult->category_count += $result->category_count ; + } + } + return $totalresult ; + } + + protected function _getCategoryId( &$existingCategories, &$title, $parentId ) { + $id = -1; + $i = 0; + $count = count($existingCategories); + while ( $id == -1 && $i < $count ) { + + if ( $existingCategories[$i]->title == $title && + $existingCategories[$i]->parent_id == $parentId ) { + $id = $existingCategories[$i]->id ; + } + $i++; + } + return $id; + } + + protected function _FileExist( &$existing_image, &$filename, $catid ) { + $result = false ; + $i = 0; + $count = count($existing_image); + + while ( $result == false && $i < $count ) { + if ( $existing_image[$i]->filename == $filename && + $existing_image[$i]->catid == $catid ) { + $result = true; + } + $i++; + } + return $result; + } + + protected function _addAllFilesFromFolder(&$existingImages, $category_id, $fullPath, $rel_path, $data = array()) { + $count = 0; + $fileList = JFolder::files( $fullPath ); + natcasesort($fileList); + // Iterate over the files if they exist + //file - abc.img, file_no - folder/abc.img + + // Make a copy for play and preview (1) -------- + if (isset($data['pap_copy_m']) && $data['pap_copy_m'] == 1) { + $path = PhocaDownloadPath::getPathSet(); + $storedfoldername = ltrim(str_replace(DS, '/', JPath::clean($rel_path )), '/'); + $paramsC = JComponentHelper::getParams('com_phocadownload') ; + $overwriteExistingFiles = $paramsC->get( 'overwrite_existing_files', 0 ); + } + // ------------------------------------------------ + + if ($fileList !== false) { + foreach ($fileList as $filename) { + $storedfilename = ltrim(str_replace(DS, '/', JPath::clean($rel_path . DS . $filename )), '/'); + + //$ext = strtolower(JFile::getExt($filename)); + + if (JFile::exists($fullPath.DS.$filename) && + substr($filename, 0, 1) != '.' && + strtolower($filename) !== 'index.html' && + !$this->_FileExist($existingImages, $storedfilename, $category_id) ) { + + $row = $this->getTable('phocadownload'); + + $datam = array(); + $datam['published'] = $data['published']; + $datam['catid'] = $category_id; + $datam['filename'] = $storedfilename; + $datam['approved'] = $data['approved']; + $datam['language'] = $data['language']; + + if ($data['title'] != '') { + $datam['title'] = $data['title']; + } else { + $datam['title'] = PhocaDownloadFile::getTitleFromFilenameWithoutExt($filename); + } + + if ($data['alias'] != '') { + $datam['alias'] = $data['alias']; + } else { + $datam['alias'] = $data['alias'];//PhocaDownloadFile::get AliasName($datam['title']); + } + $datam['token'] = PhocaDownloadUtils::getToken($datam['title'].$datam['filename']); + + $image = new JObject(); + + // Make a copy for play and preview (2) + if (isset($data['pap_copy_m']) && $data['pap_copy_m'] == 1) { + $o = $this->_copyPreviewAndPlay($filename, $storedfilename, $storedfoldername, $path, $overwriteExistingFiles); + $datam['filename_play'] = $o['filename_play']; + $datam['filename_preview'] = $o['filename_preview']; + } + + + // Save + // Bind the form fields to the Phoca download table + if (!$row->bind($datam)) { + $this->setError($this->_db->getErrorMsg()); + return false; + } + + // Create the timestamp for the date + $row->date = gmdate('Y-m-d H:i:s'); + + // if new item, order last in appropriate group + if (!$row->id) { + $where = 'catid = ' . (int) $row->catid ; + $row->ordering = $row->getNextOrder( $where ); + } + + // Make sure the Phoca download table is valid + if (!$row->check()) { + $this->setError($this->_db->getErrorMsg()); + return false; + } + + // Store the Phoca download table to the database + if (!$row->store()) { + $this->setError($this->_db->getErrorMsg()); + return false; + } + // -------------------------------------------- + + /*if ($this->firstImageFolder == '') { + $this->setFirstImageFolder($row->filename); + }*/ + + $image->filename = $storedfilename; + $image->catid = $category_id; + + $existingImages[] = &$image ; + $count++ ; + + } + + } + } + + // $this->setfileCount($count); + return $count; + } + + protected function _copyPreviewAndPlay($filename, $storedfilename, $storedfoldername, $path, $overwriteExistingFiles) { + + $o['filename_play'] = ''; + $o['filename_preview'] = ''; + $canPlay = PhocaDownloadFile::canPlay($filename); + $canPreview = PhocaDownloadFile::canPreview($filename); + $filepathPAP = JPath::clean($path['orig_abs_pap_ds']. $storedfilename); + //$filepathUserFolderPAP = JPath::clean($path['orig_abs_pap_ds']. $storedfoldername); + $filepath = JPath::clean($path['orig_abs_ds']. $storedfilename); + $filepathPAPFolder = JPath::clean($path['orig_abs_pap_ds'] . DS. PhocaDownloadFile::getFolderFromTheFile($storedfilename)); + + if ($canPlay || $canPreview) { + + $uploadPAP = 1;// upload file for preview and play + if (JFile::exists($filepathPAP) && $overwriteExistingFiles == 0) { + //$errUploadMsg = JText::_("COM_PHOCADOWNLOAD_FILE_ALREADY_EXISTS"); + //return false; + $uploadPAP = 0; // don't upload if it exists, it is not main file, don't do false and exit + + if ($canPlay == 1) { + $o['filename_play'] = $storedfilename; + } else if ($canPreview == 1) { + $o['filename_preview'] = $storedfilename; + } + } + + // Overwrite file and add no new item to database + $fileExistsPAP = 0; + if (JFile::exists($filepathPAP) && $overwriteExistingFiles == 1) { + $fileExistsPAP = 1; + if ($canPlay == 1) { + $o['filename_play'] = $storedfilename; + } else if ($canPreview == 1) { + $o['filename_preview'] = $storedfilename; + } + } + + if ($uploadPAP == 0) { + + } else { + + // First create folder if not exists + if (!JFolder::exists($filepathPAPFolder)) { + if (JFolder::create($filepathPAPFolder)) { + $data = "\n\n\n"; + JFile::write($filepathPAPFolder . DS ."index.html", $data); + } + // else { + //$errUploadMsg = JText::_("COM_PHOCADOWNLOAD_UNABLE_TO_CREATE_FOLDER"); + //return false; + //} + } + + if (!JFile::copy($filepath, $filepathPAP)) { + + //$errUploadMsg = JText::_("COM_PHOCADOWNLOAD_UNABLE_TO_UPLOAD_FILE"); + //return false; + } else { + // Saving file name into database with relative path + /*if (!JFile::exists($filepathUserFolderPAP . DS ."index.html")) { + $data = "\n\n\n"; + JFile::write($filepathUserFolderPAP . DS ."index.html", $data); + }*/ + + if ($canPlay == 1) { + //$image->filename_play = $storedfilename; + $o['filename_play'] = $storedfilename; + } else if ($canPreview == 1) { + //$image->filename_preview = $storedfilename; + $o['filename_preview'] = $storedfilename; + } + } + } + } + return $o; + } + + + public function getForm($data = array(), $loadData = true) { + + $form = $this->loadForm('com_phocadownload.phocadownloadmanager', 'phocadownloadmanager', array('control' => 'jform', 'load_data' => $loadData)); + if (empty($form)) { + return false; + } + return $form; + } + + public function getTable($type = 'PhocaDownload', $prefix = 'Table', $config = array()) + { + return JTable::getInstance($type, $prefix, $config); + } + + + + protected function loadFormData() + { + // Check the session for previously entered form data. + $data = JFactory::getApplication()->getUserState('com_phocadownloadm.edit.phocadownloadm.data', array()); + + if (empty($data)) { + $data = $this->getItem(); + } + + return $data; + } + +} +?> \ No newline at end of file diff --git a/packages/phocadownload/administrator/components/com_phocadownload/models/phocadownloadmanager.php b/packages/phocadownload/administrator/components/com_phocadownload/models/phocadownloadmanager.php new file mode 100644 index 00000000..914a009b --- /dev/null +++ b/packages/phocadownload/administrator/components/com_phocadownload/models/phocadownloadmanager.php @@ -0,0 +1,168 @@ +loadForm('com_phocadownload.phocadownloadmanager', 'phocadownloadmanager', array('control' => 'jform', 'load_data' => $loadData)); + if (empty($form)) { + return false; + } + return $form; + } + + protected function loadFormData() + { + // Check the session for previously entered form data. + $data = JFactory::getApplication()->getUserState('com_phocadownloadm.edit.phocadownloadm.data', array()); + + if (empty($data)) { + $data = $this->getItem(); + } + + return $data; + } + + function getFolderState($property = null) { + static $set; + + if (!$set) { + $folder = JRequest::getVar( 'folder', '', '', 'path' ); + $upload = JRequest::getVar( 'upload', '', '', 'int' ); + $manager = JRequest::getVar( 'manager', '', '', 'path' ); + + $this->setState('folder', $folder); + $this->setState('manager', $manager); + + $parent = str_replace("\\", "/", dirname($folder)); + $parent = ($parent == '.') ? null : $parent; + $this->setState('parent', $parent); + + $set = true; + } + return parent::getState($property); + } + + function getFiles() { + $list = $this->getList(); + return $list['files']; + } + + function getFolders() { + $list = $this->getList(); + return $list['folders']; + } + + function getList() { + static $list; + + //Params + $params = JComponentHelper::getParams( 'com_phocadownload' ); + + // Only process the list once per request + if (is_array($list)) { + return $list; + } + + // Get current path from request + $current = $this->getState('folder'); + + // If undefined, set to empty + if ($current == 'undefined') { + $current = ''; + } + + // File Manager, Icon Manager + $manager = $this->getState('manager'); + if ($manager == 'undefined') { + $manager = ''; + } + $path = PhocaDownloadPath::getPathSet($manager); + $group = PhocaDownloadSettings::getManagerGroup($manager); + + //$path = PhocaDownloadPath::getPathSet(); + + // Initialize variables + if (strlen($current) > 0) { + $orig_path = $path['orig_abs_ds'].$current; + } else { + $orig_path = $path['orig_abs_ds']; + } + $orig_path_server = str_replace(DS, '/', $path['orig_abs'] .'/'); + + + // Absolute Path defined by user + $absolutePath = $params->get('absolute_path', ''); + $absolutePath = str_replace(DS, '/', $absolutePath); + // Be aware - absolute path is not set for images folder and for preview and play folder - see documentation + if ($absolutePath != '' && $group['f'] == 1) { + $orig_path_server = str_replace(DS, '/', JPath::clean($absolutePath .'/') );//$absolutePath ; + } + + $files = array (); + $folders = array (); + + // Get the list of files and folders from the given folder + $file_list = JFolder::files($orig_path); + $folder_list = JFolder::folders($orig_path, '', false, false, array()); + + // Iterate over the files if they exist + //file - abc.img, file_no - folder/abc.img + if ($file_list !== false) { + foreach ($file_list as $file) { + if (is_file($orig_path.DS.$file) && substr($file, 0, 1) != '.' && strtolower($file) !== 'index.html') { + $tmp = new JObject(); + $tmp->name = basename($file); + $tmp->path_with_name = str_replace(DS, '/', JPath::clean($orig_path . DS . $file)); + $tmp->path_without_name_relative= $path['orig_rel_ds'] . str_replace($orig_path_server, '', $tmp->path_with_name); + + $tmp->path_with_name = str_replace(DS, '/', JPath::clean($orig_path . DS . $file)); + $tmp->path_with_name_relative_no= str_replace($orig_path_server, '', $tmp->path_with_name); + + $files[] = $tmp; + + } + } + } + + // Iterate over the folders if they exist + if ($folder_list !== false) { + foreach ($folder_list as $folder) + { + $tmp = new JObject(); + $tmp->name = basename($folder); + $tmp->path_with_name = str_replace(DS, '/', JPath::clean($orig_path . DS . $folder)); + $tmp->path_without_name_relative= $path['orig_rel_ds'] . str_replace($orig_path_server, '', $tmp->path_with_name); + $tmp->path_with_name_relative_no= str_replace($orig_path_server, '', $tmp->path_with_name); + + $folders[] = $tmp; + } + } + + $list = array('folders' => $folders, 'files' => $files); + return $list; + } +} +?> \ No newline at end of file diff --git a/packages/phocadownload/administrator/components/com_phocadownload/models/phocadownloadrafile.php b/packages/phocadownload/administrator/components/com_phocadownload/models/phocadownloadrafile.php new file mode 100644 index 00000000..ef55f717 --- /dev/null +++ b/packages/phocadownload/administrator/components/com_phocadownload/models/phocadownloadrafile.php @@ -0,0 +1,252 @@ +getUserStateFromRequest($this->context.'.filter.search', 'filter_search'); + $this->setState('filter.search', $search); +/* + $accessId = $app->getUserStateFromRequest($this->context.'.filter.access', 'filter_access', null, 'int'); + $this->setState('filter.access', $accessId); + + $state = $app->getUserStateFromRequest($this->context.'.filter.state', 'filter_published', '', 'string'); + $this->setState('filter.state', $state); +*/ + $categoryId = $app->getUserStateFromRequest($this->context.'.filter.category_id', 'filter_category_id', null); + $this->setState('filter.category_id', $categoryId); +/* + $language = $app->getUserStateFromRequest($this->context.'.filter.language', 'filter_language', ''); + $this->setState('filter.language', $language); +*/ + // Load the parameters. + $params = JComponentHelper::getParams('com_phocadownload'); + $this->setState('params', $params); + + // List state information. + parent::populateState('uc.username', 'asc'); + } + + protected function getStoreId($id = '') + { + // Compile the store id. + $id .= ':'.$this->getState('filter.search'); + //$id .= ':'.$this->getState('filter.access'); + //$id .= ':'.$this->getState('filter.state'); + $id .= ':'.$this->getState('filter.category_id'); + + return parent::getStoreId($id); + } + + protected function getListQuery() + { + /* + $query = ' SELECT a.*, cc.title AS categorytitle, cc.id AS categoryid, i.title AS imagetitle, i.id AS imageid, ua.name AS editor, u.id AS ratinguserid, u.username AS ratingusername ' + . ' FROM #__phocadownload_file_votes AS a ' + . ' LEFT JOIN #__phocadownload AS i ON i.id = a.imgid ' + . ' LEFT JOIN #__phocadownload_categories AS cc ON cc.id = i.catid ' + . ' LEFT JOIN #__users AS ua ON ua.id = a.checked_out ' + . ' LEFT JOIN #__users AS u ON u.id = a.userid' + . $where + . ' GROUP by a.id' + . $orderby; + */ + + // Create a new query object. + $db = $this->getDbo(); + $query = $db->getQuery(true); + + // Select the required fields from the table. + $query->select( + $this->getState( + 'list.select', + 'a.*' + ) + ); + $query->from('`#__phocadownload_file_votes` AS a'); + + // Join over the language + $query->select('l.title AS language_title'); + $query->join('LEFT', '`#__languages` AS l ON l.lang_code = a.language'); + + // Join over the users for the checked out user. + $query->select('ua.id AS ratinguserid, ua.username AS ratingusername, ua.name AS ratingname'); + $query->join('LEFT', '#__users AS ua ON ua.id=a.userid'); + + $query->select('uc.name AS editor'); + $query->join('LEFT', '#__users AS uc ON uc.id=a.checked_out'); + + $query->select('i.title AS file_title, i.id AS file_id'); + $query->join('LEFT', '#__phocadownload AS i ON i.id = a.fileid'); + +/* // Join over the asset groups. + $query->select('ag.title AS access_level'); + $query->join('LEFT', '#__viewlevels AS ag ON ag.id = a.access'); +*/ + // Join over the categories. + $query->select('c.title AS category_title, c.id AS category_id'); + $query->join('LEFT', '#__phocadownload_categories AS c ON c.id = i.catid'); + + // Filter by access level. + /* if ($access = $this->getState('filter.access')) { + $query->where('a.access = '.(int) $access); + }*/ + + // Filter by published state. + $published = $this->getState('filter.state'); + if (is_numeric($published)) { + $query->where('a.published = '.(int) $published); + } + else if ($published === '') { + $query->where('(a.published IN (0, 1))'); + } + + // Filter by category. + $categoryId = $this->getState('filter.category_id'); + if (is_numeric($categoryId)) { + $query->where('i.catid = ' . (int) $categoryId); + } + + // Filter by search in title + $search = $this->getState('filter.search'); + if (!empty($search)) + { + if (stripos($search, 'id:') === 0) { + $query->where('a.id = '.(int) substr($search, 3)); + } + else + { + $search = $db->Quote('%'.$db->escape($search, true).'%'); + $query->where('( ua.name LIKE '.$search.' OR ua.username LIKE '.$search.')'); + } + } + + $query->group('a.id'); + + // Add the list ordering clause. + //$orderCol = $this->state->get('list.ordering'); + //$orderDirn = $this->state->get('list.direction'); + $orderCol = $this->state->get('list.ordering', 'file_title'); + $orderDirn = $this->state->get('list.direction', 'asc'); + if ($orderCol == 'a.ordering' || $orderCol == 'category_title') { + $orderCol = 'category_title '.$orderDirn.', a.ordering'; + } + $query->order($db->escape($orderCol.' '.$orderDirn)); + + //echo nl2br(str_replace('#__','jos_',$query)); + return $query; + } + + + function delete($cid = array()) { + + if (count( $cid )) { + JArrayHelper::toInteger($cid); + $cids = implode( ',', $cid ); + + //Select affected catids + $query = 'SELECT v.fileid AS imgid' + . ' FROM #__phocadownload_file_votes AS v' + . ' WHERE v.id IN ( '.$cids.' )'; + $images = $this->_getList($query); + + //Delete it from DB + $query = 'DELETE FROM #__phocadownload_file_votes' + . ' WHERE id IN ( '.$cids.' )'; + $this->_db->setQuery( $query ); + if(!$this->_db->query()) { + $this->setError($this->_db->getErrorMsg()); + return false; + } + + foreach ($images as $valueImgId) { + $updated = PhocaDownloadRateHelper::updateVoteStatisticsFile( $valueImgId->imgid ); + if(!$updated) { + return false; + } + } + } + return true; + } + + protected function prepareTable(&$table) + { + jimport('joomla.filter.output'); + $date = JFactory::getDate(); + $user = JFactory::getUser(); + + $table->title = htmlspecialchars_decode($table->title, ENT_QUOTES); + $table->alias = JApplication::stringURLSafe($table->alias); + + if (empty($table->alias)) { + $table->alias = JApplication::stringURLSafe($table->title); + } + + if (empty($table->id)) { + // Set the values + //$table->created = $date->toSql(); + + // Set ordering to the last item if not set + if (empty($table->ordering)) { + $db = JFactory::getDbo(); + $db->setQuery('SELECT MAX(ordering) FROM #__phocadownload_file_votes'); + $max = $db->loadResult(); + + $table->ordering = $max+1; + } + } + else { + // Set the values + //$table->modified = $date->toSql(); + //$table->modified_by = $user->get('id'); + } + } + + public function saveorder($pks, $order) { + return true; + } + +} +?> \ No newline at end of file diff --git a/packages/phocadownload/administrator/components/com_phocadownload/models/phocadownloadstat.php b/packages/phocadownload/administrator/components/com_phocadownload/models/phocadownloadstat.php new file mode 100644 index 00000000..098101f8 --- /dev/null +++ b/packages/phocadownload/administrator/components/com_phocadownload/models/phocadownloadstat.php @@ -0,0 +1,248 @@ +getUserStateFromRequest($this->context.'.filter.search', 'filter_search'); + $this->setState('filter.search', $search); + + + + $state = $app->getUserStateFromRequest($this->context.'.filter.state', 'filter_published', '', 'string'); + + $this->setState('filter.state', $state); + + $categoryId = $app->getUserStateFromRequest($this->context.'.filter.category_id', 'filter_category_id', null); + $this->setState('filter.category_id', $categoryId); + + + + // Load the parameters. + $params = JComponentHelper::getParams('com_phocadownload'); + $this->setState('params', $params); + + // List state information. + //parent::populateState('uc.name', 'asc'); + parent::populateState('a.hits', 'desc'); + } + + protected function getStoreId($id = '') + { + // Compile the store id. + $id .= ':'.$this->getState('filter.search'); + $id .= ':'.$this->getState('filter.access'); + $id .= ':'.$this->getState('filter.state'); + $id .= ':'.$this->getState('filter.category_id'); + $id .= ':'.$this->getState('filter.file_id'); + + return parent::getStoreId($id); + } + + + protected function getListQuery() + { + /* + $query = ' SELECT a.*, cc.title AS categorytitle, s.title AS sectiontitle, u.name AS editor, g.name AS groupname, MAX(a.hits) AS maxhit ' + . ' FROM #__phocadownload AS a ' + . ' LEFT JOIN #__phocadownload_categories AS cc ON cc.id = a.catid ' + . ' LEFT JOIN #__phocadownload_sections AS s ON s.id = a.sectionid ' + . ' LEFT JOIN #__groups AS g ON g.id = a.access ' + . ' LEFT JOIN #__users AS u ON u.id = a.checked_out ' + . $where + . ' GROUP by a.id' + . $orderby + */ + // Create a new query object. + $db = $this->getDbo(); + $query = $db->getQuery(true); + + // Select the required fields from the table. + $query->select( + $this->getState( + 'list.select', + 'a.*' + ) + ); + $query->from('`#__phocadownload` AS a'); + + // Join over the language + //$query->select('l.title AS language_title'); + //$query->join('LEFT', '`#__languages` AS l ON l.lang_code = a.language'); + + // Join over the users for the checked out user. + + + $query->select('uc.name AS editor'); + $query->join('LEFT', '#__users AS uc ON uc.id=a.checked_out'); + + + + // Join over the asset groups. + //$query->select('ag.title AS access_level'); + //$query->join('LEFT', '#__viewlevels AS ag ON ag.id = a.access'); + + // Join over the categories. + $query->select('c.title AS category_title, c.id AS category_id'); + $query->join('LEFT', '#__phocadownload_categories AS c ON c.id = a.catid'); + + //$query->select('ua.id AS userid, ua.username AS username, ua.name AS usernameno'); + //$query->join('LEFT', '#__users AS ua ON ua.id = a.owner_id'); + + //$query->select('v.average AS ratingavg'); + //$query->join('LEFT', '#__phocadownload_img_votes_statistics AS v ON v.imgid = a.id'); + + // Filter by access level. + //if ($access = $this->getState('filter.access')) { + // $query->where('a.access = '.(int) $access); + //} + + // Filter by published state. + $published = $this->getState('filter.state'); + if (is_numeric($published)) { + $query->where('a.published = '.(int) $published); + } + else if ($published === '') { + $query->where('(a.published IN (0, 1))'); + } + + // Filter by category. + $categoryId = $this->getState('filter.category_id'); + if (is_numeric($categoryId)) { + $query->where('a.catid = ' . (int) $categoryId); + } + + // Filter by search in title + $search = $this->getState('filter.search'); + if (!empty($search)) + { + if (stripos($search, 'id:') === 0) { + $query->where('a.id = '.(int) substr($search, 3)); + } + else + { + $search = $db->Quote('%'.$db->escape($search, true).'%'); + $query->where('( a.title LIKE '.$search.' OR a.filename LIKE '.$search.')'); + } + } + + //$query->group('a.id'); + + // Add the list ordering clause. + $orderCol = $this->state->get('list.ordering'); + $orderDirn = $this->state->get('list.direction'); + if ($orderCol == 'a.ordering' || $orderCol == 'category_title') { + $orderCol = 'category_title '.$orderDirn.', a.ordering'; + } + $query->order($db->escape($orderCol.' '.$orderDirn)); + + //echo nl2br(str_replace('#__', 'jos_', $query->__toString())); + return $query; + } + + function getMaxAndSum() { + + $db = $this->getDbo(); + $query = $db->getQuery(true); + + $query->select( + $this->getState( + 'list.select', + 'MAX(a.hits) AS maxhit, SUM(a.hits) AS sumhit' + ) + ); + + $query->from('`#__phocadownload` AS a'); + + $query->select('uc.name AS editor'); + $query->join('LEFT', '#__users AS uc ON uc.id=a.checked_out'); + + //$query->select('c.title AS category_title, c.id AS category_id'); + //$query->join('LEFT', '#__phocadownload_categories AS c ON c.id = a.catid'); + + // Filter by published state. + $published = $this->getState('filter.state'); + if (is_numeric($published)) { + $query->where('a.published = '.(int) $published); + } + else if ($published === '') { + $query->where('(a.published IN (0, 1))'); + } + + // Filter by category. + $categoryId = $this->getState('filter.category_id'); + if (is_numeric($categoryId)) { + $query->where('a.catid = ' . (int) $categoryId); + } + + // Filter by search in title + $search = $this->getState('filter.search'); + if (!empty($search)) + { + if (stripos($search, 'id:') === 0) { + $query->where('a.id = '.(int) substr($search, 3)); + } + else + { + $search = $db->Quote('%'.$db->escape($search, true).'%'); + $query->where('a.title LIKE '.$search.' OR a.filename LIKE '.$search); + } + } + + //$query->group('a.id'); + + // Add the list ordering clause. + $orderCol = $this->state->get('list.ordering'); + $orderDirn = $this->state->get('list.direction'); + if ($orderCol == 'a.ordering' || $orderCol == 'category_title') { + $orderCol = 'category_title '.$orderDirn.', a.ordering'; + } + $query->order($db->escape($orderCol.' '.$orderDirn)); + + $db->setQuery($query, 0, 1); + $maxAndSum = $db->loadObject(); + + //echo nl2br(str_replace('#__', 'jos_', $query->__toString())); + return $maxAndSum; + + } + + +} +?> \ No newline at end of file diff --git a/packages/phocadownload/administrator/components/com_phocadownload/models/phocadownloadstyle.php b/packages/phocadownload/administrator/components/com_phocadownload/models/phocadownloadstyle.php new file mode 100644 index 00000000..67994977 --- /dev/null +++ b/packages/phocadownload/administrator/components/com_phocadownload/models/phocadownloadstyle.php @@ -0,0 +1,278 @@ +loadForm('com_phocadownload.phocadownloadstyles', 'phocadownloadstyle', array('control' => 'jform', 'load_data' => $loadData)); + if (empty($form)) { + return false; + } + return $form; + } + + protected function loadFormData() + { + // Check the session for previously entered form data. + $data = JFactory::getApplication()->getUserState('com_phocadownload.edit.phocadownloadstyles.data', array()); + + if (empty($data)) { + $data = $this->getItem(); + } + + return $data; + } + + protected function prepareTable($table) + { + jimport('joomla.filter.output'); + $date = JFactory::getDate(); + $user = JFactory::getUser(); + + $table->title = htmlspecialchars_decode($table->title, ENT_QUOTES); + $table->alias = JApplication::stringURLSafe($table->alias); + + if (empty($table->alias)) { + $table->alias = JApplication::stringURLSafe($table->title); + } + + if (empty($table->id)) { + // Set the values + //$table->created = $date->toSql(); + + // Set ordering to the last item if not set + if (empty($table->ordering)) { + $db = JFactory::getDbo(); + $db->setQuery('SELECT MAX(ordering) FROM #__phocadownload_styles WHERE type = '.(int)$table->type); + $max = $db->loadResult(); + + $table->ordering = $max+1; + } + } + else { + // Set the values + //$table->modified = $date->toSql(); + //$table->modified_by = $user->get('id'); + } + } + + protected function getReorderConditions($table = null) + { + $condition = array(); + $condition[] = 'type = '. (int) $table->type; + //$condition[] = 'state >= 0'; + return $condition; + } + + public function increaseOrdering($categoryId) { + + $ordering = 1; + $this->_db->setQuery('SELECT MAX(ordering) FROM #__phocadownload_styles WHERE type='.(int)$categoryId); + $max = $this->_db->loadResult(); + $ordering = $max + 1; + return $ordering; + } + + public function &getSource($id, $filename, $type) { + $item = new stdClass; + + $filePath = PhocaDownloadFile::existsCSS($filename, $type); + if ($filePath) { + //$item->id = $id; + //$item->type = $type; + //$item->filname = $filename; + $item->source = file_get_contents($filePath); + } else { + $this->setError(JText::_('COM_PHOCADOWNLOAD_FILE_DOES_NOT_EXIST')); + } + return $item; + } + + public function save($data) { + jimport('joomla.filesystem.file'); + + // New + if ($data['id'] < 1) { + $data['type'] = 2;// Custom in every case + if ($data['title'] != '') { + $filename = JApplication::stringURLSafe($data['title']); + + if (trim(str_replace('-','',$filename)) == '') { + $filename = JFactory::getDate()->toFormat("%Y-%m-%d-%H-%M-%S"); + } + } else { + $filename = JFactory::getDate()->toFormat("%Y-%m-%d-%H-%M-%S"); + } + $filename = $filename . '.css'; + $data['filename'] = $filename; + + $filePath = PhocaDownloadFile::existsCSS($filename, $data['type']); + if ($filePath) { + $this->setError(JText::sprintf('COM_PHOCADOWNLOAD_FILE_ALREADY_EXISTS', $fileName)); + return false; + } else { + $filePath = PhocaDownloadFile::getCSSPath($data['type']) . $filename; + } + } else { + + $filename = PhocaDownloadFile::getCSSFile($data['id']); + + $filePath = PhocaDownloadFile::existsCSS($filename, $data['type']); + } + + //$dispatcher = JEventDispatcher::getInstance(); + $fileName = $filename; + + + // Include the extension plugins for the save events. + //JPluginHelper::importPlugin('extension'); + + // Set FTP credentials, if given. + JClientHelper::setCredentialsFromRequest('ftp'); + $ftp = JClientHelper::getCredentials('ftp'); + + // Try to make the template file writeable. + if (!$ftp['enabled'] && JPath::isOwner($filePath) && !JPath::setPermissions($filePath, '0644')) { + $this->setError(JText::_('COM_PHOCADOWNLOAD_ERROR_SOURCE_FILE_NOT_WRITABLE')); + return false; + } + + // Trigger the onExtensionBeforeSave event. + /*$result = $dispatcher->trigger('onExtensionBeforeSave', array('com_phocadownload.source', &$data, false)); + if (in_array(false, $result, true)) { + $this->setError($table->getError()); + return false; + }*/ + + $return = JFile::write($filePath, $data['source']); + + // Try to make the template file unwriteable. + if (!$ftp['enabled'] && JPath::isOwner($filePath) && !JPath::setPermissions($filePath, '0444')) { + $this->setError(JText::_('COM_PHOCADOWNLOAD_ERROR_SOURCE_FILE_NOT_UNWRITABLE')); + return false; + } elseif (!$return) { + $this->setError(JText::sprintf('COM_PHOCADOWNLOAD_ERROR_FAILED_TO_SAVE_FILENAME', $fileName)); + return false; + } + + // Trigger the onExtensionAfterSave event. + //$dispatcher->trigger('onExtensionAfterSave', array('com_templates.source', &$table, false)); + + //return true; + return parent::save($data); + } + + public function delete(&$pks) + { + $dispatcher = JEventDispatcher::getInstance(); + $pks = (array) $pks; + $table = $this->getTable(); + + // Include the content plugins for the on delete events. + JPluginHelper::importPlugin('content'); + + // Iterate the items to delete each one. + foreach ($pks as $i => $pk) + { + + if ($table->load($pk)) + { + + if ($this->canDelete($table)) + { + + $context = $this->option . '.' . $this->name; + + // Trigger the onContentBeforeDelete event. + $result = $dispatcher->trigger($this->event_before_delete, array($context, $table)); + if (in_array(false, $result, true)) + { + $this->setError($table->getError()); + return false; + } + + //PHOCAEDIT + $filePath = PhocaDownloadFile::getCSSFile($pk, true); + //END PHOCAEDIT + + if (!$table->delete($pk)) + { + $this->setError($table->getError()); + return false; + } + + //PHOCAEDIT + if (file_exists($filePath)) { + JFile::delete($filePath); + } + //END PHOCAEDIT + + // Trigger the onContentAfterDelete event. + $dispatcher->trigger($this->event_after_delete, array($context, $table)); + + } + else + { + + // Prune items that you can't change. + unset($pks[$i]); + $error = $this->getError(); + if ($error) + { + JLog::add($error, JLog::WARNING, 'jerror'); + return false; + } + else + { + JLog::add(JText::_('JLIB_APPLICATION_ERROR_DELETE_NOT_PERMITTED'), JLog::WARNING, 'jerror'); + return false; + } + } + + } + else + { + $this->setError($table->getError()); + return false; + } + } + + // Clear the component's cache + $this->cleanCache(); + + return true; + } +} +?> \ No newline at end of file diff --git a/packages/phocadownload/administrator/components/com_phocadownload/models/phocadownloadstyles.php b/packages/phocadownload/administrator/components/com_phocadownload/models/phocadownloadstyles.php new file mode 100644 index 00000000..b80b23a5 --- /dev/null +++ b/packages/phocadownload/administrator/components/com_phocadownload/models/phocadownloadstyles.php @@ -0,0 +1,258 @@ +getUserStateFromRequest($this->context.'.filter.search', 'filter_search'); + $this->setState('filter.search', $search); +/* + $accessId = $app->getUserStateFromRequest($this->context.'.filter.access', 'filter_access', null, 'int'); + $this->setState('filter.access', $accessId); +*/ + $state = $app->getUserStateFromRequest($this->context.'.filter.state', 'filter_published', '', 'string'); + $this->setState('filter.state', $state); + + $categoryId = $app->getUserStateFromRequest($this->context.'.filter.category_id', 'filter_category_id', null); + $this->setState('filter.category_id', $categoryId); + + $language = $app->getUserStateFromRequest($this->context.'.filter.language', 'filter_language', ''); + $this->setState('filter.language', $language); + + // Load the parameters. + $params = JComponentHelper::getParams('com_phocadownload'); + $this->setState('params', $params); + + // List state information. + parent::populateState('a.ordering', 'asc'); + } + + protected function getStoreId($id = '') + { + // Compile the store id. + $id .= ':'.$this->getState('filter.search'); + $id .= ':'.$this->getState('filter.state'); + $id .= ':'.$this->getState('filter.category_id'); + + return parent::getStoreId($id); + } + + + protected function getListQuery() + { + // Create a new query object. + $db = $this->getDbo(); + $query = $db->getQuery(true); + + // Select the required fields from the table. + $query->select( + $this->getState( + 'list.select', + 'a.*' + ) + ); + $query->from('`#__phocadownload_styles` AS a'); + + // Join over the language + $query->select('l.title AS language_title'); + $query->join('LEFT', '`#__languages` AS l ON l.lang_code = a.language'); + + // Join over the users for the checked out user. + $query->select('uc.name AS editor'); + $query->join('LEFT', '#__users AS uc ON uc.id=a.checked_out'); + + // Filter by published state. + $published = $this->getState('filter.state'); + if (is_numeric($published)) { + $query->where('a.published = '.(int) $published); + } + else if ($published === '') { + $query->where('(a.published IN (0, 1))'); + } + + // Filter by category. + $categoryId = $this->getState('filter.category_id'); + if (is_numeric($categoryId)) { + $query->where('a.type = ' . (int) $categoryId); + } + + // Filter by search in title + $search = $this->getState('filter.search'); + if (!empty($search)) + { + if (stripos($search, 'id:') === 0) { + $query->where('a.id = '.(int) substr($search, 3)); + } + else + { + $search = $db->Quote('%'.$db->escape($search, true).'%'); + $query->where('( a.title LIKE '.$search.' OR a.filename LIKE '.$search.')'); + } + } + + $query->group('a.id'); + + // Add the list ordering clause. + //$orderCol = $this->state->get('list.ordering'); + //$orderDirn = $this->state->get('list.direction'); + /*if ($orderCol == 'a.ordering' || $orderCol == 'category_title') { + $orderCol = 'category_title '.$orderDirn.', a.ordering'; + }*/ + + // Add the list ordering clause. + //$orderCol = $this->state->get('list.ordering'); + //$orderDirn = $this->state->get('list.direction'); + $orderCol = $this->state->get('list.ordering', 'ordering'); + $orderDirn = $this->state->get('list.direction', 'asc'); + if ($orderCol == 'a.ordering' || $orderCol == 'category_title') { + $orderCol = 'a.type '.$orderDirn.', a.ordering'; + } + $query->order($db->escape($orderCol.' '.$orderDirn)); + + + return $query; + } + + protected function getItemsCheck() { + $db = JFactory::getDBO(); + $query = 'SELECT a.id, a.filename, a.type' + .' FROM #__phocadownload_styles AS a'; + $db->setQuery($query); + $items = $db->loadObjectList(); + return $items; + } + + public function checkItems() { + + $db = JFactory::getDBO(); + $files = $this->getFiles(); + $items = $this->getItemsCheck(); + if (!empty($files)) { + foreach ($files as $fk => $fv) { + if ($fv->exists) { + $exists = 0; + foreach ($items as $ik => $iv) { + if ($fv->filename == $iv->filename && $fv->type == $iv->type){ + // we cannot break because there are two types + $exists = 1; + } + } + if ($exists == 0) { + + $query = 'SELECT a.ordering' + .' FROM #__phocadownload_styles AS a' + .' WHERE a.type = '.(int) $fv->type; + $db->setQuery($query, 0, 1); + $ordO = $db->loadObject(); + if (!isset($ordO->ordering)) { + $ordering = 1; + } else { + $ordering = (int)$ordO->ordering + 1; + } + + $title = ucfirst(str_replace('.css', '', htmlspecialchars($fv->filename))); + $published = 1; + $query = 'INSERT into #__phocadownload_styles' + .' (id, title, filename, type, published, ordering, language)' + .' VALUES (null, '. $db->quote($title) + .' , '.$db->quote(htmlspecialchars($fv->filename)) + .' , '.(int)$fv->type + .' , '.(int)$published + .' , '.(int)$ordering + .' , '.$db->quote('*') + .')'; + $db->setQuery($query); + + if (!$db->query()) { + $this->setError('Database Error - Inserting CSS Style'); + return false; + } + } + + } + + } + + } + return true; + + } + + public function getFiles() + { + $result = array(); + jimport('joomla.filesystem.folder'); + + $paths = PhocaDownloadPath::getPathMedia(); + $path = JPath::clean($paths->media_css_abs . '/main/'); + + if (is_dir($path)) { + $files = JFolder::files($path, '\.css$', false, false); + + foreach ($files as $file) { + $fileO = new stdClass; + $fileO->filename = $file; + $fileO->exists = file_exists($path.$file); + $fileO->type = 1; + $result[] = $fileO; + } + } else { + $this->setError(JText::_('COM_PHOCADOWNLOAD_ERROR_CSS_FOLDER_NOT_FOUND') . ' (1)'); + return false; + } + + $path = JPath::clean($paths->media_css_abs . '/custom/'); + if (is_dir($path)) { + $files = JFolder::files($path, '\.css$', false, false); + + foreach ($files as $file) { + $fileO = new stdClass; + $fileO->filename = $file; + $fileO->exists = file_exists($path.$file); + $fileO->type = 2; + $result[] = $fileO; + } + } else { + $this->setError(JText::_('COM_PHOCADOWNLOAD_ERROR_CSS_FOLDER_NOT_FOUND') . ' (2)'); + return false; + } + return $result; + } +} +?> \ No newline at end of file diff --git a/packages/phocadownload/administrator/components/com_phocadownload/models/phocadownloadtag.php b/packages/phocadownload/administrator/components/com_phocadownload/models/phocadownloadtag.php new file mode 100644 index 00000000..7ea85097 --- /dev/null +++ b/packages/phocadownload/administrator/components/com_phocadownload/models/phocadownloadtag.php @@ -0,0 +1,93 @@ +loadForm('com_phocadownload.phocadownloadtag', 'phocadownloadtag', array('control' => 'jform', 'load_data' => $loadData)); + if (empty($form)) { + return false; + } + return $form; + } + + protected function loadFormData() + { + // Check the session for previously entered form data. + $data = JFactory::getApplication()->getUserState('com_phocadownload.edit.phocadownloadtag.data', array()); + + if (empty($data)) { + $data = $this->getItem(); + } + + return $data; + } + + protected function prepareTable($table) + { + jimport('joomla.filter.output'); + $date = JFactory::getDate(); + $user = JFactory::getUser(); + + $table->title = htmlspecialchars_decode($table->title, ENT_QUOTES); + $table->alias = JApplication::stringURLSafe($table->alias); + + if (empty($table->alias)) { + $table->alias = JApplication::stringURLSafe($table->title); + } + + if (empty($table->id)) { + // Set the values + //$table->created = $date->toSql(); + + // Set ordering to the last item if not set + if (empty($table->ordering)) { + $db = JFactory::getDbo(); + $db->setQuery('SELECT MAX(ordering) FROM #__phocadownload_tags'); + $max = $db->loadResult(); + + $table->ordering = $max+1; + } + } + else { + // Set the values + //$table->modified = $date->toSql(); + //$table->modified_by = $user->get('id'); + } + } +} +?> \ No newline at end of file diff --git a/packages/phocadownload/administrator/components/com_phocadownload/models/phocadownloadtags.php b/packages/phocadownload/administrator/components/com_phocadownload/models/phocadownloadtags.php new file mode 100644 index 00000000..5e6f53ad --- /dev/null +++ b/packages/phocadownload/administrator/components/com_phocadownload/models/phocadownloadtags.php @@ -0,0 +1,151 @@ +getUserStateFromRequest($this->context.'.filter.search', 'filter_search'); + $this->setState('filter.search', $search); + +/* $accessId = $app->getUserStateFromRequest($this->context.'.filter.access', 'filter_access', null, 'int'); + $this->setState('filter.access', $accessId);*/ + + + + $state = $app->getUserStateFromRequest($this->context.'.filter.state', 'filter_published', '', 'string'); + $this->setState('filter.state', $state); + + //$language = $app->getUserStateFromRequest($this->context.'.filter.language', 'filter_language', ''); + //$this->setState('filter.language', $language); + + // Load the parameters. + $params = JComponentHelper::getParams('com_phocadownload'); + $this->setState('params', $params); + + // List state information. + parent::populateState('a.title', 'asc'); + } + + protected function getStoreId($id = '') + { + // Compile the store id. + $id .= ':'.$this->getState('filter.search'); + //$id .= ':'.$this->getState('filter.access'); + $id .= ':'.$this->getState('filter.state'); + $id .= ':'.$this->getState('filter.tag_id'); + + + return parent::getStoreId($id); + } + + protected function getListQuery() + { + /* + $query = ' SELECT a.*, u.name AS editor ' + . ' FROM #__phocadownload_licenses AS a ' + . ' LEFT JOIN #__users AS u ON u.id = a.checked_out ' + */ + // Create a new query object. + $db = $this->getDbo(); + $query = $db->getQuery(true); + + // Select the required fields from the table. + $query->select( + $this->getState( + 'list.select', + 'a.*' + ) + ); + $query->from('`#__phocadownload_tags` AS a'); + + // Join over the language + //$query->select('l.title AS language_title'); + //$query->join('LEFT', '`#__languages` AS l ON l.lang_code = a.language'); + + // Join over the users for the checked out user. + $query->select('uc.name AS editor'); + $query->join('LEFT', '#__users AS uc ON uc.id=a.checked_out'); + + + // Filter by access level. +/* if ($access = $this->getState('filter.access')) { + $query->where('a.access = '.(int) $access); + }*/ + + + + // Filter by published state. + $published = $this->getState('filter.state'); + if (is_numeric($published)) { + $query->where('a.published = '.(int) $published); + } + else if ($published === '') { + $query->where('(a.published IN (0, 1))'); + } + + + // Filter by search in title + $search = $this->getState('filter.search'); + if (!empty($search)) + { + if (stripos($search, 'id:') === 0) { + $query->where('a.id = '.(int) substr($search, 3)); + } + else + { + $search = $db->Quote('%'.$db->escape($search, true).'%'); + $query->where('( a.title LIKE '.$search.' OR a.alias LIKE '.$search.')'); + } + } + + $orderCol = $this->state->get('list.ordering'); + $orderDirn = $this->state->get('list.direction'); + $query->order($db->escape($orderCol.' '.$orderDirn)); + + //echo nl2br(str_replace('#__', 'jos_', $query->__toString())); + return $query; + + } + + +} +?> \ No newline at end of file diff --git a/packages/phocadownload/administrator/components/com_phocadownload/models/phocadownloadupload.php b/packages/phocadownload/administrator/components/com_phocadownload/models/phocadownloadupload.php new file mode 100644 index 00000000..f2050ff1 --- /dev/null +++ b/packages/phocadownload/administrator/components/com_phocadownload/models/phocadownloadupload.php @@ -0,0 +1,30 @@ +get('id').' ) )'; + $this->_db->setQuery( $query ); + if (!$this->_db->query()) { + $this->setError($this->_db->getErrorMsg()); + return false; + } + return true; + } +} +?> \ No newline at end of file diff --git a/packages/phocadownload/administrator/components/com_phocadownload/models/phocadownloaduploads.php b/packages/phocadownload/administrator/components/com_phocadownload/models/phocadownloaduploads.php new file mode 100644 index 00000000..44796b85 --- /dev/null +++ b/packages/phocadownload/administrator/components/com_phocadownload/models/phocadownloaduploads.php @@ -0,0 +1,221 @@ +getUserStateFromRequest($this->context.'.filter.search', 'filter_search'); + $this->setState('filter.search', $search); +/* + $accessId = $app->getUserStateFromRequest($this->context.'.filter.access', 'filter_access', null, 'int'); + $this->setState('filter.access', $accessId); +*/ + $state = $app->getUserStateFromRequest($this->context.'.filter.state', 'filter_published', '', 'string'); + $this->setState('filter.state', $state); +/* + $categoryId = $app->getUserStateFromRequest($this->context.'.filter.category_id', 'filter_category_id', null); + $this->setState('filter.category_id', $categoryId); + + $language = $app->getUserStateFromRequest($this->context.'.filter.language', 'filter_language', ''); + $this->setState('filter.language', $language); +*/ + // Load the parameters. + $params = JComponentHelper::getParams('com_phocadownload'); + $this->setState('params', $params); + + // List state information. + parent::populateState('username', 'asc'); + } + + protected function getStoreId($id = '') + { + // Compile the store id. + $id .= ':'.$this->getState('filter.search'); + //$id .= ':'.$this->getState('filter.access'); + $id .= ':'.$this->getState('filter.state'); + + return parent::getStoreId($id); + } + + protected function getListQuery() + { + /* + $query = ' SELECT a.*, fa.countfaid, fn.countfnid, 0 AS checked_out' + . ' FROM #__users AS a' + . ' LEFT JOIN #__phocadownload AS f ON f.owner_id = a.id ' + . ' LEFT JOIN #__phocadownload_categories AS cc ON cc.id = f.catid ' + . ' LEFT JOIN #__phocadownload_sections AS s ON s.id = f.sectionid ' + . ' LEFT JOIN #__groups AS g ON g.id = f.access ' + . ' LEFT JOIN #__users AS aa ON aa.id = f.checked_out ' + + + . ' LEFT JOIN (SELECT fa.owner_id, fa.id, count(*) AS countfaid' + . ' FROM #__phocadownload AS fa' + . ' WHERE fa.approved = 1' + . ' GROUP BY fa.owner_id) AS fa ' + . ' ON a.id = fa.owner_id' + + . ' LEFT JOIN (SELECT fn.owner_id, fn.id, count(*) AS countfnid' + . ' FROM #__phocadownload AS fn' + . ' WHERE fn.approved = 0' + . ' GROUP BY fn.owner_id) AS fn ' + . ' ON a.id = fn.owner_id' + + . $where + . ' GROUP by a.id' + . $orderby; + */ + // Create a new query object. + $db = $this->getDbo(); + $query = $db->getQuery(true); + + // Select the required fields from the table. + $query->select( + $this->getState( + 'list.select', + 'a.*' + ) + ); + $query->from('#__users AS a'); + + // Join over the language + //$query->select('l.title AS language_title'); + //$query->join('LEFT', '#__languages AS l ON l.lang_code = a.language'); + + + $query->select('f.id as file_id'); + $query->join('LEFT', '#__phocadownload AS f ON f.owner_id = a.id'); + + $query->select('cc.id as category_id'); + $query->join('LEFT', '#__phocadownload_categories AS cc ON cc.id = f.catid'); + + // Join over the users for the checked out user. + //$query->select('ua.id AS userid, ua.username AS username, ua.name AS usernameno'); + //$query->join('LEFT', '#__users AS ua ON ua.id=a.userid'); + + $query->select('ua.id AS userid, ua.username AS username, ua.name AS usernameno'); + $query->join('LEFT', '#__users AS ua ON ua.id=f.owner_id'); + + $query->select('uc.name AS editor'); + $query->join('LEFT', '#__users AS uc ON uc.id=f.checked_out'); + + $query->select('fa.countfaid'); + $query->join('LEFT', '(SELECT fa.owner_id, fa.id, count(*) AS countfaid' + . ' FROM #__phocadownload AS fa' + . ' WHERE fa.approved = 1' + . ' GROUP BY fa.owner_id) AS fa ' + . ' ON a.id = fa.owner_id '); + + + $query->select('fn.countfnid'); + $query->join('LEFT', '(SELECT fn.owner_id, fn.id, count(*) AS countfnid' + . ' FROM #__phocadownload AS fn' + . ' WHERE fn.approved = 0' + . ' GROUP BY fn.owner_id) AS fn ' + . ' ON a.id = fn.owner_id'); + + + +/* // Join over the asset groups. + $query->select('ag.title AS access_level'); + $query->join('LEFT', '#__viewlevels AS ag ON ag.id = a.access'); +*/ + + // Filter by access level. + /* if ($access = $this->getState('filter.access')) { + $query->where('a.access = '.(int) $access); + }*/ + + // Filter by published state. + /*$published = $this->getState('filter.state'); + if (is_numeric($published)) { + $query->where('a.published = '.(int) $published); + } + else if ($published === '') { + $query->where('(a.published IN (0, 1))'); + }*/ + + $query->where('a.id > 0'); + $query->where('(fa.countfaid > 0 OR fn.countfnid > 0)'); + + // Filter by category. + /*$categoryId = $this->getState('filter.category_id'); + if (is_numeric($categoryId)) { + $query->where('a.catid = ' . (int) $categoryId); + }*/ + + // Filter by search in title + $search = $this->getState('filter.search'); + if (!empty($search)) + { + if (stripos($search, 'id:') === 0) { + $query->where('a.id = '.(int) substr($search, 3)); + } + else + { + $search = $db->Quote('%'.$db->escape($search, true).'%'); + $query->where('( ua.username LIKE '.$search.' OR ua.name LIKE '.$search.')'); + } + } + + $query->group('a.id'); + + // Add the list ordering clause. + //$orderCol = $this->state->get('list.ordering'); + //$orderDirn = $this->state->get('list.direction'); + $orderCol = $this->state->get('list.ordering', 'username'); + $orderDirn = $this->state->get('list.direction', 'asc'); + + + if ($orderCol == 'a.id' || $orderCol == 'username') { + $orderCol = 'a.username '.$orderDirn.', a.id'; + } + $query->order($db->escape($orderCol.' '.$orderDirn)); + + //echo nl2br(str_replace('#__', 'jos_', $query->__toString())); + return $query; + } +} +?> \ No newline at end of file diff --git a/packages/phocadownload/administrator/components/com_phocadownload/phocadownload.php b/packages/phocadownload/administrator/components/com_phocadownload/phocadownload.php new file mode 100644 index 00000000..8573fae9 --- /dev/null +++ b/packages/phocadownload/administrator/components/com_phocadownload/phocadownload.php @@ -0,0 +1,42 @@ +authorise('core.manage', 'com_phocadownload')) { + return JError::raiseWarning(404, JText::_('JERROR_ALERTNOAUTHOR')); +} +if (! class_exists('PhocaDownloadLoader')) { + require_once( JPATH_ADMINISTRATOR.DS.'components/com_phocadownload/libraries/loader.php'); +} + +require_once( JPATH_COMPONENT.DS.'controller.php' ); +jimport( 'joomla.filesystem.folder' ); +jimport( 'joomla.filesystem.file' ); +phocadownloadimport('phocadownload.path.path'); +phocadownloadimport('phocadownload.utils.utils'); +phocadownloadimport('phocadownload.utils.settings'); +phocadownloadimport('phocadownload.utils.exception'); +phocadownloadimport('phocadownload.render.renderadmin'); +phocadownloadimport('phocadownload.render.renderadminview'); +phocadownloadimport('phocadownload.render.renderadminviews'); +phocadownloadimport('phocadownload.html.category'); +phocadownloadimport('phocadownload.html.jgrid'); +phocadownloadimport('phocadownload.html.batch'); +phocadownloadimport('phocadownload.file.file'); +phocadownloadimport('phocadownload.file.fileupload'); +phocadownloadimport('phocadownload.file.fileuploadmultiple'); +phocadownloadimport('phocadownload.file.fileuploadsingle'); +phocadownloadimport('phocadownload.category.category'); +phocadownloadimport('phocadownload.tag.tag'); + +jimport('joomla.application.component.controller'); +$controller = JControllerLegacy::getInstance('PhocaDownloadCp'); +$controller->execute(JFactory::getApplication()->input->get('task')); +$controller->redirect(); +?> \ No newline at end of file diff --git a/packages/phocadownload/administrator/components/com_phocadownload/phocadownload.xml b/packages/phocadownload/administrator/components/com_phocadownload/phocadownload.xml new file mode 100644 index 00000000..679e78f9 --- /dev/null +++ b/packages/phocadownload/administrator/components/com_phocadownload/phocadownload.xml @@ -0,0 +1,99 @@ + + + com_phocadownload + Jan Pavelka (www.phoca.cz) + 02/05/2016 + + www.phoca.cz + Jan Pavelka + GNU/GPL + 3.1.2 + Phoca Download + install/script.php + + + + install/sql/mysql/install.utf8.sql + + + + + + install/sql/mysql/uninstall.utf8.sql + + + + + + update/sql/mysql + + + + + controller.php + index.html + phocadownload.php + router.php + assets + controllers + helpers + models + views + + + + index.html + bootstrap + css + images + js + + + + language/en-GB/en-GB.com_phocadownload.ini + language/en-GB/en-GB.com_phocadownload.sys.ini + + + + COM_PHOCADOWNLOAD + + COM_PHOCADOWNLOAD_CONTROLPANEL + COM_PHOCADOWNLOAD_FILES + COM_PHOCADOWNLOAD_CATEGORIES + COM_PHOCADOWNLOAD_LICENSES + COM_PHOCADOWNLOAD_STATISTICS + COM_PHOCADOWNLOAD_DOWNLOADS + COM_PHOCADOWNLOAD_UPLOADS + COM_PHOCADOWNLOAD_FILE_RATING + COM_PHOCADOWNLOAD_TAGS + COM_PHOCADOWNLOAD_LAYOUT + COM_PHOCADOWNLOAD_STYLES + COM_PHOCADOWNLOAD_LOGGING + COM_PHOCADOWNLOAD_INFO + + + + access.xml + config.xml + controller.php + index.html + phocadownload.php + phocadownload.xml + controllers + help + helpers + install + libraries + models + tables + update + views + + + + language/en-GB/en-GB.com_phocadownload.ini + language/en-GB/en-GB.com_phocadownload.sys.ini + + + + diff --git a/packages/phocadownload/administrator/components/com_phocadownload/tables/index.html b/packages/phocadownload/administrator/components/com_phocadownload/tables/index.html new file mode 100644 index 00000000..fa6d84e8 --- /dev/null +++ b/packages/phocadownload/administrator/components/com_phocadownload/tables/index.html @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/phocadownload/administrator/components/com_phocadownload/tables/phocadownload.php b/packages/phocadownload/administrator/components/com_phocadownload/tables/phocadownload.php new file mode 100644 index 00000000..b70a2fae --- /dev/null +++ b/packages/phocadownload/administrator/components/com_phocadownload/tables/phocadownload.php @@ -0,0 +1,113 @@ +textonly == 1) { + } else { + if (trim( $this->filename ) == '') { + $this->setError( JText::_( 'FILE MUST HAVE A FILENAME') ); + return false; + } + } + + if(empty($this->title)) { + $this->title = PhocaDownloadFile::getTitleFromFilenameWithoutExt($this->filename); + } + + if(empty($this->alias)) { + $this->alias = $this->title; + } + $this->alias = PhocaDownloadUtils::getAliasName($this->alias); + + return true; + } + + public function approve($pks = null, $state = 1, $userId = 0) + { + // Initialise variables. + $k = $this->_tbl_key; + + // Sanitize input. + JArrayHelper::toInteger($pks); + $userId = (int) $userId; + $state = (int) $state; + + // If there are no primary keys set check to see if the instance key is set. + if (empty($pks)) + { + if ($this->$k) { + $pks = array($this->$k); + } + // Nothing to set publishing state on, return false. + else { + $this->setError(JText::_('JLIB_DATABASE_ERROR_NO_ROWS_SELECTED')); + return false; + } + } + + // Build the WHERE clause for the primary keys. + $where = $k.'='.implode(' OR '.$k.'=', $pks); + + // Determine if there is checkin support for the table. + if (!property_exists($this, 'checked_out') || !property_exists($this, 'checked_out_time')) { + $checkin = ''; + } + else { + $checkin = ' AND (checked_out = 0 OR checked_out = '.(int) $userId.')'; + } + + // Update the publishing state for rows with the given primary keys. + $this->_db->setQuery( + 'UPDATE `'.$this->_tbl.'`' . + ' SET `approved` = '.(int) $state . + ' WHERE ('.$where.')' . + $checkin + ); + $this->_db->query(); + + // Check for a database error. + if ($this->_db->getErrorNum()) { + $this->setError($this->_db->getErrorMsg()); + return false; + } + + // If checkin is supported and all rows were adjusted, check them in. + if ($checkin && (count($pks) == $this->_db->getAffectedRows())) + { + // Checkin the rows. + foreach($pks as $pk) + { + $this->checkin($pk); + } + } + + // If the JTable instance value is in the list of primary keys that were set, set the instance. + if (in_array($this->$k, $pks)) { + $this->state = $state; + } + + $this->setError(''); + return true; + } +} +?> \ No newline at end of file diff --git a/packages/phocadownload/administrator/components/com_phocadownload/tables/phocadownloadcat.php b/packages/phocadownload/administrator/components/com_phocadownload/tables/phocadownloadcat.php new file mode 100644 index 00000000..86038049 --- /dev/null +++ b/packages/phocadownload/administrator/components/com_phocadownload/tables/phocadownloadcat.php @@ -0,0 +1,37 @@ +title ) == '') { + $this->setError( JText::_( 'CATEGORY MUST HAVE A TITLE') ); + return false; + } + + if(empty($this->alias)) { + $this->alias = $this->title; + } + $this->alias = PhocaDownloadUtils::getAliasName($this->alias); + + return true; + } +} +?> \ No newline at end of file diff --git a/packages/phocadownload/administrator/components/com_phocadownload/tables/phocadownloadfilevotes.php b/packages/phocadownload/administrator/components/com_phocadownload/tables/phocadownloadfilevotes.php new file mode 100644 index 00000000..c82d1587 --- /dev/null +++ b/packages/phocadownload/administrator/components/com_phocadownload/tables/phocadownloadfilevotes.php @@ -0,0 +1,21 @@ + \ No newline at end of file diff --git a/packages/phocadownload/administrator/components/com_phocadownload/tables/phocadownloadfilevotesstatistics.php b/packages/phocadownload/administrator/components/com_phocadownload/tables/phocadownloadfilevotesstatistics.php new file mode 100644 index 00000000..5b947911 --- /dev/null +++ b/packages/phocadownload/administrator/components/com_phocadownload/tables/phocadownloadfilevotesstatistics.php @@ -0,0 +1,21 @@ + \ No newline at end of file diff --git a/packages/phocadownload/administrator/components/com_phocadownload/tables/phocadownloadlayout.php b/packages/phocadownload/administrator/components/com_phocadownload/tables/phocadownloadlayout.php new file mode 100644 index 00000000..da4237d8 --- /dev/null +++ b/packages/phocadownload/administrator/components/com_phocadownload/tables/phocadownloadlayout.php @@ -0,0 +1,21 @@ + \ No newline at end of file diff --git a/packages/phocadownload/administrator/components/com_phocadownload/tables/phocadownloadlic.php b/packages/phocadownload/administrator/components/com_phocadownload/tables/phocadownloadlic.php new file mode 100644 index 00000000..90c0239b --- /dev/null +++ b/packages/phocadownload/administrator/components/com_phocadownload/tables/phocadownloadlic.php @@ -0,0 +1,20 @@ + \ No newline at end of file diff --git a/packages/phocadownload/administrator/components/com_phocadownload/tables/phocadownloadlogging.php b/packages/phocadownload/administrator/components/com_phocadownload/tables/phocadownloadlogging.php new file mode 100644 index 00000000..6cf26447 --- /dev/null +++ b/packages/phocadownload/administrator/components/com_phocadownload/tables/phocadownloadlogging.php @@ -0,0 +1,18 @@ + \ No newline at end of file diff --git a/packages/phocadownload/administrator/components/com_phocadownload/tables/phocadownloadstyle.php b/packages/phocadownload/administrator/components/com_phocadownload/tables/phocadownloadstyle.php new file mode 100644 index 00000000..a1a0204f --- /dev/null +++ b/packages/phocadownload/administrator/components/com_phocadownload/tables/phocadownloadstyle.php @@ -0,0 +1,29 @@ +alias)) { + $this->alias = $this->title; + } + $this->alias = PhocaDownloadUtils::getAliasName($this->alias); + + return true; + } +} +?> \ No newline at end of file diff --git a/packages/phocadownload/administrator/components/com_phocadownload/tables/phocadownloadtag.php b/packages/phocadownload/administrator/components/com_phocadownload/tables/phocadownloadtag.php new file mode 100644 index 00000000..95a567c3 --- /dev/null +++ b/packages/phocadownload/administrator/components/com_phocadownload/tables/phocadownloadtag.php @@ -0,0 +1,31 @@ +alias)) { + $this->alias = $this->title; + } + $this->alias = PhocaDownloadUtils::getAliasName($this->alias); + + return true; + } +} +?> \ No newline at end of file diff --git a/packages/phocadownload/administrator/components/com_phocadownload/tables/phocadownloaduserstats.php b/packages/phocadownload/administrator/components/com_phocadownload/tables/phocadownloaduserstats.php new file mode 100644 index 00000000..30ab9f09 --- /dev/null +++ b/packages/phocadownload/administrator/components/com_phocadownload/tables/phocadownloaduserstats.php @@ -0,0 +1,20 @@ + \ No newline at end of file diff --git a/packages/phocadownload/administrator/components/com_phocadownload/update/index.html b/packages/phocadownload/administrator/components/com_phocadownload/update/index.html new file mode 100644 index 00000000..ea9e94c1 --- /dev/null +++ b/packages/phocadownload/administrator/components/com_phocadownload/update/index.html @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/phocadownload/administrator/components/com_phocadownload/update/sql/index.html b/packages/phocadownload/administrator/components/com_phocadownload/update/sql/index.html new file mode 100644 index 00000000..ea9e94c1 --- /dev/null +++ b/packages/phocadownload/administrator/components/com_phocadownload/update/sql/index.html @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/phocadownload/administrator/components/com_phocadownload/update/sql/mysql/3.0.2.sql b/packages/phocadownload/administrator/components/com_phocadownload/update/sql/mysql/3.0.2.sql new file mode 100644 index 00000000..7f5fe747 --- /dev/null +++ b/packages/phocadownload/administrator/components/com_phocadownload/update/sql/mysql/3.0.2.sql @@ -0,0 +1,23 @@ +ALTER TABLE `#__phocadownload` ADD COLUMN `token` char(64) default NULL; +ALTER TABLE `#__phocadownload` ADD COLUMN `tokenhits` int(11) NOT NULL default 0; + +-- BEGIN PROCEDURE +-- DELIMITER $$ +-- CREATE PROCEDURE AlterTable() +-- BEGIN +-- DECLARE _count INT; +-- DECLARE _count2 INT; +-- +-- SET _count = ( SELECT COUNT(*) FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME = '#__phocadownload' AND COLUMN_NAME = 'token' ); +-- IF _count = 0 THEN ALTER TABLE `#__phocadownload` ADD COLUMN `token` char(64) default NULL; +-- END IF; +-- +-- SET _count2 = ( SELECT COUNT(*) FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME = '#__phocadownload' AND COLUMN_NAME = 'tokenhits' ); +-- IF _count2 = 0 THEN ALTER TABLE `#__phocadownload` ADD COLUMN `tokenhits` int(11) NOT NULL default 0; +-- END IF; +-- END $$ +-- DELIMITER ; +-- CALL AlterTable(); +-- DROP PROCEDURE IF EXISTS AlterTable; +-- END PROCEDURE + diff --git a/packages/phocadownload/administrator/components/com_phocadownload/update/sql/mysql/3.1.1.sql b/packages/phocadownload/administrator/components/com_phocadownload/update/sql/mysql/3.1.1.sql new file mode 100644 index 00000000..0be533a2 --- /dev/null +++ b/packages/phocadownload/administrator/components/com_phocadownload/update/sql/mysql/3.1.1.sql @@ -0,0 +1,4 @@ +ALTER TABLE `#__phocadownload` ADD COLUMN `tags_string` varchar(255) NOT NULL default ''; + + + diff --git a/packages/phocadownload/administrator/components/com_phocadownload/update/sql/mysql/index.html b/packages/phocadownload/administrator/components/com_phocadownload/update/sql/mysql/index.html new file mode 100644 index 00000000..ea9e94c1 --- /dev/null +++ b/packages/phocadownload/administrator/components/com_phocadownload/update/sql/mysql/index.html @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/phocadownload/administrator/components/com_phocadownload/views/index.html b/packages/phocadownload/administrator/components/com_phocadownload/views/index.html new file mode 100644 index 00000000..fa6d84e8 --- /dev/null +++ b/packages/phocadownload/administrator/components/com_phocadownload/views/index.html @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/phocadownload/administrator/components/com_phocadownload/views/phocadownloadcat/index.html b/packages/phocadownload/administrator/components/com_phocadownload/views/phocadownloadcat/index.html new file mode 100644 index 00000000..fa6d84e8 --- /dev/null +++ b/packages/phocadownload/administrator/components/com_phocadownload/views/phocadownloadcat/index.html @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/phocadownload/administrator/components/com_phocadownload/views/phocadownloadcat/tmpl/edit.php b/packages/phocadownload/administrator/components/com_phocadownload/views/phocadownloadcat/tmpl/edit.php new file mode 100644 index 00000000..ceff72ff --- /dev/null +++ b/packages/phocadownload/administrator/components/com_phocadownload/views/phocadownloadcat/tmpl/edit.php @@ -0,0 +1,62 @@ +t['n'] . 'RenderAdminView'; +$r = new $class(); +?> +startForm($this->t['o'], $this->t['task'], $this->item->id, 'adminForm', 'adminForm'); +// First Column +echo '
'; +$tabs = array ( +'general' => JText::_($this->t['l'].'_GENERAL_OPTIONS'), +'publishing' => JText::_($this->t['l'].'_PUBLISHING_OPTIONS'), +'metadata' => JText::_($this->t['l'].'_METADATA_OPTIONS')); +echo $r->navigation($tabs); + +echo '
'. "\n"; + +echo '
'."\n"; +$formArray = array ('title', 'alias', 'parent_id', 'ordering', 'access', 'accessuserid', 'uploaduserid', 'deleteuserid'); +echo $r->group($this->form, $formArray); +$formArray = array('description'); +echo $r->group($this->form, $formArray, 1); +echo '
'. "\n"; + +echo '
'."\n"; +foreach($this->form->getFieldset('publish') as $field) { + echo '
'; + if (!$field->hidden) { + echo '
'.$field->label.'
'; + } + echo '
'; + echo $field->input; + echo '
'; +} +echo '
'; + +echo '
'. "\n"; +echo $this->loadTemplate('metadata'); +echo '
'. "\n"; + + +echo '
';//end tab content +echo '
';//end span10 +// Second Column +echo '
';//end span2 +echo $r->formInputs(); +echo $r->endForm(); +?> \ No newline at end of file diff --git a/packages/phocadownload/administrator/components/com_phocadownload/views/phocadownloadcat/tmpl/edit_metadata.php b/packages/phocadownload/administrator/components/com_phocadownload/views/phocadownloadcat/tmpl/edit_metadata.php new file mode 100644 index 00000000..6f9391f4 --- /dev/null +++ b/packages/phocadownload/administrator/components/com_phocadownload/views/phocadownloadcat/tmpl/edit_metadata.php @@ -0,0 +1,31 @@ +form->getFieldsets('metadata'); +foreach ($fieldSets as $name => $fieldSet) : + ?> +
+
+ +
+
form->getLabel('metadesc'); ?>
+
form->getInput('metadesc'); ?>
+
+
form->getLabel('metakey'); ?>
+
form->getInput('metakey'); ?>
+ + form->getFieldset($name) as $field) : ?> +
+
label; ?> +
input; ?>
+ +
+
+ \ No newline at end of file diff --git a/packages/phocadownload/administrator/components/com_phocadownload/views/phocadownloadcat/tmpl/index.html b/packages/phocadownload/administrator/components/com_phocadownload/views/phocadownloadcat/tmpl/index.html new file mode 100644 index 00000000..fa6d84e8 --- /dev/null +++ b/packages/phocadownload/administrator/components/com_phocadownload/views/phocadownloadcat/tmpl/index.html @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/phocadownload/administrator/components/com_phocadownload/views/phocadownloadcat/view.html.php b/packages/phocadownload/administrator/components/com_phocadownload/views/phocadownloadcat/view.html.php new file mode 100644 index 00000000..17e309d7 --- /dev/null +++ b/packages/phocadownload/administrator/components/com_phocadownload/views/phocadownloadcat/view.html.php @@ -0,0 +1,89 @@ +t = PhocaDownloadUtils::setVars('cat'); + + $this->state = $this->get('State'); + $this->form = $this->get('Form'); + $this->item = $this->get('Item'); + $user = JFactory::getUser(); + $model = $this->getModel(); + + JHTML::_('behavior.calendar'); + JHTML::stylesheet( $this->t['s'] ); + + //Data from model + //$this->item =& $this->get('Data'); + + $lists = array(); + $isNew = ((int)$this->item->id == 0); + + // Edit or Create? + if (!$isNew) { + $model->checkout( $user->get('id') ); + } else { + // Initialise new record + $this->item->approved = 1; + $this->item->published = 1; + $this->item->order = 0; + $this->item->access = 0; + } + + $this->addToolbar(); + parent::display($tpl); + } + + + protected function addToolbar() { + + require_once JPATH_COMPONENT.'/helpers/'.$this->t['tasks'].'.php'; + JRequest::setVar('hidemainmenu', true); + $bar = JToolBar::getInstance('toolbar'); + $user = JFactory::getUser(); + $isNew = ($this->item->id == 0); + $checkedOut = !($this->item->checked_out == 0 || $this->item->checked_out == $user->get('id')); + $class = ucfirst($this->t['tasks']).'Helper'; + $canDo = $class::getActions($this->t, $this->state->get('filter.category_id')); + + $text = $isNew ? JText::_( $this->t['l'].'_NEW' ) : JText::_($this->t['l'].'_EDIT'); + JToolBarHelper::title( JText::_( $this->t['l'].'_CATEGORY' ).': [ ' . $text.' ]' , 'folder'); + + // If not checked out, can save the item. + if (!$checkedOut && $canDo->get('core.edit')){ + JToolBarHelper::apply($this->t['task'].'.apply', 'JTOOLBAR_APPLY'); + JToolBarHelper::save($this->t['task'].'.save', 'JTOOLBAR_SAVE'); + JToolBarHelper::addNew($this->t['task'].'.save2new', 'JTOOLBAR_SAVE_AND_NEW'); + + } + // If an existing item, can save to a copy. + if (!$isNew && $canDo->get('core.create')) { + //JToolBarHelper::custom($this->t['c'].'cat.save2copy', 'copy.png', 'copy_f2.png', 'JTOOLBAR_SAVE_AS_COPY', false); + } + if (empty($this->item->id)) { + JToolBarHelper::cancel($this->t['task'].'.cancel', 'JTOOLBAR_CANCEL'); + } + else { + JToolBarHelper::cancel($this->t['task'].'.cancel', 'JTOOLBAR_CLOSE'); + } + JToolBarHelper::divider(); + JToolBarHelper::help( 'screen.'.$this->t['c'], true ); + } +} +?> diff --git a/packages/phocadownload/administrator/components/com_phocadownload/views/phocadownloadcats/index.html b/packages/phocadownload/administrator/components/com_phocadownload/views/phocadownloadcats/index.html new file mode 100644 index 00000000..fa6d84e8 --- /dev/null +++ b/packages/phocadownload/administrator/components/com_phocadownload/views/phocadownloadcats/index.html @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/phocadownload/administrator/components/com_phocadownload/views/phocadownloadcats/tmpl/default.php b/packages/phocadownload/administrator/components/com_phocadownload/views/phocadownloadcats/tmpl/default.php new file mode 100644 index 00000000..a295d588 --- /dev/null +++ b/packages/phocadownload/administrator/components/com_phocadownload/views/phocadownloadcats/tmpl/default.php @@ -0,0 +1,154 @@ +t['n'] . 'RenderAdminViews'; +$r = new $class(); +$user = JFactory::getUser(); +$userId = $user->get('id'); +$listOrder = $this->escape($this->state->get('list.ordering')); +$listDirn = $this->escape($this->state->get('list.direction')); +$canOrder = $user->authorise('core.edit.state', $this->t['o']); +$saveOrder = $listOrder == 'a.ordering'; +if ($saveOrder) { + $saveOrderingUrl = 'index.php?option='.$this->t['o'].'&task='.$this->t['tasks'].'.saveOrderAjax&tmpl=component'; + JHtml::_('sortablelist.sortable', 'categoryList', 'adminForm', strtolower($listDirn), $saveOrderingUrl, false, true); +} +$sortFields = $this->getSortFields(); + +echo $r->jsJorderTable($listOrder); + +//echo '
'; + +echo $r->startForm($this->t['o'], $this->t['tasks'], 'adminForm'); +echo $r->startFilter(); +//echo $r->selectFilterPublished('JOPTION_SELECT_PUBLISHED', $this->state->get('filter.state')); +//echo $r->selectFilterLanguage('JOPTION_SELECT_LANGUAGE', $this->state->get('filter.language')); +//echo $r->selectFilterLevels('COM_PHOCADOWNLOAD_SELECT_MAX_LEVELS', $this->state->get('filter.level')); +echo $r->endFilter(); + +echo $r->startMainContainer(); + +if ($this->t['search']) { + echo '
' . JText::_('COM_PHOCADOWNLOAD_SEARCH_FILTER_IS_ACTIVE') .'
'; +} + +echo $r->startFilterBar(); +echo $r->inputFilterSearch($this->t['l'].'_FILTER_SEARCH_LABEL', $this->t['l'].'_FILTER_SEARCH_DESC', + $this->escape($this->state->get('filter.search'))); +echo $r->inputFilterSearchClear('JSEARCH_FILTER_SUBMIT', 'JSEARCH_FILTER_CLEAR'); +echo $r->inputFilterSearchLimit('JFIELD_PLG_SEARCH_SEARCHLIMIT_DESC', $this->pagination->getLimitBox()); +echo $r->selectFilterDirection('JFIELD_ORDERING_DESC', 'JGLOBAL_ORDER_ASCENDING', 'JGLOBAL_ORDER_DESCENDING', $listDirn); +echo $r->selectFilterSortBy('JGLOBAL_SORT_BY', $sortFields, $listOrder); + +echo $r->startFilterBar(2); +echo $r->selectFilterPublished('JOPTION_SELECT_PUBLISHED', $this->state->get('filter.state')); +echo $r->selectFilterLanguage('JOPTION_SELECT_LANGUAGE', $this->state->get('filter.language')); +echo $r->selectFilterLevels('COM_PHOCADOWNLOAD_SELECT_MAX_LEVELS', $this->state->get('filter.level')); +echo $r->endFilterBar(); + +echo $r->endFilterBar(); + +echo $r->startTable('categoryList'); + +echo $r->startTblHeader(); + +echo $r->thOrdering('JGRID_HEADING_ORDERING', $listDirn, $listOrder); +echo $r->thCheck('JGLOBAL_CHECK_ALL'); +echo ''.JHTML::_('grid.sort', $this->t['l'].'_TITLE', 'a.title', $listDirn, $listOrder ).''."\n"; +echo ''.JHTML::_('grid.sort', $this->t['l'].'_PUBLISHED', 'a.published', $listDirn, $listOrder ).''."\n"; +echo ''.JHTML::_('grid.sort', $this->t['l'].'_PARENT_CATEGORY', 'parentcat_title', $listDirn, $listOrder ).''."\n"; +echo ''.JTEXT::_($this->t['l'].'_ACCESS').''."\n"; +echo ''.JHTML::_('grid.sort', 'JGRID_HEADING_LANGUAGE', 'a.language', $listDirn, $listOrder ).''."\n"; +echo ''.JHTML::_('grid.sort', $this->t['l'].'_ID', 'a.id', $listDirn, $listOrder ).''."\n"; + +echo $r->endTblHeader(); + +echo ''. "\n"; + +$originalOrders = array(); +$parentsStr = ""; +$j = 0; + +if (is_array($this->items)) { + foreach ($this->items as $i => $item) { + if ($i >= (int)$this->pagination->limitstart && $j < (int)$this->pagination->limit) { + $j++; + +$urlEdit = 'index.php?option='.$this->t['o'].'&task='.$this->t['task'].'.edit&id='; +$orderkey = array_search($item->id, $this->ordering[$item->parent_id]); +$ordering = ($listOrder == 'a.ordering'); +$canCreate = $user->authorise('core.create', $this->t['o']); +$canEdit = $user->authorise('core.edit', $this->t['o']); +$canCheckin = $user->authorise('core.manage', 'com_checkin') || $item->checked_out==$user->get('id') || $item->checked_out==0; +$canChange = $user->authorise('core.edit.state', $this->t['o']) && $canCheckin; +$linkEdit = JRoute::_( $urlEdit.(int) $item->id ); +$linkParent = JRoute::_( $urlEdit.(int) $item->parent_id ); +$canEditParent = $user->authorise('core.edit', $this->t['o']); + +$parentsStr = ''; +if (isset($item->parentstree)) { + $parentsStr = ' '.$item->parentstree; +} +if (!isset($item->level)) { + $item->level = 0; +} + +$iD = $i % 2; +echo "\n\n"; +echo ''. "\n"; + +echo $r->tdOrder($canChange, $saveOrder, $orderkey); +echo $r->td(JHtml::_('grid.id', $i, $item->id), "small hidden-phone"); +$checkO = ''; +if ($item->checked_out) { + $checkO .= JHtml::_('jgrid.checkedout', $i, $item->editor, $item->checked_out_time, $this->t['tasks'].'.', $canCheckin); +} +if ($canCreate || $canEdit) { + $checkO .= ''. $this->escape($item->title).''; +} else { + $checkO .= $this->escape($item->title); +} +$checkO .= ' ('.JText::_($this->t['l'].'_FIELD_ALIAS_LABEL').':'. $this->escape($item->alias).')'; +echo $r->td($checkO, "small hidden-phone"); +echo $r->td(JHtml::_('jgrid.published', $item->published, $i, $this->t['tasks'].'.', $canChange), "small hidden-phone"); + +if ($canEditParent) { + $parentO = ''. $this->escape($item->parentcat_title).''; +} else { + $parentO = $this->escape($item->parentcat_title); +} +echo $r->td($parentO, "small hidden-phone"); +echo $r->td($this->escape($item->access_level), "small hidden-phone"); + + + +echo $r->tdLanguage($item->language, $item->language_title, $this->escape($item->language_title)); +echo $r->td($item->id, "small hidden-phone"); + +echo ''. "\n"; + + } + } +} +echo ''. "\n"; + +echo $r->tblFoot($this->pagination->getListFooter(), 8); +echo $r->endTable(); + +echo $this->loadTemplate('batch'); + +//echo $r->formInputs($listOrder, $originalOrders); +echo $r->formInputs($listOrder, $listDirn, $originalOrders); +echo $r->endMainContainer(); +echo $r->endForm(); +?> \ No newline at end of file diff --git a/packages/phocadownload/administrator/components/com_phocadownload/views/phocadownloadcats/tmpl/default_batch.php b/packages/phocadownload/administrator/components/com_phocadownload/views/phocadownloadcats/tmpl/default_batch.php new file mode 100644 index 00000000..b195b372 --- /dev/null +++ b/packages/phocadownload/administrator/components/com_phocadownload/views/phocadownloadcats/tmpl/default_batch.php @@ -0,0 +1,48 @@ +state->get('filter.state'); +?> + \ No newline at end of file diff --git a/packages/phocadownload/administrator/components/com_phocadownload/views/phocadownloadcats/tmpl/index.html b/packages/phocadownload/administrator/components/com_phocadownload/views/phocadownloadcats/tmpl/index.html new file mode 100644 index 00000000..fa6d84e8 --- /dev/null +++ b/packages/phocadownload/administrator/components/com_phocadownload/views/phocadownloadcats/tmpl/index.html @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/phocadownload/administrator/components/com_phocadownload/views/phocadownloadcats/view.html.php b/packages/phocadownload/administrator/components/com_phocadownload/views/phocadownloadcats/view.html.php new file mode 100644 index 00000000..248f2e10 --- /dev/null +++ b/packages/phocadownload/administrator/components/com_phocadownload/views/phocadownloadcats/view.html.php @@ -0,0 +1,211 @@ +t = PhocaDownloadUtils::setVars('cat'); + + $model = $this->getModel(); + $this->items = $model->getItems(); + $this->pagination = $model->getPagination(); + $this->state = $model->getState(); + /*$this->items = $this->get('Items'); + $this->pagination = $this->get('Pagination'); + $this->state = $this->get('State');*/ + + // Preprocess the list of items to find ordering divisions. + foreach ($this->items as &$item) { + $this->ordering[$item->parent_id][] = $item->id; + } + + // if search, don't do a tree, only display the searched items + $this->t['search'] = $this->state->get('filter.search'); + // We need to load all items because of creating tree + // After creating tree we get info from pagination + // and will set displaying of categories for current pagination + //E.g. pagination is limitstart 5, limit 5 - so only categories from 5 to 10 will be displayed + + // the same for max levels + $this->t['level'] = $this->state->get('filter.level'); + + if (!empty($this->items) && !$this->t['search']) { + $text = ''; // text is tree name e.g. Category >> Subcategory + $tree = array(); + + // Filter max levels + if (isset($this->t['level']) && $this->t['level'] > 0) { + $maxLevel = (int)$this->t['level'] + 1; + } else { + $maxLevel = false; + } + + $this->items = $this->processTree($this->items, $tree, 0, $text, -1, 0, '', $maxLevel); + + // Re count the pagination + $countTotal = count($this->items); + $model->setTotal($countTotal); + $this->pagination = $model->getPagination(); + } + + //$this->tmpl['notapproved'] = $this->get( 'NotApprovedCategory' ); + JHTML::stylesheet( $this->t['s'] ); + + $this->addToolbar(); + parent::display($tpl); + } + + protected function addToolbar() { + require_once JPATH_COMPONENT.'/helpers/'.$this->t['tasks'].'.php'; + $state = $this->get('State'); + $class = ucfirst($this->t['tasks']).'Helper'; + $canDo = $class::getActions($this->t, $state->get('filter.category_id')); + JToolBarHelper::title( JText::_( $this->t['l'].'_CATEGORIES' ),'folder' ); + $user = JFactory::getUser(); + $bar = JToolBar::getInstance('toolbar'); + + if ($canDo->get('core.create')) { + JToolBarHelper::addNew($this->t['task'].'.add','JTOOLBAR_NEW'); + } + if ($canDo->get('core.edit')) { + JToolBarHelper::editList($this->t['task'].'.edit','JTOOLBAR_EDIT'); + } + if ($canDo->get('core.edit.state')) { + + JToolBarHelper::divider(); + JToolBarHelper::custom($this->t['tasks'].'.publish', 'publish.png', 'publish_f2.png','JTOOLBAR_PUBLISH', true); + JToolBarHelper::custom($this->t['tasks'].'.unpublish', 'unpublish.png', 'unpublish_f2.png', 'JTOOLBAR_UNPUBLISH', true); + } + + if ($canDo->get('core.delete')) { + JToolBarHelper::deleteList( JText::_( $this->t['l'].'_WARNING_DELETE_ITEMS' ), $this->t['tasks'].'.delete', $this->t['l'].'_DELETE'); + } + + // Add a batch button + if ($user->authorise('core.edit')) + { + JHtml::_('bootstrap.modal', 'collapseModal'); + $title = JText::_('JTOOLBAR_BATCH'); + $dhtml = ""; + $bar->appendButton('Custom', $dhtml, 'batch'); + } + + JToolBarHelper::divider(); + JToolBarHelper::help( 'screen.'.$this->t['c'], true ); + + } + + /*TODO - change it to php 5 rules */ + protected function processTree( $data, $tree, $id = 0, $text='', $currentId, $level, $parentsTreeString = '', $maxLevel = false) { + + + $countItemsInCat = 0;// Ordering + $level = $level + 1; + $parentsTreeString = $id . ' '. $parentsTreeString; + + // Limit the level of tree + if (!$maxLevel || ($maxLevel && $level < $maxLevel)) { + foreach ($data as $key) { + $show_text = $text . $key->title; + + static $iCT = 0;// All displayed items + + if ($key->parent_id == $id && $currentId != $id && $currentId != $key->id ) { + $tree[$iCT] = new JObject(); + + // Ordering MUST be solved here + if ($countItemsInCat > 0) { + $tree[$iCT]->orderup = 1; + } else { + $tree[$iCT]->orderup = 0; + } + + if ($countItemsInCat < ($key->countid - 1)) { + $tree[$iCT]->orderdown = 1; + } else { + $tree[$iCT]->orderdown = 0; + } + + $tree[$iCT] = new JObject(); + + $tree[$iCT]->level = $level; + $tree[$iCT]->parentstree = $parentsTreeString; + + $tree[$iCT]->id = $key->id; + $tree[$iCT]->title = $show_text; + $tree[$iCT]->title_self = $key->title; + $tree[$iCT]->parent_id = $key->parent_id; + // $tree[$iCT]->owner_id = $key->owner_id; + $tree[$iCT]->name = $key->name; + $tree[$iCT]->alias = $key->alias; + $tree[$iCT]->image = $key->image; + $tree[$iCT]->section = $key->section; + $tree[$iCT]->image_position = $key->image_position; + $tree[$iCT]->description = $key->description; + $tree[$iCT]->published = $key->published; + $tree[$iCT]->editor = $key->editor; + $tree[$iCT]->ordering = $key->ordering; + $tree[$iCT]->access = $key->access; + $tree[$iCT]->access_level = $key->access_level; + $tree[$iCT]->count = $key->count; + $tree[$iCT]->params = $key->params; + $tree[$iCT]->checked_out = $key->checked_out; + $tree[$iCT]->checked_out_time = $key->checked_out_time; + $tree[$iCT]->groupname = 0; + // $tree[$iCT]->username = $key->username; + // $tree[$iCT]->usernameno = $key->usernameno; + $tree[$iCT]->parentcat_title = $key->parentcat_title; + $tree[$iCT]->parentcat_id = $key->parentcat_id; + $tree[$iCT]->hits = $key->hits; + // $tree[$iCT]->ratingavg = $key->ratingavg; + $tree[$iCT]->accessuserid = $key->accessuserid; + $tree[$iCT]->uploaduserid = $key->uploaduserid; + $tree[$iCT]->language = $key->language; + $tree[$iCT]->language_title = $key->language_title; + // $tree[$iCT]->deleteuserid = $key->deleteuserid; + // $tree[$iCT]->userfolder = $key->userfolder; + // $tree[$iCT]->approved = $key->approved; + // $tree[$iCT]->link = ''; + // $tree[$iCT]->filename = '';// Will be added in View (after items will be reduced) + // $tree[$iCT]->linkthumbnailpath = ''; + + $iCT++; + + $tree = $this->processTree($data, $tree, $key->id, $show_text . " - ", $currentId, $level, $parentsTreeString, $maxLevel); + + $countItemsInCat++; + } + } + } + + return($tree); + } + + protected function getSortFields() { + return array( + 'a.ordering' => JText::_('JGRID_HEADING_ORDERING'), + 'a.title' => JText::_($this->t['l'] . '_TITLE'), + 'a.published' => JText::_($this->t['l'] . '_PUBLISHED'), + 'parent_title' => JText::_($this->t['l'] . '_PARENT_CATEGORY'), + 'language' => JText::_('JGRID_HEADING_LANGUAGE'), + 'a.id' => JText::_('JGRID_HEADING_ID') + ); + } +} +?> \ No newline at end of file diff --git a/packages/phocadownload/administrator/components/com_phocadownload/views/phocadownloadcp/index.html b/packages/phocadownload/administrator/components/com_phocadownload/views/phocadownloadcp/index.html new file mode 100644 index 00000000..fa6d84e8 --- /dev/null +++ b/packages/phocadownload/administrator/components/com_phocadownload/views/phocadownloadcp/index.html @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/phocadownload/administrator/components/com_phocadownload/views/phocadownloadcp/tmpl/default.php b/packages/phocadownload/administrator/components/com_phocadownload/views/phocadownloadcp/tmpl/default.php new file mode 100644 index 00000000..88e118dd --- /dev/null +++ b/packages/phocadownload/administrator/components/com_phocadownload/views/phocadownloadcp/tmpl/default.php @@ -0,0 +1,49 @@ + +
+ +
+ +
+
+
+
t['n'] . 'RenderAdmin'; +$link = 'index.php?option='.$this->t['o'].'&view='; +foreach ($this->views as $k => $v) { + $linkV = $link . $this->t['c'] . $k; + echo $class::quickIconButton( $linkV, 'icon-48-'.$k.'.png', JText::_($v), $this->t['i']); +} + ?>
 
+

 

+
+ + +
+
+
+ +
+
+
t['i'] . 'logo-phoca.png', 'Phoca.cz' );?>
'. JText::_($this->t['l'] . '_VERSION').'' +.'

'. $this->t['version'] .'

'; +echo '

'. JText::_($this->t['l'] . '_COPYRIGHT').'

' +.'

© 2007 - '. date("Y"). ' Jan Pavelka

' +.'

www.phoca.cz

'; +echo '

'. JText::_($this->t['l'] . '_LICENCE').'

' +.'

GPLv2

'; +echo '

'. JText::_($this->t['l'] . '_TRANSLATION').': '. JText::_($this->t['l'] . '_TRANSLATION_LANGUAGE_TAG').'

' +.'

© 2007 - '. date("Y"). ' '. JText::_($this->t['l'] . '_TRANSLATER'). '

' +.'

'.JText::_($this->t['l'] . '_TRANSLATION_SUPPORT_URL').'

'; + echo '

 

' +.''; + + ?>
+
+
+ + + +
+
\ No newline at end of file diff --git a/packages/phocadownload/administrator/components/com_phocadownload/views/phocadownloadcp/tmpl/index.html b/packages/phocadownload/administrator/components/com_phocadownload/views/phocadownloadcp/tmpl/index.html new file mode 100644 index 00000000..fa6d84e8 --- /dev/null +++ b/packages/phocadownload/administrator/components/com_phocadownload/views/phocadownloadcp/tmpl/index.html @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/phocadownload/administrator/components/com_phocadownload/views/phocadownloadcp/view.html.php b/packages/phocadownload/administrator/components/com_phocadownload/views/phocadownloadcp/view.html.php new file mode 100644 index 00000000..8ae0d99b --- /dev/null +++ b/packages/phocadownload/administrator/components/com_phocadownload/views/phocadownloadcp/view.html.php @@ -0,0 +1,62 @@ +t = PhocaDownloadUtils::setVars(); + $this->views= array( + 'files' => $this->t['l'] . '_FILES', + 'cats' => $this->t['l'] . '_CATEGORIES', + 'lics' => $this->t['l'] . '_LICENSES', + 'stat' => $this->t['l'] . '_STATISTICS', + 'downloads' => $this->t['l'] . '_DOWNLOADS', + 'uploads' => $this->t['l'] . '_UPLOADS', + 'rafile' => $this->t['l'] . '_FILE_RATING', + 'tags' => $this->t['l'] . '_TAGS', + 'layouts' => $this->t['l'] . '_LAYOUT', + 'styles' => $this->t['l'] . '_STYLES', + 'logs' => $this->t['l'] . '_LOGGING', + 'info' => $this->t['l'] . '_INFO' + ); + + JHTML::stylesheet( $this->t['s'] ); + JHTML::_('behavior.tooltip'); + $class = $this->t['n'] . 'Utils'; + $this->t['version'] = $class::getExtensionVersion(); + $this->addToolbar(); + parent::display($tpl); + } + + protected function addToolbar() { + require_once JPATH_COMPONENT.'/helpers/'.$this->t['c'].'cp.php'; + $class = $this->t['n'] . 'CpHelper'; + $canDo = $class::getActions($this->t['c']); + JToolBarHelper::title( JText::_( $this->t['l'].'_PD_CONTROL_PANEL' ), 'home-2 cpanel' ); + + // This button is unnecessary but it is displayed because Joomla! design bug + $bar = JToolBar::getInstance( 'toolbar' ); + $dhtml = ' '.JText::_($this->t['l'].'_CONTROL_PANEL').''; + $bar->appendButton('Custom', $dhtml); + + if ($canDo->get('core.admin')) { + JToolBarHelper::preferences($this->t['o']); + JToolBarHelper::divider(); + } + JToolBarHelper::help( 'screen.'.$this->t['c'], true ); + } +} +?> \ No newline at end of file diff --git a/packages/phocadownload/administrator/components/com_phocadownload/views/phocadownloaddownloads/index.html b/packages/phocadownload/administrator/components/com_phocadownload/views/phocadownloaddownloads/index.html new file mode 100644 index 00000000..fa6d84e8 --- /dev/null +++ b/packages/phocadownload/administrator/components/com_phocadownload/views/phocadownloaddownloads/index.html @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/phocadownload/administrator/components/com_phocadownload/views/phocadownloaddownloads/tmpl/default.php b/packages/phocadownload/administrator/components/com_phocadownload/views/phocadownloaddownloads/tmpl/default.php new file mode 100644 index 00000000..d4363650 --- /dev/null +++ b/packages/phocadownload/administrator/components/com_phocadownload/views/phocadownloaddownloads/tmpl/default.php @@ -0,0 +1,142 @@ +t['n'] . 'RenderAdminViews'; +$r = new $class(); +$user = JFactory::getUser(); +$userId = $user->get('id'); +$listOrder = $this->escape($this->state->get('list.ordering')); +$listDirn = $this->escape($this->state->get('list.direction')); +$canOrder = $user->authorise('core.edit.state', $this->t['o']); +$saveOrder = $listOrder == 'a.ordering'; +if ($saveOrder) { + $saveOrderingUrl = 'index.php?option='.$this->t['o'].'&task='.$this->t['tasks'].'.saveOrderAjax&tmpl=component'; + JHtml::_('sortablelist.sortable', 'categoryList', 'adminForm', strtolower($listDirn), $saveOrderingUrl, false, true); +} +$sortFields = $this->getSortFields(); + +echo $r->jsJorderTable($listOrder); + + + +echo $r->startForm($this->t['o'], $this->t['tasks'], 'adminForm'); +echo $r->startFilter(); +//echo $r->selectFilterPublished('JOPTION_SELECT_PUBLISHED', $this->state->get('filter.state')); +//echo $r->selectFilterLanguage('JOPTION_SELECT_LANGUAGE', $this->state->get('filter.language')); +//echo $r->selectFilterCategory(PhocaDownloadCategory::options($this->t['o']), 'JOPTION_SELECT_CATEGORY', $this->state->get('filter.category_id')); +echo $r->endFilter(); + +echo $r->startMainContainer(); + +if (isset($this->tmpl['notapproved']->count) && (int)$this->tmpl['notapproved']->count > 0 ) { + echo '
×'.JText::_($this->t['l'].'_NOT_APPROVED_FILES_COUNT').': ' + .(int)$this->tmpl['notapproved']->count.'
'; +} + +echo $r->startFilterBar(); +echo $r->inputFilterSearch($this->t['l'].'_FILTER_SEARCH_LABEL', $this->t['l'].'_FILTER_SEARCH_DESC', + $this->escape($this->state->get('filter.search'))); +echo $r->inputFilterSearchClear('JSEARCH_FILTER_SUBMIT', 'JSEARCH_FILTER_CLEAR'); +echo $r->inputFilterSearchLimit('JFIELD_PLG_SEARCH_SEARCHLIMIT_DESC', $this->pagination->getLimitBox()); +echo $r->selectFilterDirection('JFIELD_ORDERING_DESC', 'JGLOBAL_ORDER_ASCENDING', 'JGLOBAL_ORDER_DESCENDING', $listDirn); +echo $r->selectFilterSortBy('JGLOBAL_SORT_BY', $sortFields, $listOrder); + +echo $r->startFilterBar(2); +echo $r->selectFilterPublished('JOPTION_SELECT_PUBLISHED', $this->state->get('filter.state')); +echo $r->endFilterBar(); + +echo $r->endFilterBar(); + +echo $r->startTable('categoryList'); + +echo $r->startTblHeader(); + +echo '';//$r->thOrdering('JGRID_HEADING_ORDERING', $listDirn, $listOrder); +echo $r->thCheck('JGLOBAL_CHECK_ALL'); +echo ''.JHTML::_('grid.sort', $this->t['l'].'_USER', 'username', $listDirn, $listOrder ).''."\n"; +//echo ''.JHTML::_('grid.sort', $this->t['l'].'_TITLE', 'd.title', $listDirn, $listOrder ).''."\n"; +echo ''.JHTML::_('grid.sort', $this->t['l'].'_FILE', 'filename', $listDirn, $listOrder ).''."\n"; + +//echo ''.JHTML::_('grid.sort', $this->t['l'].'_USERNAME', 'username', $listDirn, $listOrder ).''."\n"; +echo ''.JHTML::_('grid.sort', $this->t['l'].'_COUNT', 'a.count', $listDirn, $listOrder ).''."\n"; +//echo ''.JHTML::_('grid.sort', $this->t['l'].'_ID', 'a.id', $listDirn, $listOrder ).''."\n"; + +echo $r->endTblHeader(); + +echo ''. "\n"; + +$originalOrders = array(); +$parentsStr = ""; +$j = 0; + +if (is_array($this->items)) { + foreach ($this->items as $i => $item) { + //if ($i >= (int)$this->pagination->limitstart && $j < (int)$this->pagination->limit) { + $j++; +/* +$urlEdit = 'index.php?option='.$this->t['o'].'&task='.$this->t['task'].'.edit&id='; +$urlTask = 'index.php?option='.$this->t['o'].'&task='.$this->t['task']; +$orderkey = array_search($item->id, $this->ordering[$item->catid]); +$ordering = ($listOrder == 'a.ordering'); +$canCreate = $user->authorise('core.create', $this->t['o']); +$canEdit = $user->authorise('core.edit', $this->t['o']); +$canCheckin = $user->authorise('core.manage', 'com_checkin') || $item->checked_out==$user->get('id') || $item->checked_out==0; +$canChange = $user->authorise('core.edit.state', $this->t['o']) && $canCheckin; +$linkEdit = JRoute::_( $urlEdit. $item->id ); + +$linkCat = JRoute::_( 'index.php?option='.$this->t['o'].'&task='.$this->t['c'].'cat.edit&id='.(int) $item->category_id ); +$canEditCat = $user->authorise('core.edit', $this->t['o']);*/ + + +$iD = $i % 2; +echo "\n\n"; +echo ''. "\n"; + +echo $r->tdOrder(0,0,0); +echo $r->td(JHtml::_('grid.id', $i, $item->id), "small hidden-phone"); + +$usrO = $item->usernameno; +if ($item->username) {$usrO = $usrO . ' ('.$item->username.')';} +if (!$usrO) { + $usrO = JText::_('COM_PHOCADOWNLOAD_GUEST'); +} +echo $r->td($usrO, "small hidden-phone"); + + + + +//echo $r->td($this->escape($item->filetitle)); +echo $r->td($this->escape($item->filetitle) . ' ('.$this->escape($item->filename) . ')'); + +echo $r->td($this->escape($item->count), 'ph-right'); + +//echo $r->td($item->id, "small hidden-phone"); + +echo ''. "\n"; + + //} + } +} +echo ''. "\n"; + +echo $r->tblFoot($this->pagination->getListFooter(), 15); +echo $r->endTable(); + + + +//echo $r->formInputs($listOrder, $originalOrders); +echo $r->formInputs($listOrder, $listDirn, $originalOrders); +echo $r->endMainContainer(); +echo $r->endForm(); +?> diff --git a/packages/phocadownload/administrator/components/com_phocadownload/views/phocadownloaddownloads/tmpl/index.html b/packages/phocadownload/administrator/components/com_phocadownload/views/phocadownloaddownloads/tmpl/index.html new file mode 100644 index 00000000..fa6d84e8 --- /dev/null +++ b/packages/phocadownload/administrator/components/com_phocadownload/views/phocadownloaddownloads/tmpl/index.html @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/phocadownload/administrator/components/com_phocadownload/views/phocadownloaddownloads/view.html.php b/packages/phocadownload/administrator/components/com_phocadownload/views/phocadownloaddownloads/view.html.php new file mode 100644 index 00000000..6428f7bf --- /dev/null +++ b/packages/phocadownload/administrator/components/com_phocadownload/views/phocadownloaddownloads/view.html.php @@ -0,0 +1,78 @@ +t = PhocaDownloadUtils::setVars('download'); + $this->items = $this->get('Items'); + $this->pagination = $this->get('Pagination'); + $this->state = $this->get('State'); + $this->maxandsum = $this->get('MaxAndSum'); + + JHTML::stylesheet( $this->t['s'] ); + + // Check for errors. + if (count($errors = $this->get('Errors'))) { + JError::raiseError(500, implode("\n", $errors)); + return false; + } + + $this->addToolbar(); + parent::display($tpl); + + } + + function addToolbar() { + + require_once JPATH_COMPONENT.'/helpers/'.$this->t['tasks'].'.php'; + //$state = $this->get('State'); + $class = ucfirst($this->t['tasks']).'Helper'; + $canDo = $class::getActions($this->t); + + JToolBarHelper::title( JText::_( $this->t['l'].'_DOWNLOADS' ), 'download' ); + + if ($canDo->get('core.edit')){ + + $bar = JToolBar::getInstance('toolbar'); + + $dhtml = ''; + $bar->appendButton('Custom', $dhtml); + JToolBarHelper::divider(); + //JToolBarHelper::custom('phocadownloaduserstat.reset', 'reset.png', '', 'COM_PHOCADOWNLOAD_RESET' , false); + } + + //JToolBarHelper::cancel($this->t['tasks'].'.cancel', 'JTOOLBAR_CLOSE'); + + JToolBarHelper::help( 'screen.'.$this->t['c'], true ); + } + + protected function getSortFields() { + return array( + + + 'usernameno' => JText::_($this->t['l'] . '_USER'), + 'username' => JText::_($this->t['l'] . '_USERNAME'), + 'a.count' => JText::_($this->t['l'] . '_COUNT'), + 'filename' => JText::_($this->t['l'] . '_FILENAME') + + ); + } + +} +?> \ No newline at end of file diff --git a/packages/phocadownload/administrator/components/com_phocadownload/views/phocadownloadfile/index.html b/packages/phocadownload/administrator/components/com_phocadownload/views/phocadownloadfile/index.html new file mode 100644 index 00000000..fa6d84e8 --- /dev/null +++ b/packages/phocadownload/administrator/components/com_phocadownload/views/phocadownloadfile/index.html @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/phocadownload/administrator/components/com_phocadownload/views/phocadownloadfile/tmpl/edit.php b/packages/phocadownload/administrator/components/com_phocadownload/views/phocadownloadfile/tmpl/edit.php new file mode 100644 index 00000000..73373970 --- /dev/null +++ b/packages/phocadownload/administrator/components/com_phocadownload/views/phocadownloadfile/tmpl/edit.php @@ -0,0 +1,192 @@ +item->extid) && $this->item->extid != '') { + $extlink = 1; +} +$class = $this->t['n'] . 'RenderAdminView'; +$r = new $class(); + +?> +startForm($this->t['o'], $this->t['task'], $this->item->id, 'adminForm', 'adminForm'); +// First Column +echo '
'; +$tabs = array ( +'general' => JText::_($this->t['l'].'_GENERAL_OPTIONS'), +'publishing' => JText::_($this->t['l'].'_PUBLISHING_OPTIONS'), +'metadata' => JText::_($this->t['l'].'_METADATA_OPTIONS'), +'mirror' => JText::_($this->t['l'].'_MIRROR_DETAILS'), +'video' => JText::_($this->t['l'].'_YOUTUBE_OPTIONS') +); +echo $r->navigation($tabs); + +echo '
'. "\n"; + +echo '
'."\n"; +$formArray = array ('title', 'alias', 'catid', 'ordering', + 'filename', 'filename_play', 'filename_preview', 'image_filename', 'image_filename_spec1', 'image_filename_spec2', 'image_download', 'version', 'author', 'author_url', 'author_email', 'license', 'license_url', 'confirm_license', 'directlink', 'link_external', 'access', 'unaccessible_file', 'userid', 'owner_id'); +echo $r->group($this->form, $formArray); +$formArray = array('description', 'features', 'changelog', 'notes' ); +echo $r->group($this->form, $formArray, 1); +echo '
'. "\n"; + +echo '
'."\n"; +foreach($this->form->getFieldset('publish') as $field) { + echo '
'; + if (!$field->hidden) { + echo '
'.$field->label.'
'; + } + echo '
'; + echo $field->input; + echo '
'; +} +echo '
'; + +echo '
'. "\n"; +echo $this->loadTemplate('metadata'); +echo '
'. "\n"; + +echo '
'. "\n"; +$formArray = array ('mirror1link', 'mirror1title', 'mirror1target', 'mirror2link', 'mirror2title', 'mirror2target'); +echo $r->group($this->form, $formArray); +echo '
'. "\n"; + +echo '
'. "\n"; +$formArray = array ('video_filename'); +echo $r->group($this->form, $formArray); +echo '
'. "\n"; + + +echo '
';//end tab content +echo '
';//end span10 +// Second Column +echo '
'; + +if (isset($this->item->id) && isset($this->item->catid) && isset($this->item->token) + && (int)$this->item->id > 0 && (int)$this->item->catid > 0 && $this->item->token != '') { + phocadownloadimport('phocadownload.path.route'); + $downloadLink = PhocaDownloadRoute::getDownloadRoute((int)$this->item->id, (int)$this->item->catid, $this->item->token, 0); + $app = JApplication::getInstance('site'); + $router = $app->getRouter(); + $uri = $router->build($downloadLink); + $frontendUrl = JURI::root(false). str_replace(JURI::root(true).'/administrator/', '',$uri->toString()); + echo '
'.JText::_('COM_PHOCADOWNLOAD_UNIQUE_DOWNLOAD_URL').'
'; + echo ''; + echo '
('.JText::_('COM_PHOCADOWNLOAD_URL_FORMAT_DEPENDS_ON_SEF').')
'; +} + + +echo '
';//end span2 +echo $r->formInputs(); +echo $r->endForm(); + +/* +?> + + +?>
+
+ +
+ item->id) ? JText::_('COM_PHOCADOWNLOAD_NEW_FILE') : JText::sprintf('COM_PHOCADOWNLOAD_EDIT_FILE', $this->item->id); ?> + + +
    + '.$this->form->getLabel($value) . $this->form->getInput($value).'' . "\n"; + } ?> +
+ + form->getLabel($value); + echo '
'; + echo $this->form->getInput($value); + } + ?> + +
+
+
+ +
+
tmpl['enablethumbcreationstatus']; ?>
+ item->id, array('useCookie'=>1)); ?> + + +
+
    + form->getFieldset('publish') as $field) { + echo '
  • '; + if (!$field->hidden) { + echo $field->label; + } + echo $field->input; + echo '
  • '; + } ?> +
+
+ + loadTemplate('metadata'); ?> + + +
+
    + '.$this->form->getLabel($value) . $this->form->getInput($value).'' . "\n"; + } ?> +
+ + + + +
+
    + '.$this->form->getLabel($value) . $this->form->getInput($value).'' . "\n"; + } ?> +
+ + +
+ + + +
+ + + +
+*/ ?> + diff --git a/packages/phocadownload/administrator/components/com_phocadownload/views/phocadownloadfile/tmpl/edit_metadata.php b/packages/phocadownload/administrator/components/com_phocadownload/views/phocadownloadfile/tmpl/edit_metadata.php new file mode 100644 index 00000000..6f9391f4 --- /dev/null +++ b/packages/phocadownload/administrator/components/com_phocadownload/views/phocadownloadfile/tmpl/edit_metadata.php @@ -0,0 +1,31 @@ +form->getFieldsets('metadata'); +foreach ($fieldSets as $name => $fieldSet) : + ?> +
+
+ +
+
form->getLabel('metadesc'); ?>
+
form->getInput('metadesc'); ?>
+
+
form->getLabel('metakey'); ?>
+
form->getInput('metakey'); ?>
+ + form->getFieldset($name) as $field) : ?> +
+
label; ?> +
input; ?>
+ +
+
+ \ No newline at end of file diff --git a/packages/phocadownload/administrator/components/com_phocadownload/views/phocadownloadfile/tmpl/edit_text.php b/packages/phocadownload/administrator/components/com_phocadownload/views/phocadownloadfile/tmpl/edit_text.php new file mode 100644 index 00000000..6febbcdb --- /dev/null +++ b/packages/phocadownload/administrator/components/com_phocadownload/views/phocadownloadfile/tmpl/edit_text.php @@ -0,0 +1,66 @@ +item->extid) && $this->item->extid != '') { + $extlink = 1; +} +$class = $this->t['n'] . 'RenderAdminView'; +$r = new $class(); + +?> +startForm($this->t['o'], $this->t['task'], $this->item->id, 'adminForm', 'adminForm'); +// First Column +echo '
'; +$tabs = array ( +'general' => JText::_($this->t['l'].'_GENERAL_OPTIONS'), +'publishing' => JText::_($this->t['l'].'_PUBLISHING_OPTIONS') +); +echo $r->navigation($tabs); + +echo '
'. "\n"; + +echo '
'."\n"; +$formArray = array ('title', 'alias', 'catid', 'ordering','access'); +echo $r->group($this->form, $formArray); +$formArray = array('description'); +echo $r->group($this->form, $formArray, 1); +echo '
'. "\n"; + +echo '
'."\n"; +foreach($this->form->getFieldset('publish') as $field) { + echo '
'; + if (!$field->hidden) { + echo '
'.$field->label.'
'; + } + echo '
'; + echo $field->input; + echo '
'; +} +echo '
'; + +echo '
';//end tab content +echo '
';//end span10 +// Second Column +echo '
';//end span2 + +echo '' + .''; +echo $r->formInputs(); +echo $r->endForm(); +?> \ No newline at end of file diff --git a/packages/phocadownload/administrator/components/com_phocadownload/views/phocadownloadfile/tmpl/index.html b/packages/phocadownload/administrator/components/com_phocadownload/views/phocadownloadfile/tmpl/index.html new file mode 100644 index 00000000..fa6d84e8 --- /dev/null +++ b/packages/phocadownload/administrator/components/com_phocadownload/views/phocadownloadfile/tmpl/index.html @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/phocadownload/administrator/components/com_phocadownload/views/phocadownloadfile/view.html.php b/packages/phocadownload/administrator/components/com_phocadownload/views/phocadownloadfile/view.html.php new file mode 100644 index 00000000..3045df34 --- /dev/null +++ b/packages/phocadownload/administrator/components/com_phocadownload/views/phocadownloadfile/view.html.php @@ -0,0 +1,71 @@ +t = PhocaDownloadUtils::setVars('file'); + $this->state = $this->get('State'); + $this->form = $this->get('Form'); + $this->item = $this->get('Item'); + + JHTML::stylesheet( $this->t['s'] ); + + if (isset($this->item->textonly) && (int)$this->item->textonly == 1 && JRequest::getVar('layout') != 'edit_text') { + $tpl = 'text'; + } + $this->addToolbar(); + parent::display($tpl); + } + + protected function addToolbar() { + + require_once JPATH_COMPONENT.'/helpers/'.$this->t['tasks'].'.php'; + JRequest::setVar('hidemainmenu', true); + $bar = JToolBar::getInstance('toolbar'); + $user = JFactory::getUser(); + $isNew = ($this->item->id == 0); + $checkedOut = !($this->item->checked_out == 0 || $this->item->checked_out == $user->get('id')); + $class = ucfirst($this->t['tasks']).'Helper'; + $canDo = $class::getActions($this->t, $this->state->get('filter.category_id')); + + $text = $isNew ? JText::_( $this->t['l'] . '_NEW' ) : JText::_($this->t['l'] . '_EDIT'); + JToolBarHelper::title( JText::_( $this->t['l'] . '_FILE' ).': [ ' . $text.' ]' , 'file'); + + // If not checked out, can save the item. + if (!$checkedOut && $canDo->get('core.edit')){ + JToolBarHelper::apply($this->t['task'] . '.apply', 'JTOOLBAR_APPLY'); + JToolBarHelper::save($this->t['task'] . '.save', 'JTOOLBAR_SAVE'); + JToolBarHelper::addNew($this->t['task'] . '.save2new', 'JTOOLBAR_SAVE_AND_NEW'); + + } + // If an existing item, can save to a copy. + if (!$isNew && $canDo->get('core.create')) { + //JToolBarHelper::custom($this->t.'.save2copy', 'copy.png', 'copy_f2.png', 'JTOOLBAR_SAVE_AS_COPY', false); + } + if (empty($this->item->id)) { + JToolBarHelper::cancel($this->t['task'] . '.cancel', 'JTOOLBAR_CANCEL'); + } + else { + JToolBarHelper::cancel($this->t['task'] . '.cancel', 'JTOOLBAR_CLOSE'); + } + + JToolBarHelper::divider(); + JToolBarHelper::help( 'screen.'.$this->t['c'], true ); + } +} +?> diff --git a/packages/phocadownload/administrator/components/com_phocadownload/views/phocadownloadfiles/index.html b/packages/phocadownload/administrator/components/com_phocadownload/views/phocadownloadfiles/index.html new file mode 100644 index 00000000..fa6d84e8 --- /dev/null +++ b/packages/phocadownload/administrator/components/com_phocadownload/views/phocadownloadfiles/index.html @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/phocadownload/administrator/components/com_phocadownload/views/phocadownloadfiles/tmpl/default.php b/packages/phocadownload/administrator/components/com_phocadownload/views/phocadownloadfiles/tmpl/default.php new file mode 100644 index 00000000..39afea89 --- /dev/null +++ b/packages/phocadownload/administrator/components/com_phocadownload/views/phocadownloadfiles/tmpl/default.php @@ -0,0 +1,173 @@ +t['n'] . 'RenderAdminViews'; +$r = new $class(); +$user = JFactory::getUser(); +$userId = $user->get('id'); +$listOrder = $this->escape($this->state->get('list.ordering')); +$listDirn = $this->escape($this->state->get('list.direction')); +$canOrder = $user->authorise('core.edit.state', $this->t['o']); +$saveOrder = $listOrder == 'a.ordering'; +if ($saveOrder) { + $saveOrderingUrl = 'index.php?option='.$this->t['o'].'&task='.$this->t['tasks'].'.saveOrderAjax&tmpl=component'; + JHtml::_('sortablelist.sortable', 'categoryList', 'adminForm', strtolower($listDirn), $saveOrderingUrl, false, true); +} +$sortFields = $this->getSortFields(); + +echo $r->jsJorderTable($listOrder); + + +echo $r->startForm($this->t['o'], $this->t['tasks'], 'adminForm'); +echo $r->startFilter(); +echo $r->endFilter(); + +echo $r->startMainContainer(); + +if (isset($this->tmpl['notapproved']->count) && (int)$this->tmpl['notapproved']->count > 0 ) { + echo '
×'.JText::_($this->t['l'].'_NOT_APPROVED_FILES_COUNT').': ' + .(int)$this->tmpl['notapproved']->count.'
'; +} + +echo $r->startFilterBar(); +echo $r->inputFilterSearch($this->t['l'].'_FILTER_SEARCH_LABEL', $this->t['l'].'_FILTER_SEARCH_DESC', + $this->escape($this->state->get('filter.search'))); +echo $r->inputFilterSearchClear('JSEARCH_FILTER_SUBMIT', 'JSEARCH_FILTER_CLEAR'); +echo $r->inputFilterSearchLimit('JFIELD_PLG_SEARCH_SEARCHLIMIT_DESC', $this->pagination->getLimitBox()); +echo $r->selectFilterDirection('JFIELD_ORDERING_DESC', 'JGLOBAL_ORDER_ASCENDING', 'JGLOBAL_ORDER_DESCENDING', $listDirn); +echo $r->selectFilterSortBy('JGLOBAL_SORT_BY', $sortFields, $listOrder); + +echo $r->startFilterBar(2); +echo $r->selectFilterPublished('JOPTION_SELECT_PUBLISHED', $this->state->get('filter.state')); +echo $r->selectFilterLanguage('JOPTION_SELECT_LANGUAGE', $this->state->get('filter.language')); +echo $r->selectFilterCategory(PhocaDownloadCategory::options($this->t['o']), 'JOPTION_SELECT_CATEGORY', $this->state->get('filter.category_id')); +echo $r->endFilterBar(); + +echo $r->endFilterBar(); + +echo $r->startTable('categoryList'); + +echo $r->startTblHeader(); + +echo $r->thOrdering('JGRID_HEADING_ORDERING', $listDirn, $listOrder); +echo $r->thCheck('JGLOBAL_CHECK_ALL'); +echo ''.JHTML::_('grid.sort', $this->t['l'].'_TITLE', 'a.title', $listDirn, $listOrder ).''."\n"; +echo ''.JHTML::_('grid.sort', $this->t['l'].'_FILENAME', 'a.filename', $listDirn, $listOrder ).''."\n"; +echo ''.JHTML::_('grid.sort', $this->t['l'].'_PUBLISHED', 'a.published', $listDirn, $listOrder ).''."\n"; +echo ''.JHTML::_('grid.sort', $this->t['l'].'_APPROVED', 'a.approved', $listDirn, $listOrder ).''."\n"; +echo ''.JHTML::_('grid.sort', $this->t['l'].'_CATEGORY', 'category_id', $listDirn, $listOrder ).''."\n"; +echo ''.JHTML::_('grid.sort', $this->t['l'].'_OWNER', 'category_owner_id', $listDirn, $listOrder ).''."\n"; +echo ''.JHTML::_('grid.sort', $this->t['l'].'_UPLOADED_BY', 'uploadusername', $listDirn, $listOrder ).''."\n"; +echo ''.JHTML::_('grid.sort', $this->t['l'].'_DOWNLOADS', 'a.hits', $listDirn, $listOrder ).''."\n"; +echo ''.JTEXT::_($this->t['l'].'_ACTIVE').''."\n"; +echo ''.JTEXT::_($this->t['l'].'_ACCESS').''."\n"; +echo ''.JHTML::_('grid.sort', 'JGRID_HEADING_LANGUAGE', 'a.language', $listDirn, $listOrder ).''."\n"; +echo ''.JHTML::_('grid.sort', $this->t['l'].'_ID', 'a.id', $listDirn, $listOrder ).''."\n"; + +echo $r->endTblHeader(); + +echo ''. "\n"; + +$originalOrders = array(); +$parentsStr = ""; +$j = 0; + +if (is_array($this->items)) { + foreach ($this->items as $i => $item) { + //if ($i >= (int)$this->pagination->limitstart && $j < (int)$this->pagination->limit) { + $j++; + +$urlEdit = 'index.php?option='.$this->t['o'].'&task='.$this->t['task'].'.edit&id='; +$urlTask = 'index.php?option='.$this->t['o'].'&task='.$this->t['task']; +$orderkey = array_search($item->id, $this->ordering[$item->catid]); +$ordering = ($listOrder == 'a.ordering'); +$canCreate = $user->authorise('core.create', $this->t['o']); +$canEdit = $user->authorise('core.edit', $this->t['o']); +$canCheckin = $user->authorise('core.manage', 'com_checkin') || $item->checked_out==$user->get('id') || $item->checked_out==0; +$canChange = $user->authorise('core.edit.state', $this->t['o']) && $canCheckin; +$linkEdit = JRoute::_( $urlEdit. $item->id ); + +$linkCat = JRoute::_( 'index.php?option='.$this->t['o'].'&task='.$this->t['c'].'cat.edit&id='.(int) $item->category_id ); +$canEditCat = $user->authorise('core.edit', $this->t['o']); + + +$iD = $i % 2; +echo "\n\n"; +//echo ''. "\n"; + +echo ''. "\n"; + +echo $r->tdOrder($canChange, $saveOrder, $orderkey); +echo $r->td(JHtml::_('grid.id', $i, $item->id), "small hidden-phone"); + +$checkO = ''; +if ($item->checked_out) { + $checkO .= JHtml::_('jgrid.checkedout', $i, $item->editor, $item->checked_out_time, $this->t['tasks'].'.', $canCheckin); +} +if ($canCreate || $canEdit) { + $checkO .= ''. $this->escape($item->title).''; +} else { + $checkO .= $this->escape($item->title); +} +$checkO .= '
('.JText::_($this->t['l'].'_FIELD_ALIAS_LABEL').':'. $this->escape($item->alias).')'; +echo $r->td($checkO, "small hidden-phone"); + +echo $r->td($item->filename); + +echo $r->td(JHtml::_('jgrid.published', $item->published, $i, $this->t['tasks'].'.', $canChange), "small hidden-phone"); +echo $r->td(PhocaDownloadJGrid::approved( $item->approved, $i, $this->t['tasks'].'.', $canChange), "small hidden-phone"); + +if ($canEditCat) { + $catO = ''. $this->escape($item->category_title).''; +} else { + $catO = $this->escape($item->category_title); +} +echo $r->td($catO, "small hidden-phone"); +//echo $r->td($this->escape($item->access_level), "small hidden-phone"); + +$usrO = $item->usernameno; +if ($item->username) {$usrO = $usrO . ' ('.$item->username.')';} +echo $r->td($usrO, "small hidden-phone"); + +$usrU = $item->uploadname; +if ($item->uploadusername) {$usrU = $usrU . ' ('.$item->uploadusername.')';} +echo $r->td($usrU, "small hidden-phone"); + +echo $r->td($item->hits, "small hidden-phone"); + +echo $r->tdPublishDownUp ($item->publish_up, $item->publish_down, $this->t['l']); + +echo $r->td($this->escape($item->access_level)); + +echo $r->tdLanguage($item->language, $item->language_title, $this->escape($item->language_title)); +echo $r->td($item->id, "small hidden-phone"); + +echo ''. "\n"; + + //} + } +} +echo ''. "\n"; + +echo $r->tblFoot($this->pagination->getListFooter(), 15); +echo $r->endTable(); + +echo $this->loadTemplate('batch'); + +//echo $r->formInputs($listOrder, $originalOrders); +echo $r->formInputs($listOrder, $listDirn, $originalOrders); +echo $r->endMainContainer(); +echo $r->endForm(); +?> + ?> \ No newline at end of file diff --git a/packages/phocadownload/administrator/components/com_phocadownload/views/phocadownloadfiles/tmpl/default_batch.php b/packages/phocadownload/administrator/components/com_phocadownload/views/phocadownloadfiles/tmpl/default_batch.php new file mode 100644 index 00000000..b195b372 --- /dev/null +++ b/packages/phocadownload/administrator/components/com_phocadownload/views/phocadownloadfiles/tmpl/default_batch.php @@ -0,0 +1,48 @@ +state->get('filter.state'); +?> + \ No newline at end of file diff --git a/packages/phocadownload/administrator/components/com_phocadownload/views/phocadownloadfiles/tmpl/index.html b/packages/phocadownload/administrator/components/com_phocadownload/views/phocadownloadfiles/tmpl/index.html new file mode 100644 index 00000000..fa6d84e8 --- /dev/null +++ b/packages/phocadownload/administrator/components/com_phocadownload/views/phocadownloadfiles/tmpl/index.html @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/phocadownload/administrator/components/com_phocadownload/views/phocadownloadfiles/view.html.php b/packages/phocadownload/administrator/components/com_phocadownload/views/phocadownloadfiles/view.html.php new file mode 100644 index 00000000..6a607a9d --- /dev/null +++ b/packages/phocadownload/administrator/components/com_phocadownload/views/phocadownloadfiles/view.html.php @@ -0,0 +1,108 @@ +t = PhocaDownloadUtils::setVars('file'); + $this->items = $this->get('Items'); + $this->pagination = $this->get('Pagination'); + $this->state = $this->get('State'); + + // Preprocess the list of items to find ordering divisions. + foreach ($this->items as &$item) { + $this->ordering[$item->catid][] = $item->id; + } + + JHTML::stylesheet( $this->t['s'] ); + $this->tmpl['notapproved'] = $this->get( 'NotApprovedFile' ); + + $this->addToolbar(); + parent::display($tpl); + } + + protected function addToolbar() { + + require_once JPATH_COMPONENT.'/helpers/'.$this->t['tasks'].'.php'; + $state = $this->get('State'); + $class = ucfirst($this->t['tasks']).'Helper'; + $canDo = $class::getActions($this->t, $state->get('filter.file_id')); + $user = JFactory::getUser(); + $bar = JToolBar::getInstance('toolbar'); + + JToolBarHelper::title( JText::_($this->t['l'].'_FILES'), 'file.png' ); + if ($canDo->get('core.create')) { + JToolBarHelper::addNew( $this->t['task'].'.add','JTOOLBAR_NEW'); + JToolBarHelper::addNew( $this->t['task'].'.addtext', $this->t['l'].'_ADD_TEXT'); + JToolBarHelper::custom( $this->t['c'].'m.edit', 'multiple.png', '', $this->t['l'].'_MULTIPLE_ADD' , false); + } + if ($canDo->get('core.edit')) { + JToolBarHelper::editList($this->t['task'].'.edit','JTOOLBAR_EDIT'); + } + + if ($canDo->get('core.create')) { + //JToolBarHelper::divider(); + //JToolBarHelper::custom( $this->t['task'].'.copyquick','copy.png', '', $this->t['l'].'_QUICK_COPY', true); + //JToolBarHelper::custom( $this->t['task'].'.copy','copy.png', '', $this->t['l'].'_COPY', true); + } + + if ($canDo->get('core.edit.state')) { + + JToolBarHelper::divider(); + JToolBarHelper::custom($this->t['tasks'].'.publish', 'publish.png', 'publish_f2.png','JTOOLBAR_PUBLISH', true); + JToolBarHelper::custom($this->t['tasks'].'.unpublish', 'unpublish.png', 'unpublish_f2.png', 'JTOOLBAR_UNPUBLISH', true); + JToolBarHelper::custom( $this->t['tasks'].'.approve', 'approve.png', '', $this->t['l'].'_APPROVE' , true); + JToolBarHelper::custom( $this->t['tasks'].'.disapprove', 'disapprove.png', '', $this->t['l'].'_NOT_APPROVE' , true); + } + + if ($canDo->get('core.delete')) { + JToolBarHelper::deleteList( JText::_( $this->t['l'].'_WARNING_DELETE_ITEMS' ), $this->t['tasks'].'.delete', $this->t['l'].'_DELETE'); + } + + // Add a batch button + if ($user->authorise('core.edit')) + { + JHtml::_('bootstrap.modal', 'collapseModal'); + $title = JText::_('JTOOLBAR_BATCH'); + $dhtml = ""; + $bar->appendButton('Custom', $dhtml, 'batch'); + } + + JToolBarHelper::divider(); + JToolBarHelper::help( 'screen.'.$this->t['c'], true ); + } + + protected function getSortFields() { + return array( + 'a.ordering' => JText::_('JGRID_HEADING_ORDERING'), + 'a.title' => JText::_($this->t['l'] . '_TITLE'), + 'a.filename' => JText::_($this->t['l'] . '_FILENAME'), + 'a.hits' => JText::_($this->t['l'] . '_DOWNLOADS'), + 'a.owner_id' => JText::_($this->t['l'] . '_OWNER'), + 'uploadusername'=> JText::_($this->t['l'] . '_UPLOADED_BY'), + 'a.published' => JText::_($this->t['l'] . '_PUBLISHED'), + 'a.approved' => JText::_($this->t['l'] . '_APPROVED'), + 'category_id' => JText::_($this->t['l'] . '_CATEGORY'), + 'language' => JText::_('JGRID_HEADING_LANGUAGE'), + 'a.id' => JText::_('JGRID_HEADING_ID') + ); + } +} +?> \ No newline at end of file diff --git a/packages/phocadownload/administrator/components/com_phocadownload/views/phocadownloadinfo/index.html b/packages/phocadownload/administrator/components/com_phocadownload/views/phocadownloadinfo/index.html new file mode 100644 index 00000000..fa6d84e8 --- /dev/null +++ b/packages/phocadownload/administrator/components/com_phocadownload/views/phocadownloadinfo/index.html @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/phocadownload/administrator/components/com_phocadownload/views/phocadownloadinfo/tmpl/default.php b/packages/phocadownload/administrator/components/com_phocadownload/views/phocadownloadinfo/tmpl/default.php new file mode 100644 index 00000000..a56c6398 --- /dev/null +++ b/packages/phocadownload/administrator/components/com_phocadownload/views/phocadownloadinfo/tmpl/default.php @@ -0,0 +1,53 @@ +'; +echo '
'.JHtmlSidebar::render().'
'; +echo '
'; +echo '
' + . JHTML::_('image', $this->t['i'] . 'logo-phoca.png', 'Phoca.cz' ) + .'
' + . JHTML::_('image', $this->t['i'] . 'logo.png', 'Phoca.cz') + .'

'.JText::_($this->t['l'].'_PHOCA_DOWNLOAD').' - '. JText::_($this->t['l'].'_INFORMATION').'

' + .'
'; + +echo '

'. JText::_($this->t['l'].'_HELP').'

'; + +echo '

' +.'Phoca Download Main Site
' +.'Phoca Download User Manual
' +.'Phoca Download Forum
' +.'

'; + +echo '

'. JText::_($this->t['l'] . '_VERSION').'

' +.'

'. $this->t['version'] .'

'; + +echo '

'. JText::_($this->t['l'] . '_COPYRIGHT').'

' +.'

© 2007 - '. date("Y"). ' Jan Pavelka

' +.'

www.phoca.cz

'; + +echo '

'. JText::_($this->t['l'] . '_LICENCE').'

' +.'

GPLv2

'; + +echo '

'. JText::_($this->t['l'] . '_TRANSLATION').': '. JText::_($this->t['l'] . '_TRANSLATION_LANGUAGE_TAG').'

' + .'

© 2007 - '. date("Y"). ' '. JText::_($this->t['l'] . '_TRANSLATER'). '

' + .'

'.JText::_($this->t['l'] . '_TRANSLATION_SUPPORT_URL').'

'; + +echo '' +.'' +.''; + +echo '

 

'; + +echo '

 

' +.''; + +echo '
 
'; + + +echo '
'; +echo '
'; + +echo ''; +echo ''; + diff --git a/packages/phocadownload/administrator/components/com_phocadownload/views/phocadownloadinfo/tmpl/index.html b/packages/phocadownload/administrator/components/com_phocadownload/views/phocadownloadinfo/tmpl/index.html new file mode 100644 index 00000000..fa6d84e8 --- /dev/null +++ b/packages/phocadownload/administrator/components/com_phocadownload/views/phocadownloadinfo/tmpl/index.html @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/phocadownload/administrator/components/com_phocadownload/views/phocadownloadinfo/view.html.php b/packages/phocadownload/administrator/components/com_phocadownload/views/phocadownloadinfo/view.html.php new file mode 100644 index 00000000..c2bb17d7 --- /dev/null +++ b/packages/phocadownload/administrator/components/com_phocadownload/views/phocadownloadinfo/view.html.php @@ -0,0 +1,46 @@ +t = PhocaDownloadUtils::setVars(); + JHTML::stylesheet( $this->t['s'] ); + JHTML::_('behavior.tooltip'); + $class = $this->t['n'] . 'Utils'; + $this->t['version'] = $class::getExtensionVersion(); + $this->addToolbar(); + parent::display($tpl); + } + + protected function addToolbar() { + require_once JPATH_COMPONENT.'/helpers/'.$this->t['c'].'cp.php'; + $class = $this->t['n'] . 'CpHelper'; + $canDo = $class::getActions($this->t['c']); + + JToolBarHelper::title( JText::_($this->t['l'].'_PD_INFO' ), 'info.png' ); + + // This button is unnecessary but it is displayed because Joomla! design bug + $bar = JToolBar::getInstance( 'toolbar' ); + $dhtml = ' '.JText::_($this->t['l'].'_CONTROL_PANEL').''; + $bar->appendButton('Custom', $dhtml); + + if ($canDo->get('core.admin')) { + JToolbarHelper::preferences('com_'.$this->t['c']); + } + JToolBarHelper::divider(); + JToolBarHelper::help( 'screen.'.$this->t['c'], true ); + } +} +?> diff --git a/packages/phocadownload/administrator/components/com_phocadownload/views/phocadownloadlayout/index.html b/packages/phocadownload/administrator/components/com_phocadownload/views/phocadownloadlayout/index.html new file mode 100644 index 00000000..fa6d84e8 --- /dev/null +++ b/packages/phocadownload/administrator/components/com_phocadownload/views/phocadownloadlayout/index.html @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/phocadownload/administrator/components/com_phocadownload/views/phocadownloadlayout/tmpl/edit.php b/packages/phocadownload/administrator/components/com_phocadownload/views/phocadownloadlayout/tmpl/edit.php new file mode 100644 index 00000000..bf790513 --- /dev/null +++ b/packages/phocadownload/administrator/components/com_phocadownload/views/phocadownloadlayout/tmpl/edit.php @@ -0,0 +1,102 @@ +item->extid) && $this->item->extid != '') { + $extlink = 1; +} +$class = $this->t['n'] . 'RenderAdminView'; +$r = new $class(); + +?> +startForm($this->t['o'], $this->t['task'], $this->item->id, 'adminForm', 'adminForm'); +// First Column +echo '
'; +$tabs = array ( +'general' => JText::_($this->t['l'].'_GENERAL_OPTIONS') +); +echo $r->navigation($tabs); + +echo '
'. "\n"; + +echo '
'."\n"; + +$formArray = array('categories', 'category', 'file' ); +echo $r->group($this->form, $formArray, 1); +echo '
'. "\n"; + + +echo '
';//end tab content +echo '
';//end span10 +// Second Column +echo '
'; + +echo '
' . JText::_('COM_PHOCADOWNLOAD_LAYOUT_WARNING').'
'; + +echo '

' . JText::_('COM_PHOCADOWNLOAD_CATEGORIES_VIEW').'

'; +$lP = PhocaDownloadSettings::getLayoutParams('categories'); +echo '

' . JText::_('COM_PHOCADOWNLOAD_PARAMETERS').'

'; +if (isset($lP['search'])) { + foreach ($lP['search'] as $k => $v) { + echo $v . ' '; + } +} +echo '

' . JText::_('COM_PHOCADOWNLOAD_STYLES').'

'; +if (isset($lP['style'])) { + foreach ($lP['style'] as $k => $v) { + echo $v . ' '; + } +} +echo '
'; + +echo '

' . JText::_('COM_PHOCADOWNLOAD_CATEGORY_VIEW').'

'; +$lP = PhocaDownloadSettings::getLayoutParams('category'); +echo '

' . JText::_('COM_PHOCADOWNLOAD_PARAMETERS').'

'; +if (isset($lP['search'])) { + foreach ($lP['search'] as $k => $v) { + echo $v . ' '; + } +} +echo '

' . JText::_('COM_PHOCADOWNLOAD_STYLES').'

'; +if (isset($lP['style'])) { + foreach ($lP['style'] as $k => $v) { + echo $v . ' '; + } +} +echo '
'; + +echo '

' . JText::_('COM_PHOCADOWNLOAD_FILE_VIEW').'

'; +$lP = PhocaDownloadSettings::getLayoutParams('file'); +echo '

' . JText::_('COM_PHOCADOWNLOAD_PARAMETERS').'

'; +if (isset($lP['search'])) { + foreach ($lP['search'] as $k => $v) { + echo $v . ' '; + } +} +echo '

' . JText::_('COM_PHOCADOWNLOAD_STYLES').'

'; +if (isset($lP['style'])) { + foreach ($lP['style'] as $k => $v) { + echo $v . ' '; + } +} + +echo '
';//end span2 +echo $r->formInputs(); +echo $r->endForm(); +?> \ No newline at end of file diff --git a/packages/phocadownload/administrator/components/com_phocadownload/views/phocadownloadlayout/tmpl/index.html b/packages/phocadownload/administrator/components/com_phocadownload/views/phocadownloadlayout/tmpl/index.html new file mode 100644 index 00000000..fa6d84e8 --- /dev/null +++ b/packages/phocadownload/administrator/components/com_phocadownload/views/phocadownloadlayout/tmpl/index.html @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/phocadownload/administrator/components/com_phocadownload/views/phocadownloadlayout/view.html.php b/packages/phocadownload/administrator/components/com_phocadownload/views/phocadownloadlayout/view.html.php new file mode 100644 index 00000000..aaee5d12 --- /dev/null +++ b/packages/phocadownload/administrator/components/com_phocadownload/views/phocadownloadlayout/view.html.php @@ -0,0 +1,55 @@ +t = PhocaDownloadUtils::setVars('layout'); + $this->state = $this->get('State'); + $this->form = $this->get('Form'); + $this->item = $this->get('Item'); + + JHTML::stylesheet( $this->t['s'] ); + + $this->addToolbar(); + parent::display($tpl); + } + + protected function addToolbar() { + + require_once JPATH_COMPONENT.'/helpers/'.$this->t['tasks'].'.php'; + JRequest::setVar('hidemainmenu', true); + $bar = JToolBar::getInstance('toolbar'); + $user = JFactory::getUser(); + //$isNew = ($this->item->id == 0); + //$checkedOut = !($this->item->checked_out == 0 || $this->item->checked_out == $user->get('id')); + $class = ucfirst($this->t['tasks']).'Helper'; + $canDo = $class::getActions($this->t); + + JToolBarHelper::title( JText::_( $this->t['l'].'_LAYOUT' ), 'file-2' ); + JToolBarHelper::custom($this->t['task'].'.back', 'home-2', '', $this->t['l'].'_CONTROL_PANEL', false); + //JToolBarHelper::cancel('phocadownloadlayout.cancel', 'JTOOLBAR_CANCEL'); + + if ($canDo->get('core.edit')) { + JToolBarHelper::apply($this->t['task'].'.apply', 'JTOOLBAR_APPLY'); + //JToolBarHelper::save('phocapdfplugin.save', 'JTOOLBAR_SAVE'); + } + JToolBarHelper::divider(); + JToolBarHelper::help( 'screen.'.$this->t['c'], true ); + } +} +?> \ No newline at end of file diff --git a/packages/phocadownload/administrator/components/com_phocadownload/views/phocadownloadlayouts/index.html b/packages/phocadownload/administrator/components/com_phocadownload/views/phocadownloadlayouts/index.html new file mode 100644 index 00000000..fa6d84e8 --- /dev/null +++ b/packages/phocadownload/administrator/components/com_phocadownload/views/phocadownloadlayouts/index.html @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/phocadownload/administrator/components/com_phocadownload/views/phocadownloadlayouts/tmpl/default.php b/packages/phocadownload/administrator/components/com_phocadownload/views/phocadownloadlayouts/tmpl/default.php new file mode 100644 index 00000000..6cbee284 --- /dev/null +++ b/packages/phocadownload/administrator/components/com_phocadownload/views/phocadownloadlayouts/tmpl/default.php @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/phocadownload/administrator/components/com_phocadownload/views/phocadownloadlayouts/tmpl/index.html b/packages/phocadownload/administrator/components/com_phocadownload/views/phocadownloadlayouts/tmpl/index.html new file mode 100644 index 00000000..fa6d84e8 --- /dev/null +++ b/packages/phocadownload/administrator/components/com_phocadownload/views/phocadownloadlayouts/tmpl/index.html @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/phocadownload/administrator/components/com_phocadownload/views/phocadownloadlayouts/view.html.php b/packages/phocadownload/administrator/components/com_phocadownload/views/phocadownloadlayouts/view.html.php new file mode 100644 index 00000000..298c89e5 --- /dev/null +++ b/packages/phocadownload/administrator/components/com_phocadownload/views/phocadownloadlayouts/view.html.php @@ -0,0 +1,26 @@ +redirect(JRoute::_('index.php?option=com_phocadownload&view=phocadownloadlayout&task=phocadownloadlayout.edit'.$idString, false)); + return; + } +} +?> \ No newline at end of file diff --git a/packages/phocadownload/administrator/components/com_phocadownload/views/phocadownloadlic/index.html b/packages/phocadownload/administrator/components/com_phocadownload/views/phocadownloadlic/index.html new file mode 100644 index 00000000..fa6d84e8 --- /dev/null +++ b/packages/phocadownload/administrator/components/com_phocadownload/views/phocadownloadlic/index.html @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/phocadownload/administrator/components/com_phocadownload/views/phocadownloadlic/tmpl/edit.php b/packages/phocadownload/administrator/components/com_phocadownload/views/phocadownloadlic/tmpl/edit.php new file mode 100644 index 00000000..ee7c2362 --- /dev/null +++ b/packages/phocadownload/administrator/components/com_phocadownload/views/phocadownloadlic/tmpl/edit.php @@ -0,0 +1,56 @@ +t['n'] . 'RenderAdminView'; +$r = new $class(); +?> +startForm($this->t['o'], $this->t['task'], $this->item->id, 'adminForm', 'adminForm'); +// First Column +echo '
'; +$tabs = array ( +'general' => JText::_($this->t['l'].'_GENERAL_OPTIONS'), +'publishing' => JText::_($this->t['l'].'_PUBLISHING_OPTIONS')); +echo $r->navigation($tabs); + +echo '
'. "\n"; + +echo '
'."\n"; +$formArray = array ('title', 'alias', 'ordering'); +echo $r->group($this->form, $formArray); +$formArray = array('description'); +echo $r->group($this->form, $formArray, 1); +echo '
'. "\n"; + +echo '
'."\n"; +foreach($this->form->getFieldset('publish') as $field) { + echo '
'; + if (!$field->hidden) { + echo '
'.$field->label.'
'; + } + echo '
'; + echo $field->input; + echo '
'; +} +echo '
'; + +echo '
';//end tab content +echo '
';//end span10 +// Second Column +echo '
';//end span2 +echo $r->formInputs(); +echo $r->endForm(); +?> diff --git a/packages/phocadownload/administrator/components/com_phocadownload/views/phocadownloadlic/tmpl/index.html b/packages/phocadownload/administrator/components/com_phocadownload/views/phocadownloadlic/tmpl/index.html new file mode 100644 index 00000000..fa6d84e8 --- /dev/null +++ b/packages/phocadownload/administrator/components/com_phocadownload/views/phocadownloadlic/tmpl/index.html @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/phocadownload/administrator/components/com_phocadownload/views/phocadownloadlic/view.html.php b/packages/phocadownload/administrator/components/com_phocadownload/views/phocadownloadlic/view.html.php new file mode 100644 index 00000000..5fed2880 --- /dev/null +++ b/packages/phocadownload/administrator/components/com_phocadownload/views/phocadownloadlic/view.html.php @@ -0,0 +1,62 @@ +t = PhocaDownloadUtils::setVars('lic'); + $this->state = $this->get('State'); + $this->form = $this->get('Form'); + $this->item = $this->get('Item'); + + JHTML::stylesheet( $this->t['s'] ); + $this->addToolbar(); + parent::display($tpl); + } + + protected function addToolbar() { + + require_once JPATH_COMPONENT.'/helpers/'.$this->t['tasks'].'.php'; + JRequest::setVar('hidemainmenu', true); + $user = JFactory::getUser(); + $isNew = ($this->item->id == 0); + $checkedOut = !($this->item->checked_out == 0 || $this->item->checked_out == $user->get('id')); + $class = ucfirst($this->t['tasks']).'Helper'; + $canDo = $class::getActions($this->t, $this->state->get('filter.lic_id')); + + $text = $isNew ? JText::_( $this->t['l'] . '_NEW' ) : JText::_($this->t['l'] . '_EDIT'); + JToolBarHelper::title( JText::_( $this->t['l'] . '_LICENSE' ).': [ ' . $text.' ]' , 'bookmark'); + + // If not checked out, can save the item. + if (!$checkedOut && $canDo->get('core.edit')){ + JToolBarHelper::apply($this->t['task'] . '.apply', 'JTOOLBAR_APPLY'); + JToolBarHelper::save($this->t['task'] . '.save', 'JTOOLBAR_SAVE'); + JToolBarHelper::addNew($this->t['task'] . '.save2new', 'JTOOLBAR_SAVE_AND_NEW'); + } + + if (empty($this->item->id)) { + JToolBarHelper::cancel($this->t['task'] . '.cancel', 'JTOOLBAR_CANCEL'); + } + else { + JToolBarHelper::cancel($this->t['task'] . '.cancel', 'JTOOLBAR_CLOSE'); + } + + JToolBarHelper::divider(); + JToolBarHelper::help( 'screen.'.$this->t['c'], true ); + } +} +?> diff --git a/packages/phocadownload/administrator/components/com_phocadownload/views/phocadownloadlics/index.html b/packages/phocadownload/administrator/components/com_phocadownload/views/phocadownloadlics/index.html new file mode 100644 index 00000000..fa6d84e8 --- /dev/null +++ b/packages/phocadownload/administrator/components/com_phocadownload/views/phocadownloadlics/index.html @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/phocadownload/administrator/components/com_phocadownload/views/phocadownloadlics/tmpl/default.php b/packages/phocadownload/administrator/components/com_phocadownload/views/phocadownloadlics/tmpl/default.php new file mode 100644 index 00000000..776f047b --- /dev/null +++ b/packages/phocadownload/administrator/components/com_phocadownload/views/phocadownloadlics/tmpl/default.php @@ -0,0 +1,123 @@ +t['n'] . 'RenderAdminViews'; +$r = new $class(); +$user = JFactory::getUser(); +$userId = $user->get('id'); +$listOrder = $this->escape($this->state->get('list.ordering')); +$listDirn = $this->escape($this->state->get('list.direction')); +$canOrder = $user->authorise('core.edit.state', $this->t['o']); +$saveOrder = $listOrder == 'a.ordering'; +if ($saveOrder) { + $saveOrderingUrl = 'index.php?option='.$this->t['o'].'&task='.$this->t['tasks'].'.saveOrderAjax&tmpl=component'; + JHtml::_('sortablelist.sortable', 'categoryList', 'adminForm', strtolower($listDirn), $saveOrderingUrl, false, true); +} +$sortFields = $this->getSortFields(); + +echo $r->jsJorderTable($listOrder); + + +echo $r->startForm($this->t['o'], $this->t['tasks'], 'adminForm'); +echo $r->startFilter(); +echo $r->endFilter(); + +echo $r->startMainContainer(); +echo $r->startFilterBar(); +echo $r->inputFilterSearch($this->t['l'].'_FILTER_SEARCH_LABEL', $this->t['l'].'_FILTER_SEARCH_DESC', + $this->escape($this->state->get('filter.search'))); +echo $r->inputFilterSearchClear('JSEARCH_FILTER_SUBMIT', 'JSEARCH_FILTER_CLEAR'); +echo $r->inputFilterSearchLimit('JFIELD_PLG_SEARCH_SEARCHLIMIT_DESC', $this->pagination->getLimitBox()); +echo $r->selectFilterDirection('JFIELD_ORDERING_DESC', 'JGLOBAL_ORDER_ASCENDING', 'JGLOBAL_ORDER_DESCENDING', $listDirn); +echo $r->selectFilterSortBy('JGLOBAL_SORT_BY', $sortFields, $listOrder); + +echo $r->startFilterBar(2); +echo $r->selectFilterPublished('JOPTION_SELECT_PUBLISHED', $this->state->get('filter.state')); +echo $r->endFilterBar(); + + +echo $r->endFilterBar(); + +echo $r->startTable('categoryList'); + +echo $r->startTblHeader(); + +echo $r->thOrdering('JGRID_HEADING_ORDERING', $listDirn, $listOrder); +echo $r->thCheck('JGLOBAL_CHECK_ALL'); +echo ''.JHTML::_('grid.sort', $this->t['l'].'_TITLE', 'a.title', $listDirn, $listOrder ).''."\n"; +echo ''.JHTML::_('grid.sort', $this->t['l'].'_PUBLISHED', 'a.published', $listDirn, $listOrder ).''."\n"; +echo ''.JHTML::_('grid.sort', $this->t['l'].'_ID', 'a.id', $listDirn, $listOrder ).''."\n"; + +echo $r->endTblHeader(); + +echo ''. "\n"; + +$originalOrders = array(); +$parentsStr = ""; +$j = 0; + +if (is_array($this->items)) { + foreach ($this->items as $i => $item) { + //if ($i >= (int)$this->pagination->limitstart && $j < (int)$this->pagination->limit) { + $j++; + +$urlEdit = 'index.php?option='.$this->t['o'].'&task='.$this->t['task'].'.edit&id='; +$urlTask = 'index.php?option='.$this->t['o'].'&task='.$this->t['task']; +$orderkey = array_search($item->id, $this->ordering[0]); +$ordering = ($listOrder == 'a.ordering'); +$canCreate = $user->authorise('core.create', $this->t['o']); +$canEdit = $user->authorise('core.edit', $this->t['o']); +$canCheckin = $user->authorise('core.manage', 'com_checkin') || $item->checked_out==$user->get('id') || $item->checked_out==0; +$canChange = $user->authorise('core.edit.state', $this->t['o']) && $canCheckin; +$linkEdit = JRoute::_( $urlEdit. $item->id ); + + +$iD = $i % 2; +echo "\n\n"; +echo ''. "\n"; + +echo $r->tdOrder($canChange, $saveOrder, $orderkey); +echo $r->td(JHtml::_('grid.id', $i, $item->id), "small hidden-phone"); + +$checkO = ''; +if ($item->checked_out) { + $checkO .= JHtml::_('jgrid.checkedout', $i, $item->editor, $item->checked_out_time, $this->t['tasks'].'.', $canCheckin); +} +if ($canCreate || $canEdit) { + $checkO .= ''. $this->escape($item->title).''; +} else { + $checkO .= $this->escape($item->title); +} +$checkO .= ' ('.JText::_($this->t['l'].'_FIELD_ALIAS_LABEL').':'. $this->escape($item->alias).')'; +echo $r->td($checkO, "small hidden-phone"); + +echo $r->td(JHtml::_('jgrid.published', $item->published, $i, $this->t['tasks'].'.', $canChange), "small hidden-phone"); + +echo $r->td($item->id, "small hidden-phone"); + +echo ''. "\n"; + + //} + } +} +echo ''. "\n"; + +echo $r->tblFoot($this->pagination->getListFooter(), 5); +echo $r->endTable(); + +//echo $r->formInputs($listOrder, $originalOrders); +echo $r->formInputs($listOrder, $listDirn, $originalOrders); +echo $r->endMainContainer(); +echo $r->endForm(); +?> \ No newline at end of file diff --git a/packages/phocadownload/administrator/components/com_phocadownload/views/phocadownloadlics/tmpl/index.html b/packages/phocadownload/administrator/components/com_phocadownload/views/phocadownloadlics/tmpl/index.html new file mode 100644 index 00000000..fa6d84e8 --- /dev/null +++ b/packages/phocadownload/administrator/components/com_phocadownload/views/phocadownloadlics/tmpl/index.html @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/phocadownload/administrator/components/com_phocadownload/views/phocadownloadlics/view.html.php b/packages/phocadownload/administrator/components/com_phocadownload/views/phocadownloadlics/view.html.php new file mode 100644 index 00000000..d3c805a9 --- /dev/null +++ b/packages/phocadownload/administrator/components/com_phocadownload/views/phocadownloadlics/view.html.php @@ -0,0 +1,81 @@ +t = PhocaDownloadUtils::setVars('lic'); + $this->items = $this->get('Items'); + $this->pagination = $this->get('Pagination'); + $this->state = $this->get('State'); + + // Preprocess the list of items to find ordering divisions. + foreach ($this->items as &$item) { + $this->ordering[0][] = $item->id; + } + + JHTML::stylesheet( $this->t['s'] ); + + if (count($errors = $this->get('Errors'))) { + JError::raiseError(500, implode("\n", $errors)); + return false; + } + + $this->addToolbar(); + parent::display($tpl); + } + + function addToolbar() { + + require_once JPATH_COMPONENT.'/helpers/'.$this->t['tasks'].'.php'; + $state = $this->get('State'); + $class = ucfirst($this->t['tasks']).'Helper'; + $canDo = $class::getActions($this->t, $state->get('filter.lic_id')); + + JToolBarHelper::title( JText::_( $this->t['l'].'_LICENSES' ), 'bookmark' ); + + if ($canDo->get('core.create')) { + JToolBarHelper::addNew($this->t['task'].'.add','JTOOLBAR_NEW'); + } + + if ($canDo->get('core.edit')) { + JToolBarHelper::editList($this->t['task'].'.edit','JTOOLBAR_EDIT'); + } + if ($canDo->get('core.edit.state')) { + + JToolBarHelper::divider(); + JToolBarHelper::custom($this->t['tasks'].'.publish', 'publish.png', 'publish_f2.png','JTOOLBAR_PUBLISH', true); + JToolBarHelper::custom($this->t['tasks'].'.unpublish', 'unpublish.png', 'unpublish_f2.png', 'JTOOLBAR_UNPUBLISH', true); + } + + if ($canDo->get('core.delete')) { + JToolBarHelper::deleteList( $this->t['l'].'_WARNING_DELETE_ITEMS', $this->t['tasks'].'.delete', $this->t['l'].'_DELETE'); + } + JToolBarHelper::divider(); + JToolBarHelper::help( 'screen.'.$this->t['c'], true ); + } + + protected function getSortFields() { + return array( + 'a.ordering' => JText::_('JGRID_HEADING_ORDERING'), + 'a.title' => JText::_($this->t['l'] . '_TITLE'), + 'a.published' => JText::_($this->t['l'] . '_PUBLISHED'), + 'a.id' => JText::_('JGRID_HEADING_ID') + ); + } +} +?> \ No newline at end of file diff --git a/packages/phocadownload/administrator/components/com_phocadownload/views/phocadownloadlinkcat/index.html b/packages/phocadownload/administrator/components/com_phocadownload/views/phocadownloadlinkcat/index.html new file mode 100644 index 00000000..fa6d84e8 --- /dev/null +++ b/packages/phocadownload/administrator/components/com_phocadownload/views/phocadownloadlinkcat/index.html @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/phocadownload/administrator/components/com_phocadownload/views/phocadownloadlinkcat/tmpl/default.php b/packages/phocadownload/administrator/components/com_phocadownload/views/phocadownloadlinkcat/tmpl/default.php new file mode 100644 index 00000000..7c0e3578 --- /dev/null +++ b/packages/phocadownload/administrator/components/com_phocadownload/views/phocadownloadlinkcat/tmpl/default.php @@ -0,0 +1,93 @@ + + + + \ No newline at end of file diff --git a/packages/phocadownload/administrator/components/com_phocadownload/views/phocadownloadlinkcat/tmpl/index.html b/packages/phocadownload/administrator/components/com_phocadownload/views/phocadownloadlinkcat/tmpl/index.html new file mode 100644 index 00000000..fa6d84e8 --- /dev/null +++ b/packages/phocadownload/administrator/components/com_phocadownload/views/phocadownloadlinkcat/tmpl/index.html @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/phocadownload/administrator/components/com_phocadownload/views/phocadownloadlinkcat/view.html.php b/packages/phocadownload/administrator/components/com_phocadownload/views/phocadownloadlinkcat/view.html.php new file mode 100644 index 00000000..35f8a1c7 --- /dev/null +++ b/packages/phocadownload/administrator/components/com_phocadownload/views/phocadownloadlinkcat/view.html.php @@ -0,0 +1,66 @@ +isAdmin()) { + $tUri = JURI::base(); + + } + + $document = JFactory::getDocument(); + $uri = JFactory::getURI(); + JHTML::stylesheet( 'media/com_phocadownload/css/administrator/phocadownload.css' ); + + $eName = JRequest::getVar('e_name'); + $this->t['ename'] = preg_replace( '#[^A-Z0-9\-\_\[\]]#i', '', $eName ); + $this->t['backlink'] = $tUri.'index.php?option=com_phocadownload&view=phocadownloadlinks&tmpl=component&e_name='.$this->t['ename']; + + $model = $this->getModel(); + + // build list of categories + //$javascript = 'class="inputbox" size="1" onchange="submitform( );"'; + $javascript = 'class="inputbox" size="1"'; + $filter_catid = ''; + + $query = 'SELECT a.title AS text, a.id AS value, a.parent_id as parentid' + . ' FROM #__phocadownload_categories AS a' + . ' WHERE a.published = 1' + //. ' AND a.approved = 1' + . ' ORDER BY a.ordering'; + $db->setQuery( $query ); + $phocadownloads = $db->loadObjectList(); + + $tree = array(); + $text = ''; + $tree = PhocaDownloadCategory::CategoryTreeOption($phocadownloads, $tree, 0, $text, -1); + array_unshift($tree, JHTML::_('select.option', '0', '- '.JText::_('COM_PHOCADOWNLOAD_SELECT_CATEGORY').' -', 'value', 'text')); + $lists['catid'] = JHTML::_( 'select.genericlist', $tree, 'catid', $javascript , 'value', 'text', $filter_catid ); + //----------------------------------------------------------------------- + + $this->assignRef('lists', $lists); + + parent::display($tpl); + } +} +?> \ No newline at end of file diff --git a/packages/phocadownload/administrator/components/com_phocadownload/views/phocadownloadlinkcats/index.html b/packages/phocadownload/administrator/components/com_phocadownload/views/phocadownloadlinkcats/index.html new file mode 100644 index 00000000..fa6d84e8 --- /dev/null +++ b/packages/phocadownload/administrator/components/com_phocadownload/views/phocadownloadlinkcats/index.html @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/phocadownload/administrator/components/com_phocadownload/views/phocadownloadlinkcats/tmpl/default.php b/packages/phocadownload/administrator/components/com_phocadownload/views/phocadownloadlinkcats/tmpl/default.php new file mode 100644 index 00000000..77382a5d --- /dev/null +++ b/packages/phocadownload/administrator/components/com_phocadownload/views/phocadownloadlinkcats/tmpl/default.php @@ -0,0 +1,65 @@ + + + + \ No newline at end of file diff --git a/packages/phocadownload/administrator/components/com_phocadownload/views/phocadownloadlinkcats/tmpl/index.html b/packages/phocadownload/administrator/components/com_phocadownload/views/phocadownloadlinkcats/tmpl/index.html new file mode 100644 index 00000000..fa6d84e8 --- /dev/null +++ b/packages/phocadownload/administrator/components/com_phocadownload/views/phocadownloadlinkcats/tmpl/index.html @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/phocadownload/administrator/components/com_phocadownload/views/phocadownloadlinkcats/view.html.php b/packages/phocadownload/administrator/components/com_phocadownload/views/phocadownloadlinkcats/view.html.php new file mode 100644 index 00000000..7bf6ac4a --- /dev/null +++ b/packages/phocadownload/administrator/components/com_phocadownload/views/phocadownloadlinkcats/view.html.php @@ -0,0 +1,72 @@ +isAdmin()) { + $tUri = JURI::base(); + + } + + $document = JFactory::getDocument(); + $uri = JFactory::getURI(); + JHTML::stylesheet( 'media/com_phocadownload/css/administrator/phocadownload.css' ); + + $eName = JRequest::getVar('e_name'); + $this->t['ename'] = preg_replace( '#[^A-Z0-9\-\_\[\]]#i', '', $eName ); + $this->t['backlink'] = $tUri.'index.php?option=com_phocadownload&view=phocadownloadlinks&tmpl=component&e_name='.$this->t['ename']; + + + // Category Tree + $db = JFactory::getDBO(); + $query = 'SELECT a.title AS text, a.id AS value, a.parent_id as parentid' + . ' FROM #__phocadownload_categories AS a' + // . ' WHERE a.published = 1' You can hide not published and not authorized categories too + // . ' AND a.approved = 1' + . ' ORDER BY a.ordering'; + $db->setQuery( $query ); + $categories = $db->loadObjectList(); + + $tree = array(); + $text = ''; + $tree = PhocaDownloadCategory::CategoryTreeOption($categories, $tree, 0, $text, -1); + //----------------------------------------------------------------------- + + // Multiple + $ctrl = 'hidecategories'; + $attribs = ' '; + $attribs .= ' size="5"'; + //$attribs .= 'class="'.$v.'"'; + $attribs .= ' class="inputbox"'; + $attribs .= ' multiple="multiple"'; + $ctrl .= ''; + //$value = implode( '|', ) + + $categoriesOutput = JHTML::_('select.genericlist', $tree, $ctrl, $attribs, 'value', 'text', 0, 'hidecategories' ); + + $this->assignRef('categoriesoutput', $categoriesOutput); + + parent::display($tpl); + } +} +?> \ No newline at end of file diff --git a/packages/phocadownload/administrator/components/com_phocadownload/views/phocadownloadlinkfile/index.html b/packages/phocadownload/administrator/components/com_phocadownload/views/phocadownloadlinkfile/index.html new file mode 100644 index 00000000..fa6d84e8 --- /dev/null +++ b/packages/phocadownload/administrator/components/com_phocadownload/views/phocadownloadlinkfile/index.html @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/phocadownload/administrator/components/com_phocadownload/views/phocadownloadlinkfile/tmpl/default.php b/packages/phocadownload/administrator/components/com_phocadownload/views/phocadownloadlinkfile/tmpl/default.php new file mode 100644 index 00000000..35cd6b58 --- /dev/null +++ b/packages/phocadownload/administrator/components/com_phocadownload/views/phocadownloadlinkfile/tmpl/default.php @@ -0,0 +1,398 @@ +lists['order'] == 'a.ordering'); + +JHTML::_('behavior.tooltip'); + +if ($this->t['type'] == 0) { + $view = 'file'; +} else if ($this->t['type'] == 1) { + $view = 'fileplaylink'; +} else if ($this->t['type'] == 2) { + $view = 'fileplay'; +} else if ($this->t['type'] == 3) { + $view = 'filepreviewlink'; +} else if ($this->t['type'] == 4) { + $view = 'filelist'; +} + + +?> + + \ No newline at end of file diff --git a/packages/phocadownload/administrator/components/com_phocadownload/views/phocadownloadlinkfile/tmpl/index.html b/packages/phocadownload/administrator/components/com_phocadownload/views/phocadownloadlinkfile/tmpl/index.html new file mode 100644 index 00000000..fa6d84e8 --- /dev/null +++ b/packages/phocadownload/administrator/components/com_phocadownload/views/phocadownloadlinkfile/tmpl/index.html @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/phocadownload/administrator/components/com_phocadownload/views/phocadownloadlinkfile/view.html.php b/packages/phocadownload/administrator/components/com_phocadownload/views/phocadownloadlinkfile/view.html.php new file mode 100644 index 00000000..454c2b0b --- /dev/null +++ b/packages/phocadownload/administrator/components/com_phocadownload/views/phocadownloadlinkfile/view.html.php @@ -0,0 +1,130 @@ +isAdmin()) { + $tUri = JURI::base(); + + } + + JHTML::stylesheet( 'media/com_phocadownload/css/administrator/phocadownload.css' ); + + $eName = JRequest::getVar('e_name'); + $this->t['ename'] = preg_replace( '#[^A-Z0-9\-\_\[\]]#i', '', $eName ); + $this->t['type'] = JRequest::getVar( 'type', 1, '', 'int' ); + $this->t['backlink'] = $tUri.'index.php?option=com_phocadownload&view=phocadownloadlinks&tmpl=component&e_name='.$this->t['ename']; + + + $params = JComponentHelper::getParams('com_phocadownload') ; + + //Filter + $context = 'com_phocadownload.phocadownload.list.'; + //$sectionid = JRequest::getVar( 'sectionid', -1, '', 'int' ); + //$redirect = $sectionid; + $option = JRequest::getCmd( 'option' ); + + $filter_state = $app->getUserStateFromRequest( $this->_context.'.filter_state', 'filter_state', '', 'word' ); + $filter_catid = $app->getUserStateFromRequest( $this->_context.'.filter_catid', 'filter_catid', 0, 'int' ); + $catid = $app->getUserStateFromRequest( $this->_context.'.catid', 'catid', 0, 'int'); + // $filter_sectionid = $app->getUserStateFromRequest( $this->_context.'.filter_sectionid','filter_sectionid', -1, 'int'); + $filter_order = $app->getUserStateFromRequest( $this->_context.'.filter_order', 'filter_order', 'a.ordering', 'cmd' ); + $filter_order_Dir = $app->getUserStateFromRequest( $this->_context.'.filter_order_Dir', 'filter_order_Dir', '', 'word' ); + $search = $app->getUserStateFromRequest( $this->_context.'.search','search', '', 'string' ); + $search = JString::strtolower( $search ); + + // Get data from the model + $items = $this->get( 'Data'); + $total = $this->get( 'Total'); + $pagination = $this->get( 'Pagination' ); + + // build list of categories + + if ($this->t['type'] != 4) { + $javascript = 'class="inputbox" size="1" onchange="submitform( );"'; + } else { + $javascript = ''; + } + // get list of categories for dropdown filter + $filter = ''; + + //if ($filter_sectionid > 0) { + // $filter = ' WHERE cc.section = '.$db->Quote($filter_sectionid); + //} + + // get list of categories for dropdown filter + $query = 'SELECT cc.id AS value, cc.title AS text' . + ' FROM #__phocadownload_categories AS cc' . + $filter . + ' ORDER BY cc.ordering'; + + if ($this->t['type'] != 4) { + $lists['catid'] = PhocaDownloadCategory::filterCategory($query, $catid, null, true, true); + } else { + $lists['catid'] = PhocaDownloadCategory::filterCategory($query, $catid, null, false, true); + } + /* + if ($this->t['type'] != 4) { + $lists['catid'] = PhocaDownloadCategory::filterCategory($query, $catid, null, true); + } else { + $lists['catid'] = PhocaDownloadCategory::filterCategory($query, $catid, null, false); + }*/ + + // sectionid + /*$query = 'SELECT s.title AS text, s.id AS value' + . ' FROM #__phocadownload_sections AS s' + . ' WHERE s.published = 1' + . ' ORDER BY s.ordering'; + + $lists['sectionid'] = PhocaDownloadCategory::filterSection($query, $filter_sectionid);*/ + + // state filter + $lists['state'] = JHTML::_('grid.state', $filter_state ); + + // table ordering + $lists['order_Dir'] = $filter_order_Dir; + $lists['order'] = $filter_order; + + // search filter + $lists['search']= $search; + + + $user = JFactory::getUser(); + $uriS = $uri->toString(); + $this->assignRef('user', $user); + $this->assignRef('lists', $lists); + + $this->assignRef('items', $items); + $this->assignRef('pagination', $pagination); + $this->assignRef('request_url', $uriS); + + parent::display($tpl); + } +} +?> \ No newline at end of file diff --git a/packages/phocadownload/administrator/components/com_phocadownload/views/phocadownloadlinks/index.html b/packages/phocadownload/administrator/components/com_phocadownload/views/phocadownloadlinks/index.html new file mode 100644 index 00000000..fa6d84e8 --- /dev/null +++ b/packages/phocadownload/administrator/components/com_phocadownload/views/phocadownloadlinks/index.html @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/phocadownload/administrator/components/com_phocadownload/views/phocadownloadlinks/tmpl/default.php b/packages/phocadownload/administrator/components/com_phocadownload/views/phocadownloadlinks/tmpl/default.php new file mode 100644 index 00000000..41c0cf0d --- /dev/null +++ b/packages/phocadownload/administrator/components/com_phocadownload/views/phocadownloadlinks/tmpl/default.php @@ -0,0 +1,20 @@ +' +.'
' +.''.JText::_( 'COM_PHOCADOWNLOAD_SELECT_TYPE' ).'' +.'' +.'
' +.'' +.''; +?> \ No newline at end of file diff --git a/packages/phocadownload/administrator/components/com_phocadownload/views/phocadownloadlinks/tmpl/index.html b/packages/phocadownload/administrator/components/com_phocadownload/views/phocadownloadlinks/tmpl/index.html new file mode 100644 index 00000000..fa6d84e8 --- /dev/null +++ b/packages/phocadownload/administrator/components/com_phocadownload/views/phocadownloadlinks/tmpl/index.html @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/phocadownload/administrator/components/com_phocadownload/views/phocadownloadlinks/view.html.php b/packages/phocadownload/administrator/components/com_phocadownload/views/phocadownloadlinks/view.html.php new file mode 100644 index 00000000..37f9e618 --- /dev/null +++ b/packages/phocadownload/administrator/components/com_phocadownload/views/phocadownloadlinks/view.html.php @@ -0,0 +1,48 @@ +isAdmin()) { + $tUri = JURI::base(); + + } + + $document = JFactory::getDocument(); + $uri = JFactory::getURI(); + JHTML::stylesheet( 'media/com_phocadownload/css/administrator/phocadownload.css' ); + + $eName = JRequest::getVar('e_name'); + $eName = preg_replace( '#[^A-Z0-9\-\_\[\]]#i', '', $eName ); + + + $this->t['linkcategories'] = $tUri.'index.php?option=com_phocadownload&view=phocadownloadlinkcats&tmpl=component&e_name='.$eName; + $this->t['linkcategory'] = $tUri.'index.php?option=com_phocadownload&view=phocadownloadlinkcat&tmpl=component&e_name='.$eName; + $this->t['linkfile'] = $tUri.'index.php?option=com_phocadownload&view=phocadownloadlinkfile&tmpl=component&e_name='.$eName; + $this->t['linkytb'] = $tUri.'index.php?option=com_phocadownload&view=phocadownloadlinkytb&tmpl=component&e_name='.$eName; + + + parent::display($tpl); + } +} +?> \ No newline at end of file diff --git a/packages/phocadownload/administrator/components/com_phocadownload/views/phocadownloadlinkytb/index.html b/packages/phocadownload/administrator/components/com_phocadownload/views/phocadownloadlinkytb/index.html new file mode 100644 index 00000000..fa6d84e8 --- /dev/null +++ b/packages/phocadownload/administrator/components/com_phocadownload/views/phocadownloadlinkytb/index.html @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/phocadownload/administrator/components/com_phocadownload/views/phocadownloadlinkytb/tmpl/default.php b/packages/phocadownload/administrator/components/com_phocadownload/views/phocadownloadlinkytb/tmpl/default.php new file mode 100644 index 00000000..78998660 --- /dev/null +++ b/packages/phocadownload/administrator/components/com_phocadownload/views/phocadownloadlinkytb/tmpl/default.php @@ -0,0 +1,54 @@ + + + \ No newline at end of file diff --git a/packages/phocadownload/administrator/components/com_phocadownload/views/phocadownloadlinkytb/tmpl/index.html b/packages/phocadownload/administrator/components/com_phocadownload/views/phocadownloadlinkytb/tmpl/index.html new file mode 100644 index 00000000..fa6d84e8 --- /dev/null +++ b/packages/phocadownload/administrator/components/com_phocadownload/views/phocadownloadlinkytb/tmpl/index.html @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/phocadownload/administrator/components/com_phocadownload/views/phocadownloadlinkytb/view.html.php b/packages/phocadownload/administrator/components/com_phocadownload/views/phocadownloadlinkytb/view.html.php new file mode 100644 index 00000000..84a4f953 --- /dev/null +++ b/packages/phocadownload/administrator/components/com_phocadownload/views/phocadownloadlinkytb/view.html.php @@ -0,0 +1,42 @@ +isAdmin()) { + $tUri = JURI::base(); + + } + JHTML::stylesheet( 'media/com_phocadownload/css/administrator/phocadownload.css' ); + + $eName = JRequest::getVar('e_name'); + $this->t['ename'] = preg_replace( '#[^A-Z0-9\-\_\[\]]#i', '', $eName ); + $this->t['backlink'] = $tUri.'index.php?option=com_phocadownload&view=phocadownloadlinks&tmpl=component&e_name='.$this->t['ename']; + + $this->assignRef('tmpl', $this->t); + parent::display($tpl); + } +} +?> \ No newline at end of file diff --git a/packages/phocadownload/administrator/components/com_phocadownload/views/phocadownloadlogs/index.html b/packages/phocadownload/administrator/components/com_phocadownload/views/phocadownloadlogs/index.html new file mode 100644 index 00000000..fa6d84e8 --- /dev/null +++ b/packages/phocadownload/administrator/components/com_phocadownload/views/phocadownloadlogs/index.html @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/phocadownload/administrator/components/com_phocadownload/views/phocadownloadlogs/tmpl/default.php b/packages/phocadownload/administrator/components/com_phocadownload/views/phocadownloadlogs/tmpl/default.php new file mode 100644 index 00000000..89b0436a --- /dev/null +++ b/packages/phocadownload/administrator/components/com_phocadownload/views/phocadownloadlogs/tmpl/default.php @@ -0,0 +1,147 @@ +t['n'] . 'RenderAdminViews'; +$r = new $class(); +$user = JFactory::getUser(); +$userId = $user->get('id'); +$listOrder = $this->escape($this->state->get('list.ordering')); +$listDirn = $this->escape($this->state->get('list.direction')); +$canOrder = $user->authorise('core.edit.state', $this->t['o']); +$saveOrder = $listOrder == 'a.ordering'; +if ($saveOrder) { + $saveOrderingUrl = 'index.php?option='.$this->t['o'].'&task='.$this->t['tasks'].'.saveOrderAjax&tmpl=component'; + JHtml::_('sortablelist.sortable', 'categoryList', 'adminForm', strtolower($listDirn), $saveOrderingUrl, false, true); +} +$sortFields = $this->getSortFields(); + +echo $r->jsJorderTable($listOrder); + +if ($this->t['p']->get('enable_logging', 0) == 0) { + echo '
×'. JText::_('COM_PHOCADOWNLOAD_LOGGING_NOT_ENABLED').'
'; +} + +echo $r->startForm($this->t['o'], $this->t['tasks'], 'adminForm'); +echo $r->startFilter(); +//echo $r->selectFilterLanguage('JOPTION_SELECT_LANGUAGE', $this->state->get('filter.language')); +//echo $r->selectFilterCategory(PhocaDownloadCategory::options($this->t['o']), 'JOPTION_SELECT_CATEGORY', $this->state->get('filter.category_id')); +echo $r->endFilter(); + +echo $r->startMainContainer(); +echo $r->startFilterBar(); +echo $r->inputFilterSearch($this->t['l'].'_FILTER_SEARCH_LABEL', $this->t['l'].'_FILTER_SEARCH_DESC', + $this->escape($this->state->get('filter.search'))); +echo $r->inputFilterSearchClear('JSEARCH_FILTER_SUBMIT', 'JSEARCH_FILTER_CLEAR'); +echo $r->inputFilterSearchLimit('JFIELD_PLG_SEARCH_SEARCHLIMIT_DESC', $this->pagination->getLimitBox()); +echo $r->selectFilterDirection('JFIELD_ORDERING_DESC', 'JGLOBAL_ORDER_ASCENDING', 'JGLOBAL_ORDER_DESCENDING', $listDirn); +echo $r->selectFilterSortBy('JGLOBAL_SORT_BY', $sortFields, $listOrder); + +echo $r->startFilterBar(2); +echo $r->selectFilterType($this->t['l'].'_SELECT_TYPE', $this->state->get('filter.type'), array(1 => JText::_($this->t['l'].'_DOWNLOADS'), 2 =>JText::_($this->t['l'].'_UPLOADS'))); +echo $r->endFilterBar(); + + +echo $r->endFilterBar(); + +echo $r->startTable('categoryList'); + +echo $r->startTblHeader(); + +echo '';//$r->thOrdering('JGRID_HEADING_ORDERING', 0,0); +echo $r->thCheck('JGLOBAL_CHECK_ALL'); +echo ''.JHTML::_('grid.sort', $this->t['l'].'_DATE', 'a.date', $listDirn, $listOrder ).''."\n"; +echo ''.JHTML::_('grid.sort', $this->t['l'].'_USER', 'username', $listDirn, $listOrder ).''."\n"; +echo ''.JHTML::_('grid.sort', $this->t['l'].'_IP', 'a.ip', $listDirn, $listOrder ).''."\n"; +echo ''.JHTML::_('grid.sort', $this->t['l'].'_FILE', 'filename', $listDirn, $listOrder ).''."\n"; +echo ''.JHTML::_('grid.sort', $this->t['l'].'_CATEGORY', 'category_id', $listDirn, $listOrder ).''."\n"; +echo ''.JHTML::_('grid.sort', $this->t['l'].'_PAGE', 'a.page', $listDirn, $listOrder ).''."\n"; +echo ''.JHTML::_('grid.sort', $this->t['l'].'_TYPE', 'a.type', $listDirn, $listOrder ).''."\n"; +echo ''.JHTML::_('grid.sort', $this->t['l'].'_ID', 'a.id', $listDirn, $listOrder ).''."\n"; + +echo $r->endTblHeader(); + +echo ''. "\n"; + +$originalOrders = array(); +$parentsStr = ""; +$j = 0; + +if (is_array($this->items)) { + foreach ($this->items as $i => $item) { + //if ($i >= (int)$this->pagination->limitstart && $j < (int)$this->pagination->limit) { + $j++; +/* +$urlEdit = 'index.php?option='.$this->t['o'].'&task='.$this->t['task'].'.edit&id='; +$urlTask = 'index.php?option='.$this->t['o'].'&task='.$this->t['task']; +$orderkey = array_search($item->id, $this->ordering[$item->catid]); +$ordering = ($listOrder == 'a.ordering'); +$canCreate = $user->authorise('core.create', $this->t['o']); +$canEdit = $user->authorise('core.edit', $this->t['o']); +$canCheckin = $user->authorise('core.manage', 'com_checkin') || $item->checked_out==$user->get('id') || $item->checked_out==0; +$canChange = $user->authorise('core.edit.state', $this->t['o']) && $canCheckin; +$linkEdit = JRoute::_( $urlEdit. $item->id ); + +$linkCat = JRoute::_( 'index.php?option='.$this->t['o'].'&task='.$this->t['c'].'cat.edit&id='.(int) $item->category_id ); +$canEditCat = $user->authorise('core.edit', $this->t['o']);*/ + + +$iD = $i % 2; +echo "\n\n"; +echo ''. "\n"; + +echo $r->tdOrder(0,0,0); +echo $r->td(JHtml::_('grid.id', $i, $item->id), "small hidden-phone"); + + +echo $r->td($this->escape($item->date)); + +$usrO = $item->usernameno; +if ($item->username) {$usrO = $usrO . ' ('.$item->username.')';} +if (!$usrO) { + $usrO = JText::_('COM_PHOCADOWNLOAD_GUEST'); +} +echo $r->td($usrO, "small hidden-phone"); + +echo $r->td($this->escape($item->ip)); + +//echo $r->td($this->escape($item->filetitle)); +echo $r->td($this->escape($item->file_title) . ' ('.$this->escape($item->filename) . ')'); + +echo $r->td($this->escape($item->category_id)); +echo $r->td('' + .''. JText::_( $this->t['l'].'_PAGE' ).''); + +if ($item->type == 2) { + echo $r->td(''.JText::_($this->t['l'].'_UPLOAD').'', "small hidden-phone"); +} else { + echo $r->td(''.JText::_($this->t['l'].'_DOWNLOAD').'', "small hidden-phone"); +} + +echo $r->td($item->id, "small hidden-phone"); + +echo ''. "\n"; + + //} + } +} +echo ''. "\n"; + +echo $r->tblFoot($this->pagination->getListFooter(), 15); +echo $r->endTable(); + +//echo $r->formInputs($listOrder, $originalOrders); +echo $r->formInputs($listOrder, $listDirn, $originalOrders); +echo $r->endMainContainer(); +echo $r->endForm(); +?> diff --git a/packages/phocadownload/administrator/components/com_phocadownload/views/phocadownloadlogs/tmpl/index.html b/packages/phocadownload/administrator/components/com_phocadownload/views/phocadownloadlogs/tmpl/index.html new file mode 100644 index 00000000..fa6d84e8 --- /dev/null +++ b/packages/phocadownload/administrator/components/com_phocadownload/views/phocadownloadlogs/tmpl/index.html @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/phocadownload/administrator/components/com_phocadownload/views/phocadownloadlogs/view.html.php b/packages/phocadownload/administrator/components/com_phocadownload/views/phocadownloadlogs/view.html.php new file mode 100644 index 00000000..185bdb95 --- /dev/null +++ b/packages/phocadownload/administrator/components/com_phocadownload/views/phocadownloadlogs/view.html.php @@ -0,0 +1,82 @@ +t = PhocaDownloadUtils::setVars('log'); + $this->items = $this->get('Items'); + $this->pagination = $this->get('Pagination'); + $this->state = $this->get('State'); + $this->t['p'] = JComponentHelper::getParams('com_phocadownload'); + + JHTML::stylesheet( $this->t['s'] ); + + // Check for errors. + if (count($errors = $this->get('Errors'))) { + JError::raiseError(500, implode("\n", $errors)); + return false; + } + + $this->addToolbar(); + parent::display($tpl); + + } + + function addToolbar() { + + require_once JPATH_COMPONENT.'/helpers/'.$this->t['tasks'].'.php'; + //$state = $this->get('State'); + $class = ucfirst($this->t['tasks']).'Helper'; + $canDo = $class::getActions($this->t); + + JToolBarHelper::title( JText::_( $this->t['l'].'_LOGGING' ), 'file-2' ); + + if ($canDo->get('core.edit')){ + + $bar = JToolBar::getInstance('toolbar'); + + $dhtml = ''; + $bar->appendButton('Custom', $dhtml); + JToolBarHelper::divider(); + //JToolBarHelper::custom('phocadownloaduserstat.reset', 'reset.png', '', 'COM_PHOCADOWNLOAD_RESET' , false); + } + + //JToolBarHelper::cancel($this->t['tasks'].'.cancel', 'JTOOLBAR_CLOSE'); + + JToolBarHelper::help( 'screen.'.$this->t['c'], true ); + } + + protected function getSortFields() { + return array( + 'a.date' => JText::_($this->t['l'] . '_DATE'), + 'usernameno' => JText::_($this->t['l'] . '_USER'), + 'username' => JText::_($this->t['l'] . '_USERNAME'), + 'd.title' => JText::_($this->t['l'] . '_TITLE'), + 'filename' => JText::_($this->t['l'] . '_FILENAME'), + 'category_id' => JText::_($this->t['l'] . '_CATEGORY'), + 'a.ip' => JText::_($this->t['l'] . '_IP'), + 'a.page' => JText::_($this->t['l'] . '_PAGE'), + 'a.type' => JText::_($this->t['l'] . '_TYPE'), + 'a.id' => JText::_($this->t['l'] . '_ID') + + ); + } + +} +?> \ No newline at end of file diff --git a/packages/phocadownload/administrator/components/com_phocadownload/views/phocadownloadmanager/index.html b/packages/phocadownload/administrator/components/com_phocadownload/views/phocadownloadmanager/index.html new file mode 100644 index 00000000..fa6d84e8 --- /dev/null +++ b/packages/phocadownload/administrator/components/com_phocadownload/views/phocadownloadmanager/index.html @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/phocadownload/administrator/components/com_phocadownload/views/phocadownloadmanager/tmpl/default.php b/packages/phocadownload/administrator/components/com_phocadownload/views/phocadownloadmanager/tmpl/default.php new file mode 100644 index 00000000..2f8d6879 --- /dev/null +++ b/packages/phocadownload/administrator/components/com_phocadownload/views/phocadownloadmanager/tmpl/default.php @@ -0,0 +1,192 @@ +manager == 'filemultiple') { + + ?>'; + +if ($this->manager == 'filemultiple') { + echo $r->startForm($this->t['o'], $this->t['task'], 'adminForm', 'adminForm'); + echo '
'; + echo '

'. JText::_('COM_PHOCADOWNLOAD_MULTIPLE_ADD').'

'; + + echo '
'."\n"; + $formArray = array ('title', 'alias','published', 'approved', 'ordering', 'catid', 'language', 'pap_copy_m'); + echo $r->group($this->form, $formArray); + echo '
'. "\n"; + + echo '
'. "\n"; +} + +if ($this->manager == 'filemultiple') { + echo '
'; +} else { + echo '
'; +} + +echo '
' . JText::_('COM_PHOCADOWNLOAD_PATH'). ': '.JPath::clean($this->t['path']['orig_abs_ds']. $this->folderstate->folder) .'
'; + +//$countFaF = count($this->images) + count($this->folders); +echo '' +.'' +.''; +echo ''. "\n"; + +echo '' +.'' +.'' +.''; + + + + +/* +echo '
'; + +if ($this->manager == 'filemultiple' && (count($this->files) > 0 || count($this->folders) > 0)) { + echo '
'; + $fileFolders = count($this->files) + count($this->folders); + echo ''; + echo '  '. JText::_('COM_PHOCADOWNLOAD_CHECK_ALL'); + echo '
'; +}*/ +echo '
'; +echo $this->loadTemplate('up'); +if (count($this->files) > 0 || count($this->folders) > 0) { ?> +
+ + folders); $i<$n; $i++) : + $this->setFolder($i); + $this->folderi = $i; + echo $this->loadTemplate('folder'); + endfor; ?> + + files); $i<$n; $i++) : + $this->setFile($i); + $this->filei = $i; + echo $this->loadTemplate('file'); + endfor; ?> + +
+' + .'' + .'' + .'' + .''; +} +echo '' +.'
'. "\n"; +if ($this->manager == 'filemultiple') { + echo ''. "\n"; +} else { + echo ''; +} +echo ' '.JText::_( $this->t['l'].'_FILENAME' ).'
  '.JText::_( $this->t['l'].'_THERE_IS_NO_FILE' ).'
'; + +if ($this->manager == 'filemultiple') { + + echo ''. "\n"; + echo ''. "\n"; + echo ''. "\n"; + echo JHtml::_('form.token'); + echo $r->endForm(); + + echo '
'; + echo '
'; + +} ?> + +
 
+ +t['displaytabs'] > 0) { + + echo ''; + + + echo '
'. "\n"; + + echo '
'. "\n"; + echo $this->loadTemplate('upload'); + echo '
'. "\n"; + echo '
'. "\n"; + echo $this->loadTemplate('multipleupload'); + echo '
'. "\n"; + + echo '
'. "\n"; + //echo PhocaDownloadFileUpload::renderCreateFolder($this->session->getName(), $this->session->getId(), $this->currentFolder, 'phocadownloadmanager', 'manager='.$this->manager.'&tab='.$this->t['currenttab']['upload'].'&field='. $this->field ); + echo PhocaDownloadFileUpload::renderCreateFolder($this->session->getName(), $this->session->getId(), $this->currentFolder, 'phocadownloadmanager', 'manager='.$this->manager.'&tab=createfolder&field='. $this->field ); + echo '
'. "\n"; + + echo '
'. "\n"; +} +echo '
'; + +if ($this->t['tab'] != '') {$jsCt = 'a[href=#'.$this->t['tab'] .']';} else {$jsCt = 'a:first';} +echo ''; +?> diff --git a/packages/phocadownload/administrator/components/com_phocadownload/views/phocadownloadmanager/tmpl/default_file.php b/packages/phocadownload/administrator/components/com_phocadownload/views/phocadownloadmanager/tmpl/default_file.php new file mode 100644 index 00000000..17e0f991 --- /dev/null +++ b/packages/phocadownload/administrator/components/com_phocadownload/views/phocadownloadmanager/tmpl/default_file.php @@ -0,0 +1,53 @@ +_tmp_file->path_without_name_relative ); +$group = PhocaDownloadSettings::getManagerGroup($this->manager); + + +if ($this->manager == 'filemultiple') { + $checked = JHTML::_('grid.id', $this->filei + count($this->folders), $this->files[$this->filei]->path_with_name_relative_no ); + + $icon = PhocaDownloadFile::getMimeTypeIcon($this->_tmp_file->name); + echo '' + .' '. $checked .'' + .' ' + . $icon .'' + .' ' . $this->_tmp_file->name . '' + .''; + + +} else { + if (($group['i'] == 1) && ($ext == 'png' || $ext == 'jpg' || $ext == 'gif' || $ext == 'jpeg') ) { + + echo '' + .'' + .'' + .'' + . JHTML::_( 'image', str_replace( '../', '', $this->_tmp_file->path_without_name_relative), JText::_('COM_PHOCADOWNLOAD_INSERT'), array('title' => JText::_('COM_PHOCADOWNLOAD_INSERT_ICON'))) + .'' + .' ' + .'' + . $this->_tmp_file->name + .'' + .'' + .''; + + } else { + + echo '' + .'' + .'' + .'' + . JHTML::_( 'image', $this->t['i'].'icon-file.png', '', JText::_('COM_PHOCADOWNLOAD_INSERT_FILENAME')) + .'' + .' ' + .'' + . $this->_tmp_file->name + .'' + .'' + .''; + } +} +?> diff --git a/packages/phocadownload/administrator/components/com_phocadownload/views/phocadownloadmanager/tmpl/default_folder.php b/packages/phocadownload/administrator/components/com_phocadownload/views/phocadownloadmanager/tmpl/default_folder.php new file mode 100644 index 00000000..aaef6b1e --- /dev/null +++ b/packages/phocadownload/administrator/components/com_phocadownload/views/phocadownloadmanager/tmpl/default_folder.php @@ -0,0 +1,36 @@ + +manager); + +if ($this->manager == 'filemultiple') { + + $checked = JHTML::_('grid.id', $this->folderi, $this->folders[$this->folderi]->path_with_name_relative_no, 0, 'foldercid' ); + $link = 'index.php?option=com_phocadownload&view=phocadownloadmanager' + .'&manager='.$this->manager + .$group['c'] + .'&folder='.$this->_tmp_folder->path_with_name_relative_no + .'&field='. $this->field; + + echo '' + .' '. $checked .'' + .' ' + . JHTML::_( 'image', $this->t['i'].'icon-16-folder-small.png', '').'' + .' '. $this->_tmp_folder->name.'' + .''; + +} else { + + $link = 'index.php?option=com_phocadownload&view=phocadownloadmanager' + .'&manager='. $this->manager + . $group['c'] + .'&folder='.$this->_tmp_folder->path_with_name_relative_no + .'&field='. $this->field; + + echo '' + .' ' + .' ' + . JHTML::_( 'image', $this->t['i'].'icon-16-folder-small.png', JText::_('COM_PHOCADOWNLOAD_OPEN')).'' + .' '. $this->_tmp_folder->name.'' + .''; +} +?> \ No newline at end of file diff --git a/packages/phocadownload/administrator/components/com_phocadownload/views/phocadownloadmanager/tmpl/default_multipleupload.php b/packages/phocadownload/administrator/components/com_phocadownload/views/phocadownloadmanager/tmpl/default_multipleupload.php new file mode 100644 index 00000000..95ab4e61 --- /dev/null +++ b/packages/phocadownload/administrator/components/com_phocadownload/views/phocadownloadmanager/tmpl/default_multipleupload.php @@ -0,0 +1,13 @@ +t['c'].'-multipleupload" class="ph-in">'; +echo $this->t['mu_response_msg'] ; +echo '
'; +if ($this->t['ftp']) {echo PhocaDownloadFileUpload::renderFTPaccess();} +echo '
' . JText::_( $this->t['l'].'_UPLOAD_FILE' ).' [ '. JText::_( $this->t['l'].'_MAX_SIZE' ).': '.$this->t['uploadmaxsizeread'].',' + .']
'; +echo ''.JText::_($this->t['l'].'_SELECT_FILES').'. '.JText::_($this->t['l'].'_ADD_FILES_TO_UPLOAD_QUEUE_AND_CLICK_START_BUTTON').''; +echo $this->t['mu_output']; +echo '
'; +echo ''; +?> \ No newline at end of file diff --git a/packages/phocadownload/administrator/components/com_phocadownload/views/phocadownloadmanager/tmpl/default_up.php b/packages/phocadownload/administrator/components/com_phocadownload/views/phocadownloadmanager/tmpl/default_up.php new file mode 100644 index 00000000..84358c61 --- /dev/null +++ b/packages/phocadownload/administrator/components/com_phocadownload/views/phocadownloadmanager/tmpl/default_up.php @@ -0,0 +1,11 @@ +manager); +$link = 'index.php?option='.$this->t['o'].'&view='.$this->t['task'].'&manager='.$this->manager . $group['c'] .'&folder='.$this->folderstate->parent .'&field='. $this->field; +echo ' ' +.'' +.'' +. JHTML::_( 'image', $this->t['i'].'icon-16-up.png', '').'' +.'' +.'..' +.''; \ No newline at end of file diff --git a/packages/phocadownload/administrator/components/com_phocadownload/views/phocadownloadmanager/tmpl/default_upload.php b/packages/phocadownload/administrator/components/com_phocadownload/views/phocadownloadmanager/tmpl/default_upload.php new file mode 100644 index 00000000..5493f738 --- /dev/null +++ b/packages/phocadownload/administrator/components/com_phocadownload/views/phocadownloadmanager/tmpl/default_upload.php @@ -0,0 +1,12 @@ +t['c'].'-upload" class="ph-in">'; +echo '
'; +echo '
'; +if ($this->t['ftp']) { echo PhocaDownloadFileUpload::renderFTPaccess();} +echo '
'. JText::_( $this->t['l'].'_UPLOAD_FILE' ).' [ '. JText::_( $this->t['l'].'_MAX_SIZE' ).': '.$this->t['uploadmaxsizeread'].']
'; +echo $this->t['su_output']; +echo '
'; +echo '
'; +echo ''; +?> \ No newline at end of file diff --git a/packages/phocadownload/administrator/components/com_phocadownload/views/phocadownloadmanager/tmpl/index.html b/packages/phocadownload/administrator/components/com_phocadownload/views/phocadownloadmanager/tmpl/index.html new file mode 100644 index 00000000..fa6d84e8 --- /dev/null +++ b/packages/phocadownload/administrator/components/com_phocadownload/views/phocadownloadmanager/tmpl/index.html @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/phocadownload/administrator/components/com_phocadownload/views/phocadownloadmanager/view.html.php b/packages/phocadownload/administrator/components/com_phocadownload/views/phocadownloadmanager/view.html.php new file mode 100644 index 00000000..dfaac094 --- /dev/null +++ b/packages/phocadownload/administrator/components/com_phocadownload/views/phocadownloadmanager/view.html.php @@ -0,0 +1,185 @@ +t = PhocaDownloadUtils::setVars('manager'); + $this->field = JRequest::getVar('field'); + $this->fce = 'phocaSelectFileName_'.$this->field; + + JHTML::stylesheet( $this->t['s'] ); + + + $this->folderstate = $this->get('FolderState'); + $this->files = $this->get('Files'); + $this->folders = $this->get('Folders'); + $this->session = JFactory::getSession(); + $this->manager = JRequest::getVar( 'manager', '', '', 'file' ); + + if ($this->manager == 'filemultiple') { + $this->form = $this->get('Form'); + } + + $params = JComponentHelper::getParams($this->t['o']); + + $this->t['multipleuploadchunk'] = $params->get( 'multiple_upload_chunk', 0 ); + $this->t['uploadmaxsize'] = $params->get( 'upload_maxsize', 3145728 ); + $this->t['uploadmaxsizeread'] = PhocaDownloadFile::getFileSizeReadable($this->t['uploadmaxsize']); + $this->t['enablemultiple'] = $params->get( 'enable_multiple_upload_admin', 0 ); + $this->t['multipleuploadmethod'] = $params->get( 'multiple_upload_method', 4 ); + + $this->currentFolder = ''; + if (isset($this->folderstate->folder) && $this->folderstate->folder != '') { + $this->currentFolder = $this->folderstate->folder; + } + + // - - - - - - - - - - + //TABS + // - - - - - - - - - - + $this->t['tab'] = JRequest::getVar('tab', '', '', 'string'); + $this->t['displaytabs'] = 0; + + // UPLOAD + $this->t['currenttab']['upload'] = $this->t['displaytabs']; + $this->t['displaytabs']++; + + // MULTIPLE UPLOAD + if((int)$this->t['enablemultiple'] >= 0) { + $this->t['currenttab']['multipleupload'] = $this->t['displaytabs']; + $this->t['displaytabs']++; + } + + $group = PhocaDownloadSettings::getManagerGroup($this->manager); + + // - - - - - - - - - - - + // Upload + // - - - - - - - - - - - + $sU = new PhocaDownloadFileUploadSingle(); + $sU->returnUrl = 'index.php?option=com_phocadownload&view=phocadownloadmanager&tab=upload'.str_replace('&', '&', $group['c']).'&manager='.$this->manager.'&field='.$this->field.'&folder='. $this->currentFolder; + $sU->tab = 'upload'; + $this->t['su_output'] = $sU->getSingleUploadHTML(); + $this->t['su_url'] = JURI::base().'index.php?option=com_phocadownload&task=phocadownloadupload.upload&' + .$this->session->getName().'='.$this->session->getId().'&' + . JSession::getFormToken().'=1&viewback=phocadownloadmanager&manager='.$this->manager.'&field='.$this->field.'&' + .'folder='. $this->currentFolder.'&tab=upload'; + + + // - - - - - - - - - - - + // Multiple Upload + // - - - - - - - - - - - + // Get infos from multiple upload + $muFailed = JRequest::getVar( 'mufailed', '0', '', 'int' ); + $muUploaded = JRequest::getVar( 'muuploaded', '0', '', 'int' ); + $this->t['mu_response_msg'] = $muUploadedMsg = ''; + + if ($muUploaded > 0) { + $muUploadedMsg = JText::_('COM_PHOCADOWNLOAD_COUNT_UPLOADED_FILE'). ': ' . $muUploaded; + } + if ($muFailed > 0) { + $muFailedMsg = JText::_('COM_PHOCADOWNLOAD_COUNT_NOT_UPLOADED_FILE'). ': ' . $muFailed; + } + if ($muFailed > 0 && $muUploaded > 0) { + $this->t['mu_response_msg'] = '
' + .'' + .JText::_('COM_PHOCADOWNLOAD_COUNT_UPLOADED_FILE'). ': ' . $muUploaded .'
' + .JText::_('COM_PHOCADOWNLOAD_COUNT_NOT_UPLOADED_FILE'). ': ' . $muFailed.'
'; + } else if ($muFailed > 0 && $muUploaded == 0) { + $this->t['mu_response_msg'] = '
' + .'' + .JText::_('COM_PHOCADOWNLOAD_COUNT_NOT_UPLOADED_FILE'). ': ' . $muFailed.'
'; + } else if ($muFailed == 0 && $muUploaded > 0){ + $this->t['mu_response_msg'] = '
' + .'' + .JText::_('COM_PHOCADOWNLOAD_COUNT_UPLOADED_FILE'). ': ' . $muUploaded.'
'; + } else { + $this->t['mu_response_msg'] = ''; + } + + if((int)$this->t['enablemultiple'] >= 0) { + + PhocadownloadFileUploadMultiple::renderMultipleUploadLibraries(); + $mU = new PhocaDownloadFileUploadMultiple(); + $mU->frontEnd = 0; + $mU->method = $this->t['multipleuploadmethod']; + $mU->url = JURI::base().'index.php?option=com_phocadownload&task=phocadownloadupload.multipleupload&' + .$this->session->getName().'='.$this->session->getId().'&' + . JSession::getFormToken().'=1&tab=multipleupload&manager='.$this->manager.'&field='.$this->field.'&folder='. $this->currentFolder; + $mU->reload = JURI::base().'index.php?option=com_phocadownload&view=phocadownloadmanager' + .str_replace('&', '&', $group['c']).'&' + .$this->session->getName().'='.$this->session->getId().'&' + . JSession::getFormToken().'=1&tab=multipleupload&' + .'manager='.$this->manager.'&field='.$this->field.'&folder='. $this->currentFolder; + $mU->maxFileSize = PhocadownloadFileUploadMultiple::getMultipleUploadSizeFormat($this->t['uploadmaxsize']); + $mU->chunkSize = '1mb'; + + $mU->renderMultipleUploadJS(0, $this->t['multipleuploadchunk']); + $this->t['mu_output']= $mU->getMultipleUploadHTML(); + } + + + $this->t['ftp'] = !JClientHelper::hasCredentials('ftp'); + $this->t['path'] = PhocaDownloadPath::getPathSet($this->manager); + + $this->addToolbar(); + parent::display($tpl); + echo JHTML::_('behavior.keepalive'); + } + + function setFolder($index = 0) { + if (isset($this->folders[$index])) { + $this->_tmp_folder = &$this->folders[$index]; + } else { + $this->_tmp_folder = new JObject; + } + } + + function setFile($index = 0) { + if (isset($this->files[$index])) { + $this->_tmp_file = &$this->files[$index]; + } else { + $this->_tmp_file = new JObject; + } + } + + protected function addToolbar() { + + JRequest::setVar('hidemainmenu', true); + require_once JPATH_COMPONENT.'/helpers/'.$this->t['task'].'.php'; + $state = $this->get('State'); + $class = ucfirst($this->t['task']).'Helper'; + $canDo = $class::getActions($this->t, $state->get('filter.multiple')); + + JToolBarHelper::title( JText::_( $this->t['l'].'_MULTIPLE_ADD' ), 'plus' ); + + if ($canDo->get('core.create')){ + JToolBarHelper::save($this->t['c'].'m.save', 'JTOOLBAR_SAVE'); + } + + JToolBarHelper::cancel($this->t['c'].'m.cancel', 'JTOOLBAR_CLOSE'); + JToolBarHelper::divider(); + JToolBarHelper::help( 'screen.'.$this->t['c'], true ); + } +} +?> \ No newline at end of file diff --git a/packages/phocadownload/administrator/components/com_phocadownload/views/phocadownloadrafile/index.html b/packages/phocadownload/administrator/components/com_phocadownload/views/phocadownloadrafile/index.html new file mode 100644 index 00000000..fa6d84e8 --- /dev/null +++ b/packages/phocadownload/administrator/components/com_phocadownload/views/phocadownloadrafile/index.html @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/phocadownload/administrator/components/com_phocadownload/views/phocadownloadrafile/tmpl/default.php b/packages/phocadownload/administrator/components/com_phocadownload/views/phocadownloadrafile/tmpl/default.php new file mode 100644 index 00000000..7b53437c --- /dev/null +++ b/packages/phocadownload/administrator/components/com_phocadownload/views/phocadownloadrafile/tmpl/default.php @@ -0,0 +1,143 @@ +t['n'] . 'RenderAdminViews'; +$r = new $class(); +$user = JFactory::getUser(); +$userId = $user->get('id'); +$listOrder = $this->escape($this->state->get('list.ordering')); +$listDirn = $this->escape($this->state->get('list.direction')); +$canOrder = $user->authorise('core.edit.state', $this->t['o']); +$saveOrder = $listOrder == 'a.ordering'; +if ($saveOrder) { + $saveOrderingUrl = 'index.php?option='.$this->t['o'].'&task='.$this->t['task'].'.saveOrderAjax&tmpl=component'; + JHtml::_('sortablelist.sortable', 'categoryList', 'adminForm', strtolower($listDirn), $saveOrderingUrl, false, true); +} +$sortFields = $this->getSortFields(); + +echo $r->jsJorderTable($listOrder); + +if (isset($this->tmpl['notapproved']->count) && (int)$this->tmpl['notapproved']->count > 0 ) { + echo '
×'.JText::_($this->t['l'].'_NOT_APPROVED_FILES_COUNT').': ' + .(int)$this->tmpl['notapproved']->count.'
'; +} + +echo $r->startForm($this->t['o'], $this->t['task'], 'adminForm'); +echo $r->startFilter($this->t['l'].'_FILTER'); +echo $r->selectFilterPublished('JOPTION_SELECT_PUBLISHED', $this->state->get('filter.state')); +echo $r->selectFilterLanguage('JOPTION_SELECT_LANGUAGE', $this->state->get('filter.language')); +echo $r->selectFilterCategory(PhocaDownloadCategory::options($this->t['o']), 'JOPTION_SELECT_CATEGORY', $this->state->get('filter.category_id')); +echo $r->endFilter(); + +echo $r->startMainContainer(); +echo $r->startFilterBar(); +echo $r->inputFilterSearch($this->t['l'].'_FILTER_SEARCH_LABEL', $this->t['l'].'_FILTER_SEARCH_DESC', + $this->escape($this->state->get('filter.search'))); +echo $r->inputFilterSearchClear('JSEARCH_FILTER_SUBMIT', 'JSEARCH_FILTER_CLEAR'); +echo $r->inputFilterSearchLimit('JFIELD_PLG_SEARCH_SEARCHLIMIT_DESC', $this->pagination->getLimitBox()); +echo $r->selectFilterDirection('JFIELD_ORDERING_DESC', 'JGLOBAL_ORDER_ASCENDING', 'JGLOBAL_ORDER_DESCENDING', $listDirn); +echo $r->selectFilterSortBy('JGLOBAL_SORT_BY', $sortFields, $listOrder); +echo $r->endFilterBar(); + +echo $r->startTable('categoryList'); + +echo $r->startTblHeader(); + +//echo $r->thOrdering('JGRID_HEADING_ORDERING', $listDirn, $listOrder); +echo ''; +echo $r->thCheck('JGLOBAL_CHECK_ALL'); +echo ''.JHTML::_('grid.sort', $this->t['l'].'_USER', 'ua.username', $listDirn, $listOrder ).''."\n"; +echo ''.JHTML::_('grid.sort', $this->t['l'].'_FILENAME', 'file_title', $listDirn, $listOrder ).''."\n"; +echo ''.JHTML::_('grid.sort', $this->t['l'].'_CATEGORY', 'category_title', $listDirn, $listOrder ).''."\n"; +echo ''.JHTML::_('grid.sort', $this->t['l'].'_RATING', 'a.rating', $listDirn, $listOrder ).''."\n"; +echo ''.JHTML::_('grid.sort', $this->t['l'].'_ID', 'a.id', $listDirn, $listOrder ).''."\n"; + +echo $r->endTblHeader(); + +echo ''. "\n"; + +$originalOrders = array(); +$parentsStr = ""; +$j = 0; + +if (is_array($this->items)) { + foreach ($this->items as $i => $item) { + if ($i >= (int)$this->pagination->limitstart && $j < (int)$this->pagination->limit) { + $j++; + +$urlEdit = 'index.php?option='.$this->t['o'].'&task='.$this->t['task'].'.edit&id='; +$urlTask = 'index.php?option='.$this->t['o'].'&task='.$this->t['task']; +$orderkey = 0;//array_search($item->id, $this->ordering[0]); +$ordering = ($listOrder == 'a.ordering'); +$canCreate = $user->authorise('core.create', $this->t['o']); +$canEdit = $user->authorise('core.edit', $this->t['o']); +$canCheckin = $user->authorise('core.manage', 'com_checkin') || $item->checked_out==$user->get('id') || $item->checked_out==0; +$canChange = $user->authorise('core.edit.state', $this->t['o']) && $canCheckin; +$linkEdit = JRoute::_( $urlEdit. $item->id ); + +$linkCat = JRoute::_( 'index.php?option='.$this->t['o'].'&task='.$this->t['c'].'cat.edit&id='.(int) $item->category_id ); +$canEditCat = $user->authorise('core.edit', $this->t['o']); + +$linkImg = JRoute::_( 'index.php?option='.$this->t['o'].'&task='.$this->t['c'].'file.edit&id='.(int) $item->file_id ); +$canEditImg = $user->authorise('core.edit', $this->t['o']); + + + +$iD = $i % 2; +echo "\n\n"; +echo ''. "\n"; + +echo $r->tdOrder($canChange, $saveOrder, $orderkey); +echo $r->td(JHtml::_('grid.id', $i, $item->id), "small hidden-phone"); + +$usrU = $item->ratingname; +if ($item->ratingusername) {$usrU = $usrU . ' ('.$item->ratingusername.')';} +echo $r->td($usrU, "small hidden-phone"); + + + +if ($canEditImg) { + $imgO = ''. $this->escape($item->file_title).''; +} else { + $imgO = $this->escape($item->file_title); +} +echo $r->td($imgO, "small hidden-phone"); + +if ($canEditCat) { + $catO = ''. $this->escape($item->category_title).''; +} else { + $catO = $this->escape($item->category_title); +} +echo $r->td($catO, "small hidden-phone"); + +//echo $r->td($item->rating, "small hidden-phone"); +echo $r->tdRating($item->rating); + +echo $r->td($item->id, "small hidden-phone"); + +echo ''. "\n"; + + } + } +} +echo ''. "\n"; + +echo $r->tblFoot($this->pagination->getListFooter(), 15); +echo $r->endTable(); + +//echo $r->formInputs($listOrder, $originalOrders); +echo $r->formInputs($listOrder, $listDirn, $originalOrders); +echo $r->endMainContainer(); +echo $r->endForm(); +?> \ No newline at end of file diff --git a/packages/phocadownload/administrator/components/com_phocadownload/views/phocadownloadrafile/tmpl/index.html b/packages/phocadownload/administrator/components/com_phocadownload/views/phocadownloadrafile/tmpl/index.html new file mode 100644 index 00000000..fa6d84e8 --- /dev/null +++ b/packages/phocadownload/administrator/components/com_phocadownload/views/phocadownloadrafile/tmpl/index.html @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/phocadownload/administrator/components/com_phocadownload/views/phocadownloadrafile/view.html.php b/packages/phocadownload/administrator/components/com_phocadownload/views/phocadownloadrafile/view.html.php new file mode 100644 index 00000000..b7980057 --- /dev/null +++ b/packages/phocadownload/administrator/components/com_phocadownload/views/phocadownloadrafile/view.html.php @@ -0,0 +1,70 @@ +t = PhocaDownloadUtils::setVars('rafile'); + $this->items = $this->get('Items'); + $this->pagination = $this->get('Pagination'); + $this->state = $this->get('State'); + + JHTML::stylesheet( $this->t['s'] ); + JHTML::stylesheet( 'media/com_phocadownload/css/administrator/rating.css' ); + + if (count($errors = $this->get('Errors'))) { + JError::raiseError(500, implode("\n", $errors)); + return false; + } + + $this->addToolbar(); + parent::display($tpl); + } + + function addToolbar() { + + require_once JPATH_COMPONENT.'/helpers/'.$this->t['task'].'.php'; + + $bar = JToolBar::getInstance('toolbar'); + $user = JFactory::getUser(); + //$isNew = ($this->item->id == 0); + //$checkedOut = !($this->item->checked_out == 0 || $this->item->checked_out == $user->get('id')); + $class = ucfirst($this->t['task']).'Helper'; + $canDo = $class::getActions($this->t, $this->state->get('filter.category_id')); + + + JToolBarHelper::title( JText::_( $this->t['l'].'_FILE_RATING' ), 'star' ); + + if ($canDo->get('core.delete')) { + JToolBarHelper::deleteList( JText::_( $this->t['l'].'_WARNING_DELETE_ITEMS' ), $this->t['task'].'.delete', $this->t['l'].'_DELETE'); + } + JToolBarHelper::divider(); + JToolBarHelper::help( 'screen.'.$this->t['c'], true ); + } + + protected function getSortFields() { + return array( + //'a.ordering' => JText::_('JGRID_HEADING_ORDERING'), + 'ua.username' => JText::_($this->t['l'] . '_USER'), + 'file_title' => JText::_($this->t['l'] . '_FILENAME'), + 'category_id' => JText::_($this->t['l'] . '_CATEGORY'), + 'a.rating' => JText::_($this->t['l'] . '_RATING'), + 'a.id' => JText::_('JGRID_HEADING_ID') + ); + } +} +?> \ No newline at end of file diff --git a/packages/phocadownload/administrator/components/com_phocadownload/views/phocadownloadset/index.html b/packages/phocadownload/administrator/components/com_phocadownload/views/phocadownloadset/index.html new file mode 100644 index 00000000..fa6d84e8 --- /dev/null +++ b/packages/phocadownload/administrator/components/com_phocadownload/views/phocadownloadset/index.html @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/phocadownload/administrator/components/com_phocadownload/views/phocadownloadset/tmpl/default.php b/packages/phocadownload/administrator/components/com_phocadownload/views/phocadownloadset/tmpl/default.php new file mode 100644 index 00000000..51bab2c2 --- /dev/null +++ b/packages/phocadownload/administrator/components/com_phocadownload/views/phocadownloadset/tmpl/default.php @@ -0,0 +1,66 @@ + + + + + +
+ +
+
+ + + + items as $value) { + + echo ''; + echo ''; + + echo ''; + echo ''; + + } + ?> + +
'; + echo ''; + echo ''; + + switch ($value->type) { + case 'textarea': + echo PhocaDownloadHelper::getTextareaSettings($value->id, $value->title, $value->value); + break; + + case 'textareaeditor': + echo PhocaDownloadHelper::getTextareaEditorSettings($value->id, $value->title, $value->value); + break; + + case 'select': + echo PhocaDownloadHelper::getSelectSettings($value->id, $value->title, $value->value, $value->values); + break; + + + case 'text': + default: + if ($value->title == 'absolute_path') { + echo '
' . JText::_('Experts only!'). '
'; + echo '
' . JText::_('Root Path') . ': ' . JPATH_ROOT . '
'; + } + echo PhocaDownloadHelper::getTextSettings($value->id, $value->title, $value->value); + break; + + } + echo '
+
+
+
+ + + + + +
+ + diff --git a/packages/phocadownload/administrator/components/com_phocadownload/views/phocadownloadset/tmpl/index.html b/packages/phocadownload/administrator/components/com_phocadownload/views/phocadownloadset/tmpl/index.html new file mode 100644 index 00000000..fa6d84e8 --- /dev/null +++ b/packages/phocadownload/administrator/components/com_phocadownload/views/phocadownloadset/tmpl/index.html @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/phocadownload/administrator/components/com_phocadownload/views/phocadownloadset/view.html.php b/packages/phocadownload/administrator/components/com_phocadownload/views/phocadownloadset/view.html.php new file mode 100644 index 00000000..37eb1df4 --- /dev/null +++ b/packages/phocadownload/administrator/components/com_phocadownload/views/phocadownloadset/view.html.php @@ -0,0 +1,42 @@ +get( 'Data'); + + $this->assignRef('items', $items); + $this->assignRef('request_url', $uri->toString()); + + parent::display($tpl); + $this->_setToolbar(); + } + + function _setToolbar() { + JToolBarHelper::title( JText::_( 'Phoca Download Settings' ), 'settings.png' ); + JToolBarHelper::save(); + JToolBarHelper::apply(); + JToolBarHelper::cancel( 'cancel', 'Close' ); + JToolBarHelper::help( 'screen.phocadownload', true ); + } +} +?> \ No newline at end of file diff --git a/packages/phocadownload/administrator/components/com_phocadownload/views/phocadownloadstat/index.html b/packages/phocadownload/administrator/components/com_phocadownload/views/phocadownloadstat/index.html new file mode 100644 index 00000000..fa6d84e8 --- /dev/null +++ b/packages/phocadownload/administrator/components/com_phocadownload/views/phocadownloadstat/index.html @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/phocadownload/administrator/components/com_phocadownload/views/phocadownloadstat/tmpl/default.php b/packages/phocadownload/administrator/components/com_phocadownload/views/phocadownloadstat/tmpl/default.php new file mode 100644 index 00000000..66dfa632 --- /dev/null +++ b/packages/phocadownload/administrator/components/com_phocadownload/views/phocadownloadstat/tmpl/default.php @@ -0,0 +1,150 @@ +t['n'] . 'RenderAdminViews'; +$r = new $class(); +$user = JFactory::getUser(); +$userId = $user->get('id'); +$listOrder = $this->escape($this->state->get('list.ordering')); +$listDirn = $this->escape($this->state->get('list.direction')); +$canOrder = $user->authorise('core.edit.state', $this->t['o']); +$saveOrder = $listOrder == 'a.ordering'; +if ($saveOrder) { + $saveOrderingUrl = 'index.php?option='.$this->t['o'].'&task='.$this->t['task'].'.saveOrderAjax&tmpl=component'; + JHtml::_('sortablelist.sortable', 'categoryList', 'adminForm', strtolower($listDirn), $saveOrderingUrl, false, true); +} +$sortFields = $this->getSortFields(); + +echo $r->jsJorderTable($listOrder); + +echo '
'; + +echo $r->startForm($this->t['o'], $this->t['task'], 'adminForm'); +echo $r->startFilter($this->t['l'].'_FILTER'); +echo $r->selectFilterPublished('JOPTION_SELECT_PUBLISHED', $this->state->get('filter.state')); +//echo $r->selectFilterLanguage('JOPTION_SELECT_LANGUAGE', $this->state->get('filter.language')); +echo $r->endFilter(); + +echo $r->startMainContainer(); +echo $r->startFilterBar(); +echo $r->inputFilterSearch($this->t['l'].'_FILTER_SEARCH_LABEL', $this->t['l'].'_FILTER_SEARCH_DESC', + $this->escape($this->state->get('filter.search'))); +echo $r->inputFilterSearchClear('JSEARCH_FILTER_SUBMIT', 'JSEARCH_FILTER_CLEAR'); +echo $r->inputFilterSearchLimit('JFIELD_PLG_SEARCH_SEARCHLIMIT_DESC', $this->pagination->getLimitBox()); +echo $r->selectFilterDirection('JFIELD_ORDERING_DESC', 'JGLOBAL_ORDER_ASCENDING', 'JGLOBAL_ORDER_DESCENDING', $listDirn); +echo $r->selectFilterSortBy('JGLOBAL_SORT_BY', $sortFields, $listOrder); +echo $r->endFilterBar(); + +echo $r->startTable('categoryList'); + +echo $r->startTblHeader(); + +//echo $r->thOrdering('JGRID_HEADING_ORDERING', $listDirn, $listOrder); +echo ''; +echo $r->thCheck('JGLOBAL_CHECK_ALL'); +echo ''.JHTML::_('grid.sort', $this->t['l'].'_TITLE', 'a.title', $listDirn, $listOrder ).''."\n"; +echo ''.JHTML::_('grid.sort', $this->t['l'].'_FILENAME', 'a.filename', $listDirn, $listOrder ).''."\n"; +echo ''.JHTML::_('grid.sort', $this->t['l'].'_DOWNLOADS', 'a.hits', $listDirn, $listOrder ).''."\n"; + +echo $r->endTblHeader(); + + +echo ''. "\n"; + +$color = 0; +$colors = array ( +'#FF8080','#FF9980','#FFB380','#FFC080','#FFCC80','#FFD980','#FFE680','#FFF280','#FFFF80','#E6FF80', +'#CCFF80','#99FF80','#80FF80','#80FFC9','#80FFFF','#80C9FF','#809FFF','#9191FF','#AA80FF','#B580FF', +'#D580FF','#FF80FF','#FF80DF','#FF80B8'); + +$originalOrders = array(); +$parentsStr = ""; +$j = 0; + +if (is_array($this->items)) { + foreach ($this->items as $i => $item) { + //if ($i >= (int)$this->pagination->limitstart && $j < (int)$this->pagination->limit) { + if ($item->textonly == 0) { + $j++; + + +$urlEdit = 'index.php?option='.$this->t['o'].'&task='.$this->t['task'].'.edit&id='; +$urlTask = 'index.php?option='.$this->t['o'].'&task='.$this->t['task']; +$orderkey = array_search($item->id, $this->ordering[0]); +$ordering = ($listOrder == 'a.ordering'); +$canCreate = $user->authorise('core.create', $this->t['o']); +$canEdit = $user->authorise('core.edit', $this->t['o']); +$canCheckin = $user->authorise('core.manage', 'com_checkin') || $item->checked_out==$user->get('id') || $item->checked_out==0; +$canChange = $user->authorise('core.edit.state', $this->t['o']) && $canCheckin; +$linkEdit = JRoute::_( $urlEdit. $item->id ); + + +$iD = $i % 2; +echo "\n\n"; +echo ''. "\n"; + +echo $r->tdOrder($canChange, $saveOrder, $orderkey); +echo $r->td(JHtml::_('grid.id', $i, $item->id), "small hidden-phone"); + +$checkO = ''; +if ($item->checked_out) { + $checkO .= JHtml::_('jgrid.checkedout', $i, $item->editor, $item->checked_out_time, $this->t['tasks'].'.', $canCheckin); +} +if ($canCreate || $canEdit) { + $checkO .= ''. $this->escape($item->title).''; +} else { + $checkO .= $this->escape($item->title); +} +$checkO .= '
('.JText::_($this->t['l'].'_FIELD_ALIAS_LABEL').':'. $this->escape($item->alias).')'; +echo $r->td($checkO, "small hidden-phone"); + +echo $r->td($item->filename); + + +if ((int)$this->maxandsum->maxhit == 0) { + $per = 0; + $perOutput = 0; +} else { + $per = round((int)$item->hits / (int)$this->maxandsum->maxhit * 500); + $perOutput = round((int)$item->hits / (int)$this->maxandsum->sumhit * 100); +} + +echo ''; +echo '
'; +// echo '['. $row->id .']'; +echo '
 '.$item->hits.' ('.$perOutput .' %)  
'; +echo '
'; +echo ''; + +$color++; +if ($color > 23) { + $color = 0; +} + + + +echo ''. "\n"; + } + //} + } +} +echo ''. "\n"; + +echo $r->tblFoot($this->pagination->getListFooter(), 5); +echo $r->endTable(); + +//echo $r->formInputs($listOrder, $originalOrders); +echo $r->formInputs($listOrder, $listDirn, $originalOrders); +echo $r->endMainContainer(); +echo $r->endForm(); +?> \ No newline at end of file diff --git a/packages/phocadownload/administrator/components/com_phocadownload/views/phocadownloadstat/tmpl/index.html b/packages/phocadownload/administrator/components/com_phocadownload/views/phocadownloadstat/tmpl/index.html new file mode 100644 index 00000000..fa6d84e8 --- /dev/null +++ b/packages/phocadownload/administrator/components/com_phocadownload/views/phocadownloadstat/tmpl/index.html @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/phocadownload/administrator/components/com_phocadownload/views/phocadownloadstat/view.html.php b/packages/phocadownload/administrator/components/com_phocadownload/views/phocadownloadstat/view.html.php new file mode 100644 index 00000000..c40c5915 --- /dev/null +++ b/packages/phocadownload/administrator/components/com_phocadownload/views/phocadownloadstat/view.html.php @@ -0,0 +1,66 @@ +t = PhocaDownloadUtils::setVars('stat'); + $this->items = $this->get('Items'); + $this->pagination = $this->get('Pagination'); + $this->state = $this->get('State'); + $this->maxandsum = $this->get('MaxAndSum'); + + foreach ($this->items as &$item) { + if ($item->textonly == 0) { + $this->ordering[0][] = $item->id; + } + } + + JHTML::stylesheet( $this->t['s'] ); + + if (count($errors = $this->get('Errors'))) { + JError::raiseError(500, implode("\n", $errors)); + return false; + } + + $this->addToolbar(); + parent::display($tpl); + } + + function addToolbar() { + require_once JPATH_COMPONENT.'/helpers/'.$this->t['task'].'.php'; + $class = ucfirst($this->t['task']).'Helper'; + $canDo = $class::getActions($this->t); + JToolBarHelper::title( JText::_( $this->t['l'].'_STATISTICS' ), 'chart' ); + JToolBarHelper::custom($this->t['task'].'.back', 'home-2', '', $this->t['l'].'_CONTROL_PANEL', false); + // JToolBarHelper::cancel($this->t['task'].'.cancel', 'JTOOLBAR_CLOSE'); + JToolBarHelper::divider(); + JToolBarHelper::help( 'screen.'.$this->t['c'], true ); + } + + protected function getSortFields() { + return array( + 'a.ordering' => JText::_('JGRID_HEADING_ORDERING'), + 'a.title' => JText::_($this->t['l'] . '_TITLE'), + 'a.filename' => JText::_($this->t['l'] . '_FILENAME'), + 'a.hits' => JText::_($this->t['l'] . '_DOWNLOADS'), + 'a.id' => JText::_('JGRID_HEADING_ID') + ); + } +} +?> \ No newline at end of file diff --git a/packages/phocadownload/administrator/components/com_phocadownload/views/phocadownloadstyle/index.html b/packages/phocadownload/administrator/components/com_phocadownload/views/phocadownloadstyle/index.html new file mode 100644 index 00000000..fa6d84e8 --- /dev/null +++ b/packages/phocadownload/administrator/components/com_phocadownload/views/phocadownloadstyle/index.html @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/phocadownload/administrator/components/com_phocadownload/views/phocadownloadstyle/tmpl/edit.php b/packages/phocadownload/administrator/components/com_phocadownload/views/phocadownloadstyle/tmpl/edit.php new file mode 100644 index 00000000..fe0e441c --- /dev/null +++ b/packages/phocadownload/administrator/components/com_phocadownload/views/phocadownloadstyle/tmpl/edit.php @@ -0,0 +1,81 @@ +t['n'] . 'RenderAdminView'; +$r = new $class(); + +?> +startForm($this->t['o'], $this->t['task'], $this->item->id, 'adminForm', 'adminForm'); +// First Column +echo '
'; +$tabs = array ( +'general' => JText::_($this->t['l'].'_GENERAL_OPTIONS'), +'publishing' => JText::_($this->t['l'].'_PUBLISHING_OPTIONS')); +echo $r->navigation($tabs); + +echo '
'. "\n"; + +echo '
'."\n"; + +if ($this->ftp) { echo $this->loadTemplate('ftp');} + +//$formArray = array ('title', 'type', 'filename', 'ordering'); +//echo $r->group($this->form, $formArray); + +echo '
'; +echo $r->item($this->form, 'title'); +echo $this->form->getInput('type'); +echo $r->item($this->form, 'typeoutput'); +echo $r->item($this->form, 'filename', $this->t['ssuffixtype']); +echo $r->item($this->form, 'ordering'); + +echo '
'; + +echo '
'; +echo $this->form->getLabel('source'); +echo '
'; +echo '
'; +echo $this->form->getInput('source'); +echo '
'; + +echo '
'. "\n"; + +echo '
'."\n"; +foreach($this->form->getFieldset('publish') as $field) { + echo '
'; + if (!$field->hidden) { + echo '
'.$field->label.'
'; + } + echo '
'; + echo $field->input; + echo '
'; +} +echo '
'; + +// Second Column +echo '
';//end span2 +echo $r->formInputs(); +echo $r->endForm(); +?> \ No newline at end of file diff --git a/packages/phocadownload/administrator/components/com_phocadownload/views/phocadownloadstyle/tmpl/edit_ftp.php b/packages/phocadownload/administrator/components/com_phocadownload/views/phocadownloadstyle/tmpl/edit_ftp.php new file mode 100644 index 00000000..3b1114a6 --- /dev/null +++ b/packages/phocadownload/administrator/components/com_phocadownload/views/phocadownloadstyle/tmpl/edit_ftp.php @@ -0,0 +1,41 @@ + +
+ + + + + ftp instanceof Exception): ?> +

ftp->message); ?>

+ + + + + + + + + + + + + +
+ + + +
+ + + +
+
diff --git a/packages/phocadownload/administrator/components/com_phocadownload/views/phocadownloadstyle/tmpl/index.html b/packages/phocadownload/administrator/components/com_phocadownload/views/phocadownloadstyle/tmpl/index.html new file mode 100644 index 00000000..fa6d84e8 --- /dev/null +++ b/packages/phocadownload/administrator/components/com_phocadownload/views/phocadownloadstyle/tmpl/index.html @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/phocadownload/administrator/components/com_phocadownload/views/phocadownloadstyle/view.html.php b/packages/phocadownload/administrator/components/com_phocadownload/views/phocadownloadstyle/view.html.php new file mode 100644 index 00000000..6a0cfae7 --- /dev/null +++ b/packages/phocadownload/administrator/components/com_phocadownload/views/phocadownloadstyle/view.html.php @@ -0,0 +1,89 @@ +t = PhocaDownloadUtils::setVars('style'); + JHTML::stylesheet( $this->t['s'] ); + + $this->state = $this->get('State'); + $this->item = $this->get('Item'); + $this->form = $this->get('Form'); + $this->ftp = JClientHelper::setCredentialsFromRequest('ftp'); + $model = $this->getModel(); + + // Set CSS for codemirror + JFactory::getApplication()->setUserState('editor.source.syntax', 'css'); + + + // New or edit + if (!$this->form->getValue('id') || $this->form->getValue('id') == 0) { + $this->form->setValue('source', null, ''); + $this->form->setValue('type', null, 2); + $this->t['ssuffixtype'] = JText::_($this->t['l'].'_WILL_BE_CREATED_FROM_TITLE'); + + } else { + $this->source = $model->getSource($this->form->getValue('id'), $this->form->getValue('filename'), $this->form->getValue('type')); + $this->form->setValue('source', null, $this->source->source); + $this->t['ssuffixtype'] = ''; + } + + // Only help input form field - to display Main instead of 1 and Custom instead of 2 + if ($this->form->getValue('type') == 1) { + $this->form->setValue('typeoutput', null, JText::_($this->t['l'].'_MAIN_CSS')); + } else { + $this->form->setValue('typeoutput', null, JText::_($this->t['l'].'_CUSTOM_CSS')); + } + + if (count($errors = $this->get('Errors'))) { + JError::raiseError(500, implode("\n", $errors)); + return false; + } + + $this->addToolbar(); + parent::display($tpl); + } + + protected function addToolbar() { + + require_once JPATH_COMPONENT.'/helpers/'.$this->t['tasks'].'.php'; + JRequest::setVar('hidemainmenu', true); + $bar = JToolBar::getInstance('toolbar'); + $user = JFactory::getUser(); + $isNew = ($this->item->id == 0); + $checkedOut = !($this->item->checked_out == 0 || $this->item->checked_out == $user->get('id')); + $class = ucfirst($this->t['tasks']).'Helper'; + $canDo = $class::getActions($this->t, $this->state->get('filter.category_id')); + + $text = $isNew ? JText::_( $this->t['l'] . '_NEW' ) : JText::_($this->t['l'] . '_EDIT'); + JToolBarHelper::title( JText::_( $this->t['l'] . '_STYLE' ).': [ ' . $text.' ]' , 'eye'); + + // If not checked out, can save the item. + if (!$checkedOut && $canDo->get('core.edit')){ + JToolBarHelper::apply($this->t['task'].'.apply', 'JTOOLBAR_APPLY'); + JToolBarHelper::save($this->t['task'].'.save', 'JTOOLBAR_SAVE'); + } + + JToolBarHelper::cancel($this->t['task'].'.cancel', 'JTOOLBAR_CLOSE'); + JToolBarHelper::divider(); + JToolBarHelper::help( 'screen.'.$this->t['c'], true ); + } + +} +?> diff --git a/packages/phocadownload/administrator/components/com_phocadownload/views/phocadownloadstyles/index.html b/packages/phocadownload/administrator/components/com_phocadownload/views/phocadownloadstyles/index.html new file mode 100644 index 00000000..fa6d84e8 --- /dev/null +++ b/packages/phocadownload/administrator/components/com_phocadownload/views/phocadownloadstyles/index.html @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/phocadownload/administrator/components/com_phocadownload/views/phocadownloadstyles/tmpl/default.php b/packages/phocadownload/administrator/components/com_phocadownload/views/phocadownloadstyles/tmpl/default.php new file mode 100644 index 00000000..1ca1ee60 --- /dev/null +++ b/packages/phocadownload/administrator/components/com_phocadownload/views/phocadownloadstyles/tmpl/default.php @@ -0,0 +1,149 @@ +t['n'] . 'RenderAdminViews'; +$r = new $class(); + +$user = JFactory::getUser(); +$userId = $user->get('id'); +$listOrder = $this->escape($this->state->get('list.ordering')); +$listDirn = $this->escape($this->state->get('list.direction')); +$canOrder = $user->authorise('core.edit.state', $this->t['o']); +$saveOrder = $listOrder == 'a.ordering'; +if ($saveOrder) { + $saveOrderingUrl = 'index.php?option='.$this->t['o'].'&task='.$this->t['tasks'].'.saveOrderAjax&tmpl=component'; + JHtml::_('sortablelist.sortable', 'categoryList', 'adminForm', strtolower($listDirn), $saveOrderingUrl, false, true); +} +$sortFields = $this->getSortFields(); + + +echo $r->jsJorderTable($listOrder); + +echo $r->startForm($this->t['o'], $this->t['tasks'], 'adminForm'); +echo $r->startFilter(); +echo $r->endFilter(); + +echo $r->startMainContainer(); +echo $r->startFilterBar(); +echo $r->inputFilterSearch($this->t['l'].'_FILTER_SEARCH_LABEL', $this->t['l'].'_FILTER_SEARCH_DESC', + $this->escape($this->state->get('filter.search'))); +echo $r->inputFilterSearchClear('JSEARCH_FILTER_SUBMIT', 'JSEARCH_FILTER_CLEAR'); +echo $r->inputFilterSearchLimit('JFIELD_PLG_SEARCH_SEARCHLIMIT_DESC', $this->pagination->getLimitBox()); +echo $r->selectFilterDirection('JFIELD_ORDERING_DESC', 'JGLOBAL_ORDER_ASCENDING', 'JGLOBAL_ORDER_DESCENDING', $listDirn); +echo $r->selectFilterSortBy('JGLOBAL_SORT_BY', $sortFields, $listOrder); + +echo $r->startFilterBar(2); +echo $r->selectFilterPublished('JOPTION_SELECT_PUBLISHED', $this->state->get('filter.state')); +echo $r->selectFilterLanguage('JOPTION_SELECT_LANGUAGE', $this->state->get('filter.language')); +echo $r->selectFilterCategory(PhocaDownloadCategory::options(1), $this->t['l'].'_FILTER_SELECT_TYPE', $this->state->get('filter.category_id')); +echo $r->endFilterBar(); + + +echo $r->endFilterBar(); + +echo $r->startTable('categoryList'); + +echo $r->startTblHeader(); + +echo $r->thOrdering('JGRID_HEADING_ORDERING', $listDirn, $listOrder); +echo $r->thCheck('JGLOBAL_CHECK_ALL'); +echo ''.JHTML::_('grid.sort', $this->t['l'].'_TITLE', 'a.title', $listDirn, $listOrder ).''."\n"; +echo ''.JHTML::_('grid.sort', $this->t['l'].'_FILENAME', 'a.title', $listDirn, $listOrder ).''."\n"; +echo ''.JHTML::_('grid.sort', $this->t['l'].'_PUBLISHED', 'a.published', $listDirn, $listOrder ).''."\n"; +echo ''.JHTML::_('grid.sort', $this->t['l'].'_TYPE', 'a.type', $listDirn, $listOrder ).''."\n"; +echo ''.JHTML::_('grid.sort', 'JGRID_HEADING_LANGUAGE', 'a.language', $listDirn, $listOrder ).''."\n"; +echo ''.JHTML::_('grid.sort', $this->t['l'].'_ID', 'a.id', $listDirn, $listOrder ).''."\n"; + +echo $r->endTblHeader(); + +echo ''. "\n"; + +$originalOrders = array(); +$j = 0; + +if (is_array($this->items)) { + foreach ($this->items as $i => $item) { + //if ($i >= (int)$this->pagination->limitstart && $j < (int)$this->pagination->limit) { + $j++; + +$urlEdit = 'index.php?option='.$this->t['o'].'&task='.$this->t['task'].'.edit&id='; +$urlTask = 'index.php?option='.$this->t['o'].'&task='.$this->t['task']; +$orderkey = array_search($item->id, $this->ordering[$item->type]); +$ordering = ($listOrder == 'a.ordering'); +$canCreate = $user->authorise('core.create', $this->t['o']); +$canEdit = $user->authorise('core.edit', $this->t['o']); +$canCheckin = $user->authorise('core.manage', 'com_checkin') || $item->checked_out==$user->get('id') || $item->checked_out==0; +$canChange = $user->authorise('core.edit.state', $this->t['o']) && $canCheckin; +$linkEdit = JRoute::_( $urlEdit. $item->id ); + +$iD = $i % 2; +echo "\n\n"; +//echo ''. "\n"; +echo ''. "\n"; +echo $r->tdOrder($canChange, $saveOrder, $orderkey); +echo $r->td(JHtml::_('grid.id', $i, $item->id), "small hidden-phone"); + + +$checkO = ''; +if ($item->checked_out) { + $checkO .= JHtml::_('jgrid.checkedout', $i, $item->editor, $item->checked_out_time, $this->t['tasks'].'.', $canCheckin); +} +if ($canCreate || $canEdit) { + $checkO .= ''. $this->escape($item->title).''; +} else { + $checkO .= $this->escape($item->title); +} + +echo $r->td($checkO, "small hidden-phone"); + +$filename = PhocaDownloadFile::existsCss($item->filename, $item->type); +$main = ''; +if ((int)$item->type == 1) { + $main = ' '.JText::_($this->t['l'].'_MAIN').''; +} +if ($filename) { + echo $r->td($item->filename . $main .' '.JText::_($this->t['l'].'_FILE_EXISTS').'', "small hidden-phone"); +} else { + echo $r->td($item->filename . $main .' '.JText::_($this->t['l'].'_FILE_DOES_NOT_EXIST').'', "small hidden-phone"); +} + +echo $r->td(JHtml::_('jgrid.published', $item->published, $i, $this->t['tasks'].'.', $canChange), "small hidden-phone"); + +switch($item->type) { + case 2: + echo $r->td(JText::_($this->t['l'].'_CUSTOM_CSS'), "small hidden-phone"); + break; + case 1: + default: + echo $r->td(JText::_($this->t['l'].'_MAIN_CSS'), "small hidden-phone"); + break; +} +echo $r->tdLanguage($item->language, $item->language_title, $this->escape($item->language_title)); +echo $r->td($item->id, "small hidden-phone"); + +echo ''. "\n"; + + //} + } +} +echo ''. "\n"; + +echo $r->tblFoot($this->pagination->getListFooter(), 15); +echo $r->endTable(); + +//echo $r->formInputs($listOrder, $originalOrders); +echo $r->formInputs($listOrder, $listDirn, $originalOrders); +echo $r->endMainContainer(); +echo $r->endForm(); +?> \ No newline at end of file diff --git a/packages/phocadownload/administrator/components/com_phocadownload/views/phocadownloadstyles/tmpl/index.html b/packages/phocadownload/administrator/components/com_phocadownload/views/phocadownloadstyles/tmpl/index.html new file mode 100644 index 00000000..fa6d84e8 --- /dev/null +++ b/packages/phocadownload/administrator/components/com_phocadownload/views/phocadownloadstyles/tmpl/index.html @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/phocadownload/administrator/components/com_phocadownload/views/phocadownloadstyles/view.html.php b/packages/phocadownload/administrator/components/com_phocadownload/views/phocadownloadstyles/view.html.php new file mode 100644 index 00000000..94e55bd1 --- /dev/null +++ b/packages/phocadownload/administrator/components/com_phocadownload/views/phocadownloadstyles/view.html.php @@ -0,0 +1,88 @@ +t = PhocaDownloadUtils::setVars('style'); + $model = $this->getModel(); + $model->checkItems(); + $this->items = $this->get('Items'); + $this->pagination = $this->get('Pagination'); + $this->state = $this->get('State'); + + JHTML::stylesheet( $this->t['s'] ); + + foreach ($this->items as &$item) { + $this->ordering[$item->type][] = $item->id; + } + + // Check for errors. + if (count($errors = $this->get('Errors'))) { + JError::raiseError(500, implode("\n", $errors)); + return false; + } + + $this->addToolbar(); + parent::display($tpl); + + } + + function addToolbar() { + + require_once JPATH_COMPONENT.'/helpers/'.$this->t['tasks'].'.php'; + $state = $this->get('State'); + $class = ucfirst($this->t['tasks']).'Helper'; + $canDo = $class::getActions($this->t, $state->get('filter.category_id')); + + JToolBarHelper::title( JText::_( $this->t['l'].'_STYLES' ), 'eye' ); + + if ($canDo->get('core.create')) { + JToolBarHelper::addNew( $this->t['task'].'.add','JTOOLBAR_NEW'); + } + + if ($canDo->get('core.edit')) { + JToolBarHelper::editList($this->t['task'].'.edit','JTOOLBAR_EDIT'); + } + if ($canDo->get('core.edit.state')) { + + JToolBarHelper::divider(); + JToolBarHelper::custom($this->t['tasks'].'.publish', 'publish.png', 'publish_f2.png','JTOOLBAR_PUBLISH', true); + JToolBarHelper::custom($this->t['tasks'].'.unpublish', 'unpublish.png', 'unpublish_f2.png', 'JTOOLBAR_UNPUBLISH', true); + } + + if ($canDo->get('core.delete')) { + JToolBarHelper::deleteList( JText::_( $this->t['l'].'_WARNING_DELETE_ITEMS' ), $this->t['tasks'].'.delete', $this->t['l'].'_DELETE'); + } + JToolBarHelper::divider(); + JToolBarHelper::help( 'screen.'.$this->t['c'], true ); + } + + protected function getSortFields() { + return array( + 'a.ordering' => JText::_('JGRID_HEADING_ORDERING'), + 'a.title' => JText::_($this->t['l'] . '_TITLE'), + 'a.filename' => JText::_($this->t['l'] . '_FILENAME'), + 'a.published' => JText::_($this->t['l'] . '_PUBLISHED'), + 'a.type' => JText::_($this->t['l'] . '_TYPE'), + 'language' => JText::_('JGRID_HEADING_LANGUAGE'), + 'a.id' => JText::_('JGRID_HEADING_ID') + ); + } +} +?> \ No newline at end of file diff --git a/packages/phocadownload/administrator/components/com_phocadownload/views/phocadownloadtag/index.html b/packages/phocadownload/administrator/components/com_phocadownload/views/phocadownloadtag/index.html new file mode 100644 index 00000000..fa6d84e8 --- /dev/null +++ b/packages/phocadownload/administrator/components/com_phocadownload/views/phocadownloadtag/index.html @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/phocadownload/administrator/components/com_phocadownload/views/phocadownloadtag/tmpl/edit.php b/packages/phocadownload/administrator/components/com_phocadownload/views/phocadownloadtag/tmpl/edit.php new file mode 100644 index 00000000..b6f8514c --- /dev/null +++ b/packages/phocadownload/administrator/components/com_phocadownload/views/phocadownloadtag/tmpl/edit.php @@ -0,0 +1,57 @@ +t['n'] . 'RenderAdminView'; +$r = new $class(); +?> +startForm($this->t['o'], $this->t['task'], $this->item->id, 'adminForm', 'adminForm'); +// First Column +echo '
'; +$tabs = array ( +'general' => JText::_($this->t['l'].'_GENERAL_OPTIONS'), +'publishing' => JText::_($this->t['l'].'_PUBLISHING_OPTIONS')); +echo $r->navigation($tabs); + +echo '
'. "\n"; + +echo '
'."\n"; +$formArray = array ('title', 'alias', 'link_ext', 'link_cat', 'ordering'); +echo $r->group($this->form, $formArray); +$formArray = array('description'); +echo $r->group($this->form, $formArray, 1); +echo '
'. "\n"; + +echo '
'."\n"; +foreach($this->form->getFieldset('publish') as $field) { + echo '
'; + if (!$field->hidden) { + echo '
'.$field->label.'
'; + } + echo '
'; + echo $field->input; + echo '
'; +} +echo '
'; + +echo '
';//end tab content +echo '
';//end span10 +// Second Column +echo '
';//end span2 +echo $r->formInputs(); +echo $r->endForm(); +?> + diff --git a/packages/phocadownload/administrator/components/com_phocadownload/views/phocadownloadtag/tmpl/index.html b/packages/phocadownload/administrator/components/com_phocadownload/views/phocadownloadtag/tmpl/index.html new file mode 100644 index 00000000..fa6d84e8 --- /dev/null +++ b/packages/phocadownload/administrator/components/com_phocadownload/views/phocadownloadtag/tmpl/index.html @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/phocadownload/administrator/components/com_phocadownload/views/phocadownloadtag/view.html.php b/packages/phocadownload/administrator/components/com_phocadownload/views/phocadownloadtag/view.html.php new file mode 100644 index 00000000..acb1b6eb --- /dev/null +++ b/packages/phocadownload/administrator/components/com_phocadownload/views/phocadownloadtag/view.html.php @@ -0,0 +1,64 @@ +t = PhocaDownloadUtils::setVars('tag'); + $this->state = $this->get('State'); + $this->form = $this->get('Form'); + $this->item = $this->get('Item'); + + JHTML::stylesheet( $this->t['s'] ); + + $this->addToolbar(); + parent::display($tpl); + } + + protected function addToolbar() { + + require_once JPATH_COMPONENT.'/helpers/'.$this->t['tasks'].'.php'; + JRequest::setVar('hidemainmenu', true); + $bar = JToolBar::getInstance('toolbar'); + $user = JFactory::getUser(); + $isNew = ($this->item->id == 0); + $checkedOut = !($this->item->checked_out == 0 || $this->item->checked_out == $user->get('id')); + $class = ucfirst($this->t['tasks']).'Helper'; + $canDo = $class::getActions($this->t, $this->state->get('filter.tag_id')); + + $text = $isNew ? JText::_( $this->t['l'] . '_NEW' ) : JText::_($this->t['l'] . '_EDIT'); + JToolBarHelper::title( JText::_( $this->t['l'] . '_TAG' ).': [ ' . $text.' ]' , 'tags'); + + // If not checked out, can save the item. + if (!$checkedOut && $canDo->get('core.edit')){ + JToolBarHelper::apply($this->t['task'].'.apply', 'JTOOLBAR_APPLY'); + JToolBarHelper::save($this->t['task'].'.save', 'JTOOLBAR_SAVE'); + JToolBarHelper::addNew($this->t['task'].'.save2new', 'JTOOLBAR_SAVE_AND_NEW'); + } + + if (empty($this->item->id)) { + JToolBarHelper::cancel($this->t['task'].'.cancel', 'JTOOLBAR_CANCEL'); + } + else { + JToolBarHelper::cancel($this->t['task'].'.cancel', 'JTOOLBAR_CLOSE'); + } + + JToolBarHelper::divider(); + JToolBarHelper::help( 'screen.'.$this->t['c'], true ); + } +} +?> diff --git a/packages/phocadownload/administrator/components/com_phocadownload/views/phocadownloadtags/index.html b/packages/phocadownload/administrator/components/com_phocadownload/views/phocadownloadtags/index.html new file mode 100644 index 00000000..fa6d84e8 --- /dev/null +++ b/packages/phocadownload/administrator/components/com_phocadownload/views/phocadownloadtags/index.html @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/phocadownload/administrator/components/com_phocadownload/views/phocadownloadtags/tmpl/default.php b/packages/phocadownload/administrator/components/com_phocadownload/views/phocadownloadtags/tmpl/default.php new file mode 100644 index 00000000..32f85d02 --- /dev/null +++ b/packages/phocadownload/administrator/components/com_phocadownload/views/phocadownloadtags/tmpl/default.php @@ -0,0 +1,130 @@ +t['n'] . 'RenderAdminViews'; +$r = new $class(); +$user = JFactory::getUser(); +$userId = $user->get('id'); +$listOrder = $this->escape($this->state->get('list.ordering')); +$listDirn = $this->escape($this->state->get('list.direction')); +$canOrder = $user->authorise('core.edit.state', $this->t['o']); +$saveOrder = $listOrder == 'a.ordering'; +if ($saveOrder) { + $saveOrderingUrl = 'index.php?option='.$this->t['o'].'&task='.$this->t['tasks'].'.saveOrderAjax&tmpl=component'; + JHtml::_('sortablelist.sortable', 'categoryList', 'adminForm', strtolower($listDirn), $saveOrderingUrl, false, true); +} +$sortFields = $this->getSortFields(); + +echo $r->jsJorderTable($listOrder); + +if (isset($this->tmpl['notapproved']->count) && (int)$this->tmpl['notapproved']->count > 0 ) { + echo '
×'.JText::_($this->t['l'].'_NOT_APPROVED_FILES_COUNT').': ' + .(int)$this->tmpl['notapproved']->count.'
'; +} + +echo $r->startForm($this->t['o'], $this->t['tasks'], 'adminForm'); +echo $r->startFilter(); +echo $r->endFilter(); + +echo $r->startMainContainer(); +echo $r->startFilterBar(); +echo $r->inputFilterSearch($this->t['l'].'_FILTER_SEARCH_LABEL', $this->t['l'].'_FILTER_SEARCH_DESC', + $this->escape($this->state->get('filter.search'))); +echo $r->inputFilterSearchClear('JSEARCH_FILTER_SUBMIT', 'JSEARCH_FILTER_CLEAR'); +echo $r->inputFilterSearchLimit('JFIELD_PLG_SEARCH_SEARCHLIMIT_DESC', $this->pagination->getLimitBox()); +echo $r->selectFilterDirection('JFIELD_ORDERING_DESC', 'JGLOBAL_ORDER_ASCENDING', 'JGLOBAL_ORDER_DESCENDING', $listDirn); +echo $r->selectFilterSortBy('JGLOBAL_SORT_BY', $sortFields, $listOrder); + +echo $r->startFilterBar(2); +echo $r->selectFilterPublished('JOPTION_SELECT_PUBLISHED', $this->state->get('filter.state')); +//echo $r->selectFilterLanguage('JOPTION_SELECT_LANGUAGE', $this->state->get('filter.language')); +//echo $r->selectFilterCategory(PhocaDownloadCategory::options($this->t['o']), 'JOPTION_SELECT_CATEGORY', $this->state->get('filter.category_id')); +echo $r->endFilterBar(); + + +echo $r->endFilterBar(); + +echo $r->startTable('categoryList'); + +echo $r->startTblHeader(); + +echo $r->thOrdering('JGRID_HEADING_ORDERING', $listDirn, $listOrder); +echo $r->thCheck('JGLOBAL_CHECK_ALL'); +echo ''.JHTML::_('grid.sort', $this->t['l'].'_TITLE', 'a.title', $listDirn, $listOrder ).''."\n"; +echo ''.JHTML::_('grid.sort', $this->t['l'].'_PUBLISHED', 'a.published', $listDirn, $listOrder ).''."\n"; +echo ''.JHTML::_('grid.sort', $this->t['l'].'_ID', 'a.id', $listDirn, $listOrder ).''."\n"; + +echo $r->endTblHeader(); + +echo ''. "\n"; + +$originalOrders = array(); +$parentsStr = ""; +$j = 0; + +if (is_array($this->items)) { + foreach ($this->items as $i => $item) { + //if ($i >= (int)$this->pagination->limitstart && $j < (int)$this->pagination->limit) { + $j++; + +$urlEdit = 'index.php?option='.$this->t['o'].'&task='.$this->t['task'].'.edit&id='; +$urlTask = 'index.php?option='.$this->t['o'].'&task='.$this->t['task']; +$orderkey = array_search($item->id, $this->ordering[0]); +$ordering = ($listOrder == 'a.ordering'); +$canCreate = $user->authorise('core.create', $this->t['o']); +$canEdit = $user->authorise('core.edit', $this->t['o']); +$canCheckin = $user->authorise('core.manage', 'com_checkin') || $item->checked_out==$user->get('id') || $item->checked_out==0; +$canChange = $user->authorise('core.edit.state', $this->t['o']) && $canCheckin; +$linkEdit = JRoute::_( $urlEdit. $item->id ); + + + +$iD = $i % 2; +echo "\n\n"; +echo ''. "\n"; + +echo $r->tdOrder($canChange, $saveOrder, $orderkey); +echo $r->td(JHtml::_('grid.id', $i, $item->id), "small hidden-phone"); + +$checkO = ''; +if ($item->checked_out) { + $checkO .= JHtml::_('jgrid.checkedout', $i, $item->editor, $item->checked_out_time, $this->t['tasks'].'.', $canCheckin); +} +if ($canCreate || $canEdit) { + $checkO .= ''. $this->escape($item->title).''; +} else { + $checkO .= $this->escape($item->title); +} +$checkO .= ' ('.JText::_($this->t['l'].'_FIELD_ALIAS_LABEL').':'. $this->escape($item->alias).')'; +echo $r->td($checkO, "small hidden-phone"); + +echo $r->td(JHtml::_('jgrid.published', $item->published, $i, $this->t['tasks'].'.', $canChange), "small hidden-phone"); + +echo $r->td($item->id, "small hidden-phone"); + +echo ''. "\n"; + + //} + } +} +echo ''. "\n"; + +echo $r->tblFoot($this->pagination->getListFooter(), 5); +echo $r->endTable(); + +//echo $r->formInputs($listOrder, $originalOrders); +echo $r->formInputs($listOrder, $listDirn, $originalOrders); +echo $r->endMainContainer(); +echo $r->endForm(); +?> \ No newline at end of file diff --git a/packages/phocadownload/administrator/components/com_phocadownload/views/phocadownloadtags/tmpl/index.html b/packages/phocadownload/administrator/components/com_phocadownload/views/phocadownloadtags/tmpl/index.html new file mode 100644 index 00000000..fa6d84e8 --- /dev/null +++ b/packages/phocadownload/administrator/components/com_phocadownload/views/phocadownloadtags/tmpl/index.html @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/phocadownload/administrator/components/com_phocadownload/views/phocadownloadtags/view.html.php b/packages/phocadownload/administrator/components/com_phocadownload/views/phocadownloadtags/view.html.php new file mode 100644 index 00000000..21d0bbb6 --- /dev/null +++ b/packages/phocadownload/administrator/components/com_phocadownload/views/phocadownloadtags/view.html.php @@ -0,0 +1,83 @@ +t = PhocaDownloadUtils::setVars('tag'); + $this->items = $this->get('Items'); + $this->pagination = $this->get('Pagination'); + $this->state = $this->get('State'); + + // Check for errors. + if (count($errors = $this->get('Errors'))) { + JError::raiseError(500, implode("\n", $errors)); + return false; + } + + // Preprocess the list of items to find ordering divisions. + foreach ($this->items as &$item) { + $this->ordering[0][] = $item->id; + } + + JHTML::stylesheet( $this->t['s'] ); + + $this->addToolbar(); + parent::display($tpl); + + } + + function addToolbar() { + + require_once JPATH_COMPONENT.'/helpers/'.$this->t['tasks'].'.php'; + $state = $this->get('State'); + $class = ucfirst($this->t['tasks']).'Helper'; + $canDo = $class::getActions($this->t, $state->get('filter.tag_id')); + + JToolBarHelper::title( JText::_( $this->t['l'].'_TAGS' ), 'tags' ); + + if ($canDo->get('core.create')) { + JToolBarHelper::addNew($this->t['task'].'.add','JTOOLBAR_NEW'); + } + + if ($canDo->get('core.edit')) { + JToolBarHelper::editList($this->t['task'].'.edit','JTOOLBAR_EDIT'); + } + if ($canDo->get('core.edit.state')) { + + JToolBarHelper::divider(); + JToolBarHelper::custom($this->t['tasks'].'.publish', 'publish.png', 'publish_f2.png','JTOOLBAR_PUBLISH', true); + JToolBarHelper::custom($this->t['tasks'].'.unpublish', 'unpublish.png', 'unpublish_f2.png', 'JTOOLBAR_UNPUBLISH', true); + } + + if ($canDo->get('core.delete')) { + JToolBarHelper::deleteList( $this->t['l'].'_WARNING_DELETE_ITEMS', 'phocadownloadtags.delete', $this->t['l'].'_DELETE'); + } + JToolBarHelper::divider(); + JToolBarHelper::help( 'screen.'.$this->t['c'], true ); + } + + protected function getSortFields() { + return array( + 'a.ordering' => JText::_('JGRID_HEADING_ORDERING'), + 'a.title' => JText::_($this->t['l'] . '_TITLE'), + 'a.published' => JText::_($this->t['l'] . '_PUBLISHED'), + 'a.id' => JText::_('JGRID_HEADING_ID') + ); + } +} +?> \ No newline at end of file diff --git a/packages/phocadownload/administrator/components/com_phocadownload/views/phocadownloaduploads/index.html b/packages/phocadownload/administrator/components/com_phocadownload/views/phocadownloaduploads/index.html new file mode 100644 index 00000000..fa6d84e8 --- /dev/null +++ b/packages/phocadownload/administrator/components/com_phocadownload/views/phocadownloaduploads/index.html @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/phocadownload/administrator/components/com_phocadownload/views/phocadownloaduploads/tmpl/default.php b/packages/phocadownload/administrator/components/com_phocadownload/views/phocadownloaduploads/tmpl/default.php new file mode 100644 index 00000000..b868ad5a --- /dev/null +++ b/packages/phocadownload/administrator/components/com_phocadownload/views/phocadownloaduploads/tmpl/default.php @@ -0,0 +1,137 @@ +t['n'] . 'RenderAdminViews'; +$r = new $class(); +$user = JFactory::getUser(); +$userId = $user->get('id'); +$listOrder = $this->escape($this->state->get('list.ordering')); +$listDirn = $this->escape($this->state->get('list.direction')); +$canOrder = $user->authorise('core.edit.state', $this->t['o']); +$saveOrder = $listOrder == 'a.ordering'; +if ($saveOrder) { + $saveOrderingUrl = 'index.php?option='.$this->t['o'].'&task='.$this->t['tasks'].'.saveOrderAjax&tmpl=component'; + JHtml::_('sortablelist.sortable', 'categoryList', 'adminForm', strtolower($listDirn), $saveOrderingUrl, false, true); +} +$sortFields = $this->getSortFields(); + +echo $r->jsJorderTable($listOrder); + +if (isset($this->tmpl['notapproved']->count) && (int)$this->tmpl['notapproved']->count > 0 ) { + echo '
×'.JText::_($this->t['l'].'_NOT_APPROVED_FILES_COUNT').': ' + .(int)$this->tmpl['notapproved']->count.'
'; +} + +echo $r->startForm($this->t['o'], $this->t['tasks'], 'adminForm'); +echo $r->startFilter(); +echo $r->endFilter(); + +echo $r->startMainContainer(); +echo $r->startFilterBar(); +echo $r->inputFilterSearch($this->t['l'].'_FILTER_SEARCH_LABEL', $this->t['l'].'_FILTER_SEARCH_DESC', + $this->escape($this->state->get('filter.search'))); +echo $r->inputFilterSearchClear('JSEARCH_FILTER_SUBMIT', 'JSEARCH_FILTER_CLEAR'); +echo $r->inputFilterSearchLimit('JFIELD_PLG_SEARCH_SEARCHLIMIT_DESC', $this->pagination->getLimitBox()); +echo $r->selectFilterDirection('JFIELD_ORDERING_DESC', 'JGLOBAL_ORDER_ASCENDING', 'JGLOBAL_ORDER_DESCENDING', $listDirn); +echo $r->selectFilterSortBy('JGLOBAL_SORT_BY', $sortFields, $listOrder); + +echo $r->startFilterBar(2); +echo $r->selectFilterPublished('JOPTION_SELECT_PUBLISHED', $this->state->get('filter.state')); +echo $r->endFilterBar(); + + +echo $r->endFilterBar(); + +echo $r->startTable('categoryList'); + +echo $r->startTblHeader(); + +echo '';//$r->thOrdering('JGRID_HEADING_ORDERING', $listDirn, $listOrder); +echo $r->thCheck('JGLOBAL_CHECK_ALL'); +echo ''.JHTML::_('grid.sort', $this->t['l'].'_USER', 'username', $listDirn, $listOrder ).''."\n"; +echo ''.JText::_('COM_PHOCADOWNLOAD_COUNT_USER_FILES_APPROVED').''."\n"; +echo ''.JText::_('COM_PHOCADOWNLOAD_COUNT_USER_FILES_NOT_APPROVED').''."\n"; + +//echo ''.JHTML::_('grid.sort', $this->t['l'].'_ID', 'a.id', $listDirn, $listOrder ).''."\n"; + +echo $r->endTblHeader(); + +echo ''. "\n"; + +$originalOrders = array(); +$parentsStr = ""; +$j = 0; + +if (is_array($this->items)) { + foreach ($this->items as $i => $item) { + //if ($i >= (int)$this->pagination->limitstart && $j < (int)$this->pagination->limit) { + $j++; +/* +$urlEdit = 'index.php?option='.$this->t['o'].'&task='.$this->t['task'].'.edit&id='; +$urlTask = 'index.php?option='.$this->t['o'].'&task='.$this->t['task']; +$orderkey = array_search($item->id, $this->ordering[$item->catid]); +$ordering = ($listOrder == 'a.ordering'); +$canCreate = $user->authorise('core.create', $this->t['o']); +$canEdit = $user->authorise('core.edit', $this->t['o']); +$canCheckin = $user->authorise('core.manage', 'com_checkin') || $item->checked_out==$user->get('id') || $item->checked_out==0; +$canChange = $user->authorise('core.edit.state', $this->t['o']) && $canCheckin; +$linkEdit = JRoute::_( $urlEdit. $item->id ); + +$linkCat = JRoute::_( 'index.php?option='.$this->t['o'].'&task='.$this->t['c'].'cat.edit&id='.(int) $item->category_id ); +$canEditCat = $user->authorise('core.edit', $this->t['o']);*/ + + +$iD = $i % 2; +echo "\n\n"; +echo ''. "\n"; + +echo $r->tdOrder(0,0,0); +echo $r->td(JHtml::_('grid.id', $i, $item->id), "small hidden-phone"); + +$usrO = $item->usernameno; +if ($item->username) {$usrO = $usrO . ' ('.$item->username.')';} +if (!$usrO) { + $usrO = JText::_('COM_PHOCADOWNLOAD_GUEST'); +} +echo $r->td($usrO, "small hidden-phone"); + +$cntfaid = 0; +if ($item->countfaid) { + $cntfaid = $item->countfaid; +} +echo $r->td($this->escape($cntfaid), 'ph-center'); +$cntfnid = 0; +if ($item->countfnid) { + $cntfnid = $item->countfaid; +} +echo $r->td($this->escape($cntfnid), 'ph-center'); + + +//echo $r->td($item->id, "small hidden-phone"); + +echo ''. "\n"; + + //} + } +} +echo ''. "\n"; + +echo $r->tblFoot($this->pagination->getListFooter(), 15); +echo $r->endTable(); + +//echo $r->formInputs($listOrder, $originalOrders); +echo $r->formInputs($listOrder, $listDirn, $originalOrders); +echo $r->endMainContainer(); +echo $r->endForm(); +?> diff --git a/packages/phocadownload/administrator/components/com_phocadownload/views/phocadownloaduploads/tmpl/index.html b/packages/phocadownload/administrator/components/com_phocadownload/views/phocadownloaduploads/tmpl/index.html new file mode 100644 index 00000000..fa6d84e8 --- /dev/null +++ b/packages/phocadownload/administrator/components/com_phocadownload/views/phocadownloaduploads/tmpl/index.html @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/phocadownload/administrator/components/com_phocadownload/views/phocadownloaduploads/view.html.php b/packages/phocadownload/administrator/components/com_phocadownload/views/phocadownloaduploads/view.html.php new file mode 100644 index 00000000..633a847f --- /dev/null +++ b/packages/phocadownload/administrator/components/com_phocadownload/views/phocadownloaduploads/view.html.php @@ -0,0 +1,78 @@ +t = PhocaDownloadUtils::setVars('upload'); + $this->items = $this->get('Items'); + $this->pagination = $this->get('Pagination'); + $this->state = $this->get('State'); + + JHTML::stylesheet( $this->t['s'] ); + + // Check for errors. + if (count($errors = $this->get('Errors'))) { + JError::raiseError(500, implode("\n", $errors)); + return false; + } + + $this->addToolbar(); + parent::display($tpl); + + } + + function addToolbar() { + + require_once JPATH_COMPONENT.'/helpers/'.$this->t['tasks'].'.php'; + //$state = $this->get('State'); + $class = ucfirst($this->t['tasks']).'Helper'; + $canDo = $class::getActions($this->t); + + JToolBarHelper::title( JText::_( $this->t['l'].'_UPLOADS' ), 'upload' ); + + if ($canDo->get('core.admin')) { + + $bar = JToolBar::getInstance('toolbar'); + + $dhtml = ''; + $bar->appendButton('Custom', $dhtml); + + + JToolBarHelper::divider(); + } + + + JToolBarHelper::help( 'screen.'.$this->t['c'], true ); + } + + protected function getSortFields() { + return array( + + 'd.title' => JText::_($this->t['l'] . '_TITLE'), + 'd.filename' => JText::_($this->t['l'] . '_FILENAME'), + 'usernameno' => JText::_($this->t['l'] . '_USER'), + 'username' => JText::_($this->t['l'] . '_USERNAME'), + 'a.count' => JText::_($this->t['l'] . '_COUNT') + + ); + } +} +?> \ No newline at end of file diff --git a/packages/phocadownload/administrator/language/en-GB/en-GB.com_phocadownload.ini b/packages/phocadownload/administrator/language/en-GB/en-GB.com_phocadownload.ini new file mode 100644 index 00000000..b197f320 --- /dev/null +++ b/packages/phocadownload/administrator/language/en-GB/en-GB.com_phocadownload.ini @@ -0,0 +1,811 @@ +; @package Joomla.Framework +; @copyright Copyright (C) 2005 - 2010 Open Source Matters, Inc. All rights reserved. +; @license GNU General Public License version 2 or later; see LICENSE.txt +; +; @component Phoca Component +; @copyright Copyright (C) Jan Pavelka www.phoca.cz +; @license http://www.gnu.org/copyleft/gpl.html GNU General Public License version 2 or later; +; +; @test utf-8 ä, ö, ü +; + + +;[3.1.1] +COM_PHOCADOWNLOAD_SELECT_MAX_LEVELS="Select Max Levels" +COM_PHOCADOWNLOAD_FIELD_COLUMN_SIZE_CATEGORY_VIEW_LABEL="Column size (Category View)" +COM_PHOCADOWNLOAD_FIELD_COLUMN_SIZE_CATEGORY_VIEW_DESC="Set left column size for category view. Right column size will be automatically set. This parameter applies for Bootstrap layout only and maximum column size is 12." +COM_PHOCADOWNLOAD_FIELD_TAGS_STRING_LABEL="Tags (String)" +COM_PHOCADOWNLOAD_FIELD_TAGS_STRING_DESC="Set string tags. Separate each tag with comma (,). These tags are displayed next to filename or title. The don't include links, they cannot be searched in the system. They are just displayed like icons next to the filename or title" +COM_PHOCADOWNLOAD_YES_CATEGORY_VIEW_TITLE_SUFFIX="Yes (Category View) - Title Suffix" +COM_PHOCADOWNLOAD_YES_FILE_VIEW_TITLE_SUFFIX="Yes (FileView) - Title Suffix" +COM_PHOCADOWNLOAD_YES_CATEGORY_FILE_VIEW_TITLE_SUFFIX="Yes (Category And File View) - Title Suffix" +COM_PHOCADOWNLOAD_WAS_UPLOADED_BY="was uploaded by" +COM_PHOCADOWNLOAD_FILE_UPLOADED="File uploaded" +COM_PHOCADOWNLOAD_SEARCH_FILTER_IS_ACTIVE="Search filter is active. Listed categories are not displayed in category tree. Max levels filter is not active." +COM_PHOCADOWNLOAD_PLEASE_ADD_FILE_OR_IF_ADDED_CHECK_IF_IT_HAS_RIGHT_FORMAT_AND_SIZE="Please add a file. If added, please, test if it has the right format and size" +COM_PHOCADOWNLOAD_DISPLAY_BOOTSTRAP3_LAYOUT_LABEL="Display Bootstrap 3 Layout" +COM_PHOCADOWNLOAD_DISPLAY_BOOTSTRAP3_LAYOUT_DESC="When Bootstrap 3 layout is enabled, then specific layout will be not loaded. Don't forget to disable styles in Styles (CSS) view which can be in conflict with Bootstrap 3 (e.g. Bootstrap 2)" +;[3.1.0] +COM_PHOCADOWNLAD_CLOSE="Close" +COM_PHOCADOWNLOAD_FIELD_DISPLAY_ORDERING_CATEGORY_VIEW_LABEL="Display Ordering Select Box (Category View)" +COM_PHOCADOWNLOAD_FIELD_DISPLAY_ORDERING_CATEGORY_VIEW_DESC="Display or hide ordering select box in Category View - ordering of files" +COM_PHOCADOWNLOAD_COUNT_ASC="Rating Count Ascending" +COM_PHOCADOWNLOAD_COUNT_DESC="Rating Count Descending" +COM_PHOCADOWNLOAD_AVERAGE_ASC="Rating Ascending" +COM_PHOCADOWNLOAD_AVERAGE_DESC="Rating Descending" +COM_PHOCADOWNLOAD_DOWNLOADS_ASC="Downloads Ascending" +COM_PHOCADOWNLOAD_DOWNLOADS_DESC="Downloads Descending" +COM_PHOCADOWNLOAD_ORDER_FRONT="Ordering" +COM_PHOCADOWNLOAD_REGARDS="Regards" +COM_PHOCADOWNLOAD_MESSAGE="Message" +COM_PHOCADOWNLOAD_WEBSITE="Website" +COM_PHOCADOWNLOAD_WAS_DOWNLOADED_BY="was downloaded by" +COM_PHOCADOWNLOAD_SUCCESS_NEW_FILE_UPLOADED="New file uploaded" +COM_PHOCADOWNLOAD_FILE_DOWNLOADED="File downloaded" +COM_PHOCADOWNLOAD_ANONYMOUS="Anonymous" +COM_PHOCADOWNLOAD_FIELD_MULTIPLE_UPLOAD_METHOD_DESC="Set Multiple Upload Method in administration. See http://www.plupload.com/ which browsers and which functions are supported by selected method" +COM_PHOCADOWNLOAD_FIELD_MULTIPLE_UPLOAD_METHOD_LABEL="Multiple Upload Method (Administration)" +COM_PHOCADOWNLOAD_FLASH_UPLOADER="Flash Uploader" +COM_PHOCADOWNLOAD_GEARS_UPLOADER="Gears Uploader" +COM_PHOCADOWNLOAD_SILVERLIGHT_UPLOADER="Silverlight Uploader" +COM_PHOCADOWNLOAD_HTML4_UPLOADER="HTML4 Uploader" +COM_PHOCADOWNLOAD_HTML5_UPLOADER="HTML5 Uploader" +COM_PHOCADOWNLOAD_BROWSERPLUS_UPLOADER="Browserplus Uploader" + +;[3.0.6] +COM_PHOCADOWNLOAD_FILENAME_ASC="Filename Ascending" +COM_PHOCADOWNLOAD_FILENAME_DESC="Filename Descending" + +;[3.0.3] +COM_PHOCADOWNLOAD_BROWSER_DOES_NOT_SUPPORT_AUDIO_VIDEO_TAG="Your browser does not support the audio/video tag" +COM_PHOCADOWNLOAD_FIELD_HTML5_AUDIO_VIDEO_LABEL="HTML5 Audio/Video" +COM_PHOCADOWNLOAD_FIELD_HTML5_AUDIO_VIDEO_DESC="Set yes to enable HTML 5 player for audio and video" +;[3.0.2] +COM_PHOCADOWNLOAD_FIELD_ENABLE_TOKEN_DOWNLOAD_LABEL="Enable Unique Download Link" +COM_PHOCADOWNLOAD_FIELD_ENABLE_TOKEN_DOWNLOAD_DESC="Enable or disable unique download link feature (download with token)" +COM_PHOCADOWNLOAD_MAX_LIMIT_DOWNLOAD_TOKEN_REACHED="File cannot be downloaded. Maximum download limit of this file reached." +COM_PHOCADOWNLOAD_FIELD_MAX_COUNT_TOKEN_DOWNLOADS_DESC="Set maximum count of files user can download through unique download link. Be aware, 0 (Zero) means, there is no limit. This limit only takes effect for unique download link" +COM_PHOCADOWNLOAD_FIELD_MAX_COUNT_TOKEN_DOWNLOADS_LABEL="Maximum Count of downloads per file (Unique Download Link)" +COM_PHOCADOWNLOAD_URL_FORMAT_DEPENDS_ON_SEF="This Link may take different formats. Its format depends on your SEF Settings" +COM_PHOCADOWNLOAD_UNIQUE_DOWNLOAD_URL="Unique Download Link" +COM_PHOCADOWNLOAD_DOWNLOAD_FILE="Download file" +COM_PHOCADOWNLOAD_FILE_NOT_FOUND="File Not Found" +COM_PHOCADOWNLOAD_SET_TOKEN="Set Token" +COM_PHOCADOWNLOAD_FIELD_TOKEN_LABEL="Token (Unique Download Link)" +COM_PHOCADOWNLOAD_FIELD_TOKEN_DESC="Set token - unique download link of the file" +COM_PHOCADOWNLOAD_FIELD_TOKENHITS_LABEL="Token Downloads" +COM_PHOCADOWNLOAD_FIELD_TOKENHITS_DESC="How many times the file was downloaded by unique download link" +COM_PHOCADOWNLOAD_YES_FRONTEND="Yes (Frontend Only)" +COM_PHOCADOWNLOAD_YES_BACKEND="Yes (Backend Only)" +COM_PHOCADOWNLOAD_YES_FRONTEND_BACKEND="Yes (Frontend, Backend)" +;[3.0.1] +COM_PHOCADOWNLOAD_FIELD_ALIAS_M_DESC="Alias for all added images can be set. If empty, Alias will be created from Filename" +COM_PHOCADOWNLOAD_FIELD_TITLE_M_DESC="Title for all added images can be set. If empty, Title will be created from Filename" +COM_PHOCADOWNLOAD_FIELD_LANGUAGE_FILE_DESC="The language that the file is assigned to." +;[3.0.0] +COM_PHOCADOWNLOAD_FIELD_COPY_PAP_LABEL="Copy Play and Preview" +COM_PHOCADOWNLOAD_FIELD_COPY_PAP_DESC="Set if files of added items will be copied to play and preview folder (in case they can be played or previewed). Items then will be downloadable and previewable or playable." +;[3.0.0 Beta] +COM_PHOCADOWNLOAD_HOT="Hot" +COM_PHOCADOWNLOAD_WILL_BE_CREATED_FROM_TITLE="Will be created from title" +;[3.0.0] +COM_PHOCADOWNLOAD_MAX_LIMIT_DOWNLOAD_PER_FILE_REACHED="You have reached maximum limit of downloads allowed per this file." +COM_PHOCADOWNLOAD_NOT_LOGGED_IN_USERS_NOT_ALLOWED_DOWNLOAD="Please login. Not logged in users are not allowed to download." +COM_PHOCADOWNLOAD_FIELD_MAX_COUNT_USER_DOWNLOADS_DESC="Set maximum count of files user can download. Be aware, 0 (Zero) means, there is no limit. It is limit per file NOT for all downloads. If you set some limit here, anonymous users (guests) are not able to download any file." +COM_PHOCADOWNLOAD_FIELD_MAX_COUNT_USER_DOWNLOADS_LABEL="Maximum Count of downloads per file" +COM_PHOCADOWNLOAD_LOGGING_NOT_ENABLED="Warning! Logging is not enabled at the moment!" +COM_PHOCADOWNLOAD_FIELD_PLAY_OR_PREVIEW_COPY_LABEL="Play or Preview Copy" +COM_PHOCADOWNLOAD_FIELD_PLAY_OR_PREVIEW_COPY_DESC="If yes (Frontend), file which is uploaded by user in fronted will be copied to phocadownloadpap folder so it can be played or previewed. If yes (Backend), then file which is added in File Add feature or in Multiple Add feature in Administration will be copied to phocadownloadpap folder too." +COM_PHOCADOWNLOAD_FIELD_ENABLE_LOGGING_LABEL="Enable Logging" +COM_PHOCADOWNLOAD_FIELD_ENABLE_LOGGING_DESC="Enable or disable logging for downloads, uploads or both. Be aware, logging of downloads and uploads can take a lot of memory in case a lot of downloads or uploads is done on your site. It is recommended to enable it only for short testing period" +COM_PHOCADOWNLOAD_YES_UPLOADS_ONLY="Yes (Uploads only)" +COM_PHOCADOWNLOAD_YES_DOWNLOADS_ONLY="Yes (Downloads only)" +COM_PHOCADOWNLOAD_YES_UPLOADS_DOWNLOADS="Yes (Uploads and Downloads)" +COM_PHOCADOWNLOAD_FIELD_FILE_ICON_MIME_LABEL="File Icon (Extension Mime Type)" +COM_PHOCADOWNLOAD_FIELD_FILE_ICON_MIME_DESC="Enable or disable displaying of file icon by extension mime type (for example: PDF icon will be displayed next to PDF documents). Be aware not all extension mime type icons are available." +COM_PHOCADOWNLOAD_YES_DOWNLOAD_UPLOAD_PARAM="Yes (download and upload parameters)" +COM_PHOCADOWNLOAD_YES_DOWNLOAD_UPLOAD_PARAM_ADMIN="Yes (download and upload parameter in administration only)" +COM_PHOCADOWNLOAD_YES_UPLOAD_PARAM_ADMIN="Yes (only upload parameters in administration)" +COM_PHOCADOWNLOAD_YES_UPLOAD_PARAM="Yes (only upload parameters)" +COM_PHOCADOWNLOAD_YES_DOWNLOAD_PARAM="Yes (only download parameters)" +COM_PHOCADOWNLOAD_IGNORE_FILE_TYPES_CHECK_LABEL="Ignore File Types Checking" +COM_PHOCADOWNLOAD_IGNORE_FILE_TYPES_CHECK_DESC="Set if checking of file types will be ignored. If yes: Allowed File Types (Download), Allowed File Types (Upload), Disallowed File Types (Download), Disallowed File Types (Upload) will be ignored." +COM_PHOCADOWNLOAD_CONFIG_HEAD_DOWNLOADS_LABEL="Downloads" +COM_PHOCADOWNLOAD_CONFIG_HEAD_UPLOADS_LABEL="Uploads" +COM_PHOCADOWNLOAD_FILE_VIEW_LABEL="File View" +COM_PHOCADOWNLOAD_CONFIG_CATEGORY_CATEGORIES_VIEW_LABEL="Categories and Category View" +COM_PHOCADOWNLOAD_IP="IP" +COM_PHOCADOWNLOAD_PAGE="Page" +COM_PHOCADOWNLOAD_RESET_LOG="Reset Log" +COM_PHOCADOWNLOAD_WARNING_RESET_LOG="Are you sure you want to reset (clear) the log?" +COM_PHOCADOWNLOAD_SUCCESS_RESET_LOG_STAT="Log cleared" +COM_PHOCADOWNLOAD_ERROR_RESET_LOG_STAT="Error while clearing log" +COM_PHOCADOWNLOAD_ERROR_SERVER_NOT_ABLE_TO_STORE_FILE_TEMP_FOLDER="Error while uploading file. Server is not able to store this file to Temp folder." +COM_PHOCADOWNLOAD_COUNT="Count" +COM_PHOCADOWNLOAD_LOGGING="Logging" +COM_PHOCADOWNLOAD_UPLOADS="Uploads" +COM_PHOCADOWNLOAD_EDIT_CSS_FILES="Edit CSS Files" +COM_PHOCADOWNLOAD_FIELD_CSS_MENULINK_ID_DESC="Set ID or IDs of menu link (Itemid) where the style will be displayed. Separate each parent ID with comma (,)" +COM_PHOCADOWNLOAD_FIELD_CSS_MENULINK_ID_LABEL="Menu Link ID" +COM_PHOCADOWNLOAD_ERROR_FAILED_TO_SAVE_FILENAME="Error while saving the filename" +COM_PHOCADOWNLOAD_ERROR_SOURCE_FILE_NOT_UNWRITABLE="Error while making the source file unwritable" +COM_PHOCADOWNLOAD_ERROR_SOURCE_FILE_NOT_WRITABLE="Error while saving the file. Source File is not writable." +COM_PHOCADOWNLOAD_STYLE="Style" +COM_PHOCADOWNLOAD_FIELD_CSS_LABEL="Style (CSS Source)" +COM_PHOCADOWNLOAD_FIELD_CSS_DESC="Edit source of the style" +COM_PHOCADOWNLOAD_FIELD_TYPE_DESC="Type of the style" +COM_PHOCADOWNLOAD_FIELD_TYPE_LABEL="Type" +COM_PHOCADOWNLOAD_MAIN="Main" +COM_PHOCADOWNLOAD_FILE_EXISTS="File exists" +COM_PHOCADOWNLOAD_FILE_DOES_NOT_EXIST="File does not exist" +COM_PHOCADOWNLOAD_TYPE="Type" +COM_PHOCADOWNLOAD_CUSTOM_CSS="Custom" +COM_PHOCADOWNLOAD_MAIN_CSS="Main" +COM_PHOCADOWNLOAD_FILTER_SELECT_TYPE="- Select Type -" +COM_PHOCADOWNLOAD_STYLES="Styles" +COM_PHOCADOWNLOAD_FOLDER_NOT_FOUND="Folder not found" +COM_PHOCADOWNLOAD_EDIT_CSS="Edit CSS" +COM_PHOCADOWNLOAD_ERROR_CSS_FOLDER_NOT_FOUND="Custom CSS Folder Not Found" + +COM_PHOCADOWNLOAD_MIRROR_DETAILS="Mirror Details" +COM_PHOCADOWNLOAD_YOUTUBE_OPTIONS="YouTube Options" +COM_PHOCADOWNLOAD_GENERAL_OPTIONS="General Options" +COM_PHOCADOWNLOAD_PUBLISHING_OPTIONS="Publishing Options" +COM_PHOCADOWNLOAD_METADATA_OPTIONS="Metadata Options" +COM_PHOCADOWNLOAD_FILTER_SEARCH_LABEL="Search" +COM_PHOCADOWNLOAD_FILTER_SEARCH_DESC="Search the items" +COM_PHOCADOWNLOAD_LICENCE="Licence" +COM_PHOCADOWNLOAD_PHOCA_NEEDS_YOUR_HELP="Phoca Needs Your Help" +COM_PHOCADOWNLOAD_PLEASE_READ="Please Read" +COM_PHOCADOWNLOAD_USEFUL_TIPS="Useful Tips (Extensions)" +COM_PHOCADOWNLOAD_USEFUL_LINKS="Useful Links" +;[2.1.5] +COM_PHOCADOWNLOAD_UPLOADED_BY_LABEL="Uploaded By" +COM_PHOCADOWNLOAD_UPLOADED_BY_DESC="Set Uploaded By" +COM_PHOCADOWNLOAD_OWNER_LABEL="Owner" +COM_PHOCADOWNLOAD_OWNER_DESC="Set Owner" +;[2.1.2] +COM_PHOCADOWNLOAD_BATCH_OPTIONS_CATEGORIES="Batch process the selected categories" +COM_PHOCADOWNLOAD_PHOCA_DOWNLOAD="Phoca Download" +COM_PHOCADOWNLOAD_INFORMATION="Information" +COM_PHOCADOWNLOAD_FIELD_CATEGORY_LINK_LABEL="Select Category Link" +COM_PHOCADOWNLOAD_FIELD_CATEGORY_LINK_DESC="Select category to link it" +COM_PHOCADOWNLOAD_FIELD_DOWNLOAD_FOLDER_PAP_LABEL="Download Folder (Play, Preview)" +COM_PHOCADOWNLOAD_FIELD_DOWNLOAD_FOLDER_PAP_DESC="Set download folder for play and preview files" +;[2.1.1] +COM_PHOCADOWNLOAD_FIELD_VIDEO_HEIGHT_DV_LABEL="Youtube Height (Detail View)" +COM_PHOCADOWNLOAD_FIELD_VIDEO_HEIGHT_DV_DESC="Set Youtube height for Detail View" +COM_PHOCADOWNLOAD_FIELD_VIDEO_WIDTH_DV_LABEL="Youtube Width (Detail View)" +COM_PHOCADOWNLOAD_FIELD_VIDEO_WIDTH_DV_DESC="Set Youtube width for Detail View" +COM_PHOCADOWNLOAD_FIELD_VIDEO_HEIGHT_CV_LABEL="Youtube Height (Category View)" +COM_PHOCADOWNLOAD_FIELD_VIDEO_HEIGHT_CV_DESC="Set Youtube height for Category View" +COM_PHOCADOWNLOAD_FIELD_VIDEO_WIDTH_CV_LABEL="Youtube Width (Category View)" +COM_PHOCADOWNLOAD_FIELD_VIDEO_WIDTH_CV_DESC="Set Youtube width for Category View" +COM_PHOCADOWNLOAD_GROUP_LABEL_YOUTUBE_DETAILS="Youtube" +COM_PHOCADOWNLOAD_VIDEO_LINK_LABEL="Youtube Link" +COM_PHOCADOWNLOAD_VIDEO_LINK_DESC="Set Youtube link" +COM_PHOCADOWNLOAD_YES_ONLY_MODALBOX="Yes (Only Modalbox - Category View)" +;[2.1.0 Stable] +COM_PHOCADOWNLOAD_SELECT_FILE="Select file" +COM_PHOCADOWNLOAD_FIELD_SELECT_FILE_LABEL="Select file" +COM_PHOCADOWNLOAD_FIELD_SELECT_FILE_DESC="Select display file" +COM_PHOCADOWNLOAD_OVERLIB_WIDTH_DETAIL="Overlib with detail" +;[2.1.0 Beta] +COM_PHOCADOWNLOAD_FILE_VIEW="File View" +COM_PHOCADOWNLOAD_CATEGORY_VIEW="Category View" +COM_PHOCADOWNLOAD_CATEGORIES_VIEW="Categories View" +COM_PHOCADOWNLOAD_PARAMETERS="Parameters" +COM_PHOCADOWNLOAD_STYLES="Styles (CSS)" +COM_PHOCADOWNLOAD_LAYOUT_WARNING="Warning: Parameters are mostly styled by CSS, here you can add or remove different parts of the view. For stylizing them, just check the Phoca Download CSS. Edit the HTML source (HTML source can be displayed by editor feature) Displaying specific layout must be enabled in parameters." +COM_PHOCADOWNLOAD_DISPLAY_SPEC_LAYOUT_LABEL="Display Specific Layout" +COM_PHOCADOWNLOAD_DISPLAY_SPEC_LAYOUT_DESC="Display specific layout - set in Phoca Download administration. Be aware, some parts of the layout needs to be changed in CSS too to display properly." +COM_PHOCADOWNLOAD_CLEAN="Clean" +COM_PHOCADOWNLOAD_YES_OVERLIB="Yes (Overlib)" +COM_PHOCADOWNLOAD_YES_MODAL="Yes (Modal Box)" +COM_PHOCADOWNLOAD_FIELD_DISPLAY_TAGS_LINKS_LABEL="Display Tags" +COM_PHOCADOWNLOAD_FIELD_DISPLAY_TAGS_LINKS_DESC="Display or hide tags" +COM_PHOCADOWNLOAD_YES_CATEGORY_VIEW_BUTTON="Yes (Category View) as Button" +COM_PHOCADOWNLOAD_YES_FILE_VIEW_BUTTON="Yes (File View) as Button" +COM_PHOCADOWNLOAD_YES_CATEGORY_FILE_VIEW_BUTTON="Yes (Category And File View) as Button" +COM_PHOCADOWNLOAD_EXTERNAL_LINK="External Link" +COM_PHOCADOWNLOAD_CATEGORY_LINK="Category Link" +COM_PHOCADOWNLOAD_SEARCH_OUTCOME="Search Outcome" +COM_PHOCADOWNLOAD_FIELD_TAGS_LINKS_LABEL="Tags (Links)" +COM_PHOCADOWNLOAD_FIELD_TAGS_LINKS_DESC="Set if the tags will include a link. If yes, set type of this link" +COM_PHOCADOWNLOAD_AT="at" +COM_PHOCADOWNLOAD_FEATURES="Features" +COM_PHOCADOWNLOAD_CHANGELOG="Changelog" +COM_PHOCADOWNLOAD_NOTES="Notes" +COM_PHOCADOWNLOAD_ERROR_DELETING_ITEM="Error while deleting item" +COM_PHOCADOWNLOAD_SUCCESS_DELETING_ITEM="Item deleted" +COM_PHOCADOWNLOAD_ERROR_UNPUBLISHING_ITEM="Error while unpublishing item" +COM_PHOCADOWNLOAD_ERROR_PUBLISHING_ITEM="Error while publishing item" +COM_PHOCADOWNLOAD_SUCCESS_UNPUBLISHING_ITEM="Item unpublished" +COM_PHOCADOWNLOAD_SUCCESS_PUBLISHING_ITEM="Item published" +COM_PHOCADOWNLOAD_FIELD_DELETE_RIGHTS_LABEL="Delete Rights" +COM_PHOCADOWNLOAD_FIELD_DELETE_RIGHTS_DESC="Set delete rights" +COM_PHOCADOWNLOAD_ERROR_DELETE_CONTAIN_FILE="Category(ies): '%s' cannot be removed as it contains (they contain) Items. There may currently be File(s) within the Category which you must delete first." +COM_PHOCADOWNLOAD_ERROR_DELETE_CONTAIN_CAT="Category(ies): '%s' cannot be removed as it contains (they contain) Subcategories. There may currently be Subcategory(ies) within the Category which you must delete first." +COM_PHOCADOWNLOAD_CATEGORIES_ADDED="Category(ies) added" +COM_PHOCADOWNLOAD_FILES_ADDED="File(s) added" +COM_PHOCADOWNLOAD_CHECK_ALL="Check All" +COM_PHOCADOWNLOAD_WARNING_FILE_SELECTED_SELECT_CATEGORY="File(s) are selected. Category needs to be selected also" +COM_PHOCADOWNLOAD_WARNING_SELECT_FILENAME_OR_FOLDER="Select File or Folder" +COM_PHOCADOWNLOAD_MULTIPLE_ADD="Multiple Add" +COM_PHOCADOWNLOAD_BATCH_OPTIONS_FILES="Batch process the selected files" +;COM_PHOCADOWNLOAD_SUCCESS_COPY_FILE="File(s) copied" +;COM_PHOCADOWNLOAD_ERROR_COPY_FILE="Error while copying file(s)" +COM_PHOCADOWNLOAD_QUICK_COPY="Quick Copy" +COM_PHOCADOWNLOAD_COPY="Copy" +COM_PHOCADOWNLOAD_FORM_SELECT_IMAGE="Select Image" +COM_PHOCADOWNLOAD_FIELD_IMAGE_DOWNLOAD_LABEL="Image" +COM_PHOCADOWNLOAD_FIELD_IMAGE_DOWNLOAD_DESC="Set image for the file" +COM_PHOCADOWNLOAD_FIELD_CATEGORIES_LAYOUT_LABEL="Categories View Layout" +COM_PHOCADOWNLOAD_FIELD_CATEGORIES_LAYOUT_DESC="Set layout for Categories View" +COM_PHOCADOWNLOAD_FIELD_CATEGORY_LAYOUT_LABEL="Category View Layout" +COM_PHOCADOWNLOAD_FIELD_CATEGORY_LAYOUT_DESC="Set layout for Category View" +COM_PHOCADOWNLOAD_FIELD_FILE_LAYOUT_LABEL="File View Layout" +COM_PHOCADOWNLOAD_FIELD_FILE_LAYOUT_DESC="Set layout for File View" +COM_PHOCADOWNLOOAD_CONTROL_PANEL="Control Panel" +COM_PHOCADOWNLOAD_FIELD_FEATURES_DESC="Set Features Text" +COM_PHOCADOWNLOAD_FIELD_FEATURES_LABEL="Features" +COM_PHOCADOWNLOAD_FIELD_CHANGELOG_DESC="Set Changelog Text" +COM_PHOCADOWNLOAD_FIELD_CHANGELOG_LABEL="Changelog" +COM_PHOCADOWNLOAD_FIELD_NOTES_DESC="Set Notes Text" +COM_PHOCADOWNLOAD_FIELD_NOTES_LABEL="Notes" +COM_PHOCADOWNLOAD_FIELD_TAGS_LABEL="Tags" +COM_PHOCADOWNLOAD_FIELD_TAGS_DESC="Select tags" +COM_PHOCADOWNLOAD_NEW_TAG="New Tag" +COM_PHOCADOWNLOAD_EDIT_TAG="Edit Tag" +COM_PHOCADOWNLOAD_FIELD_CATEGORY_LABEL="Link To Category" +COM_PHOCADOWNLOAD_FIELD_CATEGORY_DES="Select category if you want to link this tag to category" +COM_PHOCADOWNLOAD_FIELD_EXT_LINK_TAG_LABEL="Link To External Site" +COM_PHOCADOWNLOAD_FIELD_EXT_LINK_TAG_DESC="Set link to external site if you want to link this tag to some site (include http://)" +COM_PHOCADOWNLOAD_TAG="Tag" +COM_PHOCADOWNLOAD_TAGS="Tags" +COM_PHOCADOWNLOAD_LAYOUT="Layout" +;[2.0.0] +COM_PHOCADOWNLOAD_NUM="Num" +COM_PHOCADOWNLOAD_LIMIT="Limit" +COM_PHOCADOWNLOAD_YOUTUBE_URL="Youtube URL" +COM_PHOCADOWNLOAD_WARNING_SET_YOUTUBE_URL="You must set URL of Youtube video" +COM_PHOCADOWNLOAD_PLAYER_WIDTH="Player Width" +COM_PHOCADOWNLOAD_PLAYER_HEIGHT="Player Height" +COM_PHOCADOWNLOAD_PLAYER_HEIGHT_MP3="Player Height (MP3)" +COM_PHOCADOWNLOAD_WARNING_PLAYER_SIZE="Only size of Popup Window (Modal Box) can be set here, size of player needs to be set in Parameters of Phoca Download Component" +COM_PHOCADOWNLOAD_PREVIEW_WIDTH="Preview Width" +COM_PHOCADOWNLOAD_PREVIEW_HEIGHT="Preview Height" +COM_PHOCADOWNLOAD_YOU_MUST_SELECT_FILE="You must select a file" +COM_PHOCADOWNLOAD_YOU_MUST_SELECT_CATEGORY="You must select a category" +COM_PHOCADOWNLOAD_TARGET="Target" +COM_PHOCADOWNLOAD_TARGET_SELF="Target _self" +COM_PHOCADOWNLOAD_TARGET_BLANK="Target _blank" +COM_PHOCADOWNLOAD_TARGET_TOP="Target _top" +COM_PHOCADOWNLOAD_TARGET_PARENT="Target _parent" +COM_PHOCADOWNLOAD_INSERT_CODE="Insert Code" +COM_PHOCADOWNLOAD_BACK="Back" +COM_PHOCADOWNLOAD_FILELIST="File List" +COM_PHOCADOWNLOAD_YOUTUBE_VIDEO="Youtube Video" +COM_PHOCADOWNLOAD_PLAY_FILE_LINK="Play File (Link)" +COM_PHOCADOWNLOAD_PLAY_FILE_DIRECT="Play File (Direct)" +COM_PHOCADOWNLOAD_PREVIEW_FILE_LINK="Preview File (Link)" +COM_PHOCADOWNLOAD_LINK_TO_FILE="Link To File" +COM_PHOCADOWNLOAD_LINK_TO_CATEGORY="Link To Category" +COM_PHOCADOWNLOAD_LINK_TO_CATEGORIES="Link To Categories" +COM_PHOCADOWNLOAD_SELECT_TYPE="Select Type" +COM_PHOCADOWNLOAD_UPLOADED_BY="Uploaded by" +COM_PHOCADOWNLOAD_FIELD_ENABLE_CACHE_LABEL="Enable Cache" +COM_PHOCADOWNLOAD_FIELD_ENABLE_CACHE_DESC="Enable cache if it is enabled in Joomla! Global Configuration" +;[2.0.0RC3] +COM_PHOCADOWNLOAD_USER_LANG="User's Language" +COM_PHOCADOWNLOAD_SITE_LANG="Site's Language" +COM_PHOCADOWNLOAD_FIELD_USER_UCP_LANG_LABEL="User Language" +COM_PHOCADOWNLOAD_FIELD_USER_UCP_LANG_DESC="Set which language will be set while creating category or uploading image in UCP" +COM_PHOCADOWNLOAD_NO_RIGHTS_ACCESS_CATEGORY_FILE="You have no rights to access file in this category" +COM_PHOCADOWNLOAD_FIELD_SELECT_CATEGORY_LABEL="Select Category" +COM_PHOCADOWNLOAD_FIELD_SELECT_CATEGORY_DESC="Select category" +COM_PHOCADOWNLOAD_ERROR_FB_APP_ID_EMPTY="Facebook Application ID is empty" +COM_PHOCADOWNLOAD_FIELD_FB_COMMENT_APP_ID_LABEL="Facebook comments application ID" +COM_PHOCADOWNLOAD_FIELD_FB_COMMENT_APP_ID_DESC="Set Facebook Comments Application ID (ID of your created application in Facebook)" +COM_PHOCADOWNLOAD_FACEBOOK_COMMENTS_WIDTH_LABEL="Facebook Comments Width" +COM_PHOCADOWNLOAD_FACEBOOK_COMMENTS_WIDTH_DESC="Set Facebook comments box width" +COM_PHOCADOWNLOAD_FACEBOOK_FIELD_COMMENT_LANG_LABEL="Facebook Language" +COM_PHOCADOWNLOAD_FACEBOOK_FIELD_COMMENT_LANG_DESC="Set Facebook language" +COM_PHOCADOWNLOAD_FACEBOOK_FIELD_COMMENT_COUNT_LABEL="Comments Count" +COM_PHOCADOWNLOAD_FACEBOOK_FIELD_COMMENT_COUNT_DESC="Set count of comments displayed in comment box" +COM_PHOCADOWNLOAD_FACEBOOK="Facebook" +COM_PHOCADOWNLOAD_STARS_OUT_OF="stars out of" +COM_PHOCADOWNLOAD_FIELD_LANGUAGE_FILE_DESC="The language that the file is assigned to." +COM_PHOCADOWNLOAD_FIELD_LANGUAGE_CATEGORY_DESC="The language that the category is assigned to." +;[2.0.0RC2] +COM_PHOCADOWNLOAD_FIELD_DELETE_EXISTING_FILES_DESC="If yes then the file stored on server will be deleted in case the file will be deleted from Phoca Download" +COM_PHOCADOWNLOAD_FIELD_DELETE_EXISTING_FILES_LABEL="Delete Existing Files" +COM_PHOCADOWNLOAD_FIELD_OVERWRITE_EXISTING_FILES_DESC="Set if uploaded files should overwrite existing files on the server" +COM_PHOCADOWNLOAD_FIELD_OVERWRITE_EXISTING_FILES_LABEL="Overwrite Existing Files" +COM_PHOCADOWNLOAD_REPORT="Report" +COM_PHOCADOWNLOAD_FIELD_REPORT_LINK_GUESTBOOK_ID_LABEL="Guestbook ID (Report)" +COM_PHOCADOWNLOAD_FIELD_REPORT_LINK_GUESTBOOK_ID_DESC="Set guestbook id (guestbook from Phoca Guestbook component) in case the report function is active" +COM_PHOCADOWNLOAD_FIELD_DISPLAY_REPORT_LINK_LABEL="Display Report Link" +COM_PHOCADOWNLOAD_FIELD_DISPLAY_REPORT_LINK_DESC="Display or hide report link. This link will run Phoca Guestbook in Report Mode. There users can report files. Phoca Guestbook needs to be installed and the report function enabled in guestbook settings to run this feature." +COM_PHOCADOWNLOAD_FIELD_DISPLAY_MIRROR_LINKS_LABEL="Display Mirror Links" +COM_PHOCADOWNLOAD_FIELD_DISPLAY_MIRROR_LINKS_DESC="Display or hide mirror links" +COM_PHOCADOWNLOAD_GROUP_LABEL_MIRROR_DETAILS="Mirror Details" +COM_PHOCADOWNLOAD_OPEN_WINDOW_BLANK="Open in new window (_blank)" +COM_PHOCADOWNLOAD_OPEN_WINDOW_PARENT="Open in parent window/frame (_parent)" +COM_PHOCADOWNLOAD_OPEN_WINDOW_SELF="Open in this window/frame (_self)" +COM_PHOCADOWNLOAD_OPEN_WINDOW_TOP="Open in top frame (replaces all frames) (_top)" +COM_PHOCADOWNLOAD_MIRROR_LINK_LINK_LABEL="Link" +COM_PHOCADOWNLOAD_MIRROR_LINK_TARGET_LABEL="Target" +COM_PHOCADOWNLOAD_MIRROR_LINK_TITLE_LABEL="Title (Link 1)" +COM_PHOCADOWNLOAD_FIELD_MIRROR_LINK_LINK_DESC="Set first mirror link (Inlcude the protocol: e.g. http:// or https://)" +COM_PHOCADOWNLOAD_FIELD_MIRROR_LINK_TARGET_DESC="Set target for first mirror link" +COM_PHOCADOWNLOAD_FIELD_MIRROR_LINK_TITLE_DESC="Set title for first mirror link" +COM_PHOCADOWNLOAD_MIRROR_LINK_LINK2_LABEL="Link 2" +COM_PHOCADOWNLOAD_MIRROR_LINK_TARGET2_LABEL="Target" +COM_PHOCADOWNLOAD_MIRROR_LINK_TITLE2_LABEL="Title (Link 2)" +COM_PHOCADOWNLOAD_FIELD_MIRROR_LINK_LINK2_DESC="Set second mirror link (Inlcude the protocol: e.g. http:// or https://)" +COM_PHOCADOWNLOAD_FIELD_MIRROR_LINK_TARGET2_DESC="Set target for second mirror link" +COM_PHOCADOWNLOAD_FIELD_MIRROR_LINK_TITLE2_DESC="Set title for second mirror link" +COM_PHOCADOWNLOAD_YES_CATEGORY_VIEW="Yes (Category View)" +COM_PHOCADOWNLOAD_YES_FILE_VIEW="Yes (FileView)" +COM_PHOCADOWNLOAD_YES_CATEGORY_FILE_VIEW="Yes (Category And File View)" +COM_PHOCADOWNLOAD_FIELD_DISPLAY_RATING_FILE_DESC="Display or hide rating for files" +COM_PHOCADOWNLOAD_FIELD_DISPLAY_RATING_FILE_LABEL="Display Rating (File)" +COM_PHOCADOWNLOAD_CONFIG_RATING_SETTINGS_LABEL="Rating Settings" +COM_PHOCADOWNLOAD_ERROR_FILE_NOT_EXISTS="File does not exist" +COM_PHOCADOWNLOAD_RATING_ALREADY_RATED_FILE="You have already rated this file" +COM_PHOCADOWNLOAD_SUCCESS_RATING_FILE="Thank you for your rating" +COM_PHOCADOWNLOAD_ERROR_RATING_FILE="Error while rating the file" +COM_PHOCADOWNLOAD_ERROR_WRONG_RATING="Error while rating - wrong format added" +COM_PHOCADOWNLOAD_ERROR_REQUESTING_RATING="Error while requesting rating" +COM_PHOCADOWNLOAD_VOTE="vote" +COM_PHOCADOWNLOAD_VOTES="votes" +COM_PHOCADOWNLOAD_FILE_RATING="File Rating" +COM_PHOCADOWNLOAD_RATING="Rating" +COM_PHOCADOWNLOAD_STAR_OUT_OF="star out of" +COM_PHOCADOWNLOAD_ONLY_REGISTERED_LOGGED_RATE_FILE="Only registered and logged in users can rate this file" +;[2.0.0 RC] +COM_PHOCADOWNLOAD_FIELD_DISALLOWED_FILE_TYPES_UPLOAD_DESC="Set disallowed file types for frontend upload." +COM_PHOCADOWNLOAD_FIELD_ALLOWED_FILE_TYPES_UPLOAD_DESC="Set allowed file types for frontend upload. Default list of filetypes is not complete and should be modified to fit your needs." +COM_PHOCADOWNLOAD_FIELD_SHOW_PAGINATION_LABEL="Display Pagination" +COM_PHOCADOWNLOAD_FIELD_SHOW_PAGINATION_DESC="Display or hide pagination" +COM_PHOCADOWNLOAD_FIELD_SHOW_PAGINATION_LIMIT_LABEL="Display Select Box - Pagination" +COM_PHOCADOWNLOAD_FIELD_SHOW_PAGINATION_LIMIT_DESC="Display or hide select box for pagination" +COM_PHOCADOWNLOAD_HIDE="Hide" +COM_PHOCADOWNLOAD_DISPLAY="Display" +;[2.0.0 BETA1] +COM_PHOCADOWNLOAD_FIELD_DISPLAY_MAIN_CAT_DESC_LABEL="Display Main Category Description" +COM_PHOCADOWNLOAD_FIELD_DISPLAY_MAIN_CAT_DESC_DESC="Set if category description should be displayed in Categories View - Description will be displayed instead of subcategories" +COM_PHOCADOWNLOAD_ERROR_CATEGORY_NOT_SELECTED="Category was not selected" +COM_PHOCADOWNLOAD_FIELD_REGISTERED_ACCESS_LEVEL_LABEL="Access Level - Registered Users" +COM_PHOCADOWNLOAD_FIELD_REGISTERED_ACCESS_LEVEL_DESC="Set access levels for registered users. Some actions in frontend can be done by registered users only. Set which access level group will be regarded as registered group." +COM_PHOCADOWNLOAD_FIELD_ENABLE_ICONV_ALIAS_LABEL="Iconv Alias" +COM_PHOCADOWNLOAD_FIELD_ENABLE_ICONV_ALIAS_DESC="Enable or disable creating of alias with help of iconv function" +COM_PHOCADOWNLOAD_UPGRADE="Upgrade" +COM_PHOCADOWNLOAD_INSTALL="Install" +; For Translaters - set your own data here +COM_PHOCADOWNLOAD_TRANSLATION="Translation" +COM_PHOCADOWNLOAD_TRANSLATION_LANGUAGE_TAG="English" +COM_PHOCADOWNLOAD_TRANSLATER="Jan Pavelka" +COM_PHOCADOWNLOAD_TRANSLATION_SUPPORT_URL="www.phoca.cz" +; End Translaters section - - - - - - - - +COM_PHOCADOWNLOAD_ACCESS="Access" +COM_PHOCADOWNLOAD_ACTIVE="Active" +COM_PHOCADOWNLOAD_ADD_FILES="Add Files" +COM_PHOCADOWNLOAD_ADD_FILES_TO_UPLOAD_QUEUE_AND_CLICK_START_BUTTON="Add files to the upload queue and click the start button." +COM_PHOCADOWNLOAD_ADD_TEXT="Text" +COM_PHOCADOWNLOAD_ALL="All" +COM_PHOCADOWNLOAD_ALL_APPROVED="All files authorized" +COM_PHOCADOWNLOAD_ALL_REGISTERED_USERS="All registered users" +COM_PHOCADOWNLOAD_ALWAYS="Always" +COM_PHOCADOWNLOAD_AND_LEFT_FOR_DESCRIPTION="and left for description" +COM_PHOCADOWNLOAD_APPROVE="Authorize" +COM_PHOCADOWNLOAD_APPROVED="Authorized" +COM_PHOCADOWNLOAD_APPROVE_ALL="Authorize All" +COM_PHOCADOWNLOAD_APPROVE_ALL_ERROR="Error while authorizing all files" +COM_PHOCADOWNLOAD_APPROVE_ITEM="Authorize item" +COM_PHOCADOWNLOAD_AUTHOR="Author" +COM_PHOCADOWNLOAD_AUTHOR_EMAIL="Author's Email" +COM_PHOCADOWNLOAD_AUTHOR_WEBSITE="Author's Website" +COM_PHOCADOWNLOAD_BLANK="Blank" +COM_PHOCADOWNLOAD_GREY2="Grey 2" +COM_PHOCADOWNLOAD_BOTTOM="Bottom" +COM_PHOCADOWNLOAD_BOTTOM_AND_OVERLIB="Bottom and Overlib" +COM_PHOCADOWNLOAD_BOTTOM_WITH_DETAIL_AND_OVERLIB="Bottom with detail and Overlib" +COM_PHOCADOWNLOAD_CATEGORIES="Categories" +COM_PHOCADOWNLOAD_CATEGORY="Category" +COM_PHOCADOWNLOAD_CHARACTERS_WRITTEN="Characters written" +COM_PHOCADOWNLOAD_CHECK_FOR_UPDATE="Check For Update" +COM_PHOCADOWNLOAD_CHECK_PERMISSIONS_OWNERSHIP="Check permissions and ownership of files and folders" +COM_PHOCADOWNLOAD_CLOSE="Close" +COM_PHOCADOWNLOAD_CONFIGURATION="Phoca Download Configuration" +COM_PHOCADOWNLOAD_CONFIG_COMMENTS_SETTINGS_LABEL="Comments Settings" +COM_PHOCADOWNLOAD_CONFIG_GENERAL_SETTINGS_LABEL="General Settings" +COM_PHOCADOWNLOAD_CONFIG_HEAD_DISPLAY_LABEL="Display" +COM_PHOCADOWNLOAD_CONFIG_HEAD_GENERAL_LABEL="General" +COM_PHOCADOWNLOAD_CONFIG_HEAD_USER_UPLOAD_LABEL="User Upload" +COM_PHOCADOWNLOAD_CONFIG_THEME_SETTINGS_LABEL="Theme Settings" +COM_PHOCADOWNLOAD_CONTROL_PANEL="Control Panel" +COM_PHOCADOWNLOAD_COPYRIGHT="Copyright" +COM_PHOCADOWNLOAD_COUNT_NOT_UPLOADED_FILE="Count of not uploaded (failed) files" +COM_PHOCADOWNLOAD_COUNT_UPLOADED_FILE="Count of uploaded files" +COM_PHOCADOWNLOAD_COUNT_USER_FILES_APPROVED="Count (authorized files)" +COM_PHOCADOWNLOAD_COUNT_USER_FILES_NOT_APPROVED="Count (not authorized files)" +COM_PHOCADOWNLOAD_CREATE_FOLDER="Create Folder" +COM_PHOCADOWNLOAD_DATABASE_TIME="Database" +COM_PHOCADOWNLOAD_DATE="Date" +COM_PHOCADOWNLOAD_DATE_ASC="Date Ascending" +COM_PHOCADOWNLOAD_DATE_DESC="Date Descending" +COM_PHOCADOWNLOAD_DATE_UPLOAD="Upload Date" +COM_PHOCADOWNLOAD_DEFAULT="Default" +COM_PHOCADOWNLOAD_DELETE="Delete" +COM_PHOCADOWNLOAD_DESCRIPTION="Description" +COM_PHOCADOWNLOAD_DETAILS="Details" +COM_PHOCADOWNLOAD_DISPLAY_NUM="Display Num" +COM_PHOCADOWNLOAD_DOT="dot" +COM_PHOCADOWNLOAD_DOWNLOAD="Download" +COM_PHOCADOWNLOAD_DOWNLOADS="Downloads" +COM_PHOCADOWNLOAD_DRAG_FILES_HERE="Drag Files Here" +COM_PHOCADOWNLOAD_EDIT="Edit" +COM_PHOCADOWNLOAD_EDIT_CATEGORY="Edit Category" +COM_PHOCADOWNLOAD_EDIT_FILE="Edit File" +COM_PHOCADOWNLOAD_EMAIL="Email" +COM_PHOCADOWNLOAD_ERROR="Error" +COM_PHOCADOWNLOAD_ERROR_APPROVE_ALL="Error while authorizing all files" +COM_PHOCADOWNLOAD_ERROR_CONTROLLER_MANAGER_NOT_SET="Error while creating folder - Manager not set" +COM_PHOCADOWNLOAD_ERROR_FILE_UPLOADED="File not uploaded" +COM_PHOCADOWNLOAD_ERROR_FOLDER_CREATING="Error while creating folder" +COM_PHOCADOWNLOAD_ERROR_FOLDER_UPLOAD_NOT_EXISTS="Folder does not exist or it is not accessible" +COM_PHOCADOWNLOAD_ERROR_MOVE_UPLOADED_FILE="Failed to move uploaded file" +COM_PHOCADOWNLOAD_ERROR_NO_ABS_FILE="File not found on server" +COM_PHOCADOWNLOAD_ERROR_NO_CORRECT_FILE_TO_PLAY_FOUND="No correct file for playing found" +COM_PHOCADOWNLOAD_ERROR_NO_DB_FILE="File info not found in database" +COM_PHOCADOWNLOAD_ERROR_NO_DB_RESULT="Problems with database" +COM_PHOCADOWNLOAD_ERROR_NO_FILE_TO_PLAY_FOUND="No file for playing found" +COM_PHOCADOWNLOAD_ERROR_OPEN_INPUT_STREAM="Failed to open input stream" +COM_PHOCADOWNLOAD_ERROR_OPEN_OUTPUT_STREAM="Failed to open output stream" +COM_PHOCADOWNLOAD_ERROR_RESET_USER_STAT="Error while resetting user statistics" +COM_PHOCADOWNLOAD_ERROR_UNABLE_TO_MOVE_FILE="Unable to move file" +COM_PHOCADOWNLOAD_ERROR_UNABLE_TO_UPLOAD_FILE="Unable to upload file" +COM_PHOCADOWNLOAD_ERROR_UPLOAD_MANAGER_NOT_SET="Error while uploading - Manager not set" +COM_PHOCADOWNLOAD_ERROR_WHILE_DOWNLOADING_FILE="Error while downloading file" +COM_PHOCADOWNLOAD_EXPERTS_ONLY_LABEL="Experts Only!" +COM_PHOCADOWNLOAD_EXPIRED="Expired" +COM_PHOCADOWNLOAD_FIELD_ABSOLUTE_PATH_DESC="Set absolute path of Phoca Download folder (this can be path outside the public_html). Be aware, this path must exist and the folder and possible subfolders need to be created manually. If the path is outside the public_html the files cannot be previewed or played in browser." +COM_PHOCADOWNLOAD_FIELD_ABSOLUTE_PATH_LABEL="Absolute Path" +COM_PHOCADOWNLOAD_FIELD_ACCESS_RIGHTS_DESC="Set access rights" +COM_PHOCADOWNLOAD_FIELD_ACCESS_RIGHTS_LABEL="Access Rights" +COM_PHOCADOWNLOAD_FIELD_ALIAS_DESC="Set alias" +COM_PHOCADOWNLOAD_FIELD_ALIAS_LABEL="Alias" +COM_PHOCADOWNLOAD_FIELD_ALLOWED_FILE_TYPES_DOWNLOAD_DESC="Set allowed file types for frontend download. Default list of filetypes is not complete and should be modified to fit your needs." +COM_PHOCADOWNLOAD_FIELD_ALLOWED_FILE_TYPES_DOWNLOAD_LABEL="Allowed File Types (Download)" +COM_PHOCADOWNLOAD_FIELD_ALLOWED_FILE_TYPES_UPLOAD_LABEL="Allowed File Types (Upload)" +COM_PHOCADOWNLOAD_FIELD_APPROVED_DESC="Set if the file will be authorized or unathorized" +COM_PHOCADOWNLOAD_FIELD_APPROVED_LABEL="Authorized" +COM_PHOCADOWNLOAD_FIELD_AUTHOR_DESC="Set Author of the file" +COM_PHOCADOWNLOAD_FIELD_AUTHOR_EMAIL_DESC="Set Author's email" +COM_PHOCADOWNLOAD_FIELD_AUTHOR_EMAIL_LABEL="Author's Email" +COM_PHOCADOWNLOAD_FIELD_AUTHOR_LABEL="Author" +COM_PHOCADOWNLOAD_FIELD_AUTHOR_URL_DESC="Set Author's webstie" +COM_PHOCADOWNLOAD_FIELD_AUTHOR_URL_LABEL="Author's Website" +COM_PHOCADOWNLOAD_FIELD_BUTTON_STYLE_DESC="Set button style" +COM_PHOCADOWNLOAD_FIELD_BUTTON_STYLE_LABEL="Button Style" +COM_PHOCADOWNLOAD_FIELD_CATEGORY_DESC="Select Category" +COM_PHOCADOWNLOAD_FIELD_CATEGORY_LABEL="Category" +COM_PHOCADOWNLOAD_FIELD_CATEGORY_ORDERING_DESC="Set category ordering" +COM_PHOCADOWNLOAD_FIELD_CATEGORY_ORDERING_LABEL="Category Ordering" +COM_PHOCADOWNLOAD_FIELD_CATEGORY_VIEW_PAGINATION_DESC="Set pagination values for Category View (file list). Separate each pagination value with comma (,)" +COM_PHOCADOWNLOAD_FIELD_CATEGORY_VIEW_PAGINATION_LABEL="Pagination (Category View)" +COM_PHOCADOWNLOAD_FIELD_CONFIRM_LICENSE_DESC="Select license for this file. If some license will be selected, file will be not downloaded after clicking on Download button, but the license text will be displayed. This text must be confirmed by user who wants to dowload the file." +COM_PHOCADOWNLOAD_FIELD_CONFIRM_LICENSE_LABEL="Confirm license" +COM_PHOCADOWNLOAD_FIELD_DATE_DESC="Set date" +COM_PHOCADOWNLOAD_FIELD_DATE_LABEL="Date" +COM_PHOCADOWNLOAD_FIELD_DEFAULT_VALUE_PAGINATION_DESC="Set default value for pagination which can be displayed in Category View (file list)" +COM_PHOCADOWNLOAD_FIELD_DEFAULT_VALUE_PAGINATION_LABEL="Pagination Default Value" +COM_PHOCADOWNLOAD_FIELD_DESCRIPTION_DESC="Set description. This will be displayed in Categories View" +COM_PHOCADOWNLOAD_FIELD_DESCRIPTION_LABEL="Description" +COM_PHOCADOWNLOAD_FIELD_DIRECT_LINK_DESC="If direct link will be checked, Downlod button will link directly to the file. It means the file will be handled by browser (e.g. MP3 will be not downloaded but played). This option should be selected in case there are problems with downloading files from the server." +COM_PHOCADOWNLOAD_FIELD_DIRECT_LINK_LABEL="Direct Link" +COM_PHOCADOWNLOAD_FIELD_DISALLOWED_FILE_TYPES_DOWNLOAD_DESC="Set disallowed file types for frontend download." +COM_PHOCADOWNLOAD_FIELD_DISALLOWED_FILE_TYPES_DOWNLOAD_LABEL="Disallowed File Types (Download)" +COM_PHOCADOWNLOAD_FIELD_DISALLOWED_FILE_TYPES_UPLOAD_LABEL="Disallowed File Types (Upload)" +COM_PHOCADOWNLOAD_FIELD_DISPLAY_CATEGORY_COMMENTS_DESC="Set if category comments should be displayed or not" +COM_PHOCADOWNLOAD_FIELD_DISPLAY_CATEGORY_COMMENTS_LABEL="Display Category Comments" +COM_PHOCADOWNLOAD_FIELD_DISPLAY_DATE_TYPE_DESC="Set date type" +COM_PHOCADOWNLOAD_FIELD_DISPLAY_DATE_TYPE_LABEL="Display Date Type" +COM_PHOCADOWNLOAD_FIELD_DISPLAY_DESCRIPTION_DESC="Display or hide description" +COM_PHOCADOWNLOAD_FIELD_DISPLAY_DESCRIPTION_LABEL="Display Description" +COM_PHOCADOWNLOAD_FIELD_DISPLAY_DETAIL_BUTTON_DESC="Display or hide detail button" +COM_PHOCADOWNLOAD_FIELD_DISPLAY_DETAIL_BUTTON_LABEL="Display Detail Button" +COM_PHOCADOWNLOAD_FIELD_DISPLAY_DOWNLOADS_DESC="Display or hide the count of downloads" +COM_PHOCADOWNLOAD_FIELD_DISPLAY_DOWNLOADS_LABEL="Display Downloads" +COM_PHOCADOWNLOAD_FIELD_DISPLAY_FILE_COMMENTS_DESC="Set if file comments should be displayed or not" +COM_PHOCADOWNLOAD_FIELD_DISPLAY_FILE_COMMENTS_LABEL="Display File Comments" +COM_PHOCADOWNLOAD_FIELD_DISPLAY_FILE_VIEW_DESC="Enable or disable File View before download a file" +COM_PHOCADOWNLOAD_FIELD_DISPLAY_FILE_VIEW_LABEL="Display File View" +COM_PHOCADOWNLOAD_FIELD_DISPLAY_HOT_ICON_DESC="Set the number of hits (downloads). After reaching this number of downloads HOT icon will be displayed for the file, use zero for not displaying the icon" +COM_PHOCADOWNLOAD_FIELD_DISPLAY_HOT_ICON_LABEL="Display Hot Icon" +COM_PHOCADOWNLOAD_FIELD_DISPLAY_INACCESSIBLE_FILE_DESC="If the file will be inaccessible for e.g. not logged in users, it can be displayed for them. It means users will see the file but by clicking on the download button they will be redirected to login form." +COM_PHOCADOWNLOAD_FIELD_DISPLAY_INACCESSIBLE_FILE_LABEL="Display Inaccessible file" +COM_PHOCADOWNLOAD_FIELD_DISPLAY_MOST_DOWNLOAD_FILES_DESC="Display Most Download Files in Categories View" +COM_PHOCADOWNLOAD_FIELD_DISPLAY_MOST_DOWNLOAD_FILES_LABEL="Display Most Download Files" +COM_PHOCADOWNLOAD_FIELD_DISPLAY_NEW_ICON_DESC="Set the number of days. During these days NEW icon will be displayed for the file, use zero for not displaying the icon" +COM_PHOCADOWNLOAD_FIELD_DISPLAY_NEW_ICON_LABEL="Display New Icon" +COM_PHOCADOWNLOAD_FIELD_DISPLAY_NUM_FILES_CATEGORIES_VIEW_DESC="Display or hide number of files (Categories View)" +COM_PHOCADOWNLOAD_FIELD_DISPLAY_NUM_FILES_CATEGORIES_VIEW_HEADER_DESC="Display or hide number of files (Categories View - Header)" +COM_PHOCADOWNLOAD_FIELD_DISPLAY_NUM_FILES_CATEGORIES_VIEW_HEADER_LABEL="Display Number of Files (Categories View - Header)" +COM_PHOCADOWNLOAD_FIELD_DISPLAY_NUM_FILES_CATEGORIES_VIEW_LABEL="Display Number of Files (Categories View)" +COM_PHOCADOWNLOAD_FIELD_DISPLAY_PLAY_BUTTON_DESC="Display or hide play button" +COM_PHOCADOWNLOAD_FIELD_DISPLAY_PLAY_BUTTON_LABEL="Display Play Button" +COM_PHOCADOWNLOAD_FIELD_DISPLAY_PREVIEW_BUTTON_DESC="Display or hide preview button" +COM_PHOCADOWNLOAD_FIELD_DISPLAY_PREVIEW_BUTTON_LABEL="Display Preview Button" +COM_PHOCADOWNLOAD_FIELD_DISPLAY_UP_ICON_DESC="Display or hide up icon - icon back to category or back to categories view" +COM_PHOCADOWNLOAD_FIELD_DISPLAY_UP_ICON_LABEL="Display Up Icon" +COM_PHOCADOWNLOAD_FIELD_DOWNLOADS_DESC="Set Dowloads" +COM_PHOCADOWNLOAD_FIELD_DOWNLOADS_LABEL="Downloads" +COM_PHOCADOWNLOAD_FIELD_DOWNLOAD_FOLDER_DESC="Set download folder. If absolute path will be set, this parameter will be ignored. Be aware, the folder set in the parameter must exist on the server." +COM_PHOCADOWNLOAD_FIELD_DOWNLOAD_FOLDER_LABEL="Download Folder" +COM_PHOCADOWNLOAD_FIELD_ENABLE_APPROVE_USERFILE_DESC="If Yes, files will be uploaded as not authorized and must be authorized by administrator. If No, files will be uploaded as authorized" +COM_PHOCADOWNLOAD_FIELD_ENABLE_APPROVE_USERFILE_LABEL="Enable User File Authorization" +COM_PHOCADOWNLOAD_FIELD_ENABLE_MU_ADMIN_DESC="Enable or disable multiple upload feature for administration" +COM_PHOCADOWNLOAD_FIELD_ENABLE_MU_ADMIN_LABEL="Enable Multiple Upload (Administration)" +COM_PHOCADOWNLOAD_FIELD_ENABLE_PLUGIN_QUERY_DESC="Set if Plugin can modify SQL query (Experts only!)" +COM_PHOCADOWNLOAD_FIELD_ENABLE_PLUGIN_QUERY_LABEL="Enable Plugin Query" +COM_PHOCADOWNLOAD_FIELD_ENABLE_USER_STAT_DESC="Enable or disable user statistics" +COM_PHOCADOWNLOAD_FIELD_ENABLE_USER_STAT_LABEL="Enable User Statistics" +COM_PHOCADOWNLOAD_FIELD_EXTERNAL_DOWNLOAD_LINK_DESC="Select if the external download link will have attribute TARGET=_self or TARGET=_blank" +COM_PHOCADOWNLOAD_FIELD_EXTERNAL_DOWNLOAD_LINK_LABEL="External Download Link" +COM_PHOCADOWNLOAD_FIELD_EXTERNAL_LINK_DESC="If the file is stored on external server, paste the external link here. The form field 'Filename' must also be filled (paste the whole link to the file into the form field 'External file' and only the name of the file into the form field 'Filename'). If you set the form field 'Direct Link' (see above) to 'Yes', the external link will be directly accessed (without checking the rights or saving statistics). If you set the form field 'Direct Link' to 'No', internal site will be accessed - statistics will be saved, file will be checked for access rights and then the site will be redirected to the external link (be aware, if the file is public on external server, it cannot be protected by Phoca Download there). Be aware, internal site will be not accessed in File View while clicking on Submit (Download) button." +COM_PHOCADOWNLOAD_FIELD_EXTERNAL_LINK_LABEL="External Link" +COM_PHOCADOWNLOAD_FIELD_FILENAME_DESC="Set or select filename" +COM_PHOCADOWNLOAD_FIELD_FILENAME_LABEL="Filename" +COM_PHOCADOWNLOAD_FIELD_FILENAME_OR_NAME_LABEL="Filename or Title" +COM_PHOCADOWNLOAD_FIELD_FILENAME_OR_NAME_LABEL_DESC="Display Filename or Title" +COM_PHOCADOWNLOAD_FIELD_FILEPLAY_DESC="Set or select file which will be played." +COM_PHOCADOWNLOAD_FIELD_FILEPLAY_LABEL="File - Play" +COM_PHOCADOWNLOAD_FIELD_FILEPREVIEW_DESC="Set or select file which will be previewed" +COM_PHOCADOWNLOAD_FIELD_FILEPREVIEW_LABEL="File - Preview" +COM_PHOCADOWNLOAD_FIELD_FILE_ICON_SIZE_DESC="Set size of file icon" +COM_PHOCADOWNLOAD_FIELD_FILE_ICON_SIZE_LABEL="File Icon Size" +COM_PHOCADOWNLOAD_FIELD_FILE_ICON_SIZE_MD_DESC="Set size of file icon for most downloaded files" +COM_PHOCADOWNLOAD_FIELD_FILE_ICON_SIZE_MD_LABEL="File Icon Size (Most Downloaded Files)" +COM_PHOCADOWNLOAD_FIELD_FILE_ORDERING_DESC="Set file ordering" +COM_PHOCADOWNLOAD_FIELD_FILE_ORDERING_LABEL="File Ordering" +COM_PHOCADOWNLOAD_FIELD_FINISH_PUBLISHING_DESC="Set finish publishing date" +COM_PHOCADOWNLOAD_FIELD_FINISH_PUBLISHING_LABEL="Finish Publishing" +COM_PHOCADOWNLOAD_FIELD_HITS="Hits" +COM_PHOCADOWNLOAD_FIELD_HITS_DESC="Hits" +COM_PHOCADOWNLOAD_FIELD_ICON_DESC="Set icon for the file" +COM_PHOCADOWNLOAD_FIELD_ICON_LABEL="Icon" +COM_PHOCADOWNLOAD_FIELD_ICON_SPEC1_DESC="Set first specific icon for the file, will be displayed after filename" +COM_PHOCADOWNLOAD_FIELD_ICON_SPEC1_LABEL="Specific Icon (1)" +COM_PHOCADOWNLOAD_FIELD_ICON_SPEC2_DESC="Set first specific icon for the file, will be displayed after filename" +COM_PHOCADOWNLOAD_FIELD_ICON_SPEC2_LABEL="Specific Icon (2)" +COM_PHOCADOWNLOAD_FIELD_JCONFIG_PERMISSIONS_DESC="Permissions" +COM_PHOCADOWNLOAD_FIELD_JCONFIG_PERMISSIONS_LABEL="Permissions" +COM_PHOCADOWNLOAD_FIELD_LICENSE_BOX_HEIGHT_DESC="Set height of license box" +COM_PHOCADOWNLOAD_FIELD_LICENSE_BOX_HEIGHT_LABEL="License Box Height" +COM_PHOCADOWNLOAD_FIELD_LICENSE_DESC="Set license of the file, this is only information about the license, if you want that license text needs to be confirmed, you should fill the form field 'Confirm License'" +COM_PHOCADOWNLOAD_FIELD_LICENSE_LABEL="License" +COM_PHOCADOWNLOAD_FIELD_LICENSE_TEXT_DESC="Set license text" +COM_PHOCADOWNLOAD_FIELD_LICENSE_TEXT_LABEL="License Text" +COM_PHOCADOWNLOAD_FIELD_LICENSE_URL_DESC="Set URL to license. URL to site where is described the license of the file" +COM_PHOCADOWNLOAD_FIELD_LICENSE_URL_LABEL="License link" +COM_PHOCADOWNLOAD_FIELD_MAX_COUNT_USER_FILES_DESC="Set maximum count of files user can upload" +COM_PHOCADOWNLOAD_FIELD_MAX_COUNT_USER_FILES_LABEL="Maximum Count of uploaded user's files" +COM_PHOCADOWNLOAD_FIELD_MAX_SIZE_USER_FILES_DESC="Set maximum size of all files user can upload" +COM_PHOCADOWNLOAD_FIELD_MAX_SIZE_USER_FILES_LABEL="Maximum Size of all user's files" +COM_PHOCADOWNLOAD_FIELD_METADESC_DESC="Set meta description for Phoca Download" +COM_PHOCADOWNLOAD_FIELD_METADESC_LABEL="Meta Description" +COM_PHOCADOWNLOAD_FIELD_METAKEY_DESC="Set meta keywords for Phoca Download" +COM_PHOCADOWNLOAD_FIELD_METAKEY_LABEL="Meta Keywords" +COM_PHOCADOWNLOAD_FIELD_ORDERING_DESC="Set ordering" +COM_PHOCADOWNLOAD_FIELD_ORDERING_LABEL="Ordering" +COM_PHOCADOWNLOAD_FIELD_PARENT_CATEGORY_DESC="Set parent category" +COM_PHOCADOWNLOAD_FIELD_PARENT_CATEGORY_LABEL="Parent Category" +COM_PHOCADOWNLOAD_FIELD_PLAYER_HEIGHT_DESC="Set player height (in px)" +COM_PHOCADOWNLOAD_FIELD_PLAYER_HEIGHT_LABEL="Player Height" +COM_PHOCADOWNLOAD_FIELD_PLAYER_MP3_HEIGHT_DESC="Set player height (MP3, OGG Audio)" +COM_PHOCADOWNLOAD_FIELD_PLAYER_MP3_HEIGHT_LABEL="Player Height (MP3, OGG Audio)" +COM_PHOCADOWNLOAD_FIELD_PLAYER_WIDTH_DESC="Set player width (in px)" +COM_PHOCADOWNLOAD_FIELD_PLAYER_WIDTH_LABEL="Player Width" +COM_PHOCADOWNLOAD_FIELD_PLAY_POPUP_WINDOW_DESC="Select play popup window" +COM_PHOCADOWNLOAD_FIELD_PLAY_POPUP_WINDOW_LABEL="Play Popup Window" +COM_PHOCADOWNLOAD_FIELD_PREVIEW_HEIGHT_DESC="Set preview height (in px)" +COM_PHOCADOWNLOAD_FIELD_PREVIEW_HEIGHT_LABEL="Preview Height" +COM_PHOCADOWNLOAD_FIELD_PREVIEW_POPUP_WINDOW_DESC="Select preview popup window" +COM_PHOCADOWNLOAD_FIELD_PREVIEW_POPUP_WINDOW_LABEL="Preview Popup Window" +COM_PHOCADOWNLOAD_FIELD_PREVIEW_WIDTH_DESC="Set preview width (in px)" +COM_PHOCADOWNLOAD_FIELD_PREVIEW_WIDTH_LABEL="Preview Width" +COM_PHOCADOWNLOAD_FIELD_PUBLISHED_DESC="Publish or unpublish" +COM_PHOCADOWNLOAD_FIELD_PUBLISHED_LABEL="Published" +COM_PHOCADOWNLOAD_FIELD_SEND_EMAIL_DOWNLOAD_DESC="Send email if user will download a file" +COM_PHOCADOWNLOAD_FIELD_SEND_EMAIL_DOWNLOAD_LABEL="Send Email (Download)" +COM_PHOCADOWNLOAD_FIELD_SEND_EMAIL_UPLOAD_DESC="Send email if user will upload a file" +COM_PHOCADOWNLOAD_FIELD_SEND_EMAIL_UPLOAD_LABEL="Send Email (Upload)" +COM_PHOCADOWNLOAD_FIELD_START_PUBLISHING_DESC="Set start publishing date" +COM_PHOCADOWNLOAD_FIELD_START_PUBLISHING_LABEL="Start Publishing" +COM_PHOCADOWNLOAD_FIELD_THEME_DESC="Set theme" +COM_PHOCADOWNLOAD_FIELD_THEME_LABEL="Theme" +COM_PHOCADOWNLOAD_FIELD_TITLE_DESC="Set title" +COM_PHOCADOWNLOAD_FIELD_TITLE_LABEL="Title" +COM_PHOCADOWNLOAD_FIELD_UPLOAD_MAX_SIZE_ADMIN_DESC="Set the maximum size for an upload in administration. Use zero for no limit. Do not forget, that the upload size can be limited by the server settings (in bytes)" +COM_PHOCADOWNLOAD_FIELD_UPLOAD_MAX_SIZE_ADMIN_LABEL="Maximum Upload Size (Administration)" +COM_PHOCADOWNLOAD_FIELD_UPLOAD_RIGHTS_DESC="Set upload rights" +COM_PHOCADOWNLOAD_FIELD_UPLOAD_RIGHTS_LABEL="Upload Rights" +COM_PHOCADOWNLOAD_FIELD_USER_FILE_UPLOAD_SIZE_DESC="Set maximum size of file which can be uploaded by user in frontend" +COM_PHOCADOWNLOAD_FIELD_USER_FILE_UPLOAD_SIZE_LABEL="User File Upload Size" +COM_PHOCADOWNLOAD_FIELD_USER_UPLOAD_ENABLE_DESC="Enable or disable user upload" +COM_PHOCADOWNLOAD_FIELD_USER_UPLOAD_ENABLE_LABEL="Enable User Upload" +COM_PHOCADOWNLOAD_FIELD_VERSION_DESC="Set version" +COM_PHOCADOWNLOAD_FIELD_VERSION_LABEL="Version" +COM_PHOCADOWNLOAD_FILE="File" +COM_PHOCADOWNLOAD_FILENAME="Filename" +COM_PHOCADOWNLOAD_FILENAME_AND_TITLE="Filename and Title" +COM_PHOCADOWNLOAD_FILES="Files" +COM_PHOCADOWNLOAD_FILESIZE="File Size" +COM_PHOCADOWNLOAD_FILES_UPLOADED="Files Uploaded" +COM_PHOCADOWNLOAD_FILE_ALREADY_EXISTS="File already exists" +COM_PHOCADOWNLOAD_FILE_FILEATIME="File (access time)" +COM_PHOCADOWNLOAD_FILE_FILECTIME="File (inode change time)" +COM_PHOCADOWNLOAD_FILE_FILEMTIME="File (modification time)" +COM_PHOCADOWNLOAD_FILE_SETTINGS_LABEL="File Settings" +COM_PHOCADOWNLOAD_FILE_SIZE_EMPTY="File Size is empty" +COM_PHOCADOWNLOAD_FILE_TITLE="File Title" +COM_PHOCADOWNLOAD_FILTER="Filter" +COM_PHOCADOWNLOAD_FINISH="Finish" +COM_PHOCADOWNLOAD_FINISH_PUBLISHING="Finish Publishing" +COM_PHOCADOWNLOAD_FOLDER="Folder" +COM_PHOCADOWNLOAD_FORM_SELECT_FILENAME="Select Filename" +COM_PHOCADOWNLOAD_FORM_SELECT_ICON="Select Icon" +COM_PHOCADOWNLOAD_FTP_LOGIN_DESC="For uploading files (images, themes), Joomla! will most likely need your FTP account details. Please enter them in the form fields below." +COM_PHOCADOWNLOAD_FTP_LOGIN_LABEL="FTP Login Details" +COM_PHOCADOWNLOAD_GREY="Grey" +COM_PHOCADOWNLOAD_GROUP_LABEL_PUBLISHING_DETAILS="Publishing Details" +COM_PHOCADOWNLOAD_GUEST="Guest" +COM_PHOCADOWNLOAD_HELP="Help" +COM_PHOCADOWNLOAD_HITS="Hits" +COM_PHOCADOWNLOAD_ID="ID" +COM_PHOCADOWNLOAD_ID_ASC="ID Ascending" +COM_PHOCADOWNLOAD_ID_DESC="ID Descending" +COM_PHOCADOWNLOAD_INFO="Info" +COM_PHOCADOWNLOAD_INSERT="Insert" +COM_PHOCADOWNLOAD_INSERT_FILENAME="Insert Filename" +COM_PHOCADOWNLOAD_INSERT_ICON="Insert Icon" +COM_PHOCADOWNLOAD_INVALID_TOKEN="Invalid Token" +COM_PHOCADOWNLOAD_I_AGREE_TO_TERMS_LISTED_ABOVE="I agree to the terms listed above" +COM_PHOCADOWNLOAD_JCOMMENTS="JComments" +COM_PHOCADOWNLOAD_LICENSE="License" +COM_PHOCADOWNLOAD_LICENSES="Licenses" +COM_PHOCADOWNLOAD_LICENSE_AGREEMENT="License Agreement" +COM_PHOCADOWNLOAD_LOADING="Loading" +COM_PHOCADOWNLOAD_MAX_LIMIT_CHARS_REACHED="You have reached maximum limit of characters allowed" +COM_PHOCADOWNLOAD_MAX_SIZE="Max Size" +COM_PHOCADOWNLOAD_MODAL_BOX="Modal Box" +COM_PHOCADOWNLOAD_MOST_DOWNLOADED_FILES="Most downloaded files" +COM_PHOCADOWNLOAD_MULTIPLE_UPLOAD="Multiple Upload" +COM_PHOCADOWNLOAD_NEW="New" +COM_PHOCADOWNLOAD_NEW_CATEGORY="New Category" +COM_PHOCADOWNLOAD_NEW_FILE="New File" +COM_PHOCADOWNLOAD_NO="No" +COM_PHOCADOWNLOAD_NOBODY="Nobody" +COM_PHOCADOWNLOAD_NONE="None" +COM_PHOCADOWNLOAD_NOT_APPROVE="Unauthorize" +COM_PHOCADOWNLOAD_NOT_APPROVED="Not Authorized" +COM_PHOCADOWNLOAD_NOT_APPROVED_FILES_COUNT="Count of not authorized file(s)" +COM_PHOCADOWNLOAD_NOT_APPROVE_ITEM="Unauthorize item" +COM_PHOCADOWNLOAD_NOT_AUTHORISED_ACTION="You are not authorized to do this action" +COM_PHOCADOWNLOAD_NOT_AUTHORISED_TO_UPLOAD="You are not authorized to upload file" +COM_PHOCADOWNLOAD_NOT_INSTALLED_BROWSERPLUS="You browser doesn't have BrowserPlus installed." +COM_PHOCADOWNLOAD_NOT_INSTALLED_FLASH="You browser doesn't have Flash installed." +COM_PHOCADOWNLOAD_NOT_INSTALLED_GEARS="You browser doesn't have Gears installed." +COM_PHOCADOWNLOAD_NOT_INSTALLED_SILVERLIGHT="You browser doesn't have Silverlight installed." +COM_PHOCADOWNLOAD_NOT_SUPPORTED_HTML4="You browser doesn't have HTML 4 support." +COM_PHOCADOWNLOAD_NOT_SUPPORTED_HTML5="You browser doesn't have HTML 5 support." +COM_PHOCADOWNLOAD_NO_EXPIRY="No Expiry" +COM_PHOCADOWNLOAD_NO_RIGHTS_ACCESS_CATEGORY="You have no rights to access this category" +COM_PHOCADOWNLOAD_NO_SUBCATEGORIES="No Subcategories" +COM_PHOCADOWNLOAD_N_ITEMS_APPROVED="%d items successfully authorized" +COM_PHOCADOWNLOAD_N_ITEMS_APPROVED_1="%d item successfully authorized" +COM_PHOCADOWNLOAD_N_ITEMS_CHECKED_IN_0="No item successfully checked in" +COM_PHOCADOWNLOAD_N_ITEMS_CHECKED_IN_1="%d item successfully checked in" +COM_PHOCADOWNLOAD_N_ITEMS_CHECKED_IN_MORE="%d items successfully checked in" +COM_PHOCADOWNLOAD_N_ITEMS_DELETED="%d items successfully deleted" +COM_PHOCADOWNLOAD_N_ITEMS_DELETED_1="%d item successfully deleted" +COM_PHOCADOWNLOAD_N_ITEMS_DISAPPROVED="%d items successfully unauthorized" +COM_PHOCADOWNLOAD_N_ITEMS_DISAPPROVED_1="%d item successfully unauthorized" +COM_PHOCADOWNLOAD_N_ITEMS_PUBLISHED="%d items successfully published" +COM_PHOCADOWNLOAD_N_ITEMS_PUBLISHED_1="%d item successfully published" +COM_PHOCADOWNLOAD_N_ITEMS_UNPUBLISHED="%d items successfully unpublished" +COM_PHOCADOWNLOAD_N_ITEMS_UNPUBLISHED_1="%d item successfully unpublished" +COM_PHOCADOWNLOAD_OPEN="Open" +COM_PHOCADOWNLOAD_ORDER="Order" +COM_PHOCADOWNLOAD_ORDERING="Ordering" +COM_PHOCADOWNLOAD_ORDERING_ASC="Ordering Ascending" +COM_PHOCADOWNLOAD_ORDERING_DESC="Ordering Descending" +COM_PHOCADOWNLOAD_OVERLIB="Overlib" +COM_PHOCADOWNLOAD_OWNER="Owner" +COM_PHOCADOWNLOAD_PARENT_CATEGORY="Parent Category" +COM_PHOCADOWNLOAD_PATH="Path" +COM_PHOCADOWNLOAD_PD_CONTROL_PANEL="Phoca Download Control Panel" +COM_PHOCADOWNLOAD_PD_INFO="Phoca Download Info" +COM_PHOCADOWNLOAD_PENDING="Pending" +COM_PHOCADOWNLOAD_PLAY="Play" +COM_PHOCADOWNLOAD_PLAY_SETTINGS_LABEL="Play Settings" +COM_PHOCADOWNLOAD_PLEASE_ADD_FILE="Please add a file" +COM_PHOCADOWNLOAD_PLEASE_ENTER_VALID_EMAIL_ADDRESS="Please enter a valid email address" +COM_PHOCADOWNLOAD_PLEASE_ENTER_VALID_WEBSITE="Please enter a valid website (format: http://your_site.com)" +COM_PHOCADOWNLOAD_PLEASE_LOGIN_DOWNLOAD_FILE="Please login to download the file" +COM_PHOCADOWNLOAD_PLEASE_SELECT_CATEGORY="Please select category" +COM_PHOCADOWNLOAD_PREVIEW="Preview" +COM_PHOCADOWNLOAD_PREVIEW_SETTINGS_LABEL="Preview Settings" +COM_PHOCADOWNLOAD_PUBLISHED="Published" +COM_PHOCADOWNLOAD_PUBLISH_INFORMATION="Publish Information" +COM_PHOCADOWNLOAD_RESET="Reset" +COM_PHOCADOWNLOAD_ROUNDED_CORNERS="Rounded Corners" +COM_PHOCADOWNLOAD_SEARCH="Search" +COM_PHOCADOWNLOAD_SEARCH_IN_TITLE="Search" +COM_PHOCADOWNLOAD_SELECT_CATEGORY="Select Category" +COM_PHOCADOWNLOAD_SELECT_FILES="Select Files" +COM_PHOCADOWNLOAD_SELECT_ITEM_RESET="Select an item to reset" +COM_PHOCADOWNLOAD_SELECT_LICENSE="Select License" +COM_PHOCADOWNLOAD_SELF="Self" +COM_PHOCADOWNLOAD_SIZE="Size" +COM_PHOCADOWNLOAD_STANDARD_POPUP_WINDOW="Standard Popup Window" +COM_PHOCADOWNLOAD_START="Start" +COM_PHOCADOWNLOAD_START_PUBLISHING="Start Publishing" +COM_PHOCADOWNLOAD_START_UPLOAD="Start Upload" +COM_PHOCADOWNLOAD_START_UPLOADING_QUEUE="Start Uploading Queue" +COM_PHOCADOWNLOAD_STATISTICS="Statistics" +COM_PHOCADOWNLOAD_STATUS="Status" +COM_PHOCADOWNLOAD_STOP_CURRENT_UPLOAD="Stop Current Upload" +COM_PHOCADOWNLOAD_SUCCESS="Success" +COM_PHOCADOWNLOAD_SUCCESS_FILE_UPLOAD="File uploaded" +COM_PHOCADOWNLOAD_SUCCESS_FILE_UPLOADED="File uploaded" +COM_PHOCADOWNLOAD_SUCCESS_FOLDER_CREATING="Folder created" +COM_PHOCADOWNLOAD_SUCCESS_RESET_USER_STAT="User Statistics reset" +COM_PHOCADOWNLOAD_THERE_IS_NO_FILE="There is no file" +COM_PHOCADOWNLOAD_TITLE="Title" +COM_PHOCADOWNLOAD_TITLE_ASC="Title Ascending" +COM_PHOCADOWNLOAD_TITLE_DESC="Title Descending" +COM_PHOCADOWNLOAD_TOP="Top" +COM_PHOCADOWNLOAD_TOP_AND_OVERLIB="Top and Overlib" +COM_PHOCADOWNLOAD_TOP_WITH_DETAIL_AND_OVERLIB="Top with detail and Overlib" +COM_PHOCADOWNLOAD_UNABLE_TO_UPLOAD_FILE="File cannot be uploaded - unable to move file" +COM_PHOCADOWNLOAD_UP="Up" +COM_PHOCADOWNLOAD_UPLOAD="Upload" +COM_PHOCADOWNLOAD_UPLOADED_FILES="Uploaded Files" +COM_PHOCADOWNLOAD_UPLOAD_FILE="Upload File" +COM_PHOCADOWNLOAD_USER="User" +COM_PHOCADOWNLOAD_USERNAME="Username" +COM_PHOCADOWNLOAD_USERS="Users" +COM_PHOCADOWNLOAD_USER_STATISTICS="User Statistics" +COM_PHOCADOWNLOAD_USER_UPLOAD_DISABLED="User Upload is disabled" +COM_PHOCADOWNLOAD_VERSION="Version" +COM_PHOCADOWNLOAD_WARNFILENAME="File name must only contain alphanumeric characters, underscores, hyphens and spaces." +COM_PHOCADOWNLOAD_WARNFILETOOLARGE="This file is too large to upload." +COM_PHOCADOWNLOAD_WARNFILETYPE="This file type is not supported (or there are some restrictions on the server)." +COM_PHOCADOWNLOAD_WARNFILETYPE_DISALLOWED="The file type is disallowed - file cannot be uploaded" +COM_PHOCADOWNLOAD_WARNFILETYPE_DISALLOWED_DOWNLOAD="Error while downloading file (Disallowed Mime Type)" +COM_PHOCADOWNLOAD_WARNFILETYPE_DOWNLOAD="Error while downloading file (Mime Type not found)" +COM_PHOCADOWNLOAD_WARNFILETYPE_NOT_ALLOWED="The file type is not allowed - file cannot be uploaded" +COM_PHOCADOWNLOAD_WARNIEXSS="Possible IE XSS Attack found." +COM_PHOCADOWNLOAD_WARNING_AGREE_LICENSE_TERMS="You must agree to listed terms" +COM_PHOCADOWNLOAD_WARNING_AUTHORIZE_ALL="Do you really want to authorize all files of all users?" +COM_PHOCADOWNLOAD_WARNING_DELETE_ITEMS="Are you sure you want to delete the listed Items?" +COM_PHOCADOWNLOAD_WARNING_DIRNAME="Error: Wrong folder name" +COM_PHOCADOWNLOAD_WARNING_INPUT_FILE_UPLOAD="Please input a file for upload" +COM_PHOCADOWNLOAD_WARNING_RESET_DOWNLOADS="Really reset downloads?" +COM_PHOCADOWNLOAD_WARNINVALIDIMG="Not a valid image." +COM_PHOCADOWNLOAD_WARNINVALIDMIME="Illegal or invalid mime type detected." +COM_PHOCADOWNLOAD_WARNNOTADMIN="Uploaded file is not an image file and you are not a manager or higher." +COM_PHOCADOWNLOAD_WARNSAFEMODE="Directory creation is not allowed while running in SAFE MODE as this can cause problems." +COM_PHOCADOWNLOAD_WARNUSERFILESTOOLARGE="Maximum size of all your files reached. File cannot be uploaded." +COM_PHOCADOWNLOAD_WARNUSERFILESTOOMUCH="Maximum count of all your files reached. File cannot be uploaded." +COM_PHOCADOWNLOAD_YES="Yes" +COM_PHOCADOWNLOAD_AT="at" +COM_PHOCADOWNLOAD_ERROR_CONTROLLER="Error: No such controller or task" +COM_PHOCADOWNLOAD_ERROR_FOLDER_CREATING_EXISTS="Folder exists" +COM_PHOCADOWNLOAD_SUCCESS_FOLDER_CREATING="Folder created" +COM_PHOCADOWNLOAD_EDIT_LICENSE="Edit License" +COM_PHOCADOWNLOAD_NEW_LICENSE="New License" diff --git a/packages/phocadownload/administrator/language/en-GB/en-GB.com_phocadownload.sys.ini b/packages/phocadownload/administrator/language/en-GB/en-GB.com_phocadownload.sys.ini new file mode 100644 index 00000000..f0d511f8 --- /dev/null +++ b/packages/phocadownload/administrator/language/en-GB/en-GB.com_phocadownload.sys.ini @@ -0,0 +1,59 @@ +; @package Joomla.Framework +; @copyright Copyright (C) 2005 - 2010 Open Source Matters, Inc. All rights reserved. +; @license GNU General Public License version 2 or later; see LICENSE.txt +; +; @component Phoca Component +; @copyright Copyright (C) Jan Pavelka www.phoca.cz +; @license http://www.gnu.org/copyleft/gpl.html GNU General Public License version 2 or later; +; +; @test utf-8 ä, ö, ü +; + +;[3.0.2] +COM_PHOCADOWNLOAD_DOWNLOAD_LAYOUT="Download View" +COM_PHOCADOWNLOAD_DOWNLOAD_LAYOUT_DESC="This view displays link of file to download (File which is accessible by unique download URL)" +COM_PHOCADOWNLOAD_DOWNLOAD_GROUP="Download View" +COM_PHOCADOWNLOAD_DOWNLOAD_GROUP_DESC="This view displays link of file to download (File which is accessible by unique download URL)" + +;[3.0.0 Stable] +COM_PHOCADOWNLOAD_VERSION="Version" +;[3.0.0] +COM_PHOCADOWNLOAD_UPDATE_TEXT="Phoca Download updated" +COM_PHOCADOWNLOAD_DOWNLOADS="Downloads" +COM_PHOCADOWNLOAD_UPLOADS="Uploads" +COM_PHOCADOWNLOAD_LOGGING="Logging" +COM_PHOCADOWNLOAD_STYLES="Styles" +;[2.1.2] +COM_PHOCADOWNLOAD_TAGS="Tags" +COM_PHOCADOWNLOAD_LAYOUT="Layout" +;[2.1.0] +PHOCADOWNLOAD="Phoca Download" +COM_PHOCADOWNLOAD="Phoca Download" +COM_PHOCADOWNLOAD_CONTROLPANEL="Control Panel" +COM_PHOCADOWNLOAD_FILES="Files" +COM_PHOCADOWNLOAD_CATEGORIES="Categories" +COM_PHOCADOWNLOAD_LICENSES="Licenses" +COM_PHOCADOWNLOAD_STATISTICS="Statistics" +COM_PHOCADOWNLOAD_USERS="Users" +COM_PHOCADOWNLOAD_INFO="Info" +COM_PHOCADOWNLOAD_FILE_RATING="File Rating" +COM_PHOCADOWNLOAD_XML_DESCRIPTION="Phoca Download is a download manager for Joomla! CMS. It includes component, modules and plugins and allows to add files to the site which can be downloaded by other users." +COM_PHOCADOWNLOAD_CATEGORIES_GROUP="List Of Categories (Categories View)" +COM_PHOCADOWNLOAD_CATEGORIES_GROUP_DESC="This view displays list of categories" +COM_PHOCADOWNLOAD_CATEGORY_GROUP="List of Files (Category View)" +COM_PHOCADOWNLOAD_CATEGORY_GROUP_DESC="This view displays list of files" +COM_PHOCADOWNLOAD_FILE_GROUP="File View - detail of a file" +COM_PHOCADOWNLOAD_FILE_GROUP_DESC="This view displays detail of a file" +COM_PHOCADOWNLOAD_USER_UPLOAD_GROUP="User Upload View" +COM_PHOCADOWNLOAD_USER_UPLOAD_GROUP_DESC="This view displays User Upload" +COM_PHOCADOWNLOAD_CATEGORIES_LIST_LAYOUT="List Of Categories (Categories View)" +COM_PHOCADOWNLOAD_CATEGORIES_LIST_LAYOUT_DESC="This view displays list of categories" +COM_PHOCADOWNLOAD_CATEGORY_LIST_LAYOUT="List of Files (Category View)" +COM_PHOCADOWNLOAD_CATEGORY_LIST_LAYOUT_DESC="This view displays list of files" +COM_PHOCADOWNLOAD_USER_UPLOAD_LAYOUT="User Upload" +COM_PHOCADOWNLOAD_USER_UPLOAD_LAYOUT_DESC="This view displays User Upload" +COM_PHOCADOWNLOAD_FILE_LAYOUT="File View" +COM_PHOCADOWNLOAD_FILE_LAYOUT_DESC="This view displays details of a file" + +COM_PHOCADOWNLOAD_INSTALL="Install" +COM_PHOCADOWNLOAD_UPGRADE="Upgrade" \ No newline at end of file diff --git a/packages/phocadownload/administrator/language/en-GB/en-GB.plg_content_phocadownload.ini b/packages/phocadownload/administrator/language/en-GB/en-GB.plg_content_phocadownload.ini new file mode 100644 index 00000000..a287cc17 --- /dev/null +++ b/packages/phocadownload/administrator/language/en-GB/en-GB.plg_content_phocadownload.ini @@ -0,0 +1,33 @@ +; @package Joomla.Framework +; @copyright Copyright (C) 2005 - 2010 Open Source Matters, Inc. All rights reserved. +; @license GNU General Public License version 2 or later; see LICENSE.txt +; +; @extension Phoca Module +; @copyright Copyright (C) Jan Pavelka www.phoca.cz +; @license http://www.gnu.org/copyleft/gpl.html GNU General Public License version 2 or later; +; +; @test utf-8 ä, ö, ü +; + +;[3.0.2] +PLG_CONTENT_PHOCADOWNLOAD_NO="No" +PLG_CONTENT_PHOCADOWNLOAD_YES="Yes" +PLG_CONTENT_PHOCADOWNLOAD_FILE_ICON_MIME_LABEL="File Icon (Extension Mime Type)" +PLG_CONTENT_PHOCADOWNLOAD_FILE_ICON_MIME_DESC="Enable or disable displaying of file icon by extension mime type (for example: PDF icon will be displayed next to PDF documents). Be aware not all extension mime type icons are available." + +PLG_CONTENT_PHOCADOWNLOAD_DESCRIPTION="

Phoca Download Content Plugin - displaying Phoca Download files or YouTube videos in article.

Enable and publish this plugin in Plugin Manager

More information: Phoca.cz

Documentation: Phoca Documentation

Help and Support: Phoca Forum

" +PLG_CONTENT_PHOCADOWNLOAD="Phoca Download Plugin" +PLG_CONTENT_PHOCADOWNLOAD_DOWNLOAD_CATEGORIES="Download Categories" +PLG_CONTENT_PHOCADOWNLOAD_DOWNLOAD_CATEGORY="Download Category" +PLG_CONTENT_PHOCADOWNLOAD_DOWNLOAD_FILE="Download File" +PLG_CONTENT_PHOCADOWNLOAD_ICON_SIZE_LABEL="Icon Size" +PLG_CONTENT_PHOCADOWNLOAD_ICON_SIZE_DESC="Set Icon Size" +PLG_CONTENT_PHOCADOWNLOAD_PLAY_FILE="Play File" +PLG_CONTENT_PHOCADOWNLOAD_PHOCA_DOWNLOAD_ERROR="Phoca Download Error" +PLG_CONTENT_PHOCADOWNLOAD_PHOCA_DOWNLOAD_NOT_INSTALLED_ON_YOUR_SYSTEM="Phoca Download is not installed on your system" +PLG_CONTENT_PHOCADOWNLOAD_NO_CORRECT_FILE_FOR_PLAYING_FOUND="No correct file for playing found" +PLG_CONTENT_PHOCADOWNLOAD_NO_FILE_FOR_PLAYING_FOUND="No file for playing found" +PLG_CONTENT_PHOCADOWNLOAD_NO_FILE_FOR_PREVIEWING_FOUND="No file for previewing found" +PLG_CONTENT_PHOCADOWNLOAD_PLAY="Play" +PLG_CONTENT_PHOCADOWNLOAD_PREVIEW="Preview" +PLG_CONTENT_PHOCADOWNLOAD_WRONG_YOUTUBE_URL="Wrong YouTube URL" diff --git a/packages/phocadownload/administrator/language/en-GB/en-GB.plg_content_phocadownload.sys.ini b/packages/phocadownload/administrator/language/en-GB/en-GB.plg_content_phocadownload.sys.ini new file mode 100644 index 00000000..45f32422 --- /dev/null +++ b/packages/phocadownload/administrator/language/en-GB/en-GB.plg_content_phocadownload.sys.ini @@ -0,0 +1,14 @@ +; @package Joomla.Framework +; @copyright Copyright (C) 2005 - 2010 Open Source Matters, Inc. All rights reserved. +; @license GNU General Public License version 2 or later; see LICENSE.txt +; +; @extension Phoca Module +; @copyright Copyright (C) Jan Pavelka www.phoca.cz +; @license http://www.gnu.org/copyleft/gpl.html GNU General Public License version 2 or later; +; +; @test utf-8 ä, ö, ü +; + +PLG_CONTENT_PHOCADOWNLOAD_DESCRIPTION="

Phoca Download Content Plugin - displaying Phoca Download files or YouTube videos in article.

Enable and publish this plugin in Plugin Manager

More information: Phoca.cz

Documentation: Phoca Documentation

Help and Support: Phoca Forum

" +PLG_CONTENT_PHOCADOWNLOAD="Phoca Download Plugin" + diff --git a/packages/phocadownload/administrator/language/en-GB/en-GB.plg_editors-xtd_phocadownload.ini b/packages/phocadownload/administrator/language/en-GB/en-GB.plg_editors-xtd_phocadownload.ini new file mode 100644 index 00000000..69cad9c1 --- /dev/null +++ b/packages/phocadownload/administrator/language/en-GB/en-GB.plg_editors-xtd_phocadownload.ini @@ -0,0 +1,19 @@ +; @package Joomla.Framework +; @copyright Copyright (C) 2005 - 2010 Open Source Matters, Inc. All rights reserved. +; @license GNU General Public License version 2 or later; see LICENSE.txt +; +; @component Phoca Plugin +; @copyright Copyright (C) Jan Pavelka www.phoca.cz +; @license http://www.gnu.org/copyleft/gpl.html GNU General Public License version 2 or later; +; +; @test utf-8 ä, ö, ü +; + +;[3.0.1] +PLG_EDITORS-XTD_PHOCADOWNLOAD="Phoca Download Button Plugin" +PLG_EDITORS-XTD_PHOCADOWNLOAD_DESCRIPTION="

Phoca Download Button Plugin - displays button in editor to add Phoca Download files easily to article.

Enable and publish this plugin in Plugin Manager

More information: Phoca.cz

Documentation: Phoca Documentation

Help and Support: Phoca Forum

" +PLG_EDITORS-XTD_PHOCADOWNLOAD_NO="No" +PLG_EDITORS-XTD_PHOCADOWNLOAD_YES="Yes" +PLG_EDITORS-XTD_PHOCADOWNLOAD_ENABLE_FRONTEND_LABEL="Display In Frontend" +PLG_EDITORS-XTD_PHOCADOWNLOAD_ENABLE_FRONTEND_DESC="Enable or disable displaying button in frontend" +PLG_EDITORS-XTD_PHOCADOWNLOAD_FILE="Phoca Download File" diff --git a/packages/phocadownload/administrator/language/en-GB/en-GB.plg_editors-xtd_phocadownload.sys.ini b/packages/phocadownload/administrator/language/en-GB/en-GB.plg_editors-xtd_phocadownload.sys.ini new file mode 100644 index 00000000..d35b9993 --- /dev/null +++ b/packages/phocadownload/administrator/language/en-GB/en-GB.plg_editors-xtd_phocadownload.sys.ini @@ -0,0 +1,13 @@ +; @package Joomla.Framework +; @copyright Copyright (C) 2005 - 2010 Open Source Matters, Inc. All rights reserved. +; @license GNU General Public License version 2 or later; see LICENSE.txt +; +; @component Phoca Module +; @copyright Copyright (C) Jan Pavelka www.phoca.cz +; @license http://www.gnu.org/copyleft/gpl.html GNU General Public License version 2 or later; +; +; @test utf-8 ä, ö, ü +; +;[3.0.0] +PLG_EDITORS-XTD_PHOCADOWNLOAD="Phoca Download Button Plugin" +PLG_EDITORS-XTD_PHOCADOWNLOAD_DESCRIPTION="

Phoca Download Button Plugin - displays button in editor to add Phoca Download files easily to article.

Enable and publish this plugin in Plugin Manager

More information: Phoca.cz

Documentation: Phoca Documentation

Help and Support: Phoca Forum

" diff --git a/packages/phocadownload/administrator/language/en-GB/en-GB.plg_search_phocadownload.ini b/packages/phocadownload/administrator/language/en-GB/en-GB.plg_search_phocadownload.ini new file mode 100644 index 00000000..4790308a --- /dev/null +++ b/packages/phocadownload/administrator/language/en-GB/en-GB.plg_search_phocadownload.ini @@ -0,0 +1,17 @@ +; @package Joomla.Framework +; @copyright Copyright (C) 2005 - 2010 Open Source Matters, Inc. All rights reserved. +; @license GNU General Public License version 2 or later; see LICENSE.txt +; +; @component Phoca Plugin +; @copyright Copyright (C) Jan Pavelka www.phoca.cz +; @license http://www.gnu.org/copyleft/gpl.html GNU General Public License version 2 or later; +; +; @test utf-8 ä, ö, ü +; + +;[3.0.0] +PLG_SEARCH_PHOCADOWNLOAD_PHOCADOWNLOAD="Phoca Download" +PLG_SEARCH_PHOCADOWNLOAD="Phoca Download Search Plugin" +PLG_SEARCH_PHOCADOWNLOAD_DESCRIPTION="Phoca Download Search Plugin - Phoca Plugin for Joomla! CMS
More information on www.phoca.cz" +PLG_SEARCH_PHOCADOWNLOAD_SEARCH_LIMIT_LABEL="Search Limit" +PLG_SEARCH_PHOCADOWNLOAD_SEARCH_LIMIT_DESC="Set number of search items to return" diff --git a/packages/phocadownload/administrator/language/en-GB/en-GB.plg_search_phocadownload.sys.ini b/packages/phocadownload/administrator/language/en-GB/en-GB.plg_search_phocadownload.sys.ini new file mode 100644 index 00000000..5e59eb67 --- /dev/null +++ b/packages/phocadownload/administrator/language/en-GB/en-GB.plg_search_phocadownload.sys.ini @@ -0,0 +1,13 @@ +; @package Joomla.Framework +; @copyright Copyright (C) 2005 - 2010 Open Source Matters, Inc. All rights reserved. +; @license GNU General Public License version 2 or later; see LICENSE.txt +; +; @component Phoca Module +; @copyright Copyright (C) Jan Pavelka www.phoca.cz +; @license http://www.gnu.org/copyleft/gpl.html GNU General Public License version 2 or later; +; +; @test utf-8 ä, ö, ü +; +;[3.0.0] +PLG_SEARCH_PHOCADOWNLOAD="Phoca Download Search Plugin" +PLG_SEARCH_PHOCADOWNLOAD_DESCRIPTION="Phoca Download Search Plugin - Phoca Plugin for Joomla! CMS
More information on www.phoca.cz" diff --git a/packages/phocadownload/components/com_phocadownload/assets/flowplayer/LICENSE-flowplayer.txt b/packages/phocadownload/components/com_phocadownload/assets/flowplayer/LICENSE-flowplayer.txt new file mode 100644 index 00000000..c605e448 --- /dev/null +++ b/packages/phocadownload/components/com_phocadownload/assets/flowplayer/LICENSE-flowplayer.txt @@ -0,0 +1,10 @@ +The FlowPlayer Free version is released under GNU GENERAL PUBLIC LICENSE +Version 3 (GPL). + +Note that the GPL requires that you don't remove the Flowpayer copyright notices +from the user interface. See section 5.d below. + +Commercial licenses are available. The commercial player version does +not have any Flowplayer logos or texts. + +GNU GENERAL PUBLIC LICENSE - see: http://www.gnu.org/licenses/gpl-3.0.html \ No newline at end of file diff --git a/packages/phocadownload/components/com_phocadownload/assets/flowplayer/LICENSE-flowplayeraudio.txt b/packages/phocadownload/components/com_phocadownload/assets/flowplayer/LICENSE-flowplayeraudio.txt new file mode 100644 index 00000000..bab38cb7 --- /dev/null +++ b/packages/phocadownload/components/com_phocadownload/assets/flowplayer/LICENSE-flowplayeraudio.txt @@ -0,0 +1,21 @@ +The MIT License + +Copyright (c) 2008, 2009 Flowplayer Oy + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. diff --git a/packages/phocadownload/components/com_phocadownload/assets/flowplayer/flowplayer-3.2.2.min.js b/packages/phocadownload/components/com_phocadownload/assets/flowplayer/flowplayer-3.2.2.min.js new file mode 100644 index 00000000..72324372 --- /dev/null +++ b/packages/phocadownload/components/com_phocadownload/assets/flowplayer/flowplayer-3.2.2.min.js @@ -0,0 +1,24 @@ +/* + * flowplayer.js 3.2.2. The Flowplayer API + * + * Copyright 2010 Flowplayer Oy + * + * This file is part of Flowplayer. + * + * Flowplayer is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * Flowplayer is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Flowplayer. If not, see . + * + * Date: 2010-05-20 17:15:38 +0000 (Thu, 20 May 2010) + * Revision: 480 + */ +(function(){function g(o){console.log("$f.fireEvent",[].slice.call(o))}function k(q){if(!q||typeof q!="object"){return q}var o=new q.constructor();for(var p in q){if(q.hasOwnProperty(p)){o[p]=k(q[p])}}return o}function m(t,q){if(!t){return}var o,p=0,r=t.length;if(r===undefined){for(o in t){if(q.call(t[o],o,t[o])===false){break}}}else{for(var s=t[0];p1){var t=arguments[1],q=(arguments.length==3)?arguments[2]:{};if(typeof t=="string"){t={src:t}}t=i({bgcolor:"#000000",version:[9,0],expressInstall:"http://static.flowplayer.org/swf/expressinstall.swf",cachebusting:true},t);if(typeof o=="string"){if(o.indexOf(".")!=-1){var s=[];m(n(o),function(){s.push(new b(this,k(t),k(q)))});return new d(s)}else{var r=c(o);return new b(r!==null?r:o,t,q)}}else{if(o){return new b(o,t,q)}}}return null};i(window.$f,{fireEvent:function(){var o=[].slice.call(arguments);var q=$f(o[0]);return q?q._fireEvent(o.slice(1)):null},addPlugin:function(o,p){b.prototype[o]=p;return $f},each:m,extend:i});if(typeof jQuery=="function"){jQuery.fn.flowplayer=function(q,p){if(!arguments.length||typeof arguments[0]=="number"){var o=[];this.each(function(){var r=$f(this);if(r){o.push(r)}});return arguments.length?o[arguments[0]]:new d(o)}return this.each(function(){$f(this,k(q),p?k(p):{})})}}})();(function(){var h=document.all,j="http://www.adobe.com/go/getflashplayer",c=typeof jQuery=="function",e=/(\d+)[^\d]+(\d+)[^\d]*(\d*)/,b={width:"100%",height:"100%",id:"_"+(""+Math.random()).slice(9),allowfullscreen:true,allowscriptaccess:"always",quality:"high",version:[3,0],onFail:null,expressInstall:null,w3c:false,cachebusting:false};if(window.attachEvent){window.attachEvent("onbeforeunload",function(){__flash_unloadHandler=function(){};__flash_savedUnloadHandler=function(){}})}function i(l,f){if(f){for(key in f){if(f.hasOwnProperty(key)){l[key]=f[key]}}}return l}function a(f,n){var m=[];for(var l in f){if(f.hasOwnProperty(l)){m[l]=n(f[l])}}return m}window.flashembed=function(f,m,l){if(typeof f=="string"){f=document.getElementById(f.replace("#",""))}if(!f){return}if(typeof m=="string"){m={src:m}}return new d(f,i(i({},b),m),l)};var g=i(window.flashembed,{conf:b,getVersion:function(){var f;try{f=navigator.plugins["Shockwave Flash"].description.slice(16)}catch(n){try{var l=new ActiveXObject("ShockwaveFlash.ShockwaveFlash.7");f=l&&l.GetVariable("$version")}catch(m){}}f=e.exec(f);return f?[f[1],f[3]]:[0,0]},asString:function(l){if(l===null||l===undefined){return null}var f=typeof l;if(f=="object"&&l.push){f="array"}switch(f){case"string":l=l.replace(new RegExp('(["\\\\])',"g"),"\\$1");l=l.replace(/^\s?(\d+\.?\d+)%/,"$1pct");return'"'+l+'"';case"array":return"["+a(l,function(o){return g.asString(o)}).join(",")+"]";case"function":return'"function()"';case"object":var m=[];for(var n in l){if(l.hasOwnProperty(n)){m.push('"'+n+'":'+g.asString(l[n]))}}return"{"+m.join(",")+"}"}return String(l).replace(/\s/g," ").replace(/\'/g,'"')},getHTML:function(o,l){o=i({},o);var n=''}o.width=o.height=o.id=o.w3c=o.src=null;o.onFail=o.version=o.expressInstall=null;for(var m in o){if(o[m]){n+=''}}var p="";if(l){for(var f in l){if(l[f]){var q=l[f];p+=f+"="+(/function|object/.test(typeof q)?g.asString(q):q)+"&"}}p=p.slice(0,-1);n+='"}n+="";return n},isSupported:function(f){return k[0]>f[0]||k[0]==f[0]&&k[1]>=f[1]}});var k=g.getVersion();function d(f,n,m){if(g.isSupported(n.version)){f.innerHTML=g.getHTML(n,m)}else{if(n.expressInstall&&g.isSupported([6,65])){f.innerHTML=g.getHTML(i(n,{src:n.expressInstall}),{MMredirectURL:location.href,MMplayerType:"PlugIn",MMdoctitle:document.title})}else{if(!f.innerHTML.replace(/\s/g,"")){f.innerHTML="

Flash version "+n.version+" or greater is required

"+(k[0]>0?"Your version is "+k:"You have no flash plugin installed")+"

"+(f.tagName=="A"?"

Click here to download latest version

":"

Download latest version from here

");if(f.tagName=="A"){f.onclick=function(){location.href=j}}}if(n.onFail){var l=n.onFail.call(this);if(typeof l=="string"){f.innerHTML=l}}}}if(h){window[n.id]=document.getElementById(n.id)}i(this,{getRoot:function(){return f},getOptions:function(){return n},getConf:function(){return m},getApi:function(){return f.firstChild}})}if(c){jQuery.tools=jQuery.tools||{version:"3.2.0"};jQuery.tools.flashembed={conf:b};jQuery.fn.flashembed=function(l,f){return this.each(function(){$(this).data("flashembed",flashembed(this,l,f))})}}})(); \ No newline at end of file diff --git a/packages/phocadownload/components/com_phocadownload/assets/flowplayer/flowplayer-3.2.2.swf b/packages/phocadownload/components/com_phocadownload/assets/flowplayer/flowplayer-3.2.2.swf new file mode 100644 index 0000000000000000000000000000000000000000..598c3e2a019e9112183a1d5d13822968ab8e54a8 GIT binary patch literal 115213 zcmV(#K;*weS5pdia038%+MK-!U>r$xFx)*?&wc6g?Y1pjvUe=Y_8zR*Yb1?q?dn<` z_AZOvnxjWE>(TTuJ!45gz#JP0H-Y6?j)+adnQ#Wea_xo$NPq=#Zk-Pn|e*>Nr3gH#e${ z?E3Mld1&AcDqvhU^YwDAQ8ub7hO;@N*|>dRfR|dxTZPt|^$HbP$e++F`l?=Sm?usS zorHo4`H`YgU(Gh|$ku9=az2a2omf9^mW=$Rwd`g6c(IZ-OShe{0WnXb+^Fbxqzgt) zS0^g^x_Vko+xZEafgo_fZs;A3Ze}s}P~KQQQL7t;W**v9grX?3GYb|`Yvw9tv!vJW zXjU&(jWt$<9g8sex}I$qtq>v((<|BPN;A8n-;tT2G%HMP%r^8p?rv7q(<$}T@X2A; z3XHt%MB8BV7?{61r1AJq+_y<%u4kTk=6OLkOt26B-0q(xCHn8-N5A-AgD~NL9)!`? ziWOt6R>^MYb?tIlU(@F5dd0{V^t$wT_r6_{1b|Ypo?X>XN^xmOQe?NwBRvDL-;^cK zWusgO(_9ScmvI8U8T|2%L6qs6%{{2+8_K9*RP=1M3u+s(Ya41d%9Z$(u`*^!a(HnqY)Yo9S zT5goHmGTSqXt|21dVzH;0pp?9CvXJMW~+sYUJuvmdM#VmsX{lD-`8PeMxaimU@X?N zdEKw+tTjIN>siazs|t_vl&eL6N&)-n&?3e0E4r}3W#Hp5H*`ifM(qOo837`5Io+2}V)%_@v)&ZsneQ09tW-?vTj z2ulu5WzJ=$wDalt8F#tb2;_Mybe=FdGcg-tpPBjj+4(5@URau&o6jsP@TBp~=+c=m zwU19+P%Br>Mz)&Q%}A|YUWM7YtS@fVbe~qxYmJfzYxJd;7SGPk@4H*Cn(96EY}3@$ z2Z-3|ITPm4s1FtN3tpmOp>j1}X%_Uw@~R%2n9NL#YYUmV%zS!rcHX0ojHq6%R4%|= znGK^hg-A1dCc3Jx8ug8ZYPJTXtKmTaFLfi)fMOPnbAT}ghVmZlX<#~iA9QAJ@oWI_ zf}vRy&}^((uLB-o-O9Pl{KDkyjQix!Z~(D$3a6+Ok`Gx(?!h+2vxNe!&Z)B5&;cEy z>GAQ*xVAW}Ei9(bWYpG`FnDxCHSt3=0jbrpsd_0Gq<_zs3yqRnT~|XCJgb*iN{#*P zC8X5cMngAMYDGZ}verxj!iFeeisD0=nZ?Y!HZh-`&U9~CErUnZAOSDJ%B&1J@~OAq zuG%Rn)oz%2yP8mW1Zx_^bk$)pF6%8r5Vn`?;L$);UvE&=C!NtL6_>u6tpL?7Y^V&a zAQe`)TGt!RdKC#44DMK|Tq*QUWr1`7^=}2-OAFKy2YFNr)HR|itGa1IbG;b^l=Z-B zwp=CB5@JgSm#NtWxG=64sd+|qbYlh@yQkCCi=u-x6X{BMrRratoztc=6N}y~2BVa+ zkk3~1X#?X(0XSf80sP;xT8RDRhTRF#VRKsBWef& zjQ)+NJK*~)VEG0t)s+>*&F3CJszO`^)^kUEx~?NLE=VK&vdp? z^41Ng*Q-vCs)HW&Qtqhy0OVS#)%5yU*3?}W)F_{tbr{HMwvx#34;tAbZhC-nCNK^| z9>B+n`@ZQZ1^#g1h8Z80BXaJk!pON{c}E2N3e;T-Jiun+f*Nm$&r}Qk2Z*P*p!&0U z*d0ux?rGq@z(QaOQp!!w!qupejri7B(=8 z(6>feH-|h;+{bX(VV%PMjELkJ2P)u2ny>m{?#~*{x+#wY;d8oNZ2}3y&jlTtS}OH;VCa=^N?KQoU|0TPUyI#8M zioEM(@~)T5yIvvhdZoO}2g&|j`+Faidw*N*JG~3QeKAFjB|J%AS9ecu-;SNT0s(oq zdr#88cbDw;MP)T|U{@e2C-L`S_zkimyA+p4k-duSQ)ESP2NXG|$RR}zD{@5f#1wBr zQMweRTTyxxcdw%KDc&85vQtrZDe`Vb*`p|X6=k0iP?f*|C2&xY4=HlLA|F=dBT8UE zkq4E)Q6+FpkyA?OxDpytXv$S4teI5M09{%1S?{+Ej8)YT_ zW?4!8D*U|_{$2xrZkb6m%D!KR@_qyU-Vc8t0LYKX%KneS z_s8YkFc+VIuTMgGpOT}$BYOjHgulcEzoG;rms`dkDp!^r zg-fDX`(q1;#OjlNf$Auu3+jRp^h}04evI~t8kC@;P){fv@JVto0^N_gB!5f-87Co0 zNvTVgyxq{#9?aD%OYS~d^6h});+}wCiiUT}QZEQc-cV?_EXDT7QukiBv}2zvb?uj> zq$*4C1G1Djh`IN=q`pJ4)Z_C6g3^INzf0PE7~+q}M<9PN*zcD147eqA&@Js7a7p`* zLfR>L&?W6X<_SckVQ6MBe1p%GlHJE8U&`ekO1MM)U7qj>pF8Dt5Boe2chcugdEBRb za?0yIEd`+1!7gv)MoEF9Zj$@~X_s_p=go=m@mr)|N*YK6Z+MQ+r5uuP_4$=C`9Q*d zbR^;Kf36gU4&CPSDre+93E#l}gfe)$6oJz2pfd0Dd6a$fT?x#7w93M8zx0u}9ZLdYAH`S< zCF1}*+bvyK6vZ!M@gBE31nd6l@cCok8`fp@ihC6rQ^IyE%`Qn-i;1LywLAzhXRgln zNxFP>qDvw$U9QNZ(sJ@urNo7E0102S=OA|lzNsgUs^T|5DZ|%>pC=uA`q=OdtMY{% zsa4%okvCJ-P5dpM$1E2UYALbT?>ZwN%j);tFFy|kU-DubkFq9Sa9?;J)tq=ho^Z=& z$^hFto+k zwUoSxvo=5<12UxgJ&<}c<}c0_bE#h{=C63ZcP#-_>B!k@%Z1c0%c)n%qk#Vtx-0c7 z@yMZ1-b*Hk&<0F!EEp>=T+yD_r zG2$?fH~|qmFyc)zk2wi3KKg>jLa7lf)ejB3@mlsq2uIy6kM{-`_DSjLwPoc~h^FxS zs)yo$X%|+nO{~ffl@2c7bal2WUxijemY7@icq5SI>eb@G2~{rbg2=cx;PHMAP*;8E z>17y`ZZwHVgKm!p@;Im z%p^D(RPE)Q+6;W+)@4K+miGgeB)o2qS49lm#gG(6 zJQ4w zd#+(~pE?xf4s#}+Ho>kBCX(B5?2q3lskrmJEPWmZU z*hnLdD8Qtp-YIV)82;l)yN<@YJEW!MqwyoSq;pg*csg(j~7<t$THp8Mpzr8q?If>;mR4t87F4@34ncJ{-NxYtTN3W@vd#G{b7 z-%3Ohq1uT@An|}moJ5R2D4Maxn&H}8@N_Hnp}W^J-eCOlsEC~*3H!WK;=-AUGtwqx%z2)|pXFaleGC9MbDr6k zxL{$MNGbB(coYZ)G~zosZ}FwG6Y`h6Id9I_^S_CvraVcv=a)U$fbXkUuE=>0w8RU4 zKKKLTlJ~=3K)v!ZIUl6-5X6V!F9Ltj1250VmT$ohX2S25r3<$l%g2kiJdsc2;<-fj z7JtGYf9j!Q2{(*KN`C137hW!3n|Qe_Lpeb8im#BNstY#*VY^vQjsnRlR+4?tqz}tE zFLm`ho2gIBur3~oN1V|RfpiUfOJlp4^FfE>z-#8bDPMO+k|6Cfa_V>G?`%Q>bRd51 z<@rRs2MH!LZ6EaP!o)S8iZ9J6vlFgUiFo3#o_Pja3mHEv&%Q*Ce_g`D!c^ET{c7`4VV8(rK9=;uK<1*UFUr6$0nxvf3m0DsQ*dD- z7t4itPd>$Z5(ijploz7ohoJR$B=%At*q}XUGxa5T`IgPp<1%*V;vGk_cK|vZcX`~N zPXSRKc$(1W$kXvh;RizRg6h7XQoggxhb@mk2ovIB0XcpF0=KY$D?SH-CuA0K$6;Di z5f<>oZ-PLO1-$V=2>c$0^Tk0bNPU@ylsHg(+{60)aTosUckg})^lI&yXFC2L(s1bx zxnaoxE2>_3wTuMd!mH)GUoA@*O8tR+VeHz(ugKEG7%cX$%9|K`O>6MAJopwCd>soe z-?sS>QHB$^a$#G#)*tv-5?G0A6R(%0hvM*+`i4w_&4&PNxP?xh5gpDccP=(qpqiLM|2p)3C;Ph#)GkL7>ze%GZ<$@lgzOCn?G3GWv^a%cUY zzcIBI|39y^qAS;iKl$F}?|S~`F3I(tVeeY+>polhx}5s>j`L6c!A0o(8Vdh^hGr6cQ7X5z)FRqz`R z?)moKPyFmpAAiB$KKS0-{`g~$z4R|X_j~V(ePQD8i(dVmdn+R^=zClA&{F#2U--AX zM3xU;4Ia8#_1#_lyItp||K!TUuXca;$i8n&AAh&J@~tcKgSA)u=CJ$kPd)z!e`G$< zb-$$ju=?1)o_PMJ^Dl^e@{1>b~<{&zkB=S zn|}7^S8hr^_|!XGUw^mjk{bM{KYQfXx8L%%y9RPsq`;F;|K#}d=ic*I(*x4O>%JR5 zQ~a0V*_QzCJTLvI>}bSC|6Do!?c%Z5f8#U%{P5{Fyxv#sUw`9k){--y{6Wz%Vjo+J zyy&yP^KSXd_oacSr8~|_&->Rm{r9(`XAV8lbx=C?5C8ASp1kAMbMlQlykGg|_xsfN zr=*Dk&;RB_jUULTYw{zhzdSfB-|&0-9d@mM6npvGo?Mn6`SmaVTJ_@k@{@mX$Jc-M z)nEPT@~-HLNuet5Llf#wW-Mf9C8+z{Cn`7ml$fGZm`foe#|5|rN zzj4>U-}TeR-0gqz7v5LhC1?NPGylD3>DpU=e51ZIbL}hl8vpS04mtD7(gVMLHMJ)F z%lkr7EdAcK`(I!A%zGaE^r`0#?)>(!9NLsd|NSjbz4$Lb`nJ!!_pP6P%{vEw-}j>L zN{{}FH2kgN`bX;z-}Byw@BY?TN`GB@!u2nk(ibOQe6zXd-qm~FvwC;)Z%Vh{`qq@> z7~|LNFu(bMTLw=&dF{Ys&);-CI(KYf@89%Y{qCoye)#?4KfQ9O@#k;dJow%pNIwjC z*vK$t&l`L`{Q1i7y!em%Z$QeWheTR(NKTzvS;SG?zg(#}Wq?-k$tmMgB? z7o~t-|LXL;Z+~a~_AB1AKbL$L9$DJ?l2yt3B{9d?p+9`|oj>`Pw{`vek?($B_e(0P zwZP0f`rqN2``SzL$A9+8N8bFw_n-al`C?^6y5}8-hiZSgcJiC~7cNRYkH7Y_A2~Pl zqn}>7;$8ZvwBvJ)X6{4ZyW)D&cL8;qE9dXM_MTmDz2d!lUQ*7y_S1X!9lPSa^ztA3 zyLWu##@Bu6hj+O?@{kmM>d9T7I&)ay+}!|25Jx!RW!R^~4n%y<*}(?z?c8yuALOZ+JNW*LVD2hvff< z&mZWyxGa^9LWYNaF8Md+qyz7KN#Bn%Ki5hnN&4&)U-caOxGH_^Phb3zy)XE#lp5NU zK7RVOU%UGavHc7GhU>`B`iELH(Z4eM8<0v;Y*X@_kmUF)KmDWM{C@UN-?yU`4c@pJ z`u6zoOP}jHRR4>geWAFx=lvtsUh$I`R^RcUK-*^sN{Wr|sC?{i@A;osed&Ka>V4zp z|GX#u(EI<-&!6`n`^Sp+K?{OngacL!h5$c9(1Q3oumx^x!N+=X`wq0U04rcAtD1kp znKIn-`fvTo#A_ek^=>IRAi4hWu@64>(K%ObQ+jveBX4`<9e-Vrf;%O7_rwP$-u!X- zO`B3-s8G3l;=tcOeCp(%UEBZM;!^Q*C!|Mz{NYbY=l3T5`JTh~HKY?KpZcdi{gwZD z?Ymz3^gldubp|%$@f&QtvoRQgnVs% z_YF^c;&We3zOuYq+8LC5qklc|lgIA;&=b<5HR;6eM_&8LkEMa26!^VekCn#$zId1P zzBfsU-zmW`hQ%<3tYLg1{2PH`RIW;%A<4x@?6d!PqxX-0JRiT(I-S+{$mj2W?$1{S z-zk0LojV`>*2ELOZ|fhvB7b1&EyohSp}*UGIsZ4m{huG*lQ{a*|Jrl&{A-K?I z&IhHyKMp*;a`%O&U-abPUi|pP)3edHzv8`*{q%SL@vduusKBj=Xj1e)XzjQgB9CWvm#Irz60G6(%5GXQl*?=q~GZ_>ue_Ax7x{FkLOLk{yH;lsX@;=Jd*0qk`;B z_}L)l@c>$iwu3n!ru1S%dc6CalWyDG<`kLRz*hAp_s`roIk7POqr4lxf+4>rpt#(= zPyO{bfAq`` zzs|$IFW?^kvmMN`ha2N`w>5m#DCm^{ol}p&XPcQ1x7F!s%LMCIA=u=Co^QfjZP-!F{K0AR04<@eXX_ggYhJJx?_9PDcxWxv1Pb zW@AK)4;7kJR3d;7m&;Ht3$+-dMACTNpUt!75p&=Rb~k7fI4ooZ?Fc9_IAvMY^lZVp z$<bnKM#0?RI;udo{1~RGo7M~E>_Yj4dSFIx!1~v-t6pXqXAN|w z3cb-26U|D+%-40jI-RWoKs{==a5QV`Ks~aJrir;5dSDT4Ysz}1ARlAafgGDy<74;e z8#yCeFYu)wWi^YziV=3=nhu2l3G z_19i$aSO#3nzfoyZ$w1PDALC&O^R{0C)UqVwj9F3ptI9@wHbGOvq^PCOg8k@05+Tk z$Ul~?RIrC=>CnS03)FnJS~VJKPFK;0pv!^At8BflR$6{jP*fYu|6^=#Ed>)tR0$4W35dgY*nmZBrD zL$zYdp1iTj?RZVSPG($$w?hw_Mm2Ev!tBhVaY?U+cx!0Qv$0ud7Uvc`C5Md)Lr3&0EJbh0LWU ztI8@7QH^ln>}X|cr7Bq>9(v5Ej_NR{IwK~!J8zmH z5jSR`~DIxSZl$ZJx08vW3yV=EMmRS<)DBQwKEG)&XY2(+HcnQvBfQ_*tN@Ho{$@eGGC zo3oP%)|E-SvC(Wxe|Er}w6+`2J%33rbYnYa>*FmW<73_S=8^vh)I}i?qiQb@G|0sO z4qqg<;;1?aRku|Zv^(HqGvyZsjh(C=M?@l^5^;98Q}?hwP9Rx1m#v#@XYSI-z!WCl z-oAWV4LOOBmd8GhK`US#5ROH(nq!lSvJx#Csd0wXWP3TZ8TU!HOq5dAL<*6-j26C- zYpR?FeoBYk1nqFyHnM0C3lr38yhyVfEj!1WCeRIQBQiq{8~w1^$ksUlG$RG$tW5x7 zta&r~8t01nDqwZ--Vwvm3TOeci zIq0E&%Kp5O4|p4!U;~`AKTq%AL%D_14I5R$H0pVu4b{SdDH>y#yIA_!Mx!Ps#Z02L zV7gjx3`|g9MY9oy+7X=A5Y3NPYcD;y6+`xJ0V1L}&Mf>wyqP$c{<1ljMN{qFEYdlg zXUoib9MRNb$#@@-r~R(#Bb_ z-udLypvG|p3jtf;77UfFhWZiP&H;6RBF2qo zju#PP-De%+$VQXGk!=fCyQ6G!^fc3zwd{tOZZ-^@$_VV8tRQ5)yHTKQw_)w#Q<7#Y zkw{B|FH2jYkpQmBnleI)q*iQi#%{A62ZX4h7kXLK+vx`EEl7&&io(u{AYk_u_GKCb z!7J|TB=V0~B7Z=)q!P{gv@Fo}*w^m#CUPcZLHYs3}{eZQ^u(<&upi$ghzTpS*K+*oJ$#%}L z5TTbqz*9TjoN)ql1v zFE=)n%Vo0+bq9DlU^~l^Z+NqaEOE1~@V%XvAeU3a7y@DeY>cPa&uR8^BfF{CIsZ*w%HSnPAM_1yiK0$-hCkIgnpbsG z7xLA$>*vMnr8$ zsdr$u$yL&&kh~)DZ?~y(j^TPMmMOora=}$D?CJh+$hqvoNc5VXX)>ri*}E)#ahQtsL#<9091(?$h(XmLwGI*?r_t=PWI)Gxl4H0P zE)2zlAi%WzW&kC8%wpm+u`QC%3>$eCmB59=K1HkBRO$WOFK8PmuH|UAwM4LZ!I&o< zn5}oRcL%Q9fYoKG-n5Fy*~fHe=?bIM76>w5TOxZ3#`sp=A*!{o7d=+UxdC+BS?x2Z zXuYM;fvl)71_&02Xh$Zyb(VzX}O0QnQ|sYG$(tma2-Ox z(y4)X$Jcm}jxXrs%;qIYLu4xjdbCc0e6M{WoDQ$1%DFm70LU`4;p7^Hov`WzAm<-> z3fGQt&ds`l&lx`sl(dK`jVKJ08MkX@DIpDd!{HN@eF3)-F&h{$1EVrnu0oAS5vT0A zN>>XLWxhTpi!(sJfFpA3?>1r{dp1_!*+4sY$^XogGU;${w|qIF) zTi^y^!h;e;SaW0zYF3G1j+H2zZ#fTY+4dPom&I+_^E!Baw#)|f8dadl)-euz`xu9- zkV?GXh=`<79mWyWv3esro^50mOn|7U006-Wh#|t$_M2I)H8#Q`aY5HFDaaSW3bl%) z5RkbESSMyFK=cl`cA%ryNg=h@E(Tf_7Bygi^lxmFo@Z_VAbBcl@(bAkrmamE3hWRJ z8faxlnrtr?^y7d2o#mVv?wT`{r37D^Q&h}_m7_(71< zsb;1YL!AwXQ-(?Mb_g%-gZzqqHX@>28k?xr5{zlBwG#QEBErtv!psK*Qzf!1`qb@& zbxtWJAqtZ>BX&F?O7hIgWFtm0C@qwt_TW--QpSo0Rasj~Rd zsMZn;Xrgp4ov$H7MW-83Q#aFav>2I~Fmf}1wb%(f1tujf>F{ap5MgY?4|0FuBP1;Z z@}fOS@ih(HM7dTe1COK$bPAZOhS4aYLz_zZvYyOuu^fnKPSlH`qR%mi0ZojKVh)$Wj*X@9q<~0{r8gqg>=VsjA*!QvI9vN2qSQUucd;R8{Epew5{`-+}f0o&@7=er)`~PYymq869bPe zXpM=HR%~=b6df(-cx*7vhhE{!9>@bwR1_L!*?xg%VyH1G8%@(Og9)w=Su~i*+GRb~ zmeG%gIjgHUtCr3eo7K8R6pbxZuZAcba!^gbm|kE`uozrL(bnba7gL$g+R-v3=nu6O z&m0_$H@i9@m%>EELQu1o6=2P5RbMC>ARtx+UTu5uV4Guw3v_D5co}aI`p&RvMfcz! zk&CDV>k3H7mQ03HG0PJyS=pnl2Y0CBXy_sBlD@%piAga|j+0$LeT$(<+6=dlVSSfL z5K0K4`1}O6dTD+NmkC6niW8R_jQDPtF=3Vk15t0}n+=ou{qoh>4&5+TR>TQroCO@m zU0ls0Y|{3V83hhx8c#;H=mx|A8xLCo4K@`;Bh2Z+Kmo&nW95e7^8q}f^+q%_!;IE6=%vk)~~ z?5C8=Oyv_T7>kZk^s!M?xQC!9Q6j6axVsDCh4eIH(Qi4)+*LNWn>;TS5+qv`YOYv& zIO{$>cWuYYi7jXIK9elhJm}5~?OGh@oUkTZjI6gt3}lT{6FR?#hypB^1q=1VxI*Uj z3a!bI!zuzzUd%1(&bHMTY@)Fnu?;?UXc7`uA<(qY3O1~q#{m=H$UsJ0F@Pu!DxA9V zIKTOZL%=eFHa3K~bHNEfj2@I7x5%>FX?ZQf;=>)g(>{$owN46+Uaezvc*U>_=mY9) zhaBY5wiqzGY_a$3n&3^CYJ@4m`uNfM47&fUIJSO$z3eD`S4V>~W)Z^=;)!cP4)Ze3 zPzVVgAKPw54mr8ykuf21aYMi^vJV_@iQ{v}BhA=qs|jI16v6q0DZV*!_;c)_&d=yA z)QBG-Rf*#Kj3#F{c5cZtSp*tifW9%qK$5;3hlZngWNJF(9W<(3f$fD`3ZPQ5rRhl& ztm-E7ipON1o+8J{)-u~H7J!PdGKJJajsf{rX?29PTwm)02@;jhNF`~R>Fj9Oudzbv zAuNJfR@FOd{oCw^8P8hh+b0Y-8;`oVQ@gYc?eU|Cj*aPTVa5}EY%McSjc{bXB#9>j|XV)9u+ zm|7`&-L-C6PPb4`?B%u!%q@^fK0}KJZl)w=@ePK7692$Hy)+rbMX-nvIo;c!doY69 zamgh}q8fFf8-3h?)HTa_CyETQIw)%#t02LhH?LRNU?I}X)`gsiXVeS;g=bRZb!&F> zxY1E%LjgGeBa#kLW3ov28-V4&BxN7@iPZy|@E4nyrw_+@LD<<0Zv~s$EjDFFl3B$* zt${~C0n3mo)~0Xjf3|~k1QMo-j63gqq}FoxAj)jaGgaWYasPI3_#h~^q=lW5NYY`# z&QA-DbV8S{V8VbFVuB#GG7ET40`Xi0**h|dNA+3(!MyZ!aC=p?;6QyEF|<8(3hVVV zVoyaNTdO*{!ATD@sbuRQEHX_%5q)fZZ_!?c88UDkF&?IHbaV=xh9eG@7F?;zxgos{ zObv@VuuUx!M%~(FR-9ch!z>45{;Y1c=qKYM*19#Z(yB}9wM+(E$VOsI`xM~1(VS^_ zCwnKJM&uGdwk4OCc=-A{M1IEt2^}3Q`m;2$3yC;=&Do`-eOpXxlJ<(W~&ZSpaJHk$QhiB)AR_3}a%H1#+E6yvTKu~D3 zXN!L1KdHUU`)5=%hzYfQLe18udko;A8Ph@v1qjs!Z6sBl;8clOfk+_-E4=uagKP9IVaM^D!U>x=zGh-=NVCC14%f$BE&L>xBv}DFJJNOJ zp)AZt76Z2h{1uiw$=}i%1QFt|xmn1OgEsuObI2i5bE|2KrDtH_W~!8Z4G8 z6#_LwjDMv-kPhYO^T74^7&<(Q0iSNplTU5Rfdtn!YXaGPL2opWofltp2Ln}pD4SFo zk(LmGoguJ@raR1|!YzTe8d!#CYdiX%?KBj3kLy}b(FG0b`YpC`s~|(@&;}!V#I2Ee zh&_q`gHvlZlv>?D$Hm)NYjT}pP@I8J7I1OR3D4dk&35wbLI1=Kr{7^9Weq$pMj0if z*(G>2gp6p;bdphwsvaBPsAgBoc~Noap=$&3rA-sMwX5S!K}nHG=S9N!WSf5BP{$j- zBQ2SN;zH!)`2J@B_nDWDljd`)&yC?BCQhM z3aT(@ts-azX&$MioMjVCjWfsI>)JSmxuGbd)x!EPLOl>$L4ewV`iT&07TXjoTSeYs z0lss~HTn^LjowQm9c1TY=;d9#-X#nKINX^XX)}onuxk%UWK7FS2~Vr76H&9P)v%4$ zkC$#9MD06bbkwJ{80WQSi#Qo-GvN>^ST%>XYp%nu{a)330yl{;?Uc?D}w1 zL1~d2QQ{=<*dXVgK%7cg)_tPydziEb1vU&kR4#}b@ti1TTX2(cU|0ic#pQl8jK`@W zsjFCC7s!qKC19u-p>wC%8p$box2+p=2(k{#LOiQ)(JT_OXEhT8>Qpb>~OZx$cl5C_~o{{`+huVsv%ipB>~lEw2apru#N_A+rF{S zew9AvIM_|sS3nFmp?M&u$qHmhdFXiVVR z4{O|72hVM~oaQnMO?s6`>f9x#0|tPLxftInC=?G%yJ{X33B01Ju(id~e$6u>5RoGma0mBjLym5O@`*#W4hn z3yZxD3rT40_!!Zg*w+Vpvt6UzlaOXlT#zeU$mT;}bI5@QNyphAH*vJCIP>Y~wVy`9 zVJ_)e+D3X-ob4Bl@-a0=x1$X>$)tc+_z<8WQj7U`oOU7SWWb;~4p0wnZy0Ua4_ju< z%rJ^sqx-5xqg>qZi?se{)6^qj3Zsfr^ry2p<%9^LQgi|s?aD^X_KCr~>abguD01#< zOB%70l1|}_=?n&*RfuD79`v(u;Ch}oMiAmUH&Re!I=VgaYD4BOJmJw>-IgeP;gH(C zT!D>X@3z(9@OGZe7UQ7+$J%s*>m5j6$P|*JWQEzeN0wV1pGFdUfJ8VPyGaW6`odEt~jS=Jkd@wT)1-_7WU=kh04|FP|!wGFt zoJH6v*TJlqhT;#V#70f8~Xk zehz4co$Xeit;-%{w1Q|C$PAvMt*-K(#dZimlH8UZW$^}E-yP3}W^c6Z>O+Baptu-fcQ!$j(#>uc1R4xCA;OsT-wCS;U?z{AWkeD<-o z%@QpJ5TwjzDs^-MplA#zB1{a;4*j~>)Peqt<6%R4PYX-;GP*}@bsc6AyeFv{J$7L}M zFS&wfKU<{|qpiU}pM7wjAKwX@;qn|PU31h@WSs@nq#j+9iBJgxKX^Z4S0!jTM^1CIj%r{nR z3t1e}G}RVC6H|I1nqFPyTP9u?2v{jVjPW>(N8UF*hhJT|q1YAB7IgeNP1y>~Zotf; z;w{YBAI395lP1O%nmP7{qu;2Gp2vNltApL`@n2-ev^y^hAVkdZ>keJJgxlL$N*><6 zkj@$6T9FAG)>YBAfjRn%%qSPS#c4lE$z^j!Ujyk;-^(kWU!0!X$~oNftPSp*uZvy% zuoK9zzeO2C^A{)>JSu4OD6ux|jf-YNUsk*tDwjM!@8Nz(k&aL>&Pc= zEOL)Qj4Q{lAm(D9+{#J7#Hg&(La_|pf>MICg!?uT zt+2>}hFBpR038Nmf>k0&S$^@oQ+%AwR*LD%fTHA962U<{!jj1It@Ud0q0T~1i?|VT z`0?Jqt*F5zi*~Qz{m+ttfTFEHu{OuyZ3>5xw&XA>xk#}Kvwodj(Fqn}Ht_U)_&NfG z4He9wgioLS+h?$WqSnO$3SLK}-U_%=!&OF~q&Bs$VFplAp@bdVfrR-zl4lzVCs+ay zW4c^0E&D0h$%PddupYoH*JG2d;o)Cck-(J^yH_mzGN;8h2vX&Cert!-0_K|2N{F?E zLgKG*`&^2ansSncFmbo1;NnChG1WHqrfeE2xvz zPnWqBu9u0W?a@hb!fZzkc5cR2zzChp=xglk(yQS@R5WI|mjF_PHO=YuJP;Z5PYQe; z;FJzBR)jzW-<+f?g*=Is6`d%r z?jE_GeA_xYNK05e8WSuUH5Q1GSrpnDu`pe##7bE(U`_LZZLAJ#C(OaJN#^^wPuKMd zp0kTE9y+E;+rSj}()RQ67>3IUEyViC#TAYM3i`No4gK?p7Ca_QqGeL zV2Yp>F|buw>{)pqi-~bpjC>gFWAGv+dD$ld!<8=uffy7RXT_{vOW8WRQ7kwk%y_uz zS6$&UZAf#xQbFANg0KWRDAuYty`vIfsBEfvowM3!&m1c_lep(0tXPB#t*3_kuyMRC z7dteyc3nR^BwR!ZWUyxttNZdVDEK3g#RhU-hJEwE9X z`8f+4Z+KQLv0(!mECyyKBtEK-^ums4UgGx} z(W7^W`HiQ9+87#&IH9fW4g+w<>OrJ+41?=*+p$(@&2idHa9;zx4>_qi+tg^siiZMGg{_c zW@a&@SDUM2v~UW6(WQxr%>3lc8RdL>auI%gbLpjp%(yZ)mA)T>-ptH+X5725n4Vws zj%J_`Wo&k4CNs7eno2J~of!y@hc$;+EZ@@HczQA8K?_6Q#Nex;?9XmO(I_TK8lYV{g`|4GFyT;%BXUtJ!tUcFSbAt{B^;od+UBO0t z=+atBv}&pFk75Cb8fmH@{xHI0>|ae)6MRfU!ilB7IP>A%c0doCd!JvYAai^>Mc7-@ zr0nZAoEa77#C+@sWkw|>ACCL`mivMT#Uo;#embczL+F>WOm?@HG>*8YY|!4|oB)eomag+ae}JakTPGnU&)~8oXHe(3Q^3QA)DMJe{Zld8ev0QP4vH z`o{aZeeMoGU2A^qf(yITuz%cNSxyPuIzL2Fc8O1fyf^V$2R>>x5xdmGsDkVH)wWH_ zx@Y=nT(5I&U8Cl2z-;xJ0vJImmz1l}f>UBWrKp1`Coaj?=L)I0`2a zdzw|59j8kiyq)Edn?eIe?yyfjiSBpFrBRNXl!Hiig?6P{j@T)>KZ15Mwpj#HqeGta z#iS~T~VNJ2NDtTsg zEs4bDz(WR72FU|6%lR?i@IqAfmfqw;L?(mVmS3+h$+Zz9pib&>OSIF?!QcMW9Q%DV zZhr~qVj^}P7?X`1amLfFeQnwH1$YFYu{f>5?6TjfaRU@MfcQIe3UOlV-s3y-ki4C- z%5?KD>_)2`EH+jQ2z}lMb%1IT8?XUsJfLO5IJdAfbVz5nWnf6;Znp|enN6MsKdI~b z@WsME9m(*H>)~EF98-^l)fd*${Cg@Ho|J}kbn-wcu zENv`g0qw%@3W&fT2nb~e<`(44Q6E`XaG|$3o4ckof|Uz!1fi^2`kJ9UX*&udzccU` z!Sv3UNU1}*3)*blMe0nE7Tt&jzd!Qv5tcC2#53<=H^LArz53kM?Ji%0X_v#L;!Z(@ z28psFU>m!g-P)lb6R8`$v6pt?B2N9}8*-935x}BG3Y9B(2XlXVswi0r00NO6%k04@ap$9BbPB%_QtwTc zxkg{LSbS}%2B24kZ2RuSy5oq-3|&~{a6#X1Z!G2dcA6ue92}&dQVNZ$5{dwR;4ZkG z-OMFObX14EmY%hO`z&)z(>r*SrSl7QRo)4BL==-g0qxi&+(SZoxQ7#an?NrMpuvUB z%?rUjMDkyb`9tvpj$Z1IqQ2k12fAX#h_{1J@kHf`;$?YsfkB8ghAb|!hRPRA%=I+# zj|Fd$zM=0oOM;A8`qm*aJ$`|VtRc3%am>W#dJSfZT`k`nli*8wQMP%8@M1^XZR#(~CLL&PkPZdKN z+3*ZusQSp$sQTaWz;bf(#hxcxM#%SrJHgeV${^3}vXUM?pPLHbFkpu{Juis;MJq-Io8!o|74m{2`lcGwL>_*uC&5&0l8Z*2-J{ z#p!RZ;=Yiyhsb2Rg zllkSL+O&6nDW%dzmx|YEC6uh&Hxs}nDpw*)NNsHTnISUbPT45raVcR@!qEL0Hb}14 zTf9%Nw#s*t&T&{?tkr>mwBi_RpENKKx~zH8H`dNO|1tdTLrYWX*r0q-d+tNTuME$m z_25*6#iHgOz145yW3=^K?qxL+0JSg1$EQAR%-m4aM+XVKBPGJ_D~b^m-b%T}=wvAK zw45J-VhEKV=hob|>1xWUgLZq6VCLvD=wh~7QL1fKBl^>?rr3zfzr?lIf$j*|c;S)i z8OGpGdh-o~+UOcH$*QW>7)Wpjg99y>;#f-BQ7}Op1++g6Fib022ll|v~hfZ(#*N$1n75YejH z8`o+>0;pMJxIzYI@y_Wdxhd?TVN(dqun6uKxc2h_aXy2 zg&8&ma@FI&x%J=HeXbD?WhJgWXbv}s-Ivr3O|fyhw!hl~R%8L7OomN?TWY-WMjk2` zQg0k1?lh3jNahmCo%ogt{odO()eyZ7l?>Gx2HD7q$G)_y==@Lg$stgeN16#piw zMcad#-uQ93i>dFfEh6ne$#?f7?O6-UI>qXBH8{Ok%wldyZ8ZiG+XzYxV2nvlzAACR zQjDSH1zu7)rWN~5?bNB-?Cv>1LFpGtCI>w-iOc-BU81G^8lh(Rn6#LGIONk`Y^z-B z{Q`b8;zqOp$xHbd?=OCa1s%q0;*fj9gbY{<=ugwB4Zkp%?*VLg6PO6qWbCGVdSB(h z*iC5w*gTY{2<<6v){s`KKHU($c7!ptB@@fKXBD}FBZZ$_#j?X?7(E_V;%Eczb?B`%i(n7%b=31UlYn=?mFPgdxiG9sq0wUd3e`tCVD)q`w2_JO;*`NiBHUT#Q1FMjLm_@qwcYjx zPn_FC5Zud95W8|+zc*dK$S?WZ6dqlM@ixbGbI9*Kic@)P{$5Q2UZh6mCq=Gqh;DO} zF&ZY=B$(h!Ye{zfdUCrnLnivZ=91Bm)s+YCZg_1(ex4EnC zS8nk1&*u6gm!g+C4nwrPPa<-i&hlskt(a~o(&fq8)yHB9Kz=*I&x)b;$%|3dytm;j z5~net8MuuR*VsGo$E3Tpsg^O-Zm^-6R->$%ESK$p4(kN^b@ZEK^^n)%dpj<0OI89Z zbWC(7%gYTH-kDQrIF)ZNmtV3|Q!0Tklxu2#pwpx37 z(OT+4Ql@Yjh8$5Hv0)d#LQb4gE((}(`K%U3t~k{__sBLm*6>8sW!-Kn&zK+$MA9tC zEHLLuU{M@iz!gfp#2%MdmiNcBNE!zo?|#}lrHVk3DH}^CJT|^qU2m$)SS;KZ=r1x# z=_iK#LM(GoLbVa6MvTqfI+b4X37 z8nUpFLNsc7)enpyuyF>x-r>f3#pi?J2YV1yI^L_y*tuI^8jZ&@O{*|(&4wDSJe2ZI z*hq&eU_Ei%1=P)^mqCT4w7yv)j2_tt&|V30FX1yv6}%UjibD5jjAS5U-zFM|>@)!4 zE4$ZqDQYB7e5X>ssnHmWHK{ESmHz!}t6FL}h|S{TXx7zDbY4rlHGjk5Wa_#ZMzpC= zCvMkvNW=;(kG?Ns)l!D874ns_7Z!-?0M-Ft+_}7@G0mMX=2G2K{1A@Px5g~?4z%fv zb~6LOQ&Pf3KNa@Yw7K3zhja~yXQH8T2HX`M2XJA+_IZA4er7e?TDuI8*#UxhI?oA>3C_8xAA6b~f`cj2t(+P9xjhVnD=gaiZ{4pp#uvq1@sI4-TTr*_!CV*$!=2QxtYDplTrxJCw% zLnx)D!A?@K9I%4Yo$y__iqgRdtx1Ktp@b4a+TV1rD_R}ZI%i5OF)4%+OR}(jhDburq_5f zN|S3+LTg1lX`EdG#V$T%0!4K*a~0Qx1}=qg=Up9=pY&3Dl?@$uySg>Ju!Yav+n2H) zp=+$YjjV8r%{L3-N)@rFGeGhNhebX1DO=+}X)pO2D&+!~)syb%bGup$4X+`Nyv4?1 zsX5KDSPK>K_gf(FexxyAMM8%*)=919_4vqob_e|mT!CP@e2MHVvN}^}qjwG3;$-EV zvRrdxmTV$ex1`KFt{m7pj8nsJqe+82)0~V@0rJNFCWG(BU@`}xIS-;vo6Z7aR4OXu zEB<;i?g)3;x|P%;4RCs+G_rwo!;a@c;l_;Q3XI2W08cC7BGA#-=)nfMs`>5MOY!N(`)?|lqORLBLHIqG4@o9ZU~ zO)=14b?4-e!9mNA+%%OlK6LJ&ab)5EC9`u%e{xR=ZQ%lJyYxzYUwFmwNirH4L&}J^ ztF=VksaY2_ZsT_j%|?;A+TrNrGuz~XV+bq1q^(5WnFC#fVNW(!ss0XPLjNoD#5SlKBh-QvPKpCiC>wII?;&)5G#$Mu{X6eB#&#DM5VeLry2g>IGmx~vxanS%_ zU%u?GNtw@tE_3*S4%(J4pzR3PH@9@9_re>Wu}rx-+AO7fP@$mH^G^IB*# zWhBtjqRt$9{_v8>L{`;g;g=sDSIPUYMqem#zl)*7E*!P^5hL8v`-14U=&JhrwV(Kn zwVQaAYPz~{)gDJyQfX0qJb`&32N1`erF25&k`fEtI}{ zZNcD-F3+wK#=r74Z@5l-G|L?Ji0&Z@S~*&-Dlf5O^X`lEq%&2nklT&HrT<*Pgm=ik zPvYN?p$+04UCTqIh#ZYhy~IEXk5aJ(wqd~_DbW17Ny{cn|2C6b?&04E7}=o|mlYB; zqiJEIToIU>)z1F*J-VVbH9;F#^od^vi&Nl@1v69~P(L!_2kRkIUzXGeZ2GWI90p^c zFfxHhK>6N0H^K9me3|Qu>ZWg5=>GjSVW!cSzrcqG@G+w=CnNdG!O*o9wm4Bu@7a?b zcTpQ$Pho>&5c``Vp5YN?stwW1_gL&Cv`yp56#;;K5m3n|d8JGM|>#Oy}vk-W>j z!Q|wxj9Ji(N=3yWw2YxnRB0?xyLfn8lGJvUCvKgWCytGS+L$i@KJyiySpEk07I>E5 zbz?my-BSy`D8k^~9O+-`d&|Qh>7szF^N+N|%y@kwu_T9{yG?HG_*;SnE zj1_>OuMM}Y&ZL0m`PWNUYOrWad(;hli)L)Yhl#^d&KLBO&FfT48;Y!2WiCjjvAP_+ ze^@k7`dvm=YMY)Iw1YdHSjPCX9brlGF+;ZXvi%44QzP}QF~SNDpw`3DrvtWKV(grs z7Cr*V28$eF&e|tr_UCp*yl(_Mwj9kGqKMYs?du-qi}@T5I%*g(?d-Cn=0~F9{2B|z zs~?dHaMJ6fgl8UwAD()-rPx5S~JPAG%s_nBror@X!$(}85$`N z4hjMu4vH0%EKKmCx?`CIYr-6M1cR6#lsx)7%fm-t2t)S`q*j}_>rh27TsyHTy`=2L zpsa&Il>?DE)kcA?c-Ndbz%Hk*S}{f@4XiR=2X14=TTi8PVcX+;H{ai;9VIAfKY@%8 z;zJA8vq`sDwMf>9m~$>Q{6Z64H5hB1$>n7y_RL#Df=D(xrtwI0_f7iQ&a-F3763@7 zz6lwHFRH3hn`#F`_$>+zH4k789@elsr|U{eaCc70H%!67pJEK?-dusNG9CJMR^KvZHC3Fo)Xdl!=XURa3LZT;?9ZIzE1Se?@ z7&Aa`B1s<%W35TJSo(P$((aWiiV{E5{>$k{yfyWLf<~MSKXG|MCF`iPL6ugde8O@p zOa4%?D=ISbqd|x55=)S*5SQRb-hM@-3W~t=pcM~F$64U5YW%Ah%$2i*Q7NCj!-Wt> z%a4Kykj2rW#@Xh=$8t z_Jff$yZ-#uDvUtz)=tCTkc8>COzsapgoA$YDL~s;xKP7BBIzC(1uFL{@_jEsk0NS} zU!FwSPhD)xyBf{C+8iUSNUo^>Hj)B`qW`hi*mha+Xe^7^^?x>0sUa*f@X;l8O zb0Yl}sJe;%vq3haS=!h!vZT%^L*^{4Pwv@7K$RyR932?isin9v))Tm!vu_V6J-HrZ zkXKTw#3>XT4uhzC>0VzPS?85z+8gR1SJLXzZWIw8irmEAE(~^w>Nt%BOC^B>X~JZN zC}@k&fO%j8sjXk+X%AygXmBqd>iCPbx2jtT%)*{ru{s9(E4n=jLka&13?B4wn);m$t5`IaQ zq<<4aRQ3gPMYys=isKDPGg)9Z+JIVp;cP`aLyT-C;u3-xjrX2jw|6Q7~tM` za1;7DT>Gnbd;C<9(=J57JWOoQnE&K37^exxuX=FHSRM7=#IspW9n@##NCN3UNo>PWYt3y%+wGB%a<(tvyG|sY19PJC zhxqnfq&C6y4pEG8>4UKlW#_HbPV8SLusW)2=h-NsNDB4ditt^2xJ$$&bi!iH1JE z{51GhTVWU@H-$^N%-3~;az2OgBZZrSwstk#_(vFYR@`h^Cxwxv_Y2vpKhXSWciR2x zOj*EEpaJ}kLZg4VpntSR&TNU=>m zFpqKPh07u@p)#Y6ryr1Mwwyl@>dzP1M%;ov5`DGKPm1h~aWaK(g=g2K6`C}mrl)Q` zS}-+SLd)hOi_?ftbE9gb>sQ0~2c``)(aCl`PHyZU`v591Mgu1C3)l8j9iArfY42e@rW(UCP6r9=>%+Jv*#YEi4&toV28s1Xd~d--w6>1% zb{Q?El1U8s?m;J1IhVc!BkMoQ-c+SW?)`<$?pK9NouVZA&Innv9HTv(N*>Smtj?Fp zO}M`2`*&>l`Jn?m-|cyXkGpy1(}yoZVL@_A)0LRqXCG*|r$k$><)<_srUvqX|kEev@fkFl?ILLbn3-!1UsZ+-T-Ys*lk`L zC$tMJ_4*c0g(6rgRaQn-fpQ65p@*s5P5k%4MzxwE3Y3B8V}x1b;2IA}^B9(;cRZ!1 zPJ03h+JE;-E%onXe*El13lF8sXBF{iFdTc#du@)cVxBx0_A)fY)VgO4`@#^Kyg`NU z(Gw)nRJ^CD@B1uM6vSpoI?^rqm60lB=)Tn^3Ag$QuVF0{kx_%RYB5oluVj)y*wdc0 z{Z*#P$v*VKh%q@pk+pP|o=y`aYb|8Frfvk^^7mzPj1kZ!V=pATh8=#XWu9IhFt}~V z(r&F1Gd1pNC0!?Q$}9T;Yg1N|;@9uOLe^kcXpuo9xkna}H`VvJUh1)zs~myh+53W- zK<&W0_@l|pNgVF2?o4`xmX~6+&Bw9p_3)YXpxn$6yGwyfX)8^gr1jurU4(Qq%XmKG)dTdj1W&^f4TZqi0F2L zTSSR+RkZA_#V)rc^?1{PFK1Z@$E86QU(HY7gl<m73W{{pvCMpY5WO7(K^_ zM6Fced(Haj29WNefV#-hR&>h+qd|z_U+?bd?zcY0Ga@hHDwXfT1(F*aoX{Cc1E-a> z@b!eha;!OQ{xn@BZ7&WgWNIKzWo!M~Jm2Pe+s!hM$g_>2o7%lB%^NpI;1)m+}C1hxiMOQda|7i8w97#MIr8Z)yc6LCdebX6<~#o(-+z z+}Xz5IS(mKCj=4OKvq=6&mcdelG^vnw_!;e^!c|BnyOq}HgK;x$82y0nHD<0Q^MSH z%k%~vcH@lKl*uC2iU1kkozsaduu2eQ1nZlZQJV5|CL2tl1^A3|dB-cX{zKZ3+s?`U zr*gTOjVclo-Kl|zOF-kCLg+2yTtn`#(1IbtC`d(mSDIuxIR{&-e?{y>)2-I45#$T} zon|#jz^3wBf1Qj+f1R*IUWUK+vGjGOWC{I={sQvoc_eV3x3R%2ta{}-V_uMZmjd9f zo|su^6ZLQ?-X~xm=vW?&8YpBt9gs$iXVNwEvB6+(Del>4K3z9uVTKhdSK2dZ)n|4d z-a>tF8?7v_O^|NgB*!M0?%qGFKWJl9&o;HLcPqhv>m-sA9%ARenR;W_rqA<4H3#=1 zSNDFYa>nsk0E1t}Wxt}{7q<)*sNQD}#~E8C!sV;|w_YvZm#s}L%=c_H;mp=#sC=cy zL}&U_#^{;t{NDZ-A%N_DQ^ z4vkKPCxw}%COB@NO>V-~+~dhK?r*l8a(&M4>-?p( ztP*bZmXM{avZbGoL36#;uZ~6ufe~L#Rw8JB!E_HR8-L|rpUuspy-u&9lzohfoXwG?vd;{#_}m<1@r$H0 z;I;+cOsIpmz?&(IQfA_B87m*T!LQDeB~+teY?{(FpoL^lnHci)OtK}9KUzK8?hM-OPQ3U(W(ZI)egXv2aw*g?Dh zIvONQGA5gRhg@BX=w-eUGwWLAQp*Cmy+wng4RLrD z(310ke&lU8PEzc~qW&qe$!mD!Z)BfQ(LiCrFJH6jF6~oBBOr^6Zo{*Hj%>y{usQ~B z-o`Y@78G`-+3_`7+uQ*@>Zx_kQ~AjWUHX&0qXCqogsO7pxfz&W2r3Oaa*j-9p5Z!? z(X>Dg;QX>>w>z{tx>&czN%Oaf8K{i`!&llZ3iR_KcAe0_3lP0u7NB&{j`Kbhxw9(? znzm7!rJV+4;OPmsR<>|H5vXXDZi6tj6TJKRdr}N4j-K0k>7Ny*8}PZ)MUJ0{&a7TB zq(~^MH=+eKF!~~JKCWa|cSrW_6#e$hqQ5bAPxJV@z7rtJa?0iip zWlCM}CFpHjl=f_!n;O#hwwTIzT8SPhF5(uVTT(5#(&*|h5Gpcfjl%x6%v&SU5_+Ai z3dkGmDPhTa$>$T>!>za=Xl(bdr7Hmy+>3GZ_n66_-YM3<8YnzYyD=WxkLpbH&bEDA z#$`9;Q3vkPpVGt2ROJOc@7-4UxvHE#6>A{g4(w7qHQ}oNYRjL7^~-23c1ZGw*Izka zc6H0!e}6j1z0EHf%UkSj9$C(u!hV_^9`|ai#hkXQlkT!}Ds^sUIY0Ok?Pe4CEB?pZ zD(r`IsG5(E>cd;?W1FXOlyH{?v$^$3CX2uvTfkxnGoHM1nsAf?BE<<%9y|YGDgj^X z{cMcn#KO7t1Z`y<9b#d&PMxcE$X;;RerboR_kio{4j7DJAp(G z`N$Id2q0$FsPemkk>~iakU*_@{I-JAnvr2UnY%4w>U!0pueQ_Vu%r~&r*m>Q^#zyj zM{!TL6hb6q^9hp>_%U$pn)Fw;nC~v(FHqqH^BHzPI6)`B=v?_CPEPqxUkT_>MFOfS-`&i{6^&YF z4ebZUXO;j-)?*E6$wyIgO_*EMv{?9WHJOACG(V~P-qSIXlo#h*XIf)szOR0)#Xsm8 z*>h(;*c&IoZVuF$XHN6o#k_ah7fRi`W0g3XLJ&71M(6(~(-_TAS27-j36JB}(=&r?G z5kIkcLX7g>ycc{^IX$Nt)YY{<47(suM_xnby+8;3l~#ik1Gf8z`%c{9Zp|Lh4_@|0%j zu;F2~>QnXMv2dD%SJLZIE5A^!`B8R*cVOPa#_74bjd!xwV!MUJO}OOuc5(h+)32Gb zt^@hLS_Kg@3zMJa+4`qhN{iZLk9}#&1-%pIpHG&p5Pm)WZThYAI(<%``kE>r4M}7W zM}nr2+o9eF%uGW(-1#p+Y@LOLitZWst4DCf!PK7>7NuM_`t{<<&&Kzy(xl~>EcI9R zrM?WG62*t_Pq0tyeiFKUlj{7v!Z{BG865A^)9r)Wo+>eF=k8tn+LMgW2ZiZV2@Ss| zX5GmG^%ss~iTyropJPK_9kJZ%jRa0}WpA@wH7>05yU85;h3%QElTj}Zx@SPDxv{8C zm$*|wtRk}-Z+_O@ZSC){hqZ;$DQk;m?1~Hz*rn_%1-f?+vu8#`m)dVVkueNj-y^QW z;nxVLk326s`hI9Be0`5A;!|xjCVS5CU_NL=;aF^fKZi~pGfMN&z)mwyqnM9e37z%g zs%kwCcQ~~DG!*5ed?v&syugHeoVK0P@RSQs@KZcuv#~B^Zwjumj~VS#vLHTgFyhu< zvS&f>as!N2EHYf{TL<3O{xP1H{qwd>lNZTuB3E(YbJ-yAay}*^?XEvPAwtjE<0zR61PSo-=x79W@<6FVDe5E*Aa9Qfr>1qoc5e*N%f&>yH zXgG}EuPO0o#TGlgs8MIhzw@Cs1fL3ldMdh}k)F5qw)_M)jgh@HcZI+X@+%{ct9D;4 zOe9;wZL;x=#g3e~eno+f@GGN^E*m0X#X$IV5x91{QU^a%Y#8RnnEZ7Sw<&JRQF6|~ z>u$nzQoFKGFy@gHA^zcf9Z#>CU<6^AkAZ=_sUx-ICr-3Y_1SE z9Y@p&s0B561@j30CLrEJMx~0PljMlb^c{lUx^cx=MZ3I-^z!NP>)HC;x)F0;F>`*Y zT=kpJ^;je5Jwx7pitNUNTb_kOc@X7ITr z<3G43eu_wX9UPnRj5uLd!xWk9%@)}lByl=L^?Hixei;h*-2Doiq#GCbLsB4hBp&1) zvE4mGvL$Mq8{Lj^Ny#ti9(#f?&sDM^`5es;Gnfy#TOU&E6ylO3+NndjNrQHU3x^8V z&rxW@J1#(nRv?xcAsH8wnR1^K>;>rW=0e*dhPy`c_JSVtn{XDH=PN-BxshUTz~n*+ z&B5TJv6EX$tQ1fqNq!|Mexr$C81xJ~EaGw9IB(t$-PbTvwo38G$p+$Qr{ibm;b*7f zXXoJGs)A)MGeM={OZ_O#S!Prk&8?7zsZ4Qdl+3I`w*yPTuJ+D(?REA3b2Ts!M1bWlWv|x7fKS>Q+m^zF{()t!>2S{_8ojhEky2&+yM!UYvMe zslT^Jr7hn3y$ZW}lNB|6$_hP=L0SZ4ml5w7>zeQ@p85qeDDN^R^kE2uvfeZdwn7A^ z!*20XbD&kiY(oU*jS2G(sNB&VJfw^YBMmE)eb@#{^OtE_cSb=3X1@P*o%zlsYz2NP z82Wh$;ZTf^uf#;UU!@`Wk^rZ3G9|8|A;l3Nb+@45p5S96*Znba zoT)h|j;GVnlJ@19bLJ`;P};re$yx5k4e9jkeFF0roaZU6V8Z-)_YMHS-s0f1FY(nt zd|^>CQ+mzd(%?F{Hkn=y&znxwaW3B4`THleq)pw-v5tJ2x)zy_6QJl=V}*TFUQ2Y* z%a_-tQ}tocf=BVOPz+?j%6u zCHSFE{oW$@b5C^CyedpfGYp)ukQsP31po<1O8E@KG!>^$6*CS;R;6E(Iq>qun-1ww zFUstMQqZMDCJQ=IOGENJhg$c;4Fs|Ep^hj-# zo4s9h>k_72HKQzZq@7J0q&v7q&gIAEWJ+ToPWH^+uBjdRn^;>^j>z00yV@G(Cd`3v zEs3LDd_Act!$M^GH@&UMh<4g1qotI{&`M>t{X}3vlZV~yW9J}Wdk7(O^B!E2no)zX zY3|OB^MFUYo)kjUk$>FJ4A*%CPuPK5% zFX?Dyf7Gr^EhQd6;p9^dU=94oVi*fm)>fV+vF0PhRvbx*JIt&sWyrgHCXphd_#>R&Xq2>H4uLhNFm<&no9Y{`BDNtehysWPV$dv{gAi9iFG!wS z2p>l)P$Y|mPwZa{je=%i_Lht$EY3jt03RU1+NzvWfPYHfDT5ButxSUZs#KkVn*|Ks zcd`~>)z+#OV%YHwOd%SJ-NX()$KMQxS5gkQgnlZ&{3Z3aME6#e)AZyJLe^)7DDt`5++c#SXcK zawcWRhrjhox$PMTVSm651Y(T@;*12MzllU#n~49_ivEl9))%o3jH#towBP}dm+{R( z7)dEm57vcnE1o!J({2%85dp_9#={#hK{KMb)Z{+>rr{)mk~6B*;zOn=u+sgGlyd|p zDDSkUoUD=Xj*OU8qmY=vG5wTQ@s^5$ywE@dMG3;rmeXWwFpdzteg|q|Afy{J$cOb9 z5|NZ8ybEp@cgPUpT^$JBNbw1q1wIvm?P3D&hTVuCXm45%y#jt7g6y&Z=Y|QAW96av zzyTVVIfW72z3+G)1i*4YC`x*PcZUe|8=I0ek_@O~%|rH!?V!1QuvG4cTfpNj?gx-X?0`m&->klYm!wsP}l+1;g z4n7h^ETWo2ut9DGUx&C1eiDT(qL_m}L2?KG3GpZRN))w-W-cx+mDV_NjQA4SkEDoY z4)p{T2@D1zELhN#H5nBNJQ89kc()(Ul#&(U8*)7OD8&98kjCY9P7;`AsvOA&eWVFo z1ou_s==Ao6a4i9^f*03v7NQ48y8+7!+eHJqXPu9oG!FLpe;nE9 zSvCy*f-!`30u$QtOpB{)l1eujnPKg&4Bg$L_l(#?K0y(c>4J_>;9+5YB2Kj?eoah;W0-SP@1TRi;7%1iujaf-oXTvL!05UyT@|Unarw-e%Yb z%l-H-4gaUa9lf4L_#-PYrSk};n~hk1=YOO-2?Xa?-(0DWO!fIE%P|@xl>8 zplIMNa1`B@HOq8jY97g+V}Ta?@pc$pP`q_C@W%=%zn`9TD%&JZ1> z+mSx7ortf*pm$aR`*GAcP0U}})W(kBtxLlUozFV@Vov|7NltWo)E3A&HOz07vAQ%$ zKRl#gm|e~h{yK?zy%eXiYpO>gO!^Kc#=hV$0GLkKY4?qjz0?{YT2R3z2a}?ZJd7+M zKrvtiYS`&A8FDwdil_ak9=(%T;~Kl%$Vcv`FsztBXb{X1m|KWXzyE<7_+ZH`8)s+7 z$<`d)c8Q-&MQnAPnK-Pb5kd=?Zh1^c){tbb^&Fy>j;M6Ewas5G9r4J-emFw@_(@3W z2QY~q^HsTu0c8HLx)AvM{vyn3b)yJjvpEW_RlAZi{ud*vfGB^*xp)}EU)}J^bMQz% z!Q3!zQH+SI!~aB(_!1~O7NP8}B*l1j^l!pAzY^gQ-#OIkL_pw;ivS`xAGBmxB$&GpvVK+5Z>)y6P3UlO%>W8B z5@;VzR+u|o(>&&d(V;vrMJQ_Uv=F*}O;dbUqFw9$Ja`a<)sQeO5D^p>AlwM13&#k7 zqw$qIOC{?^cK~6EH^>~-1)&S?gAH0{T?MlzYk*vVBrx5EbAaH6GzhNi=YDa7^#l_z z+lF@IX^gr;J`y$+vEb~mgEb`%|3m`~u_pBkBHVv-A>K)A7m2WnlS+Dc2{7m41Tk*n_rT4!199;g(!U6U5^?X8_DGT8Df+vMN4So{rBCs@y&Ua!IMnaU=_)iq?F|N3;_ zKcDUwguDNjTxN;?s3wGD9jyCKNL^r-fO#WgrYppQiwpNh{_lE?Sm(8ZV&3Z`>VM+gO-Gq$#s-$5 zoH-D=i+My2DF=+nhLcc93Y~=cmYOAs4D(0`uft4v!8* zc}M!K*1io255T!-F`EgAakX;WjanPzxi_7Goy!Pn0sBHEV+oBR8{~;Y_k=$vV?{J& zhRj4n*9UjYKx=C2=YOe#<%XMgp=gA6J7a2ej_5)@@-&5Q#QY82@u#17+%F^m>|t^H zc}Nh|WtcYd02M+U7;)?3v zk$pjYBepnUtcWF0{B^h}&U}u8?WFBD*NepJa8XC#Pn1^}7met`Ic4*?;wFPeiKyWs z>%gDLc)m2Aut!Fwyj^U!n3Go(evJ}d!&gHN7uZeI#vsYHFQyv4;91x!hBLM7*&xkxd0Q~@N)$B z`&bh{FixX$c+8f56Tg8To`Zjt@|CJA)cGKo{n&;yOSIVAhI@8?`Se5kxC{1guoBXJU*DuqqCH`t6= zVN8cQa>Kht9}RLRg}+K7ni~Aao*)&H>nx4u6YEIz<=Fn6HyHo7h4rr(4JZ9862HM5 zptw_ptjN>VVcR2q)EUngINry$UK-D*gwH8A$gW*-J$ZA@XJ6ij=J>?_F*b59POL|? z{maa$cshvUEw=QXOj9SaVmreub1{MF7N6y`M8IAGz-jo*>jJ?GPpa(Y8GFJxk5|$n zc^o}MF$~>sBBs;`+kJp7w1(X(&T{R zoEbLw^X{Fqq-NCfj`9E;xt5rtem7?L`)DUM^Lx2LRgpq7q`X;A3??)3)^RimIz)*z z3`uVaH5V}C3jct-wcp>!;%Euc8}DM9Q+kq^FdYrrad`DOb>el;T4$lRLhU%Ip^PquXU&eo(07y>UL; zjY$vx9jzkoqMfph!cJucMVKwtgIpXv-aH?@ z7;$cy#@nm#+mP?uu{MJ|Il;}ewD^s+pl)Dvu)e9 zG1<0lb9S0++qPXh+vYTr-DC{j&Uwyz{|mqMS@*iW3)feIQW7`366BX5j$vBsCN&Xs zf_SO%_faMuk_>ne_Dm(3oKO(mdUsj%rl#&9>KrvQU#1e}zjGaY z3MZHsUMh7u`5=_X0#UV{O-wf}?cOgHo-#KIM~2DFhglk`7^m98@)0L1WKQ|SM7X7u zM(_3GtYeFNas$$Hi;zB-a0{9AtU|@nv@^>2Biw(2mZvp93a&YOFH*x|@bd~-eOClRT;!xsEMXj?ULHyN-Cc z5M_->ubjtuI|R2JC)rox;KT1Ve3E}{HdzMwX1p<-%B-MB!@Dha4kJ&EQ+P1Nsns?3 zMxK*Df=d8LBJsN{XGx1DdDQLtzl%)rY$Br*4qy{fT;tC8mf#2Jf|prYmJ5cZy>rSq zrEH?-haQCBanXKJz-RuZaK-1nE~N)J<0}2*sNXWIKm<0tk7;2vv|Li{-NiDlhBvn4 zMtRS$Hl&_<-S;UMY)n1~_&2 z9+eLq9D-a5C0!Alh-PzeRu&f*(QQoKK|^p)C_|Kz1W1s|D0gx%#gxLd{iK8<%c+Z_ zGQ&zCRvN}DX_h*SVtcS1n>g&job=9h!~{^l#;?TSCL!+`(o`_iza2r?BA{!2aS%x_ zvx7|L7B=OwCRxf@Kmu8#&(Y*ahF^9bdn5~ma!OgROnQ+l1#Tu;uZMzc7ufA)^s&&0 zUsFJ5lbIN1B+DU^9$p79mJ!eAqnSV{8~IjFlh|fnmzohLX^6HITkN+68v774J`+NS zdP;qjHgd9_dnKt{0ELwT*fv4jgE!&VDNhG8Xuwle?D1%ETKLU5<%`NKJRUKA8ZD9k zidVox5S2Lp<1rAbC`>9c3I+2s&&Ci6$_%@~(SG5R`vm-WV?s*HpZ`V3rNUCln}sDk zTv1ZAurr3RSLzfN%wj>3(Z(cCY?V8G@GC*7e1e-c$slB8E+iZtJ<`cp@I9S7iS*QA zZ`6DWp^Q^lb;Z#y2dZMi=|h7uDL3Av@Mbd-Q8D)UWbD0J(_jt29tvn(l|gpukOjTo zsaUYmm@)BtG1m>oo}}{)a1^aZ^38MU)1JGs4&_HB+f_N@k%oYzZz@@tk!8Q6ctdhq zge_pn$bCc@xtwgI3J2vdUrQI=nXa58ErnEG4!InhJr`;Yz32Z6N1Q#T6Ty5yLV^&^ zDa;(nMFsjFyJmw0-w6|$`{kEa_#x-y0Gk#s@(X#-h~35Yc4u++gcq{mI8P!{@z3?K z{wRdWZ5`kf|1}#x0aPv~ zuBv!4L&gNuPO_p7*8*P@Weu~(nmdG2d=v4lS!HrC)5FDD`-0nu8k5KaE$x*f<17`Y z1hzIsY{K4@@qr}n{VxP+Lfk~Yf_#Sh2sJ18j`{<_6^##?2sQyiHpBw#)}!$#N*ih} zPNapih{v}MMmBp@Y?{KZQ4`w!lcA9^LQr+Z*y`cwmO zeoWF#KPIA;(elGrKJ~HdH==n7K3OQ{ugWFVk}ZayOKA)ibfa(A2=F@5Y&%B7jme(G zH@u)+%Wfr4U`H=KUiW^Ot0+v^_;__u@#=XAc{5Elo*%?qNQT&@W^-C+$bXpvPyi|) z^k1N`_{q;6A^f2}VS*TGkqg5(I^WrLYadDuRY1rs0xzz9l*>-~HU zq!npXoqo`^&ut(oMB5|og^PyF&7;Ktg-N+tARMp9%*6z&R#5@|*P zlMoSSwOfb@+OUh6j_1k<1G@54ah$Tp$#5Ow(Q?Bq{HKoB{^EEzx1vfXR?C$vQ;D)Y zbOq-rFR5;{66fQq9Fsg2&&Eq~!e1@pg2T}RKvb6;A6`{OxiOW>fisQ5#zXahVw1oQ zaW+mvIg+#cNk*Dy|2rPv=85aDEt%%`jBEEXIHoO+>#*nxCrgdpI3M#I-t=;umYv)Sdun9sCbH?2kdHaiB<%e7# zwVKE%Lm!i(EO?enUVF#1U>d=Cd*9(t@ zOan(eNVq6=edABlxH9fj#;txVL=%*2{vb`Vqbra5tx9iUYF(Y?T&Jl_zbiwZ93!78 zz^74m0+0k1XOFXm>!xcnSV6L;b1<}~g)DZR==$Fsa%ha(P~Z@lT?}|0Vi!Cl{mMft zpw2#X1wonWRj_4@7=CsvWbH{a<|NE8PUe?lYoxcNDq?n zu>?zkH{-AKlrsE@ztSe?7CcC}8Qe>u7U;tS>B1rn##N^ezD<+OSS1~EOuFM^O)n}k z;8Q3(c* zMTD-|6L*#t;_1k7NC!+t-`(q0cP>IqAS~2bV zAGYl2VONDQ$cX;q!~<9p{?m*%Su47G zaI%Okd|qn#WmrQ%*iuVC*jkJ5FT>FS$ZX@ZAd|2^RGKy9u`gclJE6KSzTyj1IwaRA)GvPlqIxHJ(aob{zs|7P3uq<*OaQg#- zLjFR!%m<8{-hIf}oXovx%ooN>hv;~Su$}xujib5JDg~^>Gehoe;`ky*s4EevF4dE$ z0ww#;)>Jju;{N`y=RZndpM&%g!{cIey!v!mzu2cm50WY9!7>%a~=6sXa{05%TDC@dg#>3LlO7?oCzRF=aL?h$|UUjfr;I_{$4Sg_?6FPz$O5?HNa`WttaOPC81 z(E<1xR%U!KDNZ!-2)X!bF$Ts2iIE-%ODzseS=eq2Nk%Q!zc_rXHS&)D>wmU?bS0#m z{;HJ7SafUM`H3ki1KV5(yw=sL~1V9XG&fGYDJ44soXbt4l+I*m!&_ zt2_4$L90Y`b3RGQ&CI}Ws}U9^$TaeU6HBHquh%As`5tzd;fx&vGk?w?FNfIU<)XQ! zYv-4_YxLG#OTd9s{61O@HF*+uQKy%^hIu<7$N6KyE}-QupTk=(Ei!gl%uVZvs!naprgO&@zcu*mid~7az7(cTbW6mmzsX~iA)T+9NqyLn zOr-GP_2=-{yGVkA_U*U_%NQ2F!g@0jU_p~7wuK5tdV2a1JtKKzEq!l6j4XX|_DdNs zPqdAfvuH05!?{SR#JuRrtw9p??MrVm!g14t1vPk`Vd_TN;nSqh;t6{S-xc^om-tIU z1)!IleLCpoH)k|S(yQi+5wowkqAcEh>BWy(*LRGLnva#jh+P!(R9BRN(*9FR%TKZ? z6>tH&l`TtYg?2>38Amf>iycPtmNa$oa@o{#Ew`Ts!1N`MhP`po+9{>MV_>RGJk#pCoJHQqul8&=)Wzffxs8Q^0&M|i=y z7%8V}!)UmtKGUb#ZOdFTW7eRN|Yp{cSlUS0UF21g6 z{bB7-H9A#{l#RJ*m~}4f78v}eUXU0-?abdUdFhnN(sA#Sr9rt-HR<^)3`MkGM@O3*aEZ7FpaV3 zOzGYG=bx2EhX3@cN``8hgsMdjcgL!Ef~|cFp6)!Kqq~yKY>lMTR3KMlD$Js$TIBBKvAX2Zkt3TK8hUVD+)3v4oDnu`4L;rY9A`P& zdCdY=g5o`W;=K_gnB0J;4DjiqM?D?*RBIH}+L|O*jLqY}B0LTTWYifEvAs%_@%89w ztQor<6*usnhR(JBnm0rj#AoHJ&elU*4ec2m-DTA4Auu9bs?fRM)~c=%X24_9`U4-G zXKR$$r`=~S{(P7A<=xG0-b>+d5Vn@Z-HBlE`sNH@gVUU^tJ+!vLsO!6VpU7Qp;Yw! zNw=&I*yqv#-=q7Z9n(QG1QISWiR5t6Wf?W|RYL&gp=wnoOn+1lE=jnasI~XR9?##; zQcCGqv14i>TSCKqBpdY*UyU=Bn0;8abVU>U>2$$*S#O<9&N#Hig2U_R`1;MfOz3GN zr|$(ds-`<8v2__eHyw447^?g*9rcd#4H{EM^O*}=KpBuy348Ng?Uz?wYrU74H)p?V z3}mlEbl1z-Wl^fw(x0~<$+`OVGggvoxJ->;S7?{O=(6c70a>N`3qI~WA5MYv3J$iv zTI;vLVozr)orH4Br)b>)_h}8=h++JXfqb=M-L+Q>Ii`#(;rzddd){6zT}-7Hw=w(( zyw=<}_$$iijR~mK54@OhL5`OMdhq7%@bqhH5@~rXltC$HW~p)Jk@)TEK6MUt^w#*q!++fuBN?XSSGn>MhnR#@9&Y50ecxdho z<;~MtA9MfD_Ajl5#tWO$(i|}Rhp|-inaVB82#f0%>}zFNxw3*L4Q#ZQjb{wXYPI3 zx?0c89X6R-S@TP;LeNApnxCHUPhGjT1pLerxq~WkYJNsTia}hAu0WCWME_!sg|}#} z!Q39lweePY4xJ{`)JDsU<&itXgRTYAdA*LDK7vA43>FC$c7x2+6EZOyGuT}}`1s_f zD052H`4Cz8Pk4dH4(Z*84n1+MR)YlwE}wZiT%Orrbq1FQays1UC080ZOHlBv-S7f# zKT`Gir;*0dQ;fbX3`4D!L95_pS$#oM`{V;Y_QgZmUymFIcwzAXz8Q`MZ2kkK9-jE} z7RNt0X_rPP)+p@{k7PM>-$V6o=7=4*xw4Ar+Co;gWj>-%DVv0JJ}R=ljb&{2$~bSzf-1+{Z`b$J(o&}YP=XnDO`+xJ6> z<)=X|Ag^~f2IH!Ehfp zqz>lkeJL(9maty>(S{elqp5GBvQ(J6i>c>&vTo>i@#b`QxedITM{-m;653D0nC@+` zG@M-j;47G%Eo`FJRLxAKn|K)hij)4u7=Y2adsL`l7*jvFry(-84b`f|(hGm{a+r;4 z%-@Q0;rmj~UC9Fqvn zVYH-y61;mN|4fW1+FpMHI+G!G@dp!iLT=k$OAA-`K{mC{D4qc3w)JDu0r`}pD>|DB zjvkfTayd#8C1L*^N-ux&;W~qI)bKc0fE*o8Ok*pj2XldCf$|K`86rp9kr8>E`7p;6 z8g-@3rdOmlh;hnFIKVvvy+sSNkqTRt+6Jp^^Fm2Et@Y}>=1Q*`Uyt#5aA^&vzel(0 zNv{{d9mN(!hwULXSIsb$k*Q}SOLuxJUtz0qn=-|87C&v`RI1t=zM>~lVl#=mq#(dN z(=21Kx3*jh-2bYVvWQrOx?^`_2DXy~x_r9sHwkl%~CAkBcY zGEL!BIUi=Q4ZlLA$0s6e@(4$%{WGmqN9-(pNvwf^UG}x!vla58Gr+ z?h8UYxB2Pj)`0JbT|-)~i}?-zg2S$SW^?0DTIvI}ef@WF<5`NdPV3BqUd#H3Mc%Up zrZ>WrOIjbEmZ{|$uJgKoRble`o~mA3_&GuCk|#V-V=dQJH__pO-LiIzMRx7BJrM|h zs;s@-;IZXUfCxqcZt=t0>VMg2ZqF~vuxhA|7TUC%IY)O-;V~T8gbN?Dgt?S_>bV5W z_J7x7%|6wu-tSSl7}GcG;n>3cj*^vEc1W**I={H+*Z{cPP=!te|KH|_Iq zT<;xX{>T>+Tj)dUVgmC$#o=Vi+Vt+o@S6LSc9>&<^?%86$BD07HDl=P@4TrPSOlTW%{1{%V{wcjU~%d zg!R`Cfm+7$`rJseO0v2Tg(v^KQooyCJ30p=NduV6c#NvHyuZGV8WkG)FOy3oc~Yp=dZ;oNYTK+6j;k+1u^mhTjQi|AzMo2TKFp zVl0ZE8EtxvSOL)hapZ&{bxTSjA}87U8WJn$w;Vmg?|&HQqKZ+t+#hlLjKo6fQe>y| zF&CDa)Hp1eO@dFN)~!(rS(grO^}`nPx(5!O`^f+Tzc9tTOE8p?597wsQxLlQcu@$_Z7i3Xv=w1MfXZDRf&knA`k-Z1njP=WqyZXI?Qbr{JF!ew;fH4_C&YVgTdemVWwEp&G|#)KT?ph_og^*uTQs&Yg-r6A$mirL?uVd2H< z(O*_{lkpKK%nqSxN0xJ%8iv=;o&pS*HCBRG*#nH?0+<(7zV6pTKE~sP9bQUb9=Ee;Ozx z2bV&9A!Pvsb>uBMn!}7*J5nEIrfDVpYbJP{B2d-n!1?_q;9GAq4V(Qg)Aid4^DJzx zNT(CDzll)OjQn`-y?7}o_T&>9ya!|7MEGlXnk35P7N*_w11x$at34nLKI^*?k7C{; z@8S_cdOwFd8%zwXAqD(#Ct3~9hxqD)@i<1mSXqhwpmB^e>a!q$M0ZLy@RdaK8Y(@a z!8klGKu)A#2F<}ZL|3aDq4}9xM%K3>H~kKlvHbT3O`hlg%=?DZ;`iH0pg-=4#k~YVE^2brkKk z_50G7b6z6f43kI+i?!c`VfD7A4j1-gpzK<^elg}IOrBFx*2*zVRLMSh6!KnX$L7~;ppa$3<5PH~sUaTL%8 z&-p5556dTno>K7W(+I(eTemj5>dlXb;I{nA+n36QczJT9Fg$6MJLq=g@P#jx;fz%Z zF$7nHo;KSZj5!MUGUP%Uk6TYKXTkW<=f-=kxBRjlSlJ?)yxcVGYP5a;Gj0XmF?2u( zMKXuqB84AKb9KPoBXr;ir80-y5_DkoLHMidcyp*hBq}-L`wAMM?2l^~5p}erCv`Sy z!S#gIf9uPxFV34$lKl)DNoddUi{dOz7yUCH)s_>A8>Y^HnkHB8}W zEXi&KzZRGS!8+s~$6SI@kEqT1lc&NJB%#MFf=B~%3834iQ!FE+iA0J)Bi}Q;JpKE_ z1MT0?<~|U$^0L7gEKYCqt`5Njy9tFMF0@TGo+mcd-VYuJJimnubM6t7b|g>aF@w?F z5rg4(7H%8yD{vJ(bph(QtpN=hU!f~3U?t}bPY~Tr5GHui}N+mE)mo`eKpdb z(Yz5S8NHn$*wwX~HrO4gzG^~-y#*l_r=QdU(~1@_sHF_ zbOVRuPKAeJeOd3+_YHbp)JWAU?gm`x5B`83`VRLb0e3x9%cH_lnA&1qEqChC0pzx@+OA>@=6`kd**!1V?ykj2~S*3K{I@@qYq4 z)(hyPDqx6mEvT!!`69Sx-~w_|axE+gSQQDD zTpe+p(n%~*_tZ#K=hjM`;!2bxsVgYDXefY2)lmtNt*RW_TjM-nztBrJPUQ!RG&0~O z8KORw#05rghx_Z5i~qq+*WcH&XTRWfHF@fhzg^e`?P~PH-_-0wp{l!t^;Y>Ld5S)< z+`MC3h2#XQ;2Z||&S?-jd@4ZGMSeY}8g`*^Yl1hPNFgmJ$byQF)#WsNd&bGuwe^E@ zd%`Y7&7Dx2>gxjz9j8RBiYnsIyMKbiK^5EZ_f+lgMr*!GTU8a_-@Kx?VGN7BVOTYK zLpG}RhGN%92<$tyG4Iveaeec*3H$V~0mik@FpZiYA(^#*h8R~N;ReM&$J5gVzDP#w zHq`hvIjI4|I;-Cf>MwwjT!+Y3neS(+@mT9@d<7bjVJcOWN#AEKzD(k-sS#kG+QzTW z;dNbUPssZb9j#n^u4-^umB>5=V=x=ir=q`Q2}qY#a%kafaN(N?P!MU^*lMEMOiS4e z9oGpE_Q_Jmdr9Y0A_g|dNJjc`%)Q+Sm$N{asN#mA*2IEkSI0PxsgqEv6ozb8p|WZ0 zCW07yRBK(%(Zt=4Ugw$ zxX-=NzYBV!YpA_E*q1Uuef#!)AwTDvYxJYOjh1IIpOTZ1TkE{sY58n(%K92RBE|!8 zR*k^IfV^|5qu5Zu;bDyxTZnfbiTG=Plc4#ro!}WZztLXwf#g9uV!~eg9szRgX=(f8 z$}^e$S0~n8pzQ~mefaq5pC;s06mVs12fFhlyC_^|!!~)B*DA`0Q`>kOWfSsR&Y^pL zTmId`M#3;~!B7--hwPf{cdy+<@|ZUPa)rJF?a_!3d}aqhb&be2efW7%{`%QkK4+R< zLqUXw%QaDogw?M_IESVV#14|laldP=Lt<}n!pd@!w8VRi1}=kMq=H%_NR{;l`|`Bv zZEi!05^s39xlln_?w&ZR6I;b3sKN@P$bZn+u-CbayyS@+&O=`-#`|oNr?IYiekyL< zOip|yWZ`W4UbqqWk_MwcZUjAQ@x$Vc5rKqt5b?HrTi5g6p$*^F0KPN8)u3Vz*tmEW zir7AW?=?YVx_9fsz|4temF|r?g}rF8qGi>*uJ~12-0En~D(d4-GU$-mQ}0QCT0^Yf zbM6(>K6F`M_WGmM-H1`T-6c|{-KBC}MmAu1JJiSS`Y|%CRzF~Jq7CJsUtjhvxE|BD za2-ET>=H_(&I_h+sV79mZf_{EjpQIqU**oN9@jTVJIXXvyY z@_=z$><--t?X^zE>vu{9@GYDNkH4Gd@~<~DDN7}H&Bsm~d6J5~ z#RwgC5Z|s}lEKBQC^TGN%pV7SWxZqf?QX$AT z;3@ixJ!MLcRA-&adbhiBAr$W}QsvSLUQmsqdyeu<-^%g&6w+&9#6QI>Iua4Y=8B7e zJH^I})^mOa56>DB4=?@qY+9oe$}8&dav63F6A&J*tCQANnTA(k6>E5(lu5WM9m@dT z-_$4S`)LJgT=3xFfMP`#Q85bTDnbu^qx_naU>zg6Wy3&BLD~R8pP>ohrmj)iRS4UH z7^A4! z5biL~l8+?I;)~c#@yR*R%m8VJJnQZ>a!&rcM3A%{ z@Dg3hq?8p_WjT>z(t5A%cmAVARIsY3@=(wK=9li=;N`%QO4IJzeAv#_1=aMW1&VRF zKSaLi!6ZV;gPBB{KJmG{;cHGmo1^&MqD6Soic=gNsn3o`6?4gdh@?QP`41 z^DhL@+i9EVZG3o)WAn?DJa}otn`r5VepPr=Y;C>}!uvx|hs&;QqeKdnQiBsq?lz88 z@7r*^Nn7ZXv=?+==o8~*X0)2+izTtQ$z$X!R5{srkPKfeEFgWt5T|hL$D{Yh5&0mw zdCf7k{FzTDM0x)fupSw$7Ai^XpkG*~yQk3~WR+{zrs1i;I4)Eacc|y1Y$}uol)_&i zrL!c^Ng9>SLkG1AAi72g5V|%A05N20Js>A)9>8y$$tNn>r;?WxUXZ@lwTO^5Rk2{s zFGfrRQOk8V86>$>uq$gfsU0tZ@8um{vnGzZL28Cg?1V3isl2$fnNNSB%y2-d0>NR?_- zh{kGU(8QWVeDjMgF7ii}KD4g{GptZ;286Mi0%T&16$p3D#;O$1TiZfPKQ7t?v{!AI zsxzz=`zUN}IG|hZu}f?5-k78f04+nXrsy`WYf!qJ!^lUk81_*-sqx;HL zFDuo;FB+3wki?vDor+|P^LK_`sV^(q383{!otk7W-Qn&Soahcro$wB9o%qfuxp*)l z};?%qjC8Gy5&F4g~&%Cm^fJK=(w-I-YCZc3OekDiJ^~IoiDW9eOX9R)Y zDwIuC)nLOCvn-C z_Ihxq?GA*F-45i2tsvJngL+OEvvOFQ`V55gnmxpZouJw;WNpO2dTn5raqVXaUoT7j z{QKA$AK0Ow;p4#C60}VM{&=R(S;hzbm|P?y`7@7+<5jQC^*{ zg%tOt2O)m1!TO9aeZ}eLd`dy!MtN%gR`>j#3eAB;<%x*D0>p6d=Z3xC7Muk#&ze*#R>(_w zl_$aq1oEpGR3(AoB>oY~JE+8#@?HW=kL%t0TDZJ0wi*o@-!^n^X}WqY+v1neYipHd zla1fMr=81S)F3U#lL({;_0t}(^=G1qMK754cPcmHJ}px75Vd0v*1SxuPdi5K>*&Nm z@#t?9aS~R(;0hz5ApyMHZ^ereH-LbIwMYo<3l)ZO(Pp{#2TAEaY)j^R_9qvV5S5p0 zPjid17e^bVp6~8=wu?6B>7a)v2C&~d9vJ3b7o7dh2ey0n&Ci&DhCG)NkuIdWldCeS zQ-L+CTJZ~N5s_Xz=cv?ggbhj-!FH_?L3ZsBA$Cm=0k~$1V7gX|Ai7425CZ-n@069Q zvx}JTcs?r-AqCHH^oZahalZ>~T33pYHYwl6uNe0aK)gB!6)UqlCF5E9Ec%?Q{9b<5 z=}>WL)}>9XFgi*ZfaXBCP=Hi9o0(L4JO*_>VS{L&(m}vSEzpP8c6#DPZNw^fk>Scl zNnz}}0NCK&U$sH96z3{w05WanU1sTl=AiO%4s`m+e86Ag0wYxC0uW-!JE|DS&(r)4 zS->c8ZKm^tMQ8KK75Fo>0P=I=_MW9*=5YWs?csgH4eAeZZ>6XjVn@Tc+%>VbHCYg@ zh#2iWOVJP}@^l5^qrWRQVf(va9h6~j_&<%Zu0~M^ooaF5g2d|8Iz9P5C0Thk>cOu7 z%IvdZXrd3PYLb)~)$K&PHy@r&(*?Tm3CFCZcZj!EH?(&a4iw0FP87sQL5Ul4BA7f| zBFae41V93ha#ATC?UH?nTMW%UpAw2$9%LQI`~{Zmy!brbp-^|e8>A~0)r{kSTe5bf zn_Q)fV?Ol2VwWO{iy^rUM*|cKZv&(6iX)SrPFo@3zKP_yHVCEcQ>kQV8zEse3 z`^;<+x5s}OU@!BdN?GwtxinL}xV%&R@WNuz^O>8VF~KK9)|^{LRQw#3A3qEw^&=h< z?1Kkbx^*tCxBJa2=(rgsCg^O6z^)((B4xMDF68<~@Q4*(AXdozEhKmx55;#F57KuU z&#ujMBF>{3=c>&O_O6N@!QxMv5yv9kxHI8}?VS-P1EdR{7N|3h9i$WA4BCiy1M$ZH zvek&HaxzcADn!F8MWWxoOZ!?`>E0F9F)w>9!xOEzrz z`Y!z{F%yhqrXJ&+Kp2!f?Dcc05wc&Oo=a5aVwr7zH{#wEj}PJZjR10yoIupw%cyQ# z{g-bG*}6v0sxN$Ll<1FHwR1L+4mzdS#p zyO_6~=9s0#u!n@|0fRH(!_IMt`2{>_?bg`r0@B21xg~BwhZ)I#NnjtK zy8#)X=NX`8zX!3uQeqH~p+IC+=b>6X)Cce1{M7iU|BZT&!l%u-wDs>g@fmm4L+`k% zLN6^-0BQROlYZw&J#g5H0Gf%bnXOI&v(?Ot{T6Q=jbI+>az?r;%M!b^WSW89PLhe+ zZiE3gC{Fq?*D)R5zgy1d68oU8qbG-|EjQW_e1S5}RU3IwEmljv?ggFStgW)j(&7&< zpl6#Qy}@wE)MHp+|0HuQQH#2r&^bxsQ8!TXokEpH|Bs^E4kzr#8C31ynJ);9OBF0m z6W@+1kV~d0yg}fYVv>?78cD9fjV8{u(mU8g5& zT-6ahLr~vUGY8AL2HZJM0O;B$aOg0tt#>;xwu{FV!c?5r&>`QiZ=pf3P~?~zJSX2k zi0!kE=f-#1&~NM=cdg@%RYCu5QpcR++QFYdrFTG&Gr{AI<^#uI8{JwSdc{%!&`* za?Imo_8oc&pXUFQMUu6u)f*HOTT+VV(j$iH)>;eP}n zszn&J{ncl$X^L|Ub9RWmCQ!F1CpS)@YnCPV&DilQ*0Eo4K#_h{F1D^ev&YKRi!cH* zCXQjW&H1yp8KLcL>?3cE>;pDe_7OKH_JNx-`=|w|Xy7LO>oAFFa`Iod?DZPg3*-pR z3?Fa@svmTYT-zeBfkiHzbK5fpY^3mUm{C{k%|1SGV$fWEc_rQ$^Xxs72Dc`!IZ z68zU8C)*=99JjItVs5?-wHgRoD66gi7-l~Q`^*MIBpY1Af?K_dBdXhaA#Pe?nXdS~ z+3y~_;ScnCvF<{RVBd)Y5EHywuiRq?M0FtFy#rwU^=y6G(MGSG5BTkUI_bDC&D2bU zhdib$%1#RQ5MQx-JBwbLp*nVM81I6MOxiyTxL5%olQtm2JK4d;^$>{GNq~2uEwU){ z&$H^I`wR)Jf4`E=z~Qs&0q+$$DDyh`KyIfL!r^M^VAoLxs-dG&d|}KR`wV!+4$8f1 zE^2I=C|<)45PIY{R}mZh7iSxGY^&08=Jh-U_Sw_``)xMB8rrGA9ES@dH?0?-6yW2O zdffU4R8Y5SJu_+Mwb~f8&7SB!Zr>X&-flmD{^cyu`-CWUBDY?@;RO9~hJ5ASM1@ZG1zVyd}|56Zk4sqLp*ds-+1j?pi0KoU+%7uQMipf;4 zW2r>9S59%>I>ZH1vbYs{{Oo7nQyx3ag(lfgvY zDaMWN&${vO_x?7lo(56nKbnHL64FLqQc?MUVkSsCf>*RL&Co#6(`t%KV(-l#%i`=V ztG}~6zRY4X_Z*^FNk*!E#rwv0Hd~(Sn3kaXXjRi}8vtEi+Gd$2T_qU3%$~!4$_5)e zz6HMxznFk{P8%+pkM&9qsZx3jc^Y?iTUV497Bkc2oWJQ8I}C==SDcsD-<_w{ADy?- zra&SsEJN-rj7P? zK+-qFKk$4gUwVM*%>krMt3eRDCp-||Zir4Tez>{*^exHHU1L0Z%;^w~t_tV9wf%_Kf5H(E6EsD*||gN%_67*B6v~&K+lI9MNjdK3s%{&rJqR zOU^0>TF$Is`OZ!y7s_YID~Hx#Z=eNcXsg3x=adLQ>R1dCxb^cORt9sI9E7=7%wzNe zIc!qy#&w7jO5Z8OrUwp#oo7c&Ce$rM5W%%Va64nmvlGMhn}OA!nd3;0$J_p9tmD9r z9DB!z${y|n$SYkChwV54V0f9(IR(N5v3k%#t@ortboQoR({8H!#KfCkX@|8eB z=YK=t>0J>w`7sZ%dod5)Kb{ZMHIk34dpqAeHF5%Fay}2J^Ei!NVutv~;zLe{KbgEq zrK*bFdo zsn7c91!Bgd&ZXUbvUQ!@gYexfFZ~(pLwOf=LjwlfSc559h#3-l4Z`6&LR%L0XpS6Z zd1d#AK@+=a{o6bot8;d|8L%sUyp#m0EWYdYkjF&O?WQ)n`FH90uHHHg*hF4D$Cj&a zR-OC7YgLg8y;qWBn-Os%UUX`Xu0F+?f;Y}l=RcR$7J_^dm2e#c#0SrB0DlS;5-Ab- z{}lbh=>?`x_^>Lv&IsGat`^?dk#t2aemK9@O{9<#1RPWqNOxbVCURVu?VA}`Hpwmq zf_$)ClYC|?e7&GcVEre=@o(}Wh_3S6=;sR{f}(s7{BNZfAJLYuEl5#f3w&VZm7eCI z5+3HGlM8@-rm?ar7Jad5KQJz8`)5Fh{fr=uzFLq)zXK?>@ABw;ANk(%mgd0nR(thI zC&mrp@0G9@;VSh$ac%+cE_VNJtoCk@Cet$s#QYNh#HnutipAiFH)w8-5z6priL&m^ znElgTOBhT4Bpr16Qn#AC<=%+&xJ4p7t9Owuc$D)9wlCm?4ROiP`LW0=-y@LL{F}h5 zR(Ky7S=(=qc#Ln>57j2j<{8?mb_3D1bYmw($3KXu#o8qDr=_T8>)7S(Vj~dQbutG) z{L6WijBE1>+51ecqY_!XdYuqK_YfJddyWj8^`(Tk>`MmOxnP-26UH|rx*4D6-CZ%L zKKoigpaxh#zW6`dkC3|%-BIrQg2PDq1>AOXA%0i!es%?U;qO4a_;*>nFs_3-O8R+E zWz}@~zbYULo~?Cbf;L&z+(VHm-It!F5 z-fU=hiVSnxi;-b&3B%m*<~%gUO>eF+!#qdP&(JvTdG35iy#FBN(>NN0UWGpCe%~X> zWj>9d*k9;S>P{o*;x7U$^=Yg{{$e423GfGEWF`JmXmXD8WzImq*>WLy1?b)Vm4H3` zRStbKa5ePl<&##u{WU_XwW#gtljeQ>b(qXP{(3>*;85L;am%%(cKr`gMTA{CaR-!dBty zyXZ?=Y&WRm{5^o<{k?!={C%MBcd*ye_mvKUROMq=XJh@tP6y)(=SQ4Le(WeHll^0W zQ+zt@Rr|*siasZVk|)7=jX0PYF7;n(d!dSe1?D4X~Aat=R{k2GBQiZ zoa3K|gc~GbK_p?Bf8n8oCH_Sr;Sw!3|1u;j@~?n$H4?E{h*;`h!$@yoPw>O*v|#)j zv?LhqwQXvw)iE$H~W3%^@MFYr(ys z`AMkh6HIn#>zo3-e^3qBFPQ4mvYjS)ri0QmnBmgx^-Pz}C9^>38~g?_Xm}8tjlz&% z4&b0*F5ut*$qO4A%m*A6EN~U0tHc+&qXK6UC}V=fE;;BDm##CHx|Dn_6G|=@^cCP4 z7pw#v9jpQzAFOt1-O;XJ8LR=NDp(6RHdqJA-AVGKKwU57P^&2cNti0yP7|Ef0kxeR zY;ciu^px1lz}yJ(f?$(N3xBgqH_}@`nJ2oPBLvJ60%i*VbAzpb^Mh?d!H+h$MsMnN zabRu-eO0hSsGoA_4Z}1jOM?vH@}LHArRaP~uoL)-pq3mxr~_OUe8OVS+xG zyJ$TGy8+h)duSyD{{r)F52U>)Yz_7SZVUFiXmr5M1pFY%>EMw2sxbgDDL|s67y~7? zFTnN}W5O6+propou2p99~`;5^`+;DVT|i@>i2muO)G zmjSN?R{(DXR{`$@*8pz^*IkOwHw6DpP;Lab$kl_}w6ubc6=S%>8Upo>V56f}QFzyl zUSN}0VMtFNx`gy)n&R*t1~XD(Wg*srVvLel*HGm7-NO4~I1k*1*?#x10rGoM+%RN@%!K=cqfMdgM9to$z z_TaEPn8t@aK%W@)1U@0`1votH4N7I$2XJ!O7jRtI5A>m7e=lGo!U4dCg#$q!6%GQN z6b=S`KsW^Wm~bfI=x`X|pm4ZHN%aWeQ^JuREx}R1tHROX9~f2w_6w^(nHr7(tPaNl zjts|n#hx*SMl&l6#(T7)CwMQi<>5rH1zQo)N?#dH0%b`!84YHKQ$U{^Rs+rtr-J_v zNEutOIbqs(ku46V178r%0Gt=jM60FYEWl;qY)}@4a{w2G<6U$)j=EeE>T^L_7tVvA zKO&<;L=P8$vLRduxISEj#%sgHz&D0V05^q8Vf+c?mD@t`BGZm=nb+u#sgOK$dr1D6 z3CSPR;d1X)V-nmyR91N88Y^MXx^NYJ$rPEN#OlLx4{Lsk#P)>28jq62wL;)J@1aNR z3uy)qgzJTb4bbv%xDoJ3xC!uJNDm+OhvZIs!_AO+EZpLWbZ{%GkA~X-4~5%3ijzA$ z+T>E6X-t*asnDaBFE4~?ax5fVo+c5Q_c9($kD(JXb1fu;1aOLPvkEK+&i8vNmnv-DA3+?R%+&*4pjPvPUZ79o zhrB?W$`5-%YzjZ(17I>$zbvm>NSCt4axEv?@;^y;YS2JLjo#f}Qu&Sb`maS*6ck z0KE;eSXF9+99QLSklm_Y8|1R=>DSm*PxafdYo4mLVb?uXZ-ZP`jkQ4*8_K7pTb}wv z8+O}M-8Srwr#5TD?t1EzZP-0eRoftQRqZy&M^(8EGFtZ3YshF-s|_+&)oFvARSnu8 zqgBl|$W}w;j8y6ev9nT{uNrMwxvz%ML}KN#R^ek<$V$UlH@TZ1YCYucKKX2mqtwzn=F$LA?kWSpb4Mvu`5>_U*tWN+d@xAc)jMhoiEZpz z=XdKNjZ%AZA!tIE%^`zq_Iv8ftcsc%*jV4Xf5{A=_H;9Rdy z6a$z9tybxiA%Cqt1$}MMtI^A9eJbQ{q&FL;fnlq@L+8_hr1iZzyQ{PAhBX7CdKokQ zz#eGKLi66nY(H=Y8FRqa!PLs<#@ zzOf2wG#INPOC-uOmnsrnBB~^U??%yL7#GSo)j2e&Gpc#ySV{P%FM}9pjVh1 z(WKPegyzNOW{j(c+1q5}O*Ye%w}3dy+zN&{<~E3$Z7wr4^1l`4cAqJ)u^pJlm&rTj zmxY%vH<2&LUSqVlUS?}eiKh4^Vvt^98%&<2k(xV9o&l0F51H(k$!mZgH&2=Dg2`@} z>P|=qV{)y})Yp(|!<~=l97|D=aL%hoS5m3Vu|OpWXSe$%>ua$=ma>a}``9#*kjwbk z15>GNFLYETd8DQ9Ll>j0{Y2&R0gPm{br77NM|RE>@E^tyE3G3w{W`0B6bj&DnZ-6* z+A(;o)ZgV7C|n?ezDJ56hrUV*AdALoSEa!&$4Zx_Aud1etD5vjzQwXnkOx^OF@QfI z-49~ht<$jXZtDzezr#8UU#PdvL6vRRdCX7Rx&Tk9u`a@!_E?uNOS`PgvFb{iVLg;N2uUZaUI-x3j})VYh5`4$cWs__=<=CEFlaUXj1cOF2;K28Hh)7vQw z0&|elB?#1hPEio(1DxU@um(FNL0}AYN`oNQ*BR!-%7Bb?$^-J(n@S)LcPfHF8R6Vf z0(F#Az_ z=?fkSsdB%7846AefjrY00Cna#0|PboE{*{>6gYzeRq=5!U}lWniv{{TXDFolI1;G( zyEr$f+PiE-psMe(#SUBJXd?r1+EHlL4yiwF29@A%hjd?++Obkvr_LB?(T?FbKNgB? zamJzR%?{4*8AlrrHS3)Tpzm}h!YaF*Nl>ZInG9uWohh)*Zl@ajH4e_?I3weLi-YR} zhjn)u4s!ineQFTO1Kepa*ma3bhqxi`3>qm?@0mdu8|2P{z`^cpbTQDK1Kp(W^WiST zscMQ#C#AVATj=U@119%(ah71b6V41w>E`07!PGynh3I{ey9mSV>9WNElX|!~NCnDb zcaO`EcwcncRTmjCUxHD7ky6pmFAbRX8qNyjP|JhB>*K9}Mp&3DF{(0e6%;D>RtL05 z*FbuSw>AizUfwz=U*WBX6}oyGg23(VZG_UL-X`d#ASVcnZr*07=CdvErS9I=fc$V9 zO_gbG5150X0yUvS3ZB)&OG6>)j>|Iv(_dpXn0Axx3YE=KF}NSRX9oGXx$4 z6T}XLgEKxm?_3oWGzjeFmpr31D>5ZYj*%!?~ew>mcV_ zLA7sl`cYS>fz$7WyZywU0P_Y)yraVC66U(3@Ss}aH}Dy5l=!z5_C!kJp2C{#lX#%8 zCl5x*%lxMbd!a<(n^0_Ct?=(Eti>{gUqtc6Z3_Q}!oIju;pH)fwY;V93VeR4 zAx6L0-fFALf2^>VZmaxlg}r^sh|Nd0$=OuP@j6lM4Il3Y}jH=$j?_W}VLl-y7R? zJ_ihM?$P-#7523|I)6f8U+-q{uPf{uLkzwjOneQ$=z zTPp1POHJNNVL59|{<6Z}U2oD~S!=i5rnfPX*U0Rh5hor&Hr6t|EI{| z-%?m^SBL&`UdNse-)1TNABQ@82i!2P(%~t5=8t!H8lRmeIrJCBI!||aj>0}z{>PZajgR~&v0)xWvn@DZ5W zkM2AC7YhGvH?@! z{_z}_|FgnAS>W<2kpE-1%R4FTKXLqAjp83JxIBf=KVEV9PH_L%b(hzp{NIQ;A1dsB z`g!~iil2`3cv4}1s`U6N6bt!ukDmt8g|G1VuM}3q*LeKb3Ql#~J>K0>SP9?d@xee! zaVp}Yfs`TP;?+RPk>Kzd7+?jz;D3Lpdd zVV`$(6*h>U_IWoTgZVk1_W&}4-|~4+AVYb#fcFP7j1LI-9~3s6j|lj06gGlS2>1d> z8Of&yd>xQcd||*hfORxq6Y!4|R>?O9{1b&$@f`vG7i>?wCgA(QFqYQ^{1A|F2;TfK zkn#L@!2d&G6A&W#aS$f*`{2buCh?Mxf2^>{ygcOhP&0-14*4h`)qHx$ixIY_@>L-p z2V@%G67un=n$BxNz7&)hd{@Yq1DVN>hrArfEPg5EDIl}?y^#M=VRLwz{&t}((;qui z=tqdHRNLHzym<#!fOLk%IM)q1)%IQS1!KbuQ*Be}f-XFjDJbNrL>Z?)ou*0LFu#;) zn|C>A$)7M7OC`H-6vnh8v| zKmrPz1e6E?W}|>qvY4kM0T%WEQv(hCfyI7UETp1C#b^+&j6pn`YMV|Dl2SS23|{yT zb*T&lWgaTy$>8?TIQLJf_J869pQe65gY;n>y%mgeHON!i=8eUFPTRa|LEF3*ZSze0 z>%gBE|10PK?x4}8Pm@idZEjE4R4S+-+UJ_|c}7-D>s5620|t}!;;EW~DxUtNbtq%R zHJ^kYY>{iF+grR~H0)h1?EQIJHZ7M-nEA>7NU6kpL4B5U(~6`%Cjotf#y^Ua?NW(K zu%r@$IM6->1`-%cU;vM*Q!f?tC*_`(vu#r^B_?tSRvyM9EIFDd7f9igkVnKqvo*F$ z%uAu!it5q!3#8arVcmc;_HH_pe?7?14?w2#?BtCgm7Ky8Hv`FcAEVp~sObwDx?RWN z1Gj_37>SAArb)ri8O!@LKF$;6xl(0(yjLmknNnrqPQbyQt;$jpcLOPJk_387);h14 z=aq0#vq(xD_EeI7FJQhQ#7^=^gs5ICh2Iji$$|z6VvzI`$+`CfLUXVte@{R9*^*^j zG|D~TDZY-zXp=bPkrA7d5kE&0FpT~_2+MsSM6_gy2V%4>B+0a%!(cy+PmOd))BL6r zbNRzrevwO!^ZCUlw56h&)-2emd1-yB6{ZX#rg>>$i*%r~NVn;{UGqYvt|jZNq>DPo z{9j;=b&7RTzEE19XC;q&H8~9dwDIDMWvEfE(jLKFsmuGcCO*TfOxGj}Lm@I#Bk=sf z(0@vpXP#FhDpFBJVjP!Vk14_Eh6X*RD;XMWN~kbj%1~vaI*fgZoa5VYj%;yJQ}dzr{JlfxzW8`%KsfJ*trq5l%bmK=u)_xZ*Ols*`XWjlt7h|4Xdu~lHrJl38{ z`6Z%#=CSsfZ2OXI`;w@ANr=I=rJ(pyc1=DjrfHQ}d%5RgL`$5DaZJ!K-m2Y8nAoon z`;WmcrYqNMZ!*;7o{4zRfH##hn6rXe5p7mPLmlDyrD3$*p?Ve(I=oI((-ONuS(sZM zW+Q5Q?Ck=bDkaK7363b!lGmewB z#&hhuChcfIlc`v$I<(LcdB^z3JIKzHr9tpFG1SN@#zzh?UN`^-x6RA)HSJZi5eFv9 zT*%GtSCga2I8VwlBzlE1Z6FcLpPO13;~NiS&oGKTf7KL~{+duT8%IRA{pLg7{#5)M za*99%%N>n7P8Drc-=aT%*&1%vJN&bGO$YqzAU~hYZQetRZ#Tuow`9q-KcCwtjHkUs zpOEM7=Xr~H-m}T!eqz6f*KaG5?Y^06`}5Yd$f#ax{~9aUz*D(9_?I^Fmc0EAE){I& zxi^D6H`zCQ`z^{3Qt=uu^#f}B9hqA;_E`*K6Q`+x_B)04@8) zIjcziSs6_GJt&hL8fGIT1myJa8My}r(OAL|z;_mIundTyF0(n9L@Nm9A=xTs^<-cLo7kh4c- zZ+|b*i&oGfPFrN|evQza(>VI?*LWjS{%{qok2j8OCALHb?(!k#YZqsQ&wPXg>poQHt|HMMq*B7lf)asHi>E-To*Zuwr13y&UUkt>>*{%G(2R|Gb~4z zEc zEsJ|tMEQpmLcTPJ=NEIr=)dIUApc5`N|e*&v33d?v=EA1@UmuTUOgzAGc^|B7(XD5 zpFuSEtfMzdYEP2>5Oo~|eA2-a``kSqv8R%&dH5U|aWzlYNr?LqJ!h1}Tbh+cJ`Oi6 z&7vxyX9>q=N_=8-Ahe||q@|*9l!RHf%4iGyp$ZL)MZkvB?2}ocUyET~%m%eY349{= zr&#TIBf^|1el&4nUfcgvDOkzLt+1w#`>EtPv8KuJM9klzQkI2z4aK}(&KkeIF&SM+ zSyoT*S4fEpS%xk@QWVSnChe&o*HbcLpczMAJTesVK0~_^g{DRtmUT_vkLzowpC?md zfBP{RoRYQ2)WVqv9#a2UB>f4++Sk#;mB^L$@+iNP%JYxOdC>w&Y|$CT;F`x;CeYIT zWfX%yjOP2CT>25#)o*ytt<;SODBiQdEYEA{3d0C*N_6nuX~ZOL`FF9-^IZAE6O{+Stpp^oD+T(ia?2B ze*A`)`zBFy-b79*SH^F8l}&`=SY`Ycq}}F{|03m&ja|`1XA)Ido{^N>lzQG42KcFr zd7>=A~pMi^<{;AJ8oqh!19$F+VtYC>lrR2KRV$>_RM zENmvoUHnc;Q-erOk^h*!qFVTDhJ3bdLql4`a1AS%M+=!1RidxIkI8oMgUHA7%8k6y zVRA%>5s~*K>r~-%CuOk?a~AtbJO3Hjpl!PCFIelk)@{Emwv7@$Q5o{*b?K#cTy6c@ zt5qR;Ps8${q&@dXh#_g(1EWZMjko_%te|Ul^>&r=4^V>iz5@1jA~-B<3{U9zw4BA4 zH>G&XKa=7uk5at6QN~L-t5sgGoD;28{+N(Hk-*ap!*c$rmOoZd^2UY9@nQaiFk+jS z{hTB|)A_5ts607h7QwXT%Q(vLy#0C;DH~ts__9bMmq(|F#Bs4oeonE0uAGo9_4!GZ zEfwzIwduTO$tjSV7V#^cSQR7g4iffv3uDQPh62(*(B}N3NA~7FYk`+3xLxDoVh5j8 z@ugGR+Z_@qS@s_{Pc{!|X4}7r#Vq?z+04w1HcTAS2Pu+h^7HmTXHhZEJ1d#ISLd`Q zpLr#dQysETXonS8X=f#sP7aXbef`RGvY%9$317gOy04$9?4;1t#QTwt3P+3cq9&v! zu|=%xUrGoh??jsc24;wXiTzA;k~cL>CkD#2FRb7^0}c>h$(t4?r-z@ALb_}Tb1N&g)UZpm%Ui|BI+`E9p{Ak z7+GG&ak2@%3XrQgc^k6eA53wa?ki6o-->He~~904XPTS$1J&De(cK zvrj&u-S9clYCP6_e1acI%Mg~ow^8CmArT|%B*DGk{LIK|#ofS5?b3|{M5z@@10N~T zjZS9;X8ArfUd^KxjjmPbPzpK8Pq(g%Pxi6-Wxm7oXnGze#p@KHlqi2-ArGc|zudQB zr)W=FD)yyRinMD=K-<5q7i{9uKGjP~3|D9%A5x~&UL@pGB6GF;prGvW^Cl&MtqPWK z3je3Hhv6S_CJO((B?|wUZ1_(~QT&3$>PX^CXp4$pQQr7;N2H4dd&L30?y=;sKu2=8 zNy_frpT?((#@YQlV~7R)A)|3~CRzVWJ(B@@~%tCYf7F-Jm_TJ(bbc?u;v)pGI54x%3 z2C+cIJw*Fwl)`6f)8rxf2XwKK=Fb;5dH+O*t#6RWZV*?#O&2I2#Ao{{{Fk$e^Zb#a zpv(bfP9p_#`_JTMFA1NR>!%-{_R=}~v2Ok*n=wzIL1Ew+#7nD%R0AGu9~z9udJ zsN43rO2OIa+8{#o3lLK{H4SLu80h?^`E&VpcZQ%+vm^7pCr2IuI2-g(ul<@_xL>PHi8MD-2g3h_4&1G> zac6*tJB<e*14oh2JRrMqP$> z^>ikGiTlow?3 zI?oBwSzd(!v^zAMV`H#BOJ|#|8)`JsN;gLRl$OgZuIQrLXaD>hwQUF z`^ay1mT)MWaYhsTSY_0D5n3;Lq`VmA1JSjdxFHo!`l7qiM|0^Vp^|;d2Sxuq8x^D5 zm7KA3wMn4|hXXl_?wF|rV3tneFe zh!PuA=D*&=QrpO~vWaDnDjqgvXlgTwO)9`qjrmlfR8f#HlK&(NJl*7_g-=inI>BjO zp!yG#NxqFETFwNSg<=t7*A3@+;tukcmaJeI@%$I@G!t=Zr1WqctAv{WO+o3ODf@n-E|u$u9vl%1 za*lB+{D~O->W8CG4p+r;tIN={>X$|BnkL(vQCaltC6j&dlF2@Gc~?~L5?%feT^IBb z-o1p2p+m@8pSrG$ucMR7((FN-9@WrnA|!o|LeeApWv3WAei9nl3q=wy?7&1WpDsAh z=`La!Un%Y)mWjKFmQpiXlj%eQ=f1d#+|ILm{HJov4yJM1tLt%~d-)^zL*Bg5`A89m zyAOHhBPrJrJFG)zJKD*biS$QojxFXyG3!H0kUx_BuOX;oXKz83IW1`CmUEVcoaE6B zD-jf7<3Yue49^`8eeIMIc2O1)w(4-`v4+&FPhI(-W}y_1CyS1vzYyI-?(oHiEj%^1jlf&AZzH|ZxKr;I7m%e~fm40A(We^yh#cU9@32?=R-c{M z+}q?C(udM-u*KZwG9fai`d#jS?zva1LTN1~_48~UCiq!a#yLiyMN0`ID#wVp`C6*& zhwLvsZF&#?Iw;RKK5<$=gRG!Gji*GruuQ6L$NgTs!Y6M^nRiJ3#{-3+8;(r`4Eswj+XLAOO&Gy6HEq~B-?DbupI5JkM)Y05g3FLdzW5b zsiT*iVnPXNPDmHIc~W_4T`F(9k;z$!bvaUs@HN0kOXBSb=v)4nypdduDY26xQe&L) zdc@|)-6MrNE2Jo$`RO6xE4f=kdh;M>D-I46OFD^aB30%OmuPH{vyOY5730Q#mHFeO z|1GtV^(kV_d{FZNv3y6o&rtat{%55Rf3!)>2bm9uyTR7vsOjh7mo$dg71 z(~3iP zrk6VReBXcrT@P#w`48<^rZ&=zT8Pq9Q9(5Ihm`rto#lg{{=a8 z&jMMoT)(}~(4m3$ofLXEXY9wFO}clo{E)5$jZRi4b4;QpLk=o2B?+>3yf*IK}%} z@LgGPk(wO$($PHxEwkA?2J$y)lq39R(TgeZQ+_jto{F@AW3^G*#NLmAc-p6ow~g9H zYoom{w`(J{(c9=i7@H$v;VVsndWsZnXbYuO?u+eTWChbDVYyT$u~@{_xlL<#A+6nc zV&&0hl$RezoSv8h44Q)CNZ7ElDC6*GG?tUHqqbq6j8$(}eb8?!z2?pj8>^x_)FVW>l%UJ8y zEo1L1?TCmv^j%t;j-SciAGtq7@))^XouKZ4bNcnQ)&uQ3 zDR4#wA)1`AzM&!0&i^{Hwed!p7=GVb%}S*go>bwzfAJF|TSnh*iTxNJg#ncNjRO!b zq)jj$A+Glk7@<(kCZD$>dgkG1#d!kdoF$m9S1DpH|G$>H@h?lAK^MN{2P=@SitU;h zk2D!uIJ~g(5wbFE;F$W{6W*h=@|+VMe}oJ2RtkBqNAfa{$$Kf{%n)b%oL}9zvCV|K z)o8j(G!3GrC!?`U7CG|jKT|VL)U5e4HM2#{T2b>#R8!xi2tCe>wZqg3W$H;8nq#zB z#}zDzKa%s;QloT}*}g%07ueH{9{2FoO+R{dGk#vUAicfWu89*CYWJDhdYW!BADb(Z zwF)XXhYIV(a`(j=;fPdO8H{ZZqiGe5W^>bM6vl86in`p~#J&;1P|T`$Lj5{CKV1{e zVrzP_?v-3glyfAWX}r3HXJmQG+cmwwu&$wj^x7m$)Bdx*CtfRlp(Sho0&n;DpbGt3 z@uG!f3rEU*AsrQ~&;xNZwpoa5_kS;vKPIyOLxEd_iT*YcxTk6EyzJcV5q@{Uum0?m zJR=s+qcd_b8&9T*X9`=zq&V40Ih=L$Z6bg^myN24y&)ainqqXpbPDI&1yd+=qSoog z#ZJHB@Mo$vimKGZ+-P5Rn=_v;upln|@QAQS91%=9V>Rz!6&N7xeOP&rH+~^uJI)Vw z!Bz^thfuAETc6txj~CZa?G!u(+MS1u8y?mkN3C1XnayLm%;%IJz}*jFg&k=&p2h93{~T`?plvO!Frwv(12<4&R`sw8+3}#5zyj zmExBg@8r{oo-!9VC`7*8L@uKj^6p53TGM6XD};(Sl&a}UR`6blo{XguCE}go(R4I6 z%Xs4>|K`!d6>+F1wdqt(t64l`@x|5e9oi7~heh}=`y@undu0wi2Fw*tT5?|D$pfhJ zRnbf;RNB$w01S@q1nQ$Jfm>4inok!2bSId&CGqEVxp_MtcI-qKKhi<*MC1@X5wYz` zDTYJaJn-kf6_g`&swX{*uqT&MHlfsff!=t>NU!^Ov-MQ6hn&u- z_8T8bVH9?*OH|A)4jtSMudIyU zql1`mnaEtN>rfND_S7KJRb#fcS!)=t6|64=+|S;Yc9oky5oF!$K}1U>x{5e3P7I=X zw#NoPom}lziuWwyg+WxfB~sS$k1=)$9$_qcjB$b#!{U977;j6_WZstYo=pz*)8acN z^hyZ%*25P-68}ZZcj6;UPps!j62)V>9D2CoBji5SPL>{~ndOv&PiZRmpmOzR<4pK` z!3}CSRWL?zW||~xG4-RSIMY{7rIX9$AJ8k+Qz)_wkyAAV{p3_9rJz4xtY843S};<^ zE-+Lsm;^hcO>&4#x96#3Ke;kO`Zpp28j+E5W%kMUbf^|n#T(v3Yw zLaG*ZMCTMyZbs!vvUt@5pY2l0P^z2@`^VJC{*!2R%xh{rg&5`wwTYos!6;%_@L9sb zrWT{9#Ue>lRI4k0^o`;ZVZ1bm9t=m%u1lVK6e*++uqU&@&#OSxjSIWkWUcm(eU zA0I4NW?e|&jV_cp6~-v>e=L&a^_All0Yx(5rU+y2a_hrizgiXY)8c{dV#$oD)|H2M z@DyR?rfXB0*?8BWQ8N)hpo#v@J3_=kZu8x-i?$&(Uj8=&xAqt>iz%C0*(F9 z*Qn&2sp1vJ;Squ^NID75ITh-puHXE#ce*s}9*+)Np*#LKuZ;H$nu+whRXhHhrFHO8Km3gZZy*EHyS)=i$O1tEX58TQ(ME}fv8T$ z`vjCs4MMK0(gX$R%60@>N;&64PM1f^n!H0e-15(O=ZdCsKPs11ciYgNs{Im~BKX@R z?|Ag=C~v5o_sjC+e7#*nz3Vl59@N2dq0%}C$$J_Z&_(hhHurW!c|$zu&3z+JJi|*K zj1d)mY?or_iu3xQ)e z$=o6I{%)g8Xebi*hdm&}fc(7O#vDplfFc2L9_cl0Kd#Tan-^RZV z&FJv~-QuLhB-2&?NiSY37n~$wMp89ZdqUVhx@h}B3}Jf#IYA9#kY<1S{~-kBPLuPR zVo)l2K$?mkj^6TyB#HvZR2I!IrL+~RZbm47Cn(~UzN ztfOjL)Dq=-QATbJQ=+)*Gu68vRu87)o`=O@RNVWpSV_fw4^4mhG1EUurVn7r{cv4b z!NIHJ886k6#|H%ONCjuSj;B$Q;sdF4+Us}@B{@EbO6Rv$feSbPYT z&U+nCd9CtK(exdli#d^5{D9@1^1|o~kwXLVg~)WlV%mon(Oe#s8tgxTQ~ zZx_kpAvMNus3{3pOk+AMk^rwM33%%Hf&>H|dE~5dRP^pQK7(3Dy)B{Mj)~srl=EtQ zgiwaD<4qkbqYh3qm6uTYWMkHmdnJ3Md;0l;=OFBqM5oqc60CR0OT{lM@9=_4UdM~T z&k%mm>-YfpX~G|P9WMYsN%#e?;|<^!2*2TVya)Ui;rG0b*MOfO{F>MCI`B(`U-vqe z`KkCl!pr=Q#lY_pUhH=)1U@nVUg&qc5B_sRzwdSI0{U&jyZ9Y%gMN+h+g``Zz;6(K z+3R=}c)0=ms@Jgy{3SB*BEKUJ)A1|BQ|@=X1)lqa-|{-%0e+qEJ6^}Tz;6}q++p8#bQ5Oydi3DG}hh|#e0p#Yod6qv3Ok+uTv4$KHYfc zL=|S`%)?>>70-%H)BJxpdlNV*t21x3-uWx92(MSvcsHJ_VP5gtwJGoS;HE3FuKi9IU zVBLmal5M!u7wIda#ABQRZTFc+lZB1Jggnk*>`aBv`!15k4+`h{;vVc{K3*Jua(T(!FY|)fTTG+cYD= z&rn-6S7>Fvj2E0PTSwa|D(c@y*1zfoHMc5WrHZ1eR8*CUs!~x^DoU1Q^L_6ro;TmZ zQ^6UPg$(KRz<23PiU^>S5!gwF6<)+F`b;%#-rl5UK6O2DZD&#yx78A-Rc@t%ccarP zodlFKO05*0T?bY0s%^HR#VGplFPex=GHsCz2f1m6@Bw zyDw`mzM!=l1JF@auKSxaDJmeh#EgC0GLt_i9$pAYpHnsJoWJlz`ung*zi60|xZbyw zKyk8RLWkYshV@ikAyWe>{Jla7A2)&LRh{z8ivIfp`Ef_NnR&@BPg47vwJP-uXCKLr zs(67oXT!L&@Pbx2nd)%dMZ*dJ%v+eOJ-H9^sIeyCC+NM$jh?V2vK z_!l$j@V$`U=-A=|QX`Gcz66n(^EBi@Yl{VwczONSqHoLuQ;73g_oV((j_FfLv zDQKr|WDzUQK{Qj%992aH7GYs#9!|7FL@)E4-u}00Zh?(R+C=QnS$OGODrVmtJD-Z_ z{Tdq1refyJu?xf*nX!whm~~a`5~Q7Ut?a}MqrU!@HMs$V@(vXCB}Hrhx2eoB1YSNqhsO+^QpD2SwtyIS*P;DcxzqDhjFF+ z9UKL%bxko^BIWOtzcZqNs@g!u0Sz)Gip551I0(NCo>K?{Q%A3m3)=N?oeQ}vO{c|{ z%lb}cv3;i;B;C(f6v%`r{PDw;^@cQC6onpLAU+$aB;JgrtIeM#;YG!Hvm zu+>#@MoZ-`ilZ)>jtiSAdJvLcnn9EAUumpgN>w3ylH#g+E+JOaedB{?w3d`YKWg~HneFT>WML&nQE2^4+U}YyzQoKa?i# zSY?{47g0*zrD$^_jq5Dba+m+%4aja8Fbb53kk9DxBV9diS-RoR=@X{r> z8H9res^L$4s)0(SeS$OUPg%C=v~G1u>+xTTIjd>Ku}-3aBL$SgILFtEa~xOSQ#DXm zxI`%()7;__bjLIv73P$w)9!N!?Ex*2av-$q#~NPJrfax1zd{1NYWC?maAPxSabIQJ znHt!-!7|TL4nLL(C4^&I>4-L6@}JKO{M?7X8bs*{V>fed@sAJPAhz`v;4h%E|avC(nnfxpN)}vloP@9O?O?O zxX{?rU8h#)8#xTfzFMaizK@%Y$HHOl(OhaNMA^7TH_9Ox=YTEB|Dfduv1a6m50RUQ zrM#5F50KYv9=bn~>Bc)9gOXz4C^W(8z>|!Iw}&x;^xfB3{vnZlr?uq2LLA~lEzmIw z&1CJXWZqWY8;z#eP&N0qMtyK7;bvY+if>PK08v1$zcWV?;=6~wcQZWy!?=rIXh#L%xq*OYkHx`&?)*#Q)>t>i&Ht%aZTVA`X{zzMp16fg6Y80llTs>^wp5`(Gg2>q3s0n#(m48x zrt8o_&o9%$i=jR8VrY2;R*|q38rX;*hirr=%#n;_eL3U~o+2Hp9rskKg&RAGl%d9e zg?KMuAy#ViYy3H91xAkQ?Ir^|PNs|f_)Bs>zK&5^4ay2kAsUOV_F%v=t>V$AL#8kx zAxxCf2hpRNdQVR^nUMYBC52kVB7Tit&9v7q*bbwfsrpn`c9IrL_K_*}a*6@X(3@z4 zR)kwA&eFUT56ghuSY3rG)uvt0R+iWrGX=2g_Y%2j!- zwklOIn=fkqY#v3kx%@5S+g)xR%zPySK{}9oM8Ov)IUrx!bv1bn4k8wqHk)FDyxe4m zS6Hj*liKTf6=KzYVNo=QmzeP0plKG*9qw-8T}0`+RC2i6XRLMEVNivBslJNm55Srf zDq8isLdf0~)nrjQWNe^R(K4FF{Lob^5Gb-XC~J@Y3C6#-Kp+UkO?*0iExd1| zZWh;U7ybLTQMw=#H*3D2>J+(ueYtZd~DgxdIe421bqYdCS5sPgP(u|=r*)ckZz#RsW#$F5V5;9;~9<2)+ z{td(X#^2$kNb_Z*UeSEPsyD61Vb``jhTeKLGNP}6l{CK*PLXGIaRK{`Uh&#i>qPfI z0TR7!gARe1^+>;;+i@dq58p`2hcx+g`esd-1y`QYS#SmKGMY-Wp&ymywXM`)b`pOU z5|KSr$&KauzM-kQX6B(U#RnbP{_Il;MI0>@_YlWD>Wqp2v9F{;Om}de zeWn@+kz4{EBVguuva4D;snap7RAI5NrRR2G zKE&Q3g2S@E#t+IdJSbD56G_U7-+K#d^ucdyxyK#f!p=8h@6r-B?Y@yW=)vz0`K!!v z@ErV}26+pn_$i}LlTu3PeJzki*b052Lp0Y+bB4nG=awEoD;(L1Cmd=-*pUA&8geqY zgxqdqP9@X0ZQH23gq_={tDsSka9pY|*Aa^06q@IhbzDB@=jw&|j)>3BrQX$1Y<`=b zU(C!tb-3u{;q#pV#ra@pKA>aHw0{%IEB+Xp%D_ORhOc^OX@wtmB8D4#CYc|ZVhey& z%E**|sWuQB5q0As?#2qby;54K3kl5JN(zaUsm-S~X~fu0U+f85l0S}p$Y&?)gALkO zTCZ;&)a`o3^}4Ov{-RH3|TntwTIhWT(ZI zX0Px!LZU-}v-c6q|EA*bg2_Y%tipPQ-Sx|bVCrf;zq{Vc?ygr#FW2WDvz5e8@r*}B zq(!t_7~Y9OU@#!@O~g?-Z0>Ib&9U98=Qpfydnc?*h}Sv_qk$ewnBfJeQhJI8C(gG7 zPwBZ2Rans=}G$oM{!|m-XirSNs4T65Ec=(=W7XZIHra1s=7;p?49PlRw% z_X*+8gZ#%_p1-7v&wUYreLhN3e!X<4uTN55h!V>j5fIB4Ytw`T_NCg0_8_9H`{d}? z1${a)0$}>IodG(Xi%<~PYlzj+@Zg|dP1!Dr6042W&(EVi9eOB#MorZOIr`&R`A*zR zQBPz#QpFyff8L;BVY`K#vystuB{XU%qpzqabMO#Do!mL}(&QN28rq1GFoq`9{;t~A5suo|t?{2mD z0e<(W#R~mGuAsOd0FToZJ#^E3dLR|j-%g$4kdwh+F!!nF}-bl3$qFRrK z)jEi3JrRZvBRrSGR|JEXov%WSbzTj4v=5#if<3+ThAzQR)_@QA-~~0{_kHlf8gP#f zUWA3scdt(c3;TH;|Au`PtmvJPQRk#mMqSr+3tPXGem}264CJRc{gzNKST?_JoY!4> zE3=eVmjz<8P^o8l_B8K=Pt&$+*=YgKf2hNxiR)#@Cec05P=S`s-E{`xWt_9<-!tgn ziDE>EVRoB6@`mlK8vAj|na1{BhmO9w(ytIF(PoM6?%A>X$*!>BVz= zy~%Zkh|FB9m4H!T3E0k_=&G_9({}1~b+qpOn zyp5cZ7{g7vuG#T#arX@Tsg_xl=pO!to*9e%bNB)NIG_(dsLNe;bG)q`0zsRpigr9l zMSVZgD=-qZFMmpxy;3QSHi|_3S4ty|;su?4#~8(n`0X%?m+)IQimQRwZWN#5UL^KX zvE$sv(Reo9N^P{`qK%_b@N*%;NFZ#BAdCdU_7GtV5Ozcm#sFbwh|mFqT@i#1AUq!; zl!5R<1fdLs7ej=0AiNYo;NIDdfw1rlwWRkz9M|!0*mc6}$oFxJq(eQ8R>kni32|pr zoQ#)*Jvts2XbUR1^=|gwB-;ma6OD%uhmAu$&>fhFhUf-vO1YWmp8p2cx5qN!BIIX3x zK2TCwJ$mFCv#-3y?5how)Y~h1gfjEfysAg;HU~-??lsQn3Z}3cUC*b;_Uqty`uJdi zVo!V>Z!VCy1UYtN>0_$az$(R|?r+q_9gD`jSsQmT8h4;J?l{E_@Z;XPJT6Fgur}_q zXu7vAj|p1?i5|#$AZk5kXNoruPLTpQOJ&GSTU+?i;)Pio`Z zqv<}?!M+4>pA#D~(35c|YvayE<4y$(!i|Ds_$&foj^T7IlW-`i#-?PEjU>RvJ`Lt|~H`R@c1ce^9$uhw?bs1%w@k0#qz8Zd6zcG0K|Xq#(R zuK&PlTVe3e0)r2`C5YJ|K%Hi#v28M*DK9Xa@N;;XDpm})biqgoOKa;Xu*nbXpujRC z)kIrzS`a=S9)QeAH8bs}lUr@AUqmh@x8&22DQf-tntQC}aG zXs8hIqCs5hy}bLi8_+uHCmL5N%`~Yp(zDww*$p;Mw^0TL^D2QN?KQ}pz!;1+z<^!H zCI!0Lk_!YB*EqSuhT=`WyIWkTejx0P8MWCUjBjlEUM=#SoD$V$ z$8F*X6s)shQZAjLkY`U}e|=SCNt5sKr0RoQSuKd1u$7-m>6CGIw%t@E7RTciwAw84 zc*JyplYPqYQL6k#a>bRRMpIG{jXCt2|A{Nq$zaQScGF$#^s4EuIYl>)NG5n+nUg@aSS*^JfM8w^ zKU-Bw6U-_PK8wvY#poM`h3Hf9Xci8k?E*ORnH!(3H&m6=XfiL)p9*6-t`M!reqg{l z3n!uBVjlps5evXnInVHN<25Om!D^>3k%N1uDcmw!HXDL?JX8OSi|D}{&2_TYa<#fu zQDQwTqw&fuv3#@ejn%%I<9y%dI&9!@p`Z@PbVP1x)ip)iEAo|aVF78*4`o;u&s1thyZS33><~HN+=9*vlEg^aUmwy!{HQe zW56TfEFFnC{%B;5k3>g3#u=p<@S%ZqH%qQNT*q)F`S9p5q^H0hqqNq^PBf+6_}M(D ze}lc2{e?8c?jZUA_WYXN>EMoJL}p_$yUtNC_b@LtY;1YcS*xXu}mz*jYW8R&yhr)q~!g$Nj+$A&K^2(XE+g=^d0c(+sA@B=eq>l&~YB zM1H-44ChBOd}}Fr7Kx?I-9bgv3oGZ zj|rdl0ZR7MJ_>tVb&H=PuSH>DpQEs+!a3CJW;+r}aV5|eN9w?UC1JXiNVk;3bs}8q z;;STHQ`c8+$~*+ehivp(oYwc6?c%H%WwiTOiqAw!cn&2j<9=-w)1Ie!`sXYxXap^$ zY4@yylHyaGzdK9oo!^PFpEG{fjK8pW5Gi{b%3krmRrZFOvN!y% z%iidhy^YJ>hO$?3+1H8zU<=YTWRIrc7iS1SZgCV=-Kuc^eUkUz)eN{&rV9%#jl!O> z=8JNDESf9dv9AqtUBtPr`$M^oMy}6>gMJcqUmw|7PNLs7ga}VyXW1A*cmg}iChpk( zGw9fdlZ$+@>WcZM4}%|*}cX26xAE`CM3Oi->cO~91R0LVujHPV9W?lL3CfT*s^ zG*T?KCoF9R2EGz0Z3PD24G|Uq!HXa)075lHn1%Z8jUdcIefNb34+Eh)g77d9dP0OH zDB_g}!V(nmYKU+e2(N|V4G8a#B-nriuZIYSfbd2H;SgU_g$SLf(}4&=C+hSTpU}9u zo95qVkZf-AzFOBF@%w1aECEO+yuN*&te^%q(KzuW_#+f z6CMsbVLdwGNEqIM@KGZ$-Z0Y?juwwGh^61>nLY(D)0Co9mC`OlH1Ig%T`7{*#Iid0 zABw$%*b`wjW@7L@;qae`upk|YHW_7vvi6@wdVMB({bZQMF0|xS1Ys8j^0P0j!Rva{ zMbzMQn0ys$C5PepsL|O-cJoo*=Mg}eRdvG@>yX3w2*Ns4;6jM77zh`60)B;!mo7#( zVbft+u8X}zxp%iMM!HLe|D?7#xCR?*;NP$TcmTKs*Dj_sx-@)xqOmv~cmE?z^$OE! zXF2f4^bvMr`Stn{@y2rfh`Pq|-;St<(sV;(`OW$feT0S=vEkJO+yP~tOyw5P*Yre6 zvabtLko_W#WkE`st$50;cx~IwO0{i~2~p7XCbYa3m@pr;pZ;2H>rARkMbw4(a#bt| zx28`jF!U&GfAp`|34^(#O-;O#qU?oWl8z>%R8hrrbED%*h5E09v7qXd zeb$7#E>Ojl>=F6~$T&hm`z7W@($9+hD39r}j8j$`})Svn*~= z@8Z1N33l7kY08@=U_F)c<8vqN7-};%8ofA-en&*#8;xEPMqd)q_eGquHUy;l62$g*;7Omkc{1VIP@ntyDVx5U`!5^f5Kg40b7*5thMthV~DjM_|@L z5RM%Fkg+C2Yx_)C+jm86Cvx=FB6?X6Js>wy4BVt>^5sGN!0afN^_pzTg^K7EL3Fmv zrkSR2>^DX1M3Y&B$$H`H?3_d_J6Tr*U3=7oQx5!=R%7{2H3KrgVwTL&#)?iSvkkwQnb`e?R*#t9WkVs@%t>R>@!GWv^n# zUAZUudUht`U%_ks80MB|;_#Yf%3}>YDS@*D7N^UDrYUY&P=F^2VEsr>6ye^Lzp7Q2 zg|NX!D49X>gq6&y(AnZ!yH>rua8>6WU~nEXbZ@Jp*5+jz+TI(S~a)EM2?Gi@)9Qzi7Vea!l>fin&xn;kr}D+)X&ir7ShrpC7QLjDXqC!1MYzeV#!fqp}$PLJje`gXRf|bG5v67?o%r2d@9h!7ZDU>2R7$ZBK))S zDSo$KN+WE=2VL%fW$+TS+z(RCOHFA`K+CPei?_Dbi7B_np5sUO^C{LUc$(*qxE3^_ zlN);eWXAojX0!-5E8)!8Zqlega3=)$JNt5;cDLZp4$AfqB{ECQp(=C1clRU`{K8YE z;q-E^n`$V#e~6!WR`7-azadb|E&qTbi`$&4SKRIt{;Qgs!k5x3!-cvZC9X1YKlD}K zH;x(l#$o1Qof&w=S#A0(1~1`b)Y&v_TT+q^@mbt8yn`fyHAjnQ1JBsCWE7 zb*8Q}Cn+|k$8EV!SA~t}^(K2{t$MkY>@D_L?jQELgZRwWlqZ~CZ6d;`>bo|XUKKY! zndcC_E!9;O2(j3DKK_z&xB?fduz1M*011ezB11_>k%-=C>f)fTa3_60)8j>x-t`&id!7KCH|LqODyo-UAU1djq6dc&FYX|z`RQn$~6^^i^ZO!)nUcc zz1RETt+Wc%9kjA?ojvl3J0 z171-t^nyOk&=+eCz2i9HUNXUS;oy29V7mT}{vS3FEZ1M+zQ+uu7+>~RaA9mb^8%g9 zUhcj+*5WhmxMg1*7`K8A8T+Rec%?F$Q=v?3TQBfY=u(-soy?E2FfOa?>?ljB&3h7U z4UWeu2kiW7CLHKNoJj(nH>Jb8eGIS)E6ma~>_gq0aXm7A-$br3t|)Qdrx_5(?GEGE z!}pp4+V)};UJU>P1>iMViM^=ne(H0?t~K4ZwTOLP#;!%|8=SUpepkHkwi&Uj`X-I6 zZ6`zv-Rve?k+nI%5#Mxu4-J=0$e+_#L1496IKqK{RPsmaD=kOr6>b{hF0zZ;(#Q2a@=89v zOUDAhcmX&b0G<_q69Hg#{otOUuvhyG4lB4jHTcya@N#PKYe8U7YViIb@Mgo{*Mq3<3+yLf9FbDA8#S3B#=}47Yas-tgF?aK=mJ z&MInuIzpANy=d$)V7m21+RcyD$KK^-^A$|@Px|t7f63vcwL^_z-Tmw(A;I|`5fygb zcQ2;|^SjLKE;Ck+3*U>Zk-A-Fim-9;yJl`Doakt~i5`r{US^Tam!NAJd!N``%Z9Y; z3nuTBjSgODiL*UtD&>CQHXF`@_=s3Hf6pl2(o+nv@OGz!r%!it^yI^^_ z$%^8E_Z-+1%bsV(<*=!WD)+K!(n!a3q0uCRO*sl7qXs&(V1L0VRh(jlO(S&+dmRv6 zIm%;y1)q@vpzeC!#P#SgGu~j?(==ff#KIq&Dj96sERX!L*-HI495*58js3DWT1{fl zq#Ep1t){#lDU4N?r*5Xc9IHg2*|CZ;XhfYbGO<(1Dy4R)QE`cIg> zoMxu~9QTUr&HPn`fEbq9L~^Wn)$B-1ZPmejnlyvetg9I~>Cg};B8oizSb~*`9wew2 zmPKXokF;&XA8p$b*|w*{w%K*)RT{p!R=a&fJ=j?G2S?+FaReP2mt$66mwcPXtlq9; zYoW*e1zT|kW=C5p*j#E9jUE;2vDPv*BUfP)86Pw9kAXbEN9OLttj`zT;p>=eUdhe1 zVwYzE%th04J2b5Q6R?GC|9LbknLw!J=V zfKn5$TEga~hKH@}+r*v1sV7ZQ?Vmgo0RMsO@j#)baR|7uZF&4 zut^`pDyI#ajTW6Tn5lj{McmLq!)K{a;i|&^Mz0cj^4)dS%vOV~S>bx9%C_L8TIOe_ zPKV!bT=|kv*y|K-Tb}wVm3bR|w+o}LZhQ7Ng_S1@`<&bf>J940d{RIt#Z_V}zly$T z4VHGR9q2xUx}8`DrD;iOu-Y?+Ws*)4hh^7Y`$aBo#S8M_&%kT#g^EK%!#?i3GrX8? z@vqe03$N6Asx+-K$NFG(>o^EX52s3_3}P-^?+)F@F>n@a4Xd8^MA@3Zr2mI~oz+PO z<88|{6y5l5m79h?l&BPbRBBIL|CE|}KlNj+?V-f*2YuLLHFF5C2NS~|_F+rZ%m;uy zoESdKhb>hz9|ATjF?^;Eds@wW1lUYG51pd}-7w>VOJd!x^QP~d;1#YXRZ|;w16A)D zJfxYS`K*g34CMYkv{iDS<=ZPfoML;0ZrcM^rSyPR7+QMOsgx#JY-+-5n_^X}ZTDO3 z`viZ(yA9q?^PO!IEy|}-nrLN?imd3fQe4X1+jwwqmrRJsucHP1^`1s?(Kpq~Je1&k z#C08W4|gK(i3z2d@8!yUx+|sotjv=MR^?uhD7_|Cxdn4CrAK;4mi9Z-Q+MKor?kg; z)p~Gk*%M^XJ5;s!77h|>aA{_$I$M4`-gMU-csVWZr^x28La|ucf@!ZNemA!=AItZR z)h6Gq=cZXPzSYXzYk{#G$;j78I_?DZUBOg?0-j@xCE(PDz|87CSrN zS8;O_tRT&+GR-IpUIG0ypQX6gZ#n{Hk-PBR#Mqn;I|9dK9{Mffp)z-pvu$beIW4P!uI ztW|h0ReH-|4S#-XDqqbD`|9i?_?D&=##n}CSpN_)g~9w1rGp)T{IxtkB-wDSlAT5K z?5fVT$uvL5TbNxwHctHPI4dTcSrH3jmFZv^++pR2E|7*dhQ>Or(5KK?%*U~oZ*cCQ z)N2~lzwKx6L~SWbyiTl``z+n4s~;xpdj8MMIWgiwpuNkg8eswNe_TK)<^}^BoG_1B*xX z{6~fdkLA>a^C{ovM3?1y#kVnVP6oyL#-yz6yuyJ!G%=e4ZD(EnowlA^;Th& zQW&k|&ep>-&1|c*$IdOZ6!Gnf@7#1=0~0NcGIGSV=W;8&_QcC37sB#)YpvAZVd&P< zz^<}N-D(LA+D9qbM^(j#j8@PhKyv@7qDq7m{Y&&)-fqFpHk?yXs#6mj>Y z@~HGO3p>D1@Dg_1C^VP4k}RA+UvrY>X3R-Ml$$AIbe_xWOdxatL4zgM=G=vPRT$l8 zl;Z{f&;hq}s@bntQp$2ME&5;*h%t7>7$e6(SdOc64=n6cy)TKakLavXDf}Is8bV#? zh5ZK0s+K`h@Ck1FuX^MlV)uy@$dfSpj1_D4N=NlT;B|&|k8m9@!|IiwU7!HFJxq*x zH^r_1Tk$KeL{%z{P638?&@My8Q=Q9Bl|WsYkxo~Y;NtGLS!584JzyC$l+bg+7FC#@ zD$PjY@5~fs02O#kp}8zp?+hN*TX-6`JJ_)xELXUtvwTapM@x$h>s7n~xj7aNxfvGW zjdG+2^h}yF_4Rh)9S182@6MK~*Y`OX@e$Q0>LcnOc}el6gf954MwxXupat0q2tN2q ze2jx{mAQ;ls^Bs@o%XFTFQ?6r0u3|MVw%DiB8MR4l zpYx2|E={LFW|A}*=fprkm%{l1zaWR{gyHq4jlnZ5N@@%l64Txx0<=%;U81Cn*n31s z-4c7y(p283sQml5iz9$wa9ZUjdqngqsTN^^DM3_#snNvPsPhVYbm&Mssb)g6SN8n zcGcVyJh+eZ1cE(#*I%{NjLD8f7nC5xg@uuH1|paYgF+JdA=;XMzo+(Wns{5B~<`;MUy)g5do5el#Boj=-P}z=#p6E=J-I5lj zVF}v{1IEwNx3>f43QR%xwCdtg&t*WKNP zO;+XsxsOte*K`*v$TZ!>0+rs~MSiMU%1Lhr@^nX{`kBoBf=pG68lg*9fkUvV9R5rn%T;U6M28ME)ET&Va~12@Mo6io+$VIgSVmoH7%7g4bId@B;`{yOoXDnpaz7_oY(kW-~O1{$=60?r*NlW8v z^oxDw#H@a?(=2*(#)+BzVrQM0-Y@n!ox?4$)fUW3v*04Sjyjt4nh_WpD;{-xu$Mc> zcG%WfaNY1b5F^+h{WQ{3i9pSsca)|}41;ay9uR18Kb9sap*Sf%79*fg9aaD_e!HL; zO2H~s1Y$5&U{`%B?w;30_JXb03!V-5-V2iN&Gc{kYY4AI_}&e?6$hU1c7SW$hSVFG zB)JFK!549Kg?k&a z&m?2zK7(-gb3=Y?L(A9(3g&im-U}SymfqFK-d~jL-6gHCXZ++~Yi^ zX%c)$3gBn~O#PY@E)qllsqnd92lis0bkhkS@7YgEQLAxlVtHk5;P`bFeeto zok$ixNlLiPYc}y-_+<8rN_|Qk0eh?nPrcKUwICD`+G&+8I+V#`K1z1Vav+_pVp5cXK|0$`~?xDe^B3p(r8!(A-UVzB= zz%THK3YL7OPlNM(ZF|LXsWC~J>Rpp|n2M$f0{SJMUoUb^zrl%DITfE^VuipIcfx8X zsG_9RUZSC?tN-tuW{vEk?^lGQk~WOWUJLtI@d6JC<;3s<71i`A6s4p)^O?UdynSR2UbjOUKPla$&D>hDUG(VqD1&Sh1+dG zVZ`3%ZRrYOFwUa+e4ICxcNoliBkx&m@gialgE2;-?_pg5>s_9>^ZBSdVEOCvS;rL; zsSslbRA*0H)5QUb&%%_3<$@>hU(wt{RAK4N% z0e!PW8%|kD=(`5?%+r=oRXI%=AbgI0A>P8hbPEg4o~F}-FWFC9+?rv_VE{irjB7kh zp%b*J?`%5J>2K~oF+Lwy1|??c;M10LBuDASrkbD)1J3P6V|KPZt%|ZfM#+McJ@w}Ov#vkuk@`E7bB&1ThVBro*K)V=vgrLW0t7a(WH^oo% zm|wzFA2P@Pc+fB5LEdkV@cpZeqj91l!K^*YJKb0@=l0O}oS@!**;d3AI(#Sv zYC1CJ9?;)}ToDZwo6RBKY=(qL{w?AOtF+TD9hG;U(EpSeQeT7jU(TR|bBM)0=hfSf zE9CNA?CL#i=NRSxW|XIV>AT(~E_YtqObCP8&^F1!>s?vP(y-x7l^HnZ+ zc!SNKdko11ZF`=F^l!O*U(fU$Q|%T0KoTlsdhdKcgevD{pqio}Tfwax5SkmKp>^cJ z=Q*x_S?@|x^kU>`>JoEtl3FR-^5T;Yi+90lpRzo*CPW<_t4P81k+%PoIvlgae@Yz= z2C&`sY0c4pgx0*#r#0UItvSjLY0c480ii-J3=7|H3sUGln<{fJ6gxX?s2RZe+!)%3 z2u@Uf%NScNkFl{n*rqT2-ftJr>CnL+V}}+7pd!#|M=T5=!?7X4y+F7(g1{x-7b1)W z!u=71u|ODS2bv7`+rDkJ@mx>eRyOA(Tb|N1XzD#}jQ;kfkz(G!r~2Qr!J0 zZnEv0$*ww;Qs~!xN?6ZM)N^ViVJ8w!!{ESIZN4Mj%gXaj7>zNkOlyY<64Py1P==Z3 z!kBcaGu<}PX0P*j(X<1T#1l~1Ogl75JOTO43K1p&;lT*PBp^H#B1{Cr!x4muKzIbz zg)6B1*qZ8&vGH%%%{+r{hiPv+ym5Za#tm7&P_pO&IfJHQ22Dl2UAFHou#%l($Fein z1mSEO4zaHk{5>&K;O#S;T$XenxgXWKdISRdn6XTU&$5=iwyuQ>yIgZ4Wj?Ho=EU~^2lHyu;{A@+o=sJa2; z8voGp53%w;>~nMXrDK@-b8Yz4>koqG{xsW>sWv*enl2Pdd?eUjSGZUg;pon^~w*m?fPT>oRf|FO`PtN1}V29F@y1$J;RI1l5#FbvN}coC0a zPQ<&V@o8A=7stu`Ug3o@%$6Hx*_pQ--(ksB%Xy20o@eeUo1F_hMO%w>L-~l!B3;>s z;=P~fD^spZZ1_>VjgQ}MHsLeRh6$g3 zz6qbJx;>QTvVO5ADg$#q2ZT8v?7BIvIem$iO%(Am8b;QHKFbs=RZ z)yb&I_`LVz?SY7x}ALP+9gCC4rVP zW8B6AKp3|%#%)UJh$`~@7Zu)O2BPaI=l7AbD&57fMDy>d$VY9V=$E*Pvr`B4Q1fYA zs)*vZ9!`8HtQK7URBrMhi`*kbkx|fN`tm_|?Yef17w%gi>a8R$0npjwoHN9|KC!trl8wZWh3)$s@cx=@R z|Ga!U&r)I7%QTW(gsP{Tn<%#JjsAw5pOh9m@^|{TU5Pgb+9woMY{;8!*p8=NfB5`F z{=YJZ9axW_53$@WHhhn=la_?rAslTNo=9|f(s$ohj{j%se(762zaZgd7bMtSyC+=r z@I!f;!)``dBrFuVjf*7HoH^nw64-8|1NYj}y$>W>rlxf?u8Um=cF`~P-siYXSV`DZ z&&cgbHPs6*7TadS?){b6JA~9h=BN`o3EYlNE}jpR{W=0wKW@c8B9uAiWIsqL6qTQs z;Hf+>LCH&#)6JJ@Ru$$aGRGavC3cb4-&Px&l`nn&b|_X&Nke9PhpkhQe+BDbC!EkW z=#^COrkIy)PpQ6Jqi!hhx0_jqXqk!cH4bp>M{~Jj&?k_M|(+ zyL%{U6=?ty+1))tCm?(yrI2zLchX&`)F)0jPy?v9KJ67g*(-diSNO9?cwofkqlkyO zndj{q3;ZwGz6JiNa%SGrzik-~^%oYEi$b}NMr`=4Qc4LIEwet31C_E`CHuVEsDG=>IR`25By%OwFmFB;b0P1 z&^8oZ{tT*QH+Gh995lj|Ok=BA+N9kBe!t@TV)*$)-AM46w8r*f(&qXrHtbal3bWBE zHD9H;UiIhjDqSzqQ4oHaai?v=7R?U>8_fIg`py!(`CCv&uk=6~O?b$Z2Futu?pj-# zug1Rfn(bSxnx5`uvFf`ZwSNu&1`+Pybtc#cu|gkB|NQKRme~z4mKOghPQEJfX7mq6 z$1Axle0A^!GZaHBH+{WZl7_qNN@Lqr+f6mHEJbMDdqz69-mbOoO~>Xg`{yg@{A`M~ zt+Sy(a)vk{H!#WYCfA5B`-dvIm-u`=z%bTQkdU`*==V1JcumD$3@C<@6~?qzq_*aToczA5&!I3YQ3X;CC_agpz(dbh2zMTN6r z-{7OPAD5ouLdvC~*=_(;K&rnlN=dukpNo4L>a+pWM{43nA|pCMJ(S2Zm}bj1dx^XP z$-ZpI?!mhnQlAs4bBFjYLv&X)If!P2Y}&cL$Ob7rBAsDIcopW|)UqCF@w+@uw70l0 zK_A%i!F4|O#XLoH=XqSrUvTKe$Xs-~gi}th=~6n(_IKU%fdQ39?>{mW(Rb`vl`4pT zw4d@`=dugwuR-P$J(~W~WhhFQ#BzBm)884UQsp;@uzhYzU(IjH`$RlgwlLJhVr;jJ zuu$_$@*+m$gF5#Sg$dj3-{b~}dP7*luS98**)9&?R=qt^X_wY=IRQB&B0>5Iiw!2F z7SeE5rPZR%VYjVqH9?z5OBtv~IgN~ERcKN=UtQTVj^Br^72o@zS!@z9%INj*m)9YkXUA;vBQ3%clx4 z85?XR_Z)8_$8G5xO12ut7;Wg^%}}s$bwf+Tg{}fh8=Vdo`2hpuhth=}y@D%?Nkssz zYY#8bs+dwxjH~jDqRkXA-!DV8e2eHmWW!z1H*7WzqjmP=K|)oyxXy+_5YdSzh$gjc zY2>X#)+rp(bWPuhD&e(*Q(YswK30o0Rp5NeO&=F+`d|OSrZ>eJf`(81|IzHJeg={D zPW__xp0uIS4*D=sBuwCYL6>>1tN;$V|Lt1DVyA3qLVkzW4Xl;RY^uT%+85*^OuMlS z@z4BI5X%s8FqFxQgqVWNn6w;^u1sf|#}}mcneZ~MidA}+=u^wi`VL44t57R^8@Lyl zk@nq-5H;os(lL~$eO0)x|D3P#t|ii9W({faYx;lK_xK_YB4g+5&^_6CTUYEjO!YTr zrkMkOs=+xKJ9ix3qYGz`!$&EZvFWx^%J9+rFe3zLfVNlcO4GO7Ub8FLpVZo3 zwJVu>({0^YaTjcOF#8Er=6fyQi3y$uK{~>nBD6@=!hV^4umlwLN{M{M-aIEV?%^j_`*Aa@Csje$9*Sev(jJe#O(Xx z`u=;+8;ggO|G2oJYdW#qKAV&$LSKEHm2K3=XJ=DNaa5`r#8o+NbPzWhZ+_$BU=@Gj zUm!{O+(OIp)U`;|;$>Tu(hN8b^#e2EJ`|KRtvi-Yb3LJr1pTo%xTOI!@9#@fHBw!f z`_o-6zf_LH2h@AUGep5Mm>AbgO}}3e0+ZnJskVy*$wswZl=>zJ1*i&ft-DYVlr(=g zLIP zML1kuk)Y4c>0S9&nr>`^X@1Y~AP7{#Cw!`Adb9IPRXuq{i# zM8$O6P%ca82+n}T3K7K9LtG^W`L8QCRZE`gQm)yD(lPm5+p2q9KCW))`!^4!Z%7P) zg-cKMdSki*lLy8HCf+XMH7w`MxX;x-EVB`U*kCA8>4KeGlZ0gU zBXQgz!pa^DJF)>-2aLr)Ho{7&+}yKF9y}Tku8a?34L=sgn+7|qK4@nqr1@sH&{|rV z%za{W%1ZX49RqQJ8s#=N!~hg_A-lL~n*_nyBX@j?WOLWdBuy8pppWnw6jA#C_fajK zf-PxrAJjXN8L6p@VZVcKK`0BRPsMTJYq^Mvae151t=@!IAE8bpHb2@sqC@bI6UQ5Yu)b}3xu+UfB_@vB z_2IH_ClX}`Nkq@5?|5~4zHbKC%hHbAjQ#_YG~E|4IAE7PtQP_X+4pRapS?$6E*Aqg zO0LKWO>p6Nrtd$oZ!bdJW>atVVGhinAB(2rN}8)SNzy_hM=s$BQG%DHfo~N24}d^cO^g`YidhvEd>15Mh~?ARA{Y4X8lzG@3IM9`4F67nHEXoAw z7*55YAeR-H{NW=2Yg;A5P%zW+W);^g-596JgYI5DKOM&_&-djT zp5=3Aw6^+)+}zxv21Ten6T*XOp=BNB`V3b%EpqjXq^*4kw)SP=Zu~Kjmvd>~l%+i+ zON&;1U~xeMogE+BJR>N8C$?bsLVYl;R@R&%i&4}nMyi)c#l=Xtx)!z+ur-|YN?Bju zwF>336uGRe$#@Gu>*7SZ@vFG&WoDSU55!AT6uQEPu8-?+-T0NT@uWAF|3=(G;6#Hx zsc%brQrEH3YjnZK#5@TTPkP~RI?I0p3p68$iFqX5YP;SY>J7FH^HMv7c_}=+a1Y)L zQLT6Fm|M6-y0)P$f>uXvGfjsEKb+{qp;*a{j$;eo$emG#W7f?*a|P>a#Qg`AN96(k z!~Si5f=3jlgvI&3B@Q{uP@ z^!8d>V@JH#_4e)k+d7fK&ba@cvjOip52x{-vjOipyU^KISq-(l?}D~BevD8(Nx92#W^f%lX;q%%kb- z?6e~H+`^o6>2ZPydJY_Lt5tj=-5*9v@piRIyj`{GwqE|X-|B@8i42#mXXmD4yk&uq z1^{+NzeUBtM{uit9cmBkE?|otEWbV>?GPKRhP*zZ!RF|T!sh6Zm@$vv_2#Ez+Fh|H z(=la4Y(Y9^+!b4xj_Lmvdp-^i$x~D|ie`FL?T!(;SE2?iN|&BWXVwvcor2n(fGkdD z=A{=UsKW-{GlHu!KTVS~^JJRH@+Ikvx@dY=W+Cmca(m4#O~*19`lRvPRTw}$q5Ej9 zM)t*oo_j}C5>qIDMqHFmj}dmIvQMX#>@#V0rH415F0S0NbY^Kfo#DJPPt%6p#ip)a zN@&Ojz-I(7yE~zB*55CxamHwN|UMWq9M+~O_7?f!>9=t0}f!)@<@$lh^8@w+>m;i+C2*Ly)^n?hL+45^#IylIz zNCVWBS&8eMPj&FIuZGCufc#n*o`mrJNbZx6`|BaXcp$tHK^PB&H@Ub*(EzDh%?*X8 ztheODA?|Ds#Qj&KmA!?`{tVmYt$2Zn?7IhP!%PW54hRSgkX0#jR0ZHSE<=337h+ZT zUWhfA?63P5gE$o*Gc zmVBw^rh{9Y1>4!x+#I%E{|-&jc-l}`W_mZg>puUQ0Loo1TH{mDn{AM#yd zhT?Ts$Rukx63;QTm&EHnWNxt!&UcDj3#Mot?onPG7%-YX2@ zho1a}q>$~pkVJQKW*fuIIJ_w>ER6R=t5)@^CZ3eGYE@Y^yy(O=y{_-KBCpF-42u^~ zDa}lnMul1W+gj75W~Kh>YamPTc`By#i5((BDqiw(px?oO5Ra*sC1xK_D?Fk%${e@I5zY6cAhnh4Nhv}A%l$c<<)DPQ$JuYr zhqScgb#=@nKOAR2RUdIyuoj=MG!&+%S}F}n+bk^m!;H+tG;)~DIUMn6qx|ahA0Uo? zB#9%e@S_1~vk|1tRwivWg0wjnkJFL88J>fG(ejH}`4>bN7S^OoYtzMb=~lxnKAX<3 zPq(a3$I9!|bZla66gDO@yV9OC80r-_5Mp6ty0j@>+?-DQEg>vUmA0faFQ=t2!;Ro= z@|zNwJ?Ts(opI9{FP*8TGkepSed(cAc2hz@CME&s7iTDacc*JJZZ)gLt@O85FFr>< z-?WO`(s*wxZl@m@)}+lz(~FgxzCJ=P>_`vD?o0<)<$p$#3}ym!@Lq9RtGm+q9ciys zr;qH8v{HILoo2B$3OBdvlL-^Vg>bbS`aW1IT-bhGd)A%^F0WpYwC&*jZI5E;K8eQ^ zjSUEW4jh&EgZy(1jl=F}>yNAU2*G-uulk_)_7bfvn79?PJyhBSzKy+sqP8S5TU9r^ zC836~08k?E~t%Kak62$^sU5L%1-#+e}JSnS4C03j&@7p}2bxvr+OM%MYA^`h*oANOyYi_U7V3%g@foldjz zBZUp)6D`U2z;Ksrx}vJJ{$*hYcpcSYPd(cKzL-!tda9W>{pshhiQvqEG)!btGrC|Y zxVcIIi4bRmsstZNq`|CRYIZYkrL!-kf${f*u|2`LZ>QX0F7jYnzD@s5yi38hZvvoJ zV>XqdGSYp?>}#}XCI*dwZ8hsp!&6pb-u0K1 zC*3An{Nm40s5N%fQ3qj)!v%BD6Y6rIwh>l$QR+HacNX>CnNWP6-8x)ZRhu*_vl)_t zBCV7sODvKudQq7%bvl&pHN^<-VP4w~xVP+Y>nJeJ*l$thv*V%2aQxaWxui-4;But?DC zsRGHU`Y~7mlzpo~gMk6dDA||OinKf3MQjVo6jAVYR)>v=cmz+fqg<`R(iFQm9ACS* zCj^Uok6he$_HUbq#XT{yxF^+V@^&b*$aZrp<7}0$F1Wv00_t~49d12-0)IhYSq{g> z71t|Ph|HcJcQfz#)C;6^^Ixg_znr}bd{jl2Ki;=rN%!r?y&>Ikm|@J!#6+3v>Z&vQ z-^c9E_#4}p{f|AnzZsX=`E`EX0egFAb$7=Z*q#0Tb~gk4t>${%1w>?ntHq_Lo!ruPC7?m&2{2rou>u?R0MuTR`*9HVU=(gF_0 zBpdO?MZ_oDh%W=;?RKUG#Y|J|OpB0ds-0am$OhzvGqonl(<~gtUwTA0e=W z0w)nz=!;6BFDZq- zh@mgBp)V$zMpIAla`>ne| zQ?4RE9+0_>K0IHth%8`Ig;lJYh8jn64M=rOk^0tv7}pk~Ynd2du;o~oDdrecvcHV@dU5|i{!Ex6;_KwYpIHz-1)&k_ndErh}fnaw^tB5(A;T=jY%9J6l19=6h^gDs$g zRd##>;;ZfWX2jRn@r{VDwd3m%f7NeWV_J_2*4Y_0A;bD&_Y`FJ#0F$)aW&7=>qm5) zJ08v%BV6|@nd9Nc-CE9QL3p>;*h1lv2)AgBIgNF}QaLS2|Bi?0Y)XGqd!SzPnzez` zC#rE{F}e%UO@5g3fVi#skU~j#18&?U!R^v0#mosfulwOfH^^|H5SiWs>8#D18X|%^ zQ<=22B)9l28|9tcu5Zx4K@ZYV^>$p{^Nv+5OsLlkG0s-r?}YJmYSC?PD#kfPTX1sS zMjQfHnM>ZDZXw2s?VoQi!tSap+CQ%+*mbz!FCnWp{VrmO6e;byuQtwi_nd?xTY3e#h@A_mp2NQD*w}sfWI432mHUHTK6rDz zVWNLQ6mFN^Dm0i_x9dLE{-Pd9+{b-(pOQZ7v3dr-^$zbrenC0JFDoDLE6d?Zhu7)& zkl$C1R6?t2SCPLyDi?%@24vpk%lZ<^&iQftCwfclr5(CqFJD!eeu!1DRyW2llk*7* z?ZSe%2O#qH>eGqUr%)A* zJ%B8^^e$h+1J33LVBh{-aTT`L4{ch}mVI{dZoV}ysk57J&6$tk+p!$AHgycE(E+CyEMeAM%PsC#b|nT-O8iZ_r=TinJG)94Q&NqkPuVSev5^TT&hy z5-vY`AG3}Z$>5~K{{J12c@NM|_=!x|P|O+Rae@dA`Kkx~B(oo%&(dcP%aLF5TlY~X z>GQ*xdtp|CcNIEsG9o@{jZ2l#ysB|#W2Y(=V}!z%SGxlgYUmEoHl5g`4eUzq(KZe2&KC%ga#y)Ca|~5n z=W$CC$Ooo69RLOaD87F9w6dcs&)(u|95p=z+1c8eOCR%L4TiRuaitQ`tZ}t6n{DmH z#5av=B8}pC)*2)z*-jAZ4IWwe@jP9;gq`Oe6sNKMM+mw4?WeZS{nQO`whB#1slC{p zOP}|ZsG5G0K1r2CTh$cx^!TYgWeOZEERHr&Vq z+@T^pHmk*VrVAK>;dcBK;w>s((%?8-sF0t>N@21Peh9CVIEm7Bt}*K?BF&o6#?~^Y ziN$-g;ZaBCf)C(x@%=3OF+z2fdCSJ~gN3`hy7^wQ---^9suS39>0^PAPQULn`+ML$ z=-#$^?63#r4qFjpm!HLgMz4Y&`Bp$U8-X^nHukB{*?cdYU3>8iY=L@5fWkfQNYz#D zEqj(7W!>9d2Qi9!2Yc!uMRDF|QoAao<>iCEle;>tju0wLM1oq9i|_3IJAG~9Wnla&!Kg35P7>a zTvAi=hd%s0Odr=4Kb{Ih1B{Z7Qu6l@l11*Ir5%F1jmJ@W=D060-krE7c~AOmxZxf) z8mkqdYJX4gv?1)O+&8$4iZ_+@hb%0MB2gVOs%Qf#dfJLQq2@+Skx>`s4U5paVfeSk zU0(L}j-DR(y*)jD-qZ6-{?`FZrPRxHDWaw0K(wDQynM;0Kxm^?g}xx$t`=j_(v`37 z&*PD=?Ju%^f+sfm`l~aQcc9ED6_f0bO4NuXCFoEp1B z1lH7(+!~@cBE%x{)IFV|dn||-Eo8ASjp126PR?qYKS^$zFi?&Pf7?|$SqJu+<*~!4 zjpip2etyDlyG;8;Ms?Fv-7RN5Ej;}N{hliAxXTtUlwqlbH7;ns2(44UKUzos+i3L~ z&l_KY)>Dku7)6R~)e;iF?dC<2{!hObFk>J4oI^XmWO;)I`@L;u?1)d1Ba|ODtSiUs z8WY`w-*%TQZ-iAItTLh2%Kj6(v{u5gP(&#Yl*X!-n{Bq8E(k%A5pOV;S)OYg(_)4Z z@2u+rzOmz8N5#W7r5&*-t%S;|i&WNWT2rNqT|?$fi8Ux}ub?o^+R<>2tisRP!}jE_ z>;LC?tpNSy(ieSoHICZ&@O~bXX}mOr3)Ipa$`NyL$~OVL!6_ej16)F@@aP@0!PfTw zeks`a*-EDk60zbECBRMW1#Y|wF$=J==Zf3^KhnQJKgF}_M_@%JsMZ7EWYuE0t`o!c zSDAl?fW3<2@omI#?bDKn0_lx+nJ2*x2b;)(2|uppfw&wZyeSd4^ihF(i%TR^h0#c zEMB^+b9Wc$$UYCMVnaKd=um6U75@=ZbJ@VbY~CYOWSmPmIW5aA{torzHJ?2WhcuJw z;8}!<9HOE*YEesTq@T*pRiWuMpkx$0auj60kM!d{)GjpxrRINCsTnBsyj^M{N-dyi zQ67w!$Uw+_;g5w4ks&q8z=1W&kKDLOz%)Z*W}^SWFA|SPoCq|W2sm61Dv^7>4W$uGd)z0F;ZyuL_q<(^JfQJZ1F=bB zN9tiaRg!)#c~HxY_k-ce-QDD8K|z(rwDF*p+^?k$Y6HquD$5rQZ%fZ^Ob8?WY|xvk zqM*p(EY0C0suMX5YZOG13su!wRVh|g?3K8mWg3Q2x==~g;@XA9s}Ue#zzqpgMlCHe zu)Z%NwD3@@TqfvI^beq&0$)D{Q z*2&efcf=fTT=7|cW|)_&P%nMBq#{gD!TOZc!W>kN=ZjBFlA-J+Sy27Z%v67lSt|?d z3e`>cX9QS_iTcvwG!xBSnqXk|%!!ZlE4k!b6$F&~X|mt^qHfAD(_~fniV8jBv+Nr3 zcEP*Rq{ryTUiUa;-xs$gH*4H>maYbj9Ndlwue~&fTjmb!GHHef_^o7`A51g)mKZn? zD}9N7>|@bgCMH@Bkb92c#~2)ho<7uucIT)fGe0*rrh?{zC)4i79y3&216h3lg9rJ! zb0~8G9UxoY80}uELfx2k=%@JeG~haGLQt6Ra#NrH@qvBIb{B;3O%FEW zf@Otl6$81?1|sv~{KwY}1zAjqPw3~gKvW%L5xdnYocg}(w8mQas2JEygS=_5yU^rL zwfn)TagTWA=y%dkpnW_V;#h`J$5@Bh`sF?83*pu-qKZ*|AzJvXAF`Kx@PV-=B5#;J zAbLR)bLlpJH4|<+)v9YwK z*Q&&cl&^F`5X}Q8s{XI0PB9_jZGChF=ueQ?MCPMJd}!ure-7Q0OFvD0Fv`#E`xAVo zk`=P#NLf-AL=-0a{7nDujBX-1mKcm=c-OBO+XsfgwA?`;y|DRky3$_XH|`-p-I5>z|t? zik1-Zzj4Lcfwdvuf}K0@nJ*vv%%`*vVkPwgKqY%xp~{C-bdf)6v_!J_oHa%uFxzig z8QQ}ALHx5ZG9ogxA_L)TjFLHF%uFq6*)IUsw#|;efcSPhz7X*@R7>f8WZw}T?#KUw zekMd}{}Atos#Ctfo(&t5LYcGS#tUJiJ(Rf+ZoC{eriL#^g}uM!4~aW=sra zj%bY+!^V_Q=3=<?6%taUayy^G-iIWEVe zTt2xM+GzfbQiE~=MkZz5{&S^pb z-7IiC)d~xSyHx0CrEmbIv}QN;_&I8RF>~T$#6H#(xX#I&dFl*gOx)V!ZMc;^$HzuR zTm%c~jEz{|g*YDG#my$KsA;$A_PN|_7X8-2MBEB zG-jx)`PPAh%UReZ02=~y+)Pb(QZ?mNjjXXu)R?2?(CyaDWLpHb9g?FXkb}YNr%LJG z%D&21Kg_B14rg10P6v+B5jqDr@)81sV@5~j3P5x48u}#=@_ixfq0_G0?KADlJ5{I4 z?d@e4Zx5AHMsukyk)N`gbE#H5nckeg%g+Czb&LtTNF*GWpM?e z2@h^O>1_iG*e&Ek%amJH5kCp9x6&7d* z+PmfwzceF=-Ex&bkJl(R?n{h9W+~ttRP86<6-YRwLK>@?rLk7|nXAbm6#LkvWLEnV z{c`Em{)T=^b3bDFS1?PJL%>9)_{)Bm_9JXgOZ`Pv_@#b%_fY}kU5Ll_x|H}U?5Bn9$w+IrnSLq)Y2((xp5$`cRba2Q23k~>k<79Ju`*?B zIuqxGGHG%X`R_Bqs>LR2E~wQfy8KOEW3vYeeI{%3-Pd+UUYf=;jk8W+F~kKu5W?xa zhB%K%lNV9yfcQ$k6Zhljs$tR~0|jMX%gm!plKEL9{zLBl-^kvFe9SL}6I0o#vUdIZ zENopF!rLLG(V{aZqR}~!jVevF(|eFE1jr^u@Lq4y7}U}rIPvtl*(HoH&EON(5$^s+ zMcrQf5rZ%}VzM=;cCn1gQ3rOkZ3~r^CJ!Sx*vrN%W3TvKD9zgkjdhb}0{g%;rOHYZ z;>hBUjGdt8$M`jR@K5B;`ww zjfi})yynE%{M%hTY!z{0SfDZ$H+HVNKmcgnpE37v8 zze(6YOImzsDwFuDel{ztmeYBI$~Sp1asye{C|BO^TdZ5{6=moPH)mR;$(t2PXx2Tx za{YG%!dG6-J$zh+@Cos0;#z=~ZydhFs((U-C>De?fL_AMNEXQm(RZ&W8t>4K~4s>2yEzWCPY$h{RIb*sO z%lj2NmLhRhL?{Cm_?D8s<Tf$)z{RT&OqxDinuv z=B^X`kuU9yJ;e3BQiN_%!%-nGbt8Sw6;nH-cr8DXWW-qz;(Og}J?iVM zWt-#ah&tg_ppsRq*n|^4Nn3#sjJeGG7OoXyZ~GmsVkR!KW+Kdh7%!rwufu9M5o@+y z#1V2hK4sSHPS#tA#9s45o=Zrx=8Tv6CM@OzNQyCk)+jr22`xk${Bq&g;FpSqmQBbF zemO%-pg@S*ANb?zy3~d$$trDkU*&38345d8;#@irF**N6D}RkUD~nuHVVi3Z>;UJ| zTYHUX-X6~a$gOa{BN=ULj`I7bP>gSm(i(&OV0zruJQv`!pvj$2z2oF<D`6_c$FTP}H=*={p7+pWar04bWt6~Dn0 zh5_#F1hYjfUIpVKb7L*-g6VGZ$OLwohujn=l1}Y&a`#GZt&z_Xjp((#?!Xy4!E8j3kCvm=Ng{rnAh zU}7sASlkM`ah%`{0B{Pi_x;Xxwz5z#3+ZW*_&&cAyVq`u|DbBt09(e25$2`mAi8B- zz~lG$vmSo!bqmJ_ZXqS_5kKBOFTf0MZNzq$VY%#hR54y=xp~_vO_rn5Fb&`eJ5C4u z>E|N<+A_FIS_<;8Q*gHFG;nbFz`?$6B&VYSw=fIjY4SFer=~>)fH{RBr@S!aga;~t z=VPAOjEJK~sr)z5w*%Q8k()ZBi47Cs5So*6?Vj|^NNm5~$%dYh)&d_Q9&XmFvRUgQ zqFI(l&j)cj%H7@M<~M1NFkVCX*E5!!Wk9*7qy2vY=}rD0L&cGUgb;L z`+BeTLO|au+xwpmL5;6T#5YEYgDa)?d$rwrQ`@PUuW0!lLFhxv<11^szFh;Sh zXt^OPVNV>ZrBq6Mdd!7$WH}FmtH!aco|CK#D3(I#Xs^fPYj2xL1IpbNtl0Ar#m=FW z!O}=aZfp&P{2^!jtK!5tx0#}?l$v`Qm=CqZ(4X1ofa|k zbe5ck3&>{!eXh0sc0i^J%iF|&B?z`SU#8yxSkH;{HFHW|pSSRU+c*GVBQt@!9O)WQ8X#8eL{B{d?-&Zi6WjUp|EcRXk z>oSv7`m;_=z6TKwr}0(adCd68?*YtSUTN@o~2}Z?fde za`}C$O5Ndlfr#Kf$3mJkVaFmdQC0@r@b{#YI+$b610%E=M?=_I&g=RLaD{)<5d&cL}bPUX0v!Qmdo`N|F#WBf{Jl*rcrt26$d#@=0$5ME&d7KIqyne4aaAoxsEjf zoLQ@=L~+b=$Y{nFskjJO%ik;b^>MQGX*7R&l{bGF2{WrZGBZ`KYFee`|1`5!#X@ky zpN}tA*_a{c|2B)XsYaoQlWzGLMb@V|>-qq!n0`lQ-SdT63-LEpux1;$%~i6^QeF{* z5!);;1$9bvt~tqhYxnLTEseT6N|I9(h%fxKNde3ss_zYkrL6I5qw} zqwzM6IZVqWRt5{X^i_ZQq8nH=tPHwROCz~lA@-`O#HTRbz7v3=SQ+eNkHOXMu7K2W zlP*}}C%q0<*~#VO`=&QnaR z(4YBv5DpOaedcHIgt=*V_h;z-yd9s6?l0K!v54;}A%d|Wg3bWW^tZ|pexDBWQ0nGU zuB99_l@@zZQC9$`T{vno3-Qq|C+!iU@4Br;2GUCJmPYn6^0(U#2dRRCd>?>2z^T@% zJykWO2*$pEt>O0`PsVTZ9cppP%6T>?wyZ+A%e92+*w5`@0$r)HMlAiBu_uGDt!}ct zyg<>Q>Qkz)82i56DbJu&4wiJvGw75<0ZTQP_7PNyeeDCg)C80|%xe}KVVkDHDNljd zrw{FHYmx0pNu!RIgpXNxC6)&pmItu_9p?_SX4?nF*@kuX4IYIP0az+$33!^NsSgOb zQ7Xcz*#RzeID)-BJ=StAG>RA6R#m3v(%1Z@j*jB90`O|}ku_s-=>@>~WB|(6ed|Wg@#4W`BgqSX*Y5%Ho%~*h|EOtU@QAVj%x0fgJNx{9JCZA4X(K z);J=0?%uGEc}igaLtAEn3cTc%xl6`wTVy0hkrC*Ln+s)I6X7Z{KdByh=ysbQl{xf4U1NMiHtPktd3M=g-a}y6r zh{mZ%C0j?nEBzVoq}rW|!}@l*_-(kx-*o%inMfteZB16&EniO0sg7X~GURH`My&br z1>D09M-k4sNaY`(2u~I6)?;3p3Ug|dK!r%>^20S=jHv85yX?o2%3ImprwUzxTzr!1 zU$_{*4P06*%J ztMWRPnPnIiuLg&TkDo@QPf;hfQRw#fIdb!H^NTiH>dxwTyI0X}V;St3%r_@y2ODMw z9kjJFNZK&*%gn5Bpv-71e;#X~9m^#+V%o8s4>^_#zW9Q*5#ZkVV!)&D%QoCPtB&S} z1WhC!0wxU)Da{WtD==53-CYdtO&fd~8Hl2Hcv34O*q4z)`?APR9L04HFO2Oh5hygtIZx1bdGxPI8oVogmM2tv5)mLJ)ba`A8MWfua{Ap6XNGFY z(NlrTOnEf2yk}evxV@gx$^U8uKZ}U_fzSDL?#f!{491*0`g6aF&j{Lxn+7oPGA7Dc z-ROxFy{x{hI%!-vw zMITX8qahQZ*2`SHL?xdJ%Bb9%VqLm3vt8BVxOlMAmXfFLL(KyH&=H-_E& z;{6m*#fX=J%%!)h>{|gy$oLOG4W#x+`rfWmF;+!S0IBV2?5UuVekRzg3EM*3sR_** zH)1u%IYmTej>)$E%^i%&uPhaDn{x`d$|KV{lMQGptvG6}!+@Yu5v_m5|S|zvW zu~C_+xJAP*gM1y)p#Z<^dawSi|tgcn_$Y&(cU6`iQ+TDcn&Vj+b$l4cBrN?KFS55 zEI}YA6x$bnQ)PMo;lU#N_$FAfmY~(dwX%tc0hu2_cRq;i&Lo_BS@^j~;b)^1zNj^R zO5x|+6#i6eyiVaM2w&G4uTZ!h;VW9>1q#39r0@l;@hXLCF$Qq4HkqhYN=Nvh)5wy$= zUBW207Nge?9ThCKK6Fi3AG#({xu#KynG8hsFdg z3qk85Me9S20|sRN0uLKO>z;00P~Ou$>Zl&{zccTEe4Y;4)b>o!>1H3#1>r@xqu#`A zeja~tiWnb+Pp1m@w+zFivEjNBYh_Px6SydQ9^O$tR0wz7B5Y)?k0>?OAs88e3t~mO zaf=-8=`q-URL~{Na*C39D##9I3ln8YADd)g_r>*vi9=zPyXt*ecw*2k%!}mV6`24a z7f_wVANt_~;NsI9)Q)eH`CCZ1jm{fNtXYR8()OUs?{Y63$W0Sj(r3$H3*~BdB;MYJ|iTFZ=%IUi|GF*y7O$oveStYEiK*6d+ zc@fIA!Cntz(}I>r&IUOdlLIolK?2VOE%EC%J@KE$W(>@%pk-^eRNAo$@;HfF?!H*9LY-#|HKOAV35mwpy$3E^9Joz#;8FuJ zISkyKlDRuK2tzwq0&+pKAs1AdbHT2BtiXr!dBu<2^s$>hcH`qg{y4vPb8dtFx7 zG$3Q5x&=XxxMOU5N(T?wqQQFE^yvMr%u{;fSSxLZV$49=SiNzam9|qcW+H7IsOp7a zU*&*>#r11*q-f!6Fs)xdhVE@~{aRwJUx~57>On&?F}y7Vze{~Elh~}rXLMs$)R-ML zvQcAB^bvRF8NG3WZfpu=Cg_dRbYpJRm=`tXM~&yB#)7EvLey9oH5NsU7o)~i^$~w& zn%+1?H#(xmOHpHS)L0TVmQvXBh&MAuZ=9^>C>QM=ll8_KI^?k^JVS4sPT`k46rQd( zK1bnAAqqdIH$JNy%c9B2y76)}IbAoFb9e>+eTDz7j3#I3#wz~1np4*B-?g0oRsOq< z|E}l18~E#M{C6Y&-Nb)i=f9iz?-u^M6@PyoNj&kAd=N<6J6##772(_Zy7?^UmGU;Kjl zf@&630ggX$z)E49FjVf~8?N3=PSAU$J*U?bmc8>$r+kEHrHIX-99-7nSjm-tLw0R# zJ=IdgfdMRot;L{IcFQE-ZbcJmSc7S+8(=QPuh&nAiIS8)>}BJfv`Nz1Z@|xWL;k zvD_iBOn0fQrkP9cRgu?BZ3FMJAz1X4MH!^8*w=#Aiwk9ja4F zbKb;Bsz{;{V%;u=@NJP+1TFMFEew9Ojb%?Z7ZkFWU>R0|v?hB)!O9(!JQq<5mj z_Vi7C3#pxbQ{P5vSKrikklG!DkA=r*6c$&cyS%NPX3@fZ7sR!@iNQ(CuFelVtc z`=WEK^hjCgwrsfJmg$M?eSdXf?CU;5v zAjLf;@lzD{mc)-!+?P2-f6Fo_>2G=F1ZsVssgXVS98=SW;M-8+D~n^|3iqfwr$)hR z$3dGskAXZ7+3}-@e_+QC@)Ly}KZW>*cKkTMO>o6@lrnZl0U~SUaG7#YWi1^P%EGE0 zlm_gQhfwmE9Y2ZqaXWqj@e}rPbXZMK!iM#co#ik;G6d~cmt*{3P+Wj>lEVLCK;~gw z>6eVknP4wVs%KE}ti8~kQKhY*bG_0|a@xne(l&D1C%w`>;k5I`sb)$<9vhH3jhZf$ zU~;iHCKvGiQV>s#?1>@RWm;ZR*+$_R;u_Bo*H}z{PNW~F^y8)J(=D&6rtMV~89$(m zA8CaWPWTfSw>OM*hUU7`Y}SNq9eN zh7-i$0iyX46iTluhp;u)rg)Ev>xz+Vz^^&vb$dLwC$Fi7DX%h;%>grUF=!@71kxiE z{2i$@TnxHW1#D}>Lr#~ctg1v@g71NvL-Be22%xfuZ?0NGkg)k{bmPTfcP>rf^90@) z-cO293pw}Z0EGMWqQW=jEtvWERh4D8?m=tUI!p1!D-ut|&haQQ73X zk>uV;tR>`RTLdEl$$gRdD=dW58loO6+h^Ysqm7X7>vLaB@b>bxp}c6it_nA$l)f)& zC9!ULb>_N?3(01_NlOQUu~BSX#oS@zG3M#2a!=h`2Yj|d*< z&1?6`?|^!*0b%HKKZcDM5bmQgU6slz8^B_{n<_ho`^e-H3x`|6Xws z+!=AWF9sc>LQad1xklX2WS5e-(-h7W+Cm`8hs7u3U{qY#&~&iF_O!r7QOKH>`{lI!rvaG_n3hk4tZDg7$g;tDn2uoooN0wu(D5PL z@!Et?FNc@UhQ7+-<*%hrr_q2kF@znE7WKx(dg79^;gZvlTC6uN)s6k3%u>B^g>F2M zSpnv0Qb_KV$;EndsScS+T4LOA;pz7wo>Z1HC z+05=)D4aeJN&ZzEeaPSMsK+T|TBz6F{9LHd-u%RX%owz5I`@jS5*BhPe)SK<+8ZAi zaDX~%?%_wgCj+_klL7gN_jEvz=92;Wh&Pj<_*Gu-i)piZrHTDxHrIf4B1x;*NG1MM z0QclsS||J}JDYtbfdA7YDr@}N)CkxYoD+B zFi$R~PY&RJE1hcJR@uD15>729@gTb9r8ZYGit$4c1*r+bxIG}=8yMRf2*p=o6XJS6 z4GfchTVfSTY6KS(6($dqb3{=53e6=jpt?Xiq7akObUPJ43W$pfPY%>LWLb_+?-QS9 z$3>5pLIE8z)*M7lxVmDJ{4OmqA4I;KCVy+uskSMD4dF;m9YvWe zKhNtzkRJO(o7H?iAeM*~;4n7?XenA5z#dG2w2`0OahoB0D5Snc0C+W%0p$#L19R z1_M4Xpx9qzneDy$;;hx^H+m(Xvy$KJ)kPm$$vb#Bf;>>Mc_Bx759Bp>TA5|4nc4%# z<8R%RycWrC_l2<*Fy7(J*r(BX812|aRcU^h4YcnHK|8b68ktX`@XMJs&g1OMeI^bv zxWl_3-+@I}zUQ$_e~)*;<|!AyD2hv+MC40^%|b)i8Jpl%gta!xb%|NXx_V8O375GO zF!y&ep?q6n^QpwF{U@vfGaA=fX;1$AJ1n6qiYN;8|bCr9z zJ2&HzDz?DoXz!9Q-_7@RqeRZQ7KQ6pYJPzwJqzjOo{D=Uxa$I3U2S}Rz*$0}s|49m z%i@R29l1h$SpZ^p8v=E)UF8aj=PUY47&jzJ>jJg4b@35C7B{d!N&<%2;XF*K^-V7q z{TDx4j_si{gaiEJ)^g+Lhbpv6Nc&ORXM%WpA4jM`xA$()m$iiJvnExZTjg+cg`}h` zA2D9Qv7!#^S}wgRz=xXRX@gQ(=++**FUj#PPsBec4sW|udn;1%unLPbKaUED1eV#g zxbMV=^8E6z12RpJ%?;TeFy6yq*;}I8_f|mO8oXl#w#xN=Tfj^-wGH#JZVfJN3%6xrjJDEQ@*;NMuRydQI;$N z$c8fKkCZzg^9Gx4cA}Ijem?}i58M;)1kBh9tQGqC%Mxzk=fig@1JR~rMf_+82PY{`O#7e5D+TV3V-z8TkT@DC@j&rA;vzO< zQ#}!~T~K@!g0XMi9?X0If)(`TWXMCcJ&5Y^0i(I9kbcLRHO5wC3ziOV;&C%q4Tszf zkGq>6AMDPtTkAr=mDmwza_8ea0?tH>V$%2m-l>qs&7R}ASl%kuoihu0S*SooltOH0 z0L?!ga(me>_w8`O@YrAv>V^3!;j;JJ&|OD`F*D$5ehj+8KK8%Vi&d8s*voI+8z`L@CCe2t^>VK(A$z%5*%!PoQZkSSe{C*BCe-Ut-G8IN6Uwme7}^ z!A`k+bRp*_yrn&j{UzN_ldCHbo9|Pae?bd@Fx}i4FostlU0(Vip`|LHHAYlrMKZ6* zU4cBEHTe93;K&L-FLwo!gI3^bEis5e4^k)>{ZEIKe|HLtO~+$e6K=_Pvbhh z#*tYEzWP&}cio5Ce}%VaOx)PsfJ0i^-iOjx?VJaZ^BV63Ul(zd?vUnDD41NQv&+`& zp6SrQXpS-?oz8)*Cli z;SGA@E-SnX6g4tzJ)Z8+&Gbp^aIImN@Rn|A=(l#|^SzxewRTbVJZ0yX)kC3t!y(#x zkY=V%Mv^;qe$F5>^>B|`?0 zF3m@8C)~Fa=l?dhueK7zvO&++qFuXmlYgmD9>1G84@w+Pln+? zQQ9(d7bhq`io=HqRRb3$-?Lqq5URtZ`SbO#tVAQy!GyD&V#$AQgF*CKXqw>Z9KKAp z3STDdB0KE#y4(-2*(R$l2vSp{n4n?gh8vLQ1_Z4Jz*Bj4XcurlEpW%1+So9*BnXPN?Uq_|2J%|e53xG-*nS-De%<5LbX(S)`E7K zu+qjI;M4xxveQP;(SD#;kQ))v9LL+S4>x&f(DU&tKBbAh2C$7**ah>I>+6J-HPl## z8aL<#OlIZ@sis|AQ$=Y_fDCd*>Ep6Al|mAM{}WkoCl~ydEchKL@t5(+13^=S+6qmc zeEeX@1vu{tIC#nlduS1Z`nO4aQTd0|B?VolqaZC0l+akv`TBogcdDQl%3VOYpwmHU zqn_NV8Zf=Gn0I_;p(D zdH*pWbBN!h!Zt@VDO^0od;sobau^3K=rHdMlyEX1pj>+xvf9-mue4m2JQ%2P&aY8A zc$e>~ui=L%8|ZNWo%+Qh%`@CTkJ7(E|4BSw8jnyVT{N3(1@~dJRWZAm4O>11&)V!_ zvqEK00P>u$#V>a1HU3N|cK5kqT+66JM3l{jIvn%DwEp{7I7=R%hrlRGb@P4jL(<1x z3Fh$Q?&Jp{b{g`YuINIRYIK#5Tssq>GKnGh+Au_su2em-a}kFzrm8~-u_U}~H|FC= z%u5W!l8Tpwr#?>nB$7TK!EP`?_+zF0;5z~zXhor*D|Ra21a8{BB??hxr3Mm`ojPTcwN|OGGeDe z?s{dG^0KlL8ct;w*lfzhh@VmI)+=l<)*SPB3@-3Z zBlT9|zJ~i8&G&UDy8H!c=QMBGIV~6ys$wI(?BoRDM;!51uhUFli?DB71X8P=c%u$9 zpADq1N376|NbIwSL$cT<-wW~c0Xu&&7jzaALrT+!D24dP0p}N_o@4;$IO%iZ%_5H8 zRasvO@k_X@;yx}E&CNX@cDdyh6tzA1U_LfcSDGK}F5u~a$Y?T-Xjj5n8o`D;oi4MG z;&+h+VOaY6H8!Imkn%vkb@}tuSxR%4pP2{~sDN;OAlZoTh^&M_dsUMg6qq%pRAnjH z9CZkUL^9$cwKl%b&x5>P3^HCCx#p}Q_CYUK%|NGC5^<_J}ZCA06B)Fn1em3}H( z@lUq(EX0u^{)t>D7FCs`@|s**4<50%O^uQ@zQ0)GU%aVY$$Iaut5^Q_SYAOzR$Zb}W4}8=>+YCngHthHs!Di~ zy}_#(Qx$}t=I|sAKZEek-SP2JHsKV8M&2LWw^*kGxy0Fkp){NgD48=Nvbc(4S43=y zh@A@v25Jd2P!PDE5ETs6aAiQ|Bkb@?!}fLAvM}E3er#8CU0#=6BdAX_JmJVR2Xpb3 zAWOyEmJ8P?EVFeZkW1fyV9bjZx%BX$yyt#7Y`s00nK40l+6l6IlqYH&4NoY|PYB;G z&B5j;;-i9S=5k(p*Z|L%Ae&dGUo-V=G?yMJ<0CnaM{@=aOw-o`#xg&;p~XGx&9vcZBjw52&{ zL7XKZ=IQ_}Cmsn`GIsyL76ZIe0wq~x#@2cj29$!<+>j8QNevm=Y1TLbK&Qr$S?dL8 zcmqfw*cN1K2_@A5Ai!{y)amJ-emeV+BE*+h3H|dMmiW;szFA_672F_UD0+2Rk>at0 zF|w`Ue!ovPe}xT&tq+V2%F?OBA;iqo5&n&T7((H-TnCJ=CXa?KenfgTTvS517BKOiNr+%qqt;galBy^8B2I zdR{A`x{<#R)om=EEhfsT(Lz(>@94{>uqC3gC2R@SO^Q|z8lhzV9?$S$OEd3XXy(0A z1x;;4BASnN>rTstFpK@~?&--D?ng&%4?}UlAawsUZ}zgL(i|fuNoe`4#ijA9 zRjlO)rs|DwuY20@LA2V6?6(597badVzIeNd8C49S`Em2BOdL z!O|u{SSv^;mI*;Ru}lhr#wXJf($0jpBMjNtTT$}0s$@H{4x7M{NW;R3_MptSlMch4 zvL|dE@)&f;367|&vQpsndX=#*;SWo~M@qs+OTx!`pW2TXTRBy>aul_4Hd=9_ z*viwzRxY7dwkeqod_Pmt%Co#Fv1H`3VDhf?m9X)a3Sk3W_MWqQb{Ts1zX!drvG$>kjvDmWbWXncV%a*dBehKE6 zdHMi&KC>cNsD{UJIa?f#PfIX;1(;qbrI@R|yYgDG!s)WYF;wAl6uVwh;SJ`pe=6@t zEv#1u#gu*(6LC!t9AyD~WdG8uQh0WDw!zT(jA(pqkU74C#RJS|VVGrJ?PP1Yx%BFw zv6ZI!t3he;gyP#o9LzsYUYoZTmU3HdOSuK(O;3kqiD+HW(cWU2QhYVo(qdWIr$~CY z$F{r3(e%uyG`2`pZs+-)w?Cz3Mm71d04um=ff^$X$a6R~BZ`~Z-&#g^Uk&C{yFK~z ztmv>3e1<{anQM4ctSFQ(mtGS@K4V7(*LTHZyBTlvhhP3#bymLRP z;lT8NFoTl6ZOgolEoKXGe3^!fBeR=}8*f*ovQdPZ+^MnUxh79$7iPiR^!1IPFbley z!)yy^cTk%7*~CmN9mY2X=`c<#%xghoS5=c_3Hjo9YY>fmN|Tco&(mYIa#zuTMb3=B z6;#;z)SRfXyQ+Apwxp=&E|e zC99R1v#jQ@J;<(hbMfuG`Hs`<1^#Kxvg=Af1xLP{7((hgGxG)p_8HAy)V3pGyjEPF zcVm5?pp`6g&)Oef$H$3wd^_Tk?D!VMCu@Dy8A^o~vNamS1lcREpOdy&i6G;Llou)!Jft2J2oSeO-e*;7-$wbjD4>*R>CG20gv8HQ(p|IZ`n51a!)}}%;+jzGs+ojbg2<}DjYaHB% zV2Fe7A?V`Zegv;@u>%O6;o$oS9)=SP z*{*z!wwFaw5EM0WvrFjVcJ=faCvX)hG#zJZw3n7&b6F~CFh}iX+wQhecifs=*X4$S z`|`wWHs21z_4JKxRHt8zg4hgi<>F zXGR`@shBV|Qm?+uYJ@>*G#1X&Nn@G{NK`TU&QC zk{!{1rF~ymTkpoOi3d`mmw|)J*x354N@;AJpJ-o-QoD?2l@7j@=8MZk(E%{AjxBqW z*s}3lMI9v??M0&}SdIRU=sIq58G)i^SNHqPSGJ9FQ{9WB=_OHPB2{0(Wvs-d(H6Gm zEuo_0(Gx9JSCmxOt5Y(fQ;emWFwOQ+712Q1vM4N~zZ`YAhB%f-Ve@-M)ZunJUWvjA z_{ylGY=~o3)ZuYDW)+vT)pAK2OG{b~tJUn1B`wP9gvOg8=r_e^{YS`4kmt-qRI;mH(0Z7Uy9ANJc8mFo_L)Mv%UkEAMOTtLRd}ce2 zi`~?6CepWt6BZ(C*x^hu{j^>=k=AIZ1RQfJv~Tt)dseR;BvCQ*+=kSe=$BRS6-_wZ zy9rkEnJ-R0+dKKkqQTE|uV3Ofo%e&)m8#5ru8MQrg%-y41|9YEbBKQg5CkaO$Gw5R z=&+j638c^Hrd)2HpwluXoRSHOmJ$i4Wr7ofii8hkf(t%Qk#JllxV1kJ2}fjt2W&SI zj>&|ZmtN)Tzoey?TKbngJ%8Q%-!Db;7ZfRet)%#IMDg7q-WN1m6>K4~7(%Cx4>iZ| zeG#YqfOVigkv#iRX73WGq2?ZppY{+R`MJ{}jd>%OIT~bDD*7r^sb18eWyh-JM}y+w zwS$wWGUGh;?y(@&@t1(754S6?M!#Hd=xN1L9QptlE-q=o62?}uT5y6U>q%y{mTDfV z?ML8mShw#Zf#64sAb!(V^%}>(_;pAETd^Ad!1%ffw@irN&;eY3tD9mi0uDjBNPy@%>7b>zq5&a}@^ zofAWKP7c+%UPE=R?@*m98LG9thU#2#s9x&|OaILq8>%1JU4aMQQD)507 zn&NP+|1XAXd~vwWV7NAx?1q~(T)5nB9}qs3S0A6@(03UJ#OuLavOYam&)h)a*EOfK z>1?Lxb3Sz)shb(hFrfQs(6}ZKyk>PJJGs9RY_9LD>oyq-FVeBALC3Ie?a#p1*Qe*m z#1SDR)``Tdj&7s_<>x_#Qgx9!OJ|U=;mAs8-U#9*b_?$VzeDv`f_N9z#li6sBI1dT z(7IlQ(SW%}irk<+{4AK>?8zD%VPAv7Yd!LONbMpx^M*pX^HOkbE`2>1Ok$f`i#s&AJuC(_?V1C>d`Ku~L^NA2-;`SPmKR8DDX!aVZFJONHR9_;@+E zl>MUu)6W=f?y`D(ExOUT6dWe>ZYa~|)=h42(DbE8w%Xy?&WFKjIY`a7$P$->HO_h5 zV5>22aK>-QjKl4Wz*B&BINoGt;{lne?&T4R-Qyz_ z%U%2qo7uVnW^1QbbQgg^TxwkfV0a;S{FWv~fQ^y2AT?{W-jYS$tT76K%M@rs;5yHf zx3!`T6drWkF!xGYi=^#faP`ng(?9MIf~$NO_y#h(utqnXB%s{_n!B-iT6 zSM=1gp~S)fn^&)UM5&7{47e)311Vr=P1U9jc@pyiloQ%piISZ(BpDuJr2Y~bj1m?4`cefWM@X$IMXL4@rIwNU8f^zR zp<=6aexOl;cL^Q8YJrYt@2fV-aAH<+2j2q(a^ECP{)evW^ToeFttDdV6@6KGo&?~2l#W&f-r=s{+6hBi^{OlJLKgXT&KTC;EHtLILk2P?AZ_@kt_w2AwINu#s zhh6S96st;rU$%zgyaol9+j?~|obv%NENhnQM05m1>&rD9KXcYRW30u14JvQSLV{=Lqb(|9n4yUqzde1hQPO*sqq+? zPr1>$4RQ%<14DMDy%YTrl)&hoRRN3gy24|tD<6fsB_@#Xl;kd(w|){!eJ`rx=*a1}E{we%T4hU29fyNo zV8U(lK`YswOrmzulB^|gq-ySwl7s_CoZJK#GS^tTMAiWsp@In ze$x)Y@u7|fz@K0qd5D{;z;zckC@5WYg7 zUxyFczXVkFL@_@Em7`qZdCIUf#HGxJ=R>Z{{1848&;?(XV?hWX@w%fI&4?}v!P^3& zdkYxqNxCHiv`w zQR5hx&o}%6hOFo4I5wch^yZK;Rq4R|;A@1}La~*aG8DIPR(v(Zaqr7R^!K^DZ|}^d z*M)?7E-X%n$~Xn}!AJFmkTLNVnU*ysQ70o))|h;YG|`P~QToa%yTaT7B6!&j0j2cz zC@zyr+c;mh#ZjKu?U%&`)(BWCuQO=?R-=nvDCy#bdM_EJ?fAY(hv92%>*$(XdV2`} ziw=6RwCax1$V(-7EH1%gNnbo>5gyx6&r;pqvX|*p0BaiX$Y*wj2$^>lD1PFlyXh&uj zo7kq8S=fesVAux4zG%90zgzWQzXlxp$4u9Ht6trzTes@oy7wa!J3L&jCbkp_!i4QPe&@d9{T#L!_@gJ+SvZT^vuJj30V>+zVZjE?s1iS%yyamIt(kvPY_|&9< zEdNSz(X<-U@HiGq8l`_v_zjlh&G)~i6T4`RCbIaK!M_eelZakLZ3fF9!WX9vyfEKk zBz72D;&q?iGz?VhewD%?=B5*E^dFsFT~cwfUc1#uY%Q%QQ@B~Gm{S$kaJM4-jyHyP z@lMTl107mh%+_ON(C}3~lG*Eu*|c_UtG&LMT^7@CtG&VWR|d z7I~{tyUs|gGqm_DXMxskG!h$$OxvGF*pPu)M|-YJ%W@iY8`4IO!j1mKwus&YgW$04 zSo?Jc*zBnE1Q3KGeWSmzd~Rb9b|g?~Zc~UKEjBd`8(vWzVz*VrZu|z_fFe#~pe6p> zDE&C~)FTEbic2rkdD_3-oi$qw{5{@+lX&VWs9X{?_A}eH&85aWB7+~FtEa}nkdI5O zTixsfM6BoOsWG_eaBJsGN9k-Q)t;}Xx-iq)JS)82bYIuMip!umQTe*Q!(}ygMcn67 zZ(?d60*Fo%&!uQO)g3V7FAPW>Fzfc4@#jQpzggF1#;1x@msz*hj87D)y=L7JGd^9U zjzDE}H@J$*e<;d^M?gTya$xT}D4%q|^&JJ!RMjEPJ0ayhPFD{)h(syONgcsr0-kjFwW{Ki2;&b|0EPW#ansTWJYx{+*!N z8^UztqlNg5GI*hN@)IZ7G}&oWceKD|P8ZhO8PheK#i^Nweb|-G-j>{jknFU1{*(hE}LluT7|`e!HWl+1d;bhG}>$?BC^Ek%HX zDJ#Apnodxp#ryxcj%<8kI2^@|7)xJKbBJ3Hclhyz(X15r?xpXHFS-L11*^$0#D&J1+H9A_|tT`)M*#NUoK`X!u%4vFecqs)uG$w8x41LX#~ zMq2DdD_9%px&yhAwUMp~6|Hhb;{8}8-mfBXPhY;!Z&Y7lVqf94zQQMcg8bxkI2 zW_7OX;g*ijG}iaJCMej1*n>cs``d1gil`r(<3m5YRDuFxi ztQ-!BKStg4FuX=pISb>OK-66)`jT1Z-T8uA8#sH#S41(c41mrUEj~<|OMF=|n`mjt zY&q)87P;hb8Ih&m7S+77Fxhip{5=U5MR%IvA-DF`Da`7i@%Onf?36&VSb687W_LmM ze2p3Y9-3bB|2F-nK$;R-;-MlRM3-1L08a_Ec!qSwT}y5uH3R<8*U0ui{8QSm4Q3NT zy{WTyVI&7_P^G|5dtwe7BI|Nya*U94{3D{V@sB0#!a4LZpZSNd8WwGC!`kiB#;|p; zWOUkqB_k+v4r@>K8d5Rq3h(8(U`bw}ZY0m(-v!kgRVeVSVNv#9?e z9qZ8@ita(TO{ar2lw5qiQxbYVl8!tP{;C4z0Izg_1Jwa!@3 z;dKu>-fI7XBhYO8_fb_o8(+oczcl?4R_z**NfT;;zgPru~^^+3QY18UcL{_ zK@)C@EgWNp(=p~G3`m_c>rTO1*eSE_tQpf&XU)1EGv-V6n02SkSXt_{S=VjG{HboU zuGfqOQ@v*02{TrnI$_owGh-F0V`klPGgg^8Zq}WF6^S!u-BB~vFLe|rpD9)ezdzM- zhUJLr)Z5glFVWxUEzhd~>lVXqed@Apg208ag6HxXh z)!L6^2KP-Z&i7^$+X8y?!<{)rnTV846mw&~W&F-X-lbE`^~6fzt8z*;XoAQk zCsyj|9DQzTB8GLk<(?#{)iV{+>HSOm1!46C8{{z4Y~d=ubkTWCp>qkL^L3zeh6kN5 zTerAUeL+Zcz9wkC&jF-gS)i1gStlO?COYzH@O51ysISvR7T4_X2GkuH2U<5Y`HCnD zy#huR!icbNODA6!dgy;-#+M}-zoCrbGUJj6-{WRTuy7pI9ZCK#f&H#5G$|Cm>y|>v zmxT``F~h?>B4bR|*ylMK?O_weWF_gD1yYx;Xl*lj`n!86>KM9ohs;c>wNRe}t}o+9MLnj&}_ z)J`QbRWnuiQd0yH)sya-LQYyLB`57{?&=T;!IbAZ1ThWU;XVxAu`dT;1`jrK_)`P8 z>V#W{lGv*yu{oByqlHlNcihUqvG)WK|12t}C3V@9T`u+xrcsmgg{GQ~X$FflsMf}4 z$*ANg>P8uEiz|s zb~KBoiR7z-ZR=RN^SF?PNg`E_G!(KeC6>4?Go4A!;`;Nr$U_QIe<8ox-X^5UU}|!U z)bwyLLltLm#rYQ4zVEA!ZH=OU8iV5S$%Q{f#Iy#QH#x8=gPR5J^D;y;lD`uW$Gyo5 z^J}V?@-e#nJ{pJQJi)UfO8{`6Z@D^1bA+S~3yXWu96|9#mhN|k`z@<@?Y`I(e%mTu z%`fqUmwHh3jt9=WE{Qp=NX$|qF_Ssq-R29aB>t)iUSNgg4+blq zVWUQYhi)@t)aZZ8@7SU6Kg!P}^wd&;-?G#KF;ahIx#jr7N!yDBo>2@*&Ipv1CcJTL z!t?;muE2?iRuV<+f1q|cqUpcT-m@V0pTV|E9T90gA$uDx1ZbhK z=bGjLO!R{+jJ!DDeOB1Z!eo6ed8SH-!*LnSCXQ9 z9cTU=>c}Xh6Bay(;_8&DYFI62tFT%=upqo1;G`!nRH5{Tx1^rq)Q>C(M+_H6@<()_bw!~N*eN$%38mLn)ZrhTFc zRtQSdx{C$KC%X;ZYgutDh#u zNpsCrEN^X7_$biVSe!6JrVd>_2%aOL6;n_b);P3Hwa3%dF*1!hO8u*M+ z0}X&|j^=Ca_{`v%@xIiDD7TUOu3qMC;@S1LJf@g5^^#oFD{6sH*{LR4+Wt@wo%~27 z_X}U`Y}%b>GY#5oDKpoev@Lf?+iF4JUz+y0<(DR`GwjEAwxrvWLfIPOQ$@D%uw7*q zFD*Kx*7C6Thk?4?U!N8#VQS)>sgHxDuG(T+OCc&q-z1Q$xcJW{L!``DrZ&S!yNKta;K0;AyGicILsOrjwf&YO zNTm$9*`sV~J42N_F+pe}2-}6DMcidU2E`iAl-C}0J(N(bV$%?W@aNhJx@5;36PxXT zNc`AlG56k{^7$<|CbSCIfgm00RY_SSE&8*2;k3O=*jM^ht07?<%><|#BzskF9O^hup}=dPb96F#O6I<%>xEMf1*$6h`M70UI_1?MPjGWtw-JS2q7%q8C3*^ zs_c$3tW2Pov?r>-a}q4{hnXX+3F}~x)Ana#mV8^7RRw1*XS4bgp|$h{uekIOiJ(JF zneN4Inh9j6tbr?W`Ur%VS7+E=W~OrPH_G0DJ4~xAC{@!2H~(mOKn<2;ePdPgaQcdk zm`C4_wz7$>!Us3a${0*e8H2$vNrUr0#_L)-R$hoOw8lVUhtSOj;C8@@?~OJFcv{VX zD_`#Vlu%=UI`3-?DBLyVDjlozfPU99zWX?0L9y^#?km2|SOBd-)gYJ2Hu|ZHa}!Gg zx^(N@+324s?b>V6u0jD15sorx{woYhuJY#{*;qlDGnTC)6*C4Sa?DctV``{b$z595 z#-W7M;8(fZrCJxg$^k2|jHdz-$E~8y_6b5tMdjDf{vkpW1^6rP#YEk`eX%WCvMD z!Mh!P;?g1bg-^1b&uk~HfG%6L+r(g8so|SzFGUbfT#C@v<2;E|oXVda7rg>KUp&*{$AdL6e^8awq8Wxng`b;^%>4_^YbD z9Qgyf_3t^l^=Y8|3(rP%!791#+6Q{Q7lkfbu5qY+#3yX>u}W`g;&x8F%*QxGC1!^v zxA?&8U9lY9AtX0!1#@^6t3J@b_DZDwYUHsi5jM-Ey5$()ZYV1(i>1_F-qeVYyCX_le}^ zK8)|p;xTF;o%V2m{?fgvyQcQm_i1k(PldlX@P?*oh>>G|`sAq8Gg`$Ri~XRAgZn8lU>3GjGgVl#t5!Z3gc z0*_~5L`%AjG;XOiQj2A>j5Cu-X34(qaWYkT$wPiXQkB3Gn$6|YXd*gdk<5qPiHgWUj%~*UgHaR(l5@WT4vaRorm1~zrW*mTdQOi|}6}xDa zBgE@jt8U*O8EK;Cb4Q?+dew9w^SPKXMM;$HT5Mu`0)g_mX~U|PbbCgxRLo*dC%D-D zSgl~?9_;D6V$3l0TH#jgSdet=qHT(q*}Rn%k)$d1BU6#tV|_>36(QmLv7<9>Vd|tk zp0i4^O4Z8ObLf+SP>yoD3PDurS+iIxi0Vwe{Ge>@xh9TRNhVhnx@|oz(ORQ@Q!nq- z^&K&jSatS}c*jTG7BegQLFD>qWHLSxcfFv+Td@<#ZmwYcX4ri2U-B(BCp~%cO<^P13^ZCOczmvU!1^>4nv!5|cYp-JJ2cnwM>-nOUnWcHHYV8*DqMFom=;;Cb zQ|~3zMkQuc^^%xiK{n1LM!)p=#|ys(=1FDW6ggYjwTk&(gdRVJ9xqvWVfyCGVkNPQ zh30oG%M^OK!>QwVzE~rSD+;FMO{r>^>SWwR|LV-w8d1STD7VUsOroe z==x4o)M^gr-zb)ZyX{%6m$IVjT|*04Ap6V-7jstGu3Dxks=<4fSucsXqlLhlS>Gv^ zS15>{6KcCfvFA@7@t(9@EtYq@$$B|Qb@93GmWAzG6*g`Pz0`pef|rFO5jrMYS=Y$x z7IQL{PL+C}RV7clQZ3rz>a!H4pQX^@#?|C}WwGZjbUYn&-0x)Afzx!`)^i2dZ9n;0 zs+htSihWQK3Mm9L6}?^)vxeRD1<~nCSoY&&^t*ocA4B^5ZVicwuxk z-B`0~MZ)wNMN_1UZwpP&=a(@zqAaSlz6|Eqo^O_gPNQz;3L@{rEL+Y&^R{vs+&ytd zx-%zNG`p>fJ2Fpk6w4jQV>&FDi+i|ioyxdTBSTXiz!&zV+DI0n0%>*L6u zYWHFpdjii)aaXukRrslki!z`WF`xa#a)biCa&DL6oGLG>1S$4y54nEj>iMdu*9c4OVYc>G;;Of0M@?_c zu5WZ<7`X>)7CsselGq6T&GqGV@m3vE705MD!e-UE}wmPLVo!VTT z&&;J()|L|+3GZSmlUQF*t;>t^Q|iXzN@87g4om-LSpy)5$e6^h(Zym zf`XNc`6+2Sa;fs^=_E2ADAtbJPP?<2OeWSdiIugDR{~8Yxw*XTF-3XDE+{Ly zU6A!`?QFX-JQvMIqOx|mH{DUXwYB9<%y%YnFR{AeKbDO=>v=fc_E_m{U53f3Ra(I) z@iDJ^l8dX0>AO8G`*#Gs?Fh%1x6(YxTCMF+4FAt(+I0IPh2w!E-rF+T*|Lywt{T;; zQ#cG^CCtPAuomtKhr?&X7f%nI9#&a69)3|}eHXp&!`b1plJ|$;{W+*0fybvomoL~I z2=##P>%c+cAahCO;Nh~DOFpgyxZ1(hPOf%wHOQfxOCj#*<%9DYu7nE$F&<= zd!B2b;c$~{(;Pm_wOd@f&9xb>y}&zXIo#pe9EW)h2@XjP3moopSmfFghnF}kb8Urd zs~l2XTjSd2xVFwA&0&LUn;h0SA*qi9?wy7MH3VY8-41bq>4SyT@Ul!vTl4IeebO7dU*8!sR!tpTBj|}}VkW_rLlw=Pr2Lf1c zTJzH6qsdQGz*TmaR1Z;db3#CkNSv6`97K0CzncT34w`_bPMW%0|3C^7Mt7(+vmPA1 zI8M=K7>RDzKS2L9?Kqac(>_0(k>D&a=m%dwI(L5b<^^Dv@Q)%-L}I5ek>LTxIJ+#d zGlPr`v0-2xBaC&iE9B@^U_DWKwZ2B~jsoi(1LhkC)*X{rG!860L1L3MO)++zJqK*y z264~J?BZvDUAZZ-k!fI;KP$1mTfk1;2G%trv2!m-Z1_cVc$QqaBeC;yzykBgfSdrP zC1rMDL1vM=_*WcTl-boK#=`6+VCpik&c_Ak$^n1 ztf+Ii6d7cxTT;VV4Pl`h#?)vr^*SJ%y2u`fusvEjhr7`b_TJTo5#0@O5{(|Fwg92H zEUW%Yjrhyazs4KJKfY zYvjosAYdwv;Y7EyMlO|aQUa+UwnpP|A==pDOPm!3w)7>PJ=CK)Wmq>_+Qz`v&SRsn zv;$cswIMapJ}pe3F98|dTEQ^4{YJ52jHcd{4!3>AgN8BgkY2-V7>VX;sbLHw+1MHy z`ZFvIL17TX+YT7zhH;zLF;Q&8a~=BEGDeRW7{$chvoK^egbl+56O}J;HQ6{DnDI_S>0*;on6=n$u<|=4}7oZA^lDo9cFoxRvgs#m~FW zt)QKtf_B!(kpbfijdPQghwJZ>|J_uTUc!w!p}z+d`&WSWLe!lK76#9155+m)R_{4Nr2cLg zv)D9;PoJ4yl8m~Nd6FD*RvgB7mDy%k)yC|T4jcoSOy@9cfU~H$`=rcsCjrbs4P-lsu z3(B~LTt6M}QR0?DK5}6xlKcRGFdZixADnUo@o_ZB>Zo&$bYf1~+9T*=tgVK)WPAv} zX;V8-hWi|~kiRM0wtaz8%yIj$aBYG9`F3=RM2>gvB72Eg&0$9lQy&4PW}q1@RrT_* z<{)0FO>*d%9BvaHX``>S(N~XcE}=@anY7VIfScDqXc-H?5#-I6br5929zkUj;46CI?jsO4v literal 0 HcmV?d00001 diff --git a/packages/phocadownload/components/com_phocadownload/assets/flowplayer/flowplayer.controls-3.2.1.swf b/packages/phocadownload/components/com_phocadownload/assets/flowplayer/flowplayer.controls-3.2.1.swf new file mode 100644 index 0000000000000000000000000000000000000000..61874403f1656107bceae27dcd02546e6d92d262 GIT binary patch literal 35736 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 Fm_KMxI`Sq$aSC3$D+M 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 + + + \ No newline at end of file diff --git a/packages/phocadownload/components/com_phocadownload/assets/overlib/index.html b/packages/phocadownload/components/com_phocadownload/assets/overlib/index.html new file mode 100644 index 00000000..fa6d84e8 --- /dev/null +++ b/packages/phocadownload/components/com_phocadownload/assets/overlib/index.html @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/phocadownload/components/com_phocadownload/assets/overlib/overlib_mini.js b/packages/phocadownload/components/com_phocadownload/assets/overlib/overlib_mini.js new file mode 100644 index 00000000..f8036b6d --- /dev/null +++ b/packages/phocadownload/components/com_phocadownload/assets/overlib/overlib_mini.js @@ -0,0 +1,322 @@ +//\///// +//\ overLIB 4.21 - You may not remove or change this notice. +//\ Copyright Erik Bosrup 1998-2004. All rights reserved. +//\ +//\ Contributors are listed on the homepage. +//\ This file might be old, always check for the latest version at: +//\ http://www.bosrup.com/web/overlib/ +//\ +//\ Please read the license agreement (available through the link above) +//\ before using overLIB. Direct any licensing questions to erik@bosrup.com. +//\ +//\ Do not sell this as your own work or remove this copyright notice. +//\ For full details on copying or changing this script please read the +//\ license agreement at the link above. Please give credit on sites that +//\ use overLIB and submit changes of the script so other people can use +//\ them as well. +//\///// +//\ THIS IS A VERY MODIFIED VERSION. DO NOT EDIT OR PUBLISH. GET THE ORIGINAL! +var olLoaded=0,pmStart=10000000,pmUpper=10001000,pmCount=pmStart+1,pmt='',pms=new Array(),olInfo=new Info('4.21',1),FREPLACE=0,FBEFORE=1,FAFTER=2,FALTERNATE=3,FCHAIN=4,olHideForm=0,olHautoFlag=0,olVautoFlag=0,hookPts=new Array(),postParse=new Array(),cmdLine=new Array(),runTime=new Array(); +registerCommands('donothing,inarray,caparray,sticky,background,noclose,caption,left,right,center,offsetx,offsety,fgcolor,bgcolor,textcolor,capcolor,closecolor,width,border,cellpad,status,autostatus,autostatuscap,height,closetext,snapx,snapy,fixx,fixy,relx,rely,fgbackground,bgbackground,padx,pady,fullhtml,above,below,capicon,textfont,captionfont,closefont,textsize,captionsize,closesize,timeout,function,delay,hauto,vauto,closeclick,wrap,followmouse,mouseoff,closetitle,cssoff,compatmode,cssclass,fgclass,bgclass,textfontclass,captionfontclass,closefontclass'); +if(typeof ol_fgcolor=='undefined')var ol_fgcolor="#fdfdfd";if(typeof ol_bgcolor=='undefined')var ol_bgcolor="#f0f0f0";if(typeof ol_textcolor=='undefined')var ol_textcolor="#999999";if(typeof ol_capcolor=='undefined')var ol_capcolor="#999999";if(typeof ol_closecolor=='undefined')var ol_closecolor="#9999FF";if(typeof ol_textfont=='undefined')var ol_textfont="Verdana,Arial,Helvetica";if(typeof ol_captionfont=='undefined')var ol_captionfont="Verdana,Arial,Helvetica";if(typeof ol_closefont=='undefined')var ol_closefont="Verdana,Arial,Helvetica";if(typeof ol_textsize=='undefined')var ol_textsize="1";if(typeof ol_captionsize=='undefined')var ol_captionsize="1";if(typeof ol_closesize=='undefined')var ol_closesize="1";if(typeof ol_width=='undefined')var ol_width="200";if(typeof ol_border=='undefined')var ol_border="1";if(typeof ol_cellpad=='undefined')var ol_cellpad=2;if(typeof ol_offsetx=='undefined')var ol_offsetx=10;if(typeof ol_offsety=='undefined')var ol_offsety=10;if(typeof ol_text=='undefined')var ol_text="Default Text";if(typeof ol_cap=='undefined')var ol_cap="";if(typeof ol_sticky=='undefined')var ol_sticky=0;if(typeof ol_background=='undefined')var ol_background="";if(typeof ol_close=='undefined')var ol_close="Close";if(typeof ol_hpos=='undefined')var ol_hpos=RIGHT;if(typeof ol_status=='undefined')var ol_status="";if(typeof ol_autostatus=='undefined')var ol_autostatus=0;if(typeof ol_height=='undefined')var ol_height=-1;if(typeof ol_snapx=='undefined')var ol_snapx=0;if(typeof ol_snapy=='undefined')var ol_snapy=0;if(typeof ol_fixx=='undefined')var ol_fixx=-1;if(typeof ol_fixy=='undefined')var ol_fixy=-1;if(typeof ol_relx=='undefined')var ol_relx=null;if(typeof ol_rely=='undefined')var ol_rely=null;if(typeof ol_fgbackground=='undefined')var ol_fgbackground="";if(typeof ol_bgbackground=='undefined')var ol_bgbackground="";if(typeof ol_padxl=='undefined')var ol_padxl=1;if(typeof ol_padxr=='undefined')var ol_padxr=1;if(typeof ol_padyt=='undefined')var ol_padyt=1;if(typeof ol_padyb=='undefined')var ol_padyb=1;if(typeof ol_fullhtml=='undefined')var ol_fullhtml=0;if(typeof ol_vpos=='undefined')var ol_vpos=BELOW;if(typeof ol_aboveheight=='undefined')var ol_aboveheight=0;if(typeof ol_capicon=='undefined')var ol_capicon="";if(typeof ol_frame=='undefined')var ol_frame=self;if(typeof ol_timeout=='undefined')var ol_timeout=0;if(typeof ol_function=='undefined')var ol_function=null;if(typeof ol_delay=='undefined')var ol_delay=0;if(typeof ol_hauto=='undefined')var ol_hauto=0;if(typeof ol_vauto=='undefined')var ol_vauto=0;if(typeof ol_closeclick=='undefined')var ol_closeclick=0;if(typeof ol_wrap=='undefined')var ol_wrap=0;if(typeof ol_followmouse=='undefined')var ol_followmouse=1;if(typeof ol_mouseoff=='undefined')var ol_mouseoff=0;if(typeof ol_closetitle=='undefined')var ol_closetitle='Close';if(typeof ol_compatmode=='undefined')var ol_compatmode=0;if(typeof ol_css=='undefined')var ol_css=CSSOFF;if(typeof ol_fgclass=='undefined')var ol_fgclass="";if(typeof ol_bgclass=='undefined')var ol_bgclass="";if(typeof ol_textfontclass=='undefined')var ol_textfontclass="";if(typeof ol_captionfontclass=='undefined')var ol_captionfontclass="";if(typeof ol_closefontclass=='undefined')var ol_closefontclass=""; +if(typeof ol_texts=='undefined')var ol_texts=new Array("Text 0","Text 1");if(typeof ol_caps=='undefined')var ol_caps=new Array("Caption 0","Caption 1"); +var o3_text="",o3_cap="",o3_sticky=0,o3_background="",o3_close="Close",o3_hpos=RIGHT,o3_offsetx=2,o3_offsety=2,o3_fgcolor="",o3_bgcolor="",o3_textcolor="",o3_capcolor="",o3_closecolor="",o3_width=100,o3_border=1,o3_cellpad=2,o3_status="",o3_autostatus=0,o3_height=-1,o3_snapx=0,o3_snapy=0,o3_fixx=-1,o3_fixy=-1,o3_relx=null,o3_rely=null,o3_fgbackground="",o3_bgbackground="",o3_padxl=0,o3_padxr=0,o3_padyt=0,o3_padyb=0,o3_fullhtml=0,o3_vpos=BELOW,o3_aboveheight=0,o3_capicon="",o3_textfont="Verdana,Arial,Helvetica",o3_captionfont="Verdana,Arial,Helvetica",o3_closefont="Verdana,Arial,Helvetica",o3_textsize="1",o3_captionsize="1",o3_closesize="1",o3_frame=self,o3_timeout=0,o3_timerid=0,o3_allowmove=0,o3_function=null,o3_delay=0,o3_delayid=0,o3_hauto=0,o3_vauto=0,o3_closeclick=0,o3_wrap=0,o3_followmouse=1,o3_mouseoff=0,o3_closetitle='',o3_compatmode=0,o3_css=CSSOFF,o3_fgclass="",o3_bgclass="",o3_textfontclass="",o3_captionfontclass="",o3_closefontclass=""; +var o3_x=0,o3_y=0,o3_showingsticky=0,o3_removecounter=0; +var over=null,fnRef,hoveringSwitch=false,olHideDelay; +var isMac=(navigator.userAgent.indexOf("Mac")!=-1),olOp=(navigator.userAgent.toLowerCase().indexOf('opera')>-1&&document.createTextNode),olNs4=(navigator.appName=='Netscape'&&parseInt(navigator.appVersion)==4),olNs6=(document.getElementById)?true:false,olKq=(olNs6&&/konqueror/i.test(navigator.userAgent)),olIe4=(document.all)?true:false,olIe5=false,olIe55=false,docRoot='document.body'; +if(olNs4){var oW=window.innerWidth;var oH=window.innerHeight;window.onresize=function(){if(oW!=window.innerWidth||oH!=window.innerHeight)location.reload();}} +if(olIe4){var agent=navigator.userAgent;if(/MSIE/.test(agent)){var versNum=parseFloat(agent.match(/MSIE[ ](\d{1,2}\.\d+)\.*/i)[1]);if(versNum>=5){olIe5=true;olIe55=(versNum>=5.5&&!olOp)?true:false;if(olNs6)olNs6=false;}} +if(olNs6)olIe4=false;} +if(document.compatMode&&document.compatMode=='CSS1Compat'){docRoot=((olIe4&&!olOp)?'document.documentElement':docRoot);} +if(window.addEventListener)window.addEventListener("load",OLonLoad_handler,false);else if(window.attachEvent)window.attachEvent("onload",OLonLoad_handler); +var capExtent; +function overlib(){if(!olLoaded||isExclusive(overlib.arguments))return true;if(olCheckMouseCapture)olMouseCapture();if(over){over=(typeof over.id!='string')?o3_frame.document.all['overDiv']:over;cClick();} +olHideDelay=0;o3_text=ol_text;o3_cap=ol_cap;o3_sticky=ol_sticky;o3_background=ol_background;o3_close=ol_close;o3_hpos=ol_hpos;o3_offsetx=ol_offsetx;o3_offsety=ol_offsety;o3_fgcolor=ol_fgcolor;o3_bgcolor=ol_bgcolor;o3_textcolor=ol_textcolor;o3_capcolor=ol_capcolor;o3_closecolor=ol_closecolor;o3_width=ol_width;o3_border=ol_border;o3_cellpad=ol_cellpad;o3_status=ol_status;o3_autostatus=ol_autostatus;o3_height=ol_height;o3_snapx=ol_snapx;o3_snapy=ol_snapy;o3_fixx=ol_fixx;o3_fixy=ol_fixy;o3_relx=ol_relx;o3_rely=ol_rely;o3_fgbackground=ol_fgbackground;o3_bgbackground=ol_bgbackground;o3_padxl=ol_padxl;o3_padxr=ol_padxr;o3_padyt=ol_padyt;o3_padyb=ol_padyb;o3_fullhtml=ol_fullhtml;o3_vpos=ol_vpos;o3_aboveheight=ol_aboveheight;o3_capicon=ol_capicon;o3_textfont=ol_textfont;o3_captionfont=ol_captionfont;o3_closefont=ol_closefont;o3_textsize=ol_textsize;o3_captionsize=ol_captionsize;o3_closesize=ol_closesize;o3_timeout=ol_timeout;o3_function=ol_function;o3_delay=ol_delay;o3_hauto=ol_hauto;o3_vauto=ol_vauto;o3_closeclick=ol_closeclick;o3_wrap=ol_wrap;o3_followmouse=ol_followmouse;o3_mouseoff=ol_mouseoff;o3_closetitle=ol_closetitle;o3_css=ol_css;o3_compatmode=ol_compatmode;o3_fgclass=ol_fgclass;o3_bgclass=ol_bgclass;o3_textfontclass=ol_textfontclass;o3_captionfontclass=ol_captionfontclass;o3_closefontclass=ol_closefontclass; +setRunTimeVariables(); +fnRef=''; +o3_frame=ol_frame; +if(!(over=createDivContainer()))return false; +parseTokens('o3_',overlib.arguments);if(!postParseChecks())return false; +if(o3_delay==0){return runHook("olMain",FREPLACE);}else{o3_delayid=setTimeout("runHook('olMain',FREPLACE)",o3_delay);return false;}} +function nd(time){if(olLoaded&&!isExclusive()){hideDelay(time); +if(o3_removecounter>=1){o3_showingsticky=0 }; +if(o3_showingsticky==0){o3_allowmove=0;if(over!=null&&o3_timerid==0)runHook("hideObject",FREPLACE,over);}else{o3_removecounter++;}} +return true;} +function cClick(){if(olLoaded){runHook("hideObject",FREPLACE,over);o3_showingsticky=0;} +return false;} +function overlib_pagedefaults(){parseTokens('ol_',overlib_pagedefaults.arguments);} +function olMain(){var layerhtml,styleType;runHook("olMain",FBEFORE); +if(o3_background!=""||o3_fullhtml){ +layerhtml=runHook('ol_content_background',FALTERNATE,o3_css,o3_text,o3_background,o3_fullhtml);}else{ +styleType=(pms[o3_css-1-pmStart]=="cssoff"||pms[o3_css-1-pmStart]=="cssclass"); +if(o3_fgbackground!="")o3_fgbackground="background=\""+o3_fgbackground+"\"";if(o3_bgbackground!="")o3_bgbackground=(styleType?"background=\""+o3_bgbackground+"\"":o3_bgbackground); +if(o3_fgcolor!="")o3_fgcolor=(styleType?"bgcolor=\""+o3_fgcolor+"\"":o3_fgcolor);if(o3_bgcolor!="")o3_bgcolor=(styleType?"bgcolor=\""+o3_bgcolor+"\"":o3_bgcolor); +if(o3_height>0)o3_height=(styleType?"height=\""+o3_height+"\"":o3_height);else o3_height=""; +if(o3_cap==""){ +layerhtml=runHook('ol_content_simple',FALTERNATE,o3_css,o3_text);}else{ +if(o3_sticky){ +layerhtml=runHook('ol_content_caption',FALTERNATE,o3_css,o3_text,o3_cap,o3_close);}else{ +layerhtml=runHook('ol_content_caption',FALTERNATE,o3_css,o3_text,o3_cap,"");}}} +if(o3_sticky){if(o3_timerid>0){clearTimeout(o3_timerid);o3_timerid=0;} +o3_showingsticky=1;o3_removecounter=0;} +if(!runHook("createPopup",FREPLACE,layerhtml))return false; +if(o3_autostatus>0){o3_status=o3_text;if(o3_autostatus>1)o3_status=o3_cap;} +o3_allowmove=0; +if(o3_timeout>0){if(o3_timerid>0)clearTimeout(o3_timerid);o3_timerid=setTimeout("cClick()",o3_timeout);} +runHook("disp",FREPLACE,o3_status);runHook("olMain",FAFTER); +return(olOp&&event&&event.type=='mouseover'&&!o3_status)?'':(o3_status!='');} +function ol_content_simple(text){var cpIsMultiple=/,/.test(o3_cellpad);var txt='
':((!olNs4&&cpIsMultiple)?' style="'+setCellPadStr(o3_cellpad)+'">':'>'))+(o3_textfontclass?'':wrapStr(0,o3_textsize,'text'))+text+(o3_textfontclass?'':wrapStr(1,o3_textsize))+'
'; +set_background("");return txt;} +function ol_content_caption(text,title,close){var nameId,txt,cpIsMultiple=/,/.test(o3_cellpad);var closing,closeevent; +closing="";closeevent="onmouseover";if(o3_closeclick==1)closeevent=(o3_closetitle?"title='"+o3_closetitle+"'":"")+" onclick";if(o3_capicon!=""){nameId=' hspace=\"5\"'+' align=\"middle\" alt=\"\"';if(typeof o3_dragimg!='undefined'&&o3_dragimg)nameId=' hspace=\"5\"'+' name=\"'+o3_dragimg+'\" id=\"'+o3_dragimg+'\" align=\"middle\" alt=\"Drag Enabled\" title=\"Drag Enabled\"';o3_capicon='';} +if(close!="") +closing='
'+(o3_closefontclass?'':wrapStr(0,o3_closesize,'close'))+close+(o3_closefontclass?'':wrapStr(1,o3_closesize,'close'))+'';txt='
':'>')+(o3_captionfontclass?'':''+wrapStr(0,o3_captionsize,'caption'))+o3_capicon+title+(o3_captionfontclass?'':wrapStr(1,o3_captionsize)+'')+''+closing+'
' :((!olNs4&&cpIsMultiple)?' style="'+setCellPadStr(o3_cellpad)+'">':'>'))+(o3_textfontclass?'':wrapStr(0,o3_textsize,'text'))+text+(o3_textfontclass?'':wrapStr(1,o3_textsize))+'
'; +set_background("");return txt;} +function ol_content_background(text,picture,hasfullhtml){if(hasfullhtml){txt=text;}else{txt='
'+(o3_textfontclass?'':wrapStr(0,o3_textsize,'text'))+text+(o3_textfontclass?'':wrapStr(1,o3_textsize))+'
';} +set_background(picture);return txt;} +function set_background(pic){if(pic==""){if(olNs4){over.background.src=null;}else if(over.style){over.style.backgroundImage="none";} +}else{if(olNs4){over.background.src=pic;}else if(over.style){over.style.width=o3_width+'px';over.style.backgroundImage="url("+pic+")";}}} +var olShowId=-1; +function disp(statustext){runHook("disp",FBEFORE); +if(o3_allowmove==0){runHook("placeLayer",FREPLACE);(olNs6&&olShowId<0)?olShowId=setTimeout("runHook('showObject',FREPLACE,over)",1):runHook("showObject",FREPLACE,over);o3_allowmove=(o3_sticky||o3_followmouse==0)?0:1;} +runHook("disp",FAFTER); +if(statustext!="")self.status=statustext;} +function createPopup(lyrContent){runHook("createPopup",FBEFORE); +if(o3_wrap){var wd,ww,theObj=(olNs4?over:over.style);theObj.top=theObj.left=((olIe4&&!olOp)?0:-10000)+(!olNs4?'px':0);layerWrite(lyrContent);wd=(olNs4?over.clip.width:over.offsetWidth);if(wd>(ww=windowWidth())){lyrContent=lyrContent.replace(/\ /g,' ');o3_width=ww;o3_wrap=0;}} +layerWrite(lyrContent); +if(o3_wrap)o3_width=(olNs4?over.clip.width:over.offsetWidth); +runHook("createPopup",FAFTER,lyrContent); +return true;} +function placeLayer(){var placeX,placeY,widthFix=0; +if(o3_frame.innerWidth)widthFix=18;iwidth=windowWidth(); +winoffset=(olIe4)?eval('o3_frame.'+docRoot+'.scrollLeft'):o3_frame.pageXOffset; +placeX=runHook('horizontalPlacement',FCHAIN,iwidth,winoffset,widthFix); +if(o3_frame.innerHeight){iheight=o3_frame.innerHeight;}else if(eval('o3_frame.'+docRoot)&&eval("typeof o3_frame."+docRoot+".clientHeight=='number'")&&eval('o3_frame.'+docRoot+'.clientHeight')){iheight=eval('o3_frame.'+docRoot+'.clientHeight');} +scrolloffset=(olIe4)?eval('o3_frame.'+docRoot+'.scrollTop'):o3_frame.pageYOffset;placeY=runHook('verticalPlacement',FCHAIN,iheight,scrolloffset); +repositionTo(over,placeX,placeY);} +function olMouseMove(e){var e=(e)?e:event; +if(e.pageX){o3_x=e.pageX;o3_y=e.pageY;}else if(e.clientX){o3_x=eval('e.clientX+o3_frame.'+docRoot+'.scrollLeft');o3_y=eval('e.clientY+o3_frame.'+docRoot+'.scrollTop');} +if(o3_allowmove==1)runHook("placeLayer",FREPLACE); +if(hoveringSwitch&&!olNs4&&runHook("cursorOff",FREPLACE)){(olHideDelay?hideDelay(olHideDelay):cClick());hoveringSwitch=!hoveringSwitch;}} +function no_overlib(){return ver3fix;} +function olMouseCapture(){capExtent=document;var fN,str='',l,k,f,wMv,sS,mseHandler=olMouseMove;var re=/function[ ]*(\w*)\(/; +wMv=(!olIe4&&window.onmousemove);if(document.onmousemove||wMv){if(wMv)capExtent=window;f=capExtent.onmousemove.toString();fN=f.match(re);if(fN==null){str=f+'(e);';}else if(fN[1]=='anonymous'||fN[1]=='olMouseMove'||(wMv&&fN[1]=='onmousemove')){if(!olOp&&wMv){l=f.indexOf('{')+1;k=f.lastIndexOf('}');sS=f.substring(l,k);if((l=sS.indexOf('('))!=-1){sS=sS.substring(0,l).replace(/^\s+/,'').replace(/\s+$/,'');if(eval("typeof "+sS+"=='undefined'"))window.onmousemove=null;else str=sS+'(e);';}} +if(!str){olCheckMouseCapture=false;return;} +}else{if(fN[1])str=fN[1]+'(e);';else{l=f.indexOf('{')+1;k=f.lastIndexOf('}');str=f.substring(l,k)+'\n';}} +str+='olMouseMove(e);';mseHandler=new Function('e',str);if (typeof yourvar != 'l') {return;}} +capExtent.onmousemove=mseHandler;if(olNs4)capExtent.captureEvents(Event.MOUSEMOVE);} +function parseTokens(pf,ar){ +var v,i,mode=-1,par=(pf!='ol_'),fnMark=(par&&!ar.length?1:0); +for(i=0;ipmStart&&ar[i]=pmCount||ar[i]==DONOTHING){continue;} +if(ar[i]==INARRAY){fnMark=0;eval(pf+'text=ol_texts['+ar[++i]+'].toString()');continue;} +if(ar[i]==CAPARRAY){eval(pf+'cap=ol_caps['+ar[++i]+'].toString()');continue;} +if(ar[i]==STICKY){if(pf!='ol_')eval(pf+'sticky=1');continue;} +if(ar[i]==BACKGROUND){eval(pf+'background="'+ar[++i]+'"');continue;} +if(ar[i]==NOCLOSE){if(pf!='ol_')opt_NOCLOSE();continue;} +if(ar[i]==CAPTION){eval(pf+"cap='"+escSglQuote(ar[++i])+"'");continue;} +if(ar[i]==CENTER||ar[i]==LEFT||ar[i]==RIGHT){eval(pf+'hpos='+ar[i]);if(pf!='ol_')olHautoFlag=1;continue;} +if(ar[i]==OFFSETX){eval(pf+'offsetx='+ar[++i]);continue;} +if(ar[i]==OFFSETY){eval(pf+'offsety='+ar[++i]);continue;} +if(ar[i]==FGCOLOR){eval(pf+'fgcolor="'+ar[++i]+'"');continue;} +if(ar[i]==BGCOLOR){eval(pf+'bgcolor="'+ar[++i]+'"');continue;} +if(ar[i]==TEXTCOLOR){eval(pf+'textcolor="'+ar[++i]+'"');continue;} +if(ar[i]==CAPCOLOR){eval(pf+'capcolor="'+ar[++i]+'"');continue;} +if(ar[i]==CLOSECOLOR){eval(pf+'closecolor="'+ar[++i]+'"');continue;} +if(ar[i]==WIDTH){eval(pf+'width='+ar[++i]);continue;} +if(ar[i]==BORDER){eval(pf+'border='+ar[++i]);continue;} +if(ar[i]==CELLPAD){i=opt_MULTIPLEARGS(++i,ar,(pf+'cellpad'));continue;} +if(ar[i]==STATUS){eval(pf+"status='"+escSglQuote(ar[++i])+"'");continue;} +if(ar[i]==AUTOSTATUS){eval(pf+'autostatus=('+pf+'autostatus==1)?0:1');continue;} +if(ar[i]==AUTOSTATUSCAP){eval(pf+'autostatus=('+pf+'autostatus==2)?0:2');continue;} +if(ar[i]==HEIGHT){eval(pf+'height='+pf+'aboveheight='+ar[++i]);continue;} +if(ar[i]==CLOSETEXT){eval(pf+"close='"+escSglQuote(ar[++i])+"'");continue;} +if(ar[i]==SNAPX){eval(pf+'snapx='+ar[++i]);continue;} +if(ar[i]==SNAPY){eval(pf+'snapy='+ar[++i]);continue;} +if(ar[i]==FIXX){eval(pf+'fixx='+ar[++i]);continue;} +if(ar[i]==FIXY){eval(pf+'fixy='+ar[++i]);continue;} +if(ar[i]==RELX){eval(pf+'relx='+ar[++i]);continue;} +if(ar[i]==RELY){eval(pf+'rely='+ar[++i]);continue;} +if(ar[i]==FGBACKGROUND){eval(pf+'fgbackground="'+ar[++i]+'"');continue;} +if(ar[i]==BGBACKGROUND){eval(pf+'bgbackground="'+ar[++i]+'"');continue;} +if(ar[i]==PADX){eval(pf+'padxl='+ar[++i]);eval(pf+'padxr='+ar[++i]);continue;} +if(ar[i]==PADY){eval(pf+'padyt='+ar[++i]);eval(pf+'padyb='+ar[++i]);continue;} +if(ar[i]==FULLHTML){if(pf!='ol_')eval(pf+'fullhtml=1');continue;} +if(ar[i]==BELOW||ar[i]==ABOVE){eval(pf+'vpos='+ar[i]);if(pf!='ol_')olVautoFlag=1;continue;} +if(ar[i]==CAPICON){eval(pf+'capicon="'+ar[++i]+'"');continue;} +if(ar[i]==TEXTFONT){eval(pf+"textfont='"+escSglQuote(ar[++i])+"'");continue;} +if(ar[i]==CAPTIONFONT){eval(pf+"captionfont='"+escSglQuote(ar[++i])+"'");continue;} +if(ar[i]==CLOSEFONT){eval(pf+"closefont='"+escSglQuote(ar[++i])+"'");continue;} +if(ar[i]==TEXTSIZE){eval(pf+'textsize="'+ar[++i]+'"');continue;} +if(ar[i]==CAPTIONSIZE){eval(pf+'captionsize="'+ar[++i]+'"');continue;} +if(ar[i]==CLOSESIZE){eval(pf+'closesize="'+ar[++i]+'"');continue;} +if(ar[i]==TIMEOUT){eval(pf+'timeout='+ar[++i]);continue;} +if(ar[i]==FUNCTION){if(pf=='ol_'){if(typeof ar[i+1]!='number'){v=ar[++i];ol_function=(typeof v=='function'?v:null);}}else{fnMark=0;v=null;if(typeof ar[i+1]!='number')v=ar[++i]; opt_FUNCTION(v);} continue;} +if(ar[i]==DELAY){eval(pf+'delay='+ar[++i]);continue;} +if(ar[i]==HAUTO){eval(pf+'hauto=('+pf+'hauto==0)?1:0');continue;} +if(ar[i]==VAUTO){eval(pf+'vauto=('+pf+'vauto==0)?1:0');continue;} +if(ar[i]==CLOSECLICK){eval(pf+'closeclick=('+pf+'closeclick==0)?1:0');continue;} +if(ar[i]==WRAP){eval(pf+'wrap=('+pf+'wrap==0)?1:0');continue;} +if(ar[i]==FOLLOWMOUSE){eval(pf+'followmouse=('+pf+'followmouse==1)?0:1');continue;} +if(ar[i]==MOUSEOFF){eval(pf+'mouseoff=('+pf+'mouseoff==0)?1:0');v=ar[i+1];if(pf!='ol_'&&eval(pf+'mouseoff')&&typeof v=='number'&&(vpmUpper))olHideDelay=ar[++i];continue;} +if(ar[i]==CLOSETITLE){eval(pf+"closetitle='"+escSglQuote(ar[++i])+"'");continue;} +if(ar[i]==CSSOFF||ar[i]==CSSCLASS){eval(pf+'css='+ar[i]);continue;} +if(ar[i]==COMPATMODE){eval(pf+'compatmode=('+pf+'compatmode==0)?1:0');continue;} +if(ar[i]==FGCLASS){eval(pf+'fgclass="'+ar[++i]+'"');continue;} +if(ar[i]==BGCLASS){eval(pf+'bgclass="'+ar[++i]+'"');continue;} +if(ar[i]==TEXTFONTCLASS){eval(pf+'textfontclass="'+ar[++i]+'"');continue;} +if(ar[i]==CAPTIONFONTCLASS){eval(pf+'captionfontclass="'+ar[++i]+'"');continue;} +if(ar[i]==CLOSEFONTCLASS){eval(pf+'closefontclass="'+ar[++i]+'"');continue;} +i=parseCmdLine(pf,i,ar);}} +if(fnMark&&o3_function)o3_text=o3_function(); +if((pf=='o3_')&&o3_wrap){o3_width=0; +var tReg=/<.*\n*>/ig;if(!tReg.test(o3_text))o3_text=o3_text.replace(/[ ]+/g,' ');if(!tReg.test(o3_cap))o3_cap=o3_cap.replace(/[ ]+/g,' ');} +if((pf=='o3_')&&o3_sticky){if(!o3_close&&(o3_frame!=ol_frame))o3_close=ol_close;if(o3_mouseoff&&(o3_frame==ol_frame))opt_NOCLOSE(' ');}} +function layerWrite(txt){txt+="\n";if(olNs4){var lyr=o3_frame.document.layers['overDiv'].document +lyr.write(txt) +lyr.close() +}else if(typeof over.innerHTML!='undefined'){if(olIe5&&isMac)over.innerHTML='';over.innerHTML=txt;}else{range=o3_frame.document.createRange();range.setStartAfter(over);domfrag=range.createContextualFragment(txt); +while(over.hasChildNodes()){over.removeChild(over.lastChild);} +over.appendChild(domfrag);}} +function showObject(obj){runHook("showObject",FBEFORE); +var theObj=(olNs4?obj:obj.style);theObj.visibility='visible'; +runHook("showObject",FAFTER);} +function hideObject(obj){runHook("hideObject",FBEFORE); +var theObj=(olNs4?obj:obj.style);if(olNs6&&olShowId>0){clearTimeout(olShowId);olShowId=0;} +theObj.visibility='hidden';theObj.top=theObj.left=((olIe4&&!olOp)?0:-10000)+(!olNs4?'px':0); +if(o3_timerid>0)clearTimeout(o3_timerid);if(o3_delayid>0)clearTimeout(o3_delayid); +o3_timerid=0;o3_delayid=0;self.status=""; +if(obj.onmouseout||obj.onmouseover){if(olNs4)obj.releaseEvents(Event.MOUSEOUT||Event.MOUSEOVER);obj.onmouseout=obj.onmouseover=null;} +runHook("hideObject",FAFTER);} +function repositionTo(obj,xL,yL){var theObj=(olNs4?obj:obj.style);theObj.left=xL+(!olNs4?'px':0);theObj.top=yL+(!olNs4?'px':0);} +function cursorOff(){var left=parseInt(over.style.left);var top=parseInt(over.style.top);var right=left+(over.offsetWidth>=parseInt(o3_width)?over.offsetWidth:parseInt(o3_width));var bottom=top+(over.offsetHeight>=o3_aboveheight?over.offsetHeight:o3_aboveheight); +if(o3_xright||o3_ybottom)return true; +return false;} +function opt_FUNCTION(callme){o3_text=(callme?(typeof callme=='string'?(/.+\(.*\)/.test(callme)?eval(callme):callme):callme()):(o3_function?o3_function():'No Function')); +return 0;} +function opt_NOCLOSE(unused){if(!unused)o3_close=""; +if(olNs4){over.captureEvents(Event.MOUSEOUT||Event.MOUSEOVER);over.onmouseover=function(){if(o3_timerid>0){clearTimeout(o3_timerid);o3_timerid=0;} } +over.onmouseout=function(e){if(olHideDelay)hideDelay(olHideDelay);else cClick(e);} +}else{over.onmouseover=function(){hoveringSwitch=true;if(o3_timerid>0){clearTimeout(o3_timerid);o3_timerid=0;} }} +return 0;} +function opt_MULTIPLEARGS(i,args,parameter){var k=i,re,pV,str=''; +for(k=i;kpmStart)break;str+=args[k]+',';} +if(str)str=str.substring(0,--str.length); +k--;pV=(olNs4&&/cellpad/i.test(parameter))?str.split(',')[0]:str;eval(parameter+'="'+pV+'"'); +return k;} +function nbspCleanup(){if(o3_wrap){o3_text=o3_text.replace(/\ /g,' ');o3_cap=o3_cap.replace(/\ /g,' ');}} +function escSglQuote(str){return str.toString().replace(/'/g,"\\'");} +function OLonLoad_handler(e){var re=/\w+\(.*\)[;\s]+/g,olre=/overlib\(|nd\(|cClick\(/,fn,l,i; +if(!olLoaded)olLoaded=1; +if(window.removeEventListener&&e.eventPhase==3)window.removeEventListener("load",OLonLoad_handler,false);else if(window.detachEvent){window.detachEvent("onload",OLonLoad_handler);var fN=document.body.getAttribute('onload');if(fN){fN=fN.toString().match(re);if(fN&&fN.length){for(i=0;i':'

'):'';else{fontStr='o3_'+whichString+'font';fontColor='o3_'+((whichString=='caption')? 'cap':whichString)+'color';return(hasDims&&!olNs4)?(isClose?'':'
'):'';}} +function quoteMultiNameFonts(theFont){var v,pM=theFont.split(',');for(var i=0;i0)clearTimeout(o3_timerid); +o3_timerid=setTimeout("cClick()",(o3_timeout=time));}} +function horizontalPlacement(browserWidth,horizontalScrollAmount,widthFix){var placeX,iwidth=browserWidth,winoffset=horizontalScrollAmount;var parsedWidth=parseInt(o3_width); +if(o3_fixx>-1||o3_relx!=null){ +placeX=(o3_relx!=null?( o3_relx<0?winoffset+o3_relx+iwidth-parsedWidth-widthFix:winoffset+o3_relx):o3_fixx);}else{ +if(o3_hauto==1){if((o3_x-winoffset)>(iwidth/2)){o3_hpos=LEFT;}else{o3_hpos=RIGHT;}} +if(o3_hpos==CENTER){placeX=o3_x+o3_offsetx-(parsedWidth/2); +if(placeX(winoffset+iwidth-widthFix)){placeX=iwidth+winoffset-parsedWidth-widthFix;if(placeX<0)placeX=0;}} +if(o3_hpos==LEFT){placeX=o3_x-o3_offsetx-parsedWidth;if(placeX1){var snapping=placeX % o3_snapx; +if(o3_hpos==LEFT){placeX=placeX-(o3_snapx+snapping);}else{ +placeX=placeX+(o3_snapx-snapping);} +if(placeX-1||o3_rely!=null){ +placeY=(o3_rely!=null?(o3_rely<0?scrolloffset+o3_rely+iheight-parsedHeight:scrolloffset+o3_rely):o3_fixy);}else{ +if(o3_vauto==1){if((o3_y-scrolloffset)>(iheight/2)&&o3_vpos==BELOW&&(o3_y+parsedHeight+o3_offsety-(scrolloffset+iheight)>0)){o3_vpos=ABOVE;}else if(o3_vpos==ABOVE&&(o3_y-(parsedHeight+o3_offsety)-scrolloffset<0)){o3_vpos=BELOW;}} +if(o3_vpos==ABOVE){if(o3_aboveheight==0)o3_aboveheight=parsedHeight; +placeY=o3_y-(o3_aboveheight+o3_offsety);if(placeY1){var snapping=placeY % o3_snapy; +if(o3_aboveheight>0&&o3_vpos==ABOVE){placeY=placeY-(o3_snapy+snapping);}else{placeY=placeY+(o3_snapy-snapping);} +if(placeY
');divContainer=layerReference(id);}else{divContainer=frm.document.createElement("DIV");divContainer.id=id;body.appendChild(divContainer);} +objRef=divContainer.style;} +objRef.position='absolute';objRef.visibility='hidden';objRef.zIndex=zValue;if(olIe4&&!olOp)objRef.left=objRef.top='0px';else objRef.left=objRef.top=-10000+(!olNs4?'px':0);} +return divContainer;} +function layerReference(id){return(olNs4?o3_frame.document.layers[id]:(document.all?o3_frame.document.all[id]:o3_frame.document.getElementById(id)));} +function isFunction(fnRef){var rtn=true; +if(typeof fnRef=='object'){for(var i=0;ijS){for(var k=jS;k-1){i=j;break;}}} +return i;} +function postParseChecks(pf,args){if(typeof postParse!='undefined'&&postParse.length){for(var k=0;k-1)hookPt.alt[pms[CSSOFF-1-pmStart]]=fnRef; +}else if(hookType==FBEFORE||hookType==FAFTER){var hookPt=(hookType==1?hookPt.before:hookPt.after); +if(typeof fnRef=='object'){hookPt=hookPt.concat(fnRef);}else{hookPt[hookPt.length++]=fnRef;} +if(optPm)hookPt=reOrder(hookPt,fnRef,optPm); +}else if(hookType==FALTERNATE){if(last=='number')hookPt.alt[pms[optPm-1-pmStart]]=fnRef;}else if(hookType==FCHAIN){hookPt=hookPt.chain;if(typeof fnRef=='object')hookPt=hookPt.concat(fnRef);else hookPt[hookPt.length++]=fnRef;} +return;}} +function registerRunTimeFunction(fn){if(isFunction(fn)){if(typeof fn=='object'){runTime=runTime.concat(fn);}else{runTime[runTime.length++]=fn;}}} +function registerCmdLineFunction(fn){if(isFunction(fn)){if(typeof fn=='object'){cmdLine=cmdLine.concat(fn);}else{cmdLine[cmdLine.length++]=fn;}}} +function registerPostParseFunction(fn){if(isFunction(fn)){if(typeof fn=='object'){postParse=postParse.concat(fn);}else{postParse[postParse.length++]=fn;}}} +function runHook(fnHookTo,hookType){var l=hookPts[fnHookTo],k,rtnVal=null,optPm,arS,ar=runHook.arguments; +if(hookType==FREPLACE){arS=argToString(ar,2); +if(typeof l=='undefined'||!(l=l.ovload))rtnVal=eval(fnHookTo+'('+arS+')');else rtnVal=eval('l('+arS+')'); +}else if(hookType==FBEFORE||hookType==FAFTER){if(typeof l!='undefined'){l=(hookType==1?l.before:l.after); +if(l.length){arS=argToString(ar,2);for(var k=0;k0;k--)if((rtnVal=eval('l[k-1]('+arS+')'))!=void(0))break;} +return rtnVal;} +function FunctionReference(){this.ovload=null;this.before=new Array();this.after=new Array();this.alt=new Array();this.chain=new Array();} +function Info(version,prerelease){this.version=version;this.prerelease=prerelease; +this.simpleversion=Math.round(this.version*100);this.major=parseInt(this.simpleversion/100);this.minor=parseInt(this.simpleversion/10)-this.major * 10;this.revision=parseInt(this.simpleversion)-this.major * 100-this.minor * 10;this.meets=meets;} +function meets(reqdVersion){return(!reqdVersion)?false:this.simpleversion>=Math.round(100*parseFloat(reqdVersion));} +registerHook("ol_content_simple",ol_content_simple,FALTERNATE,CSSOFF);registerHook("ol_content_caption",ol_content_caption,FALTERNATE,CSSOFF);registerHook("ol_content_background",ol_content_background,FALTERNATE,CSSOFF);registerHook("ol_content_simple",ol_content_simple,FALTERNATE,CSSCLASS);registerHook("ol_content_caption",ol_content_caption,FALTERNATE,CSSCLASS);registerHook("ol_content_background",ol_content_background,FALTERNATE,CSSCLASS);registerPostParseFunction(checkPositionFlags);registerHook("hideObject",nbspCleanup,FAFTER);registerHook("horizontalPlacement",horizontalPlacement,FCHAIN);registerHook("verticalPlacement",verticalPlacement,FCHAIN);if(olNs4||(olIe5&&isMac)||olKq)olLoaded=1;registerNoParameterCommands('sticky,autostatus,autostatuscap,fullhtml,hauto,vauto,closeclick,wrap,followmouse,mouseoff,compatmode'); +var olCheckMouseCapture=true;if((olNs4||olNs6||olIe4)){olMouseCapture();}else{overlib=no_overlib;nd=no_overlib;ver3fix=true;} diff --git a/packages/phocadownload/components/com_phocadownload/assets/plupload/i18n/cs.js b/packages/phocadownload/components/com_phocadownload/assets/plupload/i18n/cs.js new file mode 100644 index 00000000..1ee5d5fc --- /dev/null +++ b/packages/phocadownload/components/com_phocadownload/assets/plupload/i18n/cs.js @@ -0,0 +1,14 @@ +// .po file like language pack +plupload.addI18n({ + 'Select files' : 'Vyberte soubory', + 'Add files to the upload queue and click the start button.' : 'Přidejte soubory do fronty a pak spusťte nahrávání.', + 'Filename' : 'Název souboru', + 'Status' : 'Status', + 'Size' : 'Velikost', + 'Add Files' : 'Přidat soubory', + 'Stop current upload' : 'Zastavit nahrávání', + 'Start uploading queue' : 'Spustit frontu nahrávání', + 'Drag files here.' : 'Sem přetáhněte soubory.', + 'Start Upload': 'Spustit nahrávání', + 'Uploaded %d/%d files': 'Nahráno %d/%d souborů' +}); \ No newline at end of file diff --git a/packages/phocadownload/components/com_phocadownload/assets/plupload/i18n/da.js b/packages/phocadownload/components/com_phocadownload/assets/plupload/i18n/da.js new file mode 100644 index 00000000..fc958965 --- /dev/null +++ b/packages/phocadownload/components/com_phocadownload/assets/plupload/i18n/da.js @@ -0,0 +1,12 @@ +// .po file like language pack +plupload.addI18n({ + 'Select files' : 'Vælg filer', + 'Add files to the upload queue and click the start button.' : 'Tilføj filer til køen, og tryk på start.', + 'Filename' : 'Filnavn', + 'Status' : 'Status', + 'Size' : 'Størrelse', + 'Add files' : 'Tilføj filer', + 'Stop current upload' : 'Stop upload', + 'Start uploading queue' : 'Start upload', + 'Drag files here.' : 'Træk filer her.' +}); \ No newline at end of file diff --git a/packages/phocadownload/components/com_phocadownload/assets/plupload/i18n/de.js b/packages/phocadownload/components/com_phocadownload/assets/plupload/i18n/de.js new file mode 100644 index 00000000..4c4de07a --- /dev/null +++ b/packages/phocadownload/components/com_phocadownload/assets/plupload/i18n/de.js @@ -0,0 +1,24 @@ +// German +plupload.addI18n({ + 'Select files' : 'Dateien hochladen', + 'Add files to the upload queue and click the start button.' : 'Dateien hinzufügen und auf \'Hochladen\' klicken.', + 'Filename' : 'Dateiname', + 'Status' : 'Status', + 'Size' : 'Größe', + 'Add files' : 'Dateien', // hinzufügen', + 'Stop current upload' : 'Aktuelles Hochladen stoppen', + 'Start uploading queue' : 'Hochladen starten', + 'Uploaded %d/%d files': '%d/%d Dateien sind hochgeladen', + 'N/A' : 'Nicht verfügbar', + 'Drag files here.' : 'Ziehen Sie die Dateien hier hin', + 'File extension error.': 'Fehler bei Dateiendung', + 'File size error.': 'Fehler bei Dateigröße', + 'Init error.': 'Initialisierungsfehler', + 'HTTP Error.': 'HTTP-Fehler', + 'Security error.': 'Sicherheitsfehler', + 'Generic error.': 'Typischer Fehler', + 'IO error.': 'Ein/Ausgabe-Fehler', + 'Stop Upload': 'Hochladen stoppen', + 'Start upload': 'Hochladen', + '%d files queued': '%d Dateien in der Warteschlange' +}); \ No newline at end of file diff --git a/packages/phocadownload/components/com_phocadownload/assets/plupload/i18n/el.js b/packages/phocadownload/components/com_phocadownload/assets/plupload/i18n/el.js new file mode 100644 index 00000000..aafbaf19 --- /dev/null +++ b/packages/phocadownload/components/com_phocadownload/assets/plupload/i18n/el.js @@ -0,0 +1,14 @@ +// Greek +plupload.addI18n({ + 'Select files' : 'Επιλέξτε Αρχεία', + 'Add files to the upload queue and click the start button.' : 'Προσθήκη αρχείων στην ουρά μεταφόρτωσης', + 'Filename' : 'Όνομα αρχείου', + 'Status' : 'Κατάσταση', + 'Size' : 'Μέγεθος', + 'Add Files' : 'Προσθέστε αρχεία', + 'Stop current upload' : 'Διακοπή τρέχουσας μεταφόρτωσης', + 'Start uploading queue' : 'Εκκίνηση μεταφόρτωσης ουράς αρχείων', + 'Drag files here.' : 'Σύρετε αρχεία εδώ', + 'Start Upload': 'Εκκίνηση μεταφόρτωσης', + 'Uploaded %d/%d files': 'Ανέβηκαν %d/%d αρχεία' +}); \ No newline at end of file diff --git a/packages/phocadownload/components/com_phocadownload/assets/plupload/i18n/es.js b/packages/phocadownload/components/com_phocadownload/assets/plupload/i18n/es.js new file mode 100644 index 00000000..2379421f --- /dev/null +++ b/packages/phocadownload/components/com_phocadownload/assets/plupload/i18n/es.js @@ -0,0 +1,25 @@ +// Spanish +plupload.addI18n({ + 'Select files' : 'Elija archivos:', + 'Add files to the upload queue and click the start button.' : 'Agregue archivos a la cola de subida y haga click en el boton de iniciar.', + 'Filename' : 'Nombre de archivo', + 'Status' : 'Estado', + 'Size' : 'Tamaño', + 'Add files' : 'Agregue archivos', + 'Stop current upload' : 'Detener subida actual', + 'Start uploading queue' : 'Iniciar subida de cola', + 'Uploaded %d/%d files': 'Subidos %d/%d archivos', + 'N/A' : 'No disponible', + 'Drag files here.' : 'Arrastre archivos aquí', + 'File extension error.': 'Error de extensión de archivo.', + 'File size error.': 'Error de tamaño de archivo.', + 'Init error.': 'Error de inicialización.', + 'HTTP Error.': 'Error de HTTP.', + 'Security error.': 'Error de seguridad.', + 'Generic error.': 'Error genérico.', + 'IO error.': 'Error de entrada/salida.', + 'Stop Upload': 'Detener Subida.', + 'Add Files': 'Agregar Archivos', + 'Start Upload': 'Comenzar Subida.', + '%d files queued': '%d archivos en cola.' +}); \ No newline at end of file diff --git a/packages/phocadownload/components/com_phocadownload/assets/plupload/i18n/et.js b/packages/phocadownload/components/com_phocadownload/assets/plupload/i18n/et.js new file mode 100644 index 00000000..a4a5e3aa --- /dev/null +++ b/packages/phocadownload/components/com_phocadownload/assets/plupload/i18n/et.js @@ -0,0 +1,33 @@ +// Estonian translation, et.js +plupload.addI18n({ + 'Select files' : 'Vali faile', + 'Add files to the upload queue and click the start button.' : 'Lisa failid üleslaadimise järjekorda ja klõpsa alustamise nupule.', + 'Filename' : 'Failinimi', + 'Status' : 'Olek', + 'Size' : 'Suurus', + 'Add files' : 'Lisa faile', + 'Stop current upload' : 'Praeguse üleslaadimise peatamine', + 'Start uploading queue' : 'Järjekorras ootavate failide üleslaadimise alustamine', + 'Drag files here.' : 'Lohista failid siia.', + 'Start upload' : 'Alusta üleslaadimist', + 'Uploaded %d/%d files': 'Üles laaditud %d/%d', + 'Stop upload': 'Peata üleslaadimine', + 'Start upload': 'Alusta üleslaadimist', + '%d files queued': 'Järjekorras on %d faili', + 'File: %s': 'Fail: %s', + 'Close': 'Sulge', + 'Using runtime: ': 'Kasutatakse varianti: ', + 'File: %f, size: %s, max file size: %m': 'Fail: %f, suurus: %s, suurim failisuurus: %m', + 'Upload element accepts only %d file(s) at a time. Extra files were stripped.': 'Üleslaadimise element saab vastu võtta ainult %d faili ühe korraga. Ülejäänud failid jäetakse laadimata.', + 'Upload URL might be wrong or doesn\'t exist': 'Üleslaadimise URL võib olla vale või seda pole', + 'Error: File too large: ': 'Viga: fail on liiga suur: ', + 'Error: Invalid file extension: ': 'Viga: sobimatu faililaiend: ', + 'File extension error.': 'Faililaiendi viga.', + 'File size error.': 'Failisuuruse viga.', + 'File count error.': 'Failide arvu viga.', + 'Init error.': 'Lähtestamise viga.', + 'HTTP Error.': 'HTTP ühenduse viga.', + 'Security error.': 'Turvaviga.', + 'Generic error.': 'Üldine viga.', + 'IO error.': 'S/V (I/O) viga.' +}); \ No newline at end of file diff --git a/packages/phocadownload/components/com_phocadownload/assets/plupload/i18n/fa.js b/packages/phocadownload/components/com_phocadownload/assets/plupload/i18n/fa.js new file mode 100644 index 00000000..af36e228 --- /dev/null +++ b/packages/phocadownload/components/com_phocadownload/assets/plupload/i18n/fa.js @@ -0,0 +1,37 @@ +// Persian +plupload.addI18n({ + 'Select files' : 'انتخاب فایل', + 'Add files to the upload queue and click the start button.' : 'اضافه کنید فایل ها را به صف آپلود و دکمه شروع را کلیک کنید.', + 'Filename' : 'نام فایل', + 'Status' : 'وضعیت', + 'Size' : 'سایز', + 'Add Files' : 'افزودن فایل', + 'Stop Upload' : 'توقف انتقال', + 'Start Upload' : 'شروع انتقال', + 'Add files' : 'افزودن فایل', + 'Add files.' : 'افزودن فایل', + 'Stop current upload' : 'توقف انتقال جاری', + 'Start uploading queue' : 'شروع صف انتقال', + 'Stop upload' : 'توقف انتقال', + 'Start upload' : 'شروع انتقال', + 'Uploaded %d/%d files': 'منتقل شد %d/%d از فایلها', + 'N/A' : 'N/A', + 'Drag files here.' : 'بکشید فایل ها رو به اینجا', + 'File extension error.': 'خطا پیشوند فایل', + 'File size error.': 'خطای سایز فایل', + 'File count error.': 'خطای تعداد فایل', + 'Init error.': 'خطا در استارت اسکریپت', + 'HTTP Error.': 'HTTP خطای', + 'Security error.': 'خطای امنیتی', + 'Generic error.': 'خطای عمومی', + 'IO error.': 'IO خطای', + 'File: %s': ' فایل ها : %s', + 'Close': 'بستن', + '%d files queued': '%d فایل در صف', + 'Using runtime: ': 'استفاده میکنید از : ', + 'File: %f, size: %s, max file size: %m': فایل: %f, سایز: %s, بزرگترین سایز فایل: %m', + 'Upload element accepts only %d file(s) at a time. Extra files were stripped.': 'عنصر بارگذار فقط %d فایل رو در یک زمان می پذیرد. سایر فایل ها مجرد از این موضوع هستند.', + 'Upload URL might be wrong or doesn\'t exist': 'آدرس آپلود اشتباه می باشد یا وجود ندارد', + 'Error: File too large: ': 'خطا: فایل حجیم است :: ', + 'Error: Invalid file extension: ': 'خطا پسوند فایل معتبر نمی باشد : ' +}); diff --git a/packages/phocadownload/components/com_phocadownload/assets/plupload/i18n/fi.js b/packages/phocadownload/components/com_phocadownload/assets/plupload/i18n/fi.js new file mode 100644 index 00000000..12a639ef --- /dev/null +++ b/packages/phocadownload/components/com_phocadownload/assets/plupload/i18n/fi.js @@ -0,0 +1,33 @@ +// .fi file like language pack +plupload.addI18n({ + 'Select files' : 'Valitse tiedostoja', + 'Add files to the upload queue and click the start button.' : 'Lisää tiedostoja latausjonoon ja klikkaa aloita-nappia.', + 'Filename' : 'Tiedostonimi', + 'Status' : 'Tila', + 'Size' : 'Koko', + 'Add files' : 'Lisää tiedostoja', + 'Stop current upload' : 'Pysäytä nykyinen lataus', + 'Start uploading queue' : 'Aloita jonon lataus', + 'Drag files here.' : 'Raahaa tiedostot tänne.', + 'Start upload' : 'Aloita lataus', + 'Uploaded %d/%d files': 'Ladattu %d/%d tiedostoa', + 'Stop upload': 'Pysäytä lataus', + 'Start upload': 'Aloita lataus', + '%d files queued': '%d tiedostoa jonossa', + 'File: %s': 'Tiedosto: %s', + 'Close': 'Sulje', + 'Using runtime: ': 'Käytetään ajonaikaista: ', + 'File: %f, size: %s, max file size: %m': 'Tiedosto: %f, koko: %s, maksimi tiedostokoko: %m', + 'Upload element accepts only %d file(s) at a time. Extra files were stripped.': 'Latauselementti sallii ladata vain %d tiedosto(a) kerrallaan. Ylimääräiset tiedostot ohitettiin.', + 'Upload URL might be wrong or doesn\'t exist': 'Lataus URL saattaa olla väärin tai ei ole olemassa', + 'Error: File too large: ': 'Virhe: Tiedosto liian suuri: ', + 'Error: Invalid file extension: ': 'Virhe: Kelpaamaton tiedostopääte: ', + 'File extension error.': 'Tiedostopäätevirhe.', + 'File size error.': 'Tiedostokokovirhe.', + 'File count error.': 'Tiedostolaskentavirhe.', + 'Init error.': 'Init virhe.', + 'HTTP Error.': 'HTTP virhe.', + 'Security error.': 'Tietoturvavirhe.', + 'Generic error.': 'Yleinen virhe.', + 'IO error.': 'I/O virhe.' +}); \ No newline at end of file diff --git a/packages/phocadownload/components/com_phocadownload/assets/plupload/i18n/fr-ca.js b/packages/phocadownload/components/com_phocadownload/assets/plupload/i18n/fr-ca.js new file mode 100644 index 00000000..61aba239 --- /dev/null +++ b/packages/phocadownload/components/com_phocadownload/assets/plupload/i18n/fr-ca.js @@ -0,0 +1,35 @@ +// French-Canadian +plupload.addI18n({ + 'Select files' : 'Sélectionnez les fichiers', + 'Add files to the upload queue and click the start button.' : 'Ajoutez des fichiers à la file d\'attente et appuyez sur le bouton démarrer.', + 'Filename' : 'Nom du fichier', + 'Status' : 'Statut', + 'Size' : 'Taille', + 'Add files' : 'Ajouter Fichiers', + 'Stop current upload' : 'Arrêter le téléversement actuel', + 'Start uploading queue' : 'Démarrer le téléversement', + 'Uploaded %d/%d files': '%d/%d fichiers envoyés', + 'N/A' : 'Non applicable', + 'Drag files here.' : 'Glisser-déposer les fichiers ici', + 'File extension error.': 'Erreur d\'extension de fichier', + 'File size error.': 'Erreur de taille de fichier', + 'Init error.': 'Erreur d\'initialisation', + 'HTTP Error.': 'Erreur HTTP', + 'Security error.': 'Erreur de sécurité', + 'Generic error.': 'Erreur commune', + 'IO error.': 'Erreur E/S', + 'Stop Upload': 'Arrêter le téléversement', + 'Add Files': 'Ajouter des fichiers', + 'Start upload': 'Démarrer le téléversement', + '%d files queued': '%d fichiers en attente', + 'File: %s':'Fichier: %s', + 'Close':'Fermer', + 'Using runtime:':'Moteur logiciel:', + 'File: %f, size: %s, max file size: %m':'Fichier: %f, poids: %s, poids maximal: %m', + 'Upload element accepts only %d file(s) at a time. Extra files were stripped.':'La file accepte %d fichier(s) à la fois. Les fichiers en trop sont ignorés', + 'Upload URL might be wrong or doesn\'t exist':'L\'URL de téléversement est erroné ou inexistant', + 'Error: File to large: ':'Fichier trop volumineux: ', + 'Error: Invalid file extension: ':'Extension de fichier invalide: ', + 'File size error.':'Erreur de taile de fichier', + 'File count error.':'Erreur de décompte des fichiers' +}); \ No newline at end of file diff --git a/packages/phocadownload/components/com_phocadownload/assets/plupload/i18n/fr.js b/packages/phocadownload/components/com_phocadownload/assets/plupload/i18n/fr.js new file mode 100644 index 00000000..53dbe289 --- /dev/null +++ b/packages/phocadownload/components/com_phocadownload/assets/plupload/i18n/fr.js @@ -0,0 +1,25 @@ +// French +plupload.addI18n({ + 'Select files' : 'Sélectionnez les fichiers', + 'Add files to the upload queue and click the start button.' : 'Ajoutez des fichiers à la file et appuyez sur le bouton démarrer.', + 'Filename' : 'Nom de fichier', + 'Status' : 'Status', + 'Size' : 'Taille', + 'Add files' : 'Ajouter Fichiers', + 'Stop current upload' : 'Arrêter l\'envoi en cours', + 'Start uploading queue' : 'Démarrer l\'envoi', + 'Uploaded %d/%d files': '%d/%d fichiers envoyés', + 'N/A' : 'Non applicable', + 'Drag files here.' : 'Déposer les fichiers ici.', + 'File extension error.': 'Erreur extension fichier', + 'File size error.': 'Erreur taille fichier.', + 'Init error.': 'Erreur d\'initialisation.', + 'HTTP Error.': 'Erreur HTTP.', + 'Security error.': 'Erreur de sécurité.', + 'Generic error.': 'Erreur générique.', + 'IO error.': 'Erreur E/S.', + 'Stop Upload': 'Arrêter les envois.', + 'Add Files': 'Ajouter des fichiers', + 'Start Upload': 'Démarrer les envois.', + '%d files queued': '%d fichiers en attente.' +}); \ No newline at end of file diff --git a/packages/phocadownload/components/com_phocadownload/assets/plupload/i18n/hr.js b/packages/phocadownload/components/com_phocadownload/assets/plupload/i18n/hr.js new file mode 100644 index 00000000..084be51c --- /dev/null +++ b/packages/phocadownload/components/com_phocadownload/assets/plupload/i18n/hr.js @@ -0,0 +1,25 @@ +// Croatian +plupload.addI18n({ + 'Select files': 'Izaberite datoteke:', + 'Add files to the upload queue and click the start button.': 'Dodajte datoteke u listu i kliknite Upload.', + 'Filename': 'Ime datoteke', + 'Status': 'Status', + 'Size': 'Veličina', + 'Add files': 'Dodajte datoteke', + 'Stop current upload': 'Zaustavi trenutan upload', + 'Start uploading queue': 'Pokreni Upload', + 'Uploaded %d/%d files': 'Uploadano %d/%d datoteka', + 'N/A': 'N/A', + 'Drag files here.': 'Dovucite datoteke ovdje', + 'File extension error.': 'Greška ekstenzije datoteke.', + 'File size error.': 'Greška veličine datoteke.', + 'Init error.': 'Greška inicijalizacije.', + 'HTTP Error.': 'HTTP greška.', + 'Security error.': 'Sigurnosna greška.', + 'Generic error.': 'Generička greška.', + 'IO error.': 'I/O greška.', + 'Stop Upload': 'Zaustavi upload.', + 'Add Files': 'Dodaj datoteke', + 'Start Upload': 'Pokreni upload.', + '%d files queued': '%d datoteka na čekanju.' +}); \ No newline at end of file diff --git a/packages/phocadownload/components/com_phocadownload/assets/plupload/i18n/hu.js b/packages/phocadownload/components/com_phocadownload/assets/plupload/i18n/hu.js new file mode 100644 index 00000000..87070bae --- /dev/null +++ b/packages/phocadownload/components/com_phocadownload/assets/plupload/i18n/hu.js @@ -0,0 +1,33 @@ +// Hungarian +plupload.addI18n({ + 'Select files' : 'Fájlok kiválasztása', + 'Add files to the upload queue and click the start button.' : 'Válaszd ki a fájlokat, majd kattints az Indítás gombra.', + 'Filename' : 'Fájlnév', + 'Status' : 'Állapot', + 'Size' : 'Méret', + 'Add files' : 'Hozzáadás', + 'Stop current upload' : 'Jelenlegi feltöltés megszakítása', + 'Start uploading queue' : 'Várakozási sor feltöltésének indítása', + 'Uploaded %d/%d files': 'Feltöltött fájlok: %d/%d', + 'N/A': 'Nem elérhető', + 'Drag files here.' : 'Húzd ide a fájlokat.', + 'Stop upload': 'Feltöltés megszakítása', + 'Start upload': 'Indítás', + '%d files queued': '%d fájl sorbaállítva', + 'File: %s': 'Fájl: %s', + 'Close': 'Bezárás', + 'Using runtime: ': 'Használt runtime: ', + 'File: %f, size: %s, max file size: %m': 'Fájl: %f, méret: %s, maximális fájlméret: %m', + 'Upload element accepts only %d file(s) at a time. Extra files were stripped.': 'A feltöltés egyszerre csak %d fájlt fogad el, a többi fájl nem lesz feltöltve.', + 'Upload URL might be wrong or doesn\'t exist': 'A megadott URL hibás vagy nem létezik', + 'Error: File too large: ': 'Hiba: A fájl túl nagy: ', + 'Error: Invalid file extension: ': 'Hiba: Érvénytelen fájlkiterjesztés: ', + 'File extension error.': 'Hibás fájlkiterjesztés.', + 'File size error.': 'Hibás fájlméret.', + 'File count error.': 'A fájlok számával kapcsolatos hiba.', + 'Init error.': 'Init hiba.', + 'HTTP Error.': 'HTTP hiba.', + 'Security error.': 'Biztonsági hiba.', + 'Generic error.': 'Általános hiba.', + 'IO error.': 'I/O hiba.' +}); diff --git a/packages/phocadownload/components/com_phocadownload/assets/plupload/i18n/index.html b/packages/phocadownload/components/com_phocadownload/assets/plupload/i18n/index.html new file mode 100644 index 00000000..fa6d84e8 --- /dev/null +++ b/packages/phocadownload/components/com_phocadownload/assets/plupload/i18n/index.html @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/phocadownload/components/com_phocadownload/assets/plupload/i18n/it.js b/packages/phocadownload/components/com_phocadownload/assets/plupload/i18n/it.js new file mode 100644 index 00000000..891e4fb0 --- /dev/null +++ b/packages/phocadownload/components/com_phocadownload/assets/plupload/i18n/it.js @@ -0,0 +1,24 @@ +// Italian +plupload.addI18n({ + 'Select files' : 'Seleziona i files', + 'Add files to the upload queue and click the start button.' : 'Aggiungi i file alla coda di caricamento e clicca il pulsante di avvio.', + 'Filename' : 'Nome file', + 'Status' : 'Stato', + 'Size' : 'Dimensione', + 'Add Files' : 'Aggiungi file', + 'Stop current upload' : 'Interrompi il caricamento', + 'Start uploading queue' : 'Avvia il caricamento', + 'Uploaded %d/%d files': 'Caricati %d/%d file', + 'N/A' : 'N/D', + 'Drag files here.' : 'Trascina i file qui.', + 'File extension error.': 'Errore estensione file.', + 'File size error.': 'Errore dimensione file.', + 'Init error.': 'Errore inizializzazione.', + 'HTTP Error.': 'Errore HTTP.', + 'Security error.': 'Errore sicurezza.', + 'Generic error.': 'Errore generico.', + 'IO error.': 'Errore IO.', + 'Stop Upload': 'Ferma Upload', + 'Start Upload': 'Inizia Upload', + '%d files queued': '%d file in lista' +}); \ No newline at end of file diff --git a/packages/phocadownload/components/com_phocadownload/assets/plupload/i18n/ja.js b/packages/phocadownload/components/com_phocadownload/assets/plupload/i18n/ja.js new file mode 100644 index 00000000..02c85aee --- /dev/null +++ b/packages/phocadownload/components/com_phocadownload/assets/plupload/i18n/ja.js @@ -0,0 +1,37 @@ +// Japanese +plupload.addI18n({ + 'Select files' : 'ファイル選択', + 'Add files to the upload queue and click the start button.' : 'ファイルをアップロードキューに追加してスタートボタンをクリックしてください', + 'Filename' : 'ファイル名', + 'Status' : 'ステータス', + 'Size' : 'サイズ', + 'Add Files' : 'ファイルを追加', + 'Stop Upload' : 'アップロード停止', + 'Start Upload' : 'アップロード', + 'Add files' : 'ファイルを追加', + 'Add files.' : 'ファイルを追加', + 'Stop current upload' : '現在のアップロードを停止', + 'Start uploading queue' : 'アップロード', + 'Stop upload' : 'アップロード停止', + 'Start upload' : 'アップロード', + 'Uploaded %d/%d files': 'アップロード中 %d/%d ファイル', + 'N/A' : 'N/A', + 'Drag files here.' : 'ここにファイルをドラッグ', + 'File extension error.': 'ファイル拡張子エラー', + 'File size error.': 'ファイルサイズエラー', + 'File count error.': 'ファイル数エラー', + 'Init error.': 'イニシャライズエラー', + 'HTTP Error.': 'HTTP エラー', + 'Security error.': 'セキュリティエラー', + 'Generic error.': 'エラー', + 'IO error.': 'IO エラー', + 'File: %s': 'ファイル: %s', + 'Close': '閉じる', + '%d files queued': '%d ファイルが追加されました', + 'Using runtime: ': 'モード: ', + 'File: %f, size: %s, max file size: %m': 'ファイル: %f, サイズ: %s, 最大ファイルサイズ: %m', + 'Upload element accepts only %d file(s) at a time. Extra files were stripped.': 'アップロード可能なファイル数は %d です。余分なファイルは削除されました', + 'Upload URL might be wrong or doesn\'t exist': 'アップロード先の URL が存在しません', + 'Error: File too large: ': 'エラー: サイズが大きすぎます: ', + 'Error: Invalid file extension: ': 'エラー: 拡張子が許可されていません: ' +}); diff --git a/packages/phocadownload/components/com_phocadownload/assets/plupload/i18n/ko.js b/packages/phocadownload/components/com_phocadownload/assets/plupload/i18n/ko.js new file mode 100644 index 00000000..a2c5e66e --- /dev/null +++ b/packages/phocadownload/components/com_phocadownload/assets/plupload/i18n/ko.js @@ -0,0 +1,36 @@ +// Republic of Korea +plupload.addI18n({ + 'Select files' : '파일 선택', + 'Add files to the upload queue and click the start button.' : '파일을 업로드 큐에 추가하여 시작 버튼을 클릭하십시오.', + 'Filename' : '파일 이름', + 'Status' : '상태', + 'Size' : '크기', + 'Add Files' : '파일 추가', + 'Stop Upload': '업로드 중지', + 'Start Upload': '업로드', + 'Add files': '파일 추가', + 'Stop current upload': '현재 업로드를 정지', + 'Start uploading queue': '업로드', + 'Stop upload': '업로드 중지', + 'Start upload': '업로드', + 'Uploaded % d / % d files': '업로드 중 % d / % d 파일', + 'N / A': 'N / A', + 'Drag files here': '여기에 파일을 드래그', + 'File extension error': '파일 확장자 오류', + 'File size error': '파일 크기 오류', + 'File count error': '이미지 : 오류', + 'Init error': '초기화 오류', + 'HTTP Error': 'HTTP 오류', + 'Security error': '보안 오류', + 'Generic error': '오류', + 'IO error': 'IO 오류', + 'File : % s': '파일 % s', + 'Close': '닫기', + '% d files queued': '% d 파일이 추가되었습니다', + 'Using runtime :': '모드', + 'File : % f, size : % s, max file size : % m': '파일 : % f, 크기 : % s, 최대 파일 크기 : % m', + 'Upload element accepts only % d file (s) at a time. Extra files were stripped': '업로드 가능한 파일의 수는 % d입니다. 불필요한 파일은 삭제되었습니다 ', + 'Upload URL might be wrong or doesn \'t exist ':'업로드할 URL이 존재하지 않습니다 ', + 'Error : File too large :': '오류 : 크기가 너무 큽니다', + 'Error : Invalid file extension :': '오류 : 확장자가 허용되지 않습니다 :' +}); \ No newline at end of file diff --git a/packages/phocadownload/components/com_phocadownload/assets/plupload/i18n/lv.js b/packages/phocadownload/components/com_phocadownload/assets/plupload/i18n/lv.js new file mode 100644 index 00000000..2a040452 --- /dev/null +++ b/packages/phocadownload/components/com_phocadownload/assets/plupload/i18n/lv.js @@ -0,0 +1,33 @@ +// .lv file like language pack +plupload.addI18n({ + 'Select files' : 'Izvēlieties failus', + 'Add files to the upload queue and click the start button.' : 'Pieveinojiet failus rindai un klikšķiniet uz "Sākt augšupielādi" pogas.', + 'Filename' : 'Faila nosaukums', + 'Status' : 'Statuss', + 'Size' : 'Izmērs', + 'Add files' : 'Pievienot failus', + 'Stop current upload' : 'Apturēt pašreizējo augšupielādi', + 'Start uploading queue' : 'Sākt augšupielādi', + 'Drag files here.' : 'Ievelciet failus šeit', + 'Start upload' : 'Sākt augšupielādi', + 'Uploaded %d/%d files': 'Augšupielādēti %d/%d faili', + 'Stop upload': 'Pārtraukt augšupielādi', + 'Start upload': 'Sākt augšupielādi', + '%d files queued': '%d faili pievienoti rindai', + 'File: %s': 'Fails: %s', + 'Close': 'Aizvērt', + 'Using runtime: ': 'Lieto saskarni: ', + 'File: %f, size: %s, max file size: %m': 'Fails: %f, izmērs: %s, maksimālais faila izmērs: %m', + 'Upload element accepts only %d file(s) at a time. Extra files were stripped.': 'Iespējams ielādēt tikai %d failus vienā reizē. Atlikušie faili netika pievienoti', + 'Upload URL might be wrong or doesn\'t exist': 'Augšupielādes URL varētu būt nepareizs vai neeksistē', + 'Error: File too large: ': 'Kļūda: Fails pārāk liels: ', + 'Error: Invalid file extension: ': 'Kļūda: Nekorekts faila paplašinājums:', + 'File extension error.': 'Faila paplašinājuma kļūda.', + 'File size error.': 'Faila izmēra kļūda.', + 'File count error.': 'Failu skaita kļūda', + 'Init error.': 'Inicializācijas kļūda.', + 'HTTP Error.': 'HTTP kļūda.', + 'Security error.': 'Drošības kļūda.', + 'Generic error.': 'Vispārēja rakstura kļūda.', + 'IO error.': 'Ievades/Izvades kļūda.' +}); \ No newline at end of file diff --git a/packages/phocadownload/components/com_phocadownload/assets/plupload/i18n/nl.js b/packages/phocadownload/components/com_phocadownload/assets/plupload/i18n/nl.js new file mode 100644 index 00000000..8372c88b --- /dev/null +++ b/packages/phocadownload/components/com_phocadownload/assets/plupload/i18n/nl.js @@ -0,0 +1,21 @@ +// Dutch +plupload.addI18n({ + 'Select files' : 'Selecteer bestand(en):', + 'Add files to the upload queue and click the start button.' : 'Voeg bestanden toe aan de wachtrij en druk op \'Start\'.', + 'Filename' : 'Bestandsnaam', + 'Status' : 'Status', + 'Size' : 'Grootte', + 'Add files' : 'Voeg bestanden toe', + 'Stop current upload' : 'Stop upload', + 'Start uploading queue' : 'Start upload', + 'Uploaded %d/%d files': '%d/%d bestanden ge-upload', + 'N/A' : 'Niet beschikbaar', + 'Drag files here.' : 'Sleep bestanden hierheen.', + 'File extension error.': 'Ongeldig bestandstype.', + 'File size error.': 'Bestandsgrootte Error.', + 'Init error.': 'Initialisatie error.', + 'HTTP Error.': 'HTTP Error.', + 'Security error.': 'Beveiliging error.', + 'Generic error.': 'Onbekende error.', + 'IO error.': 'IO error.' +}); \ No newline at end of file diff --git a/packages/phocadownload/components/com_phocadownload/assets/plupload/i18n/pl.js b/packages/phocadownload/components/com_phocadownload/assets/plupload/i18n/pl.js new file mode 100644 index 00000000..3d1b9bea --- /dev/null +++ b/packages/phocadownload/components/com_phocadownload/assets/plupload/i18n/pl.js @@ -0,0 +1,24 @@ +plupload.addI18n({ +'Select files' : 'Wybierz pliki:', +'Add files to the upload queue and click the start button.' : 'Dodaj pliki i kliknij \'Rozpocznij transfer\'.', +'Filename' : 'Nazwa pliku', +'Status' : 'Status', +'Size' : 'Rozmiar', +'Add files' : 'Dodaj pliki', +'Stop current upload' : 'Przerwij aktualny transfer', +'Start uploading queue' : 'Rozpocznij wysyłanie', +'Uploaded %d/%d files': 'Wysłano %d/%d plików', +'N/A' : 'Nie dostępne', +'Drag files here.' : 'Przeciągnij tu pliki', +'File extension error.': 'Nieobsługiwany format pliku.', +'File size error.': 'Plik jest zbyt duży.', +'Init error.': 'Błąd inicjalizacji.', +'HTTP Error.': 'Błąd HTTP.', +'Security error.': 'Błąd bezpieczeństwa.', +'Generic error.': 'Błąd ogólny.', +'IO error.': 'Błąd IO.', +'Stop Upload': 'Przerwij transfer.', +'Add Files': 'Dodaj pliki', +'Start upload': 'Rozpocznij transfer.', +'%d files queued': '%d plików w kolejce.' +}); diff --git a/packages/phocadownload/components/com_phocadownload/assets/plupload/i18n/pt-br.js b/packages/phocadownload/components/com_phocadownload/assets/plupload/i18n/pt-br.js new file mode 100644 index 00000000..9f34a64a --- /dev/null +++ b/packages/phocadownload/components/com_phocadownload/assets/plupload/i18n/pt-br.js @@ -0,0 +1,35 @@ +// Brazilian Portuguese +plupload.addI18n({ + 'Select files' : 'Escolha os arquivos', + 'Add files to the upload queue and click the start button.' : 'Adicione os arquivos abaixo e clique no botão "Iniciar o envio".', + 'Filename' : 'Nome do arquivo', + 'Status' : 'Status', + 'Size' : 'Tamanho', + 'Add Files' : 'Adicionar arquivo(s)', + 'Stop Upload' : 'Parar o envio', + 'Start Upload' : 'Iniciar o envio', + 'Add files' : 'Adicionar arquivo(s)', + 'Add files.' : 'Adicionar arquivo(s)', + 'Stop upload' : 'Parar o envio', + 'Start upload' : 'Iniciar o envio', + 'Uploaded %d/%d files': 'Enviado(s) %d/%d arquivo(s)', + 'N/A' : 'N/D', + 'Drag files here.' : 'Arraste os arquivos pra cá', + 'File extension error.': 'Tipo de arquivo não permitido.', + 'File size error.': 'Tamanho de arquivo não permitido.', + 'File count error.': 'Erro na contagem dos arquivos', + 'Init error.': 'Erro inicializando.', + 'HTTP Error.': 'Erro HTTP.', + 'Security error.': 'Erro de segurança.', + 'Generic error.': 'Erro genérico.', + 'IO error.': 'Erro de E/S.', + 'File: %s': 'Arquivo: %s', + 'Close': 'Fechar', + '%d files queued': '%d arquivo(s)', + 'Using runtime: ': 'Usando: ', + 'File: %f, size: %s, max file size: %m': 'Arquivo: %f, tamanho: %s, máximo: %m', + 'Upload element accepts only %d file(s) at a time. Extra files were stripped.': 'Só são aceitos %d arquivos por vez. O que passou disso foi descartado.', + 'Upload URL might be wrong or doesn\'t exist': 'URL de envio está errada ou não existe', + 'Error: File too large: ': 'Erro: Arquivo muito grande: ', + 'Error: Invalid file extension: ': 'Erro: Tipo de arquivo não permitido: ' +}); diff --git a/packages/phocadownload/components/com_phocadownload/assets/plupload/i18n/ro.js b/packages/phocadownload/components/com_phocadownload/assets/plupload/i18n/ro.js new file mode 100644 index 00000000..fd198f0a --- /dev/null +++ b/packages/phocadownload/components/com_phocadownload/assets/plupload/i18n/ro.js @@ -0,0 +1,24 @@ +// Romanian +plupload.addI18n({ + 'Select files' : 'Selectare fişiere', + 'Add files to the upload queue and click the start button.' : 'Adaugă fişiere în lista apoi apasă butonul \'Începe încărcare\'.', + 'Filename' : 'Nume fişier', + 'Status' : 'Stare', + 'Size' : 'Mărime', + 'Add files' : 'Adăugare fişiere', + 'Stop current upload' : 'Întrerupe încărcarea curentă', + 'Start uploading queue' : 'Începe incărcarea', + 'Uploaded %d/%d files': 'Fişiere încărcate %d/%d', + 'N/A' : 'N/A', + 'Drag files here.' : 'Trage aici fişierele', + 'File extension error.': 'Extensie fişier eronată', + 'File size error.': 'Eroare dimensiune fişier', + 'Init error.': 'Eroare iniţializare', + 'HTTP Error.': 'Eroare HTTP', + 'Security error.': 'Eroare securitate', + 'Generic error.': 'Eroare generică', + 'IO error.': 'Eroare Intrare/Ieşire', + 'Stop Upload': 'Oprire încărcare', + 'Start upload': 'Începe încărcare', + '%d files queued': '%d fişiere listate' +}); \ No newline at end of file diff --git a/packages/phocadownload/components/com_phocadownload/assets/plupload/i18n/ru.js b/packages/phocadownload/components/com_phocadownload/assets/plupload/i18n/ru.js new file mode 100644 index 00000000..86469c75 --- /dev/null +++ b/packages/phocadownload/components/com_phocadownload/assets/plupload/i18n/ru.js @@ -0,0 +1,21 @@ +// Russian +plupload.addI18n({ + 'Select files' : 'Выберите файлы', + 'Add files to the upload queue and click the start button.' : 'Добавьте файлы в очередь и нажмите кнопку "Загрузить файлы".', + 'Filename' : 'Имя файла', + 'Status' : 'Статус', + 'Size' : 'Размер', + 'Add files' : 'Добавить файлы', + 'Stop current upload' : 'Остановить загрузку', + 'Start uploading queue' : 'Загрузить файлы', + 'Uploaded %d/%d files': 'Загружено %d/%d файлов', + 'N/A' : 'N/D', + 'Drag files here.' : 'Перетащите файлы сюда.', + 'File extension error.': 'Неправильное расширение файла.', + 'File size error.': 'Неправильный размер файла.', + 'Init error.': 'Ошибка инициализации.', + 'HTTP Error.': 'Ошибка HTTP.', + 'Security error.': 'Ошибка безопасности.', + 'Generic error.': 'Общая ошибка.', + 'IO error.': 'Ошибка ввода-вывода.' +}); \ No newline at end of file diff --git a/packages/phocadownload/components/com_phocadownload/assets/plupload/i18n/sk.js b/packages/phocadownload/components/com_phocadownload/assets/plupload/i18n/sk.js new file mode 100644 index 00000000..8b4b2d95 --- /dev/null +++ b/packages/phocadownload/components/com_phocadownload/assets/plupload/i18n/sk.js @@ -0,0 +1,25 @@ +// .po file like language pack +plupload.addI18n({ + 'Select files' : 'Vyberte súbory', + 'Add files to the upload queue and click the start button.' : 'Pridajte súbory do zoznamu a potom spustite nahrávanie.', + 'Filename' : 'Názov súboru', + 'Status' : 'Stav', + 'Size' : 'Veľkosť', + 'Add files' : 'Pridať súbory', + 'Stop current upload' : 'Zastaviť nahrávanie', + 'Start uploading queue' : 'Spustiť nahrávanie zoznamu', + 'Drag files here.' : 'Sem pretiahnite súbory.', + 'Start upload': 'Spustiť nahrávanie', + 'Uploaded %d/%d files': 'Nahraných %d/%d súborov', + 'Using runtime: ': 'K odoslaniu súborov sa použije rozhranie: ', + 'N/A' : 'N/A', + 'File extension error.': 'Chybný typ súboru.', + 'File size error.': 'Súbor je príliš veľký.', + 'Init error.': 'Chyba inicializácie.', + 'HTTP Error.': 'HTTP Chyba.', + 'Security error.': 'Bezpečnostná Chyba.', + 'Generic error.': 'Chyba.', + 'IO error.': 'IO Chyba', + 'Stop Upload': 'Zastaviť nahrávanie', + '%d files queued': '%d súborov pridaných do zoznamu' +}); \ No newline at end of file diff --git a/packages/phocadownload/components/com_phocadownload/assets/plupload/i18n/sr.js b/packages/phocadownload/components/com_phocadownload/assets/plupload/i18n/sr.js new file mode 100644 index 00000000..59dc0a97 --- /dev/null +++ b/packages/phocadownload/components/com_phocadownload/assets/plupload/i18n/sr.js @@ -0,0 +1,14 @@ +// Serbian +plupload.addI18n({ + 'Select files' : 'Izaberite fajlove', + 'Add files to the upload queue and click the start button.' : 'Dodajte fajlove u listu i kliknite na dugme Start.', + 'Filename' : 'Naziv fajla', + 'Status' : 'Status', + 'Size' : 'Veličina', + 'Add Files' : 'Dodaj fajlove', + 'Stop current upload' : 'Zaustavi upload', + 'Start uploading queue' : 'Počni upload', + 'Drag files here.' : 'Prevucite fajlove ovde.', + 'Start Upload': 'Počni upload', + 'Uploaded %d/%d files': 'Snimljeno %d/%d fajlova' +}); \ No newline at end of file diff --git a/packages/phocadownload/components/com_phocadownload/assets/plupload/i18n/sv.js b/packages/phocadownload/components/com_phocadownload/assets/plupload/i18n/sv.js new file mode 100644 index 00000000..11c75245 --- /dev/null +++ b/packages/phocadownload/components/com_phocadownload/assets/plupload/i18n/sv.js @@ -0,0 +1,12 @@ +// .po file like language pack +plupload.addI18n({ + 'Select files' : 'Välj filer', + 'Add files to the upload queue and click the start button.' : 'Lägg till filer till kön och tryck på start.', + 'Filename' : 'Filnamn', + 'Status' : 'Status', + 'Size' : 'Storlek', + 'Add files' : 'Lägg till filer', + 'Stop current upload' : 'Stoppa uppladdningen', + 'Start uploading queue' : 'Starta uppladdningen', + 'Drag files here.' : 'Dra filer hit' +}); \ No newline at end of file diff --git a/packages/phocadownload/components/com_phocadownload/assets/plupload/index.html b/packages/phocadownload/components/com_phocadownload/assets/plupload/index.html new file mode 100644 index 00000000..fa6d84e8 --- /dev/null +++ b/packages/phocadownload/components/com_phocadownload/assets/plupload/index.html @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/phocadownload/components/com_phocadownload/assets/plupload/jquery.plupload.queue.min.js b/packages/phocadownload/components/com_phocadownload/assets/plupload/jquery.plupload.queue.min.js new file mode 100644 index 00000000..ba8e134b --- /dev/null +++ b/packages/phocadownload/components/com_phocadownload/assets/plupload/jquery.plupload.queue.min.js @@ -0,0 +1,12 @@ +(function(c){var d={};function a(e){return plupload.translate(e)||e}function b(f,e){e.contents().each(function(g,h){h=c(h);if(!h.is(".plupload")){h.remove()}});e.prepend('
'+a("Filename")+'
 
'+a("Size")+'
'+a("Status")+'
+ +
 
 
    + +
    ')}c.fn.pluploadQueue=function(e){if(e){this.each(function(){var j,i,k;i=c(this);k=i.attr("id");if(!k){k=plupload.guid();i.attr("id",k)}j=new plupload.Uploader(c.extend({dragdrop:true,container:k},e));if(e.preinit){e.preinit(j)}d[k]=j;function h(l){var m;if(l.status==plupload.DONE){m="plupload_done"}if(l.status==plupload.FAILED){m="plupload_failed"}if(l.status==plupload.QUEUED){m="plupload_delete"}if(l.status==plupload.UPLOADING){m="plupload_uploading"}c("#"+l.id).attr("class",m).find("a").css("display","block")}function f(){c("span.plupload_total_status",i).html(j.total.percent+"%");c("div.plupload_progress_bar",i).css("width",j.total.percent+"%");c("span.plupload_upload_status",i).text("Uploaded "+j.total.uploaded+"/"+j.files.length+" files");if(j.total.uploaded==j.files.length){j.stop()}}function g(){var m=c("ul.plupload_filelist",i).html(""),n=0,l;c.each(j.files,function(p,o){l="";if(o.status==plupload.DONE){if(o.target_name){l+=''}l+='';l+='';n++;c("#"+k+"_count").val(n)}m.append('
  • '+o.name+'
  • '+plupload.formatSize(o.size)+'
    '+o.percent+'%
     
    '+l+"");h(o);c("#"+o.id+".plupload_delete a").click(function(q){c("#"+o.id).remove();j.removeFile(o);q.preventDefault()})});c("span.plupload_total_file_size",i).html(plupload.formatSize(j.total.size));if(j.total.queued===0){c("span.plupload_add_text",i).text(a("Add files."))}else{c("span.plupload_add_text",i).text(j.total.queued+" files queued.")}c("a.plupload_start",i).toggleClass("plupload_disabled",j.files.length===0);m[0].scrollTop=m[0].scrollHeight;f();if(!j.files.length&&j.features.dragdrop&&j.settings.dragdrop){c("#"+k+"_filelist").append('
  • '+a("Drag files here.")+"
  • ")}}j.bind("UploadFile",function(l,m){c("#"+m.id).addClass("plupload_current_file")});j.bind("Init",function(l,m){b(k,i);if(!e.unique_names&&e.rename){c("#"+k+"_filelist div.plupload_file_name span",i).live("click",function(s){var q=c(s.target),o,r,n,p="";o=l.getFile(q.parents("li")[0].id);n=o.name;r=/^(.+)(\.[^.]+)$/.exec(n);if(r){n=r[1];p=r[2]}q.hide().after('');q.next().val(n).focus().blur(function(){q.show().next().remove()}).keydown(function(u){var t=c(this);if(u.keyCode==13){u.preventDefault();o.name=t.val()+p;q.text(o.name);t.blur()}})})}c("a.plupload_add",i).attr("id",k+"_browse");l.settings.browse_button=k+"_browse";if(l.features.dragdrop&&l.settings.dragdrop){l.settings.drop_element=k+"_filelist";c("#"+k+"_filelist").append('
  • '+a("Drag files here.")+"
  • ")}c("#"+k+"_container").attr("title","Using runtime: "+m.runtime);c("a.plupload_start",i).click(function(n){if(!c(this).hasClass("plupload_disabled")){j.start()}n.preventDefault()});c("a.plupload_stop",i).click(function(n){j.stop();n.preventDefault()});c("a.plupload_start",i).addClass("plupload_disabled")});j.init();if(e.setup){e.setup(j)}j.bind("Error",function(l,o){var m=o.file,n;if(m){n=o.message;if(o.details){n+=" ("+o.details+")"}c("#"+m.id).attr("class","plupload_failed").find("a").css("display","block").attr("title",n)}});j.bind("StateChanged",function(){if(j.state===plupload.STARTED){c("li.plupload_delete a,div.plupload_buttons",i).hide();c("span.plupload_upload_status,div.plupload_progress,a.plupload_stop",i).css("display","block");c("span.plupload_upload_status",i).text("Uploaded 0/"+j.files.length+" files")}else{c("a.plupload_stop,div.plupload_progress",i).hide();c("a.plupload_delete",i).css("display","block")}});j.bind("QueueChanged",g);j.bind("StateChanged",function(l){if(l.state==plupload.STOPPED){g()}});j.bind("FileUploaded",function(l,m){h(m)});j.bind("UploadProgress",function(l,m){c("#"+m.id+" div.plupload_file_status",i).html(m.percent+"%"); +c("#"+m.id+" div.plupload_file_statusbar",i).html('
    ') +h(m);f()})});return this}else{return d[c(this[0]).attr("id")]}}})(jQuery); \ No newline at end of file diff --git a/packages/phocadownload/components/com_phocadownload/assets/plupload/jquery.plupload.queue/css/index.html b/packages/phocadownload/components/com_phocadownload/assets/plupload/jquery.plupload.queue/css/index.html new file mode 100644 index 00000000..fa6d84e8 --- /dev/null +++ b/packages/phocadownload/components/com_phocadownload/assets/plupload/jquery.plupload.queue/css/index.html @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/phocadownload/components/com_phocadownload/assets/plupload/jquery.plupload.queue/css/jquery.plupload.queue.css b/packages/phocadownload/components/com_phocadownload/assets/plupload/jquery.plupload.queue/css/jquery.plupload.queue.css new file mode 100644 index 00000000..84daa6df --- /dev/null +++ b/packages/phocadownload/components/com_phocadownload/assets/plupload/jquery.plupload.queue/css/jquery.plupload.queue.css @@ -0,0 +1,194 @@ +/* + Plupload +------------------------------------------------------------------- */ + +.plupload_button { + /* display: -moz-inline-box; /* FF < 3*//* + display: inline-block; + font: normal 12px sans-serif; + text-decoration: none; + color: #42454a; + border: 1px solid #bababa; + padding: 2px 8px 3px 20px; + margin-right: 4px; + background: #f3f3f3 url('../img/buttons.png') no-repeat 0 center; + outline: 0; + + /* Optional rounded corners for browsers that support it *//* + -moz-border-radius: 3px; + -khtml-border-radius: 3px; + -webkit-border-radius: 3px; + border-radius: 3px;*/ + margin: 5px; +} +.plupload_button i { + margin-left: -5px; + margin-right: 5px; +} +/* +.plupload_button:hover { + color: #000; + text-decoration: none; +}*/ + +.plupload_disabled, a.plupload_disabled:hover { + /*color: #737373; + border-color: #c5c5c5; + background: #ededed url('../img/buttons-disabled.png') no-repeat 0 center;*/ + cursor: default; +} + +.plupload_add { + /*background-position: -181px center;*/ +} + +.plupload_wrapper { + /*font: normal 11px Verdana,sans-serif;*/ + width: 100%; +} + +.plupload_container { + padding: 8px; + /*background: url('../img/transp50.png');*/ + /*-moz-border-radius: 5px;*/ +} + +.plupload_container input { + /*border: 1px solid #DDD;*/ + /*font: normal 11px Verdana,sans-serif;*/ + width: 98%; +} + +.plupload_header {/*background: #2A2C2E url('../img/backgrounds.gif') repeat-x;*/} +.plupload_header_content { + /*background: url('../img/backgrounds.gif') no-repeat 0 -317px; + min-height: 56px; + padding-left: 60px; + color: #FFF;*/ +} +.plupload_header_title { + /*font: normal 18px sans-serif; + padding: 6px 0 3px;*/ +} +.plupload_header_text { + /*font: normal 12px sans-serif;*/ +} + +.plupload_filelist { + margin: 0; + padding: 0; + list-style: none; + border: 1px solid #dddddd; + -webkit-border-radius: 5px; + border-radius: 5px; +} + +.plupload_scroll .plupload_filelist { + height: 185px; + /*background: #f9f9f9;*/ + overflow-y: scroll; +} + +.plupload_filelist li { + padding: 5px 8px 0px 8px; + background: #f9f9f9; + /*padding: 10px 8px; + background: #f9f9f9 url('../img/backgrounds.gif') repeat-x 0 -156px;*/ + border-bottom: 1px solid #dddddd; +} + +.plupload_filelist_header, .plupload_filelist_footer { + /*background: #DFDFDF; + padding: 8px 8px; + color: #42454A;*/ +} +.plupload_filelist_header { + /*border-top: 1px solid #EEE;*/ + padding: 3px 10px; +} + +.plupload_filelist_footer {border-top: 1px solid #FFF; height: 22px; line-height: 20px; vertical-align: middle;} +.plupload_file_name {float: left; overflow: hidden} +.plupload_file_status {color: #777;} +.plupload_file_status span {color: #42454A;} + +.plupload_file_statusbar, +.plupload_file_size, .plupload_file_status, .plupload_progress, .plupload_progress_box { + float: right; + width: 80px; + +} +.plupload_file_action_bottom { + padding-right:8px; +} +.plupload_file_size, .plupload_file_status, .plupload_file_action {text-align: right;} + +.plupload_filelist .plupload_file_name {width: 205px} + +.plupload_file_action { + float: right; + width: 16px; + height: 16px; + margin-left: 15px; +} + +.plupload_file_action * { + display: none; + width: 16px; + height: 16px; +} + +li.plupload_uploading {background: #ECF3DC url('../img/backgrounds.gif') repeat-x 0 -238px;} +li.plupload_done {color:#AAA} + +li.plupload_delete a { + background: url('../img/delete.gif'); +} + +li.plupload_failed a { + background: url('../img/error.gif'); + cursor: default; +} + +li.plupload_done a { + background: url('../img/done.gif'); + cursor: default; +} + +.plupload_progress, .plupload_upload_status { + display: none; +} + +.plupload_progress_container { + margin-top: 3px; + background: #FFF; + padding: 1px; +} +.plupload_progress_bar { + width: 0px; + height: 7px; +} + +.plupload_scroll .plupload_filelist_header .plupload_file_action, .plupload_scroll .plupload_filelist_footer .plupload_file_action { + margin-right: 17px; +} + +/* Floats */ + +.plupload_clear,.plupload_clearer {clear: both;} +.plupload_clearer, .plupload_progress_bar, .plupload_progress_box { + display: block; + font-size: 0; + line-height: 0; +} +.plupload_progress_box { + margin-top: -3px; +} + +li.plupload_droptext { + background: transparent; + text-align: center; + vertical-align: middle; + border: 0; + line-height: 165px; +} diff --git a/packages/phocadownload/components/com_phocadownload/assets/plupload/jquery.plupload.queue/img/backgrounds.gif b/packages/phocadownload/components/com_phocadownload/assets/plupload/jquery.plupload.queue/img/backgrounds.gif new file mode 100644 index 0000000000000000000000000000000000000000..39e33ebc02114ebea6bb33dee2fb76af3a6dd4dc GIT binary patch literal 2977 zcmdUu`#Tc~1II^hosi0dq?7P6w^9i&)fvJz8*&{RhTJ9Zdro+CGnWyPC?vVFx!;*f zwGhKxa!+DIj18M@Hka9Z&Y$sqpU=;q=kv?g24ZdUZyyK10});iz~_F@@$vEA-kwk> zWUv>uxr;|fM|?hCAQ0^D?{m4_!^1<~@jCbD7n4UhI5^ni{N(X?EIxH-Z^_Wu)X2ol z*z~rE*&WkcAhSE>w?TJr{b6~>-0BYtYxBEc3oEF(6+}nx3g>Wj_h4mDuy)tRmM^63 z9j{-xc7uPs!8!WHK3u(V(`0vlnSHRr6|5Otzp1NlaLv$I|LS!sFwD~0mM5fn`S^SL z224&(`}hT-eFHpw?t7yBP+q?7C~u^v4+81wfkL~vqg)Y47dMZI$th=7gf-M|Zti<} zMppFWX9%SCi|=rDf$WQq#?D zgPh%vgpRJ6*|~V^i^V0%>aR8G@(PVc1H&99{uWKoK;ZYjO-xQqOxioSZEtUXpa1b= z;U}F=FDWfYdikw;y?A6o;>FZf!&R1ropX!0hj#(0-1t9=3LlPOcu# zuI^4Q2(YcauYa)FZF6^|w}X?b4HOP@aGsu-wFX1)2Zq`?I6Jwx-?f1`IJw+&MmV}4 z?Cv?;G%>Zu$?>SjoLvDjCEv�TRS%oFI%_+CO)aErq(YYgtoB}8U3WF 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 literal 0 HcmV?d00001 diff --git a/packages/phocadownload/components/com_phocadownload/assets/plupload/jquery.plupload.queue/img/buttons-disabled.png b/packages/phocadownload/components/com_phocadownload/assets/plupload/jquery.plupload.queue/img/buttons-disabled.png new file mode 100644 index 0000000000000000000000000000000000000000..afa11af9b93bcbd261faa6a5b0835e82493712b2 GIT binary patch literal 1292 zcmdUu{ZrBh9LK*cyLmOMbKNd&>ujyJA?aEC~~zn}NBXR)7W|sN7p`Q5FZPn}b6cI@%6mmG6E;YBgxp`z{B(g5F$wZ=3sZ1s_ zSC&-JjgriDGG9<|+N|qMu@kQi3=5^!SOKSoDr|hcS(nIx$>w?Y_}6KwQisDq>&KG^ zi_0{bH8nN$L-@}5#{z*sBoaNE0dajON?%cxq_BD%E0@ccmzSCPYH$)y9xazhBp?Wy zUW~~c0*SrbXfep`0_;EzT}hj=j$8hk%pbhjWCDo>+~W2Ey6qa7OfJ*smgutVcDun~ zSlF7q(-W^)6e^WU)-+{gRXu4PhfzX}D_Sm>+tJZcA<4$~W(gggQWLMqNW>4`&XFa_ z$3!!>siGdV#WsysWemKMKU9@bO;z~byHZ;hcj8h1f)Le`$WYSm3XtfYt5+Vvb7jeO zgQY!|W}>X9N|sm9i>xpe2_0QhQ#Uw-4W|TER#r;we7>#?N(rLTXx4SJ)F8wtQZNc+ zSl!QEQw+)IQy!0}(P+9R8TIw`I2>+hXozZlz?dNiR|l%q>NIvj3=5*P3tQ*t1OkC* zC>b^D!|N|d=Q_pnJe5jCr_)(1R(WqW-@+bTl54fv#l^+eIYyo)oj2S@PH#7u!_Wj;T^_|aLmv2xXf1{tLw~Rol zMoUA@How0E1c$wV+ArX@;j{i*jAO|Id0fXo7lQ`5PGpH1zO4M(nl*Mp{}LWd`hK|i zC)z~qJL}3hPjh=E7oAdn6;@F-8hmB7-wWMnK5+UfQVc|-V<4srKAn&t+EJ{=mmYl2 zKcaDu*Oh7emN4xwv%H%>guu-^L(CJO)8q82H6!eRXGegq`lySYbVKCRBLA{94hZml z7C3$h9*J#@{i7xV;SvW5&ZiMh)pYp3e*Pw$un))vg(brQiLq|T00b-=`ZO%H@?V~M B8n^%e literal 0 HcmV?d00001 diff --git a/packages/phocadownload/components/com_phocadownload/assets/plupload/jquery.plupload.queue/img/buttons.png b/packages/phocadownload/components/com_phocadownload/assets/plupload/jquery.plupload.queue/img/buttons.png new file mode 100644 index 0000000000000000000000000000000000000000..153e73885ac4a1fd1a98dccd5df73b8d72a2df10 GIT binary patch literal 1439 zcmds$`CHNl0LH(md$h8mXU=DKYCYR>x|XZunH7j(vtnANdE^0}Q_%3q3ljwuNd0Px zXc>}1icY2+UgSJVML-S7gET2S?9e#8(;R=t-XGrM_s>g4UOcyB+n#Lz0POHUxOoA< zmMDEUGcnYAQk=_}J}hu>Uz|549CtG$0S%l*VM5WC9gwmupEox**VosVmzP&oR@TtHrkX-4q2s9uaXQg^SBNc4sxUG3Q2Gz~8cBP?UB&cROAb9#H0uYYyN|uyA#k zDkn-tl*8#=QP!E;(t2WArns5~b#fPK{N1zYdVd1%T6!M_Y{z4}!cdH>lD9p4X)U=W zrl1>tGItNNkCH7&BuEq83e1VT8#NM;B#fqXC!ZjHPZVGYyja%ryR7~^4C~b7dnI?8 z6<6(0DkYI*$=qqSL?O=Lg(yA_)hX_AdYPrqs8LmpSMS5w!!$Rl6Rf}?q19izq`pc& zlF}PfJy?t^@(@hd)4Q|67$-Y#GC}{yJCun2yayZqMuVix+6>$Pz;Xq?)cP6bX!#;N_ zM&L`A=G>9x^7#OMwe1(E#R%zSn0EYb9t^_rHAf6$xY*4IiB-fK&4Caqqw3c8R0C1aH>9E zo(0W2i4piUJ+E;lo#>bMJ$fxfGktK){>)xV@d%~kl`!*#;6hnh1`EDUrHPrlVu7bnk7vzs?(F%PW9p(Us@ByaDr1@N8id1 zq#EK|qf7fpp;hjA9jU`(GJHqGKZ7*?yVfBUmkUMdF;(`|w#2fh)Y<_s^1<(XG1r9( zp(&{7x-0IW1%HBtZ;hc0;q|=DlB{j?98clAE_&Up(=|^ z)y^4+k!d{)ayxq=5;3zqN@!&=e~dt&XdI2tZQl&^gc+E=1kFpxziBUw(u>+6B8ew{ zHT#4adb9s$)lNf5ZqWEWp|o~9mNBKZF@6n~4eLc`ZtQi) zEeZC+@YX2J-oQrPCqWJpanQl%fhgK|SHZ)!AkX2~Oo-gT(((Wk)zSW;rL3+K1a1L<0hS=shBh1KUx9VI6LTcP+1A$fTOVUSbj_}t^TxwA z>);uvlQWimVfuDfQ*;3A$LePE3n4Lk!TR4vFstfStKdAkc%W__W|RR{rpRfCtdE^o z^PM_}-KWf;<+}`y{((slzS?_8m0wvIoRWUWhih`I+Qw`E`olNIr-M})!19Q^wA?Y< zq@_nD!#8PWLw8%hgbQrU?2C`SIj|0x%a6XB8T34O-bxlYF*54+(^w#u7e+Q(Mw+~5 zI{4nmu`t>**kHfo1zn&9jdV!B)Ds3d11+CukDTL!Q1QOEPeFD(V%IO7$IQC+FIkzm e!^(pI%TA#Gq{YC>!%?W7RKNp%(X9a*ocSNer(gg8 literal 0 HcmV?d00001 diff --git a/packages/phocadownload/components/com_phocadownload/assets/plupload/jquery.plupload.queue/img/delete.gif b/packages/phocadownload/components/com_phocadownload/assets/plupload/jquery.plupload.queue/img/delete.gif new file mode 100644 index 0000000000000000000000000000000000000000..78ca8b3b49e8f739df6ecfa4ef1119058b40e035 GIT binary patch literal 180 zcmZ?wbhEHb6krfw*v!H39|+Ez`G02S|CvCP_CGD{3a`TQPIW08y z+@NmXYwfboIA>eftmEx7PPc8lxOLj;wk@}o)$U1Kdw+KQj?7u7+G7q_7aUKWu%~bR zon_CzK797&@#5>#ChqKCeR=lWbKTo6Y;8YOwD9`W!0mdKC$n$9xnkdKU4N?J%dby0 zyHXy!eqg;&z4BnntSh~RJEP0@B-9|3oj-CkkZZ+PIz&iq4(r6)4xUz)J}=GOefiTPV2bGL_Yxw$lNYefFmh~ndE zIY+&>-d_`Q*w(b(@Zp<>wcFFSKin|$Y?u8^o3fLc-6tyEet(^I)N{&-{-V>Nn&qme z-|XLbclqX#$!XmLDils2^$_i=Vfo6|K!7s z$3S&5b~>3_CysS9Ff(!pa1CI4JIO94&@9fw!C(yl Dux)$+ literal 0 HcmV?d00001 diff --git a/packages/phocadownload/components/com_phocadownload/assets/plupload/jquery.plupload.queue/img/error.gif b/packages/phocadownload/components/com_phocadownload/assets/plupload/jquery.plupload.queue/img/error.gif new file mode 100644 index 0000000000000000000000000000000000000000..4682b63007c89fae09f6640e1a968a073d98b90d GIT binary patch literal 994 zcmZ?wbhEHb6krfw_};*9b)oIQ-*5l@e)sRs`)iBszTS%X_xshqKVQDwin+ST?*G5P zzrQ^G_xt_f9Jc2NYJa}F{`Gdu&zDm^T?_qix&OnZo-emz|NVaR_t)1i*Zuzedh_v0 z>zAA1pKtV@Ea!c=%JBE6!+*Zrczrtj)3uOqx1+w?ivDyh;``H`|9*XZd!q2y`>j8o zPq{fm`Na;auQ!6uw~GD$_w&u+sDHnnzd8{2bbrVDb8TPluY7%O^{INT7l+$F-w1!O zT=&{!g-_QbzC1qg{l($GKi~d(fA!P#uus>+|9rjj_t&$3f4+Tvyzkqcn7=>n{r&m; z>&=i$lU?pF(SEVZ_4lV+Z%tCF$iDo6LW`p7(5<$N&HT8Aidtg@EEu7Dfh!1_m9F6F_-_fnz@dBd3hV zh6RoeTpun37Hm*p=S}!xB2%GsN>(9zl@H4iweC3*!Wlj#haUN`*h|{jWN<7##?Qpk zmawqs0!x>8vXF{_aD)HsCf8Xtia|ir6_cteb~+gFu`;I!>|qpOVG?4uVAFdM{QR&W zONNt2z@nss^K_X~eLR`cSvVIfMeSfTbmmr&58_**5um`{FC={>;XzVD=Tv()J_7-T ogaZvn8JQwxBtJeTEbH?rX5;20cPa5$D~HSgwKHzbjEoG{0NEsHRR910 literal 0 HcmV?d00001 diff --git a/packages/phocadownload/components/com_phocadownload/assets/plupload/jquery.plupload.queue/img/index.html b/packages/phocadownload/components/com_phocadownload/assets/plupload/jquery.plupload.queue/img/index.html new file mode 100644 index 00000000..fa6d84e8 --- /dev/null +++ b/packages/phocadownload/components/com_phocadownload/assets/plupload/jquery.plupload.queue/img/index.html @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/phocadownload/components/com_phocadownload/assets/plupload/jquery.plupload.queue/img/throbber.gif b/packages/phocadownload/components/com_phocadownload/assets/plupload/jquery.plupload.queue/img/throbber.gif new file mode 100644 index 0000000000000000000000000000000000000000..4ae8b16a5a474c3da1e426afc20d2167ebd360f1 GIT binary patch literal 1922 zcma)-eM}Q~9LBG`Uf-_0UZFJTFt*nsTO5ueC8MQCX?YP5d8q^!#7gUiuF(Vv0y0uv zMJsO=7zu_gofyX-W+{m?E;Ac+grVzRB*kTp0b7W13o~jO6PL#Adz^qwjJtm>_sjk9 z`#jI{eZINdbKXqbPa-7ZMiBKT^}xA-;P=6WKNl)0E2eKxhaZKneR-`QzrcOMJvKfT zx)lmP4A1{QA9)h7lvsMZdqb029JH3~(nv`^VO`dQxDnc;-1oz!sEu0QJXhB~$nrssc=;5d6bWb>~J{i+O9hUE>s zy$3K&J8PlS3s zuf&l@@FJcg=@u`pfhDq)R}nk`!N({wk0c0{S65>YWU5;9TUls-qL>gRi_rR);{wgY zMVdw2=B8#K29K9L3s zc2K-aUfk?E&kByZwEo`KQU%&(ulDp;Rd2jF$4C4_mBa4FtT?M{W386p329VQR0mG+mdz;^%6}=b+X&!0PAJghY6b|U<(&T>?OpL^EQ|Dg8v(US+(!5}gNN>68C zjIJsuuSa13hEay{0=HqHA>PcGLdSs$kl{5DmyWOoKy3@Be5XpZZB{~bv-Rt+_KBtg z?I&+!J&28PB^xhXaT!{!c-ZpmN=~tqb8%>d`}1|A?BGOz>Q{U7drQo%qk+Jq)wF|Bjbw4$i)(?^O-2qNn1c<7SK zeh64nT!z?PU-wbRweq{O<*Cxk-%v+|o7P1Kr$(&P;`Dngu`P{NC&`fTITT02B_YRx zMm@NDi25Ks=~!vhsbn#_65^=UAs+Z>fLS&$h+rtQa@x?&qIF}sS{QcM$9 zyj8I_JtbX`?QWmL>a)qPxTV4W0{AhtaEw8J%zHgmpSG<=!@1xzkcC#tDkpClZTQ9T{9{ XMrH}sh*f7CD@Dcca7lI@6tMnZ`e4## literal 0 HcmV?d00001 diff --git a/packages/phocadownload/components/com_phocadownload/assets/plupload/jquery.plupload.queue/img/transp50.png b/packages/phocadownload/components/com_phocadownload/assets/plupload/jquery.plupload.queue/img/transp50.png new file mode 100644 index 0000000000000000000000000000000000000000..eb0efe104bdcc277ddcc3f6efdb54e1d533a5179 GIT binary patch literal 399 zcmeAS@N?(olHy`uVBq!ia0vp^(?FPm4M^HB7Cr(}Ea{HEjtmUzPnffIy#(?lOI#yL zg7ec#$`gxH85~pclTsBta}(23gHjVyDhp4h+AuIMDtfv&hE&{ob7`X>g8|2p4HHh@ z{1e$QDM;$zbFWMMeYKnhV#f|eBu!Qva;S;tqB;S44$rjF6*2UngC6Cic \ No newline at end of file diff --git a/packages/phocadownload/components/com_phocadownload/assets/plupload/jquery.plupload.queue/jquery.plupload.queue.js b/packages/phocadownload/components/com_phocadownload/assets/plupload/jquery.plupload.queue/jquery.plupload.queue.js new file mode 100644 index 00000000..86a7546e --- /dev/null +++ b/packages/phocadownload/components/com_phocadownload/assets/plupload/jquery.plupload.queue/jquery.plupload.queue.js @@ -0,0 +1,348 @@ +/** + * jquery.plupload.queue.js + * + * Copyright 2009, Moxiecode Systems AB + * Released under GPL License. + * + * License: http://www.plupload.com/license + * Contributing: http://www.plupload.com/contributing + */ + +// JSLint defined globals +/*global plupload:false, jQuery:false, alert:false */ + +(function($) { + var uploaders = {}; + + function _(str) { + return plupload.translate(str) || str; + } + + function renderUI(id, target) { + // Remove all existing non plupload items + target.contents().each(function(i, node) { + node = $(node); + + if (!node.is('.plupload')) { + node.remove(); + } + }); + + target.prepend( + '
    ' + + '
    ' + + '
    ' + + '
    ' + + '
    ' + /* + '
    ' + _('Select files') + '
    ' + + '
    ' + _('Add files to the upload queue and click the start button.') + '
    ' + */ + '
    ' + + '
    ' + + + '
    ' + + '
    ' + + '
    ' + _('Filename') + '
    ' + + '
     
    ' + + '
    '+ _("Size")+'
    ' + + '
    ' + _('Status') + '
    ' + + '
     
    ' + /* + '
    ' + _('Size') + '
    ' + */ + '
     
    ' + + '
    ' + + + '
      ' + + + '' + + '
      ' + + '' + + '
      ' + ); + } + + $.fn.pluploadQueue = function(settings) { + if (settings) { + this.each(function() { + var uploader, target, id; + + target = $(this); + id = target.attr('id'); + + if (!id) { + id = plupload.guid(); + target.attr('id', id); + } + + uploader = new plupload.Uploader($.extend({ + dragdrop : true, + container : id + }, settings)); + + uploaders[id] = uploader; + + function handleStatus(file) { + var actionClass; + + if (file.status == plupload.DONE) { + actionClass = 'plupload_done'; + } + + if (file.status == plupload.FAILED) { + actionClass = 'plupload_failed'; + } + + if (file.status == plupload.QUEUED) { + actionClass = 'plupload_delete'; + } + + if (file.status == plupload.UPLOADING) { + actionClass = 'plupload_uploading'; + } + + var icon = $('#' + file.id).attr('class', actionClass).find('a').css('display', 'block'); + if (file.hint) { + icon.attr('title', file.hint); + } + } + + function updateTotalProgress() { + $('span.plupload_total_status', target).html(uploader.total.percent + '%'); + $('div.plupload_progress_bar', target).css('width', uploader.total.percent + '%'); + $('span.plupload_upload_status', target).html( + _('Uploaded %d/%d files').replace(/%d\/%d/, uploader.total.uploaded+'/'+uploader.files.length) + ); + } + + function updateList() { + var fileList = $('ul.plupload_filelist', target).html(''), inputCount = 0, inputHTML; + + $.each(uploader.files, function(i, file) { + inputHTML = ''; + + if (file.status == plupload.DONE) { + if (file.target_name) { + inputHTML += ''; + } + + inputHTML += ''; + inputHTML += ''; + + inputCount++; + + $('#' + id + '_count').val(inputCount); + } + + fileList.append( + '
    • ' + + '
      ' + file.name + '
      ' + + '
      ' + + '
      ' + plupload.formatSize(file.size) + '
      ' + + '
      ' + file.percent + '%
      ' + + '
      ' + + '
       
      ' + + inputHTML + + '
    • ' + ); + + handleStatus(file); + + $('#' + file.id + '.plupload_delete a').click(function(e) { + $('#' + file.id).remove(); + uploader.removeFile(file); + + e.preventDefault(); + }); + }); + + $('span.plupload_total_file_size', target).html(plupload.formatSize(uploader.total.size)); + + if (uploader.total.queued === 0) { + $('span.plupload_add_text', target).html(_('Add Files')); + } else { + $('span.plupload_add_text', target).html(_('%d files queued').replace(/%d/, uploader.total.queued)); + } + + $('a.plupload_start', target).toggleClass('plupload_disabled', uploader.files.length == (uploader.total.uploaded + uploader.total.failed)); + + // Scroll to end of file list + fileList[0].scrollTop = fileList[0].scrollHeight; + + updateTotalProgress(); + + // Re-add drag message if there is no files + if (!uploader.files.length && uploader.features.dragdrop && uploader.settings.dragdrop) { + $('#' + id + '_filelist').append('
    • ' + _("Drag files here.") + '
    • '); + } + } + + uploader.bind("UploadFile", function(up, file) { + $('#' + file.id).addClass('plupload_current_file'); + }); + + uploader.bind('Init', function(up, res) { + renderUI(id, target); + + // Enable rename support + if (!settings.unique_names && settings.rename) { + target.on('click', '#' + id + '_filelist div.plupload_file_name span', function(e) { + var targetSpan = $(e.target), file, parts, name, ext = ""; + + // Get file name and split out name and extension + file = up.getFile(targetSpan.parents('li')[0].id); + name = file.name; + parts = /^(.+)(\.[^.]+)$/.exec(name); + if (parts) { + name = parts[1]; + ext = parts[2]; + } + + // Display input element + targetSpan.hide().after(''); + targetSpan.next().val(name).focus().blur(function() { + targetSpan.show().next().remove(); + }).keydown(function(e) { + var targetInput = $(this); + + if (e.keyCode == 13) { + e.preventDefault(); + + // Rename file and glue extension back on + file.name = targetInput.val() + ext; + targetSpan.html(file.name); + targetInput.blur(); + } + }); + }); + } + + $('a.plupload_add', target).attr('id', id + '_browse'); + + up.settings.browse_button = id + '_browse'; + + // Enable drag/drop (see PostInit handler as well) + if (up.settings.dragdrop) { + up.settings.drop_element = id + '_filelist'; + } + + $('#' + id + '_container').attr('title', 'Using runtime: ' + res.runtime); + + $('a.plupload_start', target).click(function(e) { + if (!$(this).hasClass('plupload_disabled')) { + uploader.start(); + } + + e.preventDefault(); + }); + + $('a.plupload_stop', target).click(function(e) { + e.preventDefault(); + uploader.stop(); + }); + + $('a.plupload_start', target).addClass('plupload_disabled'); + }); + + uploader.bind("PostInit", function(up) { + // features are populated only after input components are fully instantiated + if (up.settings.dragdrop && up.features.dragdrop) { + $('#' + id + '_filelist').append('
    • ' + _("Drag files here.") + '
    • '); + } + }); + + uploader.init(); + + uploader.bind("Error", function(up, err) { + var file = err.file, message; + + if (file) { + message = err.message; + + if (err.details) { + message += " (" + err.details + ")"; + } + + if (err.code == plupload.FILE_SIZE_ERROR) { + alert(_("Error: File too large:") + " " + file.name); + } + + if (err.code == plupload.FILE_EXTENSION_ERROR) { + alert(_("Error: Invalid file extension:") + " " + file.name); + } + + file.hint = message; + $('#' + file.id).attr('class', 'plupload_failed').find('a').css('display', 'block').attr('title', message); + } + }); + + uploader.bind('StateChanged', function() { + if (uploader.state === plupload.STARTED) { + $('li.plupload_delete a,div.plupload_buttons', target).hide(); + $('span.plupload_upload_status,div.plupload_progress,a.plupload_stop', target).css('display', 'block'); + $('span.plupload_upload_status', target).html('Uploaded ' + uploader.total.uploaded + '/' + uploader.files.length + ' files'); + + if (settings.multiple_queues) { + $('span.plupload_total_status,span.plupload_total_file_size', target).show(); + } + } else { + updateList(); + $('a.plupload_stop,div.plupload_progress', target).hide(); + $('a.plupload_delete', target).css('display', 'block'); + } + }); + + uploader.bind('QueueChanged', updateList); + + uploader.bind('FileUploaded', function(up, file) { + handleStatus(file); + }); + + uploader.bind("UploadProgress", function(up, file) { + // Set file specific progress + $('#' + file.id + ' div.plupload_file_status', target).html(file.percent + '%'); + /* $('#' + file.id + ' div.plupload_file_statusbar', target).html('
      '); */ + $('#' + file.id + ' div.plupload_file_statusbar', target).html('
      '); + + handleStatus(file); + updateTotalProgress(); + + if (settings.multiple_queues && uploader.total.uploaded + uploader.total.failed == uploader.files.length) { + $(".plupload_buttons,.plupload_upload_status", target).css("display", "inline"); + $(".plupload_start", target).addClass("plupload_disabled"); + $('span.plupload_total_status,span.plupload_total_file_size', target).hide(); + } + }); + + // Call setup function + if (settings.setup) { + settings.setup(uploader); + } + }); + + return this; + } else { + // Get uploader instance for specified element + return uploaders[$(this[0]).attr('id')]; + } + }; +})(jQuery); diff --git a/packages/phocadownload/components/com_phocadownload/assets/plupload/jquery.ui.plupload/css/index.html b/packages/phocadownload/components/com_phocadownload/assets/plupload/jquery.ui.plupload/css/index.html new file mode 100644 index 00000000..fa6d84e8 --- /dev/null +++ b/packages/phocadownload/components/com_phocadownload/assets/plupload/jquery.ui.plupload/css/index.html @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/phocadownload/components/com_phocadownload/assets/plupload/jquery.ui.plupload/css/jquery.ui.plupload.css b/packages/phocadownload/components/com_phocadownload/assets/plupload/jquery.ui.plupload/css/jquery.ui.plupload.css new file mode 100644 index 00000000..a819fff9 --- /dev/null +++ b/packages/phocadownload/components/com_phocadownload/assets/plupload/jquery.ui.plupload/css/jquery.ui.plupload.css @@ -0,0 +1,147 @@ +/* + Plupload +------------------------------------------------------------------- */ + +.plupload_button {cursor: pointer;} + +.plupload_wrapper { + font: normal 11px Verdana,sans-serif; + width: 100%; +} + +.plupload .plupload_container input {width: 98%;} +.plupload .plupload_filelist_footer {border-width: 1px 0 0 0} +.plupload .plupload_filelist_header {border-width: 0 0 1px 0} +div.plupload .plupload_file {border-width: 0 0 1px 0} +div.plupload div.plupload_header {border-width: 0 0 1px 0; position: relative;} + +.plupload_file .ui-icon { + cursor:pointer; +} + +.plupload_header_content { + background-image: url('../img/plupload.png'); + background-repeat: no-repeat; + background-position: 8px center; + min-height: 56px; + padding-left: 60px; + position:relative; +} +.plupload_header_content_bw {background-image: url('../img/plupload-bw.png');} +.plupload_header_title { + font: normal 18px sans-serif; + padding: 6px 0 3px; +} +.plupload_header_text {font: normal 12px sans-serif;} + +.plupload_filelist, +.plupload_filelist_content { + border-collapse: collapse; + margin: 0; + padding: 0; + width: 100%; + -moz-user-select:none; + -webkit-user-select:none; + user-select:none; +} + +.plupload_cell {padding: 8px 6px;} + +.plupload_file { + border-left: none; + border-right: none; +} + +.plupload .ui-sortable-helper, +.plupload .ui-sortable .plupload_file { + cursor:move; +} + +.plupload_scroll { + max-height: 180px; + min-height: 168px; + _height: 168px; + overflow-y: auto; +} + +.plupload_file_size, .plupload_file_status {text-align: right;} +.plupload_file_size, .plupload_file_status {width: 52px;} +.plupload_file_action {width: 16px;} +.plupload_file_name { + overflow: hidden; + padding-left: 10px; +} + +.plupload_file_rename { + width:95%; +} + +.plupload_progress {width: 60px;} +.plupload_progress_container {padding: 1px;} + + +/* Floats */ + +.plupload_right {float: right;} +.plupload_left {float: left;} +.plupload_clear,.plupload_clearer {clear: both;} +.plupload_clearer, .plupload_progress_bar { + display: block; + font-size: 0; + line-height: 0; +} +.plupload_clearer {height: 0;} + +/* Misc */ +.plupload_hidden {display: none;} +.plupload_droptext { + background: transparent; + text-align: center; + vertical-align: middle; + border: 0; + line-height: 165px; +} + +.plupload_buttons, .plupload_upload_status {float: left} + +.plupload_message { + position: absolute; + top: 0px; + left: 0px; + height: 100%; + width: 100%; +} + +.plupload_message p { + padding:0.7em; + margin:0; +} + +.plupload_message strong { + font-weight: bold; +} + +plupload_message i { + font-style: italic; +} + +.plupload_message p span.ui-icon { + float: left; + margin-right: 0.3em; +} + +.plupload_header_content .ui-state-error, +.plupload_header_content .ui-state-highlight { + border:none; +} + +.plupload_message_close { + position:absolute; + top:5px; + right:5px; + cursor:pointer; +} + +.plupload .ui-sortable-placeholder { + height:35px; +} diff --git a/packages/phocadownload/components/com_phocadownload/assets/plupload/jquery.ui.plupload/img/index.html b/packages/phocadownload/components/com_phocadownload/assets/plupload/jquery.ui.plupload/img/index.html new file mode 100644 index 00000000..fa6d84e8 --- /dev/null +++ b/packages/phocadownload/components/com_phocadownload/assets/plupload/jquery.ui.plupload/img/index.html @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/phocadownload/components/com_phocadownload/assets/plupload/jquery.ui.plupload/img/plupload-bw.png b/packages/phocadownload/components/com_phocadownload/assets/plupload/jquery.ui.plupload/img/plupload-bw.png new file mode 100644 index 0000000000000000000000000000000000000000..bb4147e8ef676988e03187f3439b1d1724cdc272 GIT binary patch literal 2105 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 literal 0 HcmV?d00001 diff --git a/packages/phocadownload/components/com_phocadownload/assets/plupload/jquery.ui.plupload/img/plupload.png b/packages/phocadownload/components/com_phocadownload/assets/plupload/jquery.ui.plupload/img/plupload.png new file mode 100644 index 0000000000000000000000000000000000000000..74fa3ad3a5fadd02edd5212426767e2b6e6ad685 GIT binary patch literal 3641 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 LNkvXXu0mjfYMjR1 literal 0 HcmV?d00001 diff --git a/packages/phocadownload/components/com_phocadownload/assets/plupload/jquery.ui.plupload/index.html b/packages/phocadownload/components/com_phocadownload/assets/plupload/jquery.ui.plupload/index.html new file mode 100644 index 00000000..fa6d84e8 --- /dev/null +++ b/packages/phocadownload/components/com_phocadownload/assets/plupload/jquery.ui.plupload/index.html @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/phocadownload/components/com_phocadownload/assets/plupload/jquery.ui.plupload/jquery.ui.plupload.js b/packages/phocadownload/components/com_phocadownload/assets/plupload/jquery.ui.plupload/jquery.ui.plupload.js new file mode 100644 index 00000000..7934bf31 --- /dev/null +++ b/packages/phocadownload/components/com_phocadownload/assets/plupload/jquery.ui.plupload/jquery.ui.plupload.js @@ -0,0 +1 @@ +(function(f,a,c,g,e){var h={};function b(i){return c.translate(i)||i}function d(i){i.html('
      '+b("Select files")+'
      '+b("Add files to the upload queue and click the start button.")+'
      '+b("Filename")+''+b("Status")+''+b("Size")+' 
      ')}g.widget("ui.plupload",{contents_bak:"",runtime:null,options:{browse_button_hover:"ui-state-hover",browse_button_active:"ui-state-active",dragdrop:true,multiple_queues:true,buttons:{browse:true,start:true,stop:true},autostart:false,sortable:false,rename:false,max_file_count:0},FILE_COUNT_ERROR:-9001,_create:function(){var i=this,k,j;k=this.element.attr("id");if(!k){k=c.guid();this.element.attr("id",k)}this.id=k;this.contents_bak=this.element.html();d(this.element);this.container=g(".plupload_container",this.element).attr("id",k+"_container");this.filelist=g(".plupload_filelist_content",this.container).attr({id:k+"_filelist",unselectable:"on"});this.browse_button=g(".plupload_add",this.container).attr("id",k+"_browse");this.start_button=g(".plupload_start",this.container).attr("id",k+"_start");this.stop_button=g(".plupload_stop",this.container).attr("id",k+"_stop");if(g.ui.button){this.browse_button.button({icons:{primary:"ui-icon-circle-plus"}});this.start_button.button({icons:{primary:"ui-icon-circle-arrow-e"},disabled:true});this.stop_button.button({icons:{primary:"ui-icon-circle-close"}})}this.progressbar=g(".plupload_progress_container",this.container);if(g.ui.progressbar){this.progressbar.progressbar()}this.counter=g(".plupload_count",this.element).attr({id:k+"_count",name:k+"_count"});j=this.uploader=h[k]=new c.Uploader(g.extend({container:k,browse_button:k+"_browse"},this.options));j.bind("Error",function(l,m){if(m.code===c.INIT_ERROR){i.destroy()}});j.bind("Init",function(l,m){if(!i.options.buttons.browse){i.browse_button.button("disable").hide();l.disableBrowse(true)}if(!i.options.buttons.start){i.start_button.button("disable").hide()}if(!i.options.buttons.stop){i.stop_button.button("disable").hide()}if(!i.options.unique_names&&i.options.rename){i._enableRenaming()}if(j.features.dragdrop&&i.options.dragdrop){i._enableDragAndDrop()}i.container.attr("title",b("Using runtime: ")+(i.runtime=m.runtime));i.start_button.click(function(n){if(!g(this).button("option","disabled")){i.start()}n.preventDefault()});i.stop_button.click(function(n){i.stop();n.preventDefault()})});if(i.options.max_file_count){j.bind("FilesAdded",function(l,n){var o=[],m=n.length;var p=l.files.length+m-i.options.max_file_count;if(p>0){o=n.splice(m-p,p);l.trigger("Error",{code:i.FILE_COUNT_ERROR,message:b("File count error."),file:o})}})}j.init();j.bind("FilesAdded",function(l,m){i._trigger("selected",null,{up:l,files:m});if(i.options.autostart){setTimeout(function(){i.start()},10)}});j.bind("FilesRemoved",function(l,m){i._trigger("removed",null,{up:l,files:m})});j.bind("QueueChanged",function(){i._updateFileList()});j.bind("StateChanged",function(){i._handleState()});j.bind("UploadFile",function(l,m){i._handleFileStatus(m)});j.bind("FileUploaded",function(l,m){i._handleFileStatus(m);i._trigger("uploaded",null,{up:l,file:m})});j.bind("UploadProgress",function(l,m){g("#"+m.id).find(".plupload_file_status").html(m.percent+"%").end().find(".plupload_file_size").html(c.formatSize(m.size));i._handleFileStatus(m);i._updateTotalProgress();i._trigger("progress",null,{up:l,file:m})});j.bind("UploadComplete",function(l,m){i._trigger("complete",null,{up:l,files:m})});j.bind("Error",function(l,p){var n=p.file,o,m;if(n){o=""+p.message+"";m=p.details;if(m){o+="
      "+p.details+""}else{switch(p.code){case c.FILE_EXTENSION_ERROR:m=b("File: %s").replace("%s",n.name);break;case c.FILE_SIZE_ERROR:m=b("File: %f, size: %s, max file size: %m").replace(/%([fsm])/g,function(r,q){switch(q){case"f":return n.name;case"s":return n.size;case"m":return c.parseSize(i.options.max_file_size)}});break;case i.FILE_COUNT_ERROR:m=b("Upload element accepts only %d file(s) at a time. Extra files were stripped.").replace("%d",i.options.max_file_count);break;case c.IMAGE_FORMAT_ERROR:m=c.translate("Image format either wrong or not supported.");break;case c.IMAGE_MEMORY_ERROR:m=c.translate("Runtime ran out of available memory.");break;case c.IMAGE_DIMENSIONS_ERROR:m=c.translate("Resoultion out of boundaries! %s runtime supports images only up to %wx%hpx.").replace(/%([swh])/g,function(r,q){switch(q){case"s":return l.runtime;case"w":return l.features.maxWidth;case"h":return l.features.maxHeight}});break;case c.HTTP_ERROR:m=b("Upload URL might be wrong or doesn't exist");break}o+="
      "+m+""}i.notify("error",o);i._trigger("error",null,{up:l,file:n,error:o})}})},_setOption:function(j,k){var i=this;if(j=="buttons"&&typeof(k)=="object"){k=g.extend(i.options.buttons,k);if(!k.browse){i.browse_button.button("disable").hide();up.disableBrowse(true)}else{i.browse_button.button("enable").show();up.disableBrowse(false)}if(!k.start){i.start_button.button("disable").hide()}else{i.start_button.button("enable").show()}if(!k.stop){i.stop_button.button("disable").hide()}else{i.start_button.button("enable").show()}}i.uploader.settings[j]=k},start:function(){this.uploader.start();this._trigger("start",null)},stop:function(){this.uploader.stop();this._trigger("stop",null)},getFile:function(j){var i;if(typeof j==="number"){i=this.uploader.files[j]}else{i=this.uploader.getFile(j)}return i},removeFile:function(j){var i=this.getFile(j);if(i){this.uploader.removeFile(i)}},clearQueue:function(){this.uploader.splice()},getUploader:function(){return this.uploader},refresh:function(){this.uploader.refresh()},_handleState:function(){var j=this,i=this.uploader;if(i.state===c.STARTED){g(j.start_button).button("disable");g([]).add(j.stop_button).add(".plupload_started").removeClass("plupload_hidden");g(".plupload_upload_status",j.element).html(b("Uploaded %d/%d files").replace("%d/%d",i.total.uploaded+"/"+i.files.length));g(".plupload_header_content",j.element).addClass("plupload_header_content_bw")}else{g([]).add(j.stop_button).add(".plupload_started").addClass("plupload_hidden");if(j.options.multiple_queues){g(j.start_button).button("enable");g(".plupload_header_content",j.element).removeClass("plupload_header_content_bw")}j._updateFileList()}},_handleFileStatus:function(l){var n,j;if(!g("#"+l.id).length){return}switch(l.status){case c.DONE:n="plupload_done";j="ui-icon ui-icon-circle-check";break;case c.FAILED:n="ui-state-error plupload_failed";j="ui-icon ui-icon-alert";break;case c.QUEUED:n="plupload_delete";j="ui-icon ui-icon-circle-minus";break;case c.UPLOADING:n="ui-state-highlight plupload_uploading";j="ui-icon ui-icon-circle-arrow-w";var i=g(".plupload_scroll",this.container),m=i.scrollTop(),o=i.height(),k=g("#"+l.id).position().top+g("#"+l.id).height();if(o'}i+='';i+='';l++;k.counter.val(l)}m.append(''+p.name+''+p.percent+'%'+c.formatSize(p.size)+'
      '+i+"");k._handleFileStatus(p);g("#"+p.id+".plupload_delete .ui-icon, #"+p.id+".plupload_done .ui-icon").click(function(r){g("#"+p.id).remove();j.removeFile(p);r.preventDefault()});k._trigger("updatelist",null,m)});if(j.total.queued===0){g(".ui-button-text",k.browse_button).html(b("Add Files"))}else{g(".ui-button-text",k.browse_button).html(b("%d files queued").replace("%d",j.total.queued))}if(j.files.length===(j.total.uploaded+j.total.failed)){k.start_button.button("disable")}else{k.start_button.button("enable")}m[0].scrollTop=m[0].scrollHeight;k._updateTotalProgress();if(!j.files.length&&j.features.dragdrop&&j.settings.dragdrop){g("#"+o+"_filelist").append(''+b("Drag files here.")+"")}else{if(k.options.sortable&&g.ui.sortable){k._enableSortingList()}}},_enableRenaming:function(){var i=this;this.filelist.on("click",".plupload_delete .plupload_file_name span",function(o){var m=g(o.target),k,n,j,l="";k=i.uploader.getFile(m.parents("tr")[0].id);j=k.name;n=/^(.+)(\.[^.]+)$/.exec(j);if(n){j=n[1];l=n[2]}m.hide().after('');m.next().val(j).focus().blur(function(){m.show().next().remove()}).keydown(function(q){var p=g(this);if(g.inArray(q.keyCode,[13,27])!==-1){q.preventDefault();if(q.keyCode===13){k.name=p.val()+l;m.html(k.name)}p.blur()}})})},_enableDragAndDrop:function(){this.filelist.append(''+b("Drag files here.")+"");this.filelist.parent().attr("id",this.id+"_dropbox");this.uploader.settings.drop_element=this.options.drop_element=this.id+"_dropbox"},_enableSortingList:function(){var j,i=this;if(g("tbody tr",this.filelist).length<2){return}g("tbody",this.filelist).sortable({containment:"parent",items:".plupload_delete",helper:function(l,k){return k.clone(true).find("td:not(.plupload_file_name)").remove().end().css("width","100%")},stop:function(p,o){var l,n,k,m=[];g.each(g(this).sortable("toArray"),function(q,r){m[m.length]=i.uploader.getFile(r)});m.unshift(m.length);m.unshift(0);Array.prototype.splice.apply(i.uploader.files,m)}})},notify:function(j,k){var i=g('

      '+k+"

      ");i.addClass("ui-state-"+(j==="error"?"error":"highlight")).find("p .ui-icon").addClass("ui-icon-"+(j==="error"?"alert":"info")).end().find(".plupload_message_close").click(function(){i.remove()}).end();g(".plupload_header_content",this.container).append(i)},destroy:function(){g(".plupload_button",this.element).unbind();if(g.ui.button){g(".plupload_add, .plupload_start, .plupload_stop",this.container).button("destroy")}if(g.ui.progressbar){this.progressbar.progressbar("destroy")}if(g.ui.sortable&&this.options.sortable){g("tbody",this.filelist).sortable("destroy")}this.uploader.destroy();this.element.empty().html(this.contents_bak);this.contents_bak="";g.Widget.prototype.destroy.apply(this)}})}(window,document,plupload,jQuery)); \ No newline at end of file diff --git a/packages/phocadownload/components/com_phocadownload/assets/plupload/plupload.browserplus.js b/packages/phocadownload/components/com_phocadownload/assets/plupload/plupload.browserplus.js new file mode 100644 index 00000000..e66404bd --- /dev/null +++ b/packages/phocadownload/components/com_phocadownload/assets/plupload/plupload.browserplus.js @@ -0,0 +1 @@ +(function(a){a.runtimes.BrowserPlus=a.addRuntime("browserplus",{getFeatures:function(){return{dragdrop:true,jpgresize:true,pngresize:true,chunks:true,progress:true,multipart:true,multi_selection:true}},init:function(g,i){var e=window.BrowserPlus,h={},d=g.settings,c=d.resize;function f(n){var m,l,j=[],k,o;for(l=0;l0){r(++t,v)}else{k.status=a.DONE;n.trigger("FileUploaded",k,{response:x.value.body,status:w});if(w>=400){n.trigger("Error",{code:a.HTTP_ERROR,message:a.translate("HTTP Error."),file:k,status:w})}}}else{n.trigger("Error",{code:a.GENERIC_ERROR,message:a.translate("Generic Error."),file:k,details:x.error})}})}function q(t){k.size=t.size;if(l){e.FileAccess.chunk({file:t,chunkSize:l},function(w){if(w.success){var x=w.value,u=x.length;o=Array(u);for(var v=0;v';if(d.ua.ie){q=b.createElement("div");l.appendChild(q);q.outerHTML=p;q=null}else{l.innerHTML=p}}());function n(){return b.getElementById(m.id+"_flash")}function j(){if(h++>5000){o({success:false});return}if(g[m.id]===false){setTimeout(j,1)}}j();k=l=null;m.bind("Destroy",function(p){var q;d.removeAllEvents(b.body,p.id);delete g[p.id];delete a[p.id];q=b.getElementById(p.id+"_flash_container");if(q){q.parentNode.removeChild(q)}});m.bind("Flash:Init",function(){var r={},q;try{n().setFileFilters(m.settings.filters,m.settings.multi_selection)}catch(p){o({success:false});return}if(g[m.id]){return}g[m.id]=true;m.bind("UploadFile",function(s,u){var v=s.settings,t=m.settings.resize||{};n().uploadFile(r[u.id],v.url,{name:u.target_name||u.name,mime:d.mimeTypes[u.name.replace(/^.+\.([^.]+)/,"$1").toLowerCase()]||"application/octet-stream",chunk_size:v.chunk_size,width:t.width,height:t.height,quality:t.quality,multipart:v.multipart,multipart_params:v.multipart_params||{},file_data_name:v.file_data_name,format:/\.(jpg|jpeg)$/i.test(u.name)?"jpg":"png",headers:v.headers,urlstream_upload:v.urlstream_upload})});m.bind("CancelUpload",function(){n().cancelUpload()});m.bind("Flash:UploadProcess",function(t,s){var u=t.getFile(r[s.id]);if(u.status!=d.FAILED){u.loaded=s.loaded;u.size=s.size;t.trigger("UploadProgress",u)}});m.bind("Flash:UploadChunkComplete",function(s,u){var v,t=s.getFile(r[u.id]);v={chunk:u.chunk,chunks:u.chunks,response:u.text};s.trigger("ChunkUploaded",t,v);if(t.status!==d.FAILED&&s.state!==d.STOPPED){n().uploadNextChunk()}if(u.chunk==u.chunks-1){t.status=d.DONE;s.trigger("FileUploaded",t,{response:u.text})}});m.bind("Flash:SelectFiles",function(s,v){var u,t,w=[],x;for(t=0;t|Mz{5;nZ^KRMn|dr%s(yw{ccWYFd)UCM0P;CRO?NktFFi1qLCjF##hp=9jnvLQn1lWI?OM31d# zjfbPfH678_#fKDE4D}b(1_=?j4l#P{uw{m*_w-1-vny)neDr1TvEYU=|qoGuMBt;fS?H!@6ww_R1^w{b}qAgb!Jcd%yW9vd) z#WQ9Gif5D`JkwxK z8aqDVz&e`~9X*MTc&N2`v00EF8FSnjk^}-t?+$fF50<>rbo>vasp{bD-u>SklwTZ_ zKe&KjcOhTf%TIfhuX~iAj=#P9%JuyB>-h~A^3$&6>#pS+uH|Q4%g;vnX@2_C{LH8M z8Bg=Gp5|vi&Chw7zcna-JSaapC_g?Zrw8TTgYwIR@=JsA8-wyWcikB4J8Sc^$_wi@ zKC3+OyGx!`1_$L=2IVIPWvR$mM(rF)dIL;-T7gQd_uh|@zwxxaG@r4_2{o7ZwZ}xS38cu&P`>025c(h&nVD^K>PyOQ5q^G+*wPpx42KzO=b9MXl_D-mXIZ$5p>UMo` zs5==oh#a-lD2n!~P%31MOg*zZ?QIlUWeiFwT9umij;J~}9`A^Tx~#$Q$V?r2veDz|r~Y&AVy5z;`XLDZ9K??~F`u1Q732!dzh zkaonACeP#Mwx>En31Y9YtE0WMJr!*=tknw6yWxONa-OwHCO46M6C0GegR7cc~p2jZNvU+Z~ zU^h;wz)7_)jIV5uR(7-}oVv001?|a{Z-g8OW1-fhqpDp9Bh z5;>X;X@|N~Zb3yzqO>b1WKarA0Pl(JAyw z7Bm|Ys_5t-U5Iv}b>AUeZZWw=Tb4~>NwR1) zs{4;-4rUDa^T<|H-(opg`j$s(3mFal>RTWwCpd%7do`Svb7Zf#!G-kOT3 z*sk`rSjyJ?^PW%#4652p%Lf+=jLc9FdrnO($w;Up>TYg}ro^bV7|R#$8Zt&pu>EV~ z#f#?oM)ClR+#K$9&26XizeFgBLYz2hEFtfTlw(Mg<3@HLYEa|44%JF3IIl??61wP< zO7-&E8hPI0dKGO%Y{#g^T-Nqv-QwzbZeqEnDrod};`nxlBB=%pVg&+u>1ft?){k1_ z5!3~vkWCsvG1@>%b6dME&uhowhRSyc`|N5?k%h)NBwN)S&h>H(6|KTciYl$J_1<`w zu~n6EIt;0(x7AdoEJC5x=Z_R8p=`~aq3%--ZN34r#-TUv=K5Im~GZM!Y(3K+dWQ_`3o{{CQNC))B zq~3S$(S{mrk?u$X+3S3|0@|U=r$#H6R0@=*oi3WLP=`V5SVdQx(71g`4(15cLrHDs zkuzrHEjXj{B{jSA(Y0j(zpiKE@f_109lqxl4zkvA??!`N6vJtFUlt`a%!4qnwLp8#kC zEUjwv&?e6B(e=(yS3|giOi7|A6&=EeU9L1IH~g?XLLJ`|f;!RENp;D*xid~^Txv(K z5`h<4)o9nNDjNiaU8n$dI%$@`g;81-?`}0p6^j>_+eE4A_yz-2AFRouuyzwwpY=Rv z4L5DPwpOjLp0}`iQG+t~gobKM{rupP24z8T(L75%rPlg}CAFrN95NEH11(e8Lh^=fQb65iX~4g{J;4{?@7-6iVqEpc;q8wadD7Vl13TBG5f zHd|$I;o=3=4b^U8eIlk|vQ#fw5?taCxF|XDu4PLgndX|{l7$rwO6lR{b?&o>5+Yn24LpI#-uvEt9&mdI_z?dC2s`rk78jF%uE3t1`H# z0s7P2aKhqh;|4BEbhR1sDmyt5ZBt>5BJu91vvYNGb|jA(NUb)izG|~jOYM4yeBpRk z64A``j(D2_W$3U7&(~8?RaITp+z@Q8Z>X48U0`?{BU}xK;Tq7D?|=%zK_hQ=lDW#E z6;{;GG*%hzfy3M0HD*NMGRp`pw2{avBRAqJQn^q&X54=ykyryRs`iypgK)x646^U= zh;r5*PL?edH;lY>Nwlqcb;9zq6(_A~Vr^=76eC2U*2;=SmDLNZ_0otLvV5Pg6f(EONgo-(Na%7(L$I%+aidsvSLBCJ()vguM2xP+Sc9$pT5IJ_clde zY&BbB5q_A}aKqGS7sVJIj&M&Z74M?{?w(|HeyFRpvZp&4@3z4!tcFCTa*7eZ9N!b|i7K_QDXvNpYSfG9$(jn`{!h6LZ+Wp{VXZliVX>c^mm|bePn6iKK9Q42OZ*Jf?4Mp1gu#u6h<{ zTf8JVZ%K81y{$IbEX<3izPhq;No~UkMs-ZqObj;=ZX+a&iuf+6bW!M$=t;&D3PeQg z+ALxcItW&H1#PLA(~yJcz@kp`j-e`Rch={k%2`SZzKvrj__K&tHeNE_5zQLZBn!w# zl}xvH;vOdIq%|yJPIC&e^z8Epm6L_F2>9AU9l-=n0|nHAM2@aL*j>@x)JUP+!OW3h#nimmmQiOhHz^aBh!eg?|l zJJxh(9bzNoN4&Wt`g3?VDHn=ML*4DdUGV03Zx*&KX`@XeRqzh=SQt&k;;qW!V10wN zQ_uF6)SN$(^6fKcxz)r4LLnVtW7K#Gl~#T z9DEtf+lf+;vDs=nxf?;9O}5Y?kI6S2bsQ~P0mA66lsZ|Aag5E#lgD^W0hmFhm7i~=5_DvV15*27Cnx!d8YG~$F(3KaIsZB!ZgO{FCFql&Y=kC~jM zCCxR(G^=+n=H#hv413begoK@_|If=<}!(ZLwQ2kV?p~4g@ z5yx7hwjd;0p3&C-T+%*nB<6Qd}TP}J~KL6kh^v5BqzZ} zA>?yB9WlK<+FFSdofMBcE2fvsn&mb;l1k$x-3o@_JFBfi98q@yHyqqYBN}xXr1j!q zz-ds5%S<8XC~tB5>S)LEDy&KvDx-cvu5K~xxyh!bo0h87&aYZx5o#$T{&J++b=}x( zXDZ&9fW@i|C8H`0k6_#r3nhcA=&++9wZ=)tel4m7W@% z!>V~yj(4?X+g!uzN)j=atFa3j(;mj4(N?w5_?Dwqti(mq7A>rdl602|?tNHN+WhZ5a^%SIsq%?v>^^Khc^!aE?7&{}M8SFtBz?w*KB zx$4kE<*LH~hXW2RFMwhdC$R(V@#2&zkOHA2#jWkF#a(f%xxG6&-DTjY+&X;{9A5hR z*ByldbeTgFX)Cmj?(pdoN2AEK9x!aMK(UC(JK&M7DHaYzaVM1WnEy-?`0@FV{I7dw zdrsSX?LRWW#L*~2J*l{8EgHc=4t?HnxlmfE){ZnCJGpNkG0(H}`^bPeqb zeRQR-$28cn{{xzzU~$%e-+lD1Ke|z)joA2q-}NWfa{T|=s5x!_@eLepl-mDVLw;i=KS)*iMfE?j% z0>M_i8<$FZ%DG5zMFuZwT||#r9ZG#%Pbu?3@4BHylyzsm9G!+>yO@*fP(u=x~G@?g^6*?=Zp=a&j#qRI-ZTx>+@%>t@%m*Ry6v z?#aDb>4r4L2Lp0pl9q0wwua+~!8=)qwc15L@Dn9>xr0J?i|`v9k$7T_@QRXF!=ti@ z_XZw6MTVoOR4iV6uszw{)pEDu9diBTZ`$j**R<#Uc-s)qB)|i2;YoXNh)ADg0no~?hjEo zvJEq5*yyN;C~G(kIhYo`BM$LJyIR{rUDj%mIp)^RYpz~YRa>#hy`Z+CVL`Q7D;)N5 zdsgn{-Zy+q@ffHQ1{_%D)z%zwWT?J~6)8pbB6rc4qH#szi}o!lwn*cq0IC7uaZ#kP zqLasU6eY%Wqr8?OIg^r$SkWdn?h-0)W<@tL+s$m;4yxV7#@$ExTWs8i$ZfynMVIiR z%eX}v>$dgs@l(cc=Hs{U@mu-$Yx(%=c+ppA8jtBfaPs&Lq>1sEYCKIf{!BJ@6Qic_ zn~{yZk&WNM#@}aP-eTj|S&)Co^4TP}3qEIAx%1!|GY>iRFuR8xftvfs!$ zRdDn%hp__3SXOjw;q3A`s1(}vVHGHkn`@uI$}0S52RXpFOvD!&>IBs`QDyt7w*6K6B-MU^YClkQXsY5@ZIe~k zRMj?3b(N@=gH%^QwU(-`>8h(tb(O2GgH_iI)iqOf9iqApRb7XvuESN=5vuD*)iq0X z9i_UCR$a%au47f#Y}GYKbycXYxvHyD$J;$k@1*&JE>RF_E zf~se+>N#HZEKxo6s;5EqG^(DZs%M$%S+06cP(3HAo}a0#TxBPztVv~aRJKB8%_?hA zSx9Basw|?iR@K*_`WjWHtE^3B?P|d(>X=TIb*U__7XDlvn^ec9)UiG4*p=$oRqEK) zs%?!r_EeSqLS?^Hi+-gR{aP*jjXLf$rWUMYDm$I2`<%hl!u3p@(5_C{fb1;5*=RaU zW#=F}7jPcne4sA?{1$K_U?Wo}Ud+_}SF8J9isEG`UJkeda3#pE0{jl}d(^K6T!Tq^ znOeLBuv{(1{A?@WTEKOH>j5_~b<#~tJzyJPJKz@7Z)NtI7*n;|&<;EUo&m4j4!8qw zC+c?t?g8z+Or3H+-~qscfIk2p0z3?O1n?-}F~Cm1F)ptwB%y|gj@0nC_Y908Q^ok7l1DTUje=bd;|Cg zX#NTK7Vtgb-+)2DX*fuy1J(mJ0L})S12~tf`(MD-gD&K%b`e*n00NhCwe)hdT?x1f z@H@co0apXA;S;$1dXCZ!+;yax{1eEZ1pE>36yQ0)p8K6ev0WL;6!KHx90G9)<09*;U3h+As&in6?T@CVUke>$7)v{h>n}OPb ze5-7~7BjQ!P=8;aYJ-vY*WAio1}HyFDI`F+6M zkNi=<Ivb?3`$6#n>bn2~fZehkM#2swVTX~h!$@F< zLGvEBzbd2rSI}TPXaCavbK3+vX0h8}m+ki7*wpg3!2dh)1c&`a*@Ji3m9JxF|)Vm^1r_8(`4pQJH(Q zJ!l~2a%Z`$2VmmL-EQ+<{ z25}XbBZ}WLleK;|}~8v3AU@FrUv=BssX# z$z>}WJ8mC79<&yh`3EZ%-0iv45nM_hR6K@ox!7=CP~gew;BcK_1vF_vfzM~C)t`i85{p2BXEz$lhr5Rhyksv5R|m{mOPIqkH`#S97&T}Btt6i z8&=EB&kUv%NJU{q)JY`JE(jUh$azuG9y}Kix!3^O9d6ByISLpoWdG#vJJF8Ay3c-+ zw7*m=Nt2`lBa3+mCf=T0!WYRv)S$4Nny#G-&($SK1jC3rG zKAR?+LrDcCb1A8$q>2uIHLbLU=;je_K9y?e*ws;T93=}#krq<2h>{>yC@rSscrNX` zgi8~b$kKlGT-v{ZNs}6xbih(39k`51)0Q)7#tBS1!Y14Eq@(zWG{Mg%Nk=>EcCS>S zoJ4~+QL=(dvzx)BD%fqFAVOeZ>pG<8AxdD<`E=d+r3)FqfeEF((a3JX zP?Is#MXdB@9A=NSO{CjJdW%SJ73mI<-X_x9MS6!w?-UH&CDOY^dXGr&73qB?iA_cxg~BAOT1Vt@e=j~(o5NsNH1f5M0z=U z3h5Q>X{1-OXOLdSo<;gQ_8ijRv*(ds&HjY+8un+Tz3eYYH?uU-Ei8j{E9*mgE$c^m z9ZMD1r((f2sLYM*1)y$XyO7?@29R!JyOC~ZFCx8#y@d2u_A=5P>?}xh8U*5dg%%{e zD$>7-mA+;y@pYjzZy3vdQ|QrKqWx{G@lFId43c~o={*Q?7$o^Or1v4vVUXkpNFQJy zB7Km3gcOowe`h`!wsV%{V`gRiJH|d?R?h#$5cODP{sUv5F{{GYa`rj1TKGE7j%8mE z*M>3}(v16D`VSFxg zD3V;mRD~(Wv5+EJma(WJS({k5BB||cl_J?X*%*b{d)RuWFvoA$Mz}G~^^9GK+=b(J zHFEd$jNgPjZ-OFuZf7i|NZyAS_6K*s!;JlloR))Z&`0<>b~#-RW65N0vwPCzE&pbL zD|jaO1LI^uWoCCwNtdUWO0j9_TB&7_<-pgXh+MXCyW=hl z*mN4twVcLzI;{^feI3_N=Yewl3|_OIOD$*ez>Pd`6Q9citY!n}p~>l{Np+K?P;pu> zM(?xGdpgE7YG)%aqgt?3N;e%?cc2tHfJSXOhwJC^(0N=`&gc3CJoH4D?n*dXcIT`iz!D-=#p&VQnOR=GA^MsIdnM}*%iF$ zN-71fg9r6QT_eM>eVP5JXF1AWNYuR>SnHQ8Cl(GR%vUFPU|y**K$!l zCaurRmS?B+L$l>MY5lNl`Dye$JX@KY){n@Rk4@``P&plVh6j&?>Prgk^$hH_UXl;b zI9(hnNjG`xyb^M~WW+08IM6fjtT~p|COe%|GWvDA#kpavbD-(S!1LJp zKK=N>pLj;Uo(GyT`VG8M4jxGZsCJOg96_Eo$ul6ok(09Yo66G9Yi{DaksDoYdv|@| zf7sP-Mc4gDblqikZO`Z}Su)4oWCNp+Irk>pZIVSY`iWUG*WUcTXp;5)2Y%fSbUkK7 z*O&f7*MOeUR|MKJdUK;<4C2B3uG`tNl7aH5l<8zqse`pB`ptZf6`Lt)7JVC^qh@PX zeLJ6H%hpu=OE$+oRQrm}ab#;Y{S!9FnXTFNTlgGTw&u{kU~}B0#J38Bemte2GkD7m zEWyA8UN@SS1e!!%4_(nDFn$}EW_CMb1E-XyS{$yIS-M=TfEBOxbaKiL?3ANyYNsX2 zXi;pAXKj9`5@kyzgCMORKqP5>YCasbDAS~#PKy_Ar9H|zl-4F^;4Pjm*{y3Ok4BXK zuoBX2icRi??a}W*_YMoJR-KbquxV7;*b`+3(OexCgF?TP7v4EI=skqS{>kx5j8W1$ z{+7_ngh30uOOqJ;Y`F^ym8BgB3*muqNj^}zn@dW*bPq?^AbDjRwmdp)A7In(<-Nv< z^Vt-K?>3&5izbmggeVLVr1gXHansIA>r;vg;)V!1W$!XW0=(%yP)tEd#zOV`dEn#W z^#_D%eQK)KXPnG+@38gt& z&b+Fqq9}O}+>5MaBw2|dgXf^rR7gD&ItbD(kS%t{0c0x=$Up$% zJeEY1d<4g7Y_>nF^z{cD>Aa0$u&Vh)>CYG3`)f{+=1)OnQb|QEV7uEO#OG*%E_5NT-KH@bZ=?0e=Kc#NXx8MDZuKFQ_LlrdSLQVPD29Rx2?y7u-+G z)hbcjk8_LF5KkpY_s=y}p|P0D7V8AmYNd20HaFcDJ1X6$*T<@mKE-3yVG>7&AV|{s zqMD^F-$@HTD)=<^`7kOTO<}Ex$!5Wzd)|eQk39gss*3rba@?(VGocob1{bP z3oT0b(ZCLnK@`il*J_lO($`YSllBQ(> z_m8NpBf6C(AsjG8X*E)8i z2p!jJAB|YTO4t&rwOMQmI`)f>FTiPhfef`YnRBbvmz#2^Vaks+Or-|I`&>O5=BGi^MA(J_NLmHUIP#F}(9nR)VHUuPENOw@Q8!b}|nTZxs zA`~4)%TzUP%h7SFGjq!n-TmUpDE|QZ zg*Oq5^N+0u3 z1(m#Hq?%mfnCEUMVq&kO4{iiT+(=1cg^UcYCgOI;$QkSze9tK-F4N{21C7Tx^9K{x z=^-PLCnCS2f}e2cu6OTK{wYqmPx=gp+$VjGGwzfAhBNMx-ohDo(W$p{>3y7WpY%4) zxKDZ)XWS=!z$Ld^dXq~YVF&Vr1@PueGwJLfLOOHwo@f8)J+Hi@jVteqtT8x5#htf- z8BLVvU-Fu-AfAET?bbKy-DaV?%?i71#ocDLS#ozmTu0%CIU$d*LOuIcQqNtcdNRri zi~y)$#0|M#+>hA8y)Vf1=EdmDUXMuK#t0r!$ul&RqNtg4S&$0aLyOaTZCbC(8z&qw zy(Qmn7HF05x2mVihe8(A6-dNNTCXlHaMO*460zuY8WnUfIPT!aMJqJ@BdFGKy{6m0 zBY#XT1Tb4Sr@Ztep&yqDe#hyyW^nK*YdWUx7>SB=4lx!B@BZklCR+_nKGeLun5jCs z+iT8Y<}Jxg9m?I3X?->%nAU52rx>?(;8wZjd(O1MFu@K;RNEW4i{ipM(JpR(YJ&&B_VxhM`ojDinauN&l2 z&01ON6*>`kKqjRKJSdY^WH;0^G<@I>a^NA_17~k`?6mNRa?6EBLkkry`+|UuMGDM< zKpWO6ye06z0Q}bs@t;SQ$MlVyqzUfcz{4^X@_GZ0$Oc9vY2i8LVIHF%JWUphyVF?Q z=;NgIdA)(hD6bqEF0hjj6~o4+vCIJs)s&%w!F951BHc7{Z+2+ch)%Rso=}VT0OJi{ zNLWwESvi?ha;T;0ba~F<8VjB-^U3q2JmYQSYnaml=^rqs1=6>M(*!$f;bb4J!al-h z`a<|j-w2=S3|Vq;X}v5txpbyXKGOzSa&ze{S@IM}XUkF^mySfdr;I^pbB=5Ve6yA_ zM0ZY@lvy0nU3t2E#m9&eS?puB;u9A57mIzuR(#3=Kd{)RY{h3Ru$IR@V=F#qfpt9g zIhmrP6vS0-imPHLrZZEf)WY$Tj+PO_c`%W!m>qN|cu539*j%ViPGIzUuO>%|BwzGQ(jdF)HJ;wu(7i^smAsjDbVb&5r` zq%*aIs?IJ+6-#QVQ)x*xdoM}B1S&er8w!`_TdWrAc;Y=A_>gA;&&z#{#$n0yEfUYB zwIs!3)8(493q(+~@=R}!w9i~Ixf5A7Y=Q?1ssOZwt&b<1Ya}%;OyAfY{fUC@C~hZAuc499&$4=-56>S z0x@+1d?L6s5oKz`lCDWeYu$(gePbmFR~B}g95*DNGVHjxz`}~YQErLqU$Y%0K9`7g z^@|Ac4cn2wXSdID-O`z!5}#_2Zo!ApQIo;Gz*CEADN$aQRm&oD@ zN$WosP7iQ;@KTv16tqA>XE4ZPJvOaPJe2Eg^IJB8Sg-j9WBEQ{nnbm3BV(~nFD}fM z?rbYPY&21=t{ZJ>y)%CXFvx2zlciW24LL~+37u)WT&9N0Wk!y8MxM(8j2?AESI9J{ zBrWFLX3J~3Qf|3Q*3V-Lu9O*t1;;Buj~yZ8&vHVRq$P^QW?#MxTPU3W^$eGc@e)kV zsnk!-dDD7Ux1LF6BW|EE?XnGuQ#;ce2Ftq~FUD&y%i{ zB{^TZN|qFiR<9~H+rp^>#cRjyrfBPTa?91SehJ^&@_SLblpA|F&@`@YoCKo&zP@0b zXVBJPTwFXkcmcDb9K1%BR$MJ-LRXX3X;2iKeUk9lbBk!|m9tFEsbA15%a95m&Q_yp zQEm6~;$S$~D)@3|#c#^ymKyO1i3Ul?0CZ z`!q?vLazBG%WspU{=iEZJop>lA9z`AX-9!JR~0c*f6cEXm?iTGMj*ce^4D3Un5DmF zEt7)R$$SOoZt1GIUIrKR0q;Z!Y9QW5C)yOa-Nf$ItnO+i<(S?3+^{d$4{RO3LB3Iz zmLih0zclPQeyrh*78=j-iuoo#m0UAy&mM;h=1jOkOuvrnH_0tyHyHh)-edu&I~8&E zX%OS|(;Z5OpS&bPUxeFd)tE;W&)N)#G-$K$5?g9+#&TmO$})t)5ObCozTun((-Tx% zvrj8?8Y@U|Y};fCAU8vA#!6R1oeL#sk|H$8k|%AKC2OA4E7Q%qMW&m18H}%G9E|TR zS>qeR-{n@igQ8H_<&4RSaYdY9Q)FdMy4-&@(-v!sw0W9ab7N!@ znST9NxsQ?pE=g17_dm9~Uz5hYJ2(jMK{}Chajnq3yJ(&sql8*b&tcqf( z6$X5lCZz__nyqFfLnWi{kOQyDW8g$)^xNdrK!CmhB>QS!WDH?76*Z-|WOr(y-zF2X zk zqEEyUc!&4F>h%X+m%~cn4LNLSR4`o={rJucdEPGM>0Yi*jCEsOD~7JxW|>>8OX-uy zo3iF;WU)0FTmiYe=3d?B*5zM3S0Op|JMGgfNdZd@0HQA&uxnmc4Ea1Prp-rH-| zG2@-S#UfjsAF!dg%T1vXRxC7qJ;gd}0&mMTcgpnG>k=apLcdEc-cEBDBQQ$maB2Ni z{cgGDbVgA)qcfK-&(LR#0dWqC=T8(qEDO9VhFn=fcg8evNbZqaJa^_VH$L8o=>x1& z_Lc}Qn*7QZZqkXc=`OkEUYWtG7uAg^`Ye+TyogA@PcD37aFA-kDHYw=e0KEG6K|03 zm*oeb`EKb!Xnv9O2WUQ*LJCB2#Yj=m!am${^&gG0`VX_Kf9QX*`oHhB`iI5p3x#*h zOibWox#kg>g&sCpFRNWhtg}Z2>tS-R{FngtbNi(w^!;U81}1cSRwZB>GkrB@Fd5q% zp>G!C`{=7{b}{-gqjJgfzs8z98A7RFc!ou{&WYYN6_}fQR{%0;?+k!7J zQnfyf=S~osw32;HU0f6ROg8%NL4~u>8-kn+5>sM3O^NL?v?%a}oVhFCOMU{4kkKEP zd)IkM*6XONkagh8J!qa7PD55hSMw~^H&tmp7%KeUF_ zZu+1YaW%pXjJQQ#?}ai_l=9I>8CHdq3A1(Nz)xe~x}O?&H1=K^jXmYRW$&fE*n4SI z_O_v~_Xnug7D)=L5s${gp7B=0P(7cBIFT)0B3hrEJx;B(o35l;mEA(z?`u%e~*1ngv^jC-Ke zk-&{x>P!UwDVMquxG_rI3EUN>o*}q zK`tGW2n@=lg^9pgrL-s!I87-Xn+U8^O2;Jvrz@rVBm!qBrQ;KU^-Af4MBq%Nbl*f^ zgHk#%5jaa}9D~bJlM=Y_G?oaQt!Uuy97U58fpZm2Nd(SQ8ZC`-?9?hZU8*$Nz$4LLCg?90^j8S_(-aNj zxKhy|iK`S1lK36AB@y_&qCpZ@D;gwmjiNyky^01IY*sYLV2h$b23r*kGPqXJAcN}^ z4Klc1(IA5x6b&-CF*o}dngu-HBzU-4aJWs;)I?yrnEe(p*R5if9f}5d-zG-5UC|)L zI}{BvyHnBjPXz8#wBkhIZbhp|1nyC^>O|mPMVprh+^1-@iNO7ewlEQRK+%GUz=Mi* zLL%@7MQcg~9#XXCMBrhiu?X8kj65P3c~l7FF$J1%x0>}u+N|@~zO#;fj6WkQ&%&wnNzcI__DRpf zA9gvNe?ll&#O0r>K8y8Hgk&>{(k- zNP7;MmXlub1EX`XUY<EDtOp>!C|k;Ce!rP_sL1->aE$J)uiEu2gB8@nf1W#J|n>1aU6Q zggyOX1)Z(pVW$aQ@_bICjpU9k3FCj*g|vPS^NBB8XR{Pt$hf3}yTDi8$T6s=*`;Yf z4%@=^x&fKf%h7Jx8n%P8-lVvx+=c)C0av|&5NZKpSK-@0=22`D&ZGA%p%pky-LhhJ zUYvVQ5vONzCr>xM2+p9XFCjpXnSLH|O(%x9Eil$0wvQHYHY0|;llS<29DTAD??z+9 z^IhE-@t8BwW(=Hrl))LGA8Z%nXwbpQx6tpZa4zRDZ{<8X2K;65Ao2?RTQ4a|59DNz z%yB=?j*GRVvOfY7maE6KT)Cf}&06k&Sy@k%D~Fy$R-vFAnl8tM;eU}W<$J$_yh`sN zua5c-vf9NJOAIrX;>!C#K`0-1od-Tt0v{=X_i@da?kCWHR|x&FKz{-QT)MwNe=5+Q z3H0YcKPM$QD@;r)Rx6){0S0(IVKrH?9^{^0^BrXQScqWkC8J891TKBA_N*?qtce>)Rw!TS|I$))PZ8A}a*1+pJT z`&Bvgmb?cBA`ZQl3yS(NULNfiInG)3tc9Bg2O;)fS-{<6hHmU03JHXgucft{4`_Yj z0Zq*cYapzU?!#Xw=2qf<0?tADn;1e5Ls{y#vzsFYLYfgNxtLlOg#w zZ<|ks&WW*&bYRyqm@e@hXFUTAhcDA~4J%&mid{*_Gl7&9a-qIufsH)&EnD#&3vA-C z@2GVH%gzLA5WJSrOlJukj9kliq-|$2i}@0p$>5gF;5yCd@5nXRF?z{7hgo1R+}RJ9 zCiYxr!7=R_G9qMhdYLdK4P^2REd8|H-lwq}^Y?|si<*kcq04I#LA5j?n63zTMKuJU`Q-bfwEUcDJp*)AT^#%V1w5{LBG+Xd}kz37N8ZA#_ zn5kh~@Ombj0~yYf_a@Q`yGgA07SeSbae8MF+CpF2pbdylYd(;nL@p5pTWda)X%%66 zQ&HGe%5T(c*Wog`2?8NTcRIt)zQRWa2ffFcgB`u+U?2VTV2IYo-7s>vhXx0CI>L_r z!o|=_d+_hFL@R;|LMx(TNimhes*qt=#jc;vEOy0m12bRW`boz9;w&hcun=uV|A?$l zrjIK9LSY;@xVM{7v^UfeotBCeFtY&IHmZh7Uim-4ndZYfX4E|Nk zmeUk;vTdX%H5*RT9|s4i87jqx+B0D*#?ORRnjVUB0m~k$Ps~H*o*28DT7JuhuI~%8 z=fSx2H|~9)zGs1pdF*@YcoEx*R?AL$bk(F1jcFE*m6QmOvar+_yP2UGtz45eM2wnM z!%{T6=Fpr=U9oLUbe3~nhq|Nh_Mhx~i_w>ZK&A|Von|S~loErTUtxe-L1J`=71Mke zB43-N9jsMgr~>VHErbCN(0;Cs(PsEhWB!fIznNi%1GTyS+nN6{rWI;S{2Au|jA@!S zQwwX|{&h?+P^693#%cR#<2AoFS(~Cw)uw4B+9BGZ+F{z^+7a53+AOV7tJ12q8f~67 zU#r#Xw0f;UYt)u%%e3X%3EGKTL~GTeny$5JF|A!YSxagutw&p_tUc=6`|tcQO9}^Y13d&i@kgzs&q^GXGo5|2Ff#!~E|u|9i~; zH|Bqz`9EO(51IdS=Kq5EzhwTenEz|$|AzVh!Tbn4zh(aK*wQU5wqt1fIBgnjv5Fm{ z{S&xV*udL{X@F1Y0BxTY+gO3^Q?Y?R$3`9?whtRO1{)_f(cC^ewsI!6@H5&;+Pw@D zd#7oKfPKvmE_3@hw2S|nd$^AM|Gtesv4=msfw!A`L+8??M4Q9s$@1C-%FO5dxM}zr{e@B@nQT`VIqew?N>e>9-q*dx)jWm~2xl zYlLfot8X{`BMI^C24)^EUp+1?6jXX+#|=#G^rv#ugt`e*=u*po$)b%MIZqcki^qQSlaChkMw96ymZ;{Xf}vP^GS!Nh6(KC_x-We7vFE0}!*CIj|%BL1L%|JT3iLX2AXzc6b5rcAFf zaNmVRI|c{g(_J^vk7V~w@}={NjuGzL6>JXNhzFE(`PALUv(o?$juVH%iz6}>N8lLE zRf4lsfYUS!r{Qpv-DcyFFiS_E?!$?h2-0QRVw{M4)cn9#X`L`h3qg4xdd-2YjKNZ# zgp)HzTLjuR7^l@RT=RizhGk5^jJ0WzrE{>s2oDCtk2~qz2yqmov_+fItF>;e`9fwr za7vlWCe(j7{R*WYeu@VnCbAv`XgF^A9js4m{ipIy-lxqW;et;(_hniHmwN=|Lab@7 zSsRD)5k|QLBqsX50>QauIOmrCmh%UGgmYGAEmO;E$n9m0GAI4KgFdtl(82I_(>cK2 zd7FjaJjk%u!-XJpKCB|!g4{;AX4|q==+GYw;s^c*#5?&;8#&~KSHN3U$r~&@Q|Qo@ zOhpLrpcw)bubr@G2oSNRgq6;u%D1dSWWA&K>FRR=2>RJ zfM|g^#nQvJv<_3G-($Ae(DJy^VjtOJ4?8tmZ!#jh^-VAi4p9|8`!6UsB8Kt~f}N$) zxpqQH#3gX7H*^Do!_Umxb(=yrB3f|;pU1jO{bKq0Lu7BSVivDr={1Bn?By51!_P743G9R^ymdB~ZM=klHr2s9|XQxUb5tQs;sGFg9 zcA;*+V``paxmOmFvSr`K0iG}p9~2e}XboH7a2aJ4cT~-DjN`}{$7H-XCXWi07a9%$ zP)3u|M04nqJ`sq~`Zr^rbG4q`;7Ow2@Tchw0~p#$??IxTwb_upagxL~XU(#KC6qQB zDr==ZbUsEZrAa%Ce^o})gq@($q;0;}p=M|rLyyT}EA{K2kITnK&u3sbiT#sN+G!KL zY(_8h?b;T0-s*dcJ`smqo1q7=*m)&nbs`?GL!1?r2Hfchd%|ejTJ#Y@IBbHJcO&@+ z5jPzsG;GN(DK|&22_u#^qE!q`fuXZ#saV470(ICDB|NEPgm5eiA%2Vx1aM zr$%g3Blf8g$JB^(>M*UJ8u3nz_@+kkr$!2ldDV-Uu9=`95B(!}ezc&fFib ziJLlXe@5WU{TXNCiihpb2;Be8{uKYn{&7Xh%`8^qH9Di;hyWs^-@xdb%BkcC zHx+5D|2ldoqF>j+Dm=^xMRy)yZ^EVB|Jd#{{oC(H*kk5D{(gkfzg9MGPS;F&AAT6N zgpHxEQOJXTV&p7PMlWe%Py;7i2jL0Omz&>+JK-8ezhHIIBkn^iL$7^6_A(hr`WF-# z^X3u*WU?iYY-aRDI!a%BCX35h^BP&5F;|U|)sCo1M#e^DIpm**Wzw)V%(g`^)NK5N zjnaUiL0mqJmj3yMm+Uk7Zy7SCK*EQ|Mtp!f$(U>y(F1!EVVT2-+zxX;LJ zf}cK7$rvbk#43Cv7Q;s%O%i!;B&NKUDOlPLZmzA=SlbqPkF^yTY~KuKh0V=!?k#)| zUhdGkwvAYqvq&u7yT>TE{-;rP3?Ie6nH9Z1LWbrr+yB!rw~WS&Z;w%K`%k0XJ_<7s z+;u_&m(gBnhOk_tZOo`UB9FFdvq$RO_2SuezjS%im*%r;-o)5Vtm!MW=9w6q0J0m{ z(66CyWb_~7pf3Lu{{nTz*K*4@vi=V__O;x!PR`IHGRSUX^sDJQvIuu_-vmi&G3fp& zZzCsUviPy+ly&pHnnXin;4OVCPu@n~tPQgD^ySPLc|C^4kT)|#+tx4WzoTJ1;}3W* zgY;H>#Essuk9gB}2#TcOcbp49ckd=_1FH0|JiXTsCou56CLP+@h`v~t#;GF~he{vi z-l#DEj7@g*mOHr^`Z)T{`NkHMxDWjju;2W7VD^W7viMPjY?CK! z9~_j+1_$c~2TvIsM5PZFcAJp8FI`S-(R?4v^aziZ?R&O-C)a!@T5e(V-zS-pYoU)} z^dpz14`uS>=Qq74_lXsnZ}7M7InwuX&G%xY9gP0*TK-VWR|o~Z;uM+O#zuUHznx`& zLi8`8LIwD{+&gh%EQQ89hCSuqDO5`Qvga)t=Pt&vyT#f6jLR!9M6p*{xCj7_bK^+k`G0fdqfwHF;`%{h5kh)(DyPK z=-J{w3-byKek5GhSB(M)5uIp>n>6XBwEh~qNqk5G*8HTDD`A}bm;!@J|7y!*>91)2 zE85fgo6HQ8LjRTpjtQJ?1dbCfhj=U3`LE3U*P-;fB>UI$EhcVra)4e3>_c3Lf3^3q zFd6q_*A+|Bc$1=k2@9G@S)TphvK;%0QF>kcS8Fu3OXCAV5kts@1%`Jqvr#3T>;ItW?>74%Wn%vzF2-U5YuwM~#JQW>AbcqI t5$Olhe)%TG&Z3rwp>5D%p?TvA=s!d|{QrV}`eL&{|K(Td{{ZN4wv2C^@O%IO literal 0 HcmV?d00001 diff --git a/packages/phocadownload/components/com_phocadownload/assets/plupload/plupload.gears.js b/packages/phocadownload/components/com_phocadownload/assets/plupload/plupload.gears.js new file mode 100644 index 00000000..90d5ccab --- /dev/null +++ b/packages/phocadownload/components/com_phocadownload/assets/plupload/plupload.gears.js @@ -0,0 +1 @@ +(function(){if(window.google&&google.gears){return}var a=null;if(typeof GearsFactory!="undefined"){a=new GearsFactory()}else{try{a=new ActiveXObject("Gears.Factory");if(a.getBuildInfo().indexOf("ie_mobile")!=-1){a.privateSetGlobalObject(this)}}catch(b){if((typeof navigator.mimeTypes!="undefined")&&navigator.mimeTypes["application/x-googlegears"]){a=document.createElement("object");a.style.display="none";a.width=0;a.height=0;a.type="application/x-googlegears";document.documentElement.appendChild(a)}}}if(!a){return}if(!window.google){window.google={}}if(!google.gears){google.gears={factory:a}}})();(function(e,b,c,d){var f={};function a(h,j,l){var g,i,k,n;i=google.gears.factory.create("beta.canvas");try{i.decode(h);if(!j.width){j.width=i.width}if(!j.height){j.height=i.height}n=Math.min(j.width/i.width,j.height/i.height);if(n<1){i.resize(Math.round(i.width*n),Math.round(i.height*n))}else{if(!j.quality||l!=="image/jpeg"){return h}}if(j.quality){return i.encode(l,{quality:j.quality/100})}return i.encode(l)}catch(m){}return h}c.runtimes.Gears=c.addRuntime("gears",{getFeatures:function(){return{dragdrop:true,jpgresize:true,pngresize:true,chunks:true,progress:true,multipart:true,multi_selection:true}},init:function(k,m){var l,h,g=false;if(!e.google||!google.gears){return m({success:false})}try{l=google.gears.factory.create("beta.desktop")}catch(j){return m({success:false})}function i(p){var o,n,q=[],r;for(n=0;n0;u=Math.ceil(q.size/r);if(!n){r=q.size;u=1}function o(){var B,x=t.settings.multipart,w=0,A={name:q.target_name||q.name},y=t.settings.url;function z(D){var C,I="----pluploadboundary"+c.guid(),F="--",H="\r\n",E,G;if(x){h.setRequestHeader("Content-Type","multipart/form-data; boundary="+I);C=google.gears.factory.create("beta.blobbuilder");c.each(c.extend(A,t.settings.multipart_params),function(K,J){C.append(F+I+H+'Content-Disposition: form-data; name="'+J+'"'+H+H);C.append(K+H)});G=c.mimeTypes[q.name.replace(/^.+\.([^.]+)/,"$1").toLowerCase()]||"application/octet-stream";C.append(F+I+H+'Content-Disposition: form-data; name="'+t.settings.file_data_name+'"; filename="'+q.name+'"'+H+"Content-Type: "+G+H+H);C.append(D);C.append(H+F+I+F+H);E=C.getAsBlob();w=E.length-D.length;D=E}h.send(D)}if(q.status==c.DONE||q.status==c.FAILED||t.state==c.STOPPED){return}if(n){A.chunk=v;A.chunks=u}B=Math.min(r,q.size-(v*r));if(!x){y=c.buildUrl(t.settings.url,A)}h=google.gears.factory.create("beta.httprequest");h.open("POST",y);if(!x){h.setRequestHeader("Content-Disposition",'attachment; filename="'+q.name+'"');h.setRequestHeader("Content-Type","application/octet-stream")}c.each(t.settings.headers,function(D,C){h.setRequestHeader(C,D)});h.upload.onprogress=function(C){q.loaded=s+C.loaded-w;t.trigger("UploadProgress",q)};h.onreadystatechange=function(){var C;if(h.readyState==4&&t.state!==c.STOPPED){if(h.status==200){C={chunk:v,chunks:u,response:h.responseText,status:h.status};t.trigger("ChunkUploaded",q,C);if(C.cancelled){q.status=c.FAILED;return}s+=B;if(++v>=u){q.status=c.DONE;t.trigger("FileUploaded",q,{response:h.responseText,status:h.status})}else{o()}}else{t.trigger("Error",{code:c.HTTP_ERROR,message:c.translate("HTTP Error."),file:q,chunk:v,chunks:u,status:h.status})}}};if(v
      ' - .'
      '; - - -// - - - - - - - - - - -// Most viewed docs (files) -// - - - - - - - - - - -$outputFile = ''; - -if (!empty($this->t['mostvieweddocs']) && $this->t['displaymostdownload'] == 1) { - $l = new PhocaDownloadLayout(); - foreach ($this->t['mostvieweddocs'] as $value) { - // USER RIGHT - Access of categories (if file is included in some not accessed category) - - - - - - // ACCESS is handled in SQL query, ACCESS USER ID is handled here (specific users) - $rightDisplay = 0; - if (!empty($value)) { - $rightDisplay = PhocaDownloadAccess::getUserRight('accessuserid', $value->cataccessuserid, $value->cataccess, $this->t['user']->getAuthorisedViewLevels(), $this->t['user']->get('id', 0), 0); - } - // - - - - - - - - - - - - - - - - - - - - - - - - if ($rightDisplay == 1) { - // FILESIZE - if ($value->filename !='') { - $absFile = str_replace('/', DS, JPath::clean($this->t['absfilepath'] . $value->filename)); - if (JFile::exists($absFile)) { - $fileSize = PhocaDownloadFile::getFileSizeReadable(filesize($absFile)); - } else { - $fileSize = ''; - } - } - - // IMAGE FILENAME - //$imageFileName = ''; - //if ($value->image_filename !='') { - $imageFileName = $l->getImageFileName($value->image_filename, $value->filename, 2); - /*$thumbnail = false; - $thumbnail = preg_match("/phocathumbnail/i", $value->image_filename); - if ($thumbnail) { - $imageFileName = ''; - } else { - $imageFileName = 'style="background: url(\''.$this->t['cssimgpath'].$value->image_filename.'\') 0 center no-repeat;"'; - }*/ - //} - - //$outputFile .= '
      '; - - $outputFile .= '
      '. $imageFileName['filenamethumb'] - . '
      '; - - $outputFile .= ''. $value->title.'' - .' (' .$value->categorytitle.')'; - - $outputFile .= PhocaDownloadRenderFront::displayNewIcon($value->date, $this->t['displaynew']); - $outputFile .= PhocaDownloadRenderFront::displayHotIcon($value->hits, $this->t['displayhot']); - - $outputFile .= '
      ' . "\n"; - } - } - - if ($outputFile != '') { - echo '
       
      '; - echo '
      '; - echo '

      '. JText::_('COM_PHOCADOWNLOAD_MOST_DOWNLOADED_FILES').'

      '; - echo $outputFile; - echo '
      '; - } -} -echo '
       
      '; -echo $this->t['dw']; -?> +t['p']->get( 'pageclass_sfx' ).'">'; + +if ( $this->t['p']->get( 'show_page_heading' ) ) { + echo '

      '. $this->escape($this->t['p']->get('page_heading')) . '

      '; +} + +if ( $this->t['description'] != '') { + echo '
      '. $this->t['description']. '
      '; +} + + +if (!empty($this->t['categories'])) { + $i = 1; + foreach ($this->t['categories'] as $value) { + + // Categories + $numDoc = 0; + $numSubcat = 0; + $catOutput = ''; + if (!empty($value->subcategories)) { + foreach ($value->subcategories as $valueCat) { + + // USER RIGHT - Access of categories - - - - - + // ACCESS is handled in SQL query, ACCESS USER ID is handled here (specific users) + $rightDisplay = 0; + if (!empty($valueCat)) { + $rightDisplay = PhocaDownloadAccess::getUserRight('accessuserid', $valueCat->accessuserid, $valueCat->access, $this->t['user']->getAuthorisedViewLevels(), $this->t['user']->get('id', 0), 0); + + } + // - - - - - - - - - - - - - - - - - - - - - - + + if ($rightDisplay == 1) { + + $catOutput .= '
      '; + $catOutput .= ''. $valueCat->title.''; + + if ($this->t['displaynumdocsecs'] == 1) { + $catOutput .=' ('.$valueCat->numdoc .')'; + } + $catOutput .= '
      ' . "\n"; + $numDoc = (int)$valueCat->numdoc + (int)$numDoc; + $numSubcat++; + } + } + } + + // Don't display parent category + // - if there is no catoutput + // - if there is no rigths for it + + // USER RIGHT - Access of parent category - - - - - + // ACCESS is handled in SQL query, ACCESS USER ID is handled here (specific users) + $rightDisplay = 0; + if (!empty($value)) { + $rightDisplay = PhocaDownloadAccess::getUserRight('accessuserid', $value->accessuserid, $value->access, $this->t['user']->getAuthorisedViewLevels(), $this->t['user']->get('id', 0), 0); + + } + // - - - - - - - - - - - - - - - - - - - - - - + + if ($rightDisplay == 1) { + +// ===================================================================================== +// BEGIN LAYOUT AREA +// ===================================================================================== + + $pdTitle = ''. $value->title.''; + + if ($this->t['displaynumdocsecsheader'] == 1) { + $numDocAll = (int)$numDoc + (int)$value->numdoc; + //$numDoc ... only files in subcategories + //$value->numdoc ... only files in the main category + //$numDocAll ... files in category and in subcategories + $pdTitle .= ' ('.$numSubcat.'/' . $numDocAll .')'; + } + + + $pdDesc = ''; + $pdSubcategories = ''; + if ($this->t['displaymaincatdesc'] == 1) { + $pdDesc .= $value->description; + } else { + if ($catOutput != '') { + $pdSubcategories .= $catOutput; + } else { + $pdSubcategories .= '
      '.JText::_('COM_PHOCADOWNLOAD_NO_SUBCATEGORIES').'
      '; + } + } + + $pdClear = ''; + if ($i%3==0) { + $pdClear .= '
      '; + } + $i++; + + + + + // --------------------------------------------------- + //Convert + // --------------------------------------------------- + if ($this->t['display_specific_layout'] == 0) { + echo '
      '; + echo '
      '.$pdTitle.'
      '; + if ($pdDesc != '') { echo '
      '.$pdDesc.'
      ';} + echo $pdSubcategories; + echo '
      '; + echo $pdClear; + } else { + $categoriesLayout = PhocaDownloadSettings::getLayoutText('categories'); + + /*'
      +
      {pdtitle}
      + {pdsubcategories} + {pdclear} +
      '; + //
      {pdDescription}
      */ + + $categoriesLayoutParams = PhocaDownloadSettings::getLayoutParams('categories'); + + $replace = array($pdTitle, $pdDesc, $pdSubcategories, $pdClear); + $output = str_replace($categoriesLayoutParams['search'], $replace, $categoriesLayout); + + echo $output; + } + } + } +} +echo '
      ' + .'
      '; + + +// - - - - - - - - - - +// Most viewed docs (files) +// - - - - - - - - - - +$outputFile = ''; + +if (!empty($this->t['mostvieweddocs']) && $this->t['displaymostdownload'] == 1) { + $l = new PhocaDownloadLayout(); + foreach ($this->t['mostvieweddocs'] as $value) { + // USER RIGHT - Access of categories (if file is included in some not accessed category) - - - - - + // ACCESS is handled in SQL query, ACCESS USER ID is handled here (specific users) + $rightDisplay = 0; + if (!empty($value)) { + $rightDisplay = PhocaDownloadAccess::getUserRight('accessuserid', $value->cataccessuserid, $value->cataccess, $this->t['user']->getAuthorisedViewLevels(), $this->t['user']->get('id', 0), 0); + } + // - - - - - - - - - - - - - - - - - - - - - - + + if ($rightDisplay == 1) { + // FILESIZE + if ($value->filename !='') { + $absFile = str_replace('/', DS, JPath::clean($this->t['absfilepath'] . $value->filename)); + if (JFile::exists($absFile)) { + $fileSize = PhocaDownloadFile::getFileSizeReadable(filesize($absFile)); + } else { + $fileSize = ''; + } + } + + // IMAGE FILENAME + //$imageFileName = ''; + //if ($value->image_filename !='') { + $imageFileName = $l->getImageFileName($value->image_filename, $value->filename, 2); + /*$thumbnail = false; + $thumbnail = preg_match("/phocathumbnail/i", $value->image_filename); + if ($thumbnail) { + $imageFileName = ''; + } else { + $imageFileName = 'style="background: url(\''.$this->t['cssimgpath'].$value->image_filename.'\') 0 center no-repeat;"'; + }*/ + //} + + //$outputFile .= '
      '; + + $outputFile .= '
      '. $imageFileName['filenamethumb'] + . '
      '; + + $outputFile .= ''. $value->title.'' + .' (' .$value->categorytitle.')'; + + $outputFile .= PhocaDownloadRenderFront::displayNewIcon($value->date, $this->t['displaynew']); + $outputFile .= PhocaDownloadRenderFront::displayHotIcon($value->hits, $this->t['displayhot']); + + $outputFile .= '
      ' . "\n"; + } + } + + if ($outputFile != '') { + echo '
       
      '; + echo '
      '; + echo '

      '. JText::_('COM_PHOCADOWNLOAD_MOST_DOWNLOADED_FILES').'

      '; + echo $outputFile; + echo '
      '; + } +} +echo '
       
      '; +echo $this->t['dev']; +?> diff --git a/packages/phocadownload/components/com_phocadownload/views/categories/tmpl/default.xml b/packages/phocadownload/components/com_phocadownload/views/categories/tmpl/default.xml index 13624692..f3eb60c4 100644 --- a/packages/phocadownload/components/com_phocadownload/views/categories/tmpl/default.xml +++ b/packages/phocadownload/components/com_phocadownload/views/categories/tmpl/default.xml @@ -13,16 +13,21 @@
      - + - + + + + + +
      diff --git a/packages/phocadownload/components/com_phocadownload/views/categories/tmpl/default_bootstrap.php b/packages/phocadownload/components/com_phocadownload/views/categories/tmpl/default_bootstrap.php new file mode 100644 index 00000000..1e20578f --- /dev/null +++ b/packages/phocadownload/components/com_phocadownload/views/categories/tmpl/default_bootstrap.php @@ -0,0 +1,170 @@ +t['p']->get( 'pageclass_sfx' ).'">'; + +if ( $this->t['p']->get( 'show_page_heading' ) ) { + echo '

      '. $this->escape($this->t['p']->get('page_heading')) . '

      '; +} + +if ( $this->t['description'] != '') { + echo '
      '. $this->t['description']. '
      '; +} + + +if (!empty($this->t['categories'])) { + //$i = 1; + echo '
      '; + foreach ($this->t['categories'] as $value) { + + // Categories + $numDoc = 0; + $numSubcat = 0; + $catOutput = ''; + if (!empty($value->subcategories)) { + foreach ($value->subcategories as $valueCat) { + + // USER RIGHT - Access of categories - - - - - + // ACCESS is handled in SQL query, ACCESS USER ID is handled here (specific users) + $rightDisplay = 0; + if (!empty($valueCat)) { + $rightDisplay = PhocaDownloadAccess::getUserRight('accessuserid', $valueCat->accessuserid, $valueCat->access, $this->t['user']->getAuthorisedViewLevels(), $this->t['user']->get('id', 0), 0); + + } + // - - - - - - - - - - - - - - - - - - - - - - + + if ($rightDisplay == 1) { + + $catOutput .= '
      '; + $catOutput .= ''. $valueCat->title.''; + + if ($this->t['displaynumdocsecs'] == 1) { + $catOutput .=' ('.$valueCat->numdoc .')'; + } + $catOutput .= '
      ' . "\n"; + $numDoc = (int)$valueCat->numdoc + (int)$numDoc; + $numSubcat++; + } + } + } + + // Don't display parent category + // - if there is no catoutput + // - if there is no rigths for it + + // USER RIGHT - Access of parent category - - - - - + // ACCESS is handled in SQL query, ACCESS USER ID is handled here (specific users) + $rightDisplay = 0; + if (!empty($value)) { + $rightDisplay = PhocaDownloadAccess::getUserRight('accessuserid', $value->accessuserid, $value->access, $this->t['user']->getAuthorisedViewLevels(), $this->t['user']->get('id', 0), 0); + + } + // - - - - - - - - - - - - - - - - - - - - - - + + if ($rightDisplay == 1) { + + + echo '
      '; + echo '
      '; + echo '

      '; + echo ''. $value->title.''; + + if ($this->t['displaynumdocsecsheader'] == 1) { + $numDocAll = (int)$numDoc + (int)$value->numdoc; + //$numDoc ... only files in subcategories + //$value->numdoc ... only files in the main category + //$numDocAll ... files in category and in subcategories + echo ' ('.$numSubcat.'/' . $numDocAll .')'; + } + echo '

      '; + + if ($this->t['displaymaincatdesc'] == 1) { + echo '
      '.$value->description.'
      '; + } else { + if ($catOutput != '') { + echo '
      '.$catOutput. '
      '; + } else { + echo '
      '.JText::_('COM_PHOCADOWNLOAD_NO_SUBCATEGORIES').'
      '; + } + } + + echo '
      '; + + } + } + echo '
      ';// end row +} +echo '
      '; +echo '
      '; + + +// - - - - - - - - - - +// Most viewed docs (files) +// - - - - - - - - - - +$outputFile = ''; + +if (!empty($this->t['mostvieweddocs']) && $this->t['displaymostdownload'] == 1) { + $l = new PhocaDownloadLayout(); + foreach ($this->t['mostvieweddocs'] as $value) { + // USER RIGHT - Access of categories (if file is included in some not accessed category) - - - - - + // ACCESS is handled in SQL query, ACCESS USER ID is handled here (specific users) + $rightDisplay = 0; + if (!empty($value)) { + $rightDisplay = PhocaDownloadAccess::getUserRight('accessuserid', $value->cataccessuserid, $value->cataccess, $this->t['user']->getAuthorisedViewLevels(), $this->t['user']->get('id', 0), 0); + } + // - - - - - - - - - - - - - - - - - - - - - - + + if ($rightDisplay == 1) { + // FILESIZE + if ($value->filename !='') { + $absFile = str_replace('/', DS, JPath::clean($this->t['absfilepath'] . $value->filename)); + if (JFile::exists($absFile)) { + $fileSize = PhocaDownloadFile::getFileSizeReadable(filesize($absFile)); + } else { + $fileSize = ''; + } + } + + // IMAGE FILENAME + //$imageFileName = ''; + //if ($value->image_filename !='') { + $imageFileName = $l->getImageFileName($value->image_filename, $value->filename, 2); + /*$thumbnail = false; + $thumbnail = preg_match("/phocathumbnail/i", $value->image_filename); + if ($thumbnail) { + $imageFileName = ''; + } else { + $imageFileName = 'style="background: url(\''.$this->t['cssimgpath'].$value->image_filename.'\') 0 center no-repeat;"'; + }*/ + //} + + //$outputFile .= '
      '; + + $outputFile .= '
      '. $imageFileName['filenamethumb'] + . '
      '; + + $outputFile .= ''. $value->title.'' + .' (' .$value->categorytitle.')'; + + $outputFile .= PhocaDownloadRenderFront::displayNewIcon($value->date, $this->t['displaynew']); + $outputFile .= PhocaDownloadRenderFront::displayHotIcon($value->hits, $this->t['displayhot']); + + $outputFile .= '
      ' . "\n"; + } + } + + if ($outputFile != '') { + echo '
       
      '; + echo '
      '; + echo '

      '. JText::_('COM_PHOCADOWNLOAD_MOST_DOWNLOADED_FILES').'

      '; + echo $outputFile; + echo '
      '; + } +} +echo '
       
      '; +echo $this->t['dev']; +?> diff --git a/packages/phocadownload/components/com_phocadownload/views/categories/view.html.php b/packages/phocadownload/components/com_phocadownload/views/categories/view.html.php index 23a55ea8..f6db2cdb 100644 --- a/packages/phocadownload/components/com_phocadownload/views/categories/view.html.php +++ b/packages/phocadownload/components/com_phocadownload/views/categories/view.html.php @@ -20,12 +20,11 @@ class PhocaDownloadViewCategories extends JViewLegacy $app = JFactory::getApplication(); $model = $this->getModel(); $document = JFactory::getDocument(); - $this->t['dw'] = PhocaDownloadRenderFront::renderPhocaDownload(); $this->t['p'] = $app->getParams(); $this->t['user'] = JFactory::getUser(); $this->t['categories'] = $model->getCategoriesList(); $this->t['mostvieweddocs'] = $model->getMostViewedDocsList($this->t['p']); - + $this->t['dev'] = PhocaDownloadRenderFront::renderPhocaDownload(); $this->t['displaynew'] = $this->t['p']->get( 'display_new', 0 ); $this->t['displayhot'] = $this->t['p']->get( 'display_hot', 0 ); $this->t['displaymostdownload'] = $this->t['p']->get( 'display_most_download', 1 ); @@ -38,6 +37,34 @@ class PhocaDownloadViewCategories extends JViewLegacy $this->t['displaymaincatdesc'] = $this->t['p']->get( 'display_main_cat_desc', 0 ); $this->t['display_specific_layout'] = $this->t['p']->get( 'display_specific_layout', 0 ); + + + + // Bootstrap 3 Layout + $this->tmpl['display_bootstrap3_layout'] = $this->t['p']->get( 'display_bootstrap3_layout', 0 ); + if ($this->tmpl['display_bootstrap3_layout'] == 1) { + + JHtml::_('jquery.framework', false); + JHTML::stylesheet('media/com_phocadownload/bootstrap/css/bootstrap.min.css' ); + JHTML::stylesheet('media/com_phocadownload/bootstrap/css/bootstrap.extended.css' ); + // Loaded by jquery.framework; + $document->addScript(JURI::root(true).'/media/com_phocadownload/bootstrap/js/bootstrap.min.js'); + + + $document->addScript(JURI::root(true).'/media/com_phocadownload/js/jquery.matchHeight.js'); + $document->addScriptDeclaration( + 'jQuery(window).load(function(){ + jQuery(\'.ph-thumbnail\').matchHeight(); + });'); + + /*$document->addScript(JURI::root(true).'/media/com_phocadownload/js/jquery.equalheights.min.js'); + $document->addScriptDeclaration( + 'jQuery(window).load(function(){ + jQuery(\'.ph-thumbnail\').equalHeights(); + });');*/ + + } + PhocaDownloadRenderFront::renderAllCSS(); $imagePath = PhocaDownloadPath::getPathSet('icon'); @@ -46,7 +73,11 @@ class PhocaDownloadViewCategories extends JViewLegacy $this->t['absfilepath'] = $filePath['orig_abs_ds']; $this->_prepareDocument(); - parent::display($tpl); + if ($this->tmpl['display_bootstrap3_layout'] == 1) { + parent::display('bootstrap'); + } else { + parent::display($tpl); + } } diff --git a/packages/phocadownload/components/com_phocadownload/views/category/metadata.xml b/packages/phocadownload/components/com_phocadownload/views/category/metadata.xml index 5c8f97c3..ec67014e 100644 --- a/packages/phocadownload/components/com_phocadownload/views/category/metadata.xml +++ b/packages/phocadownload/components/com_phocadownload/views/category/metadata.xml @@ -1,6 +1,6 @@ - - - - - + + + + + \ No newline at end of file diff --git a/packages/phocadownload/components/com_phocadownload/views/category/tmpl/default.php b/packages/phocadownload/components/com_phocadownload/views/category/tmpl/default.php index fb411570..2f4ba3b0 100644 --- a/packages/phocadownload/components/com_phocadownload/views/category/tmpl/default.php +++ b/packages/phocadownload/components/com_phocadownload/views/category/tmpl/default.php @@ -1,16 +1,339 @@ t['p']->get( 'pageclass_sfx' ).'">'; +echo ""; + +if ($this->category[0]->id == 41) { + echo ''; +} + +if (isset($_GET['program']) && $_GET['program'] == 1) { + echo ''; +} + +echo ''; + +echo '
      '; + +$rgn .= isset($_GET['rgn']) ? '&rgn=' . $_GET['rgn'] : '&rgn=Int'; + +if ($this->t['p']->get('show_page_heading')) { + echo '

      ' . $this->escape($this->t['p']->get('page_heading')) . '

      '; } // Search by tags - the category rights must be checked for every file $this->checkRights = 1; // ------------------------------------------------------------------- if ((int)$this->t['tagid'] > 0) { - + echo $this->loadTemplate('files'); $this->checkRights = 1; if (count($this->files)) { @@ -20,10 +343,10 @@ if ((int)$this->t['tagid'] > 0) { if (!empty($this->category[0])) { echo '
      '; if ($this->t['display_up_icon'] == 1) { - + if (isset($this->category[0]->parentid)) { if ($this->category[0]->parentid == 0) { - + $linkUp = JRoute::_(PhocaDownloadRoute::getCategoriesRoute()); $linkUpText = JText::_('COM_PHOCADOWNLOAD_CATEGORIES'); } else if ($this->category[0]->parentid > 0) { @@ -31,12 +354,12 @@ if ((int)$this->t['tagid'] > 0) { $linkUpText = $this->category[0]->parenttitle; } else { $linkUp = '#'; - $linkUpText = ''; + $linkUpText = ''; } echo ''; + . '' + . JHTML::_('image', $this->t['mediapath']->media_img_rel . 'up.png', JText::_('COM_PHOCADOWNLOAD_UP')) + . '
      '; } } } else { @@ -44,7 +367,247 @@ if ((int)$this->t['tagid'] > 0) { } if (!empty($this->category[0])) { - + $warehouseParam = ''; + if ($this->t['scaleParam'] != '') + $warehouseParam = preg_replace('/&/', '?', $this->t['scaleParam'], 1); + + if (isset($_GET['program'])) { + $warehouseParam .= isset($_GET['rgn']) ? '&rgn=' . $_GET['rgn'] : '&rgn=Int'; + } else { + $warehouseParam .= isset($_GET['rgn']) ? '?rgn=' . $_GET['rgn'] : '?rgn=Int'; + } + + if (isset($_GET['rgn']) && $_GET['rgn'] == 'Cn') { + $img = '/public/images/cloud_library/gstar_bim_logo.png'; + } else { + $img = '/public/images/cloud_library/ARCHLineXP_logo_ARCHITECT_2017_big_cube_no_text.jpg'; + } + + echo '
      '; + echo '
      '; + echo '
      '; + echo ''; + echo '
      '; + + if (!isset($_GET['rgn']) || $_GET['rgn'] != 'Cn') { + echo '
      '; + if ($this->t['user']->id > 0) { + echo ''; + } else { + echo ''; + echo ''; + } + echo '
      '; + echo '
      '; + } + + echo '
      '; + echo '
      '; + + $modelsActive = $this->t['brandClass'] != '' ? 'active-link' : ''; + $brandActive = $this->t['brandClass'] == '' ? 'active-link' : ''; + $AlParam = isset($_GET['program']) && $_GET['program'] == '1' ? '&program=' . $_GET['program'] : ''; + $AlParam .= isset($_GET['rgn']) ? '&rgn=' . $_GET['rgn'] : 'rgn=Int'; + + echo '
      '; + echo '
      '; + echo '' . JText::_('COM_PHOCADOWNLOAD_DOWNLOAD_MODELS') . ''; + echo '
      '; + echo '
      '; + echo '' . JText::_('COM_PHOCADOWNLOAD_DOWNLOAD_BRANDS') . ''; + echo '
      '; + echo '
      '; + + echo ''; + echo '
      '; + echo '
      '; + echo '
      '; + echo '
      '; + echo '
      '; + echo '
      '; + + if ($this->category[0]->id == 41 && !isset($_GET['brand']) && !isset($_GET['category'])) { + if ($this->t['background']) { + echo '
      '; + echo ''; + echo ''; + echo '
      '; + } + + echo '

      ' . $this->t['desc'] . '

      '; + } else { + echo '
      '; + echo ''; + echo '
      '; + } + + echo '
      '; + echo '
      '; + echo '
      '; // USER RIGHT - Access of categories (if file is included in some not accessed category) - - - - - // ACCESS is handled in SQL query, ACCESS USER ID is handled here (specific users) $rightDisplay = 0; @@ -55,36 +618,149 @@ if ((int)$this->t['tagid'] > 0) { if ($rightDisplay == 1) { $this->checkRights = 0; $l = new PhocaDownloadLayout(); - - echo '

      '.$this->category[0]->title. '

      '; + + if ($this->category[0]->id != 41) { + echo '
      '; + + echo ''; + + echo '
      '; + echo '
      '; + echo ''; + echo '
      '; + echo '
      '; + + echo '
      '; + echo '
      '; + echo ''; + echo '
      '; + echo '
      '; + + if (!empty($this->files) && count($this->files) > 1 && isset($_GET['program']) && $_GET['program'] == '1') { + echo ''; + } + + echo '
      '; + + echo '
      '; + echo '
      '; + } + + // Old + // echo '

      ' . $this->category[0]->title . '

      '; // Description /*if ($l->isValueEditor($this->category[0]->description)) { echo '
      '.$this->category[0]->description.'
      '; }*/ - + + + + if ($this->t['no_result'] || (empty($this->files) && empty($this->subcategories))) { + echo '
      '; + echo '

      ' . JText::_('COM_PHOCADOWNLOAD_CLOUD_LIBRARY_NO_RESULT') . '

      '; + echo '
      '; + } + + if (count($this->category[0])) { + echo $this->loadTemplate('pagination'); + } + + // New + if (true && !empty($this->subcategories)) { + $folderClass = $this->category[0]->id != 41 ? 'folder-row' : ''; + $itemClass = $this->category[0]->id != 41 ? 'item-row' : ''; + $AlParam = isset($_GET['program']) && $_GET['program'] == '1' ? '&program=' . $_GET['program'] : ''; + $AlParam .= isset($_GET['rgn']) ? '&rgn=' . $_GET['rgn'] : 'rgn=Int'; + $i = 1; + $imgClass = ''; + + echo '
      '; + foreach ($this->subcategories as $valueSubCat) { + if ($i % 8 == 1) + echo '
      '; + + echo '
      '; + echo ''; + + if (file_exists($_SERVER['DOCUMENT_ROOT'] . '/public/images/cloud_library/' . $valueSubCat->alias . '.png') && ($this->category[0]->id == 41 || $this->category[0]->parentid == 41)) { + if ($valueSubCat->catTitle != '') { + $titles = json_decode($valueSubCat->catTitle); + $title = $this->t['lang'] == 'hu-HU' ? $titles->hun : $titles->eng; + } else { + $title = $valueSubCat->title; + } + + if ($this->category[0]->id != 41) { + $imgClass = ' sub-img'; + } + + echo ''; + echo ''; + echo '

      ' . $title . '

      '; + } else { + if ($this->category[0]->parentid == 41 || $this->category[0]->id == 41) { + echo ''; + echo ''; + echo '

      ' . $valueSubCat->title . '

      '; + } else { + // Folder css + /*echo '
      '; + echo '
      '; + echo $valueSubCat->title; + echo '
      '; + echo '
      '; + echo '';*/ + echo ''; + echo ''; + echo '

      ' . $valueSubCat->title . '

      '; + } + } + echo '
      '; + + if ($i % 8 == 0) + echo '
      '; + + $i++; + } + echo '
      '; + echo '
      '; + } + // Description - if ($l->isValueEditor($this->category[0]->description)) { + if ($l->isValueEditor($this->category[0]->description)) { echo '
      '; echo JHTML::_('content.prepare', $this->category[0]->description); echo '
      '; - } + } // Subcategories - - if (!empty($this->subcategories)) { + + // Old + if (false) { foreach ($this->subcategories as $valueSubCat) { - echo '
      '; - echo ''. $valueSubCat->title.''; - echo ' ('.$valueSubCat->numdoc.')
      ' . "\n"; + echo '' . $valueSubCat->title . ''; + + // Old + //echo ' (' . $valueSubCat->numdoc . ')
      ' . "\n"; + + // New + echo '
      ' . "\n"; $subcategory = 1; + + echo '
      '; } - - echo '
      '; } - + // ===================================================================================== // BEGIN LAYOUT AREA // ===================================================================================== @@ -94,27 +770,27 @@ if ((int)$this->t['tagid'] > 0) { // ===================================================================================== // END LAYOUT AREA // ===================================================================================== - - if (count($this->category[0])) { + + /*if (count($this->category[0])) { echo $this->loadTemplate('pagination'); - } - + }*/ + if ($this->t['display_category_comments'] == 1) { if (JComponentHelper::isEnabled('com_jcomments', true)) { - include_once(JPATH_BASE.DS.'components'.DS.'com_jcomments'.DS.'jcomments.php'); - echo JComments::showComments($this->category[0]->id, 'com_phocadownload', JText::_('COM_PHOCADOWNLOAD_CATEGORY') .' '. $this->category[0]->title); + include_once(JPATH_BASE . DS . 'components' . DS . 'com_jcomments' . DS . 'jcomments.php'); + echo JComments::showComments($this->category[0]->id, 'com_phocadownload', JText::_('COM_PHOCADOWNLOAD_CATEGORY') . ' ' . $this->category[0]->title); } } - + if ($this->t['display_category_comments'] == 2) { - echo '
      '.$this->loadTemplate('comments-fb').'
      '; + echo '
      ' . $this->loadTemplate('comments-fb') . '
      '; } - } else { - echo '

      '.JText::_('COM_PHOCADOWNLOAD_CATEGORY'). '

      '; - echo '
      '.JText::_('COM_PHOCADOWNLOAD_NO_RIGHTS_ACCESS_CATEGORY').'
      '; + echo '

      ' . JText::_('COM_PHOCADOWNLOAD_CATEGORY') . '

      '; + echo '
      ' . JText::_('COM_PHOCADOWNLOAD_NO_RIGHTS_ACCESS_CATEGORY') . '
      '; } - + + echo '
      '; echo '
      '; } else { //echo '

       

      '; @@ -122,5 +798,51 @@ if ((int)$this->t['tagid'] > 0) { } } echo '
       
      '; -echo $this->t['dg']; +echo $this->t['afd']; ?> + + + + \ No newline at end of file diff --git a/packages/phocadownload/components/com_phocadownload/views/category/tmpl/default.xml b/packages/phocadownload/components/com_phocadownload/views/category/tmpl/default.xml index 84bd2e37..9e4be1e7 100644 --- a/packages/phocadownload/components/com_phocadownload/views/category/tmpl/default.xml +++ b/packages/phocadownload/components/com_phocadownload/views/category/tmpl/default.xml @@ -1,32 +1,32 @@ - - - - - - - - COM_PHOCADOWNLOAD_CATEGORY_LIST_LAYOUT - COM_PHOCADOWNLOAD_CATEGORY_LIST_LAYOUT_DESC - -
      - - -
      -
      - - -
      - - - - - - - - - - - -
      -
      + + + + + + + + COM_PHOCADOWNLOAD_CATEGORY_LIST_LAYOUT + COM_PHOCADOWNLOAD_CATEGORY_LIST_LAYOUT_DESC + +
      + + +
      +
      + + +
      + + + + + + + + + + + +
      +
      \ No newline at end of file diff --git a/packages/phocadownload/components/com_phocadownload/views/category/tmpl/default_bootstrap.php b/packages/phocadownload/components/com_phocadownload/views/category/tmpl/default_bootstrap.php new file mode 100644 index 00000000..0b73a880 --- /dev/null +++ b/packages/phocadownload/components/com_phocadownload/views/category/tmpl/default_bootstrap.php @@ -0,0 +1,132 @@ +t['p']->get( 'pageclass_sfx' ).'">'; + +if ( $this->t['p']->get( 'show_page_heading' ) ) { + echo '

      '. $this->escape($this->t['p']->get('page_heading')) . '

      '; +} +// Search by tags - the category rights must be checked for every file +$this->checkRights = 1; +// ------------------------------------------------------------------- +if ((int)$this->t['tagid'] > 0) { + + echo $this->loadTemplate('files'); + $this->checkRights = 1; + if (count($this->files)) { + echo $this->loadTemplate('pagination'); + } +} else { + if (!empty($this->category[0])) { + echo '
      '; + if ($this->t['display_up_icon'] == 1) { + + if (isset($this->category[0]->parentid)) { + if ($this->category[0]->parentid == 0) { + + $linkUp = JRoute::_(PhocaDownloadRoute::getCategoriesRoute()); + $linkUpText = JText::_('COM_PHOCADOWNLOAD_CATEGORIES'); + } else if ($this->category[0]->parentid > 0) { + $linkUp = JRoute::_(PhocaDownloadRoute::getCategoryRoute($this->category[0]->parentid, $this->category[0]->parentalias)); + $linkUpText = $this->category[0]->parenttitle; + } else { + $linkUp = '#'; + $linkUpText = ''; + } + + + echo ''; + } + } + } else { + echo '
      '; + } + + if (!empty($this->category[0])) { + + // USER RIGHT - Access of categories (if file is included in some not accessed category) - - - - - + // ACCESS is handled in SQL query, ACCESS USER ID is handled here (specific users) + $rightDisplay = 0; + if (!empty($this->category[0])) { + $rightDisplay = PhocaDownloadAccess::getUserRight('accessuserid', $this->category[0]->cataccessuserid, $this->category[0]->cataccess, $this->t['user']->getAuthorisedViewLevels(), $this->t['user']->get('id', 0), 0); + } + + + // - - - - - - - - - - - - - - - - - - - - - - + if ($rightDisplay == 1) { + $this->checkRights = 0; + $l = new PhocaDownloadLayout(); + + echo '

      '.$this->category[0]->title. '

      '; + + // Description + /*if ($l->isValueEditor($this->category[0]->description)) { + echo '
      '.$this->category[0]->description.'
      '; + }*/ + + // Description + if ($l->isValueEditor($this->category[0]->description)) { + echo '
      '; + echo JHTML::_('content.prepare', $this->category[0]->description); + echo '
      '; + } + + // Subcategories + + if (!empty($this->subcategories)) { + foreach ($this->subcategories as $valueSubCat) { + + echo '
      '; + echo ''. $valueSubCat->title.''; + echo ' ('.$valueSubCat->numdoc.')
      ' . "\n"; + $subcategory = 1; + } + + echo '
      '; + } + + // ===================================================================================== + // BEGIN LAYOUT AREA + // ===================================================================================== + + echo $this->loadTemplate('files_bootstrap'); + + // ===================================================================================== + // END LAYOUT AREA + // ===================================================================================== + + if (count($this->category[0])) { + echo $this->loadTemplate('pagination'); + } + + if ($this->t['display_category_comments'] == 1) { + if (JComponentHelper::isEnabled('com_jcomments', true)) { + include_once(JPATH_BASE.DS.'components'.DS.'com_jcomments'.DS.'jcomments.php'); + echo JComments::showComments($this->category[0]->id, 'com_phocadownload', JText::_('COM_PHOCADOWNLOAD_CATEGORY') .' '. $this->category[0]->title); + } + } + + if ($this->t['display_category_comments'] == 2) { + echo '
      '.$this->loadTemplate('comments-fb').'
      '; + } + + } else { + echo '

      '.JText::_('COM_PHOCADOWNLOAD_CATEGORY'). '

      '; + echo '
      '.JText::_('COM_PHOCADOWNLOAD_NO_RIGHTS_ACCESS_CATEGORY').'
      '; + } + + echo '
      '; + } else { + //echo '

       

      '; + echo '
      '; + } +} + +echo $this->t['bootstrapmodal']; +echo '
       
      '; +echo $this->t['afd']; +?> diff --git a/packages/phocadownload/components/com_phocadownload/views/category/tmpl/default_comments-fb.php b/packages/phocadownload/components/com_phocadownload/views/category/tmpl/default_comments-fb.php index 970b397b..08e923ee 100644 --- a/packages/phocadownload/components/com_phocadownload/views/category/tmpl/default_comments-fb.php +++ b/packages/phocadownload/components/com_phocadownload/views/category/tmpl/default_comments-fb.php @@ -1,42 +1,42 @@ -
      $value) { - $uri->delVar($value); - } - } - - if ($this->t['fb_comment_app_id'] == '') { - echo JText::_('COM_PHOCADOWNLOAD_ERROR_FB_APP_ID_EMPTY'); - } else { - - $cCount = ''; - if ((int)$this->t['fb_comment_count'] > 0) { - $cCount = 'numposts="'.$this->t['fb_comment_count'].'"'; - } - -?> width="t['fb_comment_width'] ?>"> -
      - - -
      +
      $value) { + $uri->delVar($value); + } + } + + if ($this->t['fb_comment_app_id'] == '') { + echo JText::_('COM_PHOCADOWNLOAD_ERROR_FB_APP_ID_EMPTY'); + } else { + + $cCount = ''; + if ((int)$this->t['fb_comment_count'] > 0) { + $cCount = 'numposts="'.$this->t['fb_comment_count'].'"'; + } + +?> width="t['fb_comment_width'] ?>"> +
      + + +
      diff --git a/packages/phocadownload/components/com_phocadownload/views/category/tmpl/default_files.php b/packages/phocadownload/components/com_phocadownload/views/category/tmpl/default_files.php index 2252b7c3..1e2058a8 100644 --- a/packages/phocadownload/components/com_phocadownload/views/category/tmpl/default_files.php +++ b/packages/phocadownload/components/com_phocadownload/views/category/tmpl/default_files.php @@ -1,15 +1,211 @@ files)) { +echo ''; + +// New +if (true) { + $itemCounter = 12 / (int)$this->t['scale']; + $i = 1; + foreach ($this->files as $v) { - + if ($i % $itemCounter == 1 || $i == 0) + echo '
      '; + + $jsonFile = explode(".environment", $v->filename); + + $params = stripslashes($v->params); + $private = json_decode($params)->private == 'true'; + + if ($private && $v->license != $this->t['user']->nUserID) + continue; + + /*if ($private) { + $hlnum = substr($v->license, 0, 6); + if (!array_key_exists($hlnum, $this->t['hlnums'])) + continue; + }*/ + + $cBtnDanger = 'btn btn-danger'; + $cBtnWarning = 'btn btn-warning'; + $cBtnSuccess = 'btn btn-success'; + $cBtnInfo = 'btn btn-info'; + + // General + $linkDownloadB = ''; + $linkDownloadE = ''; + $pageID = 0; + $lang = ''; + if ((int)$v->confirm_license > 0 || $this->t['display_file_view'] == 1) { + $linkDownloadB = ''; // we need pagination to go back + $linkDownloadE = ''; + } else { + if ($v->link_external != '' && $v->directlink == 1) { + $linkDownloadB = ''; + $linkDownloadE = ''; + } else { + if ($_GET['Itemid'] == 745) { + $linkDownloadB = ''; + $linkDownloadE = ''; + $pageID = 744; + $lang = 'en'; + } else { + $linkDownloadB = ''; + $linkDownloadE = ''; + $pageID = 729; + $lang = 'hu'; + } + } + } + + $title = ''; + $len = (isset($_GET['scale']) && $_GET['scale'] <= 2) || (isset($_GET['program']) && $_GET['program'] == '1') ? 15 : 30; + if (isset($_GET['scale']) && $_GET['scale'] <= 2 && isset($_GET['program']) && $_GET['program'] == '1') + $len = 9; + + if (strlen($v->title) > $len) { + $title = substr($v->title, 0, $len) . '...'; + } else { + $title = $v->title; + } + + // $this->t['brandClass'] == '' + $param = $_GET['brand'] != '' && $_GET['productLine'] != '' ? '&brand=' . $_GET['brand'] . '&productLine=' . $_GET['productLine'] : ''; + + $param = ''; + if (isset($_GET['category']) && $_GET['category'] != '') + $param .= '&category=' . $_GET['category']; + + if (isset($_GET['rootCategory']) && $_GET['rootCategory'] != '') + $param .= '&rootCategory=' . $_GET['rootCategory']; + + if (isset($_GET['brand']) && $_GET['brand'] != '') + $param .= '&brand=' . $_GET['brand']; + + if (isset($_GET['productLine']) && $_GET['productLine'] != '') + $param .= '&productLine=' . $_GET['productLine']; + + if (isset($_GET['limitstart']) && $_GET['limitstart'] != '') + $param .= '&limitstart=' . $_GET['limitstart']; + + if (isset($_GET['limit']) && $_GET['limit'] != '') + $param .= '&limit=' . $_GET['limit']; + + $param .= isset($_GET['rgn']) ? '&rgn=' . $_GET['rgn'] : '&rgn=INT'; + + // pdbuttondownload + $pdButtonDownload = '
      '; + $pdButtonDownload .= str_replace('class=""', 'class="' . $cBtnSuccess . '"', $linkDownloadB) . JText::_('COM_PHOCADOWNLOAD_DOWNLOAD') . $linkDownloadE; + + $pdButtonDownload .= '
      '; + + echo '
      '; + echo '
      '; + echo ''; + echo '
      '; + echo ''; + echo '
      '; + echo '
      '; + echo '
      '; + echo '
      '; + echo '
      '; + echo $linkDownloadB; + echo ''; + echo $linkDownloadE; + echo '
      '; + echo '
      '; + echo ''; + echo $title; + echo ''; + echo '
      '; + echo '
      '; + echo '
      '; + echo '
      '; + echo '
      '; + + if ($i % $itemCounter == 0 && $i != 0) + echo '
      '; + + $i++; + } +} + +// Old +if (false) { + foreach ($this->files as $v) { + + + if ($this->checkRights == 1) { // USER RIGHT - Access of categories (if file is included in some not accessed category) - - - - - // ACCESS is handled in SQL query, ACCESS USER ID is handled here (specific users) $rightDisplay = 0; + + if (!isset($v->cataccessuserid)) { + $v->cataccessuserid = 0; + } if (isset($v->catid) && isset($v->cataccessuserid) && isset($v->cataccess)) { $rightDisplay = PhocaDownloadAccess::getUserRight('accessuserid', $v->cataccessuserid, $v->cataccess, $this->t['user']->getAuthorisedViewLevels(), $this->t['user']->get('id', 0), 0); } @@ -17,261 +213,325 @@ if (!empty($this->files)) { } else { $rightDisplay = 1; } - + if ($rightDisplay == 1) { - + + // Test if we have information about category - if we are displaying items by e.g. search outcomes - tags + // we don't have any ID of category so we need to load it for each file. + $this->catitem[$v->id] = new StdClass(); + $this->catitem[$v->id]->id = 0; + $this->catitem[$v->id]->alias = ''; + + if (isset($this->category[0]->id) && isset($this->category[0]->alias)) { + $this->catitem[$v->id]->id = (int)$this->category[0]->id; + $this->catitem[$v->id]->alias = $this->category[0]->alias; + } else { + $catDb = PhocaDownloadCategory::getCategoryByFile($v->id); + if (isset($catDb->id) && isset($catDb->alias)) { + $this->catitem[$v->id]->id = (int)$catDb->id; + $this->catitem[$v->id]->alias = $catDb->alias; + } + $categorySetTemp = 1; + } + + $cBtnDanger = 'btn btn-danger'; + $cBtnWarning = 'btn btn-warning'; + $cBtnSuccess = 'btn btn-success'; + $cBtnInfo = 'btn btn-info'; + + /*$cBtnDanger = ''; + $cBtnWarning = ''; + $cBtnSuccess = ''; + $cBtnInfo = '';*/ + // General - $linkDownloadB = ''; - $linkDownloadE = ''; + $linkDownloadB = ''; + $linkDownloadE = ''; + $pageID = 0; + $lang = ''; if ((int)$v->confirm_license > 0 || $this->t['display_file_view'] == 1) { - $linkDownloadB = ''; // we need pagination to go back - $linkDownloadE =''; + $linkDownloadB = ''; // we need pagination to go back + $linkDownloadE = ''; } else { if ($v->link_external != '' && $v->directlink == 1) { - $linkDownloadB = ''; - $linkDownloadE =''; + $linkDownloadB = ''; + $linkDownloadE = ''; } else { - $linkDownloadB = ''; - $linkDownloadE =''; + if ($_GET['Itemid'] == 745) { + $linkDownloadB = ''; + $linkDownloadE = ''; + $pageID = 744; + $lang = 'en'; + } else { + $linkDownloadB = ''; + $linkDownloadE = ''; + $pageID = 729; + $lang = 'hu'; + } } } - + // pdtextonly - $pdTextOnly = '
      '.$v->description.'
      ' . "\n"; - + $pdTextOnly = '
      ' . $v->description . '
      ' . "\n"; + // pdfile if ($v->filename != '') { $imageFileName = $l->getImageFileName($v->image_filename, $v->filename); - + $pdFile = '
      '; if ($this->t['filename_or_name'] == 'filenametitle') { - $pdFile .= '
      '. $v->title . '
      '; + $pdFile .= '
      ' . $v->title . '
      '; } - - $pdFile .= '
      '. $imageFileName['filenamethumb'] - . '
      '; - + + $pdFile .= '
      ' . $imageFileName['filenamethumb'] + . '
      '; + $pdFile .= '
      '; - $pdFile .= $linkDownloadB .$l->getName($v->title, $v->filename) .$linkDownloadE; + + // Old + //$pdFile .= $linkDownloadB . $l->getName($v->title, $v->filename) . $linkDownloadE; + + // New + $pdFile .= '' . $v->title . ''; $pdFile .= '
      '; - + $pdFile .= PhocaDownloadRenderFront::displayNewIcon($v->date, $this->t['displaynew']); $pdFile .= PhocaDownloadRenderFront::displayHotIcon($v->hits, $this->t['displayhot']); - + + // String Tags - title suffix + $tagsS = $l->displayTagsString($v->tags_string); + if ($tagsS != '') { + $pdFile .= '
      ' . $tagsS . '
      '; + } + + // Tags - title suffix + if ($this->t['display_tags_links'] == 4 || $this->t['display_tags_links'] == 6) { + $tags = $l->displayTags($v->id, 1); + if ($tags != '') { + $pdFile .= '
      ' . $tags . '
      '; + } + } + //Specific icons if (isset($v->image_filename_spec1) && $v->image_filename_spec1 != '') { - $pdFile .= '
      '.$l->getImageDownload($v->image_filename_spec1).'
      '; - } + $pdFile .= '
      ' . $l->getImageDownload($v->image_filename_spec1) . '
      '; + } if (isset($v->image_filename_spec2) && $v->image_filename_spec2 != '') { - $pdFile .= '
      '.$l->getImageDownload($v->image_filename_spec2).'
      '; - } - + $pdFile .= '
      ' . $l->getImageDownload($v->image_filename_spec2) . '
      '; + } + $pdFile .= '
      ' . "\n"; } - + + + + + // pdbuttonplay $pdButtonPlay = ''; if (isset($v->filename_play) && $v->filename_play != '') { $fileExt = PhocaDownloadFile::getExtension($v->filename_play); $canPlay = PhocaDownloadFile::canPlay($v->filename_play); - + if ($canPlay) { // Special height for music only $buttonPlOptions = $this->t['buttonpl']->options; if ($fileExt == 'mp3' || $fileExt == 'ogg') { $buttonPlOptions = $this->t['buttonpl']->optionsmp3; } - $playLink = JRoute::_(PhocaDownloadRoute::getFileRoute($v->id,$v->catid,$v->alias, $v->categoryalias,0, 'play').$this->t['limitstarturl']); + $playLink = JRoute::_(PhocaDownloadRoute::getFileRoute($v->id, $v->catid, $v->alias, $v->categoryalias, 0, 'play') . $this->t['limitstarturl']); + //class="btn btn-danger" $pdButtonPlay .= '
      '; if ($this->t['play_popup_window'] == 1) { - $pdButtonPlay .= ''. JText::_('COM_PHOCADOWNLOAD_PLAY').''; - } else { - $pdButtonPlay .= ''. JText::_('COM_PHOCADOWNLOAD_PLAY').''; + $pdButtonPlay .= '' . JText::_('COM_PHOCADOWNLOAD_PLAY') . ''; + } else { + $pdButtonPlay .= '' . JText::_('COM_PHOCADOWNLOAD_PLAY') . ''; } $pdButtonPlay .= '
      '; } } - + // pdbuttonpreview $pdButtonPreview = ''; if (isset($v->filename_preview) && $v->filename_preview != '') { $fileExt = PhocaDownloadFile::getExtension($v->filename_preview); if ($fileExt == 'pdf' || $fileExt == 'jpeg' || $fileExt == 'jpg' || $fileExt == 'png' || $fileExt == 'gif') { - + $filePath = PhocaDownloadPath::getPathSet('filepreview'); - $filePath = str_replace ( '../', JURI::base(true).'/', $filePath['orig_rel_ds']); - $previewLink = $filePath . $v->filename_preview; + $filePath = str_replace('../', JURI::base(true) . '/', $filePath['orig_rel_ds']); + $previewLink = $filePath . $v->filename_preview; $pdButtonPreview .= '
      '; - + if ($this->t['preview_popup_window'] == 1) { - $pdButtonPreview .= ''. JText::_('COM_PHOCADOWNLOAD_PREVIEW').''; - } else { + $pdButtonPreview .= '' . JText::_('COM_PHOCADOWNLOAD_PREVIEW') . ''; + } else { if ($fileExt == 'pdf') { // Iframe - modal - $pdButtonPreview .= ''. JText::_('COM_PHOCADOWNLOAD_PREVIEW').''; + $pdButtonPreview .= '' . JText::_('COM_PHOCADOWNLOAD_PREVIEW') . ''; } else { // Image - modal - $pdButtonPreview .= ''. JText::_('COM_PHOCADOWNLOAD_PREVIEW').''; + $pdButtonPreview .= '' . JText::_('COM_PHOCADOWNLOAD_PREVIEW') . ''; } } $pdButtonPreview .= '
      '; } } - + // pdbuttondownload $pdButtonDownload = '
      '; - $pdButtonDownload .= str_replace('class=""', 'class="btn btn-success"', $linkDownloadB) . JText::_('COM_PHOCADOWNLOAD_DOWNLOAD') .$linkDownloadE; + $pdButtonDownload .= str_replace('class=""', 'class="' . $cBtnSuccess . '"', $linkDownloadB) . JText::_('COM_PHOCADOWNLOAD_DOWNLOAD') . $linkDownloadE; + $pdButtonDownload .= '
      '; - - - + + + // pdbuttondetails $d = ''; - + $pdTitle = ''; if ($v->title != '') { - $pdTitle .= '
      '.$v->title.'
      '; + $pdTitle .= '
      ' . $v->title . '
      '; $d .= $pdTitle; } - + $pdImage = ''; if ($v->image_download != '') { - $pdImage .= '
      '.$l->getImageDownload($v->image_download).'
      '; - $d .= $pdImage; + $pdImage .= '
      ' . $l->getImageDownload($v->image_download) . '
      '; + $d .= $pdImage; } - + $pdFileSize = ''; $fileSize = $l->getFilesize($v->filename); if ($fileSize != '') { - $pdFileSize .= '
      '.JText::_('COM_PHOCADOWNLOAD_FILESIZE').':
      '; - $pdFileSize .= '
      '.$fileSize.'
      '; + $pdFileSize .= '
      ' . JText::_('COM_PHOCADOWNLOAD_FILESIZE') . ':
      '; + $pdFileSize .= '
      ' . $fileSize . '
      '; $d .= $pdFileSize; } - + $pdVersion = ''; if ($v->version != '') { - $pdVersion .= '
      '.JText::_('COM_PHOCADOWNLOAD_VERSION').':
      '; - $pdVersion .= '
      '.$v->version.'
      '; + $pdVersion .= '
      ' . JText::_('COM_PHOCADOWNLOAD_VERSION') . ':
      '; + $pdVersion .= '
      ' . $v->version . '
      '; $d .= $pdVersion; } - + $pdLicense = ''; if ($v->license != '') { if ($v->license_url != '') { - $pdLicense .= '
      '.JText::_('COM_PHOCADOWNLOAD_LICENSE').':
      '; - $pdLicense .= ''; + $pdLicense .= '
      ' . JText::_('COM_PHOCADOWNLOAD_LICENSE') . ':
      '; + $pdLicense .= ''; } else { - $pdLicense .= '
      '.JText::_('COM_PHOCADOWNLOAD_LICENSE').':
      '; - $pdLicense .= '
      '.$v->license.'
      '; + $pdLicense .= '
      ' . JText::_('COM_PHOCADOWNLOAD_LICENSE') . ':
      '; + $pdLicense .= '
      ' . $v->license . '
      '; } $d .= $pdLicense; } - + $pdAuthor = ''; if ($v->author != '') { if ($v->author_url != '') { - $pdAuthor .= '
      '.JText::_('COM_PHOCADOWNLOAD_AUTHOR').':
      '; - $pdAuthor .= ''; + $pdAuthor .= '
      ' . JText::_('COM_PHOCADOWNLOAD_AUTHOR') . ':
      '; + $pdAuthor .= ''; } else { - $pdAuthor .= '
      '.JText::_('COM_PHOCADOWNLOAD_AUTHOR').':
      '; - $pdAuthor .= '
      '.$v->author.'
      '; + $pdAuthor .= '
      ' . JText::_('COM_PHOCADOWNLOAD_AUTHOR') . ':
      '; + $pdAuthor .= '
      ' . $v->author . '
      '; } $d .= $pdAuthor; } - + $pdAuthorEmail = ''; if ($v->author_email != '') { - $pdAuthorEmail .= '
      '.JText::_('COM_PHOCADOWNLOAD_EMAIL').':
      '; - $pdAuthorEmail .= '
      '. $l->getProtectEmail($v->author_email).'
      '; + $pdAuthorEmail .= '
      ' . JText::_('COM_PHOCADOWNLOAD_EMAIL') . ':
      '; + $pdAuthorEmail .= '
      ' . $l->getProtectEmail($v->author_email) . '
      '; $d .= $pdAuthorEmail; } - + $pdFileDate = ''; $fileDate = $l->getFileDate($v->filename, $v->date); if ($fileDate != '') { - $pdFileDate .= '
      '.JText::_('COM_PHOCADOWNLOAD_DATE').':
      '; - $pdFileDate .= '
      '.$fileDate.'
      '; + $pdFileDate .= '
      ' . JText::_('COM_PHOCADOWNLOAD_DATE') . ':
      '; + $pdFileDate .= '
      ' . $fileDate . '
      '; $d .= $pdFileDate; } - + $pdDownloads = ''; if ($this->t['display_downloads'] == 1) { - $pdDownloads .= '
      '.JText::_('COM_PHOCADOWNLOAD_DOWNLOADS').':
      '; - $pdDownloads .= '
      '.$v->hits.' x
      '; + $pdDownloads .= '
      ' . JText::_('COM_PHOCADOWNLOAD_DOWNLOADS') . ':
      '; + $pdDownloads .= '
      ' . $v->hits . ' x
      '; $d .= $pdDownloads; } - + $pdDescription = ''; if ($l->isValueEditor($v->description) && $this->t['display_description'] != 1 & $this->t['display_description'] != 2 & $this->t['display_description'] != 3) { - $pdDescription .= '
      '.$v->description.'
      '; + $pdDescription .= '
      ' . $v->description . '
      '; $d .= $pdDescription; } - + $pdFeatures = ''; if ($l->isValueEditor($v->features)) { - $pdFeatures .= '
      '.JText::_('COM_PHOCADOWNLOAD_FEATURES').'
      '; - $pdFeatures .= '
      '.$v->features.'
      '; - } - - $pdChangelog = ''; - if ($l->isValueEditor($v->changelog)) { - $pdChangelog .= '
      '.JText::_('COM_PHOCADOWNLOAD_CHANGELOG').'
      '; - $pdChangelog .= '
      '.$v->changelog.'
      '; - } - - $pdNotes = ''; - if ($l->isValueEditor($v->notes)) { - $pdNotes .= '
      '.JText::_('COM_PHOCADOWNLOAD_NOTES').'
      '; - $pdNotes .= '
      '.$v->notes.'
      '; + $pdFeatures .= '
      ' . JText::_('COM_PHOCADOWNLOAD_FEATURES') . '
      '; + $pdFeatures .= '
      ' . $v->features . '
      '; } - + $pdChangelog = ''; + if ($l->isValueEditor($v->changelog)) { + $pdChangelog .= '
      ' . JText::_('COM_PHOCADOWNLOAD_CHANGELOG') . '
      '; + $pdChangelog .= '
      ' . $v->changelog . '
      '; + } + + $pdNotes = ''; + if ($l->isValueEditor($v->notes)) { + $pdNotes .= '
      ' . JText::_('COM_PHOCADOWNLOAD_NOTES') . '
      '; + $pdNotes .= '
      ' . $v->notes . '
      '; + } + + // pdfiledesc $description = $l->isValueEditor($v->description); - + $pdFileDescTop = ''; $pdFileDescBottom = ''; $oFileDesc = ''; - + if ($description) { - switch($this->t['display_description']) { - + switch ($this->t['display_description']) { + case 1: - $pdFileDescTop = '
      '.$v->description.'
      '; - break; + $pdFileDescTop = '
      ' . $v->description . '
      '; + break; case 2: - $pdFileDescBottom = '
      '.$v->description.'
      '; - break; + $pdFileDescBottom = '
      ' . $v->description . '
      '; + break; case 3: - $oFileDesc = '
      '.$v->description.'
      '; - break; + $oFileDesc = '
      ' . PhocaDownloadUtils::strTrimAll($d) . '
      '; + break; case 4: - $pdFileDescTop = '
      '.$v->description.'
      '; - $oFileDesc = '
      '.PhocaDownloadUtils::strTrimAll($d).'
      '; - break; + $pdFileDescTop = '
      ' . $v->description . '
      '; + $oFileDesc = '
      ' . PhocaDownloadUtils::strTrimAll($d) . '
      '; + break; case 5: - $pdFileDescBottom = '
      '.$v->description.'
      '; - $oFileDesc = '
      '.PhocaDownloadUtils::strTrimAll($d).'
      '; - break; + $pdFileDescBottom = '
      ' . $v->description . '
      '; + $oFileDesc = '
      ' . PhocaDownloadUtils::strTrimAll($d) . '
      '; + break; case 6: - $pdFileDescTop = '
      '.$d.'
      '; - $oFileDesc = '
      '.PhocaDownloadUtils::strTrimAll($d).'
      '; - break; + $pdFileDescTop = '
      ' . $d . '
      '; + $oFileDesc = '
      ' . PhocaDownloadUtils::strTrimAll($d) . '
      '; + break; case 7: - $pdFileDescBottom = '
      '.$d.'
      '; - $oFileDesc = '
      '.PhocaDownloadUtils::strTrimAll($d).'
      '; - break; - + $pdFileDescBottom = '
      ' . $d . '
      '; + $oFileDesc = '
      ' . PhocaDownloadUtils::strTrimAll($d) . '
      '; + break; + case 8: - $oFileDesc = '
      '.PhocaDownloadUtils::strTrimAll($d).'
      '; - break; - + $oFileDesc = '
      ' . PhocaDownloadUtils::strTrimAll($d) . '
      '; + break; + default: - break; + break; } } - + // Detail Button if ($this->t['display_detail'] == 1) { if ($oFileDesc != '') { @@ -279,44 +539,51 @@ if (!empty($this->files)) { } else { $overlibcontent = $d; } - + $overlibcontent = str_replace('"', '\'', $overlibcontent); $sA = array(utf8_encode(chr(11)), utf8_encode(chr(160))); $eA = array("\t", "\n", "\r", "\0"); $overlibcontent = str_replace($sA, ' ', $overlibcontent); $overlibcontent = str_replace($eA, '', $overlibcontent); - $textO = htmlspecialchars(addslashes('
      '.$overlibcontent.'
      ')); - $overlib = "\n\n" ."onmouseover=\"return overlib('".$textO."', CAPTION, '".JText::_('COM_PHOCADOWNLOAD_DETAILS')."', BELOW, RIGHT, CSSCLASS, TEXTFONTCLASS, 'fontPhocaPDClass', FGCLASS, 'fgPhocaPDClass', BGCLASS, 'bgPhocaPDClass', CAPTIONFONTCLASS,'capfontPhocaPDClass', CLOSEFONTCLASS, 'capfontclosePhocaPDClass', STICKY, MOUSEOFF, CLOSETEXT, '".JText::_('COM_PHOCADOWNLOAD_CLOSE')."');\""; + $textO = htmlspecialchars(addslashes('
      ' . $overlibcontent . '
      ')); + $overlib = "\n\n" . "onmouseover=\"return overlib('" . $textO . "', CAPTION, '" . JText::_('COM_PHOCADOWNLOAD_DETAILS') . "', BELOW, RIGHT, CSSCLASS, TEXTFONTCLASS, 'fontPhocaPDClass', FGCLASS, 'fgPhocaPDClass', BGCLASS, 'bgPhocaPDClass', CAPTIONFONTCLASS,'capfontPhocaPDClass', CLOSEFONTCLASS, 'capfontclosePhocaPDClass', STICKY, MOUSEOFF, CLOSETEXT, '" . JText::_('COM_PHOCADOWNLOAD_CLOSE') . "');\""; $overlib .= " onmouseout=\"return nd();\"" . "\n"; - + + $pdButtonDetails = '
      '; - $pdButtonDetails .= ''. JText::_('COM_PHOCADOWNLOAD_DETAILS').''; + + // Old + //$pdButtonDetails .= '' . JText::_('COM_PHOCADOWNLOAD_DETAILS') . ''; + + // New + $pdButtonDetails .= '' . JText::_('COM_PHOCADOWNLOAD_DETAILS') . ''; $pdButtonDetails .= '
      '; } else if ($this->t['display_detail'] == 2) { $buttonDOptions = $this->t['buttond']->options; - $detailLink = JRoute::_(PhocaDownloadRoute::getFileRoute($v->id,$this->category[0]->id,$v->alias, $v->categoryalias, 0, 'detail').$this->t['limitstarturl']); + $detailLink = JRoute::_(PhocaDownloadRoute::getFileRoute($v->id, $this->catitem[$v->id]->id, $v->alias, $this->catitem[$v->id]->alias, 0, 'detail') . $this->t['limitstarturl']); $pdButtonDetails = '
      '; - $pdButtonDetails .= ''. JText::_('COM_PHOCADOWNLOAD_DETAILS').''; + $pdButtonDetails .= '' . JText::_('COM_PHOCADOWNLOAD_DETAILS') . ''; + $pdButtonDetails .= '
      '; } else { $pdButtonDetails = ''; } - - + + // pdmirrorlink1 $pdMirrorLink1 = ''; $mirrorOutput1 = PhocaDownloadRenderFront::displayMirrorLinks(1, $v->mirror1link, $v->mirror1title, $v->mirror1target); if ($mirrorOutput1 != '') { - + if ($this->t['display_mirror_links'] == 4 || $this->t['display_mirror_links'] == 6) { $classMirror = 'pd-button-mirror1'; $mirrorOutput1 = str_replace('class=""', 'class="btn"', $mirrorOutput1); } else { $classMirror = 'pd-mirror'; } - - $pdMirrorLink1 = '
      '.$mirrorOutput1.'
      '; + + $pdMirrorLink1 = '
      ' . $mirrorOutput1 . '
      '; } // pdmirrorlink2 @@ -329,89 +596,87 @@ if (!empty($this->files)) { } else { $classMirror = 'pd-mirror'; } - - $pdMirrorLink2 = '
      '.$mirrorOutput2.'
      '; + + $pdMirrorLink2 = '
      ' . $mirrorOutput2 . '
      '; } - + // pdreportlink $pdReportLink = PhocaDownloadRenderFront::displayReportLink(1, $v->title); - + // pdrating $pdRating = PhocaDownloadRate::renderRateFile($v->id, $this->t['display_rating_file']); - + // pdtags $pdTags = ''; if ($this->t['display_tags_links'] == 1 || $this->t['display_tags_links'] == 3) { - if ($l->displayTags($v->id) != '') { - $pdTags .= $l->displayTags($v->id); + $tags2 = $l->displayTags($v->id); + if ($tags2 != '') { + $pdTags .= '
      ' . $tags2 . '
      '; } - } - + //pdvideo $pdVideo = $l->displayVideo($v->video_filename, 0); - - + + // --------------------------------------------------- //Convert // --------------------------------------------------- if ($v->textonly == 1) { - echo '
      '. $pdTextOnly . '
      '; + echo '
      ' . $pdTextOnly . '
      '; } else { if ($this->t['display_specific_layout'] == 0) { echo '
      '; echo $pdFileDescTop; echo $pdFile; - echo '
      '.$pdButtonDownload.'
      '; - + echo '
      ' . $pdButtonDownload . '
      '; + if ($this->t['display_detail'] == 1 || $this->t['display_detail'] == 2) { - echo '
      '.$pdButtonDetails.'
      '; + echo '
      ' . $pdButtonDetails . '
      '; } - + if ($this->t['display_preview'] == 1 && $pdButtonPreview != '') { - echo '
      '.$pdButtonPreview.'
      '; + echo '
      ' . $pdButtonPreview . '
      '; } - + if ($this->t['display_play'] == 1 && $pdButtonPlay != '') { - echo '
      '.$pdButtonPlay.'
      '; + echo '
      ' . $pdButtonPlay . '
      '; } - + if ($this->t['display_mirror_links'] == 4 || $this->t['display_mirror_links'] == 6) { if ($pdMirrorLink2 != '') { - echo '
      '.$pdMirrorLink2.'
      '; + echo '
      ' . $pdMirrorLink2 . '
      '; } if ($pdMirrorLink1 != '') { - echo '
      '.$pdMirrorLink1.'
      '; + echo '
      ' . $pdMirrorLink1 . '
      '; } - } else if ($this->t['display_mirror_links'] == 1 || $this->t['display_mirror_links'] == 3) { - echo '
      '.$pdMirrorLink2.$pdMirrorLink1.'
      '; + echo '
      ' . $pdMirrorLink2 . $pdMirrorLink1 . '
      '; } - + if ($pdVideo != '') { - echo '
      '.$pdVideo.'
      '; + echo '
      ' . $pdVideo . '
      '; } - + if ($pdReportLink != '') { - echo '
      '.$pdReportLink.'
      '; + echo '
      ' . $pdReportLink . '
      '; } - + if ($pdRating != '') { - echo '
      '.$pdRating.'
      '; + echo '
      ' . $pdRating . '
      '; } - + if ($pdTags != '') { - echo '
      '.$pdTags.'
      '; + echo '
      ' . $pdTags . '
      '; } echo $pdFileDescBottom; echo '
      '; echo '
      '; - } else { - - /*$categoryLayout = '
      + + /*$categoryLayout = '
      {pdfiledesctop} {pdfile}
      {pdbuttondownload}
      @@ -424,18 +689,35 @@ if (!empty($this->files)) { {pdfiledescbottom}
      ';*/ - + $categoryLayout = PhocaDownloadSettings::getLayoutText('category'); $categoryLayoutParams = PhocaDownloadSettings::getLayoutParams('category'); - - $replace = array($pdTitle, $pdImage, $pdFile, $pdFileSize, $pdVersion, $pdLicense, $pdAuthor, $pdAuthorEmail, $pdFileDate, $pdDownloads, $pdDescription, $pdFeatures, $pdChangelog, $pdNotes, $pdMirrorLink1, $pdMirrorLink2, $pdReportLink, $pdRating, $pdTags, $pdFileDescTop, $pdFileDescBottom, $pdButtonDownload, $pdButtonDetails, $pdButtonPreview, $pdButtonPlay, $pdVideo ); + + $replace = array($pdTitle, $pdImage, $pdFile, $pdFileSize, $pdVersion, $pdLicense, $pdAuthor, $pdAuthorEmail, $pdFileDate, $pdDownloads, $pdDescription, $pdFeatures, $pdChangelog, $pdNotes, $pdMirrorLink1, $pdMirrorLink2, $pdReportLink, $pdRating, $pdTags, $pdFileDescTop, $pdFileDescBottom, $pdButtonDownload, $pdButtonDetails, $pdButtonPreview, $pdButtonPlay, $pdVideo); $output = str_replace($categoryLayoutParams['search'], $replace, $categoryLayout); - + echo $output; + + + // --------------------------------------------------- } - // --------------------------------------------------- } } } } ?> + + \ No newline at end of file diff --git a/packages/phocadownload/components/com_phocadownload/views/category/tmpl/default_files_bootstrap.php b/packages/phocadownload/components/com_phocadownload/views/category/tmpl/default_files_bootstrap.php new file mode 100644 index 00000000..4a717b5d --- /dev/null +++ b/packages/phocadownload/components/com_phocadownload/views/category/tmpl/default_files_bootstrap.php @@ -0,0 +1,541 @@ +files)) { + foreach ($this->files as $v) { + + + if ($this->checkRights == 1) { + // USER RIGHT - Access of categories (if file is included in some not accessed category) - - - - - + // ACCESS is handled in SQL query, ACCESS USER ID is handled here (specific users) + $rightDisplay = 0; + + if (!isset($v->cataccessuserid)) { + $v->cataccessuserid = 0; + } + + if (isset($v->catid) && isset($v->cataccessuserid) && isset($v->cataccess)) { + $rightDisplay = PhocaDownloadAccess::getUserRight('accessuserid', $v->cataccessuserid, $v->cataccess, $this->t['user']->getAuthorisedViewLevels(), $this->t['user']->get('id', 0), 0); + } + // - - - - - - - - - - - - - - - - - - - - - - + } else { + $rightDisplay = 1; + } + + if ($rightDisplay == 1) { + + + + // Test if we have information about category - if we are displaying items by e.g. search outcomes - tags + // we don't have any ID of category so we need to load it for each file. + $this->catitem[$v->id] = new StdClass(); + $this->catitem[$v->id]->id = 0; + $this->catitem[$v->id]->alias = ''; + + if (isset($this->category[0]->id) && isset($this->category[0]->alias)) { + $this->catitem[$v->id]->id = (int)$this->category[0]->id; + $this->catitem[$v->id]->alias = $this->category[0]->alias; + } else { + $catDb = PhocaDownloadCategory::getCategoryByFile($v->id); + if (isset($catDb->id) && isset($catDb->alias)) { + $this->catitem[$v->id]->id = (int)$catDb->id; + $this->catitem[$v->id]->alias = $catDb->alias; + } + $categorySetTemp = 1; + } + + // General + $linkDownloadB = ''; + $linkDownloadE = ''; + if ((int)$v->confirm_license > 0 || $this->t['display_file_view'] == 1) { + $linkDownloadB = ''; // we need pagination to go back + $linkDownloadE = ''; + } else { + if ($v->link_external != '' && $v->directlink == 1) { + $linkDownloadB = ''; + $linkDownloadE = ''; + } else { + $linkDownloadB = ''; + $linkDownloadE = ''; + } + } + + + // pdfile + if ($v->filename != '') { + $imageFileName = $l->getImageFileName($v->image_filename, $v->filename); + + $pdFile = '
      '; + if ($this->t['filename_or_name'] == 'filenametitle') { + $pdFile .= '
      ' . $v->title . '
      '; + } + + $pdFile .= '
      ' . $imageFileName['filenamethumb'] + . '
      '; + + $pdFile .= '
      '; + $pdFile .= $linkDownloadB . $l->getName($v->title, $v->filename) . $linkDownloadE; + $pdFile .= '
      '; + + $pdFile .= PhocaDownloadRenderFront::displayNewIcon($v->date, $this->t['displaynew']); + $pdFile .= PhocaDownloadRenderFront::displayHotIcon($v->hits, $this->t['displayhot']); + + + // String Tags - title suffix + $tagsS = $l->displayTagsString($v->tags_string); + if ($tagsS != '') { + $pdFile .= '
      ' . $tagsS . '
      '; + } + + // Tags - title suffix + if ($this->t['display_tags_links'] == 4 || $this->t['display_tags_links'] == 6) { + $tags = $l->displayTags($v->id, 1); + if ($tags != '') { + $pdFile .= '
      ' . $tags . '
      '; + } + } + + // Specific icons + if (isset($v->image_filename_spec1) && $v->image_filename_spec1 != '') { + $pdFile .= '
      ' . $l->getImageDownload($v->image_filename_spec1) . '
      '; + } + if (isset($v->image_filename_spec2) && $v->image_filename_spec2 != '') { + $pdFile .= '
      ' . $l->getImageDownload($v->image_filename_spec2) . '
      '; + } + + $pdFile .= '
      ' . "\n"; + } + + // pdbuttonplay + $pdButtonPlay = ''; + + if (isset($v->filename_play) && $v->filename_play != '') { + $fileExt = PhocaDownloadFile::getExtension($v->filename_play); + $canPlay = PhocaDownloadFile::canPlay($v->filename_play); + + if ($canPlay) { + // Special height for music only + $buttonPlOptions = $this->t['buttonpl']->optionsB; + if ($fileExt == 'mp3' || $fileExt == 'ogg') { + $buttonPlOptions = $this->t['buttonpl']->optionsmp3B; + } + $playLink = JRoute::_(PhocaDownloadRoute::getFileRoute($v->id, $v->catid, $v->alias, $v->categoryalias, 0, 'play') . $this->t['limitstarturl']); + //$pdButtonPlay .= '
      '; + if ($this->t['play_popup_window'] == 1) { + $pdButtonPlay = '' . JText::_('COM_PHOCADOWNLOAD_PLAY') . ''; + } else { + //$pdButtonPlay .= ''. JText::_('COM_PHOCADOWNLOAD_PLAY').''; + + $pdButtonPlay = '' . JText::_('COM_PHOCADOWNLOAD_PLAY') . ''; + } + //$pdButtonPlay .= '
      '; + } + } + + // pdbuttonpreview + $pdButtonPreview = ''; + if (isset($v->filename_preview) && $v->filename_preview != '') { + $fileExt = PhocaDownloadFile::getExtension($v->filename_preview); + if ($fileExt == 'pdf' || $fileExt == 'jpeg' || $fileExt == 'jpg' || $fileExt == 'png' || $fileExt == 'gif') { + + $filePath = PhocaDownloadPath::getPathSet('filepreview'); + $filePath = str_replace('../', JURI::base(true) . '/', $filePath['orig_rel_ds']); + $previewLink = $filePath . $v->filename_preview; + //$pdButtonPreview .= '
      '; + + if ($this->t['preview_popup_window'] == 1) { + $pdButtonPreview .= '' . JText::_('COM_PHOCADOWNLOAD_PREVIEW') . ''; + } else { + if ($fileExt == 'pdf') { + // Iframe - modal + //$pdButtonPreview .= ''. JText::_('COM_PHOCADOWNLOAD_PREVIEW').''; + $pdButtonPreview = 't['buttonpr']->optionsB . ' >' . JText::_('COM_PHOCADOWNLOAD_PREVIEW') . ''; + } else { + // Image - modal + //$pdButtonPreview .= ''. JText::_('COM_PHOCADOWNLOAD_PREVIEW').''; + + $pdButtonPreview = 't['buttonpr']->optionsimgB . ' >' . JText::_('COM_PHOCADOWNLOAD_PREVIEW') . ''; + } + } + //$pdButtonPreview .= '
      '; + } + } + + // pdbuttondownload + //$pdButtonDownload = '
      '; + $pdButtonDownload = str_replace('class=""', 'class="btn btn-success"', $linkDownloadB) . JText::_('COM_PHOCADOWNLOAD_DOWNLOAD') . $linkDownloadE; + //$pdButtonDownload .= '
      '; + + + + // pdbuttondetails + $d = ''; + + $pdTitle = ''; + if ($v->title != '') { + $pdTitle .= '
      ' . $v->title . '
      '; + $d .= $pdTitle; + } + + $pdImage = ''; + if ($v->image_download != '') { + $pdImage .= '
      ' . $l->getImageDownload($v->image_download) . '
      '; + $d .= $pdImage; + } + + $pdFileSize = ''; + $fileSize = $l->getFilesize($v->filename); + if ($fileSize != '') { + $pdFileSize .= '
      ' . JText::_('COM_PHOCADOWNLOAD_FILESIZE') . ':
      '; + $pdFileSize .= '
      ' . $fileSize . '
      '; + $d .= $pdFileSize; + } + + $pdVersion = ''; + if ($v->version != '') { + $pdVersion .= '
      ' . JText::_('COM_PHOCADOWNLOAD_VERSION') . ':
      '; + $pdVersion .= '
      ' . $v->version . '
      '; + $d .= $pdVersion; + } + + $pdLicense = ''; + if ($v->license != '') { + if ($v->license_url != '') { + $pdLicense .= '
      ' . JText::_('COM_PHOCADOWNLOAD_LICENSE') . ':
      '; + $pdLicense .= ''; + } else { + $pdLicense .= '
      ' . JText::_('COM_PHOCADOWNLOAD_LICENSE') . ':
      '; + $pdLicense .= '
      ' . $v->license . '
      '; + } + $d .= $pdLicense; + } + + $pdAuthor = ''; + if ($v->author != '') { + if ($v->author_url != '') { + $pdAuthor .= '
      ' . JText::_('COM_PHOCADOWNLOAD_AUTHOR') . ':
      '; + $pdAuthor .= ''; + } else { + $pdAuthor .= '
      ' . JText::_('COM_PHOCADOWNLOAD_AUTHOR') . ':
      '; + $pdAuthor .= '
      ' . $v->author . '
      '; + } + $d .= $pdAuthor; + } + + $pdAuthorEmail = ''; + if ($v->author_email != '') { + $pdAuthorEmail .= '
      ' . JText::_('COM_PHOCADOWNLOAD_EMAIL') . ':
      '; + $pdAuthorEmail .= '
      ' . $l->getProtectEmail($v->author_email) . '
      '; + $d .= $pdAuthorEmail; + } + + $pdFileDate = ''; + $fileDate = $l->getFileDate($v->filename, $v->date); + if ($fileDate != '') { + $pdFileDate .= '
      ' . JText::_('COM_PHOCADOWNLOAD_DATE') . ':
      '; + $pdFileDate .= '
      ' . $fileDate . '
      '; + $d .= $pdFileDate; + } + + $pdDownloads = ''; + if ($this->t['display_downloads'] == 1) { + $pdDownloads .= '
      ' . JText::_('COM_PHOCADOWNLOAD_DOWNLOADS') . ':
      '; + $pdDownloads .= '
      ' . $v->hits . ' x
      '; + $d .= $pdDownloads; + } + + $pdDescription = ''; + if ($l->isValueEditor($v->description) && $this->t['display_description'] != 1 & $this->t['display_description'] != 2 & $this->t['display_description'] != 3) { + $pdDescription .= '
      ' . $v->description . '
      '; + $d .= $pdDescription; + } + + $pdFeatures = ''; + if ($l->isValueEditor($v->features)) { + $pdFeatures .= '
      ' . JText::_('COM_PHOCADOWNLOAD_FEATURES') . '
      '; + $pdFeatures .= '
      ' . $v->features . '
      '; + } + + $pdChangelog = ''; + if ($l->isValueEditor($v->changelog)) { + $pdChangelog .= '
      ' . JText::_('COM_PHOCADOWNLOAD_CHANGELOG') . '
      '; + $pdChangelog .= '
      ' . $v->changelog . '
      '; + } + + $pdNotes = ''; + if ($l->isValueEditor($v->notes)) { + $pdNotes .= '
      ' . JText::_('COM_PHOCADOWNLOAD_NOTES') . '
      '; + $pdNotes .= '
      ' . $v->notes . '
      '; + } + + + // pdfiledesc + $description = $l->isValueEditor($v->description); + + $pdFileDescTop = ''; + $pdFileDescBottom = ''; + $oFileDesc = ''; + + if ($description) { + switch ($this->t['display_description']) { + + case 1: + $pdFileDescTop = '
      ' . $v->description . '
      '; + break; + case 2: + $pdFileDescBottom = '
      ' . $v->description . '
      '; + break; + case 3: + $oFileDesc = '
      ' . $v->description . '
      '; + break; + case 4: + $pdFileDescTop = '
      ' . $v->description . '
      '; + $oFileDesc = '
      ' . PhocaDownloadUtils::strTrimAll($d) . '
      '; + break; + case 5: + $pdFileDescBottom = '
      ' . $v->description . '
      '; + $oFileDesc = '
      ' . PhocaDownloadUtils::strTrimAll($d) . '
      '; + break; + case 6: + $pdFileDescTop = '
      ' . $d . '
      '; + $oFileDesc = '
      ' . PhocaDownloadUtils::strTrimAll($d) . '
      '; + break; + case 7: + $pdFileDescBottom = '
      ' . $d . '
      '; + $oFileDesc = '
      ' . PhocaDownloadUtils::strTrimAll($d) . '
      '; + break; + + case 8: + $oFileDesc = '
      ' . PhocaDownloadUtils::strTrimAll($d) . '
      '; + break; + + default: + break; + } + } + + // Detail Button + if ($this->t['display_detail'] == 1) { + if ($oFileDesc != '') { + $overlibcontent = $oFileDesc; + } else { + $overlibcontent = $d; + } + + $overlibcontent = str_replace('"', '\'', $overlibcontent); + $sA = array(utf8_encode(chr(11)), utf8_encode(chr(160))); + $eA = array("\t", "\n", "\r", "\0"); + $overlibcontent = str_replace($sA, ' ', $overlibcontent); + $overlibcontent = str_replace($eA, '', $overlibcontent); + + $textO = htmlspecialchars(addslashes('
      ' . $overlibcontent . '
      ')); + $overlib = "\n\n" . "onmouseover=\"return overlib('" . $textO . "', CAPTION, '" . JText::_('COM_PHOCADOWNLOAD_DETAILS') . "', BELOW, RIGHT, CSSCLASS, TEXTFONTCLASS, 'fontPhocaPDClass', FGCLASS, 'fgPhocaPDClass', BGCLASS, 'bgPhocaPDClass', CAPTIONFONTCLASS,'capfontPhocaPDClass', CLOSEFONTCLASS, 'capfontclosePhocaPDClass', STICKY, MOUSEOFF, CLOSETEXT, '" . JText::_('COM_PHOCADOWNLOAD_CLOSE') . "');\""; + $overlib .= " onmouseout=\"return nd();\"" . "\n"; + + //$pdButtonDetails = '
      '; + $pdButtonDetails = '' . JText::_('COM_PHOCADOWNLOAD_DETAILS') . ''; + //$pdButtonDetails = '
      '; + } else if ($this->t['display_detail'] == 2) { + + $detailLink = JRoute::_(PhocaDownloadRoute::getFileRoute($v->id, $this->catitem[$v->id]->id, $v->alias, $this->catitem[$v->id]->alias, 0, 'detail') . $this->t['limitstarturl']); + //$pdButtonDetails = '
      '; + + $pdButtonDetails = '' . JText::_('COM_PHOCADOWNLOAD_DETAILS') . ''; + + //$pdButtonDetails .= '
      '; + + } else { + $pdButtonDetails = ''; + } + + /// pdmirrorlink1 + $pdMirrorLink1 = ''; + $mirrorOutput1 = PhocaDownloadRenderFront::displayMirrorLinks(1, $v->mirror1link, $v->mirror1title, $v->mirror1target); + + if ($mirrorOutput1 != '') { + + if ($this->t['display_mirror_links'] == 4 || $this->t['display_mirror_links'] == 6) { + $classMirror = ''; //'pd-button-mirror1'; + $mirrorOutput1 = str_replace('class=""', 'class="btn btn-primary "', $mirrorOutput1); + } else { + $classMirror = 'pd-mirror-bp'; + } + + $pdMirrorLink1 = '
      ' . $mirrorOutput1 . '
      '; + } + + /// pdmirrorlink2 + $pdMirrorLink2 = ''; + $mirrorOutput2 = PhocaDownloadRenderFront::displayMirrorLinks(1, $v->mirror2link, $v->mirror2title, $v->mirror2target); + if ($mirrorOutput2 != '') { + if ($this->t['display_mirror_links'] == 4 || $this->t['display_mirror_links'] == 6) { + $classMirror = ''; //'pd-button-mirror2'; + $mirrorOutput2 = str_replace('class=""', 'class="btn btn-primary "', $mirrorOutput2); + } else { + $classMirror = 'pd-mirror-bp'; + } + + $pdMirrorLink2 = '
      ' . $mirrorOutput2 . '
      '; + } + + /// pdreportlink + $pdReportLink = PhocaDownloadRenderFront::displayReportLink(1, $v->title); + + /// pdrating + $pdRating = PhocaDownloadRate::renderRateFile($v->id, $this->t['display_rating_file']); + + /// pdtags + $pdTags = ''; + if ($this->t['display_tags_links'] == 1 || $this->t['display_tags_links'] == 3) { + $tags2 = $l->displayTags($v->id); + if ($tags2 != '') { + $pdTags .= '
      ' . $tags2 . '
      '; + } + } + + + /// pdvideo + $pdVideo = $l->displayVideo($v->video_filename, 0); + + + // --------------------------------------------------- + // Output + // --------------------------------------------------- + if ($v->textonly == 1) { + echo '
      '; + echo '
      '; + echo $v->description; + echo '
      '; + echo '
      '; // end row + + } else { + + // ======= ROW 1 LEFT + echo '
      '; + + if ($pdFileDescTop != '') { + echo '
      '; + echo $pdFileDescTop; + echo '
      '; + } + + echo '
      '; + echo $pdFile; + echo '
      '; + + // ======= ROW 1 RIGHT + echo '
      '; + + echo '
      ' . $pdButtonDownload . '
      '; + echo '
      ' . $pdButtonDetails . '
      '; + echo '
      ' . $pdButtonPreview . '
      '; + echo '
      ' . $pdButtonPlay . '
      '; + + echo '
      '; + + echo '
      '; // end row + + // ======== ROW 2 LEFT + echo '
      '; + + echo '
      '; + if ($pdVideo != '') { + echo '
      ' . $pdVideo . '
      '; + } + echo '
      ' . $pdRating . '
      '; + echo '
      '; + + // ======== ROW 2 RIGHT + echo '
      '; + + if ($this->t['display_mirror_links'] == 4 || $this->t['display_mirror_links'] == 6) { + if ($pdMirrorLink2 != '') { + echo '
      ' . $pdMirrorLink2 . '
      '; + } + if ($pdMirrorLink1 != '') { + echo '
      ' . $pdMirrorLink1 . '
      '; + } + } else if ($this->t['display_mirror_links'] == 1 || $this->t['display_mirror_links'] == 3) { + echo '
      ' . $pdMirrorLink2 . $pdMirrorLink1 . '
      '; + } + + if ($pdTags != '') { + echo '
      ' . $pdTags . '
      '; + } + + if ($pdReportLink != '') { + echo '
      ' . $pdReportLink . '
      '; + } + + echo '
      '; + + if ($pdFileDescBottom != '') { + echo '
      '; + echo $pdFileDescBottom; + echo '
      '; + } + + echo '
      '; // end row + + + + + /*echo '
      '; + echo $pdFileDescTop; + echo $pdFile; + echo '
      '.$pdButtonDownload.'
      '; + /* + if ($this->t['display_detail'] == 1 || $this->t['display_detail'] == 2) { + echo '
      '.$pdButtonDetails.'
      '; + } + + if ($this->t['display_preview'] == 1 && $pdButtonPreview != '') { + echo '
      '.$pdButtonPreview.'
      '; + } + + if ($this->t['display_play'] == 1 && $pdButtonPlay != '') { + echo '
      '.$pdButtonPlay.'
      '; + } + + if ($this->t['display_mirror_links'] == 4 || $this->t['display_mirror_links'] == 6) { + if ($pdMirrorLink2 != '') { + echo '
      '.$pdMirrorLink2.'
      '; + } + if ($pdMirrorLink1 != '') { + echo '
      '.$pdMirrorLink1.'
      '; + } + + } else if ($this->t['display_mirror_links'] == 1 || $this->t['display_mirror_links'] == 3) { + echo '
      '.$pdMirrorLink2.$pdMirrorLink1.'
      '; + } + + if ($pdVideo != '') { + echo '
      '.$pdVideo.'
      '; + } + + if ($pdReportLink != '') { + echo '
      '.$pdReportLink.'
      '; + } + + if ($pdRating != '') { + echo '
      '.$pdRating.'
      '; + } + + if ($pdTags != '') { + echo '
      '.$pdTags.'
      '; + } + echo $pdFileDescBottom; + echo '
      '; + echo '
      ';*/ + + + + + // --------------------------------------------------- + } + } + } +} diff --git a/packages/phocadownload/components/com_phocadownload/views/category/tmpl/default_pagination.php b/packages/phocadownload/components/com_phocadownload/views/category/tmpl/default_pagination.php index 825b50ee..850ee226 100644 --- a/packages/phocadownload/components/com_phocadownload/views/category/tmpl/default_pagination.php +++ b/packages/phocadownload/components/com_phocadownload/views/category/tmpl/default_pagination.php @@ -1,33 +1,51 @@ -t['action'] = str_replace('&', '&', $this->t['action']); //$this->t['action'] = str_replace('&', '&', $this->t['action']); $this->t['action'] = htmlspecialchars($this->t['action']); -echo '
      '. "\n"; +echo '' . "\n"; echo '
       
      '; -echo '
      '; //echo ''; -echo JHTML::_( 'form.token' ); +echo JHTML::_('form.token'); echo ''; -?> \ No newline at end of file diff --git a/packages/phocadownload/components/com_phocadownload/views/category/view.html.php b/packages/phocadownload/components/com_phocadownload/views/category/view.html.php index 55e3f42b..1fb5c55f 100644 --- a/packages/phocadownload/components/com_phocadownload/views/category/view.html.php +++ b/packages/phocadownload/components/com_phocadownload/views/category/view.html.php @@ -7,9 +7,9 @@ * @license http://www.gnu.org/copyleft/gpl.html GNU/GPL */ defined('_JEXEC') or die(); -jimport( 'joomla.application.component.view'); -jimport( 'joomla.filesystem.folder' ); -jimport( 'joomla.filesystem.file' ); +jimport('joomla.application.component.view'); +jimport('joomla.filesystem.folder'); +jimport('joomla.filesystem.file'); class PhocaDownloadViewCategory extends JViewLegacy { @@ -17,137 +17,259 @@ class PhocaDownloadViewCategory extends JViewLegacy protected $subcategories; protected $files; protected $t; - - function display($tpl = null) { - + function display($tpl = null) + { + $app = JFactory::getApplication(); $this->t['p'] = $app->getParams(); $this->t['user'] = JFactory::getUser(); $uri = JFactory::getURI(); $model = $this->getModel(); $document = JFactory::getDocument(); - $this->t['categoryid'] = $app->input->get( 'id', 0, 'int' ); - $this->t['tagid'] = $app->input->get( 'tagid', 0, 'int' ); - $limitStart = $app->input->get( 'limitstart', 0, 'int' ); + $this->t['categoryid'] = $app->input->get('id', 0, 'int'); + $this->t['tagid'] = $app->input->get('tagid', 0, 'int'); + $limitStart = $app->input->get('limitstart', 0, 'int'); $this->t['mediapath'] = PhocaDownloadPath::getPathMedia(); - - $this->category = $model->getCategory($this->t['categoryid']); - $this->subcategories = $model->getSubcategories($this->t['categoryid']); - $this->files = $model->getFileList($this->t['categoryid'], $this->t['tagid']); - $this->t['pagination'] = $model->getPagination($this->t['categoryid'], $this->t['tagid']); - - PhocaDownloadRenderFront::renderAllCSS(); - $document->addCustomTag(''); - if ($limitStart > 0 ) { - $this->t['limitstarturl'] = '&start='.$limitStart; + $search = $app->input->get('search_object', '', 'string'); + $brand = $app->input->get('brand', '', 'string'); + $category = $app->input->get('category', '', 'int'); + $productLine = $app->input->get('productLine', '', 'string'); + $scale = $app->input->get('scale', 0, 'int'); + $rootCategory = $app->input->get('rootCategory', '', 'int'); + $nUserID = $this->t['user']->id > 0 ? $this->t['user']->nUserID : 0; + $programParam = isset($_GET['program']) && $_GET['program'] == '1' ? '&program=1' : ''; + + $this->category = $model->getCategory($this->t['categoryid']); + $this->subcategories = $model->getSubcategories($this->t['categoryid'], $search, $brand, $productLine, $category); + $this->files = $model->getFileList($this->t['categoryid'], $this->t['tagid'], $search, $brand, $productLine, $category, $rootCategory); + $this->t['pagination'] = $model->getPagination($this->t['categoryid'], $this->t['tagid'], $search, $brand, $productLine, $category, $rootCategory); + $this->t['itemMenu'] = $model->getMenuItems(41, $nUserID); + $this->t['brandMenu'] = $model->getBrandsMenuItems(41, $nUserID); + $this->t['actives'] = array($this->category[0]->id, $this->category[0]->parentid); + $this->t['searchTxt'] = $search; + $this->t['hlnums'] = $model->getHlNums($nUserID); + $this->t['background'] = false; + $this->t['no_result'] = $search != '' && empty($this->files); + $this->t['modelClass'] = $category != '' || $brand != '' || ($brand != '' && $productLine != '') ? 'hiddenModel' : ''; + $this->t['brandClass'] = $this->t['modelClass'] == '' ? 'hiddenBrand' : ''; + $this->t['scale'] = $scale > 1 && $scale < 5 ? $scale : 3; + $this->t['scaleParam'] = $scale != 0 ? '&scale=' . $scale : ''; + $this->t['lang'] = JFactory::getLanguage()->getTag(); + $this->t['scaleParam'] .= $programParam; + $this->t['limitPram'] = isset($_GET['limitstart']) && isset($_GET['limit']) ? '&limitstart=' . $_GET['limitstart'] . '&limit=' . $_GET['limit'] : ''; + $this->t['desc'] = $model->getDescription(12584, $_GET['rgn']); + + if ($this->category[0]->id == 41) { + $files = glob($_SERVER['DOCUMENT_ROOT'] . '/public/images/cloud_library/backgrounds/*.jpg'); + + $rand_key = array_rand($files, 1); + $background = explode($_SERVER['DOCUMENT_ROOT'], $files[$rand_key]); + $this->t['background'] = $background[1]; + } + + foreach ($this->t['itemMenu'] as $menu) { + if (isset($menu->subCategories[$this->category[0]->parentid])) + array_push($this->t['actives'], $menu->id); + } + + if ($this->category[0]->metakey != '') { + $subArray = explode(";", $this->category[0]->metakey); + + $mergedArray = array_merge($this->t['actives'], $subArray); + $this->t['actives'] = $mergedArray; + } + + PhocaDownloadRenderFront::renderAllCSS(); + $document->addCustomTag(''); + + if ($limitStart > 0) { + $this->t['limitstarturl'] = '&start=' . $limitStart; } else { $this->t['limitstarturl'] = ''; } - - $this->t['download_external_link'] = $this->t['p']->get( 'download_external_link', '_self' ); - $this->t['filename_or_name'] = $this->t['p']->get( 'filename_or_name', 'filenametitle' ); - $this->t['display_downloads'] = $this->t['p']->get( 'display_downloads', 0 ); - $this->t['display_description'] = $this->t['p']->get( 'display_description', 3 ); - $this->t['display_detail'] = $this->t['p']->get( 'display_detail', 1 ); - $this->t['display_play'] = $this->t['p']->get( 'display_play', 0 ); - $this->t['playerwidth'] = $this->t['p']->get( 'player_width', 328 ); - $this->t['playerheight'] = $this->t['p']->get( 'player_height', 200 ); - $this->t['playermp3height'] = $this->t['p']->get( 'player_mp3_height', 30 ); - $this->t['previewwidth'] = $this->t['p']->get( 'preview_width', 640 ); - $this->t['previewheight'] = $this->t['p']->get( 'preview_height', 480 ); - $this->t['display_preview'] = $this->t['p']->get( 'display_preview', 0 ); - $this->t['play_popup_window'] = $this->t['p']->get( 'play_popup_window', 0 ); - $this->t['preview_popup_window'] = $this->t['p']->get( 'preview_popup_window', 0 ); - $this->t['file_icon_size'] = $this->t['p']->get( 'file_icon_size', 16 ); - $this->t['displaynew'] = $this->t['p']->get( 'display_new', 0 ); - $this->t['displayhot'] = $this->t['p']->get( 'display_hot', 0 ); - $this->t['display_up_icon'] = $this->t['p']->get( 'display_up_icon', 1 ); - $this->t['allowed_file_types'] = $this->t['p']->get( 'allowed_file_types', '' ); - $this->t['disallowed_file_types'] = $this->t['p']->get( 'disallowed_file_types', '' ); - $this->t['enable_user_statistics'] = $this->t['p']->get( 'enable_user_statistics', 1 ); - $this->t['display_category_comments']= $this->t['p']->get( 'display_category_comments', 0 ); - $this->t['display_date_type'] = $this->t['p']->get( 'display_date_type', 0 ); + + $this->t['sign_out_link'] = $_SERVER['SERVER_NAME'] == 'www.archline.hu' ? '/kilepes' : '/logout'; + $this->t['profile_link'] = $_SERVER['SERVER_NAME'] == 'www.archline.hu' ? '/felhasznalo' : '/user'; + $this->t['download_external_link'] = $this->t['p']->get('download_external_link', '_self'); + $this->t['filename_or_name'] = $this->t['p']->get('filename_or_name', 'filenametitle'); + $this->t['display_downloads'] = $this->t['p']->get('display_downloads', 0); + $this->t['display_description'] = $this->t['p']->get('display_description', 3); + $this->t['display_detail'] = $this->t['p']->get('display_detail', 1); + $this->t['display_play'] = $this->t['p']->get('display_play', 0); + $this->t['playerwidth'] = $this->t['p']->get('player_width', 328); + $this->t['playerheight'] = $this->t['p']->get('player_height', 200); + $this->t['playermp3height'] = $this->t['p']->get('player_mp3_height', 30); + $this->t['previewwidth'] = $this->t['p']->get('preview_width', 640); + $this->t['previewheight'] = $this->t['p']->get('preview_height', 480); + $this->t['display_preview'] = $this->t['p']->get('display_preview', 0); + $this->t['play_popup_window'] = $this->t['p']->get('play_popup_window', 0); + $this->t['preview_popup_window'] = $this->t['p']->get('preview_popup_window', 0); + $this->t['file_icon_size'] = $this->t['p']->get('file_icon_size', 16); + $this->t['displaynew'] = $this->t['p']->get('display_new', 0); + $this->t['displayhot'] = $this->t['p']->get('display_hot', 0); + $this->t['display_up_icon'] = $this->t['p']->get('display_up_icon', 1); + $this->t['allowed_file_types'] = $this->t['p']->get('allowed_file_types', ''); + $this->t['disallowed_file_types'] = $this->t['p']->get('disallowed_file_types', ''); + $this->t['enable_user_statistics'] = $this->t['p']->get('enable_user_statistics', 1); + $this->t['display_category_comments'] = $this->t['p']->get('display_category_comments', 0); + $this->t['display_date_type'] = $this->t['p']->get('display_date_type', 0); $this->t['display_file_view'] = $this->t['p']->get('display_file_view', 0); - $this->t['download_metakey'] = $this->t['p']->get( 'download_metakey', '' ); - $this->t['download_metadesc'] = $this->t['p']->get( 'download_metadesc', '' ); - $this->t['display_rating_file'] = $this->t['p']->get( 'display_rating_file', 0 ); - $this->t['display_mirror_links'] = $this->t['p']->get( 'display_mirror_links', 0 ); - $this->t['display_report_link'] = $this->t['p']->get( 'display_report_link', 0 ); - $this->t['send_mail_download'] = $this->t['p']->get( 'send_mail_download', 0 );// not boolean but id of user + $this->t['download_metakey'] = $this->t['p']->get('download_metakey', ''); + $this->t['download_metadesc'] = $this->t['p']->get('download_metadesc', ''); + $this->t['display_rating_file'] = $this->t['p']->get('display_rating_file', 0); + $this->t['display_mirror_links'] = $this->t['p']->get('display_mirror_links', 0); + $this->t['display_report_link'] = $this->t['p']->get('display_report_link', 0); + $this->t['send_mail_download'] = $this->t['p']->get('send_mail_download', 0); // not boolean but id of user //$this->t['send_mail_upload'] = $this->t['p']->get( 'send_mail_upload', 0 ); - $this->t['display_tags_links'] = $this->t['p']->get( 'display_tags_links', 0 ); - $this->t['display_specific_layout'] = $this->t['p']->get( 'display_specific_layout', 0 ); - $this->t['fb_comment_app_id'] = $this->t['p']->get( 'fb_comment_app_id', '' ); - $this->t['fb_comment_width'] = $this->t['p']->get( 'fb_comment_width', '550' ); - $this->t['fb_comment_lang'] = $this->t['p']->get( 'fb_comment_lang', 'en_US' ); - $this->t['fb_comment_count'] = $this->t['p']->get( 'fb_comment_count', '' ); - $this->t['html5_play'] = $this->t['p']->get( 'html5_play', 0 ); - - + $this->t['display_tags_links'] = $this->t['p']->get('display_tags_links', 0); + $this->t['display_specific_layout'] = $this->t['p']->get('display_specific_layout', 0); + $this->t['fb_comment_app_id'] = $this->t['p']->get('fb_comment_app_id', ''); + $this->t['fb_comment_width'] = $this->t['p']->get('fb_comment_width', '550'); + $this->t['fb_comment_lang'] = $this->t['p']->get('fb_comment_lang', 'en_US'); + $this->t['fb_comment_count'] = $this->t['p']->get('fb_comment_count', ''); + $this->t['html5_play'] = $this->t['p']->get('html5_play', 0); + $this->t['bt_cat_col_left'] = (int)$this->t['p']->get('bt_cat_col_left', 6); + if ($this->t['bt_cat_col_left'] == 12) { + $this->t['bt_cat_col_right'] = 12; + } else { + $this->t['bt_cat_col_right'] = 12 - $this->t['bt_cat_col_left']; + } + // Rating if ($this->t['display_rating_file'] == 1 || $this->t['display_rating_file'] == 3) { - JHTML::_('behavior.framework', true); + JHtml::_('jquery.framework', false); PhocaDownloadRate::renderRateFileJS(1); $this->t['display_rating_file'] = 1; } else { $this->t['display_rating_file'] = 0; } - - $this->t['dg'] = PhocaDownloadRenderFront::renderPhocaDownload(); - + + $this->t['afd'] = PhocaDownloadRenderFront::renderPhocaDownload(); + + // LOGOUT + // - - - - - - - - - - - - - - - + $logout = $app->input->get('warehouse_logout', array(0), 'array'); + $logoutId = (int) $logout[0]; + if ($logoutId > 0) { + $uri = JUri::getInstance(); + + $app = JFactory::getApplication(); + $app->logout($logoutId); + $app->redirect(JRoute::_($uri->toString(), false)); + } + // - - - - - - - - - - - - - - - + + // SCALE DOWN + // - - - - - - - - - - - - - - - + $scaleDown = $app->input->get('btn_scale_down', array(0), 'array'); + $scaleDownId = (int) $scaleDown[0]; + if ($scaleDownId > 0) { + $scale = isset($_GET['scale']) ? $_GET['scale'] - 1 : 2; + if (($scale > 1 && $scale < 5) || !isset($_GET['scale'])) { + if ($brand != '' && $productLine != '') + $url = '/warehouse?brand=' . $brand . '&productLine=' . $productLine . '&scale=' . $scale . $programParam; + elseif ($brand != '' && $productLine == '') + $url = '/warehouse?brand=' . $brand . '&scale=' . $scale . $programParam; + else + $url = '/index.php?option=com_phocadownload&view=category&id=' . $_GET['id'] . '&Itemid=' . $_GET['Itemid'] . '&scale=' . $scale . $programParam; + + $app->redirect($url); + } + } + + // SCALE UP + $scaleUp = $app->input->get('btn_scale_up', array(0), 'array'); + $scaleUpId = (int) $scaleUp[0]; + if ($scaleUpId > 0) { + $scale = isset($_GET['scale']) ? $_GET['scale'] + 1 : 4; + if (($scale > 1 && $scale < 5) || !isset($_GET['scale'])) { + if ($brand != '' && $productLine != '') + $url = '/warehouse?brand=' . $brand . '&productLine=' . $productLine . '&scale=' . $scale . $programParam; + elseif ($brand != '' && $productLine == '') + $url = '/warehouse?brand=' . $brand . '&scale=' . $scale . $programParam; + else + $url = '/index.php?option=com_phocadownload&view=category&id=' . $_GET['id'] . '&Itemid=' . $_GET['Itemid'] . '&scale=' . $scale . $programParam; + + $app->redirect($url); + } + } + // DOWNLOAD // - - - - - - - - - - - - - - - - $download = $app->input->get( 'download', array(0),'array' ); + $download = $app->input->get('download', array(0), 'array'); $downloadId = (int) $download[0]; if ($downloadId > 0) { - if (isset($this->category[0]->id) && (int)$this->category[0]->id > 0 ) { - $currentLink = 'index.php?option=com_phocadownload&view=category&id='.$this->category[0]->id.':'.$this->category[0]->alias.$this->t['limitstarturl'] . '&Itemid='. $app->input->get('Itemid', 0, 'int'); + if (isset($this->category[0]->id) && (int)$this->category[0]->id > 0) { + $currentLink = 'index.php?option=com_phocadownload&view=category&id=' . $this->category[0]->id . ':' . $this->category[0]->alias . $this->t['limitstarturl'] . '&Itemid=' . $app->input->get('Itemid', 0, 'int'); } else { $currentLink = $uri; } - $fileData = PhocaDownloadDownload::getDownloadData($downloadId, $currentLink); + $fileData = PhocaDownloadDownload::getDownloadData($downloadId, $currentLink); + $model->updateShow($downloadId); PhocaDownloadDownload::download($fileData, $downloadId, $currentLink); } // - - - - - - - - - - - - - - - - + + // MULTI DOWNLOAD + // - - - - - - - - - - - - - - - + $multiDownload = $app->input->get('multiDownload', array(0), 'array'); + $multiDownloadId = (int) $multiDownload[0]; + if ($multiDownloadId > 0) { + PhocaDownloadDownload::download($fileData, $multiDownloadId, $currentLink, 0, true); + } + // - - - - - - - - - - - - - - - + // DETAIL // - - - - - - - - - - - - - - - + + // BOOTSTRAP + $this->t['bootstrapmodal'] = ''; + PhocaDownloadRenderFront::renderBootstrapModalJs('.pd-modal-button'); + if ($this->t['display_detail'] == 2) { $this->t['buttond'] = new JObject(); $this->t['buttond']->set('methodname', 'modal-button'); $this->t['buttond']->set('name', 'detail'); $this->t['buttond']->set('modal', true); $this->t['buttond']->set('options', "{handler: 'iframe', size: {x: 600, y: 500}, overlayOpacity: 0.7, classWindow: 'phocadownloaddetailwindow', classOverlay: 'phocadownloaddetailoverlay'}"); + + // BOOTSTRAP + $this->t['bootstrapmodal'] .= PhocaDownloadRenderFront::bootstrapModalHtml('phModalDetail', JText::_('COM_PHOCADOWNLOAD_DETAILS')); } - - JHTML::_('behavior.modal', 'a.pd-modal-button'); + + // PLAY - - - - - - - - - - - - $windowWidthPl = (int)$this->t['playerwidth'] + 20; $windowHeightPl = (int)$this->t['playerheight'] + 20; - + if ($this->t['html5_play'] == 1) { - $windowWidthPl = (int)$this->t['playerwidth'] + 40; + $windowWidthPl = (int)$this->t['playerwidth'] + 50; } else { $windowWidthPl = (int)$this->t['playerwidth'] + 50; } - $windowHeightPlMP3 = (int)$this->t['playermp3height'] + 20; + $windowHeightPlMP3 = (int)$this->t['playermp3height'] + 30; if ($this->t['play_popup_window'] == 1) { $this->t['buttonpl'] = new JObject(); $this->t['buttonpl']->set('methodname', 'js-button'); - $this->t['buttonpl']->set('options', "window.open(this.href,'win2','width=".$windowWidthPl.",height=".$windowHeightPl.",scrollbars=yes,menubar=no,resizable=yes'); return false;"); - $this->t['buttonpl']->set('optionsmp3', "window.open(this.href,'win2','width=".$windowWidthPl.",height=".$windowHeightPlMP3.",scrollbars=yes,menubar=no,resizable=yes'); return false;"); + $this->t['buttonpl']->set('options', "window.open(this.href,'win2','width=" . $windowWidthPl . ",height=" . $windowHeightPl . ",scrollbars=yes,menubar=no,resizable=yes'); return false;"); + $this->t['buttonpl']->set('optionsmp3', "window.open(this.href,'win2','width=" . $windowWidthPl . ",height=" . $windowHeightPlMP3 . ",scrollbars=yes,menubar=no,resizable=yes'); return false;"); } else { - $document->addCustomTag( " \n"); + $document->addCustomTag(" \n"); $this->t['buttonpl'] = new JObject(); $this->t['buttonpl']->set('name', 'image'); $this->t['buttonpl']->set('modal', true); $this->t['buttonpl']->set('methodname', 'modal-button'); - $this->t['buttonpl']->set('options', "{handler: 'iframe', size: {x: ".$windowWidthPl.", y: ".$windowHeightPl."}, overlayOpacity: 0.7, classWindow: 'phocadownloadplaywindow', classOverlay: 'phocadownloadplayoverlay'}"); - $this->t['buttonpl']->set('optionsmp3', "{handler: 'iframe', size: {x: ".$windowWidthPl.", y: ".$windowHeightPlMP3."}, overlayOpacity: 0.7, classWindow: 'phocadownloadplaywindow', classOverlay: 'phocadownloadplayoverlay'}"); + $this->t['buttonpl']->set('options', "{handler: 'iframe', size: {x: " . $windowWidthPl . ", y: " . $windowHeightPl . "}, overlayOpacity: 0.7, classWindow: 'phocadownloadplaywindow', classOverlay: 'phocadownloadplayoverlay'}"); + $this->t['buttonpl']->set('optionsmp3', "{handler: 'iframe', size: {x: " . $windowWidthPl . ", y: " . $windowHeightPlMP3 . "}, overlayOpacity: 0.7, classWindow: 'phocadownloadplaywindow', classOverlay: 'phocadownloadplayoverlay'}"); + + // BOOTSTRAP + $this->t['buttonpl']->set('optionsB', ' data-width-dialog="' . $windowWidthPl . '" data-height-dialog="' . $windowHeightPl . '"'); + $this->t['buttonpl']->set('optionsmp3B', ' data-width-dialog="' . $windowWidthPl . '" data-height-dialog="' . $windowHeightPlMP3 . '"'); + $this->t['bootstrapmodal'] .= PhocaDownloadRenderFront::bootstrapModalHtml('phModalPlay', JText::_('COM_PHOCADOWNLOAD_PLAY')); } // - - - - - - - - - - - - - - - // PREVIEW - - - - - - - - - - - - @@ -156,46 +278,79 @@ class PhocaDownloadViewCategory extends JViewLegacy if ($this->t['preview_popup_window'] == 1) { $this->t['buttonpr'] = new JObject(); $this->t['buttonpr']->set('methodname', 'js-button'); - $this->t['buttonpr']->set('options', "window.open(this.href,'win2','width=".$windowWidthPr.",height=".$windowHeightPr.",scrollbars=yes,menubar=no,resizable=yes'); return false;"); + $this->t['buttonpr']->set('options', "window.open(this.href,'win2','width=" . $windowWidthPr . ",height=" . $windowHeightPr . ",scrollbars=yes,menubar=no,resizable=yes'); return false;"); } else { - $document->addCustomTag( " \n"); + $document->addCustomTag(" \n"); $this->t['buttonpr'] = new JObject(); $this->t['buttonpr']->set('name', 'image'); $this->t['buttonpr']->set('modal', true); $this->t['buttonpr']->set('methodname', 'modal-button'); - $this->t['buttonpr']->set('options', "{handler: 'iframe', size: {x: ".$windowWidthPr.", y: ".$windowHeightPr."}, overlayOpacity: 0.7, classWindow: 'phocadownloadpreviewwindow', classOverlay: 'phocadownloadpreviewoverlay'}"); + $this->t['buttonpr']->set('options', "{handler: 'iframe', size: {x: " . $windowWidthPr . ", y: " . $windowHeightPr . "}, overlayOpacity: 0.7, classWindow: 'phocadownloadpreviewwindow', classOverlay: 'phocadownloadpreviewoverlay'}"); $this->t['buttonpr']->set('optionsimg', "{handler: 'image', size: {x: 200, y: 150}, overlayOpacity: 0.7, classWindow: 'phocadownloadpreviewwindow', classOverlay: 'phocadownloadpreviewoverlay'}"); + + // BOOTSTRAP + $this->t['buttonpr']->set('optionsB', ' data-type="document" data-width-dialog="' . $windowWidthPr . '" data-height-dialog="' . $windowHeightPr . '"'); + $this->t['buttonpr']->set('optionsimgB', 'data-type="image"'); + $this->t['bootstrapmodal'] .= PhocaDownloadRenderFront::bootstrapModalHtml('phModalPreview', JText::_('COM_PHOCADOWNLOAD_PREVIEW')); } // - - - - - - - - - - - - - - - - + + $this->t['ordering'] = $model->getFileOrderingSelect(); + $imagePath = PhocaDownloadPath::getPathSet('icon'); - $this->t['cssimgpath'] = str_replace ( '../', JURI::base(true).'/', $imagePath['orig_rel_ds']); + $this->t['cssimgpath'] = str_replace('../', JURI::base(true) . '/', $imagePath['orig_rel_ds']); $filePath = PhocaDownloadPath::getPathSet('file'); $this->t['absfilepath'] = $filePath['orig_abs_ds']; $this->t['action'] = $uri->toString(); - if (isset($this->category[0]) && is_object($this->category[0])){ + + + // Bootstrap 3 Layout + $this->tmpl['display_bootstrap3_layout'] = $this->t['p']->get('display_bootstrap3_layout', 0); + if ($this->tmpl['display_bootstrap3_layout'] == 1) { + + JHtml::_('jquery.framework', false); + JHTML::stylesheet('media/com_phocadownload/bootstrap/css/bootstrap.min.css'); + JHTML::stylesheet('media/com_phocadownload/bootstrap/css/bootstrap.extended.css'); + // Loaded by jquery.framework; + //$document->addScript(JURI::root(true).'/media/com_phocadownload/bootstrap/js/bootstrap.min.js'); + /*$document->addScript(JURI::root(true).'/media/com_phocadownload/js/jquery.equalheights.min.js'); + $document->addScriptDeclaration( + 'jQuery(window).load(function(){ + jQuery(\'.ph-thumbnail\').equalHeights(); + });');*/ + } else { + // Because of modals + JHTML::_('behavior.framework', true); + JHTML::_('behavior.modal', 'a.pd-modal-button'); + } + + if (isset($this->category[0]) && is_object($this->category[0])) { $this->_prepareDocument($this->category[0]); } - - parent::display($tpl); - + + if ($this->tmpl['display_bootstrap3_layout'] == 1) { + parent::display('bootstrap'); + } else { + parent::display($tpl); + } } - - protected function _prepareDocument($category) { - + + protected function _prepareDocument($category) + { + $app = JFactory::getApplication(); $menus = $app->getMenu(); $pathway = $app->getPathway(); //$this->t['p'] = &$app->getParams(); $title = null; - - $this->t['downloadmetakey'] = $this->t['p']->get( 'download_metakey', '' ); - $this->t['downloadmetadesc'] = $this->t['p']->get( 'download_metadesc', '' ); - + + $this->t['downloadmetakey'] = $this->t['p']->get('download_metakey', ''); + $this->t['downloadmetadesc'] = $this->t['p']->get('download_metadesc', ''); + $menu = $menus->getActive(); if ($menu) { @@ -220,35 +375,34 @@ class PhocaDownloadViewCategory extends JViewLegacy $this->document->setTitle($title);*/ - - $title = $this->t['p']->get('page_title', ''); - $this->tmpl['display_cat_name_title'] = 1; + + $title = $this->t['p']->get('page_title', ''); + $this->tmpl['display_cat_name_title'] = 1; if (empty($title)) { $title = htmlspecialchars_decode($app->getCfg('sitename')); } else if ($app->getCfg('sitename_pagetitles', 0) == 1) { $title = JText::sprintf('JPAGETITLE', htmlspecialchars_decode($app->getCfg('sitename')), $title); - + if ($this->tmpl['display_cat_name_title'] == 1 && isset($category->title) && $category->title != '') { - $title = $title .' - ' . $category->title; + $title = $title . ' - ' . $category->title; } - } else if ($app->getCfg('sitename_pagetitles', 0) == 2) { - + if ($this->tmpl['display_cat_name_title'] == 1 && isset($category->title) && $category->title != '') { - $title = $title .' - ' . $category->title; + $title = $title . ' - ' . $category->title; } $title = JText::sprintf('JPAGETITLE', $title, htmlspecialchars_decode($app->getCfg('sitename'))); } $this->document->setTitle($title); - + if ($category->metadesc != '') { $this->document->setDescription($category->metadesc); } else if ($this->t['downloadmetadesc'] != '') { $this->document->setDescription($this->t['downloadmetadesc']); } else if ($this->t['p']->get('menu-meta_description', '')) { $this->document->setDescription($this->t['p']->get('menu-meta_description', '')); - } + } if ($category->metakey != '') { $this->document->setMetadata('keywords', $category->metakey); @@ -261,7 +415,7 @@ class PhocaDownloadViewCategory extends JViewLegacy if ($app->getCfg('MetaTitle') == '1' && $this->t['p']->get('menupage_title', '')) { $this->document->setMetaData('title', $this->t['p']->get('page_title', '')); } - + // Breadcrumbs TODO (Add the whole tree) /*$pathway = $app->getPathway(); if (isset($this->category[0]->parentid)) { @@ -275,27 +429,34 @@ class PhocaDownloadViewCategory extends JViewLegacy if (!empty($this->category[0]->title)) { $pathway->addItem($this->category[0]->title); }*/ - + // Breadcrumbs TODO (Add the whole tree) - $pathway = $app->getPathway(); + + + // Start comment if problem with duplicated pathway + // /* if (isset($this->category[0]->parentid)) { if ($this->category[0]->parentid == 0) { // $pathway->addItem( JText::_('COM_PHOCADOWNLOAD_CATEGORIES'), JRoute::_(PhocaDownloadRoute::getCategoriesRoute())); + } else if ($this->category[0]->parentid > 0) { $curpath = $pathway->getPathwayNames(); - if($this->category[0]->parenttitle != $curpath[count($curpath)-1]){ - $pathway->addItem($this->category[0]->parenttitle, JRoute::_(PhocaDownloadRoute::getCategoryRoute($this->category[0]->parentid, $this->category[0]->parentalias))); + + if (isset($this->category[0]->parenttitle) && isset($curpath[count($curpath) - 1]) && $this->category[0]->parenttitle != $curpath[count($curpath) - 1]) { + + + $pathway->addItem($this->category[0]->parenttitle, JRoute::_(PhocaDownloadRoute::getCategoryRoute($this->category[0]->parentid, $this->category[0]->parentalias))); } } } + // */ + // End comment when problem with duplicated pathway if (!empty($this->category[0]->title)) { $curpath = $pathway->getPathwayNames(); - if($this->category[0]->title != $curpath[count($curpath)-1]){ + if (isset($this->category[0]->title) && isset($curpath[count($curpath) - 1]) && $this->category[0]->title != $curpath[count($curpath) - 1]) { $pathway->addItem($this->category[0]->title); } } - } } -?> \ No newline at end of file diff --git a/packages/phocadownload/components/com_phocadownload/views/download/metadata.xml b/packages/phocadownload/components/com_phocadownload/views/download/metadata.xml index 81b20c70..78e3f1d8 100644 --- a/packages/phocadownload/components/com_phocadownload/views/download/metadata.xml +++ b/packages/phocadownload/components/com_phocadownload/views/download/metadata.xml @@ -1,6 +1,6 @@ - - - - - + + + + + \ No newline at end of file diff --git a/packages/phocadownload/components/com_phocadownload/views/download/tmpl/default.php b/packages/phocadownload/components/com_phocadownload/views/download/tmpl/default.php index 86c2404a..a49c263b 100644 --- a/packages/phocadownload/components/com_phocadownload/views/download/tmpl/default.php +++ b/packages/phocadownload/components/com_phocadownload/views/download/tmpl/default.php @@ -1,429 +1,774 @@ t['p']->get( 'pageclass_sfx' ).'" >'; -echo '
      '; - -if ($this->t['found'] == 1) { - if(isset($this->file[0]->id) && (int)$this->file[0]->id > 0 && isset($this->file[0]->token) && $this->file[0]->token != '') { - - $v = $this->file[0]; - $downloadLink = PhocaDownloadRoute::getDownloadRoute((int)$v->id, (int)$v->catid, $v->token); - $l = new PhocaDownloadLayout(); - - //echo '

      '.$l->getName($v->title, $v->filename, 1). '

      '; - - $pdTitle = ''; - if ($v->title != '') { - $pdTitle .= '
      '.$v->title.'
      '; - } - - $pdImage = ''; - if ($v->image_download != '') { - $pdImage .= '
      '.$l->getImageDownload($v->image_download).'
      '; - } - - if ($v->filename != '') { - $imageFileName = $l->getImageFileName($v->image_filename, $v->filename); - - $pdFile = '
      '; - if ($this->t['filename_or_name'] == 'filenametitle') { - $pdFile .= '
      '. $v->title . '
      '; - } - - $pdFile .= '
      '. $imageFileName['filenamethumb'] - . '
      '; - - $pdFile .= '
      '; - $pdFile .= $l->getName($v->title, $v->filename); - $pdFile .= '
      '; - - $pdFile .= PhocaDownloadRenderFront::displayNewIcon($v->date, $this->t['displaynew']); - $pdFile .= PhocaDownloadRenderFront::displayHotIcon($v->hits, $this->t['displayhot']); - - //Specific icons - if (isset($v->image_filename_spec1) && $v->image_filename_spec1 != '') { - $pdFile .= '
      '.$l->getImageDownload($v->image_filename_spec1).'
      '; - } - if (isset($v->image_filename_spec2) && $v->image_filename_spec2 != '') { - $pdFile .= '
      '.$l->getImageDownload($v->image_filename_spec2).'
      '; - } - - $pdFile .= '
      ' . "\n"; - } - echo ''; - +// NEW +echo ""; + +if (isset($_GET['program']) && $_GET['program'] == 1) { + echo ''; +} + +$rgn .= isset($_GET['rgn']) ? '&rgn=' . $_GET['rgn'] : '&rgn=Int'; + +$warehouseParam = ''; +if ($this->t['scaleParam'] != '') + $warehouseParam = preg_replace('/&/', '?', $this->t['scaleParam'], 1); + +if (isset($_GET['program'])) { + $warehouseParam .= isset($_GET['rgn']) ? '&rgn=' . $_GET['rgn'] : '&rgn=Int'; } else { - echo '
      '.JText::_('COM_PHOCADOWNLOAD_FILE_NOT_FOUND').'
      '; + $warehouseParam .= isset($_GET['rgn']) ? '?rgn=' . $_GET['rgn'] : '?rgn=Int'; } -/* -if ( $this->t['p']->get( 'show_page_heading' ) ) { - echo '

      '. $this->escape($this->t['p']->get('page_heading')) . '

      '; +if (isset($_GET['rgn']) && $_GET['rgn'] == 'Cn') { + $img = '/public/images/cloud_library/gstar_bim_logo.png'; +} else { + $img = '/public/images/cloud_library/ARCHLineXP_logo_ARCHITECT_2017_big_cube_no_text.jpg'; } -if (!empty($this->category[0])) { - echo '
      '; - if ($this->t['display_up_icon'] == 1 && $this->t['tmplr'] == 0) { - - if (isset($this->category[0]->id)) { - if ($this->category[0]->id > 0) { - $linkUp = JRoute::_(PhocaDownloadRoute::getCategoryRoute($this->category[0]->id, $this->category[0]->alias)); - $linkUpText = $this->category[0]->title; +echo '
      '; +echo '
      '; + + +echo '
      '; + + + +echo '
      '; + + +echo '
      '; +echo ''; +echo '
      '; + +if (!isset($_GET['rgn']) || $_GET['rgn'] != 'Cn') { + echo '
      '; + if ($this->t['user']->id > 0) { + echo ''; + } else { + echo ''; + echo ''; + } + echo '
      '; + echo '
      '; +} +echo '
      '; +echo '
      '; + +$modelsActive = $this->t['brandClass'] != '' ? 'active-link' : ''; +$brandActive = $this->t['brandClass'] == '' ? 'active-link' : ''; + +echo '
      '; +echo '
      '; +echo '' . JText::_('COM_PHOCADOWNLOAD_DOWNLOAD_MODELS') . ''; +echo '
      '; +echo '
      '; +echo '' . JText::_('COM_PHOCADOWNLOAD_DOWNLOAD_BRANDS') . ''; +echo '
      '; +echo '
      '; + +echo ''; +echo '
      '; +echo '
      '; +echo '
      '; + +echo '
      '; +echo '
      '; + +echo '
      '; +echo '
      '; +echo ''; +echo '
      '; +echo '
      '; + +echo '
      '; +echo '
      '; +echo ''; +echo '
      '; +echo '
      '; + +echo '
      '; + +echo '
      '; +echo '
      '; +echo '
      '; +foreach ($this->files as $v) { + $jsonFile = explode(".environment", $v->filename); + + $cBtnDanger = 'btn btn-danger'; + $cBtnWarning = 'btn btn-warning'; + $cBtnSuccess = 'btn btn-success'; + $cBtnInfo = 'btn btn-info'; + + // General + $linkDownloadB = ''; + $linkDownloadE = ''; + $pageID = 0; + $lang = ''; + if ((int)$v->confirm_license > 0 || $this->t['display_file_view'] == 1) { + $linkDownloadB = ''; // we need pagination to go back + $linkDownloadE = ''; + } else { + if ($v->link_external != '' && $v->directlink == 1) { + $linkDownloadB = ''; + $linkDownloadE = ''; + } else { + if ($_GET['Itemid'] == 745) { + $linkDownloadB = ''; + $linkDownloadE = ''; + $pageID = 744; + $lang = 'en'; + } else { + $linkDownloadB = ''; + $linkDownloadE = ''; + $pageID = 729; + $lang = 'hu'; + } + } + } + + $title = ''; + if (strlen($v->title) > 30) { + $title = substr($v->title, 0, 30) . '...'; + } else { + $title = $v->title; + } + + // pdbuttondownload + $pdButtonDownload = '
      '; + $pdButtonDownload .= str_replace('class=""', 'class="' . $cBtnSuccess . '"', $linkDownloadB) . JText::_('COM_PHOCADOWNLOAD_DOWNLOAD') . $linkDownloadE; + + $pdButtonDownload .= '
      '; + + echo '
      '; + echo '
      '; + echo ''; + echo '
      '; + echo ''; + echo '
      '; + echo '
      '; + echo '
      '; + echo '
      '; + echo '
      '; + echo ''; + echo $title; + echo ''; + echo '
      '; + echo '
      '; + echo $linkDownloadB; + echo ''; + echo $linkDownloadE; + echo '
      '; + echo '
      '; + echo '
      '; + echo '
      '; + echo '
      '; +} +echo '
      '; +echo '
      '; + + +echo '
      '; + + + +echo '
      '; + +echo '
      '; +echo '
      '; + +// OLD +if (false) { + echo '
      '; + echo '
      '; + + if ($this->t['found'] == 1) { + if (isset($this->file[0]->id) && (int)$this->file[0]->id > 0 && isset($this->file[0]->token) && $this->file[0]->token != '') { + + $v = $this->file[0]; + $downloadLink = PhocaDownloadRoute::getDownloadRoute((int)$v->id, (int)$v->catid, $v->token); + $l = new PhocaDownloadLayout(); + + //echo '

      '.$l->getName($v->title, $v->filename, 1). '

      '; + $pdTitle = ''; if ($v->title != '') { - $pdTitle .= '
      '.$v->title.'
      '; + $pdTitle .= '
      ' . $v->title . '
      '; } - + $pdImage = ''; if ($v->image_download != '') { - $pdImage .= '
      '.$l->getImageDownload($v->image_download).'
      '; + $pdImage .= '
      ' . $l->getImageDownload($v->image_download) . '
      '; } - - $pdVideo = ''; - $pdVideo = $l->displayVideo($v->video_filename, 1); - + if ($v->filename != '') { $imageFileName = $l->getImageFileName($v->image_filename, $v->filename); - + $pdFile = '
      '; if ($this->t['filename_or_name'] == 'filenametitle') { - $pdFile .= '
      '. $v->title . '
      '; + $pdFile .= '
      ' . $v->title . '
      '; } - - $pdFile .= '
      '. $imageFileName['filenamethumb'] - . '
      '; - + + $pdFile .= '
      ' . $imageFileName['filenamethumb'] + . '
      '; + $pdFile .= '
      '; $pdFile .= $l->getName($v->title, $v->filename); $pdFile .= '
      '; - + $pdFile .= PhocaDownloadRenderFront::displayNewIcon($v->date, $this->t['displaynew']); $pdFile .= PhocaDownloadRenderFront::displayHotIcon($v->hits, $this->t['displayhot']); - + + // String Tags - title suffix + $tagsS = $l->displayTagsString($v->tags_string); + if ($tagsS != '') { + $pdFile .= '
      ' . $tagsS . '
      '; + } + + // Tags - title suffix - FILE VIEW = DOWNLOAD FILE + if ($this->t['display_tags_links'] == 5 || $this->t['display_tags_links'] == 6) { + $tags = $l->displayTags($v->id, 1); + if ($tags != '') { + $pdFile .= '
      ' . $tags . '
      '; + } + } + //Specific icons if (isset($v->image_filename_spec1) && $v->image_filename_spec1 != '') { - $pdFile .= '
      '.$l->getImageDownload($v->image_filename_spec1).'
      '; - } + $pdFile .= '
      ' . $l->getImageDownload($v->image_filename_spec1) . '
      '; + } if (isset($v->image_filename_spec2) && $v->image_filename_spec2 != '') { - $pdFile .= '
      '.$l->getImageDownload($v->image_filename_spec2).'
      '; - } - + $pdFile .= '
      ' . $l->getImageDownload($v->image_filename_spec2) . '
      '; + } + $pdFile .= '
      ' . "\n"; } - - $pdFileSize = ''; - $fileSize = $l->getFilesize($v->filename); - if ($fileSize != '') { - $pdFileSize .= '
      '.JText::_('COM_PHOCADOWNLOAD_FILESIZE').':
      '; - $pdFileSize .= '
      '.$fileSize.'
      '; - } - - $pdVersion = ''; - if ($v->version != '') { - $pdVersion .= '
      '.JText::_('COM_PHOCADOWNLOAD_VERSION').':
      '; - $pdVersion .= '
      '.$v->version.'
      '; - } - - $pdLicense = ''; - if ($v->license != '') { - if ($v->license_url != '') { - $pdLicense .= '
      '.JText::_('COM_PHOCADOWNLOAD_LICENSE').':
      '; - $pdLicense .= ''; - } else { - $pdLicense .= '
      '.JText::_('COM_PHOCADOWNLOAD_LICENSE').':
      '; - $pdLicense .= '
      '.$v->license.'
      '; - } - } - - $pdAuthor = ''; - if ($v->author != '') { - if ($v->author_url != '') { - $pdAuthor .= '
      '.JText::_('COM_PHOCADOWNLOAD_AUTHOR').':
      '; - $pdAuthor .= ''; - } else { - $pdAuthor .= '
      '.JText::_('COM_PHOCADOWNLOAD_AUTHOR').':
      '; - $pdAuthor .= '
      '.$v->author.'
      '; - } - } - - $pdAuthorEmail = ''; - if ($v->author_email != '') { - $pdAuthorEmail .= '
      '.JText::_('COM_PHOCADOWNLOAD_EMAIL').':
      '; - $pdAuthorEmail .= '
      '. $l->getProtectEmail($v->author_email).'
      '; - } - - $pdFileDate = ''; - $fileDate = $l->getFileDate($v->filename, $v->date); - if ($fileDate != '') { - $pdFileDate .= '
      '.JText::_('COM_PHOCADOWNLOAD_DATE').':
      '; - $pdFileDate .= '
      '.$fileDate.'
      '; - } - - $pdDownloads = ''; - if ($this->t['display_downloads'] == 1) { - $pdDownloads .= '
      '.JText::_('COM_PHOCADOWNLOAD_DOWNLOADS').':
      '; - $pdDownloads .= '
      '.$v->hits.' x
      '; - } - - $pdDescription = ''; - if ($l->isValueEditor($v->description)) { - $pdDescription .= '
      '.$v->description.'
      '; - } - - $pdFeatures = ''; - if ($l->isValueEditor($v->features)) { - $pdFeatures .= '
      '.JText::_('COM_PHOCADOWNLOAD_FEATURES').'
      '; - $pdFeatures .= '
      '.$v->features.'
      '; - } - - $pdChangelog = ''; - if ($l->isValueEditor($v->changelog)) { - $pdChangelog .= '
      '.JText::_('COM_PHOCADOWNLOAD_CHANGELOG').'
      '; - $pdChangelog .= '
      '.$v->changelog.'
      '; - } - - $pdNotes = ''; - if ($l->isValueEditor($v->notes)) { - $pdNotes .= '
      '.JText::_('COM_PHOCADOWNLOAD_NOTES').'
      '; - $pdNotes .= '
      '.$v->notes.'
      '; - } - - - // pdmirrorlink1 - $pdMirrorLink1 = ''; - $mirrorOutput1 = PhocaDownloadRenderFront::displayMirrorLinks(1, $v->mirror1link, $v->mirror1title, $v->mirror1target); - if ($mirrorOutput1 != '') { - - if ($this->t['display_mirror_links'] == 4 || $this->t['display_mirror_links'] == 6) { - $classMirror = 'pd-button-mirror1'; - } else { - $classMirror = 'pd-mirror'; - } - - $pdMirrorLink1 = '
      '.$mirrorOutput1.'
      '; - } - - // pdmirrorlink2 - $pdMirrorLink2 = ''; - $mirrorOutput2 = PhocaDownloadRenderFront::displayMirrorLinks(1, $v->mirror2link, $v->mirror2title, $v->mirror2target); - if ($mirrorOutput2 != '') { - if ($this->t['display_mirror_links'] == 4 || $this->t['display_mirror_links'] == 6) { - $classMirror = 'pd-button-mirror2'; - } else { - $classMirror = 'pd-mirror'; - } - - $pdMirrorLink2 = '
      '.$mirrorOutput2.'
      '; - } - - // pdreportlink - $pdReportLink = PhocaDownloadRenderFront::displayReportLink(1, $v->title); - - - // pdrating - $pdRating = PhocaDownloadRate::renderRateFile($v->id, $this->t['display_rating_file']); - - // pdtags - $pdTags = ''; - if ($this->t['display_tags_links'] == 2 || $this->t['display_tags_links'] == 3) { - if ($l->displayTags($v->id) != '') { - $pdTags .= $l->displayTags($v->id); - } - - } - - - // --------------------------------------------------- - //Convert - // --------------------------------------------------- - if ($this->t['display_specific_layout'] == 0) { - echo '
      '; - //echo $pdTitle; - echo $pdImage; - echo $pdFile; - echo $pdFileSize; - echo $pdVersion; - echo $pdLicense; - echo $pdAuthor; - echo $pdAuthorEmail; - echo $pdFileDate; - echo $pdDownloads; - echo $pdDescription; - echo $pdFeatures; - echo $pdChangelog; - echo $pdNotes; - if ($this->t['display_mirror_links'] == 5 || $this->t['display_mirror_links'] == 6) { - echo '
      '.$pdMirrorLink2.'
      '; - echo '
      '.$pdMirrorLink1.'
      '; - } else if ($this->t['display_mirror_links'] == 2 || $this->t['display_mirror_links'] == 3) { - echo '
      '.$pdMirrorLink2.$pdMirrorLink1.'
      '; - } - - echo '
      '.$pdReportLink.'
      '; - echo '
      '.$pdRating.'
      '; - echo '
      '.$pdTags.'
      '; - echo '
      '.$pdVideo.'
      '; - echo '
      '; - echo '
      '; - } else { - - /*$fileLayout = '
      - {pdimage} - {pdfile} - {pdfilesize} - {pdversion} - {pdlicense} - {pdauthor} - {pdauthoremail} - {pdfiledate} - {pddownloads} - {pddescription} - {pdfeatures} - {pdchangelog} - {pdnotes} -
      {pdmirrorlink2} {pdmirrorlink1}
      -
      {pdreportlink}
      -
      {pdrating}
      -
      {pdtags}
      -
      -
      '; - - - $fileLayout = PhocaDownloadSettings::getLayoutText('file'); - $fileLayoutParams = PhocaDownloadSettings::getLayoutParams('file'); - - $replace = array($pdTitle, $pdImage, $pdFile, $pdFileSize, $pdVersion, $pdLicense, $pdAuthor, $pdAuthorEmail, $pdFileDate, $pdDownloads, $pdDescription, $pdFeatures, $pdChangelog, $pdNotes, $pdMirrorLink1, $pdMirrorLink2, $pdReportLink, $pdRating, $pdTags, $pdVideo); - $output = str_replace($fileLayoutParams['search'], $replace, $fileLayout); - - echo $output; - } - - // --------------------------------------------------- - - - $o = '
       
      '; - - if ((int)$v->confirm_license > 0) { - $o .= '

      '.JText::_('COM_PHOCADOWNLOAD_LICENSE_AGREEMENT').'

      '; - $o .= '
      '.$v->licensetext.'
      '; - - // External link - if ($v->link_external != '' && $v->directlink == 1) { - $o .= '
      '; - $o .= ' '.JText::_('COM_PHOCADOWNLOAD_I_AGREE_TO_TERMS_LISTED_ABOVE').' '; - $o .= ''; - } else { - $o .= ''; - $o .= ' '.JText::_('COM_PHOCADOWNLOAD_I_AGREE_TO_TERMS_LISTED_ABOVE').' '; - $o .= ''; - $o .= ''; - $o .= ''; - } - $o .= '
      '; - - // For users who have disabled Javascript - $o .= ''; - } else { - // External link - if ($v->link_external != '') { - $o .= '
      '; - $o .= ''; - } else { - $o .= ''; - $o .= ''; - $o .= ''; - $o .= ''; - $o .= ''; - } - $o .= '
      '; - } - - - if ($this->t['display_file_comments'] == 1) { - if (JComponentHelper::isEnabled('com_jcomments', true)) { - include_once(JPATH_BASE.DS.'components'.DS.'com_jcomments'.DS.'jcomments.php'); - $o .= JComments::showComments($v->id, 'com_phocadownload_files', JText::_('COM_PHOCADOWNLOAD_FILE') .' '. $v->title); - } - } - - if ($this->t['display_file_comments'] == 2) { - $o .= '
      '.$this->loadTemplate('comments-fb').'
      '; - } - - echo $o; - - } else { - echo '

      '.JText::_('COM_PHOCADOWNLOAD_FILE') .'

      '; - echo '
      '.JText::_('COM_PHOCADOWNLOAD_NO_RIGHTS_ACCESS_CATEGORY').'
      '; + echo ''; } + } else { + echo '
      ' . JText::_('COM_PHOCADOWNLOAD_FILE_NOT_FOUND') . '
      '; } - echo '
       
      ';// end of box -} else { - echo '
       
      '; + + + echo '
       
      ' . $this->t['pw']; } +?> -*/ +
       
      '. $this->t['pw']; -?> \ No newline at end of file +
      +
      + + \ No newline at end of file diff --git a/packages/phocadownload/components/com_phocadownload/views/download/tmpl/default.xml b/packages/phocadownload/components/com_phocadownload/views/download/tmpl/default.xml index d9e6ab07..73c085cc 100644 --- a/packages/phocadownload/components/com_phocadownload/views/download/tmpl/default.xml +++ b/packages/phocadownload/components/com_phocadownload/views/download/tmpl/default.xml @@ -1,13 +1,13 @@ - - - - - - - - - COM_PHOCADOWNLOAD_DOWNLOAD_LAYOUT - COM_PHOCADOWNLOAD_DOWNLOAD_LAYOUT_DESC - - + + + + + + + + + COM_PHOCADOWNLOAD_DOWNLOAD_LAYOUT + COM_PHOCADOWNLOAD_DOWNLOAD_LAYOUT_DESC + + \ No newline at end of file diff --git a/packages/phocadownload/components/com_phocadownload/views/download/tmpl/default_bootstrap.php b/packages/phocadownload/components/com_phocadownload/views/download/tmpl/default_bootstrap.php new file mode 100644 index 00000000..234b8b8d --- /dev/null +++ b/packages/phocadownload/components/com_phocadownload/views/download/tmpl/default_bootstrap.php @@ -0,0 +1,81 @@ +t['p']->get( 'pageclass_sfx' ).'" >'; +echo '
      '; + +if ($this->t['found'] == 1) { + if(isset($this->file[0]->id) && (int)$this->file[0]->id > 0 && isset($this->file[0]->token) && $this->file[0]->token != '') { + + $v = $this->file[0]; + $downloadLink = PhocaDownloadRoute::getDownloadRoute((int)$v->id, (int)$v->catid, $v->token); + $l = new PhocaDownloadLayout(); + + //echo '

      '.$l->getName($v->title, $v->filename, 1). '

      '; + + $pdTitle = ''; + if ($v->title != '') { + $pdTitle .= '
      '.$v->title.'
      '; + } + + $pdImage = ''; + if ($v->image_download != '') { + $pdImage .= '
      '.$l->getImageDownload($v->image_download).'
      '; + } + + if ($v->filename != '') { + $imageFileName = $l->getImageFileName($v->image_filename, $v->filename); + + $pdFile = '
      '; + if ($this->t['filename_or_name'] == 'filenametitle') { + $pdFile .= '
      '. $v->title . '
      '; + } + + $pdFile .= '
      '. $imageFileName['filenamethumb'] + . '
      '; + + $pdFile .= '
      '; + $pdFile .= $l->getName($v->title, $v->filename); + $pdFile .= '
      '; + + $pdFile .= PhocaDownloadRenderFront::displayNewIcon($v->date, $this->t['displaynew']); + $pdFile .= PhocaDownloadRenderFront::displayHotIcon($v->hits, $this->t['displayhot']); + + // String Tags - title suffix + $tagsS = $l->displayTagsString($v->tags_string); + if ($tagsS != '') { + $pdFile .= '
      '.$tagsS.'
      '; + } + + // Tags - title suffix - FILE VIEW = DOWNLOAD FILE + if ($this->t['display_tags_links'] == 5 || $this->t['display_tags_links'] == 6) { + $tags = $l->displayTags($v->id, 1); + if ($tags != '') { + $pdFile .= '
      '.$tags.'
      '; + } + } + + //Specific icons + if (isset($v->image_filename_spec1) && $v->image_filename_spec1 != '') { + $pdFile .= '
      '.$l->getImageDownload($v->image_filename_spec1).'
      '; + } + if (isset($v->image_filename_spec2) && $v->image_filename_spec2 != '') { + $pdFile .= '
      '.$l->getImageDownload($v->image_filename_spec2).'
      '; + } + + $pdFile .= '
      ' . "\n"; + } + echo ''; + + } +} else { + echo '
      '.JText::_('COM_PHOCADOWNLOAD_FILE_NOT_FOUND').'
      '; +} + + +echo '
       
      '. $this->t['pw']; +?> \ No newline at end of file diff --git a/packages/phocadownload/components/com_phocadownload/views/download/view.html.php b/packages/phocadownload/components/com_phocadownload/views/download/view.html.php index ba46a330..92147d4d 100644 --- a/packages/phocadownload/components/com_phocadownload/views/download/view.html.php +++ b/packages/phocadownload/components/com_phocadownload/views/download/view.html.php @@ -7,74 +7,132 @@ * @license http://www.gnu.org/copyleft/gpl.html GNU/GPL */ defined('_JEXEC') or die(); -jimport( 'joomla.application.component.view'); -jimport( 'joomla.filesystem.folder' ); -jimport( 'joomla.filesystem.file' ); +jimport('joomla.application.component.view'); +jimport('joomla.filesystem.folder'); +jimport('joomla.filesystem.file'); class PhocaDownloadViewDownload extends JViewLegacy { protected $file; protected $category; protected $t; + protected $files; + + function display($tpl = null) + { - function display($tpl = null){ - $app = JFactory::getApplication(); - $this->t['p'] = $app->getParams(); + $this->t['p'] = $app->getParams(); $this->t['user'] = JFactory::getUser(); $uri = JFactory::getURI(); $model = $this->getModel(); $document = JFactory::getDocument(); - $downloadToken = $app->input->get('id', '', 'string');// Token string - $this->t['limitstart'] = $app->input->get( 'start', 0, 'int');// we need it for category back link - $this->t['tmpl'] = $app->input->get( 'tmpl', '', 'string' ); + $downloadToken = $app->input->get('id', '', 'string'); // Token string + $this->t['limitstart'] = $app->input->get('start', 0, 'int'); // we need it for category back link + $this->t['tmpl'] = $app->input->get('tmpl', '', 'string'); $this->t['mediapath'] = PhocaDownloadPath::getPathMedia(); + $brand = $app->input->get('brand', '', 'string'); + $category = $app->input->get('category', '', 'int'); + $productLine = $app->input->get('productLine', '', 'string'); + $scale = $app->input->get('scale', 0, 'int'); + $nUserID = $this->t['user']->id > 0 ? $this->t['user']->nUserID : 0; + $programParam = isset($_GET['program']) && $_GET['program'] == '1' ? '&program=1' : ''; + $this->t['tmplr'] = 0; if ($this->t['tmpl'] == 'component') { $this->t['tmplr'] = 1; } - if ($this->t['limitstart'] > 0 ) { - $this->t['limitstarturl'] = '&start='.$this->t['limitstart']; + if ($this->t['limitstart'] > 0) { + $this->t['limitstarturl'] = '&start=' . $this->t['limitstart']; } else { $this->t['limitstarturl'] = ''; } - + //$this->category = $model->getCategory($fileId); //$this->file = $model->getFile($fileId, $this->t['limitstarturl']); - + // Params - $this->t['licenseboxheight'] = $this->t['p']->get( 'license_box_height', 300 ); - $this->t['filename_or_name'] = $this->t['p']->get( 'filename_or_name', 'filename' ); - $this->t['allowed_file_types'] = $this->t['p']->get( 'allowed_file_types', '' ); - $this->t['disallowed_file_types'] = $this->t['p']->get( 'disallowed_file_types', '' ); - $this->t['enable_user_statistics'] = $this->t['p']->get( 'enable_user_statistics', 1 ); - $this->t['file_icon_size'] = $this->t['p']->get( 'file_icon_size', 16 ); + $this->t['licenseboxheight'] = $this->t['p']->get('license_box_height', 300); + $this->t['filename_or_name'] = $this->t['p']->get('filename_or_name', 'filename'); + $this->t['allowed_file_types'] = $this->t['p']->get('allowed_file_types', ''); + $this->t['disallowed_file_types'] = $this->t['p']->get('disallowed_file_types', ''); + $this->t['enable_user_statistics'] = $this->t['p']->get('enable_user_statistics', 1); + $this->t['file_icon_size'] = $this->t['p']->get('file_icon_size', 16); $this->t['pw'] = PhocaDownloadRenderFront::renderPhocaDownload(); - $this->t['download_external_link'] = $this->t['p']->get( 'download_external_link', '_self' ); - $this->t['display_report_link'] = $this->t['p']->get( 'display_report_link', 0 ); - $this->t['send_mail_download'] = $this->t['p']->get( 'send_mail_download', 0 );// not boolean but id of user - $this->t['display_specific_layout'] = $this->t['p']->get( 'display_specific_layout', 0 ); - $this->t['displaynew'] = $this->t['p']->get( 'display_new', 0 ); - $this->t['displayhot'] = $this->t['p']->get( 'display_hot', 0 ); - $this->t['enable_token_download'] = $this->t['p']->get( 'enable_token_download', 0 ); - + $this->t['download_external_link'] = $this->t['p']->get('download_external_link', '_self'); + $this->t['display_report_link'] = $this->t['p']->get('display_report_link', 0); + $this->t['send_mail_download'] = $this->t['p']->get('send_mail_download', 0); // not boolean but id of user + $this->t['display_specific_layout'] = $this->t['p']->get('display_specific_layout', 0); + $this->t['displaynew'] = $this->t['p']->get('display_new', 0); + $this->t['displayhot'] = $this->t['p']->get('display_hot', 0); + $this->t['enable_token_download'] = $this->t['p']->get('enable_token_download', 0); + $this->t['display_tags_links'] = $this->t['p']->get('display_tags_links', 0); + $this->t['itemMenu'] = $model->getMenuItems(41, $nUserID); + $this->t['brandMenu'] = $model->getBrandsMenuItems(41, $nUserID); + $this->t['sign_out_link'] = $_SERVER['SERVER_NAME'] == 'www.archline.hu' ? '/kilepes' : '/logout'; + $this->t['profile_link'] = $_SERVER['SERVER_NAME'] == 'www.archline.hu' ? '/felhasznalo' : '/user'; + $this->files = $model->getFileList($nUserID); + $this->t['modelClass'] = $category != '' || $brand != '' || ($brand != '' && $productLine != '') ? 'hiddenModel' : ''; + $this->t['brandClass'] = $this->t['modelClass'] == '' ? 'hiddenBrand' : ''; + $this->t['scale'] = $scale > 1 && $scale < 5 ? $scale : 3; + $this->t['scaleParam'] = $scale != 0 ? '&scale=' . $scale : ''; + $this->t['lang'] = JFactory::getLanguage()->getTag(); + $this->t['scaleParam'] .= $programParam; + + // LOGOUT + // - - - - - - - - - - - - - - - + $logout = $app->input->get('warehouse_logout', array(0), 'array'); + $logoutId = (int) $logout[0]; + if ($logoutId > 0) { + $uri = JUri::getInstance(); + + $app = JFactory::getApplication(); + $app->logout($logoutId); + $app->redirect(JRoute::_($uri->toString(), false)); + } + // - - - - - - - - - - - - - - - + + // SCALE DOWN + // - - - - - - - - - - - - - - - + $scaleDown = $app->input->get('btn_scale_down', array(0), 'array'); + $scaleDownId = (int) $scaleDown[0]; + if ($scaleDownId > 0) { + $scale = isset($_GET['scale']) ? $_GET['scale'] - 1 : 2; + if (($scale > 1 && $scale < 5) || !isset($_GET['scale'])) { + $url = '/warehouse/my-content?scale=' . $scale . $programParam; + + $app->redirect($url); + } + } + + // SCALE UP + $scaleUp = $app->input->get('btn_scale_up', array(0), 'array'); + $scaleUpId = (int) $scaleUp[0]; + if ($scaleUpId > 0) { + $scale = isset($_GET['scale']) ? $_GET['scale'] + 1 : 4; + if (($scale > 1 && $scale < 5) || !isset($_GET['scale'])) { + $url = '/warehouse/my-content?scale=' . $scale . $programParam; + + $app->redirect($url); + } + } + PhocaDownloadRenderFront::renderAllCSS(); - + $this->t['found'] = 0; if ($this->t['enable_token_download'] == 0) { $this->t['found'] = 0; } else if ($downloadToken == '') { $this->t['found'] = 0; - } else { $this->file = $model->getFile($downloadToken); - if(isset($this->file[0]->id) && (int)$this->file[0]->id > 0 && isset($this->file[0]->token) && $this->file[0]->token != '') { + if (isset($this->file[0]->id) && (int)$this->file[0]->id > 0 && isset($this->file[0]->token) && $this->file[0]->token != '') { $this->t['found'] = 1; } - - + + /*$document->addCustomTag(''); $js = 'var enableDownloadButtonPD = 0;' .'function enableDownloadPD() {' @@ -88,44 +146,47 @@ class PhocaDownloadViewDownload extends JViewLegacy .'}'; $document->addScriptDeclaration($js);*/ - - - + + + // DOWNLOAD // - - - - - - - - - - - - - - - - $download = $app->input->get( 'download', 0, 'int' ); + $download = $app->input->get('download', 0, 'int'); //$licenseAgree = $app->input->get( 'license_agree', '', 'string' ); - $downloadId = (int) $this->file[0]->id; + $downloadId = 0; + if (isset($this->file[0]->id)) { + $downloadId = (int) $this->file[0]->id; + } if ($download == 1) { if (isset($this->file[0]->id)) { - $currentLink = 'index.php?option=com_phocadownload&view=download&id='.htmlspecialchars($downloadToken). $this->t['limitstarturl'] . '&Itemid='. $app->input->get('Itemid', 0, 'int'); + $currentLink = 'index.php?option=com_phocadownload&view=download&id=' . htmlspecialchars($downloadToken) . $this->t['limitstarturl'] . '&Itemid=' . $app->input->get('Itemid', 0, 'int'); } else { - $currentLink = 'index.php?option=com_phocadownload&view=categories&Itemid='. $app->input->get('Itemid', 0, 'int'); + $currentLink = 'index.php?option=com_phocadownload&view=categories&Itemid=' . $app->input->get('Itemid', 0, 'int'); } - + // Check Token $token = JSession::getFormToken(); - if (!JRequest::getInt( $token, 0, 'get' )) { + if (!JRequest::getInt($token, 0, 'get')) { //JError::raiseError(403, 'Request Forbidden'); $app->redirect(JRoute::_('index.php', false), JText::_('COM_PHOCADOWNLOAD_INVALID_TOKEN')); exit; } - + // Check License Agreement /*if (empty($licenseAgree)) { $app->redirect(JRoute::_($currentLink, false), JText::_('COM_PHOCADOWNLOAD_WARNING_AGREE_LICENSE_TERMS')); exit; }*/ - + $fileData = PhocaDownloadDownload::getDownloadData($downloadId, $currentLink, 1); - + PhocaDownloadDownload::download($fileData, $downloadId, $currentLink, 1); } // - - - - - - - - - - - - - - - - + /*$imagePath = PhocaDownloadPath::getPathSet('icon'); $this->t['cssimgpath'] = str_replace ( '../', JURI::base(true).'/', $imagePath['orig_rel_ds']); $filePath = PhocaDownloadPath::getPathSet('file'); @@ -136,22 +197,42 @@ class PhocaDownloadViewDownload extends JViewLegacy $this->_prepareDocument($this->category[0], $this->file[0]); }*/ } - - parent::display($tpl); - + + // Bootstrap 3 Layout + $this->tmpl['display_bootstrap3_layout'] = $this->t['p']->get('display_bootstrap3_layout', 0); + if ($this->tmpl['display_bootstrap3_layout'] == 1) { + + JHtml::_('jquery.framework', false); + JHTML::stylesheet('media/com_phocadownload/bootstrap/css/bootstrap.min.css'); + JHTML::stylesheet('media/com_phocadownload/bootstrap/css/bootstrap.extended.css'); + // Loaded by jquery.framework; + //$document->addScript(JURI::root(true).'/media/com_phocadownload/bootstrap/js/bootstrap.min.js'); + /*$document->addScript(JURI::root(true).'/media/com_phocadownload/js/jquery.equalheights.min.js'); + $document->addScriptDeclaration( + 'jQuery(window).load(function(){ + jQuery(\'.ph-thumbnail\').equalHeights(); + });');*/ + } + + if ($this->tmpl['display_bootstrap3_layout'] == 1) { + parent::display('bootstrap'); + } else { + parent::display($tpl); + } } - - protected function _prepareDocument( $file) { - + + protected function _prepareDocument($file) + { + $app = JFactory::getApplication(); $menus = $app->getMenu(); $menu = $menus->getActive(); $pathway = $app->getPathway(); $title = null; - - $this->t['downloadmetakey'] = $this->t['p']->get( 'download_metakey', '' ); - $this->t['downloadmetadesc'] = $this->t['p']->get( 'download_metadesc', '' ); - + + $this->t['downloadmetakey'] = $this->t['p']->get('download_metakey', ''); + $this->t['downloadmetadesc'] = $this->t['p']->get('download_metadesc', ''); + if ($menu) { $this->t['p']->def('page_heading', $this->t['p']->get('page_title', $menu->title)); } else { @@ -170,36 +251,35 @@ class PhocaDownloadViewDownload extends JViewLegacy //$this->document->setTitle($title); $this->document->setTitle($title);*/ - + $title = $this->t['p']->get('page_title', ''); - $this->tmpl['display_file_name_title'] = 1; + $this->tmpl['display_file_name_title'] = 1; if (empty($title)) { $title = htmlspecialchars_decode($app->getCfg('sitename')); } else if ($app->getCfg('sitename_pagetitles', 0) == 1) { $title = JText::sprintf('JPAGETITLE', htmlspecialchars_decode($app->getCfg('sitename')), $title); - + if ($this->tmpl['display_file_name_title'] == 1 && isset($file->title) && $file->title != '') { - $title = $title .' - ' . $file->title; + $title = $title . ' - ' . $file->title; } - } else if ($app->getCfg('sitename_pagetitles', 0) == 2) { - + if ($this->tmpl['display_file_name_title'] == 1 && isset($file->title) && $file->title != '') { - $title = $title .' - ' . $file->title; + $title = $title . ' - ' . $file->title; } $title = JText::sprintf('JPAGETITLE', $title, htmlspecialchars_decode($app->getCfg('sitename'))); } $this->document->setTitle($title); - + if ($file->metadesc != '') { $this->document->setDescription($file->metadesc); } else if ($this->t['downloadmetadesc'] != '') { $this->document->setDescription($this->t['downloadmetadesc']); } else if ($this->t['p']->get('menu-meta_description', '')) { $this->document->setDescription($this->t['p']->get('menu-meta_description', '')); - } + } if ($file->metakey != '') { $this->document->setMetadata('keywords', $file->metakey); @@ -212,12 +292,11 @@ class PhocaDownloadViewDownload extends JViewLegacy if ($app->getCfg('MetaTitle') == '1' && $this->t['p']->get('menupage_title', '')) { $this->document->setMetaData('title', $this->t['p']->get('page_title', '')); } - - + + if (!empty($file->title)) { $pathway->addItem($file->title); } } } -?> \ No newline at end of file diff --git a/packages/phocadownload/components/com_phocadownload/views/feed/metadata.xml b/packages/phocadownload/components/com_phocadownload/views/feed/metadata.xml index 23786134..6839145b 100644 --- a/packages/phocadownload/components/com_phocadownload/views/feed/metadata.xml +++ b/packages/phocadownload/components/com_phocadownload/views/feed/metadata.xml @@ -1,4 +1,4 @@ - - -
      \ No newline at end of file diff --git a/packages/phocadownload/components/com_phocadownload/views/phocadownloadlinkfile/view.html.php b/packages/phocadownload/components/com_phocadownload/views/phocadownloadlinkfile/view.html.php index 9375a7bf..dffcf7b9 100644 --- a/packages/phocadownload/components/com_phocadownload/views/phocadownloadlinkfile/view.html.php +++ b/packages/phocadownload/components/com_phocadownload/views/phocadownloadlinkfile/view.html.php @@ -13,8 +13,9 @@ jimport( 'joomla.application.component.view' ); class PhocaDownloadViewPhocaDownloadLinkFile extends JViewLegacy { - var $_context = 'com_phocadownload.phocadownloadlinkfile'; - + public $_context = 'com_phocadownload.phocadownloadlinkfile'; + protected $t; + function display($tpl = null) { $app = JFactory::getApplication(); $uri = JFactory::getURI(); @@ -117,7 +118,7 @@ class PhocaDownloadViewPhocaDownloadLinkFile extends JViewLegacy $uriS = $uri->toString(); $this->assignRef('user', $user); $this->assignRef('lists', $lists); - $this->assignRef('tmpl', $this->t); + $this->assignRef('items', $items); $this->assignRef('pagination', $pagination); $this->assignRef('request_url', $uriS); diff --git a/packages/phocadownload/components/com_phocadownload/views/phocadownloadlinks/view.html.php b/packages/phocadownload/components/com_phocadownload/views/phocadownloadlinks/view.html.php index 7b56f5eb..0ef806f0 100644 --- a/packages/phocadownload/components/com_phocadownload/views/phocadownloadlinks/view.html.php +++ b/packages/phocadownload/components/com_phocadownload/views/phocadownloadlinks/view.html.php @@ -11,6 +11,8 @@ jimport( 'joomla.application.component.view' ); class phocaDownloadViewphocaDownloadLinks extends JViewLegacy { + protected $t; + function display($tpl = null) { $app = JFactory::getApplication(); JHtml::_('behavior.tooltip'); @@ -42,7 +44,7 @@ class phocaDownloadViewphocaDownloadLinks extends JViewLegacy $this->t['linkfile'] = $tUri.'index.php?option=com_phocadownload&view=phocadownloadlinkfile&tmpl=component&e_name='.$eName; $this->t['linkytb'] = $tUri.'index.php?option=com_phocadownload&view=phocadownloadlinkytb&tmpl=component&e_name='.$eName; - $this->assignRef('tmpl', $this->t); + parent::display($tpl); } } diff --git a/packages/phocadownload/components/com_phocadownload/views/phocadownloadlinkytb/tmpl/default.php b/packages/phocadownload/components/com_phocadownload/views/phocadownloadlinkytb/tmpl/default.php index f53e7cb3..2f103392 100644 --- a/packages/phocadownload/components/com_phocadownload/views/phocadownloadlinkytb/tmpl/default.php +++ b/packages/phocadownload/components/com_phocadownload/views/phocadownloadlinkytb/tmpl/default.php @@ -50,7 +50,7 @@ function insertLink() { -
      +
      \ No newline at end of file diff --git a/packages/phocadownload/components/com_phocadownload/views/phocadownloadlinkytb/view.html.php b/packages/phocadownload/components/com_phocadownload/views/phocadownloadlinkytb/view.html.php index 5d9e4d08..8e27f092 100644 --- a/packages/phocadownload/components/com_phocadownload/views/phocadownloadlinkytb/view.html.php +++ b/packages/phocadownload/components/com_phocadownload/views/phocadownloadlinkytb/view.html.php @@ -13,6 +13,9 @@ jimport( 'joomla.application.component.view' ); class phocaDownloadViewphocaDownloadLinkYtb extends JViewLegacy { + + protected $t; + function display($tpl = null) { $app = JFactory::getApplication(); $document = JFactory::getDocument(); @@ -33,7 +36,7 @@ class phocaDownloadViewphocaDownloadLinkYtb extends JViewLegacy $this->t['ename'] = preg_replace( '#[^A-Z0-9\-\_\[\]]#i', '', $eName ); $this->t['backlink'] = $tUri.'index.php?option=com_phocadownload&view=phocadownloadlinks&tmpl=component&e_name='.$this->t['ename']; - $this->assignRef('tmpl', $this->t); + parent::display($tpl); } } diff --git a/packages/phocadownload/components/com_phocadownload/views/user/tmpl/default.php b/packages/phocadownload/components/com_phocadownload/views/user/tmpl/default.php index 757fe855..6f77caab 100644 --- a/packages/phocadownload/components/com_phocadownload/views/user/tmpl/default.php +++ b/packages/phocadownload/components/com_phocadownload/views/user/tmpl/default.php @@ -1,43 +1,43 @@ -t['p']->get( 'page_heading' ) != '') { - $heading .= $this->t['p']->get( 'page_heading' ); -} - -if ($this->t['showpageheading'] != 0) { - if ( $heading != '') { - echo '

      '. $this->escape($heading) . '

      '; - } -} -$tab = 0; -switch ($this->t['tab']) { - case 'up': - $tab = 1; - break; - - case 'cc': - default: - $tab = 0; - break; -} - -echo '
       
      '; - -if ($this->t['displaytabs'] > 0) { - echo '
      '; - //$pane =& J Pane::getInstance('Tabs', array('startOffset'=> $this->t['tab'])); - //echo $pane->startPane( 'pane' ); - echo JHtml::_('tabs.start', 'config-tabs-com_phocadownload-user', array('useCookie'=>1, 'startOffset'=> $this->t['tab'])); - - //echo $pane->startPanel( JHTML::_( 'image .site', $this->t['pi'].'icon-document-16.png','', '', '', '', '') . ' '.JText::_('COM_PHOCADOWNLOAD_UPLOAD'), 'files' ); - echo JHtml::_('tabs.panel', JHtml::_( 'image', $this->t['pi'].'icon-document-16.png', '') . ' '.JText::_('COM_PHOCADOWNLOAD_UPLOAD'), 'files' ); - echo $this->loadTemplate('files'); - //echo $pane->endPanel(); - - //echo $pane->endPane(); - echo JHtml::_('tabs.end'); - echo '
      '; -} -echo $this->t['pw']; -?> +t['p']->get( 'page_heading' ) != '') { + $heading .= $this->t['p']->get( 'page_heading' ); +} + +if ($this->t['showpageheading'] != 0) { + if ( $heading != '') { + echo '

      '. $this->escape($heading) . '

      '; + } +} +$tab = 0; +switch ($this->t['tab']) { + case 'up': + $tab = 1; + break; + + case 'cc': + default: + $tab = 0; + break; +} + +echo '
       
      '; + +if ($this->t['displaytabs'] > 0) { + echo '
      '; + //$pane =& J Pane::getInstance('Tabs', array('startOffset'=> $this->t['tab'])); + //echo $pane->startPane( 'pane' ); + echo JHtml::_('tabs.start', 'config-tabs-com_phocadownload-user', array('useCookie'=>1, 'startOffset'=> $this->t['tab'])); + + //echo $pane->startPanel( JHTML::_( 'image .site', $this->t['pi'].'icon-document-16.png','', '', '', '', '') . ' '.JText::_('COM_PHOCADOWNLOAD_UPLOAD'), 'files' ); + echo JHtml::_('tabs.panel', JHtml::_( 'image', $this->t['pi'].'icon-document-16.png', '') . ' '.JText::_('COM_PHOCADOWNLOAD_UPLOAD'), 'files' ); + echo $this->loadTemplate('files'); + //echo $pane->endPanel(); + + //echo $pane->endPane(); + echo JHtml::_('tabs.end'); + echo '
      '; +} +echo $this->t['pw']; +?> diff --git a/packages/phocadownload/components/com_phocadownload/views/user/tmpl/default_bootstrap.php b/packages/phocadownload/components/com_phocadownload/views/user/tmpl/default_bootstrap.php new file mode 100644 index 00000000..7d1106d9 --- /dev/null +++ b/packages/phocadownload/components/com_phocadownload/views/user/tmpl/default_bootstrap.php @@ -0,0 +1,25 @@ +t['p']->get( 'page_heading' ) != '') { + $heading .= $this->t['p']->get( 'page_heading' ); +} + +if ($this->t['showpageheading'] != 0) { + if ( $heading != '') { + echo '

      '. $this->escape($heading) . '

      '; + } +} + + +echo ''; + +echo '
      '; +//echo JHtml::_('tabs.panel', JHtml::_( 'image', $this->t['pi'].'icon-document-16.png', '') . ' '.JText::_('COM_PHOCADOWNLOAD_UPLOAD'), 'files' ); +echo $this->loadTemplate('files_bootstrap'); + +echo '
      '; +echo $this->t['pw']; +?> diff --git a/packages/phocadownload/components/com_phocadownload/views/user/tmpl/default_files.php b/packages/phocadownload/components/com_phocadownload/views/user/tmpl/default_files.php index 3f2a8c1e..6623a2c9 100644 --- a/packages/phocadownload/components/com_phocadownload/views/user/tmpl/default_files.php +++ b/packages/phocadownload/components/com_phocadownload/views/user/tmpl/default_files.php @@ -1,332 +1,335 @@ -getNullDate(); -$now = JFactory::getDate(); - -echo '
       
      '; - -if ($this->t['displayupload'] == 1) { - - -?> - - - - -

      -
      - - - -
      - - -
      - -
      -listsfiles['catid'] ?> -
      -
      - - - - - - - - - - - - - - - - - -t['filesitems'] ); -$rows = &$this->t['filesitems']; - -if (is_array($rows)) { - foreach ($rows as $row) { - - // USER RIGHT - Delete (Publish/Unpublish) - - - - - - - - - - - - // 2, 2 means that user access will be ignored in function getUserRight for display Delete button - // because we cannot check the access and delete in one time - $user = JFactory::getUser(); - $rightDisplayDelete = 0; - $catAccess = PhocaDownloadAccess::getCategoryAccessByFileId((int)$row->id); - - if (!empty($catAccess)) { - $rightDisplayDelete = PhocaDownloadAccess::getUserRight('deleteuserid', $catAccess->deleteuserid, 2, $user->getAuthorisedViewLevels(), $user->get('id', 0), 0); - } - // - - - - - - - - - - - - - - - - - - - - - - - - ?>"> - - - - '; - if ($row->published == 1) { - if ($rightDisplayDelete) { - echo ''; - echo JHTML::_('image', $this->t['pi'].'icon-publish.png', JText::_('COM_PHOCADOWNLOAD_PUBLISHED')); - echo ''; - } else { - echo JHTML::_('image', $this->t['pi'].'icon-publish-g.png', JText::_('COM_PHOCADOWNLOAD_PUBLISHED')); - } - } - if ($row->published == 0) { - if ($rightDisplayDelete) { - echo ''; - echo JHTML::_('image', $this->t['pi'].'icon-unpublish.png', JText::_('COM_PHOCADOWNLOAD_UNPUBLISHED')); - echo ''; - } else { - echo JHTML::_('image', $this->t['pi'].'icon-unpublish-g.png', JText::_('COM_PHOCADOWNLOAD_UNPUBLISHED')); - } - } - echo ''; - - echo ''; - - echo ''; - - // Approved - echo ''; - - echo ''; - - - echo '' - //echo '' - .''; - - $k = 1 - $k; - $i++; - } -} -?> - - - - - -
      listsfiles['order_Dir'], $this->listsfiles['order'], 'image'); ?>listsfiles['order_Dir'], $this->listsfiles['order'], 'image' ); ?>listsfiles['order_Dir'], $this->listsfiles['order'], 'image' ); ?>listsfiles['order_Dir'], $this->listsfiles['order'], 'image' ); ?>listsfiles['order_Dir'], $this->listsfiles['order'], 'image' ); ?>
      title; ?>'; - if ($rightDisplayDelete) { - echo ''; - echo JHTML::_('image', $this->t['pi'].'icon-trash.png', JText::_('COM_PHOCADOWNLOAD_DELETE')); - echo ''; - } else { - echo JHTML::_('image', $this->t['pi'].'icon-trash-g.png', JText::_('COM_PHOCADOWNLOAD_DELETE')); - } - echo ''; - // User should get info about active/not active file (if e.g. admin change the active status) - $publish_up = JFactory::getDate($row->publish_up); - $publish_down = JFactory::getDate($row->publish_down); - $tz = new DateTimeZone($config->get('offset')); - $publish_up->setTimezone($tz); - $publish_down->setTimezone($tz); - - - if ( $now->toUnix() <= $publish_up->toUnix() ) { - $text = JText::_( 'COM_PHOCADOWNLOAD_PENDING' ); - } else if ( ( $now->toUnix() <= $publish_down->toUnix() || $row->publish_down == $nullDate ) ) { - $text = JText::_( 'COM_PHOCADOWNLOAD_ACTIVE' ); - } else if ( $now->toUnix() > $publish_down->toUnix() ) { - $text = JText::_( 'COM_PHOCADOWNLOAD_EXPIRED' ); - } - - $times = ''; - if (isset($row->publish_up)) { - if ($row->publish_up == $nullDate) { - $times .= JText::_( 'COM_PHOCADOWNLOAD_START') . ': '.JText::_( 'COM_PHOCADOWNLOAD_ALWAYS' ); - } else { - $times .= JText::_( 'COM_PHOCADOWNLOAD_START') .": ". $publish_up->format("D, d M Y H:i:s"); - } - } - if (isset($row->publish_down)) { - if ($row->publish_down == $nullDate) { - $times .= "
      ". JText::_( 'COM_PHOCADOWNLOAD_FINISH'). ': '. JText::_('COM_PHOCADOWNLOAD_NO_EXPIRY' ); - } else { - $times .= "
      ". JText::_( 'COM_PHOCADOWNLOAD_FINISH') .": ". $publish_up->format("D, d M Y H:i:s"); - } - } - - if ( $times ) { - echo '' - .''. $text.''; - } - - - echo '
      '; - if ($row->approved == 1) { - echo JHTML::_('image', $this->t['pi'].'icon-publish.png', JText::_('COM_PHOCADOWNLOAD_APPROVED')); - } else { - echo JHTML::_('image', $this->t['pi'].'icon-unpublish.png', JText::_('COM_PHOCADOWNLOAD_NOT_APPROVED')); - } - echo ''. $row->date .''. $row->categorytitle .''. $row->id .'
      - - - - - - - - - - - - - - -
      - -state->folder) && $this->state->folder != '') { - $currentFolder = $this->state->folder; -} -?> -

      t['uploadmaxsizeread'].']'; -?>

      - -t['errorcatid'] != '') { - echo '
      ' - .'' . $this->t['errorcatid'] . '
      '; -} ?> - -
      - - - - - - t['errorfile'] != '') { - echo ''; - } ?> - - - - - - - - - - - - - - - - - - - - - - - - t['erroremail'] != '') { - echo ''; - } ?> - - - - - - - t['errorwebsite'] != '') { - echo ''; - } ?> - - - - - - - - - - - -
      : - - -
      ' - .'' . $this->t['errorfile'] . '
      :
      :
        -
      :
      :
      ' - .'' . $this->t['erroremail'] . '
      :
      ' - .'' . $this->t['errorwebsite'] . '
      :
      :
      - -
      - - */ ?> - - - - - - - - -
      -
      t['pi'].'icon-loading.gif', '') . JText::_('COM_PHOCADOWNLOAD_LOADING'); ?>
      - - '; - -?> +getNullDate(); +$now = JFactory::getDate(); + +echo '
       
      '; + +if ($this->t['displayupload'] == 1) { + + +?> + + + + +

      +
      + + + +
      + + +
      + +
      +listsfiles['catid'] ?> +
      +
      + + + + + + + + + + + + + + + + + +t['filesitems'] ); +$rows = &$this->t['filesitems']; +if (is_array($rows)) { + foreach ($rows as $row) { + + // USER RIGHT - Delete (Publish/Unpublish) - - - - - - - - - - - + // 2, 2 means that user access will be ignored in function getUserRight for display Delete button + // because we cannot check the access and delete in one time + $user = JFactory::getUser(); + $rightDisplayDelete = 0; + $catAccess = PhocaDownloadAccess::getCategoryAccessByFileId((int)$row->id); + + if (!empty($catAccess)) { + $rightDisplayDelete = PhocaDownloadAccess::getUserRight('deleteuserid', $catAccess->deleteuserid, 2, $user->getAuthorisedViewLevels(), $user->get('id', 0), 0); + } + // - - - - - - - - - - - - - - - - - - - - - - + + ?>"> + + + + '; + if ($row->published == 1) { + if ($rightDisplayDelete) { + echo ''; + echo JHTML::_('image', $this->t['pi'].'icon-publish.png', JText::_('COM_PHOCADOWNLOAD_PUBLISHED')); + echo ''; + } else { + echo JHTML::_('image', $this->t['pi'].'icon-publish-g.png', JText::_('COM_PHOCADOWNLOAD_PUBLISHED')); + } + } + if ($row->published == 0) { + if ($rightDisplayDelete) { + echo ''; + echo JHTML::_('image', $this->t['pi'].'icon-unpublish.png', JText::_('COM_PHOCADOWNLOAD_UNPUBLISHED')); + echo ''; + } else { + echo JHTML::_('image', $this->t['pi'].'icon-unpublish-g.png', JText::_('COM_PHOCADOWNLOAD_UNPUBLISHED')); + } + } + echo ''; + + echo ''; + + echo ''; + + // Approved + echo ''; + + $upload_date = JFactory::getDate($row->date); + $upload_date->setTimezone($tz); + echo ''; + + //echo ''; + + + echo '' + //echo '' + .''; + + $k = 1 - $k; + $i++; + } +} +?> + + + + + +
      listsfiles['order_Dir'], $this->listsfiles['order'], 'image'); ?>listsfiles['order_Dir'], $this->listsfiles['order'], 'image' ); ?>listsfiles['order_Dir'], $this->listsfiles['order'], 'image' ); ?>listsfiles['order_Dir'], $this->listsfiles['order'], 'image' ); ?>listsfiles['order_Dir'], $this->listsfiles['order'], 'image' ); ?>
      title;?> '; + if ($rightDisplayDelete) { + echo ''; + echo JHTML::_('image', $this->t['pi'].'icon-trash.png', JText::_('COM_PHOCADOWNLOAD_DELETE')); + echo ''; + } else { + echo JHTML::_('image', $this->t['pi'].'icon-trash-g.png', JText::_('COM_PHOCADOWNLOAD_DELETE')); + } + echo ''; + // User should get info about active/not active file (if e.g. admin change the active status) + $publish_up = JFactory::getDate($row->publish_up); + $publish_down = JFactory::getDate($row->publish_down); + $tz = new DateTimeZone($config->get('offset')); + $publish_up->setTimezone($tz); + $publish_down->setTimezone($tz); + + + if ( $now->toUnix() <= $publish_up->toUnix() ) { + $text = JText::_( 'COM_PHOCADOWNLOAD_PENDING' ); + } else if ( ( $now->toUnix() <= $publish_down->toUnix() || $row->publish_down == $nullDate ) ) { + $text = JText::_( 'COM_PHOCADOWNLOAD_ACTIVE' ); + } else if ( $now->toUnix() > $publish_down->toUnix() ) { + $text = JText::_( 'COM_PHOCADOWNLOAD_EXPIRED' ); + } + + $times = ''; + if (isset($row->publish_up)) { + if ($row->publish_up == $nullDate) { + $times .= JText::_( 'COM_PHOCADOWNLOAD_START') . ': '.JText::_( 'COM_PHOCADOWNLOAD_ALWAYS' ); + } else { + $times .= JText::_( 'COM_PHOCADOWNLOAD_START') .": ". $publish_up->format("D, d M Y H:i:s"); + } + } + if (isset($row->publish_down)) { + if ($row->publish_down == $nullDate) { + $times .= "
      ". JText::_( 'COM_PHOCADOWNLOAD_FINISH'). ': '. JText::_('COM_PHOCADOWNLOAD_NO_EXPIRY' ); + } else { + $times .= "
      ". JText::_( 'COM_PHOCADOWNLOAD_FINISH') .": ". $publish_up->format("D, d M Y H:i:s"); + } + } + + if ( $times ) { + echo '' + .''. $text.''; + } + + + echo '
      '; + if ($row->approved == 1) { + echo JHTML::_('image', $this->t['pi'].'icon-publish.png', JText::_('COM_PHOCADOWNLOAD_APPROVED')); + } else { + echo JHTML::_('image', $this->t['pi'].'icon-unpublish.png', JText::_('COM_PHOCADOWNLOAD_NOT_APPROVED')); + } + echo ''. $upload_date .''. $row->date .''. $row->categorytitle .''. $row->id .'
      + + + + + + + + + + + + + + +
      + +state->folder) && $this->state->folder != '') { + $currentFolder = $this->state->folder; +} +?> +

      t['uploadmaxsizeread'].']'; +?>

      + +t['errorcatid'] != '') { + echo '
      ' + .'' . $this->t['errorcatid'] . '
      '; +} ?> + +
      + + + + + + t['errorfile'] != '') { + echo ''; + } ?> + + + + + + + + + + + + + + + + + + + + + + + + t['erroremail'] != '') { + echo ''; + } ?> + + + + + + + t['errorwebsite'] != '') { + echo ''; + } ?> + + + + + + + + + + + +
      : + + +
      ' + .'' . $this->t['errorfile'] . '
      :
      :
        +
      :
      :
      ' + .'' . $this->t['erroremail'] . '
      :
      ' + .'' . $this->t['errorwebsite'] . '
      :
      :
      + +
      + + */ ?> + + + + + + + + +
      +
      t['pi'].'icon-loading.gif', '') . JText::_('COM_PHOCADOWNLOAD_LOADING'); ?>
      + + '; + +?> diff --git a/packages/phocadownload/components/com_phocadownload/views/user/tmpl/default_files_bootstrap.php b/packages/phocadownload/components/com_phocadownload/views/user/tmpl/default_files_bootstrap.php new file mode 100644 index 00000000..f0c18454 --- /dev/null +++ b/packages/phocadownload/components/com_phocadownload/views/user/tmpl/default_files_bootstrap.php @@ -0,0 +1,355 @@ +getNullDate(); +$now = JFactory::getDate(); + +echo '
      '; + +if ($this->t['displayupload'] == 1) { + + +?> + + + + +

      +
      + +
      +
      +
      + */ ?> + + + + + + +
      +
      + +
      +
      listsfiles['catid'] ?>
      + +
      + + + + + + + + + + + + + + + + + + +t['filesitems'] ); +$rows = &$this->t['filesitems']; + +if (is_array($rows)) { + foreach ($rows as $row) { + + // USER RIGHT - Delete (Publish/Unpublish) - - - - - - - - - - - + // 2, 2 means that user access will be ignored in function getUserRight for display Delete button + // because we cannot check the access and delete in one time + $user = JFactory::getUser(); + $rightDisplayDelete = 0; + $catAccess = PhocaDownloadAccess::getCategoryAccessByFileId((int)$row->id); + if (!empty($catAccess)) { + $rightDisplayDelete = PhocaDownloadAccess::getUserRight('deleteuserid', $catAccess->deleteuserid, 2, $user->getAuthorisedViewLevels(), $user->get('id', 0), 0); + } + // - - - - - - - - - - - - - - - - - - - - - - + + ?>"> + + + + '; + if ($row->published == 1) { + if ($rightDisplayDelete) { + echo ''; + echo JHTML::_('image', $this->t['pi'].'icon-publish.png', JText::_('COM_PHOCADOWNLOAD_PUBLISHED')); + echo ''; + } else { + echo JHTML::_('image', $this->t['pi'].'icon-publish-g.png', JText::_('COM_PHOCADOWNLOAD_PUBLISHED')); + } + } + if ($row->published == 0) { + if ($rightDisplayDelete) { + echo ''; + echo JHTML::_('image', $this->t['pi'].'icon-unpublish.png', JText::_('COM_PHOCADOWNLOAD_UNPUBLISHED')); + echo ''; + } else { + echo JHTML::_('image', $this->t['pi'].'icon-unpublish-g.png', JText::_('COM_PHOCADOWNLOAD_UNPUBLISHED')); + } + } + echo ''; + + echo ''; + + echo ''; + + // Approved + echo ''; + + $upload_date = JFactory::getDate($row->date); + $upload_date->setTimezone($tz); + echo ''; + + //echo ''; + + + echo '' + //echo '' + .''; + + $k = 1 - $k; + $i++; + } +} +?> + + + + + +
      listsfiles['order_Dir'], $this->listsfiles['order'], 'image'); ?>listsfiles['order_Dir'], $this->listsfiles['order'], 'image' ); ?>listsfiles['order_Dir'], $this->listsfiles['order'], 'image' ); ?>listsfiles['order_Dir'], $this->listsfiles['order'], 'image' ); ?>listsfiles['order_Dir'], $this->listsfiles['order'], 'image' ); ?>
      title; ?>'; + if ($rightDisplayDelete) { + echo ''; + echo JHTML::_('image', $this->t['pi'].'icon-trash.png', JText::_('COM_PHOCADOWNLOAD_DELETE')); + echo ''; + } else { + echo JHTML::_('image', $this->t['pi'].'icon-trash-g.png', JText::_('COM_PHOCADOWNLOAD_DELETE')); + } + echo ''; + // User should get info about active/not active file (if e.g. admin change the active status) + $publish_up = JFactory::getDate($row->publish_up); + $publish_down = JFactory::getDate($row->publish_down); + $tz = new DateTimeZone($config->get('offset')); + $publish_up->setTimezone($tz); + $publish_down->setTimezone($tz); + + + if ( $now->toUnix() <= $publish_up->toUnix() ) { + $text = JText::_( 'COM_PHOCADOWNLOAD_PENDING' ); + } else if ( ( $now->toUnix() <= $publish_down->toUnix() || $row->publish_down == $nullDate ) ) { + $text = JText::_( 'COM_PHOCADOWNLOAD_ACTIVE' ); + } else if ( $now->toUnix() > $publish_down->toUnix() ) { + $text = JText::_( 'COM_PHOCADOWNLOAD_EXPIRED' ); + } + + $times = ''; + if (isset($row->publish_up)) { + if ($row->publish_up == $nullDate) { + $times .= JText::_( 'COM_PHOCADOWNLOAD_START') . ': '.JText::_( 'COM_PHOCADOWNLOAD_ALWAYS' ); + } else { + $times .= JText::_( 'COM_PHOCADOWNLOAD_START') .": ". $publish_up->format("D, d M Y H:i:s"); + } + } + if (isset($row->publish_down)) { + if ($row->publish_down == $nullDate) { + $times .= "
      ". JText::_( 'COM_PHOCADOWNLOAD_FINISH'). ': '. JText::_('COM_PHOCADOWNLOAD_NO_EXPIRY' ); + } else { + $times .= "
      ". JText::_( 'COM_PHOCADOWNLOAD_FINISH') .": ". $publish_up->format("D, d M Y H:i:s"); + } + } + + if ( $times ) { + echo '' + .''. $text.''; + } + + + echo '
      '; + if ($row->approved == 1) { + echo JHTML::_('image', $this->t['pi'].'icon-publish.png', JText::_('COM_PHOCADOWNLOAD_APPROVED')); + } else { + echo JHTML::_('image', $this->t['pi'].'icon-unpublish.png', JText::_('COM_PHOCADOWNLOAD_NOT_APPROVED')); + } + echo ''. $upload_date .''. $row->date .''. $row->categorytitle .''. $row->id .'
      + + + + + + + + + + + + + + +
      + +state->folder) && $this->state->folder != '') { + $currentFolder = $this->state->folder; +} +?> +

      t['uploadmaxsizeread'].']'; +?>

      + +t['errorcatid'] != '') { + echo '
      ' + .'' . $this->t['errorcatid'] . '
      '; +} ?> + +
      + + + + + + t['errorfile'] != '') { + echo ''; + } ?> + + + + + + + + + + + + + + + + + + + + + + + + t['erroremail'] != '') { + echo ''; + } ?> + + + + + + + t['errorwebsite'] != '') { + echo ''; + } ?> + + + + + + + + + + + +
      : + +
      + + + + + + + + +
      +
      ' + .'' . $this->t['errorfile'] . '
      :
      :
        +
      :
      :
      ' + .'' . $this->t['erroremail'] . '
      :
      ' + .'' . $this->t['errorwebsite'] . '
      :
      :
      + +
      + + */ ?> + + + + + + + + +
      +
      t['pi'].'icon-loading.gif', '') . JText::_('COM_PHOCADOWNLOAD_LOADING'); ?>
      + + '; + +?> diff --git a/packages/phocadownload/components/com_phocadownload/views/user/view.html.php b/packages/phocadownload/components/com_phocadownload/views/user/view.html.php index d22dce92..63712004 100644 --- a/packages/phocadownload/components/com_phocadownload/views/user/view.html.php +++ b/packages/phocadownload/components/com_phocadownload/views/user/view.html.php @@ -106,6 +106,7 @@ class PhocaDownloadViewUser extends JViewLegacy $this->t['errorfile'] = ''; $task = $app->input->get( 'task', '', 'string' ); + if($task == 'upload') { $post['title'] = $app->input->get( 'phocadownloaduploadtitle', '', 'string' ); $post['description'] = $app->input->get( 'phocadownloaduploaddescription', '', 'string' ); @@ -151,11 +152,23 @@ class PhocaDownloadViewUser extends JViewLegacy // Upload $errUploadMsg = ''; $redirectUrl = ''; + $fileArray = JRequest::getVar('Filedata', '', 'files', 'array'); - if(empty($fileArray) || (isset($fileArray['name']) && $fileArray['name'] == '')) { - $this->t['errorfile'] = JText::_('COM_PHOCADOWNLOAD_PLEASE_ADD_FILE'); + if(empty($fileArray)) { + + $this->t['errorfile'] = JText::_('COM_PHOCADOWNLOAD_PLEASE_ADD_FILE_OR_IF_ADDED_CHECK_IF_IT_HAS_RIGHT_FORMAT_AND_SIZE'); $returnForm = 1; + + } else if (isset($fileArray[0]) && $fileArray[0] == ''){ + $this->t['errorfile'] = JText::_('COM_PHOCADOWNLOAD_PLEASE_ADD_FILE_OR_IF_ADDED_CHECK_IF_IT_HAS_RIGHT_FORMAT_AND_SIZE'); + $returnForm = 1; + $fileArray['name'] = ''; + + } else if (isset($fileArray['name']) && $fileArray['name'] == '') { + + $this->t['errorfile'] = JText::_('COM_PHOCADOWNLOAD_PLEASE_ADD_FILE_OR_IF_ADDED_CHECK_IF_IT_HAS_RIGHT_FORMAT_AND_SIZE'); + $returnForm = 1; } if ($post['title'] == '') { @@ -306,7 +319,28 @@ class PhocaDownloadViewUser extends JViewLegacy $this->assignRef( 'params', $this->t['p']); $session = JFactory::getSession(); $this->assignRef('session', $session); - parent::display($tpl); + + // Bootstrap 3 Layout + $this->tmpl['display_bootstrap3_layout'] = $this->t['p']->get( 'display_bootstrap3_layout', 0 ); + if ($this->tmpl['display_bootstrap3_layout'] == 1) { + + JHtml::_('jquery.framework', false); + JHTML::stylesheet('media/com_phocadownload/bootstrap/css/bootstrap.min.css' ); + JHTML::stylesheet('media/com_phocadownload/bootstrap/css/bootstrap.extended.css' ); + // Loaded by jquery.framework; + //$document->addScript(JURI::root(true).'/media/com_phocadownload/bootstrap/js/bootstrap.min.js'); + $document->addScript(JURI::root(true).'/media/com_phocadownload/js/jquery.equalheights.min.js'); + $document->addScriptDeclaration( + 'jQuery(window).load(function(){ + jQuery(\'.ph-thumbnail\').equalHeights(); + });'); + } + + if ($this->tmpl['display_bootstrap3_layout'] == 1) { + parent::display('bootstrap'); + } else { + parent::display($tpl); + } } } ?> diff --git a/packages/phocadownload/language/en-GB/en-GB.com_phocadownload.ini b/packages/phocadownload/language/en-GB/en-GB.com_phocadownload.ini new file mode 100644 index 00000000..abf5c5a3 --- /dev/null +++ b/packages/phocadownload/language/en-GB/en-GB.com_phocadownload.ini @@ -0,0 +1,841 @@ +; @package Joomla.Framework +; @copyright Copyright (C) 2005 - 2010 Open Source Matters, Inc. All rights reserved. +; @license GNU General Public License version 2 or later; see LICENSE.txt +; +; @component Phoca Component +; @copyright Copyright (C) Jan Pavelka www.phoca.cz +; @license http://www.gnu.org/copyleft/gpl.html GNU General Public License version 2 or later; +; +; @test utf-8 ä, ö, ü +; + + +;[3.1.1] +COM_PHOCADOWNLOAD_SELECT_MAX_LEVELS="Select Max Levels" +COM_PHOCADOWNLOAD_FIELD_COLUMN_SIZE_CATEGORY_VIEW_LABEL="Column size (Category View)" +COM_PHOCADOWNLOAD_FIELD_COLUMN_SIZE_CATEGORY_VIEW_DESC="Set left column size for category view. Right column size will be automatically set. This parameter applies for Bootstrap layout only and maximum column size is 12." +COM_PHOCADOWNLOAD_FIELD_TAGS_STRING_LABEL="Tags (String)" +COM_PHOCADOWNLOAD_FIELD_TAGS_STRING_DESC="Set string tags. Separate each tag with comma (,). These tags are displayed next to filename or title. The don't include links, they cannot be searched in the system. They are just displayed like icons next to the filename or title" +COM_PHOCADOWNLOAD_YES_CATEGORY_VIEW_TITLE_SUFFIX="Yes (Category View) - Title Suffix" +COM_PHOCADOWNLOAD_YES_FILE_VIEW_TITLE_SUFFIX="Yes (FileView) - Title Suffix" +COM_PHOCADOWNLOAD_YES_CATEGORY_FILE_VIEW_TITLE_SUFFIX="Yes (Category And File View) - Title Suffix" +COM_PHOCADOWNLOAD_WAS_UPLOADED_BY="was uploaded by" +COM_PHOCADOWNLOAD_FILE_UPLOADED="File uploaded" +COM_PHOCADOWNLOAD_SEARCH_FILTER_IS_ACTIVE="Search filter is active. Listed categories are not displayed in category tree. Max levels filter is not active." +COM_PHOCADOWNLOAD_PLEASE_ADD_FILE_OR_IF_ADDED_CHECK_IF_IT_HAS_RIGHT_FORMAT_AND_SIZE="Please add a file. If added, please, test if it has the right format and size" +COM_PHOCADOWNLOAD_DISPLAY_BOOTSTRAP3_LAYOUT_LABEL="Display Bootstrap 3 Layout" +COM_PHOCADOWNLOAD_DISPLAY_BOOTSTRAP3_LAYOUT_DESC="When Bootstrap 3 layout is enabled, then specific layout will be not loaded. Don't forget to disable styles in Styles (CSS) view which can be in conflict with Bootstrap 3 (e.g. Bootstrap 2)" +;[3.1.0] +COM_PHOCADOWNLAD_CLOSE="Close" +COM_PHOCADOWNLOAD_FIELD_DISPLAY_ORDERING_CATEGORY_VIEW_LABEL="Display Ordering Select Box (Category View)" +COM_PHOCADOWNLOAD_FIELD_DISPLAY_ORDERING_CATEGORY_VIEW_DESC="Display or hide ordering select box in Category View - ordering of files" +COM_PHOCADOWNLOAD_COUNT_ASC="Rating Count Ascending" +COM_PHOCADOWNLOAD_COUNT_DESC="Rating Count Descending" +COM_PHOCADOWNLOAD_AVERAGE_ASC="Rating Ascending" +COM_PHOCADOWNLOAD_AVERAGE_DESC="Rating Descending" +COM_PHOCADOWNLOAD_DOWNLOADS_ASC="Downloads Ascending" +COM_PHOCADOWNLOAD_DOWNLOADS_DESC="Downloads Descending" +COM_PHOCADOWNLOAD_ORDER_FRONT="Ordering" +COM_PHOCADOWNLOAD_REGARDS="Regards" +COM_PHOCADOWNLOAD_MESSAGE="Message" +COM_PHOCADOWNLOAD_WEBSITE="Website" +COM_PHOCADOWNLOAD_WAS_DOWNLOADED_BY="was downloaded by" +COM_PHOCADOWNLOAD_SUCCESS_NEW_FILE_UPLOADED="New file uploaded" +COM_PHOCADOWNLOAD_FILE_DOWNLOADED="File downloaded" +COM_PHOCADOWNLOAD_ANONYMOUS="Anonymous" +COM_PHOCADOWNLOAD_FIELD_MULTIPLE_UPLOAD_METHOD_DESC="Set Multiple Upload Method in administration. See http://www.plupload.com/ which browsers and which functions are supported by selected method" +COM_PHOCADOWNLOAD_FIELD_MULTIPLE_UPLOAD_METHOD_LABEL="Multiple Upload Method (Administration)" +COM_PHOCADOWNLOAD_FLASH_UPLOADER="Flash Uploader" +COM_PHOCADOWNLOAD_GEARS_UPLOADER="Gears Uploader" +COM_PHOCADOWNLOAD_SILVERLIGHT_UPLOADER="Silverlight Uploader" +COM_PHOCADOWNLOAD_HTML4_UPLOADER="HTML4 Uploader" +COM_PHOCADOWNLOAD_HTML5_UPLOADER="HTML5 Uploader" +COM_PHOCADOWNLOAD_BROWSERPLUS_UPLOADER="Browserplus Uploader" + +;[3.0.6] +COM_PHOCADOWNLOAD_FILENAME_ASC="Filename Ascending" +COM_PHOCADOWNLOAD_FILENAME_DESC="Filename Descending" + +;[3.0.3] +COM_PHOCADOWNLOAD_BROWSER_DOES_NOT_SUPPORT_AUDIO_VIDEO_TAG="Your browser does not support the audio/video tag" +COM_PHOCADOWNLOAD_FIELD_HTML5_AUDIO_VIDEO_LABEL="HTML5 Audio/Video" +COM_PHOCADOWNLOAD_FIELD_HTML5_AUDIO_VIDEO_DESC="Set yes to enable HTML 5 player for audio and video" +;[3.0.2] +COM_PHOCADOWNLOAD_FIELD_ENABLE_TOKEN_DOWNLOAD_LABEL="Enable Unique Download Link" +COM_PHOCADOWNLOAD_FIELD_ENABLE_TOKEN_DOWNLOAD_DESC="Enable or disable unique download link feature (download with token)" +COM_PHOCADOWNLOAD_MAX_LIMIT_DOWNLOAD_TOKEN_REACHED="File cannot be downloaded. Maximum download limit of this file reached." +COM_PHOCADOWNLOAD_FIELD_MAX_COUNT_TOKEN_DOWNLOADS_DESC="Set maximum count of files user can download through unique download link. Be aware, 0 (Zero) means, there is no limit. This limit only takes effect for unique download link" +COM_PHOCADOWNLOAD_FIELD_MAX_COUNT_TOKEN_DOWNLOADS_LABEL="Maximum Count of downloads per file (Unique Download Link)" +COM_PHOCADOWNLOAD_URL_FORMAT_DEPENDS_ON_SEF="This Link may take different formats. Its format depends on your SEF Settings" +COM_PHOCADOWNLOAD_UNIQUE_DOWNLOAD_URL="Unique Download Link" +COM_PHOCADOWNLOAD_DOWNLOAD_FILE="Download file" +COM_PHOCADOWNLOAD_FILE_NOT_FOUND="File Not Found" +COM_PHOCADOWNLOAD_SET_TOKEN="Set Token" +COM_PHOCADOWNLOAD_FIELD_TOKEN_LABEL="Token (Unique Download Link)" +COM_PHOCADOWNLOAD_FIELD_TOKEN_DESC="Set token - unique download link of the file" +COM_PHOCADOWNLOAD_FIELD_TOKENHITS_LABEL="Token Downloads" +COM_PHOCADOWNLOAD_FIELD_TOKENHITS_DESC="How many times the file was downloaded by unique download link" +COM_PHOCADOWNLOAD_YES_FRONTEND="Yes (Frontend Only)" +COM_PHOCADOWNLOAD_YES_BACKEND="Yes (Backend Only)" +COM_PHOCADOWNLOAD_YES_FRONTEND_BACKEND="Yes (Frontend, Backend)" +;[3.0.1] +COM_PHOCADOWNLOAD_FIELD_ALIAS_M_DESC="Alias for all added images can be set. If empty, Alias will be created from Filename" +COM_PHOCADOWNLOAD_FIELD_TITLE_M_DESC="Title for all added images can be set. If empty, Title will be created from Filename" +COM_PHOCADOWNLOAD_FIELD_LANGUAGE_FILE_DESC="The language that the file is assigned to." +;[3.0.0] +COM_PHOCADOWNLOAD_FIELD_COPY_PAP_LABEL="Copy Play and Preview" +COM_PHOCADOWNLOAD_FIELD_COPY_PAP_DESC="Set if files of added items will be copied to play and preview folder (in case they can be played or previewed). Items then will be downloadable and previewable or playable." +;[3.0.0 Beta] +COM_PHOCADOWNLOAD_HOT="Hot" +COM_PHOCADOWNLOAD_WILL_BE_CREATED_FROM_TITLE="Will be created from title" +;[3.0.0] +COM_PHOCADOWNLOAD_MAX_LIMIT_DOWNLOAD_PER_FILE_REACHED="You have reached maximum limit of downloads allowed per this file." +COM_PHOCADOWNLOAD_NOT_LOGGED_IN_USERS_NOT_ALLOWED_DOWNLOAD="Please login. Not logged in users are not allowed to download." +COM_PHOCADOWNLOAD_FIELD_MAX_COUNT_USER_DOWNLOADS_DESC="Set maximum count of files user can download. Be aware, 0 (Zero) means, there is no limit. It is limit per file NOT for all downloads. If you set some limit here, anonymous users (guests) are not able to download any file." +COM_PHOCADOWNLOAD_FIELD_MAX_COUNT_USER_DOWNLOADS_LABEL="Maximum Count of downloads per file" +COM_PHOCADOWNLOAD_LOGGING_NOT_ENABLED="Warning! Logging is not enabled at the moment!" +COM_PHOCADOWNLOAD_FIELD_PLAY_OR_PREVIEW_COPY_LABEL="Play or Preview Copy" +COM_PHOCADOWNLOAD_FIELD_PLAY_OR_PREVIEW_COPY_DESC="If yes (Frontend), file which is uploaded by user in fronted will be copied to phocadownloadpap folder so it can be played or previewed. If yes (Backend), then file which is added in File Add feature or in Multiple Add feature in Administration will be copied to phocadownloadpap folder too." +COM_PHOCADOWNLOAD_FIELD_ENABLE_LOGGING_LABEL="Enable Logging" +COM_PHOCADOWNLOAD_FIELD_ENABLE_LOGGING_DESC="Enable or disable logging for downloads, uploads or both. Be aware, logging of downloads and uploads can take a lot of memory in case a lot of downloads or uploads is done on your site. It is recommended to enable it only for short testing period" +COM_PHOCADOWNLOAD_YES_UPLOADS_ONLY="Yes (Uploads only)" +COM_PHOCADOWNLOAD_YES_DOWNLOADS_ONLY="Yes (Downloads only)" +COM_PHOCADOWNLOAD_YES_UPLOADS_DOWNLOADS="Yes (Uploads and Downloads)" +COM_PHOCADOWNLOAD_FIELD_FILE_ICON_MIME_LABEL="File Icon (Extension Mime Type)" +COM_PHOCADOWNLOAD_FIELD_FILE_ICON_MIME_DESC="Enable or disable displaying of file icon by extension mime type (for example: PDF icon will be displayed next to PDF documents). Be aware not all extension mime type icons are available." +COM_PHOCADOWNLOAD_YES_DOWNLOAD_UPLOAD_PARAM="Yes (download and upload parameters)" +COM_PHOCADOWNLOAD_YES_DOWNLOAD_UPLOAD_PARAM_ADMIN="Yes (download and upload parameter in administration only)" +COM_PHOCADOWNLOAD_YES_UPLOAD_PARAM_ADMIN="Yes (only upload parameters in administration)" +COM_PHOCADOWNLOAD_YES_UPLOAD_PARAM="Yes (only upload parameters)" +COM_PHOCADOWNLOAD_YES_DOWNLOAD_PARAM="Yes (only download parameters)" +COM_PHOCADOWNLOAD_IGNORE_FILE_TYPES_CHECK_LABEL="Ignore File Types Checking" +COM_PHOCADOWNLOAD_IGNORE_FILE_TYPES_CHECK_DESC="Set if checking of file types will be ignored. If yes: Allowed File Types (Download), Allowed File Types (Upload), Disallowed File Types (Download), Disallowed File Types (Upload) will be ignored." +COM_PHOCADOWNLOAD_CONFIG_HEAD_DOWNLOADS_LABEL="Downloads" +COM_PHOCADOWNLOAD_CONFIG_HEAD_UPLOADS_LABEL="Uploads" +COM_PHOCADOWNLOAD_FILE_VIEW_LABEL="File View" +COM_PHOCADOWNLOAD_CONFIG_CATEGORY_CATEGORIES_VIEW_LABEL="Categories and Category View" +COM_PHOCADOWNLOAD_IP="IP" +COM_PHOCADOWNLOAD_PAGE="Page" +COM_PHOCADOWNLOAD_RESET_LOG="Reset Log" +COM_PHOCADOWNLOAD_WARNING_RESET_LOG="Are you sure you want to reset (clear) the log?" +COM_PHOCADOWNLOAD_SUCCESS_RESET_LOG_STAT="Log cleared" +COM_PHOCADOWNLOAD_ERROR_RESET_LOG_STAT="Error while clearing log" +COM_PHOCADOWNLOAD_ERROR_SERVER_NOT_ABLE_TO_STORE_FILE_TEMP_FOLDER="Error while uploading file. Server is not able to store this file to Temp folder." +COM_PHOCADOWNLOAD_COUNT="Count" +COM_PHOCADOWNLOAD_LOGGING="Logging" +COM_PHOCADOWNLOAD_UPLOADS="Uploads" +COM_PHOCADOWNLOAD_EDIT_CSS_FILES="Edit CSS Files" +COM_PHOCADOWNLOAD_FIELD_CSS_MENULINK_ID_DESC="Set ID or IDs of menu link (Itemid) where the style will be displayed. Separate each parent ID with comma (,)" +COM_PHOCADOWNLOAD_FIELD_CSS_MENULINK_ID_LABEL="Menu Link ID" +COM_PHOCADOWNLOAD_ERROR_FAILED_TO_SAVE_FILENAME="Error while saving the filename" +COM_PHOCADOWNLOAD_ERROR_SOURCE_FILE_NOT_UNWRITABLE="Error while making the source file unwritable" +COM_PHOCADOWNLOAD_ERROR_SOURCE_FILE_NOT_WRITABLE="Error while saving the file. Source File is not writable." +COM_PHOCADOWNLOAD_STYLE="Style" +COM_PHOCADOWNLOAD_FIELD_CSS_LABEL="Style (CSS Source)" +COM_PHOCADOWNLOAD_FIELD_CSS_DESC="Edit source of the style" +COM_PHOCADOWNLOAD_FIELD_TYPE_DESC="Type of the style" +COM_PHOCADOWNLOAD_FIELD_TYPE_LABEL="Type" +COM_PHOCADOWNLOAD_MAIN="Main" +COM_PHOCADOWNLOAD_FILE_EXISTS="File exists" +COM_PHOCADOWNLOAD_FILE_DOES_NOT_EXIST="File does not exist" +COM_PHOCADOWNLOAD_TYPE="Type" +COM_PHOCADOWNLOAD_CUSTOM_CSS="Custom" +COM_PHOCADOWNLOAD_MAIN_CSS="Main" +COM_PHOCADOWNLOAD_FILTER_SELECT_TYPE="- Select Type -" +COM_PHOCADOWNLOAD_STYLES="Styles" +COM_PHOCADOWNLOAD_FOLDER_NOT_FOUND="Folder not found" +COM_PHOCADOWNLOAD_EDIT_CSS="Edit CSS" +COM_PHOCADOWNLOAD_ERROR_CSS_FOLDER_NOT_FOUND="Custom CSS Folder Not Found" + +COM_PHOCADOWNLOAD_MIRROR_DETAILS="Mirror Details" +COM_PHOCADOWNLOAD_YOUTUBE_OPTIONS="YouTube Options" +COM_PHOCADOWNLOAD_GENERAL_OPTIONS="General Options" +COM_PHOCADOWNLOAD_PUBLISHING_OPTIONS="Publishing Options" +COM_PHOCADOWNLOAD_METADATA_OPTIONS="Metadata Options" +COM_PHOCADOWNLOAD_FILTER_SEARCH_LABEL="Search" +COM_PHOCADOWNLOAD_FILTER_SEARCH_DESC="Search the items" +COM_PHOCADOWNLOAD_LICENCE="Licence" +COM_PHOCADOWNLOAD_PHOCA_NEEDS_YOUR_HELP="Phoca Needs Your Help" +COM_PHOCADOWNLOAD_PLEASE_READ="Please Read" +COM_PHOCADOWNLOAD_USEFUL_TIPS="Useful Tips (Extensions)" +COM_PHOCADOWNLOAD_USEFUL_LINKS="Useful Links" +;[2.1.5] +COM_PHOCADOWNLOAD_UPLOADED_BY_LABEL="Uploaded By" +COM_PHOCADOWNLOAD_UPLOADED_BY_DESC="Set Uploaded By" +COM_PHOCADOWNLOAD_OWNER_LABEL="Owner" +COM_PHOCADOWNLOAD_OWNER_DESC="Set Owner" +;[2.1.2] +COM_PHOCADOWNLOAD_BATCH_OPTIONS_CATEGORIES="Batch process the selected categories" +COM_PHOCADOWNLOAD_PHOCA_DOWNLOAD="Phoca Download" +COM_PHOCADOWNLOAD_INFORMATION="Information" +COM_PHOCADOWNLOAD_FIELD_CATEGORY_LINK_LABEL="Select Category Link" +COM_PHOCADOWNLOAD_FIELD_CATEGORY_LINK_DESC="Select category to link it" +COM_PHOCADOWNLOAD_FIELD_DOWNLOAD_FOLDER_PAP_LABEL="Download Folder (Play, Preview)" +COM_PHOCADOWNLOAD_FIELD_DOWNLOAD_FOLDER_PAP_DESC="Set download folder for play and preview files" +;[2.1.1] +COM_PHOCADOWNLOAD_FIELD_VIDEO_HEIGHT_DV_LABEL="Youtube Height (Detail View)" +COM_PHOCADOWNLOAD_FIELD_VIDEO_HEIGHT_DV_DESC="Set Youtube height for Detail View" +COM_PHOCADOWNLOAD_FIELD_VIDEO_WIDTH_DV_LABEL="Youtube Width (Detail View)" +COM_PHOCADOWNLOAD_FIELD_VIDEO_WIDTH_DV_DESC="Set Youtube width for Detail View" +COM_PHOCADOWNLOAD_FIELD_VIDEO_HEIGHT_CV_LABEL="Youtube Height (Category View)" +COM_PHOCADOWNLOAD_FIELD_VIDEO_HEIGHT_CV_DESC="Set Youtube height for Category View" +COM_PHOCADOWNLOAD_FIELD_VIDEO_WIDTH_CV_LABEL="Youtube Width (Category View)" +COM_PHOCADOWNLOAD_FIELD_VIDEO_WIDTH_CV_DESC="Set Youtube width for Category View" +COM_PHOCADOWNLOAD_GROUP_LABEL_YOUTUBE_DETAILS="Youtube" +COM_PHOCADOWNLOAD_VIDEO_LINK_LABEL="Youtube Link" +COM_PHOCADOWNLOAD_VIDEO_LINK_DESC="Set Youtube link" +COM_PHOCADOWNLOAD_YES_ONLY_MODALBOX="Yes (Only Modalbox - Category View)" +;[2.1.0 Stable] +COM_PHOCADOWNLOAD_SELECT_FILE="Select file" +COM_PHOCADOWNLOAD_FIELD_SELECT_FILE_LABEL="Select file" +COM_PHOCADOWNLOAD_FIELD_SELECT_FILE_DESC="Select display file" +COM_PHOCADOWNLOAD_OVERLIB_WIDTH_DETAIL="Overlib with detail" +;[2.1.0 Beta] +COM_PHOCADOWNLOAD_FILE_VIEW="File View" +COM_PHOCADOWNLOAD_CATEGORY_VIEW="Category View" +COM_PHOCADOWNLOAD_CATEGORIES_VIEW="Categories View" +COM_PHOCADOWNLOAD_PARAMETERS="Parameters" +COM_PHOCADOWNLOAD_STYLES="Styles (CSS)" +COM_PHOCADOWNLOAD_LAYOUT_WARNING="Warning: Parameters are mostly styled by CSS, here you can add or remove different parts of the view. For stylizing them, just check the Phoca Download CSS. Edit the HTML source (HTML source can be displayed by editor feature) Displaying specific layout must be enabled in parameters." +COM_PHOCADOWNLOAD_DISPLAY_SPEC_LAYOUT_LABEL="Display Specific Layout" +COM_PHOCADOWNLOAD_DISPLAY_SPEC_LAYOUT_DESC="Display specific layout - set in Phoca Download administration. Be aware, some parts of the layout needs to be changed in CSS too to display properly." +COM_PHOCADOWNLOAD_CLEAN="Clean" +COM_PHOCADOWNLOAD_YES_OVERLIB="Yes (Overlib)" +COM_PHOCADOWNLOAD_YES_MODAL="Yes (Modal Box)" +COM_PHOCADOWNLOAD_FIELD_DISPLAY_TAGS_LINKS_LABEL="Display Tags" +COM_PHOCADOWNLOAD_FIELD_DISPLAY_TAGS_LINKS_DESC="Display or hide tags" +COM_PHOCADOWNLOAD_YES_CATEGORY_VIEW_BUTTON="Yes (Category View) as Button" +COM_PHOCADOWNLOAD_YES_FILE_VIEW_BUTTON="Yes (File View) as Button" +COM_PHOCADOWNLOAD_YES_CATEGORY_FILE_VIEW_BUTTON="Yes (Category And File View) as Button" +COM_PHOCADOWNLOAD_EXTERNAL_LINK="External Link" +COM_PHOCADOWNLOAD_CATEGORY_LINK="Category Link" +COM_PHOCADOWNLOAD_SEARCH_OUTCOME="Search Outcome" +COM_PHOCADOWNLOAD_FIELD_TAGS_LINKS_LABEL="Tags (Links)" +COM_PHOCADOWNLOAD_FIELD_TAGS_LINKS_DESC="Set if the tags will include a link. If yes, set type of this link" +COM_PHOCADOWNLOAD_AT="at" +COM_PHOCADOWNLOAD_FEATURES="Features" +COM_PHOCADOWNLOAD_CHANGELOG="Changelog" +COM_PHOCADOWNLOAD_NOTES="Notes" +COM_PHOCADOWNLOAD_ERROR_DELETING_ITEM="Error while deleting item" +COM_PHOCADOWNLOAD_SUCCESS_DELETING_ITEM="Item deleted" +COM_PHOCADOWNLOAD_ERROR_UNPUBLISHING_ITEM="Error while unpublishing item" +COM_PHOCADOWNLOAD_ERROR_PUBLISHING_ITEM="Error while publishing item" +COM_PHOCADOWNLOAD_SUCCESS_UNPUBLISHING_ITEM="Item unpublished" +COM_PHOCADOWNLOAD_SUCCESS_PUBLISHING_ITEM="Item published" +COM_PHOCADOWNLOAD_FIELD_DELETE_RIGHTS_LABEL="Delete Rights" +COM_PHOCADOWNLOAD_FIELD_DELETE_RIGHTS_DESC="Set delete rights" +COM_PHOCADOWNLOAD_ERROR_DELETE_CONTAIN_FILE="Category(ies): '%s' cannot be removed as it contains (they contain) Items. There may currently be File(s) within the Category which you must delete first." +COM_PHOCADOWNLOAD_ERROR_DELETE_CONTAIN_CAT="Category(ies): '%s' cannot be removed as it contains (they contain) Subcategories. There may currently be Subcategory(ies) within the Category which you must delete first." +COM_PHOCADOWNLOAD_CATEGORIES_ADDED="Category(ies) added" +COM_PHOCADOWNLOAD_FILES_ADDED="File(s) added" +COM_PHOCADOWNLOAD_CHECK_ALL="Check All" +COM_PHOCADOWNLOAD_WARNING_FILE_SELECTED_SELECT_CATEGORY="File(s) are selected. Category needs to be selected also" +COM_PHOCADOWNLOAD_WARNING_SELECT_FILENAME_OR_FOLDER="Select File or Folder" +COM_PHOCADOWNLOAD_MULTIPLE_ADD="Multiple Add" +COM_PHOCADOWNLOAD_BATCH_OPTIONS_FILES="Batch process the selected files" +;COM_PHOCADOWNLOAD_SUCCESS_COPY_FILE="File(s) copied" +;COM_PHOCADOWNLOAD_ERROR_COPY_FILE="Error while copying file(s)" +COM_PHOCADOWNLOAD_QUICK_COPY="Quick Copy" +COM_PHOCADOWNLOAD_COPY="Copy" +COM_PHOCADOWNLOAD_FORM_SELECT_IMAGE="Select Image" +COM_PHOCADOWNLOAD_FIELD_IMAGE_DOWNLOAD_LABEL="Image" +COM_PHOCADOWNLOAD_FIELD_IMAGE_DOWNLOAD_DESC="Set image for the file" +COM_PHOCADOWNLOAD_FIELD_CATEGORIES_LAYOUT_LABEL="Categories View Layout" +COM_PHOCADOWNLOAD_FIELD_CATEGORIES_LAYOUT_DESC="Set layout for Categories View" +COM_PHOCADOWNLOAD_FIELD_CATEGORY_LAYOUT_LABEL="Category View Layout" +COM_PHOCADOWNLOAD_FIELD_CATEGORY_LAYOUT_DESC="Set layout for Category View" +COM_PHOCADOWNLOAD_FIELD_FILE_LAYOUT_LABEL="File View Layout" +COM_PHOCADOWNLOAD_FIELD_FILE_LAYOUT_DESC="Set layout for File View" +COM_PHOCADOWNLOOAD_CONTROL_PANEL="Control Panel" +COM_PHOCADOWNLOAD_FIELD_FEATURES_DESC="Set Features Text" +COM_PHOCADOWNLOAD_FIELD_FEATURES_LABEL="Features" +COM_PHOCADOWNLOAD_FIELD_CHANGELOG_DESC="Set Changelog Text" +COM_PHOCADOWNLOAD_FIELD_CHANGELOG_LABEL="Changelog" +COM_PHOCADOWNLOAD_FIELD_NOTES_DESC="Set Notes Text" +COM_PHOCADOWNLOAD_FIELD_NOTES_LABEL="Notes" +COM_PHOCADOWNLOAD_FIELD_TAGS_LABEL="Tags" +COM_PHOCADOWNLOAD_FIELD_TAGS_DESC="Select tags" +COM_PHOCADOWNLOAD_NEW_TAG="New Tag" +COM_PHOCADOWNLOAD_EDIT_TAG="Edit Tag" +COM_PHOCADOWNLOAD_FIELD_CATEGORY_LABEL="Link To Category" +COM_PHOCADOWNLOAD_FIELD_CATEGORY_DES="Select category if you want to link this tag to category" +COM_PHOCADOWNLOAD_FIELD_EXT_LINK_TAG_LABEL="Link To External Site" +COM_PHOCADOWNLOAD_FIELD_EXT_LINK_TAG_DESC="Set link to external site if you want to link this tag to some site (include http://)" +COM_PHOCADOWNLOAD_TAG="Tag" +COM_PHOCADOWNLOAD_TAGS="Tags" +COM_PHOCADOWNLOAD_LAYOUT="Layout" +;[2.0.0] +COM_PHOCADOWNLOAD_NUM="Num" +COM_PHOCADOWNLOAD_LIMIT="Limit" +COM_PHOCADOWNLOAD_YOUTUBE_URL="Youtube URL" +COM_PHOCADOWNLOAD_WARNING_SET_YOUTUBE_URL="You must set URL of Youtube video" +COM_PHOCADOWNLOAD_PLAYER_WIDTH="Player Width" +COM_PHOCADOWNLOAD_PLAYER_HEIGHT="Player Height" +COM_PHOCADOWNLOAD_PLAYER_HEIGHT_MP3="Player Height (MP3)" +COM_PHOCADOWNLOAD_WARNING_PLAYER_SIZE="Only size of Popup Window (Modal Box) can be set here, size of player needs to be set in Parameters of Phoca Download Component" +COM_PHOCADOWNLOAD_PREVIEW_WIDTH="Preview Width" +COM_PHOCADOWNLOAD_PREVIEW_HEIGHT="Preview Height" +COM_PHOCADOWNLOAD_YOU_MUST_SELECT_FILE="You must select a file" +COM_PHOCADOWNLOAD_YOU_MUST_SELECT_CATEGORY="You must select a category" +COM_PHOCADOWNLOAD_TARGET="Target" +COM_PHOCADOWNLOAD_TARGET_SELF="Target _self" +COM_PHOCADOWNLOAD_TARGET_BLANK="Target _blank" +COM_PHOCADOWNLOAD_TARGET_TOP="Target _top" +COM_PHOCADOWNLOAD_TARGET_PARENT="Target _parent" +COM_PHOCADOWNLOAD_INSERT_CODE="Insert Code" +COM_PHOCADOWNLOAD_BACK="Back" +COM_PHOCADOWNLOAD_FILELIST="File List" +COM_PHOCADOWNLOAD_YOUTUBE_VIDEO="Youtube Video" +COM_PHOCADOWNLOAD_PLAY_FILE_LINK="Play File (Link)" +COM_PHOCADOWNLOAD_PLAY_FILE_DIRECT="Play File (Direct)" +COM_PHOCADOWNLOAD_PREVIEW_FILE_LINK="Preview File (Link)" +COM_PHOCADOWNLOAD_LINK_TO_FILE="Link To File" +COM_PHOCADOWNLOAD_LINK_TO_CATEGORY="Link To Category" +COM_PHOCADOWNLOAD_LINK_TO_CATEGORIES="Link To Categories" +COM_PHOCADOWNLOAD_SELECT_TYPE="Select Type" +COM_PHOCADOWNLOAD_UPLOADED_BY="Uploaded by" +COM_PHOCADOWNLOAD_FIELD_ENABLE_CACHE_LABEL="Enable Cache" +COM_PHOCADOWNLOAD_FIELD_ENABLE_CACHE_DESC="Enable cache if it is enabled in Joomla! Global Configuration" +;[2.0.0RC3] +COM_PHOCADOWNLOAD_USER_LANG="User's Language" +COM_PHOCADOWNLOAD_SITE_LANG="Site's Language" +COM_PHOCADOWNLOAD_FIELD_USER_UCP_LANG_LABEL="User Language" +COM_PHOCADOWNLOAD_FIELD_USER_UCP_LANG_DESC="Set which language will be set while creating category or uploading image in UCP" +COM_PHOCADOWNLOAD_NO_RIGHTS_ACCESS_CATEGORY_FILE="You have no rights to access file in this category" +COM_PHOCADOWNLOAD_FIELD_SELECT_CATEGORY_LABEL="Select Category" +COM_PHOCADOWNLOAD_FIELD_SELECT_CATEGORY_DESC="Select category" +COM_PHOCADOWNLOAD_ERROR_FB_APP_ID_EMPTY="Facebook Application ID is empty" +COM_PHOCADOWNLOAD_FIELD_FB_COMMENT_APP_ID_LABEL="Facebook comments application ID" +COM_PHOCADOWNLOAD_FIELD_FB_COMMENT_APP_ID_DESC="Set Facebook Comments Application ID (ID of your created application in Facebook)" +COM_PHOCADOWNLOAD_FACEBOOK_COMMENTS_WIDTH_LABEL="Facebook Comments Width" +COM_PHOCADOWNLOAD_FACEBOOK_COMMENTS_WIDTH_DESC="Set Facebook comments box width" +COM_PHOCADOWNLOAD_FACEBOOK_FIELD_COMMENT_LANG_LABEL="Facebook Language" +COM_PHOCADOWNLOAD_FACEBOOK_FIELD_COMMENT_LANG_DESC="Set Facebook language" +COM_PHOCADOWNLOAD_FACEBOOK_FIELD_COMMENT_COUNT_LABEL="Comments Count" +COM_PHOCADOWNLOAD_FACEBOOK_FIELD_COMMENT_COUNT_DESC="Set count of comments displayed in comment box" +COM_PHOCADOWNLOAD_FACEBOOK="Facebook" +COM_PHOCADOWNLOAD_STARS_OUT_OF="stars out of" +COM_PHOCADOWNLOAD_FIELD_LANGUAGE_FILE_DESC="The language that the file is assigned to." +COM_PHOCADOWNLOAD_FIELD_LANGUAGE_CATEGORY_DESC="The language that the category is assigned to." +;[2.0.0RC2] +COM_PHOCADOWNLOAD_FIELD_DELETE_EXISTING_FILES_DESC="If yes then the file stored on server will be deleted in case the file will be deleted from Phoca Download" +COM_PHOCADOWNLOAD_FIELD_DELETE_EXISTING_FILES_LABEL="Delete Existing Files" +COM_PHOCADOWNLOAD_FIELD_OVERWRITE_EXISTING_FILES_DESC="Set if uploaded files should overwrite existing files on the server" +COM_PHOCADOWNLOAD_FIELD_OVERWRITE_EXISTING_FILES_LABEL="Overwrite Existing Files" +COM_PHOCADOWNLOAD_REPORT="Report" +COM_PHOCADOWNLOAD_FIELD_REPORT_LINK_GUESTBOOK_ID_LABEL="Guestbook ID (Report)" +COM_PHOCADOWNLOAD_FIELD_REPORT_LINK_GUESTBOOK_ID_DESC="Set guestbook id (guestbook from Phoca Guestbook component) in case the report function is active" +COM_PHOCADOWNLOAD_FIELD_DISPLAY_REPORT_LINK_LABEL="Display Report Link" +COM_PHOCADOWNLOAD_FIELD_DISPLAY_REPORT_LINK_DESC="Display or hide report link. This link will run Phoca Guestbook in Report Mode. There users can report files. Phoca Guestbook needs to be installed and the report function enabled in guestbook settings to run this feature." +COM_PHOCADOWNLOAD_FIELD_DISPLAY_MIRROR_LINKS_LABEL="Display Mirror Links" +COM_PHOCADOWNLOAD_FIELD_DISPLAY_MIRROR_LINKS_DESC="Display or hide mirror links" +COM_PHOCADOWNLOAD_GROUP_LABEL_MIRROR_DETAILS="Mirror Details" +COM_PHOCADOWNLOAD_OPEN_WINDOW_BLANK="Open in new window (_blank)" +COM_PHOCADOWNLOAD_OPEN_WINDOW_PARENT="Open in parent window/frame (_parent)" +COM_PHOCADOWNLOAD_OPEN_WINDOW_SELF="Open in this window/frame (_self)" +COM_PHOCADOWNLOAD_OPEN_WINDOW_TOP="Open in top frame (replaces all frames) (_top)" +COM_PHOCADOWNLOAD_MIRROR_LINK_LINK_LABEL="Link" +COM_PHOCADOWNLOAD_MIRROR_LINK_TARGET_LABEL="Target" +COM_PHOCADOWNLOAD_MIRROR_LINK_TITLE_LABEL="Title (Link 1)" +COM_PHOCADOWNLOAD_FIELD_MIRROR_LINK_LINK_DESC="Set first mirror link (Inlcude the protocol: e.g. http:// or https://)" +COM_PHOCADOWNLOAD_FIELD_MIRROR_LINK_TARGET_DESC="Set target for first mirror link" +COM_PHOCADOWNLOAD_FIELD_MIRROR_LINK_TITLE_DESC="Set title for first mirror link" +COM_PHOCADOWNLOAD_MIRROR_LINK_LINK2_LABEL="Link 2" +COM_PHOCADOWNLOAD_MIRROR_LINK_TARGET2_LABEL="Target" +COM_PHOCADOWNLOAD_MIRROR_LINK_TITLE2_LABEL="Title (Link 2)" +COM_PHOCADOWNLOAD_FIELD_MIRROR_LINK_LINK2_DESC="Set second mirror link (Inlcude the protocol: e.g. http:// or https://)" +COM_PHOCADOWNLOAD_FIELD_MIRROR_LINK_TARGET2_DESC="Set target for second mirror link" +COM_PHOCADOWNLOAD_FIELD_MIRROR_LINK_TITLE2_DESC="Set title for second mirror link" +COM_PHOCADOWNLOAD_YES_CATEGORY_VIEW="Yes (Category View)" +COM_PHOCADOWNLOAD_YES_FILE_VIEW="Yes (FileView)" +COM_PHOCADOWNLOAD_YES_CATEGORY_FILE_VIEW="Yes (Category And File View)" +COM_PHOCADOWNLOAD_FIELD_DISPLAY_RATING_FILE_DESC="Display or hide rating for files" +COM_PHOCADOWNLOAD_FIELD_DISPLAY_RATING_FILE_LABEL="Display Rating (File)" +COM_PHOCADOWNLOAD_CONFIG_RATING_SETTINGS_LABEL="Rating Settings" +COM_PHOCADOWNLOAD_ERROR_FILE_NOT_EXISTS="File does not exist" +COM_PHOCADOWNLOAD_RATING_ALREADY_RATED_FILE="You have already rated this file" +COM_PHOCADOWNLOAD_SUCCESS_RATING_FILE="Thank you for your rating" +COM_PHOCADOWNLOAD_ERROR_RATING_FILE="Error while rating the file" +COM_PHOCADOWNLOAD_ERROR_WRONG_RATING="Error while rating - wrong format added" +COM_PHOCADOWNLOAD_ERROR_REQUESTING_RATING="Error while requesting rating" +COM_PHOCADOWNLOAD_VOTE="vote" +COM_PHOCADOWNLOAD_VOTES="votes" +COM_PHOCADOWNLOAD_FILE_RATING="File Rating" +COM_PHOCADOWNLOAD_RATING="Rating" +COM_PHOCADOWNLOAD_STAR_OUT_OF="star out of" +COM_PHOCADOWNLOAD_ONLY_REGISTERED_LOGGED_RATE_FILE="Only registered and logged in users can rate this file" +;[2.0.0 RC] +COM_PHOCADOWNLOAD_FIELD_DISALLOWED_FILE_TYPES_UPLOAD_DESC="Set disallowed file types for frontend upload." +COM_PHOCADOWNLOAD_FIELD_ALLOWED_FILE_TYPES_UPLOAD_DESC="Set allowed file types for frontend upload. Default list of filetypes is not complete and should be modified to fit your needs." +COM_PHOCADOWNLOAD_FIELD_SHOW_PAGINATION_LABEL="Display Pagination" +COM_PHOCADOWNLOAD_FIELD_SHOW_PAGINATION_DESC="Display or hide pagination" +COM_PHOCADOWNLOAD_FIELD_SHOW_PAGINATION_LIMIT_LABEL="Display Select Box - Pagination" +COM_PHOCADOWNLOAD_FIELD_SHOW_PAGINATION_LIMIT_DESC="Display or hide select box for pagination" +COM_PHOCADOWNLOAD_HIDE="Hide" +COM_PHOCADOWNLOAD_DISPLAY="Display" +;[2.0.0 BETA1] +COM_PHOCADOWNLOAD_FIELD_DISPLAY_MAIN_CAT_DESC_LABEL="Display Main Category Description" +COM_PHOCADOWNLOAD_FIELD_DISPLAY_MAIN_CAT_DESC_DESC="Set if category description should be displayed in Categories View - Description will be displayed instead of subcategories" +COM_PHOCADOWNLOAD_ERROR_CATEGORY_NOT_SELECTED="Category was not selected" +COM_PHOCADOWNLOAD_FIELD_REGISTERED_ACCESS_LEVEL_LABEL="Access Level - Registered Users" +COM_PHOCADOWNLOAD_FIELD_REGISTERED_ACCESS_LEVEL_DESC="Set access levels for registered users. Some actions in frontend can be done by registered users only. Set which access level group will be regarded as registered group." +COM_PHOCADOWNLOAD_FIELD_ENABLE_ICONV_ALIAS_LABEL="Iconv Alias" +COM_PHOCADOWNLOAD_FIELD_ENABLE_ICONV_ALIAS_DESC="Enable or disable creating of alias with help of iconv function" +COM_PHOCADOWNLOAD_UPGRADE="Upgrade" +COM_PHOCADOWNLOAD_INSTALL="Install" +; For Translaters - set your own data here +COM_PHOCADOWNLOAD_TRANSLATION="Translation" +COM_PHOCADOWNLOAD_TRANSLATION_LANGUAGE_TAG="English" +COM_PHOCADOWNLOAD_TRANSLATER="Jan Pavelka" +COM_PHOCADOWNLOAD_TRANSLATION_SUPPORT_URL="www.phoca.cz" +; End Translaters section - - - - - - - - +COM_PHOCADOWNLOAD_ACCESS="Access" +COM_PHOCADOWNLOAD_ACTIVE="Active" +COM_PHOCADOWNLOAD_ADD_FILES="Add Files" +COM_PHOCADOWNLOAD_ADD_FILES_TO_UPLOAD_QUEUE_AND_CLICK_START_BUTTON="Add files to the upload queue and click the start button." +COM_PHOCADOWNLOAD_ADD_TEXT="Text" +COM_PHOCADOWNLOAD_ALL="All" +COM_PHOCADOWNLOAD_ALL_APPROVED="All files authorized" +COM_PHOCADOWNLOAD_ALL_REGISTERED_USERS="All registered users" +COM_PHOCADOWNLOAD_ALWAYS="Always" +COM_PHOCADOWNLOAD_AND_LEFT_FOR_DESCRIPTION="and left for description" +COM_PHOCADOWNLOAD_APPROVE="Authorize" +COM_PHOCADOWNLOAD_APPROVED="Authorized" +COM_PHOCADOWNLOAD_APPROVE_ALL="Authorize All" +COM_PHOCADOWNLOAD_APPROVE_ALL_ERROR="Error while authorizing all files" +COM_PHOCADOWNLOAD_APPROVE_ITEM="Authorize item" +COM_PHOCADOWNLOAD_AUTHOR="Author" +COM_PHOCADOWNLOAD_AUTHOR_EMAIL="Author's Email" +COM_PHOCADOWNLOAD_AUTHOR_WEBSITE="Author's Website" +COM_PHOCADOWNLOAD_BLANK="Blank" +COM_PHOCADOWNLOAD_GREY2="Grey 2" +COM_PHOCADOWNLOAD_BOTTOM="Bottom" +COM_PHOCADOWNLOAD_BOTTOM_AND_OVERLIB="Bottom and Overlib" +COM_PHOCADOWNLOAD_BOTTOM_WITH_DETAIL_AND_OVERLIB="Bottom with detail and Overlib" +COM_PHOCADOWNLOAD_CATEGORIES="Categories" +COM_PHOCADOWNLOAD_CATEGORY="Category" +COM_PHOCADOWNLOAD_CHARACTERS_WRITTEN="Characters written" +COM_PHOCADOWNLOAD_CHECK_FOR_UPDATE="Check For Update" +COM_PHOCADOWNLOAD_CHECK_PERMISSIONS_OWNERSHIP="Check permissions and ownership of files and folders" +COM_PHOCADOWNLOAD_CLOSE="Close" +COM_PHOCADOWNLOAD_CONFIGURATION="Phoca Download Configuration" +COM_PHOCADOWNLOAD_CONFIG_COMMENTS_SETTINGS_LABEL="Comments Settings" +COM_PHOCADOWNLOAD_CONFIG_GENERAL_SETTINGS_LABEL="General Settings" +COM_PHOCADOWNLOAD_CONFIG_HEAD_DISPLAY_LABEL="Display" +COM_PHOCADOWNLOAD_CONFIG_HEAD_GENERAL_LABEL="General" +COM_PHOCADOWNLOAD_CONFIG_HEAD_USER_UPLOAD_LABEL="User Upload" +COM_PHOCADOWNLOAD_CONFIG_THEME_SETTINGS_LABEL="Theme Settings" +COM_PHOCADOWNLOAD_CONTROL_PANEL="Control Panel" +COM_PHOCADOWNLOAD_COPYRIGHT="Copyright" +COM_PHOCADOWNLOAD_COUNT_NOT_UPLOADED_FILE="Count of not uploaded (failed) files" +COM_PHOCADOWNLOAD_COUNT_UPLOADED_FILE="Count of uploaded files" +COM_PHOCADOWNLOAD_COUNT_USER_FILES_APPROVED="Count (authorized files)" +COM_PHOCADOWNLOAD_COUNT_USER_FILES_NOT_APPROVED="Count (not authorized files)" +COM_PHOCADOWNLOAD_CREATE_FOLDER="Create Folder" +COM_PHOCADOWNLOAD_DATABASE_TIME="Database" +COM_PHOCADOWNLOAD_DATE="Date" +COM_PHOCADOWNLOAD_DATE_ASC="Date Ascending" +COM_PHOCADOWNLOAD_DATE_DESC="Date Descending" +COM_PHOCADOWNLOAD_DATE_UPLOAD="Upload Date" +COM_PHOCADOWNLOAD_DEFAULT="Default" +COM_PHOCADOWNLOAD_DELETE="Delete" +COM_PHOCADOWNLOAD_DESCRIPTION="Description" +COM_PHOCADOWNLOAD_DETAILS="Details" +COM_PHOCADOWNLOAD_DISPLAY_NUM="Display Num" +COM_PHOCADOWNLOAD_DOT="dot" +COM_PHOCADOWNLOAD_DOWNLOAD="Download" +COM_PHOCADOWNLOAD_DOWNLOAD_AS_SKP="Download as skp" +COM_PHOCADOWNLOAD_DOWNLOADS="Downloads" +COM_PHOCADOWNLOAD_DRAG_FILES_HERE="Drag Files Here" +COM_PHOCADOWNLOAD_EDIT="Edit" +COM_PHOCADOWNLOAD_EDIT_CATEGORY="Edit Category" +COM_PHOCADOWNLOAD_EDIT_FILE="Edit File" +COM_PHOCADOWNLOAD_EMAIL="Email" +COM_PHOCADOWNLOAD_ERROR="Error" +COM_PHOCADOWNLOAD_ERROR_APPROVE_ALL="Error while authorizing all files" +COM_PHOCADOWNLOAD_ERROR_CONTROLLER_MANAGER_NOT_SET="Error while creating folder - Manager not set" +COM_PHOCADOWNLOAD_ERROR_FILE_UPLOADED="File not uploaded" +COM_PHOCADOWNLOAD_ERROR_FOLDER_CREATING="Error while creating folder" +COM_PHOCADOWNLOAD_ERROR_FOLDER_UPLOAD_NOT_EXISTS="Folder does not exist or it is not accessible" +COM_PHOCADOWNLOAD_ERROR_MOVE_UPLOADED_FILE="Failed to move uploaded file" +COM_PHOCADOWNLOAD_ERROR_NO_ABS_FILE="File not found on server" +COM_PHOCADOWNLOAD_ERROR_NO_CORRECT_FILE_TO_PLAY_FOUND="No correct file for playing found" +COM_PHOCADOWNLOAD_ERROR_NO_DB_FILE="File info not found in database" +COM_PHOCADOWNLOAD_ERROR_NO_DB_RESULT="Problems with database" +COM_PHOCADOWNLOAD_ERROR_NO_FILE_TO_PLAY_FOUND="No file for playing found" +COM_PHOCADOWNLOAD_ERROR_OPEN_INPUT_STREAM="Failed to open input stream" +COM_PHOCADOWNLOAD_ERROR_OPEN_OUTPUT_STREAM="Failed to open output stream" +COM_PHOCADOWNLOAD_ERROR_RESET_USER_STAT="Error while resetting user statistics" +COM_PHOCADOWNLOAD_ERROR_UNABLE_TO_MOVE_FILE="Unable to move file" +COM_PHOCADOWNLOAD_ERROR_UNABLE_TO_UPLOAD_FILE="Unable to upload file" +COM_PHOCADOWNLOAD_ERROR_UPLOAD_MANAGER_NOT_SET="Error while uploading - Manager not set" +COM_PHOCADOWNLOAD_ERROR_WHILE_DOWNLOADING_FILE="Error while downloading file" +COM_PHOCADOWNLOAD_EXPERTS_ONLY_LABEL="Experts Only!" +COM_PHOCADOWNLOAD_EXPIRED="Expired" +COM_PHOCADOWNLOAD_FIELD_ABSOLUTE_PATH_DESC="Set absolute path of Phoca Download folder (this can be path outside the public_html). Be aware, this path must exist and the folder and possible subfolders need to be created manually. If the path is outside the public_html the files cannot be previewed or played in browser." +COM_PHOCADOWNLOAD_FIELD_ABSOLUTE_PATH_LABEL="Absolute Path" +COM_PHOCADOWNLOAD_FIELD_ACCESS_RIGHTS_DESC="Set access rights" +COM_PHOCADOWNLOAD_FIELD_ACCESS_RIGHTS_LABEL="Access Rights" +COM_PHOCADOWNLOAD_FIELD_ALIAS_DESC="Set alias" +COM_PHOCADOWNLOAD_FIELD_ALIAS_LABEL="Alias" +COM_PHOCADOWNLOAD_FIELD_ALLOWED_FILE_TYPES_DOWNLOAD_DESC="Set allowed file types for frontend download. Default list of filetypes is not complete and should be modified to fit your needs." +COM_PHOCADOWNLOAD_FIELD_ALLOWED_FILE_TYPES_DOWNLOAD_LABEL="Allowed File Types (Download)" +COM_PHOCADOWNLOAD_FIELD_ALLOWED_FILE_TYPES_UPLOAD_LABEL="Allowed File Types (Upload)" +COM_PHOCADOWNLOAD_FIELD_APPROVED_DESC="Set if the file will be authorized or unathorized" +COM_PHOCADOWNLOAD_FIELD_APPROVED_LABEL="Authorized" +COM_PHOCADOWNLOAD_FIELD_AUTHOR_DESC="Set Author of the file" +COM_PHOCADOWNLOAD_FIELD_AUTHOR_EMAIL_DESC="Set Author's email" +COM_PHOCADOWNLOAD_FIELD_AUTHOR_EMAIL_LABEL="Author's Email" +COM_PHOCADOWNLOAD_FIELD_AUTHOR_LABEL="Author" +COM_PHOCADOWNLOAD_FIELD_AUTHOR_URL_DESC="Set Author's webstie" +COM_PHOCADOWNLOAD_FIELD_AUTHOR_URL_LABEL="Author's Website" +COM_PHOCADOWNLOAD_FIELD_BUTTON_STYLE_DESC="Set button style" +COM_PHOCADOWNLOAD_FIELD_BUTTON_STYLE_LABEL="Button Style" +COM_PHOCADOWNLOAD_FIELD_CATEGORY_DESC="Select Category" +COM_PHOCADOWNLOAD_FIELD_CATEGORY_LABEL="Category" +COM_PHOCADOWNLOAD_FIELD_CATEGORY_ORDERING_DESC="Set category ordering" +COM_PHOCADOWNLOAD_FIELD_CATEGORY_ORDERING_LABEL="Category Ordering" +COM_PHOCADOWNLOAD_FIELD_CATEGORY_VIEW_PAGINATION_DESC="Set pagination values for Category View (file list). Separate each pagination value with comma (,)" +COM_PHOCADOWNLOAD_FIELD_CATEGORY_VIEW_PAGINATION_LABEL="Pagination (Category View)" +COM_PHOCADOWNLOAD_FIELD_CONFIRM_LICENSE_DESC="Select license for this file. If some license will be selected, file will be not downloaded after clicking on Download button, but the license text will be displayed. This text must be confirmed by user who wants to dowload the file." +COM_PHOCADOWNLOAD_FIELD_CONFIRM_LICENSE_LABEL="Confirm license" +COM_PHOCADOWNLOAD_FIELD_DATE_DESC="Set date" +COM_PHOCADOWNLOAD_FIELD_DATE_LABEL="Date" +COM_PHOCADOWNLOAD_FIELD_DEFAULT_VALUE_PAGINATION_DESC="Set default value for pagination which can be displayed in Category View (file list)" +COM_PHOCADOWNLOAD_FIELD_DEFAULT_VALUE_PAGINATION_LABEL="Pagination Default Value" +COM_PHOCADOWNLOAD_FIELD_DESCRIPTION_DESC="Set description. This will be displayed in Categories View" +COM_PHOCADOWNLOAD_FIELD_DESCRIPTION_LABEL="Description" +COM_PHOCADOWNLOAD_FIELD_DIRECT_LINK_DESC="If direct link will be checked, Downlod button will link directly to the file. It means the file will be handled by browser (e.g. MP3 will be not downloaded but played). This option should be selected in case there are problems with downloading files from the server." +COM_PHOCADOWNLOAD_FIELD_DIRECT_LINK_LABEL="Direct Link" +COM_PHOCADOWNLOAD_FIELD_DISALLOWED_FILE_TYPES_DOWNLOAD_DESC="Set disallowed file types for frontend download." +COM_PHOCADOWNLOAD_FIELD_DISALLOWED_FILE_TYPES_DOWNLOAD_LABEL="Disallowed File Types (Download)" +COM_PHOCADOWNLOAD_FIELD_DISALLOWED_FILE_TYPES_UPLOAD_LABEL="Disallowed File Types (Upload)" +COM_PHOCADOWNLOAD_FIELD_DISPLAY_CATEGORY_COMMENTS_DESC="Set if category comments should be displayed or not" +COM_PHOCADOWNLOAD_FIELD_DISPLAY_CATEGORY_COMMENTS_LABEL="Display Category Comments" +COM_PHOCADOWNLOAD_FIELD_DISPLAY_DATE_TYPE_DESC="Set date type" +COM_PHOCADOWNLOAD_FIELD_DISPLAY_DATE_TYPE_LABEL="Display Date Type" +COM_PHOCADOWNLOAD_FIELD_DISPLAY_DESCRIPTION_DESC="Display or hide description" +COM_PHOCADOWNLOAD_FIELD_DISPLAY_DESCRIPTION_LABEL="Display Description" +COM_PHOCADOWNLOAD_FIELD_DISPLAY_DETAIL_BUTTON_DESC="Display or hide detail button" +COM_PHOCADOWNLOAD_FIELD_DISPLAY_DETAIL_BUTTON_LABEL="Display Detail Button" +COM_PHOCADOWNLOAD_FIELD_DISPLAY_DOWNLOADS_DESC="Display or hide the count of downloads" +COM_PHOCADOWNLOAD_FIELD_DISPLAY_DOWNLOADS_LABEL="Display Downloads" +COM_PHOCADOWNLOAD_FIELD_DISPLAY_FILE_COMMENTS_DESC="Set if file comments should be displayed or not" +COM_PHOCADOWNLOAD_FIELD_DISPLAY_FILE_COMMENTS_LABEL="Display File Comments" +COM_PHOCADOWNLOAD_FIELD_DISPLAY_FILE_VIEW_DESC="Enable or disable File View before download a file" +COM_PHOCADOWNLOAD_FIELD_DISPLAY_FILE_VIEW_LABEL="Display File View" +COM_PHOCADOWNLOAD_FIELD_DISPLAY_HOT_ICON_DESC="Set the number of hits (downloads). After reaching this number of downloads HOT icon will be displayed for the file, use zero for not displaying the icon" +COM_PHOCADOWNLOAD_FIELD_DISPLAY_HOT_ICON_LABEL="Display Hot Icon" +COM_PHOCADOWNLOAD_FIELD_DISPLAY_INACCESSIBLE_FILE_DESC="If the file will be inaccessible for e.g. not logged in users, it can be displayed for them. It means users will see the file but by clicking on the download button they will be redirected to login form." +COM_PHOCADOWNLOAD_FIELD_DISPLAY_INACCESSIBLE_FILE_LABEL="Display Inaccessible file" +COM_PHOCADOWNLOAD_FIELD_DISPLAY_MOST_DOWNLOAD_FILES_DESC="Display Most Download Files in Categories View" +COM_PHOCADOWNLOAD_FIELD_DISPLAY_MOST_DOWNLOAD_FILES_LABEL="Display Most Download Files" +COM_PHOCADOWNLOAD_FIELD_DISPLAY_NEW_ICON_DESC="Set the number of days. During these days NEW icon will be displayed for the file, use zero for not displaying the icon" +COM_PHOCADOWNLOAD_FIELD_DISPLAY_NEW_ICON_LABEL="Display New Icon" +COM_PHOCADOWNLOAD_FIELD_DISPLAY_NUM_FILES_CATEGORIES_VIEW_DESC="Display or hide number of files (Categories View)" +COM_PHOCADOWNLOAD_FIELD_DISPLAY_NUM_FILES_CATEGORIES_VIEW_HEADER_DESC="Display or hide number of files (Categories View - Header)" +COM_PHOCADOWNLOAD_FIELD_DISPLAY_NUM_FILES_CATEGORIES_VIEW_HEADER_LABEL="Display Number of Files (Categories View - Header)" +COM_PHOCADOWNLOAD_FIELD_DISPLAY_NUM_FILES_CATEGORIES_VIEW_LABEL="Display Number of Files (Categories View)" +COM_PHOCADOWNLOAD_FIELD_DISPLAY_PLAY_BUTTON_DESC="Display or hide play button" +COM_PHOCADOWNLOAD_FIELD_DISPLAY_PLAY_BUTTON_LABEL="Display Play Button" +COM_PHOCADOWNLOAD_FIELD_DISPLAY_PREVIEW_BUTTON_DESC="Display or hide preview button" +COM_PHOCADOWNLOAD_FIELD_DISPLAY_PREVIEW_BUTTON_LABEL="Display Preview Button" +COM_PHOCADOWNLOAD_FIELD_DISPLAY_UP_ICON_DESC="Display or hide up icon - icon back to category or back to categories view" +COM_PHOCADOWNLOAD_FIELD_DISPLAY_UP_ICON_LABEL="Display Up Icon" +COM_PHOCADOWNLOAD_FIELD_DOWNLOADS_DESC="Set Dowloads" +COM_PHOCADOWNLOAD_FIELD_DOWNLOADS_LABEL="Downloads" +COM_PHOCADOWNLOAD_FIELD_DOWNLOAD_FOLDER_DESC="Set download folder. If absolute path will be set, this parameter will be ignored. Be aware, the folder set in the parameter must exist on the server." +COM_PHOCADOWNLOAD_FIELD_DOWNLOAD_FOLDER_LABEL="Download Folder" +COM_PHOCADOWNLOAD_FIELD_ENABLE_APPROVE_USERFILE_DESC="If Yes, files will be uploaded as not authorized and must be authorized by administrator. If No, files will be uploaded as authorized" +COM_PHOCADOWNLOAD_FIELD_ENABLE_APPROVE_USERFILE_LABEL="Enable User File Authorization" +COM_PHOCADOWNLOAD_FIELD_ENABLE_MU_ADMIN_DESC="Enable or disable multiple upload feature for administration" +COM_PHOCADOWNLOAD_FIELD_ENABLE_MU_ADMIN_LABEL="Enable Multiple Upload (Administration)" +COM_PHOCADOWNLOAD_FIELD_ENABLE_PLUGIN_QUERY_DESC="Set if Plugin can modify SQL query (Experts only!)" +COM_PHOCADOWNLOAD_FIELD_ENABLE_PLUGIN_QUERY_LABEL="Enable Plugin Query" +COM_PHOCADOWNLOAD_FIELD_ENABLE_USER_STAT_DESC="Enable or disable user statistics" +COM_PHOCADOWNLOAD_FIELD_ENABLE_USER_STAT_LABEL="Enable User Statistics" +COM_PHOCADOWNLOAD_FIELD_EXTERNAL_DOWNLOAD_LINK_DESC="Select if the external download link will have attribute TARGET=_self or TARGET=_blank" +COM_PHOCADOWNLOAD_FIELD_EXTERNAL_DOWNLOAD_LINK_LABEL="External Download Link" +COM_PHOCADOWNLOAD_FIELD_EXTERNAL_LINK_DESC="If the file is stored on external server, paste the external link here. The form field 'Filename' must also be filled (paste the whole link to the file into the form field 'External file' and only the name of the file into the form field 'Filename'). If you set the form field 'Direct Link' (see above) to 'Yes', the external link will be directly accessed (without checking the rights or saving statistics). If you set the form field 'Direct Link' to 'No', internal site will be accessed - statistics will be saved, file will be checked for access rights and then the site will be redirected to the external link (be aware, if the file is public on external server, it cannot be protected by Phoca Download there). Be aware, internal site will be not accessed in File View while clicking on Submit (Download) button." +COM_PHOCADOWNLOAD_FIELD_EXTERNAL_LINK_LABEL="External Link" +COM_PHOCADOWNLOAD_FIELD_FILENAME_DESC="Set or select filename" +COM_PHOCADOWNLOAD_FIELD_FILENAME_LABEL="Filename" +COM_PHOCADOWNLOAD_FIELD_FILENAME_OR_NAME_LABEL="Filename or Title" +COM_PHOCADOWNLOAD_FIELD_FILENAME_OR_NAME_LABEL_DESC="Display Filename or Title" +COM_PHOCADOWNLOAD_FIELD_FILEPLAY_DESC="Set or select file which will be played." +COM_PHOCADOWNLOAD_FIELD_FILEPLAY_LABEL="File - Play" +COM_PHOCADOWNLOAD_FIELD_FILEPREVIEW_DESC="Set or select file which will be previewed" +COM_PHOCADOWNLOAD_FIELD_FILEPREVIEW_LABEL="File - Preview" +COM_PHOCADOWNLOAD_FIELD_FILE_ICON_SIZE_DESC="Set size of file icon" +COM_PHOCADOWNLOAD_FIELD_FILE_ICON_SIZE_LABEL="File Icon Size" +COM_PHOCADOWNLOAD_FIELD_FILE_ICON_SIZE_MD_DESC="Set size of file icon for most downloaded files" +COM_PHOCADOWNLOAD_FIELD_FILE_ICON_SIZE_MD_LABEL="File Icon Size (Most Downloaded Files)" +COM_PHOCADOWNLOAD_FIELD_FILE_ORDERING_DESC="Set file ordering" +COM_PHOCADOWNLOAD_FIELD_FILE_ORDERING_LABEL="File Ordering" +COM_PHOCADOWNLOAD_FIELD_FINISH_PUBLISHING_DESC="Set finish publishing date" +COM_PHOCADOWNLOAD_FIELD_FINISH_PUBLISHING_LABEL="Finish Publishing" +COM_PHOCADOWNLOAD_FIELD_HITS="Hits" +COM_PHOCADOWNLOAD_FIELD_HITS_DESC="Hits" +COM_PHOCADOWNLOAD_FIELD_ICON_DESC="Set icon for the file" +COM_PHOCADOWNLOAD_FIELD_ICON_LABEL="Icon" +COM_PHOCADOWNLOAD_FIELD_ICON_SPEC1_DESC="Set first specific icon for the file, will be displayed after filename" +COM_PHOCADOWNLOAD_FIELD_ICON_SPEC1_LABEL="Specific Icon (1)" +COM_PHOCADOWNLOAD_FIELD_ICON_SPEC2_DESC="Set first specific icon for the file, will be displayed after filename" +COM_PHOCADOWNLOAD_FIELD_ICON_SPEC2_LABEL="Specific Icon (2)" +COM_PHOCADOWNLOAD_FIELD_JCONFIG_PERMISSIONS_DESC="Permissions" +COM_PHOCADOWNLOAD_FIELD_JCONFIG_PERMISSIONS_LABEL="Permissions" +COM_PHOCADOWNLOAD_FIELD_LICENSE_BOX_HEIGHT_DESC="Set height of license box" +COM_PHOCADOWNLOAD_FIELD_LICENSE_BOX_HEIGHT_LABEL="License Box Height" +COM_PHOCADOWNLOAD_FIELD_LICENSE_DESC="Set license of the file, this is only information about the license, if you want that license text needs to be confirmed, you should fill the form field 'Confirm License'" +COM_PHOCADOWNLOAD_FIELD_LICENSE_LABEL="License" +COM_PHOCADOWNLOAD_FIELD_LICENSE_TEXT_DESC="Set license text" +COM_PHOCADOWNLOAD_FIELD_LICENSE_TEXT_LABEL="License Text" +COM_PHOCADOWNLOAD_FIELD_LICENSE_URL_DESC="Set URL to license. URL to site where is described the license of the file" +COM_PHOCADOWNLOAD_FIELD_LICENSE_URL_LABEL="License link" +COM_PHOCADOWNLOAD_FIELD_MAX_COUNT_USER_FILES_DESC="Set maximum count of files user can upload" +COM_PHOCADOWNLOAD_FIELD_MAX_COUNT_USER_FILES_LABEL="Maximum Count of uploaded user's files" +COM_PHOCADOWNLOAD_FIELD_MAX_SIZE_USER_FILES_DESC="Set maximum size of all files user can upload" +COM_PHOCADOWNLOAD_FIELD_MAX_SIZE_USER_FILES_LABEL="Maximum Size of all user's files" +COM_PHOCADOWNLOAD_FIELD_METADESC_DESC="Set meta description for Phoca Download" +COM_PHOCADOWNLOAD_FIELD_METADESC_LABEL="Meta Description" +COM_PHOCADOWNLOAD_FIELD_METAKEY_DESC="Set meta keywords for Phoca Download" +COM_PHOCADOWNLOAD_FIELD_METAKEY_LABEL="Meta Keywords" +COM_PHOCADOWNLOAD_FIELD_ORDERING_DESC="Set ordering" +COM_PHOCADOWNLOAD_FIELD_ORDERING_LABEL="Ordering" +COM_PHOCADOWNLOAD_FIELD_PARENT_CATEGORY_DESC="Set parent category" +COM_PHOCADOWNLOAD_FIELD_PARENT_CATEGORY_LABEL="Parent Category" +COM_PHOCADOWNLOAD_FIELD_PLAYER_HEIGHT_DESC="Set player height (in px)" +COM_PHOCADOWNLOAD_FIELD_PLAYER_HEIGHT_LABEL="Player Height" +COM_PHOCADOWNLOAD_FIELD_PLAYER_MP3_HEIGHT_DESC="Set player height (MP3, OGG Audio)" +COM_PHOCADOWNLOAD_FIELD_PLAYER_MP3_HEIGHT_LABEL="Player Height (MP3, OGG Audio)" +COM_PHOCADOWNLOAD_FIELD_PLAYER_WIDTH_DESC="Set player width (in px)" +COM_PHOCADOWNLOAD_FIELD_PLAYER_WIDTH_LABEL="Player Width" +COM_PHOCADOWNLOAD_FIELD_PLAY_POPUP_WINDOW_DESC="Select play popup window" +COM_PHOCADOWNLOAD_FIELD_PLAY_POPUP_WINDOW_LABEL="Play Popup Window" +COM_PHOCADOWNLOAD_FIELD_PREVIEW_HEIGHT_DESC="Set preview height (in px)" +COM_PHOCADOWNLOAD_FIELD_PREVIEW_HEIGHT_LABEL="Preview Height" +COM_PHOCADOWNLOAD_FIELD_PREVIEW_POPUP_WINDOW_DESC="Select preview popup window" +COM_PHOCADOWNLOAD_FIELD_PREVIEW_POPUP_WINDOW_LABEL="Preview Popup Window" +COM_PHOCADOWNLOAD_FIELD_PREVIEW_WIDTH_DESC="Set preview width (in px)" +COM_PHOCADOWNLOAD_FIELD_PREVIEW_WIDTH_LABEL="Preview Width" +COM_PHOCADOWNLOAD_FIELD_PUBLISHED_DESC="Publish or unpublish" +COM_PHOCADOWNLOAD_FIELD_PUBLISHED_LABEL="Published" +COM_PHOCADOWNLOAD_FIELD_SEND_EMAIL_DOWNLOAD_DESC="Send email if user will download a file" +COM_PHOCADOWNLOAD_FIELD_SEND_EMAIL_DOWNLOAD_LABEL="Send Email (Download)" +COM_PHOCADOWNLOAD_FIELD_SEND_EMAIL_UPLOAD_DESC="Send email if user will upload a file" +COM_PHOCADOWNLOAD_FIELD_SEND_EMAIL_UPLOAD_LABEL="Send Email (Upload)" +COM_PHOCADOWNLOAD_FIELD_START_PUBLISHING_DESC="Set start publishing date" +COM_PHOCADOWNLOAD_FIELD_START_PUBLISHING_LABEL="Start Publishing" +COM_PHOCADOWNLOAD_FIELD_THEME_DESC="Set theme" +COM_PHOCADOWNLOAD_FIELD_THEME_LABEL="Theme" +COM_PHOCADOWNLOAD_FIELD_TITLE_DESC="Set title" +COM_PHOCADOWNLOAD_FIELD_TITLE_LABEL="Title" +COM_PHOCADOWNLOAD_FIELD_UPLOAD_MAX_SIZE_ADMIN_DESC="Set the maximum size for an upload in administration. Use zero for no limit. Do not forget, that the upload size can be limited by the server settings (in bytes)" +COM_PHOCADOWNLOAD_FIELD_UPLOAD_MAX_SIZE_ADMIN_LABEL="Maximum Upload Size (Administration)" +COM_PHOCADOWNLOAD_FIELD_UPLOAD_RIGHTS_DESC="Set upload rights" +COM_PHOCADOWNLOAD_FIELD_UPLOAD_RIGHTS_LABEL="Upload Rights" +COM_PHOCADOWNLOAD_FIELD_USER_FILE_UPLOAD_SIZE_DESC="Set maximum size of file which can be uploaded by user in frontend" +COM_PHOCADOWNLOAD_FIELD_USER_FILE_UPLOAD_SIZE_LABEL="User File Upload Size" +COM_PHOCADOWNLOAD_FIELD_USER_UPLOAD_ENABLE_DESC="Enable or disable user upload" +COM_PHOCADOWNLOAD_FIELD_USER_UPLOAD_ENABLE_LABEL="Enable User Upload" +COM_PHOCADOWNLOAD_FIELD_VERSION_DESC="Set version" +COM_PHOCADOWNLOAD_FIELD_VERSION_LABEL="Version" +COM_PHOCADOWNLOAD_FILE="File" +COM_PHOCADOWNLOAD_FILENAME="Filename" +COM_PHOCADOWNLOAD_FILENAME_AND_TITLE="Filename and Title" +COM_PHOCADOWNLOAD_FILES="Files" +COM_PHOCADOWNLOAD_FILESIZE="File Size" +COM_PHOCADOWNLOAD_FILES_UPLOADED="Files Uploaded" +COM_PHOCADOWNLOAD_FILE_ALREADY_EXISTS="File already exists" +COM_PHOCADOWNLOAD_FILE_FILEATIME="File (access time)" +COM_PHOCADOWNLOAD_FILE_FILECTIME="File (inode change time)" +COM_PHOCADOWNLOAD_FILE_FILEMTIME="File (modification time)" +COM_PHOCADOWNLOAD_FILE_SETTINGS_LABEL="File Settings" +COM_PHOCADOWNLOAD_FILE_SIZE_EMPTY="File Size is empty" +COM_PHOCADOWNLOAD_FILE_TITLE="File Title" +COM_PHOCADOWNLOAD_FILTER="Filter" +COM_PHOCADOWNLOAD_FINISH="Finish" +COM_PHOCADOWNLOAD_FINISH_PUBLISHING="Finish Publishing" +COM_PHOCADOWNLOAD_FOLDER="Folder" +COM_PHOCADOWNLOAD_FORM_SELECT_FILENAME="Select Filename" +COM_PHOCADOWNLOAD_FORM_SELECT_ICON="Select Icon" +COM_PHOCADOWNLOAD_FTP_LOGIN_DESC="For uploading files (images, themes), Joomla! will most likely need your FTP account details. Please enter them in the form fields below." +COM_PHOCADOWNLOAD_FTP_LOGIN_LABEL="FTP Login Details" +COM_PHOCADOWNLOAD_GREY="Grey" +COM_PHOCADOWNLOAD_GROUP_LABEL_PUBLISHING_DETAILS="Publishing Details" +COM_PHOCADOWNLOAD_GUEST="Guest" +COM_PHOCADOWNLOAD_HELP="Help" +COM_PHOCADOWNLOAD_HITS="Hits" +COM_PHOCADOWNLOAD_ID="ID" +COM_PHOCADOWNLOAD_ID_ASC="ID Ascending" +COM_PHOCADOWNLOAD_ID_DESC="ID Descending" +COM_PHOCADOWNLOAD_INFO="Info" +COM_PHOCADOWNLOAD_INSERT="Insert" +COM_PHOCADOWNLOAD_INSERT_FILENAME="Insert Filename" +COM_PHOCADOWNLOAD_INSERT_ICON="Insert Icon" +COM_PHOCADOWNLOAD_INVALID_TOKEN="Invalid Token" +COM_PHOCADOWNLOAD_I_AGREE_TO_TERMS_LISTED_ABOVE="I agree to the terms listed above" +COM_PHOCADOWNLOAD_JCOMMENTS="JComments" +COM_PHOCADOWNLOAD_LICENSE="License" +COM_PHOCADOWNLOAD_LICENSES="Licenses" +COM_PHOCADOWNLOAD_LICENSE_AGREEMENT="License Agreement" +COM_PHOCADOWNLOAD_LOADING="Loading" +COM_PHOCADOWNLOAD_MAX_LIMIT_CHARS_REACHED="You have reached maximum limit of characters allowed" +COM_PHOCADOWNLOAD_MAX_SIZE="Max Size" +COM_PHOCADOWNLOAD_MODAL_BOX="Modal Box" +COM_PHOCADOWNLOAD_MOST_DOWNLOADED_FILES="Most downloaded files" +COM_PHOCADOWNLOAD_MULTIPLE_UPLOAD="Multiple Upload" +COM_PHOCADOWNLOAD_NEW="New" +COM_PHOCADOWNLOAD_NEW_CATEGORY="New Category" +COM_PHOCADOWNLOAD_NEW_FILE="New File" +COM_PHOCADOWNLOAD_NO="No" +COM_PHOCADOWNLOAD_NOBODY="Nobody" +COM_PHOCADOWNLOAD_NONE="None" +COM_PHOCADOWNLOAD_NOT_APPROVE="Unauthorize" +COM_PHOCADOWNLOAD_NOT_APPROVED="Not Authorized" +COM_PHOCADOWNLOAD_NOT_APPROVED_FILES_COUNT="Count of not authorized file(s)" +COM_PHOCADOWNLOAD_NOT_APPROVE_ITEM="Unauthorize item" +COM_PHOCADOWNLOAD_NOT_AUTHORISED_ACTION="You are not authorized to do this action" +COM_PHOCADOWNLOAD_NOT_AUTHORISED_TO_UPLOAD="You are not authorized to upload file" +COM_PHOCADOWNLOAD_NOT_INSTALLED_BROWSERPLUS="You browser doesn't have BrowserPlus installed." +COM_PHOCADOWNLOAD_NOT_INSTALLED_FLASH="You browser doesn't have Flash installed." +COM_PHOCADOWNLOAD_NOT_INSTALLED_GEARS="You browser doesn't have Gears installed." +COM_PHOCADOWNLOAD_NOT_INSTALLED_SILVERLIGHT="You browser doesn't have Silverlight installed." +COM_PHOCADOWNLOAD_NOT_SUPPORTED_HTML4="You browser doesn't have HTML 4 support." +COM_PHOCADOWNLOAD_NOT_SUPPORTED_HTML5="You browser doesn't have HTML 5 support." +COM_PHOCADOWNLOAD_NO_EXPIRY="No Expiry" +COM_PHOCADOWNLOAD_NO_RIGHTS_ACCESS_CATEGORY="You have no rights to access this category" +COM_PHOCADOWNLOAD_NO_SUBCATEGORIES="No Subcategories" +COM_PHOCADOWNLOAD_N_ITEMS_APPROVED="%d items successfully authorized" +COM_PHOCADOWNLOAD_N_ITEMS_APPROVED_1="%d item successfully authorized" +COM_PHOCADOWNLOAD_N_ITEMS_CHECKED_IN_0="No item successfully checked in" +COM_PHOCADOWNLOAD_N_ITEMS_CHECKED_IN_1="%d item successfully checked in" +COM_PHOCADOWNLOAD_N_ITEMS_CHECKED_IN_MORE="%d items successfully checked in" +COM_PHOCADOWNLOAD_N_ITEMS_DELETED="%d items successfully deleted" +COM_PHOCADOWNLOAD_N_ITEMS_DELETED_1="%d item successfully deleted" +COM_PHOCADOWNLOAD_N_ITEMS_DISAPPROVED="%d items successfully unauthorized" +COM_PHOCADOWNLOAD_N_ITEMS_DISAPPROVED_1="%d item successfully unauthorized" +COM_PHOCADOWNLOAD_N_ITEMS_PUBLISHED="%d items successfully published" +COM_PHOCADOWNLOAD_N_ITEMS_PUBLISHED_1="%d item successfully published" +COM_PHOCADOWNLOAD_N_ITEMS_UNPUBLISHED="%d items successfully unpublished" +COM_PHOCADOWNLOAD_N_ITEMS_UNPUBLISHED_1="%d item successfully unpublished" +COM_PHOCADOWNLOAD_OPEN="Open" +COM_PHOCADOWNLOAD_ORDER="Order" +COM_PHOCADOWNLOAD_ORDERING="Ordering" +COM_PHOCADOWNLOAD_ORDERING_ASC="Ordering Ascending" +COM_PHOCADOWNLOAD_ORDERING_DESC="Ordering Descending" +COM_PHOCADOWNLOAD_OVERLIB="Overlib" +COM_PHOCADOWNLOAD_OWNER="Owner" +COM_PHOCADOWNLOAD_PARENT_CATEGORY="Parent Category" +COM_PHOCADOWNLOAD_PATH="Path" +COM_PHOCADOWNLOAD_PD_CONTROL_PANEL="Phoca Download Control Panel" +COM_PHOCADOWNLOAD_PD_INFO="Phoca Download Info" +COM_PHOCADOWNLOAD_PENDING="Pending" +COM_PHOCADOWNLOAD_PLAY="Play" +COM_PHOCADOWNLOAD_PLAY_SETTINGS_LABEL="Play Settings" +COM_PHOCADOWNLOAD_PLEASE_ADD_FILE="Please add a file" +COM_PHOCADOWNLOAD_PLEASE_ENTER_VALID_EMAIL_ADDRESS="Please enter a valid email address" +COM_PHOCADOWNLOAD_PLEASE_ENTER_VALID_WEBSITE="Please enter a valid website (format: http://your_site.com)" +COM_PHOCADOWNLOAD_PLEASE_LOGIN_DOWNLOAD_FILE="Please login to download the file" +COM_PHOCADOWNLOAD_PLEASE_SELECT_CATEGORY="Please select category" +COM_PHOCADOWNLOAD_PREVIEW="Preview" +COM_PHOCADOWNLOAD_PREVIEW_SETTINGS_LABEL="Preview Settings" +COM_PHOCADOWNLOAD_PUBLISHED="Published" +COM_PHOCADOWNLOAD_PUBLISH_INFORMATION="Publish Information" +COM_PHOCADOWNLOAD_RESET="Reset" +COM_PHOCADOWNLOAD_ROUNDED_CORNERS="Rounded Corners" +COM_PHOCADOWNLOAD_SEARCH="Search" +COM_PHOCADOWNLOAD_SEARCH_IN_TITLE="Search" +COM_PHOCADOWNLOAD_SELECT_CATEGORY="Select Category" +COM_PHOCADOWNLOAD_SELECT_FILES="Select Files" +COM_PHOCADOWNLOAD_SELECT_ITEM_RESET="Select an item to reset" +COM_PHOCADOWNLOAD_SELECT_LICENSE="Select License" +COM_PHOCADOWNLOAD_SELF="Self" +COM_PHOCADOWNLOAD_SIZE="Size" +COM_PHOCADOWNLOAD_STANDARD_POPUP_WINDOW="Standard Popup Window" +COM_PHOCADOWNLOAD_START="Start" +COM_PHOCADOWNLOAD_START_PUBLISHING="Start Publishing" +COM_PHOCADOWNLOAD_START_UPLOAD="Start Upload" +COM_PHOCADOWNLOAD_START_UPLOADING_QUEUE="Start Uploading Queue" +COM_PHOCADOWNLOAD_STATISTICS="Statistics" +COM_PHOCADOWNLOAD_STATUS="Status" +COM_PHOCADOWNLOAD_STOP_CURRENT_UPLOAD="Stop Current Upload" +COM_PHOCADOWNLOAD_SUCCESS="Success" +COM_PHOCADOWNLOAD_SUCCESS_FILE_UPLOAD="File uploaded" +COM_PHOCADOWNLOAD_SUCCESS_FILE_UPLOADED="File uploaded" +COM_PHOCADOWNLOAD_SUCCESS_FOLDER_CREATING="Folder created" +COM_PHOCADOWNLOAD_SUCCESS_RESET_USER_STAT="User Statistics reset" +COM_PHOCADOWNLOAD_THERE_IS_NO_FILE="There is no file" +COM_PHOCADOWNLOAD_TITLE="Title" +COM_PHOCADOWNLOAD_TITLE_ASC="Title Ascending" +COM_PHOCADOWNLOAD_TITLE_DESC="Title Descending" +COM_PHOCADOWNLOAD_TOP="Top" +COM_PHOCADOWNLOAD_TOP_AND_OVERLIB="Top and Overlib" +COM_PHOCADOWNLOAD_TOP_WITH_DETAIL_AND_OVERLIB="Top with detail and Overlib" +COM_PHOCADOWNLOAD_UNABLE_TO_UPLOAD_FILE="File cannot be uploaded - unable to move file" +COM_PHOCADOWNLOAD_UP="Up" +COM_PHOCADOWNLOAD_UPLOAD="Upload" +COM_PHOCADOWNLOAD_UPLOADED_FILES="Uploaded Files" +COM_PHOCADOWNLOAD_UPLOAD_FILE="Upload File" +COM_PHOCADOWNLOAD_USER="User" +COM_PHOCADOWNLOAD_USERNAME="Username" +COM_PHOCADOWNLOAD_USERS="Users" +COM_PHOCADOWNLOAD_USER_STATISTICS="User Statistics" +COM_PHOCADOWNLOAD_USER_UPLOAD_DISABLED="User Upload is disabled" +COM_PHOCADOWNLOAD_VERSION="Version" +COM_PHOCADOWNLOAD_WARNFILENAME="File name must only contain alphanumeric characters, underscores, hyphens and spaces." +COM_PHOCADOWNLOAD_WARNFILETOOLARGE="This file is too large to upload." +COM_PHOCADOWNLOAD_WARNFILETYPE="This file type is not supported (or there are some restrictions on the server)." +COM_PHOCADOWNLOAD_WARNFILETYPE_DISALLOWED="The file type is disallowed - file cannot be uploaded" +COM_PHOCADOWNLOAD_WARNFILETYPE_DISALLOWED_DOWNLOAD="Error while downloading file (Disallowed Mime Type)" +COM_PHOCADOWNLOAD_WARNFILETYPE_DOWNLOAD="Error while downloading file (Mime Type not found)" +COM_PHOCADOWNLOAD_WARNFILETYPE_NOT_ALLOWED="The file type is not allowed - file cannot be uploaded" +COM_PHOCADOWNLOAD_WARNIEXSS="Possible IE XSS Attack found." +COM_PHOCADOWNLOAD_WARNING_AGREE_LICENSE_TERMS="You must agree to listed terms" +COM_PHOCADOWNLOAD_WARNING_AUTHORIZE_ALL="Do you really want to authorize all files of all users?" +COM_PHOCADOWNLOAD_WARNING_DELETE_ITEMS="Are you sure you want to delete the listed Items?" +COM_PHOCADOWNLOAD_WARNING_DIRNAME="Error: Wrong folder name" +COM_PHOCADOWNLOAD_WARNING_INPUT_FILE_UPLOAD="Please input a file for upload" +COM_PHOCADOWNLOAD_WARNING_RESET_DOWNLOADS="Really reset downloads?" +COM_PHOCADOWNLOAD_WARNINVALIDIMG="Not a valid image." +COM_PHOCADOWNLOAD_WARNINVALIDMIME="Illegal or invalid mime type detected." +COM_PHOCADOWNLOAD_WARNNOTADMIN="Uploaded file is not an image file and you are not a manager or higher." +COM_PHOCADOWNLOAD_WARNSAFEMODE="Directory creation is not allowed while running in SAFE MODE as this can cause problems." +COM_PHOCADOWNLOAD_WARNUSERFILESTOOLARGE="Maximum size of all your files reached. File cannot be uploaded." +COM_PHOCADOWNLOAD_WARNUSERFILESTOOMUCH="Maximum count of all your files reached. File cannot be uploaded." +COM_PHOCADOWNLOAD_YES="Yes" +COM_PHOCADOWNLOAD_AT="at" +COM_PHOCADOWNLOAD_ERROR_CONTROLLER="Error: No such controller or task" +COM_PHOCADOWNLOAD_ERROR_FOLDER_CREATING_EXISTS="Folder exists" +COM_PHOCADOWNLOAD_SUCCESS_FOLDER_CREATING="Folder created" +COM_PHOCADOWNLOAD_EDIT_LICENSE="Edit License" +COM_PHOCADOWNLOAD_NEW_LICENSE="New License" +COM_PHOCADOWNLOAD_NEW_MODEL_INFO="MODEL INFO" +COM_PHOCADOWNLOAD_PRODUCER="Producer" +COM_PHOCADOWNLOAD_AUTHOR="Author" +COM_PHOCADOWNLOAD_POLYGONS="Polygons" +COM_PHOCADOWNLOAD_FILE_SIZE="File Size" +COM_PHOCADOWNLOAD_BOUNDS="Bounds" +COM_PHOCADOWNLOAD_CLOUD_LIBRARY_DESC="ARCHLine.XP Warehouse is your home to find or share ARCHLine.XP content such as models, materials, custom styles, +Models are also available in SketchUp format. Share your work and get inspired by others." +COM_PHOCADOWNLOAD_LOGIN_HEADER="Login" +COM_PHOCADOWNLOAD_LOGIN_CLOSE="Close" +COM_PHOCADOWNLOAD_CLOUD_LIBRARY_PROFILE="User Profile" +COM_PHOCADOWNLOAD_CLOUD_LIBRARY_LOGOUT="Logout" +COM_PHOCADOWNLOAD_CLOUD_LIBRARY_DOWNLOAD="ARCHLine.XP Download" +COM_PHOCADOWNLOAD_CLOUD_LIBRARY_PUBLISH="Publish" +COM_PHOCADOWNLOAD_CLOUD_LIBRARY_MAKE_PRIVATE="Make private" +COM_PHOCADOWNLOAD_CLOUD_LIBRARY_PRIVATE="Private" +COM_PHOCADOWNLOAD_CLOUD_LIBRARY_NO_RESULT="No result found" +COM_PHOCADOWNLOAD_CLOUD_LIBRARY_ARE_YOU_SURE="Are you sure to delete this item?" +COM_PHOCADOWNLOAD_CLOUD_LIBRARY_MY_CONTENT="My Content" +COM_PHOCADOWNLOAD_PRODUCT_LINE="Product line" +COM_PHOCADOWNLOAD_DOWNLOAD_SCALE_DOWN="Scale Down" +COM_PHOCADOWNLOAD_DOWNLOAD_SCALE_UP="Scale Up" +COM_PHOCADOWNLOAD_DOWNLOAD_MODELS="Models" +COM_PHOCADOWNLOAD_DOWNLOAD_BRANDS="Brands" +COM_PHOCADOWNLOAD_DOWNLOAD_PREVIOUS="Previous" +COM_PHOCADOWNLOAD_DOWNLOAD_NEXT="Next" +COM_PHOCADOWNLOAD_DOWNLOAD_AS_DXF="Download as dxf" +COM_PHOCADOWNLOAD_DOWNLOAD_ALL="Download all" +COM_PHOCADOWNLOAD_VIEWS="Views" \ No newline at end of file diff --git a/packages/phocadownload/language/en-GB/en-GB.com_phocadownload.sys.ini b/packages/phocadownload/language/en-GB/en-GB.com_phocadownload.sys.ini new file mode 100644 index 00000000..f0d511f8 --- /dev/null +++ b/packages/phocadownload/language/en-GB/en-GB.com_phocadownload.sys.ini @@ -0,0 +1,59 @@ +; @package Joomla.Framework +; @copyright Copyright (C) 2005 - 2010 Open Source Matters, Inc. All rights reserved. +; @license GNU General Public License version 2 or later; see LICENSE.txt +; +; @component Phoca Component +; @copyright Copyright (C) Jan Pavelka www.phoca.cz +; @license http://www.gnu.org/copyleft/gpl.html GNU General Public License version 2 or later; +; +; @test utf-8 ä, ö, ü +; + +;[3.0.2] +COM_PHOCADOWNLOAD_DOWNLOAD_LAYOUT="Download View" +COM_PHOCADOWNLOAD_DOWNLOAD_LAYOUT_DESC="This view displays link of file to download (File which is accessible by unique download URL)" +COM_PHOCADOWNLOAD_DOWNLOAD_GROUP="Download View" +COM_PHOCADOWNLOAD_DOWNLOAD_GROUP_DESC="This view displays link of file to download (File which is accessible by unique download URL)" + +;[3.0.0 Stable] +COM_PHOCADOWNLOAD_VERSION="Version" +;[3.0.0] +COM_PHOCADOWNLOAD_UPDATE_TEXT="Phoca Download updated" +COM_PHOCADOWNLOAD_DOWNLOADS="Downloads" +COM_PHOCADOWNLOAD_UPLOADS="Uploads" +COM_PHOCADOWNLOAD_LOGGING="Logging" +COM_PHOCADOWNLOAD_STYLES="Styles" +;[2.1.2] +COM_PHOCADOWNLOAD_TAGS="Tags" +COM_PHOCADOWNLOAD_LAYOUT="Layout" +;[2.1.0] +PHOCADOWNLOAD="Phoca Download" +COM_PHOCADOWNLOAD="Phoca Download" +COM_PHOCADOWNLOAD_CONTROLPANEL="Control Panel" +COM_PHOCADOWNLOAD_FILES="Files" +COM_PHOCADOWNLOAD_CATEGORIES="Categories" +COM_PHOCADOWNLOAD_LICENSES="Licenses" +COM_PHOCADOWNLOAD_STATISTICS="Statistics" +COM_PHOCADOWNLOAD_USERS="Users" +COM_PHOCADOWNLOAD_INFO="Info" +COM_PHOCADOWNLOAD_FILE_RATING="File Rating" +COM_PHOCADOWNLOAD_XML_DESCRIPTION="Phoca Download is a download manager for Joomla! CMS. It includes component, modules and plugins and allows to add files to the site which can be downloaded by other users." +COM_PHOCADOWNLOAD_CATEGORIES_GROUP="List Of Categories (Categories View)" +COM_PHOCADOWNLOAD_CATEGORIES_GROUP_DESC="This view displays list of categories" +COM_PHOCADOWNLOAD_CATEGORY_GROUP="List of Files (Category View)" +COM_PHOCADOWNLOAD_CATEGORY_GROUP_DESC="This view displays list of files" +COM_PHOCADOWNLOAD_FILE_GROUP="File View - detail of a file" +COM_PHOCADOWNLOAD_FILE_GROUP_DESC="This view displays detail of a file" +COM_PHOCADOWNLOAD_USER_UPLOAD_GROUP="User Upload View" +COM_PHOCADOWNLOAD_USER_UPLOAD_GROUP_DESC="This view displays User Upload" +COM_PHOCADOWNLOAD_CATEGORIES_LIST_LAYOUT="List Of Categories (Categories View)" +COM_PHOCADOWNLOAD_CATEGORIES_LIST_LAYOUT_DESC="This view displays list of categories" +COM_PHOCADOWNLOAD_CATEGORY_LIST_LAYOUT="List of Files (Category View)" +COM_PHOCADOWNLOAD_CATEGORY_LIST_LAYOUT_DESC="This view displays list of files" +COM_PHOCADOWNLOAD_USER_UPLOAD_LAYOUT="User Upload" +COM_PHOCADOWNLOAD_USER_UPLOAD_LAYOUT_DESC="This view displays User Upload" +COM_PHOCADOWNLOAD_FILE_LAYOUT="File View" +COM_PHOCADOWNLOAD_FILE_LAYOUT_DESC="This view displays details of a file" + +COM_PHOCADOWNLOAD_INSTALL="Install" +COM_PHOCADOWNLOAD_UPGRADE="Upgrade" \ No newline at end of file diff --git a/packages/phocadownload/language/hu-HU/hu-HU.com_phocadownload.ini b/packages/phocadownload/language/hu-HU/hu-HU.com_phocadownload.ini new file mode 100644 index 00000000..f23ca29d --- /dev/null +++ b/packages/phocadownload/language/hu-HU/hu-HU.com_phocadownload.ini @@ -0,0 +1,841 @@ +; @package Joomla.Framework +; @copyright Copyright (C) 2005 - 2010 Open Source Matters, Inc. All rights reserved. +; @license GNU General Public License version 2 or later; see LICENSE.txt +; +; @component Phoca Component +; @copyright Copyright (C) Jan Pavelka www.phoca.cz +; @license http://www.gnu.org/copyleft/gpl.html GNU General Public License version 2 or later; +; +; @test utf-8 ä, ö, ü +; + + +;[3.1.1] +COM_PHOCADOWNLOAD_SELECT_MAX_LEVELS="Select Max Levels" +COM_PHOCADOWNLOAD_FIELD_COLUMN_SIZE_CATEGORY_VIEW_LABEL="Column size (Category View)" +COM_PHOCADOWNLOAD_FIELD_COLUMN_SIZE_CATEGORY_VIEW_DESC="Set left column size for category view. Right column size will be automatically set. This parameter applies for Bootstrap layout only and maximum column size is 12." +COM_PHOCADOWNLOAD_FIELD_TAGS_STRING_LABEL="Tags (String)" +COM_PHOCADOWNLOAD_FIELD_TAGS_STRING_DESC="Set string tags. Separate each tag with comma (,). These tags are displayed next to filename or title. The don't include links, they cannot be searched in the system. They are just displayed like icons next to the filename or title" +COM_PHOCADOWNLOAD_YES_CATEGORY_VIEW_TITLE_SUFFIX="Yes (Category View) - Title Suffix" +COM_PHOCADOWNLOAD_YES_FILE_VIEW_TITLE_SUFFIX="Yes (FileView) - Title Suffix" +COM_PHOCADOWNLOAD_YES_CATEGORY_FILE_VIEW_TITLE_SUFFIX="Yes (Category And File View) - Title Suffix" +COM_PHOCADOWNLOAD_WAS_UPLOADED_BY="was uploaded by" +COM_PHOCADOWNLOAD_FILE_UPLOADED="File uploaded" +COM_PHOCADOWNLOAD_SEARCH_FILTER_IS_ACTIVE="Search filter is active. Listed categories are not displayed in category tree. Max levels filter is not active." +COM_PHOCADOWNLOAD_PLEASE_ADD_FILE_OR_IF_ADDED_CHECK_IF_IT_HAS_RIGHT_FORMAT_AND_SIZE="Please add a file. If added, please, test if it has the right format and size" +COM_PHOCADOWNLOAD_DISPLAY_BOOTSTRAP3_LAYOUT_LABEL="Display Bootstrap 3 Layout" +COM_PHOCADOWNLOAD_DISPLAY_BOOTSTRAP3_LAYOUT_DESC="When Bootstrap 3 layout is enabled, then specific layout will be not loaded. Don't forget to disable styles in Styles (CSS) view which can be in conflict with Bootstrap 3 (e.g. Bootstrap 2)" +;[3.1.0] +COM_PHOCADOWNLAD_CLOSE="Bezárás" +COM_PHOCADOWNLOAD_FIELD_DISPLAY_ORDERING_CATEGORY_VIEW_LABEL="Display Ordering Select Box (Category View)" +COM_PHOCADOWNLOAD_FIELD_DISPLAY_ORDERING_CATEGORY_VIEW_DESC="Display or hide ordering select box in Category View - ordering of files" +COM_PHOCADOWNLOAD_COUNT_ASC="Rating Count Ascending" +COM_PHOCADOWNLOAD_COUNT_DESC="Rating Count Descending" +COM_PHOCADOWNLOAD_AVERAGE_ASC="Rating Ascending" +COM_PHOCADOWNLOAD_AVERAGE_DESC="Rating Descending" +COM_PHOCADOWNLOAD_DOWNLOADS_ASC="Downloads Ascending" +COM_PHOCADOWNLOAD_DOWNLOADS_DESC="Downloads Descending" +COM_PHOCADOWNLOAD_ORDER_FRONT="Ordering" +COM_PHOCADOWNLOAD_REGARDS="Regards" +COM_PHOCADOWNLOAD_MESSAGE="Message" +COM_PHOCADOWNLOAD_WEBSITE="Website" +COM_PHOCADOWNLOAD_WAS_DOWNLOADED_BY="was downloaded by" +COM_PHOCADOWNLOAD_SUCCESS_NEW_FILE_UPLOADED="New file uploaded" +COM_PHOCADOWNLOAD_FILE_DOWNLOADED="File downloaded" +COM_PHOCADOWNLOAD_ANONYMOUS="Anonymous" +COM_PHOCADOWNLOAD_FIELD_MULTIPLE_UPLOAD_METHOD_DESC="Set Multiple Upload Method in administration. See http://www.plupload.com/ which browsers and which functions are supported by selected method" +COM_PHOCADOWNLOAD_FIELD_MULTIPLE_UPLOAD_METHOD_LABEL="Multiple Upload Method (Administration)" +COM_PHOCADOWNLOAD_FLASH_UPLOADER="Flash Uploader" +COM_PHOCADOWNLOAD_GEARS_UPLOADER="Gears Uploader" +COM_PHOCADOWNLOAD_SILVERLIGHT_UPLOADER="Silverlight Uploader" +COM_PHOCADOWNLOAD_HTML4_UPLOADER="HTML4 Uploader" +COM_PHOCADOWNLOAD_HTML5_UPLOADER="HTML5 Uploader" +COM_PHOCADOWNLOAD_BROWSERPLUS_UPLOADER="Browserplus Uploader" + +;[3.0.6] +COM_PHOCADOWNLOAD_FILENAME_ASC="Filename Ascending" +COM_PHOCADOWNLOAD_FILENAME_DESC="Filename Descending" + +;[3.0.3] +COM_PHOCADOWNLOAD_BROWSER_DOES_NOT_SUPPORT_AUDIO_VIDEO_TAG="Your browser does not support the audio/video tag" +COM_PHOCADOWNLOAD_FIELD_HTML5_AUDIO_VIDEO_LABEL="HTML5 Audio/Video" +COM_PHOCADOWNLOAD_FIELD_HTML5_AUDIO_VIDEO_DESC="Set yes to enable HTML 5 player for audio and video" +;[3.0.2] +COM_PHOCADOWNLOAD_FIELD_ENABLE_TOKEN_DOWNLOAD_LABEL="Enable Unique Download Link" +COM_PHOCADOWNLOAD_FIELD_ENABLE_TOKEN_DOWNLOAD_DESC="Enable or disable unique download link feature (download with token)" +COM_PHOCADOWNLOAD_MAX_LIMIT_DOWNLOAD_TOKEN_REACHED="File cannot be downloaded. Maximum download limit of this file reached." +COM_PHOCADOWNLOAD_FIELD_MAX_COUNT_TOKEN_DOWNLOADS_DESC="Set maximum count of files user can download through unique download link. Be aware, 0 (Zero) means, there is no limit. This limit only takes effect for unique download link" +COM_PHOCADOWNLOAD_FIELD_MAX_COUNT_TOKEN_DOWNLOADS_LABEL="Maximum Count of downloads per file (Unique Download Link)" +COM_PHOCADOWNLOAD_URL_FORMAT_DEPENDS_ON_SEF="This Link may take different formats. Its format depends on your SEF Settings" +COM_PHOCADOWNLOAD_UNIQUE_DOWNLOAD_URL="Unique Download Link" +COM_PHOCADOWNLOAD_DOWNLOAD_FILE="Download file" +COM_PHOCADOWNLOAD_FILE_NOT_FOUND="File Not Found" +COM_PHOCADOWNLOAD_SET_TOKEN="Set Token" +COM_PHOCADOWNLOAD_FIELD_TOKEN_LABEL="Token (Unique Download Link)" +COM_PHOCADOWNLOAD_FIELD_TOKEN_DESC="Set token - unique download link of the file" +COM_PHOCADOWNLOAD_FIELD_TOKENHITS_LABEL="Token Downloads" +COM_PHOCADOWNLOAD_FIELD_TOKENHITS_DESC="How many times the file was downloaded by unique download link" +COM_PHOCADOWNLOAD_YES_FRONTEND="Yes (Frontend Only)" +COM_PHOCADOWNLOAD_YES_BACKEND="Yes (Backend Only)" +COM_PHOCADOWNLOAD_YES_FRONTEND_BACKEND="Yes (Frontend, Backend)" +;[3.0.1] +COM_PHOCADOWNLOAD_FIELD_ALIAS_M_DESC="Alias for all added images can be set. If empty, Alias will be created from Filename" +COM_PHOCADOWNLOAD_FIELD_TITLE_M_DESC="Title for all added images can be set. If empty, Title will be created from Filename" +COM_PHOCADOWNLOAD_FIELD_LANGUAGE_FILE_DESC="The language that the file is assigned to." +;[3.0.0] +COM_PHOCADOWNLOAD_FIELD_COPY_PAP_LABEL="Copy Play and Preview" +COM_PHOCADOWNLOAD_FIELD_COPY_PAP_DESC="Set if files of added items will be copied to play and preview folder (in case they can be played or previewed). Items then will be downloadable and previewable or playable." +;[3.0.0 Beta] +COM_PHOCADOWNLOAD_HOT="Hot" +COM_PHOCADOWNLOAD_WILL_BE_CREATED_FROM_TITLE="Will be created from title" +;[3.0.0] +COM_PHOCADOWNLOAD_MAX_LIMIT_DOWNLOAD_PER_FILE_REACHED="You have reached maximum limit of downloads allowed per this file." +COM_PHOCADOWNLOAD_NOT_LOGGED_IN_USERS_NOT_ALLOWED_DOWNLOAD="Please login. Not logged in users are not allowed to download." +COM_PHOCADOWNLOAD_FIELD_MAX_COUNT_USER_DOWNLOADS_DESC="Set maximum count of files user can download. Be aware, 0 (Zero) means, there is no limit. It is limit per file NOT for all downloads. If you set some limit here, anonymous users (guests) are not able to download any file." +COM_PHOCADOWNLOAD_FIELD_MAX_COUNT_USER_DOWNLOADS_LABEL="Maximum Count of downloads per file" +COM_PHOCADOWNLOAD_LOGGING_NOT_ENABLED="Warning! Logging is not enabled at the moment!" +COM_PHOCADOWNLOAD_FIELD_PLAY_OR_PREVIEW_COPY_LABEL="Play or Preview Copy" +COM_PHOCADOWNLOAD_FIELD_PLAY_OR_PREVIEW_COPY_DESC="If yes (Frontend), file which is uploaded by user in fronted will be copied to phocadownloadpap folder so it can be played or previewed. If yes (Backend), then file which is added in File Add feature or in Multiple Add feature in Administration will be copied to phocadownloadpap folder too." +COM_PHOCADOWNLOAD_FIELD_ENABLE_LOGGING_LABEL="Enable Logging" +COM_PHOCADOWNLOAD_FIELD_ENABLE_LOGGING_DESC="Enable or disable logging for downloads, uploads or both. Be aware, logging of downloads and uploads can take a lot of memory in case a lot of downloads or uploads is done on your site. It is recommended to enable it only for short testing period" +COM_PHOCADOWNLOAD_YES_UPLOADS_ONLY="Yes (Uploads only)" +COM_PHOCADOWNLOAD_YES_DOWNLOADS_ONLY="Yes (Downloads only)" +COM_PHOCADOWNLOAD_YES_UPLOADS_DOWNLOADS="Yes (Uploads and Downloads)" +COM_PHOCADOWNLOAD_FIELD_FILE_ICON_MIME_LABEL="File Icon (Extension Mime Type)" +COM_PHOCADOWNLOAD_FIELD_FILE_ICON_MIME_DESC="Enable or disable displaying of file icon by extension mime type (for example: PDF icon will be displayed next to PDF documents). Be aware not all extension mime type icons are available." +COM_PHOCADOWNLOAD_YES_DOWNLOAD_UPLOAD_PARAM="Yes (download and upload parameters)" +COM_PHOCADOWNLOAD_YES_DOWNLOAD_UPLOAD_PARAM_ADMIN="Yes (download and upload parameter in administration only)" +COM_PHOCADOWNLOAD_YES_UPLOAD_PARAM_ADMIN="Yes (only upload parameters in administration)" +COM_PHOCADOWNLOAD_YES_UPLOAD_PARAM="Yes (only upload parameters)" +COM_PHOCADOWNLOAD_YES_DOWNLOAD_PARAM="Yes (only download parameters)" +COM_PHOCADOWNLOAD_IGNORE_FILE_TYPES_CHECK_LABEL="Ignore File Types Checking" +COM_PHOCADOWNLOAD_IGNORE_FILE_TYPES_CHECK_DESC="Set if checking of file types will be ignored. If yes: Allowed File Types (Download), Allowed File Types (Upload), Disallowed File Types (Download), Disallowed File Types (Upload) will be ignored." +COM_PHOCADOWNLOAD_CONFIG_HEAD_DOWNLOADS_LABEL="Downloads" +COM_PHOCADOWNLOAD_CONFIG_HEAD_UPLOADS_LABEL="Uploads" +COM_PHOCADOWNLOAD_FILE_VIEW_LABEL="File View" +COM_PHOCADOWNLOAD_CONFIG_CATEGORY_CATEGORIES_VIEW_LABEL="Categories and Category View" +COM_PHOCADOWNLOAD_IP="IP" +COM_PHOCADOWNLOAD_PAGE="Page" +COM_PHOCADOWNLOAD_RESET_LOG="Reset Log" +COM_PHOCADOWNLOAD_WARNING_RESET_LOG="Are you sure you want to reset (clear) the log?" +COM_PHOCADOWNLOAD_SUCCESS_RESET_LOG_STAT="Log cleared" +COM_PHOCADOWNLOAD_ERROR_RESET_LOG_STAT="Error while clearing log" +COM_PHOCADOWNLOAD_ERROR_SERVER_NOT_ABLE_TO_STORE_FILE_TEMP_FOLDER="Error while uploading file. Server is not able to store this file to Temp folder." +COM_PHOCADOWNLOAD_COUNT="Count" +COM_PHOCADOWNLOAD_LOGGING="Logging" +COM_PHOCADOWNLOAD_UPLOADS="Uploads" +COM_PHOCADOWNLOAD_EDIT_CSS_FILES="Edit CSS Files" +COM_PHOCADOWNLOAD_FIELD_CSS_MENULINK_ID_DESC="Set ID or IDs of menu link (Itemid) where the style will be displayed. Separate each parent ID with comma (,)" +COM_PHOCADOWNLOAD_FIELD_CSS_MENULINK_ID_LABEL="Menu Link ID" +COM_PHOCADOWNLOAD_ERROR_FAILED_TO_SAVE_FILENAME="Error while saving the filename" +COM_PHOCADOWNLOAD_ERROR_SOURCE_FILE_NOT_UNWRITABLE="Error while making the source file unwritable" +COM_PHOCADOWNLOAD_ERROR_SOURCE_FILE_NOT_WRITABLE="Error while saving the file. Source File is not writable." +COM_PHOCADOWNLOAD_STYLE="Style" +COM_PHOCADOWNLOAD_FIELD_CSS_LABEL="Style (CSS Source)" +COM_PHOCADOWNLOAD_FIELD_CSS_DESC="Edit source of the style" +COM_PHOCADOWNLOAD_FIELD_TYPE_DESC="Type of the style" +COM_PHOCADOWNLOAD_FIELD_TYPE_LABEL="Type" +COM_PHOCADOWNLOAD_MAIN="Main" +COM_PHOCADOWNLOAD_FILE_EXISTS="File exists" +COM_PHOCADOWNLOAD_FILE_DOES_NOT_EXIST="File does not exist" +COM_PHOCADOWNLOAD_TYPE="Type" +COM_PHOCADOWNLOAD_CUSTOM_CSS="Custom" +COM_PHOCADOWNLOAD_MAIN_CSS="Main" +COM_PHOCADOWNLOAD_FILTER_SELECT_TYPE="- Select Type -" +COM_PHOCADOWNLOAD_STYLES="Styles" +COM_PHOCADOWNLOAD_FOLDER_NOT_FOUND="Folder not found" +COM_PHOCADOWNLOAD_EDIT_CSS="Edit CSS" +COM_PHOCADOWNLOAD_ERROR_CSS_FOLDER_NOT_FOUND="Custom CSS Folder Not Found" + +COM_PHOCADOWNLOAD_MIRROR_DETAILS="Mirror Details" +COM_PHOCADOWNLOAD_YOUTUBE_OPTIONS="YouTube Options" +COM_PHOCADOWNLOAD_GENERAL_OPTIONS="General Options" +COM_PHOCADOWNLOAD_PUBLISHING_OPTIONS="Publishing Options" +COM_PHOCADOWNLOAD_METADATA_OPTIONS="Metadata Options" +COM_PHOCADOWNLOAD_FILTER_SEARCH_LABEL="Search" +COM_PHOCADOWNLOAD_FILTER_SEARCH_DESC="Search the items" +COM_PHOCADOWNLOAD_LICENCE="Licence" +COM_PHOCADOWNLOAD_PHOCA_NEEDS_YOUR_HELP="Phoca Needs Your Help" +COM_PHOCADOWNLOAD_PLEASE_READ="Please Read" +COM_PHOCADOWNLOAD_USEFUL_TIPS="Useful Tips (Extensions)" +COM_PHOCADOWNLOAD_USEFUL_LINKS="Useful Links" +;[2.1.5] +COM_PHOCADOWNLOAD_UPLOADED_BY_LABEL="Uploaded By" +COM_PHOCADOWNLOAD_UPLOADED_BY_DESC="Set Uploaded By" +COM_PHOCADOWNLOAD_OWNER_LABEL="Owner" +COM_PHOCADOWNLOAD_OWNER_DESC="Set Owner" +;[2.1.2] +COM_PHOCADOWNLOAD_BATCH_OPTIONS_CATEGORIES="Batch process the selected categories" +COM_PHOCADOWNLOAD_PHOCA_DOWNLOAD="Phoca Download" +COM_PHOCADOWNLOAD_INFORMATION="Information" +COM_PHOCADOWNLOAD_FIELD_CATEGORY_LINK_LABEL="Select Category Link" +COM_PHOCADOWNLOAD_FIELD_CATEGORY_LINK_DESC="Select category to link it" +COM_PHOCADOWNLOAD_FIELD_DOWNLOAD_FOLDER_PAP_LABEL="Download Folder (Play, Preview)" +COM_PHOCADOWNLOAD_FIELD_DOWNLOAD_FOLDER_PAP_DESC="Set download folder for play and preview files" +;[2.1.1] +COM_PHOCADOWNLOAD_FIELD_VIDEO_HEIGHT_DV_LABEL="Youtube Height (Detail View)" +COM_PHOCADOWNLOAD_FIELD_VIDEO_HEIGHT_DV_DESC="Set Youtube height for Detail View" +COM_PHOCADOWNLOAD_FIELD_VIDEO_WIDTH_DV_LABEL="Youtube Width (Detail View)" +COM_PHOCADOWNLOAD_FIELD_VIDEO_WIDTH_DV_DESC="Set Youtube width for Detail View" +COM_PHOCADOWNLOAD_FIELD_VIDEO_HEIGHT_CV_LABEL="Youtube Height (Category View)" +COM_PHOCADOWNLOAD_FIELD_VIDEO_HEIGHT_CV_DESC="Set Youtube height for Category View" +COM_PHOCADOWNLOAD_FIELD_VIDEO_WIDTH_CV_LABEL="Youtube Width (Category View)" +COM_PHOCADOWNLOAD_FIELD_VIDEO_WIDTH_CV_DESC="Set Youtube width for Category View" +COM_PHOCADOWNLOAD_GROUP_LABEL_YOUTUBE_DETAILS="Youtube" +COM_PHOCADOWNLOAD_VIDEO_LINK_LABEL="Youtube Link" +COM_PHOCADOWNLOAD_VIDEO_LINK_DESC="Set Youtube link" +COM_PHOCADOWNLOAD_YES_ONLY_MODALBOX="Yes (Only Modalbox - Category View)" +;[2.1.0 Stable] +COM_PHOCADOWNLOAD_SELECT_FILE="Select file" +COM_PHOCADOWNLOAD_FIELD_SELECT_FILE_LABEL="Select file" +COM_PHOCADOWNLOAD_FIELD_SELECT_FILE_DESC="Select display file" +COM_PHOCADOWNLOAD_OVERLIB_WIDTH_DETAIL="Overlib with detail" +;[2.1.0 Beta] +COM_PHOCADOWNLOAD_FILE_VIEW="File View" +COM_PHOCADOWNLOAD_CATEGORY_VIEW="Category View" +COM_PHOCADOWNLOAD_CATEGORIES_VIEW="Categories View" +COM_PHOCADOWNLOAD_PARAMETERS="Parameters" +COM_PHOCADOWNLOAD_STYLES="Styles (CSS)" +COM_PHOCADOWNLOAD_LAYOUT_WARNING="Warning: Parameters are mostly styled by CSS, here you can add or remove different parts of the view. For stylizing them, just check the Phoca Download CSS. Edit the HTML source (HTML source can be displayed by editor feature) Displaying specific layout must be enabled in parameters." +COM_PHOCADOWNLOAD_DISPLAY_SPEC_LAYOUT_LABEL="Display Specific Layout" +COM_PHOCADOWNLOAD_DISPLAY_SPEC_LAYOUT_DESC="Display specific layout - set in Phoca Download administration. Be aware, some parts of the layout needs to be changed in CSS too to display properly." +COM_PHOCADOWNLOAD_CLEAN="Clean" +COM_PHOCADOWNLOAD_YES_OVERLIB="Yes (Overlib)" +COM_PHOCADOWNLOAD_YES_MODAL="Yes (Modal Box)" +COM_PHOCADOWNLOAD_FIELD_DISPLAY_TAGS_LINKS_LABEL="Display Tags" +COM_PHOCADOWNLOAD_FIELD_DISPLAY_TAGS_LINKS_DESC="Display or hide tags" +COM_PHOCADOWNLOAD_YES_CATEGORY_VIEW_BUTTON="Yes (Category View) as Button" +COM_PHOCADOWNLOAD_YES_FILE_VIEW_BUTTON="Yes (File View) as Button" +COM_PHOCADOWNLOAD_YES_CATEGORY_FILE_VIEW_BUTTON="Yes (Category And File View) as Button" +COM_PHOCADOWNLOAD_EXTERNAL_LINK="External Link" +COM_PHOCADOWNLOAD_CATEGORY_LINK="Category Link" +COM_PHOCADOWNLOAD_SEARCH_OUTCOME="Search Outcome" +COM_PHOCADOWNLOAD_FIELD_TAGS_LINKS_LABEL="Tags (Links)" +COM_PHOCADOWNLOAD_FIELD_TAGS_LINKS_DESC="Set if the tags will include a link. If yes, set type of this link" +COM_PHOCADOWNLOAD_AT="at" +COM_PHOCADOWNLOAD_FEATURES="Features" +COM_PHOCADOWNLOAD_CHANGELOG="Changelog" +COM_PHOCADOWNLOAD_NOTES="Notes" +COM_PHOCADOWNLOAD_ERROR_DELETING_ITEM="Error while deleting item" +COM_PHOCADOWNLOAD_SUCCESS_DELETING_ITEM="Item deleted" +COM_PHOCADOWNLOAD_ERROR_UNPUBLISHING_ITEM="Error while unpublishing item" +COM_PHOCADOWNLOAD_ERROR_PUBLISHING_ITEM="Error while publishing item" +COM_PHOCADOWNLOAD_SUCCESS_UNPUBLISHING_ITEM="Item unpublished" +COM_PHOCADOWNLOAD_SUCCESS_PUBLISHING_ITEM="Item published" +COM_PHOCADOWNLOAD_FIELD_DELETE_RIGHTS_LABEL="Delete Rights" +COM_PHOCADOWNLOAD_FIELD_DELETE_RIGHTS_DESC="Set delete rights" +COM_PHOCADOWNLOAD_ERROR_DELETE_CONTAIN_FILE="Category(ies): '%s' cannot be removed as it contains (they contain) Items. There may currently be File(s) within the Category which you must delete first." +COM_PHOCADOWNLOAD_ERROR_DELETE_CONTAIN_CAT="Category(ies): '%s' cannot be removed as it contains (they contain) Subcategories. There may currently be Subcategory(ies) within the Category which you must delete first." +COM_PHOCADOWNLOAD_CATEGORIES_ADDED="Category(ies) added" +COM_PHOCADOWNLOAD_FILES_ADDED="File(s) added" +COM_PHOCADOWNLOAD_CHECK_ALL="Check All" +COM_PHOCADOWNLOAD_WARNING_FILE_SELECTED_SELECT_CATEGORY="File(s) are selected. Category needs to be selected also" +COM_PHOCADOWNLOAD_WARNING_SELECT_FILENAME_OR_FOLDER="Select File or Folder" +COM_PHOCADOWNLOAD_MULTIPLE_ADD="Multiple Add" +COM_PHOCADOWNLOAD_BATCH_OPTIONS_FILES="Batch process the selected files" +;COM_PHOCADOWNLOAD_SUCCESS_COPY_FILE="File(s) copied" +;COM_PHOCADOWNLOAD_ERROR_COPY_FILE="Error while copying file(s)" +COM_PHOCADOWNLOAD_QUICK_COPY="Quick Copy" +COM_PHOCADOWNLOAD_COPY="Copy" +COM_PHOCADOWNLOAD_FORM_SELECT_IMAGE="Select Image" +COM_PHOCADOWNLOAD_FIELD_IMAGE_DOWNLOAD_LABEL="Image" +COM_PHOCADOWNLOAD_FIELD_IMAGE_DOWNLOAD_DESC="Set image for the file" +COM_PHOCADOWNLOAD_FIELD_CATEGORIES_LAYOUT_LABEL="Categories View Layout" +COM_PHOCADOWNLOAD_FIELD_CATEGORIES_LAYOUT_DESC="Set layout for Categories View" +COM_PHOCADOWNLOAD_FIELD_CATEGORY_LAYOUT_LABEL="Category View Layout" +COM_PHOCADOWNLOAD_FIELD_CATEGORY_LAYOUT_DESC="Set layout for Category View" +COM_PHOCADOWNLOAD_FIELD_FILE_LAYOUT_LABEL="File View Layout" +COM_PHOCADOWNLOAD_FIELD_FILE_LAYOUT_DESC="Set layout for File View" +COM_PHOCADOWNLOOAD_CONTROL_PANEL="Control Panel" +COM_PHOCADOWNLOAD_FIELD_FEATURES_DESC="Set Features Text" +COM_PHOCADOWNLOAD_FIELD_FEATURES_LABEL="Features" +COM_PHOCADOWNLOAD_FIELD_CHANGELOG_DESC="Set Changelog Text" +COM_PHOCADOWNLOAD_FIELD_CHANGELOG_LABEL="Changelog" +COM_PHOCADOWNLOAD_FIELD_NOTES_DESC="Set Notes Text" +COM_PHOCADOWNLOAD_FIELD_NOTES_LABEL="Notes" +COM_PHOCADOWNLOAD_FIELD_TAGS_LABEL="Tags" +COM_PHOCADOWNLOAD_FIELD_TAGS_DESC="Select tags" +COM_PHOCADOWNLOAD_NEW_TAG="New Tag" +COM_PHOCADOWNLOAD_EDIT_TAG="Edit Tag" +COM_PHOCADOWNLOAD_FIELD_CATEGORY_LABEL="Link To Category" +COM_PHOCADOWNLOAD_FIELD_CATEGORY_DES="Select category if you want to link this tag to category" +COM_PHOCADOWNLOAD_FIELD_EXT_LINK_TAG_LABEL="Link To External Site" +COM_PHOCADOWNLOAD_FIELD_EXT_LINK_TAG_DESC="Set link to external site if you want to link this tag to some site (include http://)" +COM_PHOCADOWNLOAD_TAG="Tag" +COM_PHOCADOWNLOAD_TAGS="Tags" +COM_PHOCADOWNLOAD_LAYOUT="Layout" +;[2.0.0] +COM_PHOCADOWNLOAD_NUM="Num" +COM_PHOCADOWNLOAD_LIMIT="Limit" +COM_PHOCADOWNLOAD_YOUTUBE_URL="Youtube URL" +COM_PHOCADOWNLOAD_WARNING_SET_YOUTUBE_URL="You must set URL of Youtube video" +COM_PHOCADOWNLOAD_PLAYER_WIDTH="Player Width" +COM_PHOCADOWNLOAD_PLAYER_HEIGHT="Player Height" +COM_PHOCADOWNLOAD_PLAYER_HEIGHT_MP3="Player Height (MP3)" +COM_PHOCADOWNLOAD_WARNING_PLAYER_SIZE="Only size of Popup Window (Modal Box) can be set here, size of player needs to be set in Parameters of Phoca Download Component" +COM_PHOCADOWNLOAD_PREVIEW_WIDTH="Preview Width" +COM_PHOCADOWNLOAD_PREVIEW_HEIGHT="Preview Height" +COM_PHOCADOWNLOAD_YOU_MUST_SELECT_FILE="You must select a file" +COM_PHOCADOWNLOAD_YOU_MUST_SELECT_CATEGORY="You must select a category" +COM_PHOCADOWNLOAD_TARGET="Target" +COM_PHOCADOWNLOAD_TARGET_SELF="Target _self" +COM_PHOCADOWNLOAD_TARGET_BLANK="Target _blank" +COM_PHOCADOWNLOAD_TARGET_TOP="Target _top" +COM_PHOCADOWNLOAD_TARGET_PARENT="Target _parent" +COM_PHOCADOWNLOAD_INSERT_CODE="Insert Code" +COM_PHOCADOWNLOAD_BACK="Vissza" +COM_PHOCADOWNLOAD_FILELIST="File List" +COM_PHOCADOWNLOAD_YOUTUBE_VIDEO="Youtube Video" +COM_PHOCADOWNLOAD_PLAY_FILE_LINK="Play File (Link)" +COM_PHOCADOWNLOAD_PLAY_FILE_DIRECT="Play File (Direct)" +COM_PHOCADOWNLOAD_PREVIEW_FILE_LINK="Preview File (Link)" +COM_PHOCADOWNLOAD_LINK_TO_FILE="Link To File" +COM_PHOCADOWNLOAD_LINK_TO_CATEGORY="Link To Category" +COM_PHOCADOWNLOAD_LINK_TO_CATEGORIES="Link To Categories" +COM_PHOCADOWNLOAD_SELECT_TYPE="Select Type" +COM_PHOCADOWNLOAD_UPLOADED_BY="Uploaded by" +COM_PHOCADOWNLOAD_FIELD_ENABLE_CACHE_LABEL="Enable Cache" +COM_PHOCADOWNLOAD_FIELD_ENABLE_CACHE_DESC="Enable cache if it is enabled in Joomla! Global Configuration" +;[2.0.0RC3] +COM_PHOCADOWNLOAD_USER_LANG="User's Language" +COM_PHOCADOWNLOAD_SITE_LANG="Site's Language" +COM_PHOCADOWNLOAD_FIELD_USER_UCP_LANG_LABEL="User Language" +COM_PHOCADOWNLOAD_FIELD_USER_UCP_LANG_DESC="Set which language will be set while creating category or uploading image in UCP" +COM_PHOCADOWNLOAD_NO_RIGHTS_ACCESS_CATEGORY_FILE="You have no rights to access file in this category" +COM_PHOCADOWNLOAD_FIELD_SELECT_CATEGORY_LABEL="Select Category" +COM_PHOCADOWNLOAD_FIELD_SELECT_CATEGORY_DESC="Select category" +COM_PHOCADOWNLOAD_ERROR_FB_APP_ID_EMPTY="Facebook Application ID is empty" +COM_PHOCADOWNLOAD_FIELD_FB_COMMENT_APP_ID_LABEL="Facebook comments application ID" +COM_PHOCADOWNLOAD_FIELD_FB_COMMENT_APP_ID_DESC="Set Facebook Comments Application ID (ID of your created application in Facebook)" +COM_PHOCADOWNLOAD_FACEBOOK_COMMENTS_WIDTH_LABEL="Facebook Comments Width" +COM_PHOCADOWNLOAD_FACEBOOK_COMMENTS_WIDTH_DESC="Set Facebook comments box width" +COM_PHOCADOWNLOAD_FACEBOOK_FIELD_COMMENT_LANG_LABEL="Facebook Language" +COM_PHOCADOWNLOAD_FACEBOOK_FIELD_COMMENT_LANG_DESC="Set Facebook language" +COM_PHOCADOWNLOAD_FACEBOOK_FIELD_COMMENT_COUNT_LABEL="Comments Count" +COM_PHOCADOWNLOAD_FACEBOOK_FIELD_COMMENT_COUNT_DESC="Set count of comments displayed in comment box" +COM_PHOCADOWNLOAD_FACEBOOK="Facebook" +COM_PHOCADOWNLOAD_STARS_OUT_OF="stars out of" +COM_PHOCADOWNLOAD_FIELD_LANGUAGE_FILE_DESC="The language that the file is assigned to." +COM_PHOCADOWNLOAD_FIELD_LANGUAGE_CATEGORY_DESC="The language that the category is assigned to." +;[2.0.0RC2] +COM_PHOCADOWNLOAD_FIELD_DELETE_EXISTING_FILES_DESC="If yes then the file stored on server will be deleted in case the file will be deleted from Phoca Download" +COM_PHOCADOWNLOAD_FIELD_DELETE_EXISTING_FILES_LABEL="Delete Existing Files" +COM_PHOCADOWNLOAD_FIELD_OVERWRITE_EXISTING_FILES_DESC="Set if uploaded files should overwrite existing files on the server" +COM_PHOCADOWNLOAD_FIELD_OVERWRITE_EXISTING_FILES_LABEL="Overwrite Existing Files" +COM_PHOCADOWNLOAD_REPORT="Report" +COM_PHOCADOWNLOAD_FIELD_REPORT_LINK_GUESTBOOK_ID_LABEL="Guestbook ID (Report)" +COM_PHOCADOWNLOAD_FIELD_REPORT_LINK_GUESTBOOK_ID_DESC="Set guestbook id (guestbook from Phoca Guestbook component) in case the report function is active" +COM_PHOCADOWNLOAD_FIELD_DISPLAY_REPORT_LINK_LABEL="Display Report Link" +COM_PHOCADOWNLOAD_FIELD_DISPLAY_REPORT_LINK_DESC="Display or hide report link. This link will run Phoca Guestbook in Report Mode. There users can report files. Phoca Guestbook needs to be installed and the report function enabled in guestbook settings to run this feature." +COM_PHOCADOWNLOAD_FIELD_DISPLAY_MIRROR_LINKS_LABEL="Display Mirror Links" +COM_PHOCADOWNLOAD_FIELD_DISPLAY_MIRROR_LINKS_DESC="Display or hide mirror links" +COM_PHOCADOWNLOAD_GROUP_LABEL_MIRROR_DETAILS="Mirror Details" +COM_PHOCADOWNLOAD_OPEN_WINDOW_BLANK="Open in new window (_blank)" +COM_PHOCADOWNLOAD_OPEN_WINDOW_PARENT="Open in parent window/frame (_parent)" +COM_PHOCADOWNLOAD_OPEN_WINDOW_SELF="Open in this window/frame (_self)" +COM_PHOCADOWNLOAD_OPEN_WINDOW_TOP="Open in top frame (replaces all frames) (_top)" +COM_PHOCADOWNLOAD_MIRROR_LINK_LINK_LABEL="Link" +COM_PHOCADOWNLOAD_MIRROR_LINK_TARGET_LABEL="Target" +COM_PHOCADOWNLOAD_MIRROR_LINK_TITLE_LABEL="Title (Link 1)" +COM_PHOCADOWNLOAD_FIELD_MIRROR_LINK_LINK_DESC="Set first mirror link (Inlcude the protocol: e.g. http:// or https://)" +COM_PHOCADOWNLOAD_FIELD_MIRROR_LINK_TARGET_DESC="Set target for first mirror link" +COM_PHOCADOWNLOAD_FIELD_MIRROR_LINK_TITLE_DESC="Set title for first mirror link" +COM_PHOCADOWNLOAD_MIRROR_LINK_LINK2_LABEL="Link 2" +COM_PHOCADOWNLOAD_MIRROR_LINK_TARGET2_LABEL="Target" +COM_PHOCADOWNLOAD_MIRROR_LINK_TITLE2_LABEL="Title (Link 2)" +COM_PHOCADOWNLOAD_FIELD_MIRROR_LINK_LINK2_DESC="Set second mirror link (Inlcude the protocol: e.g. http:// or https://)" +COM_PHOCADOWNLOAD_FIELD_MIRROR_LINK_TARGET2_DESC="Set target for second mirror link" +COM_PHOCADOWNLOAD_FIELD_MIRROR_LINK_TITLE2_DESC="Set title for second mirror link" +COM_PHOCADOWNLOAD_YES_CATEGORY_VIEW="Yes (Category View)" +COM_PHOCADOWNLOAD_YES_FILE_VIEW="Yes (FileView)" +COM_PHOCADOWNLOAD_YES_CATEGORY_FILE_VIEW="Yes (Category And File View)" +COM_PHOCADOWNLOAD_FIELD_DISPLAY_RATING_FILE_DESC="Display or hide rating for files" +COM_PHOCADOWNLOAD_FIELD_DISPLAY_RATING_FILE_LABEL="Display Rating (File)" +COM_PHOCADOWNLOAD_CONFIG_RATING_SETTINGS_LABEL="Rating Settings" +COM_PHOCADOWNLOAD_ERROR_FILE_NOT_EXISTS="File does not exist" +COM_PHOCADOWNLOAD_RATING_ALREADY_RATED_FILE="You have already rated this file" +COM_PHOCADOWNLOAD_SUCCESS_RATING_FILE="Thank you for your rating" +COM_PHOCADOWNLOAD_ERROR_RATING_FILE="Error while rating the file" +COM_PHOCADOWNLOAD_ERROR_WRONG_RATING="Error while rating - wrong format added" +COM_PHOCADOWNLOAD_ERROR_REQUESTING_RATING="Error while requesting rating" +COM_PHOCADOWNLOAD_VOTE="vote" +COM_PHOCADOWNLOAD_VOTES="votes" +COM_PHOCADOWNLOAD_FILE_RATING="File Rating" +COM_PHOCADOWNLOAD_RATING="Rating" +COM_PHOCADOWNLOAD_STAR_OUT_OF="star out of" +COM_PHOCADOWNLOAD_ONLY_REGISTERED_LOGGED_RATE_FILE="Only registered and logged in users can rate this file" +;[2.0.0 RC] +COM_PHOCADOWNLOAD_FIELD_DISALLOWED_FILE_TYPES_UPLOAD_DESC="Set disallowed file types for frontend upload." +COM_PHOCADOWNLOAD_FIELD_ALLOWED_FILE_TYPES_UPLOAD_DESC="Set allowed file types for frontend upload. Default list of filetypes is not complete and should be modified to fit your needs." +COM_PHOCADOWNLOAD_FIELD_SHOW_PAGINATION_LABEL="Display Pagination" +COM_PHOCADOWNLOAD_FIELD_SHOW_PAGINATION_DESC="Display or hide pagination" +COM_PHOCADOWNLOAD_FIELD_SHOW_PAGINATION_LIMIT_LABEL="Display Select Box - Pagination" +COM_PHOCADOWNLOAD_FIELD_SHOW_PAGINATION_LIMIT_DESC="Display or hide select box for pagination" +COM_PHOCADOWNLOAD_HIDE="Hide" +COM_PHOCADOWNLOAD_DISPLAY="Display" +;[2.0.0 BETA1] +COM_PHOCADOWNLOAD_FIELD_DISPLAY_MAIN_CAT_DESC_LABEL="Display Main Category Description" +COM_PHOCADOWNLOAD_FIELD_DISPLAY_MAIN_CAT_DESC_DESC="Set if category description should be displayed in Categories View - Description will be displayed instead of subcategories" +COM_PHOCADOWNLOAD_ERROR_CATEGORY_NOT_SELECTED="Category was not selected" +COM_PHOCADOWNLOAD_FIELD_REGISTERED_ACCESS_LEVEL_LABEL="Access Level - Registered Users" +COM_PHOCADOWNLOAD_FIELD_REGISTERED_ACCESS_LEVEL_DESC="Set access levels for registered users. Some actions in frontend can be done by registered users only. Set which access level group will be regarded as registered group." +COM_PHOCADOWNLOAD_FIELD_ENABLE_ICONV_ALIAS_LABEL="Iconv Alias" +COM_PHOCADOWNLOAD_FIELD_ENABLE_ICONV_ALIAS_DESC="Enable or disable creating of alias with help of iconv function" +COM_PHOCADOWNLOAD_UPGRADE="Upgrade" +COM_PHOCADOWNLOAD_INSTALL="Install" +; For Translaters - set your own data here +COM_PHOCADOWNLOAD_TRANSLATION="Translation" +COM_PHOCADOWNLOAD_TRANSLATION_LANGUAGE_TAG="English" +COM_PHOCADOWNLOAD_TRANSLATER="Jan Pavelka" +COM_PHOCADOWNLOAD_TRANSLATION_SUPPORT_URL="www.phoca.cz" +; End Translaters section - - - - - - - - +COM_PHOCADOWNLOAD_ACCESS="Access" +COM_PHOCADOWNLOAD_ACTIVE="Active" +COM_PHOCADOWNLOAD_ADD_FILES="Add Files" +COM_PHOCADOWNLOAD_ADD_FILES_TO_UPLOAD_QUEUE_AND_CLICK_START_BUTTON="Add files to the upload queue and click the start button." +COM_PHOCADOWNLOAD_ADD_TEXT="Text" +COM_PHOCADOWNLOAD_ALL="All" +COM_PHOCADOWNLOAD_ALL_APPROVED="All files authorized" +COM_PHOCADOWNLOAD_ALL_REGISTERED_USERS="All registered users" +COM_PHOCADOWNLOAD_ALWAYS="Always" +COM_PHOCADOWNLOAD_AND_LEFT_FOR_DESCRIPTION="and left for description" +COM_PHOCADOWNLOAD_APPROVE="Authorize" +COM_PHOCADOWNLOAD_APPROVED="Authorized" +COM_PHOCADOWNLOAD_APPROVE_ALL="Authorize All" +COM_PHOCADOWNLOAD_APPROVE_ALL_ERROR="Error while authorizing all files" +COM_PHOCADOWNLOAD_APPROVE_ITEM="Authorize item" +COM_PHOCADOWNLOAD_AUTHOR="Author" +COM_PHOCADOWNLOAD_AUTHOR_EMAIL="Author's Email" +COM_PHOCADOWNLOAD_AUTHOR_WEBSITE="Author's Website" +COM_PHOCADOWNLOAD_BLANK="Blank" +COM_PHOCADOWNLOAD_GREY2="Grey 2" +COM_PHOCADOWNLOAD_BOTTOM="Bottom" +COM_PHOCADOWNLOAD_BOTTOM_AND_OVERLIB="Bottom and Overlib" +COM_PHOCADOWNLOAD_BOTTOM_WITH_DETAIL_AND_OVERLIB="Bottom with detail and Overlib" +COM_PHOCADOWNLOAD_CATEGORIES="Categories" +COM_PHOCADOWNLOAD_CATEGORY="Category" +COM_PHOCADOWNLOAD_CHARACTERS_WRITTEN="Characters written" +COM_PHOCADOWNLOAD_CHECK_FOR_UPDATE="Check For Update" +COM_PHOCADOWNLOAD_CHECK_PERMISSIONS_OWNERSHIP="Check permissions and ownership of files and folders" +COM_PHOCADOWNLOAD_CLOSE="Close" +COM_PHOCADOWNLOAD_CONFIGURATION="Phoca Download Configuration" +COM_PHOCADOWNLOAD_CONFIG_COMMENTS_SETTINGS_LABEL="Comments Settings" +COM_PHOCADOWNLOAD_CONFIG_GENERAL_SETTINGS_LABEL="General Settings" +COM_PHOCADOWNLOAD_CONFIG_HEAD_DISPLAY_LABEL="Display" +COM_PHOCADOWNLOAD_CONFIG_HEAD_GENERAL_LABEL="General" +COM_PHOCADOWNLOAD_CONFIG_HEAD_USER_UPLOAD_LABEL="User Upload" +COM_PHOCADOWNLOAD_CONFIG_THEME_SETTINGS_LABEL="Theme Settings" +COM_PHOCADOWNLOAD_CONTROL_PANEL="Control Panel" +COM_PHOCADOWNLOAD_COPYRIGHT="Copyright" +COM_PHOCADOWNLOAD_COUNT_NOT_UPLOADED_FILE="Count of not uploaded (failed) files" +COM_PHOCADOWNLOAD_COUNT_UPLOADED_FILE="Count of uploaded files" +COM_PHOCADOWNLOAD_COUNT_USER_FILES_APPROVED="Count (authorized files)" +COM_PHOCADOWNLOAD_COUNT_USER_FILES_NOT_APPROVED="Count (not authorized files)" +COM_PHOCADOWNLOAD_CREATE_FOLDER="Create Folder" +COM_PHOCADOWNLOAD_DATABASE_TIME="Database" +COM_PHOCADOWNLOAD_DATE="Dátum" +COM_PHOCADOWNLOAD_DATE_ASC="Date Ascending" +COM_PHOCADOWNLOAD_DATE_DESC="Date Descending" +COM_PHOCADOWNLOAD_DATE_UPLOAD="Upload Date" +COM_PHOCADOWNLOAD_DEFAULT="Default" +COM_PHOCADOWNLOAD_DELETE="Törlés" +COM_PHOCADOWNLOAD_DESCRIPTION="Megjegyzés" +COM_PHOCADOWNLOAD_DETAILS="Details" +COM_PHOCADOWNLOAD_DISPLAY_NUM="Elemek" +COM_PHOCADOWNLOAD_DOT="dot" +COM_PHOCADOWNLOAD_DOWNLOAD="Letöltés" +COM_PHOCADOWNLOAD_DOWNLOAD_AS_SKP="Skp letöltése" +COM_PHOCADOWNLOAD_DOWNLOADS="Letöltések" +COM_PHOCADOWNLOAD_DRAG_FILES_HERE="Drag Files Here" +COM_PHOCADOWNLOAD_EDIT="Edit" +COM_PHOCADOWNLOAD_EDIT_CATEGORY="Edit Category" +COM_PHOCADOWNLOAD_EDIT_FILE="Edit File" +COM_PHOCADOWNLOAD_EMAIL="Email" +COM_PHOCADOWNLOAD_ERROR="Error" +COM_PHOCADOWNLOAD_ERROR_APPROVE_ALL="Error while authorizing all files" +COM_PHOCADOWNLOAD_ERROR_CONTROLLER_MANAGER_NOT_SET="Error while creating folder - Manager not set" +COM_PHOCADOWNLOAD_ERROR_FILE_UPLOADED="File not uploaded" +COM_PHOCADOWNLOAD_ERROR_FOLDER_CREATING="Error while creating folder" +COM_PHOCADOWNLOAD_ERROR_FOLDER_UPLOAD_NOT_EXISTS="Folder does not exist or it is not accessible" +COM_PHOCADOWNLOAD_ERROR_MOVE_UPLOADED_FILE="Failed to move uploaded file" +COM_PHOCADOWNLOAD_ERROR_NO_ABS_FILE="File not found on server" +COM_PHOCADOWNLOAD_ERROR_NO_CORRECT_FILE_TO_PLAY_FOUND="No correct file for playing found" +COM_PHOCADOWNLOAD_ERROR_NO_DB_FILE="File info not found in database" +COM_PHOCADOWNLOAD_ERROR_NO_DB_RESULT="Problems with database" +COM_PHOCADOWNLOAD_ERROR_NO_FILE_TO_PLAY_FOUND="No file for playing found" +COM_PHOCADOWNLOAD_ERROR_OPEN_INPUT_STREAM="Failed to open input stream" +COM_PHOCADOWNLOAD_ERROR_OPEN_OUTPUT_STREAM="Failed to open output stream" +COM_PHOCADOWNLOAD_ERROR_RESET_USER_STAT="Error while resetting user statistics" +COM_PHOCADOWNLOAD_ERROR_UNABLE_TO_MOVE_FILE="Unable to move file" +COM_PHOCADOWNLOAD_ERROR_UNABLE_TO_UPLOAD_FILE="Unable to upload file" +COM_PHOCADOWNLOAD_ERROR_UPLOAD_MANAGER_NOT_SET="Error while uploading - Manager not set" +COM_PHOCADOWNLOAD_ERROR_WHILE_DOWNLOADING_FILE="Error while downloading file" +COM_PHOCADOWNLOAD_EXPERTS_ONLY_LABEL="Experts Only!" +COM_PHOCADOWNLOAD_EXPIRED="Expired" +COM_PHOCADOWNLOAD_FIELD_ABSOLUTE_PATH_DESC="Set absolute path of Phoca Download folder (this can be path outside the public_html). Be aware, this path must exist and the folder and possible subfolders need to be created manually. If the path is outside the public_html the files cannot be previewed or played in browser." +COM_PHOCADOWNLOAD_FIELD_ABSOLUTE_PATH_LABEL="Absolute Path" +COM_PHOCADOWNLOAD_FIELD_ACCESS_RIGHTS_DESC="Set access rights" +COM_PHOCADOWNLOAD_FIELD_ACCESS_RIGHTS_LABEL="Access Rights" +COM_PHOCADOWNLOAD_FIELD_ALIAS_DESC="Set alias" +COM_PHOCADOWNLOAD_FIELD_ALIAS_LABEL="Alias" +COM_PHOCADOWNLOAD_FIELD_ALLOWED_FILE_TYPES_DOWNLOAD_DESC="Set allowed file types for frontend download. Default list of filetypes is not complete and should be modified to fit your needs." +COM_PHOCADOWNLOAD_FIELD_ALLOWED_FILE_TYPES_DOWNLOAD_LABEL="Allowed File Types (Download)" +COM_PHOCADOWNLOAD_FIELD_ALLOWED_FILE_TYPES_UPLOAD_LABEL="Allowed File Types (Upload)" +COM_PHOCADOWNLOAD_FIELD_APPROVED_DESC="Set if the file will be authorized or unathorized" +COM_PHOCADOWNLOAD_FIELD_APPROVED_LABEL="Authorized" +COM_PHOCADOWNLOAD_FIELD_AUTHOR_DESC="Set Author of the file" +COM_PHOCADOWNLOAD_FIELD_AUTHOR_EMAIL_DESC="Set Author's email" +COM_PHOCADOWNLOAD_FIELD_AUTHOR_EMAIL_LABEL="Author's Email" +COM_PHOCADOWNLOAD_FIELD_AUTHOR_LABEL="Author" +COM_PHOCADOWNLOAD_FIELD_AUTHOR_URL_DESC="Set Author's webstie" +COM_PHOCADOWNLOAD_FIELD_AUTHOR_URL_LABEL="Author's Website" +COM_PHOCADOWNLOAD_FIELD_BUTTON_STYLE_DESC="Set button style" +COM_PHOCADOWNLOAD_FIELD_BUTTON_STYLE_LABEL="Button Style" +COM_PHOCADOWNLOAD_FIELD_CATEGORY_DESC="Select Category" +COM_PHOCADOWNLOAD_FIELD_CATEGORY_LABEL="Category" +COM_PHOCADOWNLOAD_FIELD_CATEGORY_ORDERING_DESC="Set category ordering" +COM_PHOCADOWNLOAD_FIELD_CATEGORY_ORDERING_LABEL="Category Ordering" +COM_PHOCADOWNLOAD_FIELD_CATEGORY_VIEW_PAGINATION_DESC="Set pagination values for Category View (file list). Separate each pagination value with comma (,)" +COM_PHOCADOWNLOAD_FIELD_CATEGORY_VIEW_PAGINATION_LABEL="Pagination (Category View)" +COM_PHOCADOWNLOAD_FIELD_CONFIRM_LICENSE_DESC="Select license for this file. If some license will be selected, file will be not downloaded after clicking on Download button, but the license text will be displayed. This text must be confirmed by user who wants to dowload the file." +COM_PHOCADOWNLOAD_FIELD_CONFIRM_LICENSE_LABEL="Confirm license" +COM_PHOCADOWNLOAD_FIELD_DATE_DESC="Set date" +COM_PHOCADOWNLOAD_FIELD_DATE_LABEL="Date" +COM_PHOCADOWNLOAD_FIELD_DEFAULT_VALUE_PAGINATION_DESC="Set default value for pagination which can be displayed in Category View (file list)" +COM_PHOCADOWNLOAD_FIELD_DEFAULT_VALUE_PAGINATION_LABEL="Pagination Default Value" +COM_PHOCADOWNLOAD_FIELD_DESCRIPTION_DESC="Set description. This will be displayed in Categories View" +COM_PHOCADOWNLOAD_FIELD_DESCRIPTION_LABEL="Description" +COM_PHOCADOWNLOAD_FIELD_DIRECT_LINK_DESC="If direct link will be checked, Downlod button will link directly to the file. It means the file will be handled by browser (e.g. MP3 will be not downloaded but played). This option should be selected in case there are problems with downloading files from the server." +COM_PHOCADOWNLOAD_FIELD_DIRECT_LINK_LABEL="Direct Link" +COM_PHOCADOWNLOAD_FIELD_DISALLOWED_FILE_TYPES_DOWNLOAD_DESC="Set disallowed file types for frontend download." +COM_PHOCADOWNLOAD_FIELD_DISALLOWED_FILE_TYPES_DOWNLOAD_LABEL="Disallowed File Types (Download)" +COM_PHOCADOWNLOAD_FIELD_DISALLOWED_FILE_TYPES_UPLOAD_LABEL="Disallowed File Types (Upload)" +COM_PHOCADOWNLOAD_FIELD_DISPLAY_CATEGORY_COMMENTS_DESC="Set if category comments should be displayed or not" +COM_PHOCADOWNLOAD_FIELD_DISPLAY_CATEGORY_COMMENTS_LABEL="Display Category Comments" +COM_PHOCADOWNLOAD_FIELD_DISPLAY_DATE_TYPE_DESC="Set date type" +COM_PHOCADOWNLOAD_FIELD_DISPLAY_DATE_TYPE_LABEL="Display Date Type" +COM_PHOCADOWNLOAD_FIELD_DISPLAY_DESCRIPTION_DESC="Display or hide description" +COM_PHOCADOWNLOAD_FIELD_DISPLAY_DESCRIPTION_LABEL="Display Description" +COM_PHOCADOWNLOAD_FIELD_DISPLAY_DETAIL_BUTTON_DESC="Display or hide detail button" +COM_PHOCADOWNLOAD_FIELD_DISPLAY_DETAIL_BUTTON_LABEL="Display Detail Button" +COM_PHOCADOWNLOAD_FIELD_DISPLAY_DOWNLOADS_DESC="Display or hide the count of downloads" +COM_PHOCADOWNLOAD_FIELD_DISPLAY_DOWNLOADS_LABEL="Display Downloads" +COM_PHOCADOWNLOAD_FIELD_DISPLAY_FILE_COMMENTS_DESC="Set if file comments should be displayed or not" +COM_PHOCADOWNLOAD_FIELD_DISPLAY_FILE_COMMENTS_LABEL="Display File Comments" +COM_PHOCADOWNLOAD_FIELD_DISPLAY_FILE_VIEW_DESC="Enable or disable File View before download a file" +COM_PHOCADOWNLOAD_FIELD_DISPLAY_FILE_VIEW_LABEL="Display File View" +COM_PHOCADOWNLOAD_FIELD_DISPLAY_HOT_ICON_DESC="Set the number of hits (downloads). After reaching this number of downloads HOT icon will be displayed for the file, use zero for not displaying the icon" +COM_PHOCADOWNLOAD_FIELD_DISPLAY_HOT_ICON_LABEL="Display Hot Icon" +COM_PHOCADOWNLOAD_FIELD_DISPLAY_INACCESSIBLE_FILE_DESC="If the file will be inaccessible for e.g. not logged in users, it can be displayed for them. It means users will see the file but by clicking on the download button they will be redirected to login form." +COM_PHOCADOWNLOAD_FIELD_DISPLAY_INACCESSIBLE_FILE_LABEL="Display Inaccessible file" +COM_PHOCADOWNLOAD_FIELD_DISPLAY_MOST_DOWNLOAD_FILES_DESC="Display Most Download Files in Categories View" +COM_PHOCADOWNLOAD_FIELD_DISPLAY_MOST_DOWNLOAD_FILES_LABEL="Display Most Download Files" +COM_PHOCADOWNLOAD_FIELD_DISPLAY_NEW_ICON_DESC="Set the number of days. During these days NEW icon will be displayed for the file, use zero for not displaying the icon" +COM_PHOCADOWNLOAD_FIELD_DISPLAY_NEW_ICON_LABEL="Display New Icon" +COM_PHOCADOWNLOAD_FIELD_DISPLAY_NUM_FILES_CATEGORIES_VIEW_DESC="Display or hide number of files (Categories View)" +COM_PHOCADOWNLOAD_FIELD_DISPLAY_NUM_FILES_CATEGORIES_VIEW_HEADER_DESC="Display or hide number of files (Categories View - Header)" +COM_PHOCADOWNLOAD_FIELD_DISPLAY_NUM_FILES_CATEGORIES_VIEW_HEADER_LABEL="Display Number of Files (Categories View - Header)" +COM_PHOCADOWNLOAD_FIELD_DISPLAY_NUM_FILES_CATEGORIES_VIEW_LABEL="Display Number of Files (Categories View)" +COM_PHOCADOWNLOAD_FIELD_DISPLAY_PLAY_BUTTON_DESC="Display or hide play button" +COM_PHOCADOWNLOAD_FIELD_DISPLAY_PLAY_BUTTON_LABEL="Display Play Button" +COM_PHOCADOWNLOAD_FIELD_DISPLAY_PREVIEW_BUTTON_DESC="Display or hide preview button" +COM_PHOCADOWNLOAD_FIELD_DISPLAY_PREVIEW_BUTTON_LABEL="Display Preview Button" +COM_PHOCADOWNLOAD_FIELD_DISPLAY_UP_ICON_DESC="Display or hide up icon - icon back to category or back to categories view" +COM_PHOCADOWNLOAD_FIELD_DISPLAY_UP_ICON_LABEL="Display Up Icon" +COM_PHOCADOWNLOAD_FIELD_DOWNLOADS_DESC="Set Dowloads" +COM_PHOCADOWNLOAD_FIELD_DOWNLOADS_LABEL="Downloads" +COM_PHOCADOWNLOAD_FIELD_DOWNLOAD_FOLDER_DESC="Set download folder. If absolute path will be set, this parameter will be ignored. Be aware, the folder set in the parameter must exist on the server." +COM_PHOCADOWNLOAD_FIELD_DOWNLOAD_FOLDER_LABEL="Download Folder" +COM_PHOCADOWNLOAD_FIELD_ENABLE_APPROVE_USERFILE_DESC="If Yes, files will be uploaded as not authorized and must be authorized by administrator. If No, files will be uploaded as authorized" +COM_PHOCADOWNLOAD_FIELD_ENABLE_APPROVE_USERFILE_LABEL="Enable User File Authorization" +COM_PHOCADOWNLOAD_FIELD_ENABLE_MU_ADMIN_DESC="Enable or disable multiple upload feature for administration" +COM_PHOCADOWNLOAD_FIELD_ENABLE_MU_ADMIN_LABEL="Enable Multiple Upload (Administration)" +COM_PHOCADOWNLOAD_FIELD_ENABLE_PLUGIN_QUERY_DESC="Set if Plugin can modify SQL query (Experts only!)" +COM_PHOCADOWNLOAD_FIELD_ENABLE_PLUGIN_QUERY_LABEL="Enable Plugin Query" +COM_PHOCADOWNLOAD_FIELD_ENABLE_USER_STAT_DESC="Enable or disable user statistics" +COM_PHOCADOWNLOAD_FIELD_ENABLE_USER_STAT_LABEL="Enable User Statistics" +COM_PHOCADOWNLOAD_FIELD_EXTERNAL_DOWNLOAD_LINK_DESC="Select if the external download link will have attribute TARGET=_self or TARGET=_blank" +COM_PHOCADOWNLOAD_FIELD_EXTERNAL_DOWNLOAD_LINK_LABEL="External Download Link" +COM_PHOCADOWNLOAD_FIELD_EXTERNAL_LINK_DESC="If the file is stored on external server, paste the external link here. The form field 'Filename' must also be filled (paste the whole link to the file into the form field 'External file' and only the name of the file into the form field 'Filename'). If you set the form field 'Direct Link' (see above) to 'Yes', the external link will be directly accessed (without checking the rights or saving statistics). If you set the form field 'Direct Link' to 'No', internal site will be accessed - statistics will be saved, file will be checked for access rights and then the site will be redirected to the external link (be aware, if the file is public on external server, it cannot be protected by Phoca Download there). Be aware, internal site will be not accessed in File View while clicking on Submit (Download) button." +COM_PHOCADOWNLOAD_FIELD_EXTERNAL_LINK_LABEL="External Link" +COM_PHOCADOWNLOAD_FIELD_FILENAME_DESC="Set or select filename" +COM_PHOCADOWNLOAD_FIELD_FILENAME_LABEL="Filename" +COM_PHOCADOWNLOAD_FIELD_FILENAME_OR_NAME_LABEL="Filename or Title" +COM_PHOCADOWNLOAD_FIELD_FILENAME_OR_NAME_LABEL_DESC="Display Filename or Title" +COM_PHOCADOWNLOAD_FIELD_FILEPLAY_DESC="Set or select file which will be played." +COM_PHOCADOWNLOAD_FIELD_FILEPLAY_LABEL="File - Play" +COM_PHOCADOWNLOAD_FIELD_FILEPREVIEW_DESC="Set or select file which will be previewed" +COM_PHOCADOWNLOAD_FIELD_FILEPREVIEW_LABEL="File - Preview" +COM_PHOCADOWNLOAD_FIELD_FILE_ICON_SIZE_DESC="Set size of file icon" +COM_PHOCADOWNLOAD_FIELD_FILE_ICON_SIZE_LABEL="File Icon Size" +COM_PHOCADOWNLOAD_FIELD_FILE_ICON_SIZE_MD_DESC="Set size of file icon for most downloaded files" +COM_PHOCADOWNLOAD_FIELD_FILE_ICON_SIZE_MD_LABEL="File Icon Size (Most Downloaded Files)" +COM_PHOCADOWNLOAD_FIELD_FILE_ORDERING_DESC="Set file ordering" +COM_PHOCADOWNLOAD_FIELD_FILE_ORDERING_LABEL="File Ordering" +COM_PHOCADOWNLOAD_FIELD_FINISH_PUBLISHING_DESC="Set finish publishing date" +COM_PHOCADOWNLOAD_FIELD_FINISH_PUBLISHING_LABEL="Finish Publishing" +COM_PHOCADOWNLOAD_FIELD_HITS="Hits" +COM_PHOCADOWNLOAD_FIELD_HITS_DESC="Hits" +COM_PHOCADOWNLOAD_FIELD_ICON_DESC="Set icon for the file" +COM_PHOCADOWNLOAD_FIELD_ICON_LABEL="Icon" +COM_PHOCADOWNLOAD_FIELD_ICON_SPEC1_DESC="Set first specific icon for the file, will be displayed after filename" +COM_PHOCADOWNLOAD_FIELD_ICON_SPEC1_LABEL="Specific Icon (1)" +COM_PHOCADOWNLOAD_FIELD_ICON_SPEC2_DESC="Set first specific icon for the file, will be displayed after filename" +COM_PHOCADOWNLOAD_FIELD_ICON_SPEC2_LABEL="Specific Icon (2)" +COM_PHOCADOWNLOAD_FIELD_JCONFIG_PERMISSIONS_DESC="Permissions" +COM_PHOCADOWNLOAD_FIELD_JCONFIG_PERMISSIONS_LABEL="Permissions" +COM_PHOCADOWNLOAD_FIELD_LICENSE_BOX_HEIGHT_DESC="Set height of license box" +COM_PHOCADOWNLOAD_FIELD_LICENSE_BOX_HEIGHT_LABEL="License Box Height" +COM_PHOCADOWNLOAD_FIELD_LICENSE_DESC="Set license of the file, this is only information about the license, if you want that license text needs to be confirmed, you should fill the form field 'Confirm License'" +COM_PHOCADOWNLOAD_FIELD_LICENSE_LABEL="License" +COM_PHOCADOWNLOAD_FIELD_LICENSE_TEXT_DESC="Set license text" +COM_PHOCADOWNLOAD_FIELD_LICENSE_TEXT_LABEL="License Text" +COM_PHOCADOWNLOAD_FIELD_LICENSE_URL_DESC="Set URL to license. URL to site where is described the license of the file" +COM_PHOCADOWNLOAD_FIELD_LICENSE_URL_LABEL="License link" +COM_PHOCADOWNLOAD_FIELD_MAX_COUNT_USER_FILES_DESC="Set maximum count of files user can upload" +COM_PHOCADOWNLOAD_FIELD_MAX_COUNT_USER_FILES_LABEL="Maximum Count of uploaded user's files" +COM_PHOCADOWNLOAD_FIELD_MAX_SIZE_USER_FILES_DESC="Set maximum size of all files user can upload" +COM_PHOCADOWNLOAD_FIELD_MAX_SIZE_USER_FILES_LABEL="Maximum Size of all user's files" +COM_PHOCADOWNLOAD_FIELD_METADESC_DESC="Set meta description for Phoca Download" +COM_PHOCADOWNLOAD_FIELD_METADESC_LABEL="Meta Description" +COM_PHOCADOWNLOAD_FIELD_METAKEY_DESC="Set meta keywords for Phoca Download" +COM_PHOCADOWNLOAD_FIELD_METAKEY_LABEL="Meta Keywords" +COM_PHOCADOWNLOAD_FIELD_ORDERING_DESC="Set ordering" +COM_PHOCADOWNLOAD_FIELD_ORDERING_LABEL="Ordering" +COM_PHOCADOWNLOAD_FIELD_PARENT_CATEGORY_DESC="Set parent category" +COM_PHOCADOWNLOAD_FIELD_PARENT_CATEGORY_LABEL="Parent Category" +COM_PHOCADOWNLOAD_FIELD_PLAYER_HEIGHT_DESC="Set player height (in px)" +COM_PHOCADOWNLOAD_FIELD_PLAYER_HEIGHT_LABEL="Player Height" +COM_PHOCADOWNLOAD_FIELD_PLAYER_MP3_HEIGHT_DESC="Set player height (MP3, OGG Audio)" +COM_PHOCADOWNLOAD_FIELD_PLAYER_MP3_HEIGHT_LABEL="Player Height (MP3, OGG Audio)" +COM_PHOCADOWNLOAD_FIELD_PLAYER_WIDTH_DESC="Set player width (in px)" +COM_PHOCADOWNLOAD_FIELD_PLAYER_WIDTH_LABEL="Player Width" +COM_PHOCADOWNLOAD_FIELD_PLAY_POPUP_WINDOW_DESC="Select play popup window" +COM_PHOCADOWNLOAD_FIELD_PLAY_POPUP_WINDOW_LABEL="Play Popup Window" +COM_PHOCADOWNLOAD_FIELD_PREVIEW_HEIGHT_DESC="Set preview height (in px)" +COM_PHOCADOWNLOAD_FIELD_PREVIEW_HEIGHT_LABEL="Preview Height" +COM_PHOCADOWNLOAD_FIELD_PREVIEW_POPUP_WINDOW_DESC="Select preview popup window" +COM_PHOCADOWNLOAD_FIELD_PREVIEW_POPUP_WINDOW_LABEL="Preview Popup Window" +COM_PHOCADOWNLOAD_FIELD_PREVIEW_WIDTH_DESC="Set preview width (in px)" +COM_PHOCADOWNLOAD_FIELD_PREVIEW_WIDTH_LABEL="Preview Width" +COM_PHOCADOWNLOAD_FIELD_PUBLISHED_DESC="Publish or unpublish" +COM_PHOCADOWNLOAD_FIELD_PUBLISHED_LABEL="Published" +COM_PHOCADOWNLOAD_FIELD_SEND_EMAIL_DOWNLOAD_DESC="Send email if user will download a file" +COM_PHOCADOWNLOAD_FIELD_SEND_EMAIL_DOWNLOAD_LABEL="Send Email (Download)" +COM_PHOCADOWNLOAD_FIELD_SEND_EMAIL_UPLOAD_DESC="Send email if user will upload a file" +COM_PHOCADOWNLOAD_FIELD_SEND_EMAIL_UPLOAD_LABEL="Send Email (Upload)" +COM_PHOCADOWNLOAD_FIELD_START_PUBLISHING_DESC="Set start publishing date" +COM_PHOCADOWNLOAD_FIELD_START_PUBLISHING_LABEL="Start Publishing" +COM_PHOCADOWNLOAD_FIELD_THEME_DESC="Set theme" +COM_PHOCADOWNLOAD_FIELD_THEME_LABEL="Theme" +COM_PHOCADOWNLOAD_FIELD_TITLE_DESC="Set title" +COM_PHOCADOWNLOAD_FIELD_TITLE_LABEL="Title" +COM_PHOCADOWNLOAD_FIELD_UPLOAD_MAX_SIZE_ADMIN_DESC="Set the maximum size for an upload in administration. Use zero for no limit. Do not forget, that the upload size can be limited by the server settings (in bytes)" +COM_PHOCADOWNLOAD_FIELD_UPLOAD_MAX_SIZE_ADMIN_LABEL="Maximum Upload Size (Administration)" +COM_PHOCADOWNLOAD_FIELD_UPLOAD_RIGHTS_DESC="Set upload rights" +COM_PHOCADOWNLOAD_FIELD_UPLOAD_RIGHTS_LABEL="Upload Rights" +COM_PHOCADOWNLOAD_FIELD_USER_FILE_UPLOAD_SIZE_DESC="Set maximum size of file which can be uploaded by user in frontend" +COM_PHOCADOWNLOAD_FIELD_USER_FILE_UPLOAD_SIZE_LABEL="User File Upload Size" +COM_PHOCADOWNLOAD_FIELD_USER_UPLOAD_ENABLE_DESC="Enable or disable user upload" +COM_PHOCADOWNLOAD_FIELD_USER_UPLOAD_ENABLE_LABEL="Enable User Upload" +COM_PHOCADOWNLOAD_FIELD_VERSION_DESC="Set version" +COM_PHOCADOWNLOAD_FIELD_VERSION_LABEL="Version" +COM_PHOCADOWNLOAD_FILE="File" +COM_PHOCADOWNLOAD_FILENAME="Filename" +COM_PHOCADOWNLOAD_FILENAME_AND_TITLE="Filename and Title" +COM_PHOCADOWNLOAD_FILES="Files" +COM_PHOCADOWNLOAD_FILESIZE="File Size" +COM_PHOCADOWNLOAD_FILES_UPLOADED="Files Uploaded" +COM_PHOCADOWNLOAD_FILE_ALREADY_EXISTS="File already exists" +COM_PHOCADOWNLOAD_FILE_FILEATIME="File (access time)" +COM_PHOCADOWNLOAD_FILE_FILECTIME="File (inode change time)" +COM_PHOCADOWNLOAD_FILE_FILEMTIME="File (modification time)" +COM_PHOCADOWNLOAD_FILE_SETTINGS_LABEL="File Settings" +COM_PHOCADOWNLOAD_FILE_SIZE_EMPTY="File Size is empty" +COM_PHOCADOWNLOAD_FILE_TITLE="File Title" +COM_PHOCADOWNLOAD_FILTER="Filter" +COM_PHOCADOWNLOAD_FINISH="Finish" +COM_PHOCADOWNLOAD_FINISH_PUBLISHING="Finish Publishing" +COM_PHOCADOWNLOAD_FOLDER="Folder" +COM_PHOCADOWNLOAD_FORM_SELECT_FILENAME="Select Filename" +COM_PHOCADOWNLOAD_FORM_SELECT_ICON="Select Icon" +COM_PHOCADOWNLOAD_FTP_LOGIN_DESC="For uploading files (images, themes), Joomla! will most likely need your FTP account details. Please enter them in the form fields below." +COM_PHOCADOWNLOAD_FTP_LOGIN_LABEL="FTP Login Details" +COM_PHOCADOWNLOAD_GREY="Grey" +COM_PHOCADOWNLOAD_GROUP_LABEL_PUBLISHING_DETAILS="Publishing Details" +COM_PHOCADOWNLOAD_GUEST="Guest" +COM_PHOCADOWNLOAD_HELP="Help" +COM_PHOCADOWNLOAD_HITS="Hits" +COM_PHOCADOWNLOAD_ID="ID" +COM_PHOCADOWNLOAD_ID_ASC="ID Ascending" +COM_PHOCADOWNLOAD_ID_DESC="ID Descending" +COM_PHOCADOWNLOAD_INFO="Info" +COM_PHOCADOWNLOAD_INSERT="Insert" +COM_PHOCADOWNLOAD_INSERT_FILENAME="Insert Filename" +COM_PHOCADOWNLOAD_INSERT_ICON="Insert Icon" +COM_PHOCADOWNLOAD_INVALID_TOKEN="Invalid Token" +COM_PHOCADOWNLOAD_I_AGREE_TO_TERMS_LISTED_ABOVE="I agree to the terms listed above" +COM_PHOCADOWNLOAD_JCOMMENTS="JComments" +COM_PHOCADOWNLOAD_LICENSE="License" +COM_PHOCADOWNLOAD_LICENSES="Licenses" +COM_PHOCADOWNLOAD_LICENSE_AGREEMENT="License Agreement" +COM_PHOCADOWNLOAD_LOADING="Loading" +COM_PHOCADOWNLOAD_MAX_LIMIT_CHARS_REACHED="You have reached maximum limit of characters allowed" +COM_PHOCADOWNLOAD_MAX_SIZE="Max Size" +COM_PHOCADOWNLOAD_MODAL_BOX="Modal Box" +COM_PHOCADOWNLOAD_MOST_DOWNLOADED_FILES="Most downloaded files" +COM_PHOCADOWNLOAD_MULTIPLE_UPLOAD="Multiple Upload" +COM_PHOCADOWNLOAD_NEW="New" +COM_PHOCADOWNLOAD_NEW_CATEGORY="New Category" +COM_PHOCADOWNLOAD_NEW_FILE="New File" +COM_PHOCADOWNLOAD_NO="No" +COM_PHOCADOWNLOAD_NOBODY="Nobody" +COM_PHOCADOWNLOAD_NONE="None" +COM_PHOCADOWNLOAD_NOT_APPROVE="Unauthorize" +COM_PHOCADOWNLOAD_NOT_APPROVED="Not Authorized" +COM_PHOCADOWNLOAD_NOT_APPROVED_FILES_COUNT="Count of not authorized file(s)" +COM_PHOCADOWNLOAD_NOT_APPROVE_ITEM="Unauthorize item" +COM_PHOCADOWNLOAD_NOT_AUTHORISED_ACTION="You are not authorized to do this action" +COM_PHOCADOWNLOAD_NOT_AUTHORISED_TO_UPLOAD="You are not authorized to upload file" +COM_PHOCADOWNLOAD_NOT_INSTALLED_BROWSERPLUS="You browser doesn't have BrowserPlus installed." +COM_PHOCADOWNLOAD_NOT_INSTALLED_FLASH="You browser doesn't have Flash installed." +COM_PHOCADOWNLOAD_NOT_INSTALLED_GEARS="You browser doesn't have Gears installed." +COM_PHOCADOWNLOAD_NOT_INSTALLED_SILVERLIGHT="You browser doesn't have Silverlight installed." +COM_PHOCADOWNLOAD_NOT_SUPPORTED_HTML4="You browser doesn't have HTML 4 support." +COM_PHOCADOWNLOAD_NOT_SUPPORTED_HTML5="You browser doesn't have HTML 5 support." +COM_PHOCADOWNLOAD_NO_EXPIRY="No Expiry" +COM_PHOCADOWNLOAD_NO_RIGHTS_ACCESS_CATEGORY="You have no rights to access this category" +COM_PHOCADOWNLOAD_NO_SUBCATEGORIES="No Subcategories" +COM_PHOCADOWNLOAD_N_ITEMS_APPROVED="%d items successfully authorized" +COM_PHOCADOWNLOAD_N_ITEMS_APPROVED_1="%d item successfully authorized" +COM_PHOCADOWNLOAD_N_ITEMS_CHECKED_IN_0="No item successfully checked in" +COM_PHOCADOWNLOAD_N_ITEMS_CHECKED_IN_1="%d item successfully checked in" +COM_PHOCADOWNLOAD_N_ITEMS_CHECKED_IN_MORE="%d items successfully checked in" +COM_PHOCADOWNLOAD_N_ITEMS_DELETED="%d items successfully deleted" +COM_PHOCADOWNLOAD_N_ITEMS_DELETED_1="%d item successfully deleted" +COM_PHOCADOWNLOAD_N_ITEMS_DISAPPROVED="%d items successfully unauthorized" +COM_PHOCADOWNLOAD_N_ITEMS_DISAPPROVED_1="%d item successfully unauthorized" +COM_PHOCADOWNLOAD_N_ITEMS_PUBLISHED="%d items successfully published" +COM_PHOCADOWNLOAD_N_ITEMS_PUBLISHED_1="%d item successfully published" +COM_PHOCADOWNLOAD_N_ITEMS_UNPUBLISHED="%d items successfully unpublished" +COM_PHOCADOWNLOAD_N_ITEMS_UNPUBLISHED_1="%d item successfully unpublished" +COM_PHOCADOWNLOAD_OPEN="Open" +COM_PHOCADOWNLOAD_ORDER="Order" +COM_PHOCADOWNLOAD_ORDERING="Ordering" +COM_PHOCADOWNLOAD_ORDERING_ASC="Ordering Ascending" +COM_PHOCADOWNLOAD_ORDERING_DESC="Ordering Descending" +COM_PHOCADOWNLOAD_OVERLIB="Overlib" +COM_PHOCADOWNLOAD_OWNER="Owner" +COM_PHOCADOWNLOAD_PARENT_CATEGORY="Parent Category" +COM_PHOCADOWNLOAD_PATH="Path" +COM_PHOCADOWNLOAD_PD_CONTROL_PANEL="Phoca Download Control Panel" +COM_PHOCADOWNLOAD_PD_INFO="Phoca Download Info" +COM_PHOCADOWNLOAD_PENDING="Pending" +COM_PHOCADOWNLOAD_PLAY="Play" +COM_PHOCADOWNLOAD_PLAY_SETTINGS_LABEL="Play Settings" +COM_PHOCADOWNLOAD_PLEASE_ADD_FILE="Please add a file" +COM_PHOCADOWNLOAD_PLEASE_ENTER_VALID_EMAIL_ADDRESS="Please enter a valid email address" +COM_PHOCADOWNLOAD_PLEASE_ENTER_VALID_WEBSITE="Please enter a valid website (format: http://your_site.com)" +COM_PHOCADOWNLOAD_PLEASE_LOGIN_DOWNLOAD_FILE="Please login to download the file" +COM_PHOCADOWNLOAD_PLEASE_SELECT_CATEGORY="Please select category" +COM_PHOCADOWNLOAD_PREVIEW="Preview" +COM_PHOCADOWNLOAD_PREVIEW_SETTINGS_LABEL="Preview Settings" +COM_PHOCADOWNLOAD_PUBLISHED="Published" +COM_PHOCADOWNLOAD_PUBLISH_INFORMATION="Publish Information" +COM_PHOCADOWNLOAD_RESET="Reset" +COM_PHOCADOWNLOAD_ROUNDED_CORNERS="Rounded Corners" +COM_PHOCADOWNLOAD_SEARCH="Search" +COM_PHOCADOWNLOAD_SEARCH_IN_TITLE="Search" +COM_PHOCADOWNLOAD_SELECT_CATEGORY="Select Category" +COM_PHOCADOWNLOAD_SELECT_FILES="Select Files" +COM_PHOCADOWNLOAD_SELECT_ITEM_RESET="Select an item to reset" +COM_PHOCADOWNLOAD_SELECT_LICENSE="Select License" +COM_PHOCADOWNLOAD_SELF="Self" +COM_PHOCADOWNLOAD_SIZE="Size" +COM_PHOCADOWNLOAD_STANDARD_POPUP_WINDOW="Standard Popup Window" +COM_PHOCADOWNLOAD_START="Start" +COM_PHOCADOWNLOAD_START_PUBLISHING="Start Publishing" +COM_PHOCADOWNLOAD_START_UPLOAD="Start Upload" +COM_PHOCADOWNLOAD_START_UPLOADING_QUEUE="Start Uploading Queue" +COM_PHOCADOWNLOAD_STATISTICS="Statistics" +COM_PHOCADOWNLOAD_STATUS="Status" +COM_PHOCADOWNLOAD_STOP_CURRENT_UPLOAD="Stop Current Upload" +COM_PHOCADOWNLOAD_SUCCESS="Success" +COM_PHOCADOWNLOAD_SUCCESS_FILE_UPLOAD="File uploaded" +COM_PHOCADOWNLOAD_SUCCESS_FILE_UPLOADED="File uploaded" +COM_PHOCADOWNLOAD_SUCCESS_FOLDER_CREATING="Folder created" +COM_PHOCADOWNLOAD_SUCCESS_RESET_USER_STAT="User Statistics reset" +COM_PHOCADOWNLOAD_THERE_IS_NO_FILE="There is no file" +COM_PHOCADOWNLOAD_TITLE="Title" +COM_PHOCADOWNLOAD_TITLE_ASC="Title Ascending" +COM_PHOCADOWNLOAD_TITLE_DESC="Title Descending" +COM_PHOCADOWNLOAD_TOP="Top" +COM_PHOCADOWNLOAD_TOP_AND_OVERLIB="Top and Overlib" +COM_PHOCADOWNLOAD_TOP_WITH_DETAIL_AND_OVERLIB="Top with detail and Overlib" +COM_PHOCADOWNLOAD_UNABLE_TO_UPLOAD_FILE="File cannot be uploaded - unable to move file" +COM_PHOCADOWNLOAD_UP="Up" +COM_PHOCADOWNLOAD_UPLOAD="Upload" +COM_PHOCADOWNLOAD_UPLOADED_FILES="Uploaded Files" +COM_PHOCADOWNLOAD_UPLOAD_FILE="Upload File" +COM_PHOCADOWNLOAD_USER="User" +COM_PHOCADOWNLOAD_USERNAME="Username" +COM_PHOCADOWNLOAD_USERS="Users" +COM_PHOCADOWNLOAD_USER_STATISTICS="User Statistics" +COM_PHOCADOWNLOAD_USER_UPLOAD_DISABLED="User Upload is disabled" +COM_PHOCADOWNLOAD_VERSION="Version" +COM_PHOCADOWNLOAD_WARNFILENAME="File name must only contain alphanumeric characters, underscores, hyphens and spaces." +COM_PHOCADOWNLOAD_WARNFILETOOLARGE="This file is too large to upload." +COM_PHOCADOWNLOAD_WARNFILETYPE="This file type is not supported (or there are some restrictions on the server)." +COM_PHOCADOWNLOAD_WARNFILETYPE_DISALLOWED="The file type is disallowed - file cannot be uploaded" +COM_PHOCADOWNLOAD_WARNFILETYPE_DISALLOWED_DOWNLOAD="Error while downloading file (Disallowed Mime Type)" +COM_PHOCADOWNLOAD_WARNFILETYPE_DOWNLOAD="Error while downloading file (Mime Type not found)" +COM_PHOCADOWNLOAD_WARNFILETYPE_NOT_ALLOWED="The file type is not allowed - file cannot be uploaded" +COM_PHOCADOWNLOAD_WARNIEXSS="Possible IE XSS Attack found." +COM_PHOCADOWNLOAD_WARNING_AGREE_LICENSE_TERMS="You must agree to listed terms" +COM_PHOCADOWNLOAD_WARNING_AUTHORIZE_ALL="Do you really want to authorize all files of all users?" +COM_PHOCADOWNLOAD_WARNING_DELETE_ITEMS="Are you sure you want to delete the listed Items?" +COM_PHOCADOWNLOAD_WARNING_DIRNAME="Error: Wrong folder name" +COM_PHOCADOWNLOAD_WARNING_INPUT_FILE_UPLOAD="Please input a file for upload" +COM_PHOCADOWNLOAD_WARNING_RESET_DOWNLOADS="Really reset downloads?" +COM_PHOCADOWNLOAD_WARNINVALIDIMG="Not a valid image." +COM_PHOCADOWNLOAD_WARNINVALIDMIME="Illegal or invalid mime type detected." +COM_PHOCADOWNLOAD_WARNNOTADMIN="Uploaded file is not an image file and you are not a manager or higher." +COM_PHOCADOWNLOAD_WARNSAFEMODE="Directory creation is not allowed while running in SAFE MODE as this can cause problems." +COM_PHOCADOWNLOAD_WARNUSERFILESTOOLARGE="Maximum size of all your files reached. File cannot be uploaded." +COM_PHOCADOWNLOAD_WARNUSERFILESTOOMUCH="Maximum count of all your files reached. File cannot be uploaded." +COM_PHOCADOWNLOAD_YES="Yes" +COM_PHOCADOWNLOAD_AT="at" +COM_PHOCADOWNLOAD_ERROR_CONTROLLER="Error: No such controller or task" +COM_PHOCADOWNLOAD_ERROR_FOLDER_CREATING_EXISTS="Folder exists" +COM_PHOCADOWNLOAD_SUCCESS_FOLDER_CREATING="Folder created" +COM_PHOCADOWNLOAD_EDIT_LICENSE="Edit License" +COM_PHOCADOWNLOAD_NEW_LICENSE="New License" +COM_PHOCADOWNLOAD_NEW_MODEL_INFO="MODELL INFORMÁCIÓI" +COM_PHOCADOWNLOAD_PRODUCER="Gyártó" +COM_PHOCADOWNLOAD_AUTHOR="Szerző" +COM_PHOCADOWNLOAD_POLYGONS="Sokszögek" +COM_PHOCADOWNLOAD_FILE_SIZE="Fájl Mérete" +COM_PHOCADOWNLOAD_BOUNDS="Határok" +COM_PHOCADOWNLOAD_CLOUD_LIBRARY_DESC="Az ARCHLine.XP Warehouse az a hely, ahol kereshet vagy megoszthat ARCHLine.XP tartalmakat, például modelleket, anyagokat, egyedi stílusokat. +A modellek SketchUp formátumban is elérhetők. Ossza meg munkáit, és merítsen ihletet másoktól." +COM_PHOCADOWNLOAD_LOGIN_HEADER="Bejelentkezés" +COM_PHOCADOWNLOAD_LOGIN_CLOSE="Bezárás" +COM_PHOCADOWNLOAD_CLOUD_LIBRARY_PROFILE="Adatlap" +COM_PHOCADOWNLOAD_CLOUD_LIBRARY_LOGOUT="Kijelentkezés" +COM_PHOCADOWNLOAD_CLOUD_LIBRARY_DOWNLOAD="ARCHLine.XP Letöltés" +COM_PHOCADOWNLOAD_CLOUD_LIBRARY_PUBLISH="Elem publikálása" +COM_PHOCADOWNLOAD_CLOUD_LIBRARY_MAKE_PRIVATE="Elem elrejtése" +COM_PHOCADOWNLOAD_CLOUD_LIBRARY_PRIVATE="Privát" +COM_PHOCADOWNLOAD_CLOUD_LIBRARY_NO_RESULT="Nincs találat" +COM_PHOCADOWNLOAD_CLOUD_LIBRARY_ARE_YOU_SURE="Biztosan törölni szeretné ezt az elemet?" +COM_PHOCADOWNLOAD_CLOUD_LIBRARY_MY_CONTENT="Tartalmaim" +COM_PHOCADOWNLOAD_PRODUCT_LINE="Termékcsalád" +COM_PHOCADOWNLOAD_DOWNLOAD_SCALE_DOWN="Kicsinyítés" +COM_PHOCADOWNLOAD_DOWNLOAD_SCALE_UP="Nagyítás" +COM_PHOCADOWNLOAD_DOWNLOAD_MODELS="Modellek" +COM_PHOCADOWNLOAD_DOWNLOAD_BRANDS="Márkák" +COM_PHOCADOWNLOAD_DOWNLOAD_PREVIOUS="Előző" +COM_PHOCADOWNLOAD_DOWNLOAD_NEXT="Következő" +COM_PHOCADOWNLOAD_DOWNLOAD_AS_DXF="Download as dxf" +COM_PHOCADOWNLOAD_DOWNLOAD_ALL="Összes letöltése" +COM_PHOCADOWNLOAD_VIEWS="Megtekintések" \ No newline at end of file diff --git a/packages/phocadownload/media/com_phocadownload/bootstrap/css/bootstrap.extended.css b/packages/phocadownload/media/com_phocadownload/bootstrap/css/bootstrap.extended.css new file mode 100644 index 00000000..ccadec04 --- /dev/null +++ b/packages/phocadownload/media/com_phocadownload/bootstrap/css/bootstrap.extended.css @@ -0,0 +1,36 @@ +/*! + * Bootstrap v3.0.2 + * + * Copyright 2013 Twitter, Inc + * Licensed under the Apache License v2.0 + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Designed and built with all the love in the world @twitter by @mdo and @fat. + */ + +#phoca-dl-category-box .ph-thumbnail h3, +#phoca-dl-categories-box .ph-thumbnail h3 { + margin-top: 5px; + margin-left: 5px; +} +#phoca-dl-category-box .ph-subcategories, +#phoca-dl-categories-box .ph-subcategories { + margin: 5px; +} +/* +.modal .modal-body { + height: 300px; + overflow-y: auto; +}*/ +/* +.grid7 .col-md-1 { width: 10%; } +.grid7 .col-md-2 { width: 20%; } +.grid7 .col-md-3 { width: 30%; } +.grid7 .col-md-4 { width: 40%; } +.grid7 .col-md-5 { width: 5%; } +.grid7 .col-md-6 { width: 60%; } +.grid7 .col-md-7 { width: 70%; } +.grid7 .col-md-8 { width: 80%; } +.grid7 .col-md-9 { width: 90%; } +.grid7 .col-md-10 { width: 100%; }*/ + diff --git a/packages/phocadownload/media/com_phocadownload/bootstrap/css/bootstrap.glyphicons.min.css b/packages/phocadownload/media/com_phocadownload/bootstrap/css/bootstrap.glyphicons.min.css new file mode 100644 index 00000000..ab6ef068 --- /dev/null +++ b/packages/phocadownload/media/com_phocadownload/bootstrap/css/bootstrap.glyphicons.min.css @@ -0,0 +1,14 @@ +/*! + * Bootstrap v3.3.4 (http://getbootstrap.com) + * Copyright 2011-2015 Twitter, Inc. + * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) + */ + +/*! + * Generated using the Bootstrap Customizer (http://getbootstrap.com/customize/?id=61679c5c55e18c0213c5) + * Config saved to config.json and https://gist.github.com/61679c5c55e18c0213c5 + *//*! normalize.css v3.0.2 | MIT License | git.io/normalize */html{font-family:sans-serif;-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%}body{margin:0}article,aside,details,figcaption,figure,footer,header,hgroup,main,menu,nav,section,summary{display:block}audio,canvas,progress,video{display:inline-block;vertical-align:baseline}audio:not([controls]){display:none;height:0}[hidden],template{display:none}a{background-color:transparent}a:active,a:hover{outline:0}abbr[title]{border-bottom:1px dotted}b,strong{font-weight:bold}dfn{font-style:italic}h1{font-size:2em;margin:0.67em 0}mark{background:#ff0;color:#000}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sup{top:-0.5em}sub{bottom:-0.25em}img{border:0}svg:not(:root){overflow:hidden}figure{margin:1em 40px}hr{-moz-box-sizing:content-box;-webkit-box-sizing:content-box;box-sizing:content-box;height:0}pre{overflow:auto}code,kbd,pre,samp{font-family:monospace, monospace;font-size:1em}button,input,optgroup,select,textarea{color:inherit;font:inherit;margin:0}button{overflow:visible}button,select{text-transform:none}button,html input[type="button"],input[type="reset"],input[type="submit"]{-webkit-appearance:button;cursor:pointer}button[disabled],html input[disabled]{cursor:default}button::-moz-focus-inner,input::-moz-focus-inner{border:0;padding:0}input{line-height:normal}input[type="checkbox"],input[type="radio"]{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;padding:0}input[type="number"]::-webkit-inner-spin-button,input[type="number"]::-webkit-outer-spin-button{height:auto}input[type="search"]{-webkit-appearance:textfield;-moz-box-sizing:content-box;-webkit-box-sizing:content-box;box-sizing:content-box}input[type="search"]::-webkit-search-cancel-button,input[type="search"]::-webkit-search-decoration{-webkit-appearance:none}fieldset{border:1px solid #c0c0c0;margin:0 2px;padding:0.35em 0.625em 0.75em}legend{border:0;padding:0}textarea{overflow:auto}optgroup{font-weight:bold}table{border-collapse:collapse;border-spacing:0}td,th{padding:0}@font-face{font-family:'Glyphicons Halflings';src:url('../fonts/glyphicons-halflings-regular.eot');src:url('../fonts/glyphicons-halflings-regular.eot?#iefix') format('embedded-opentype'),url('../fonts/glyphicons-halflings-regular.woff2') format('woff2'),url('../fonts/glyphicons-halflings-regular.woff') format('woff'),url('../fonts/glyphicons-halflings-regular.ttf') format('truetype'),url('../fonts/glyphicons-halflings-regular.svg#glyphicons_halflingsregular') format('svg')}.glyphicon{position:relative;top:1px;display:inline-block;font-family:'Glyphicons Halflings';font-style:normal;font-weight:normal;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.glyphicon-asterisk:before{content:"\2a"}.glyphicon-plus:before{content:"\2b"}.glyphicon-euro:before,.glyphicon-eur:before{content:"\20ac"}.glyphicon-minus:before{content:"\2212"}.glyphicon-cloud:before{content:"\2601"}.glyphicon-envelope:before{content:"\2709"}.glyphicon-pencil:before{content:"\270f"}.glyphicon-glass:before{content:"\e001"}.glyphicon-music:before{content:"\e002"}.glyphicon-search:before{content:"\e003"}.glyphicon-heart:before{content:"\e005"}.glyphicon-star:before{content:"\e006"}.glyphicon-star-empty:before{content:"\e007"}.glyphicon-user:before{content:"\e008"}.glyphicon-film:before{content:"\e009"}.glyphicon-th-large:before{content:"\e010"}.glyphicon-th:before{content:"\e011"}.glyphicon-th-list:before{content:"\e012"}.glyphicon-ok:before{content:"\e013"}.glyphicon-remove:before{content:"\e014"}.glyphicon-zoom-in:before{content:"\e015"}.glyphicon-zoom-out:before{content:"\e016"}.glyphicon-off:before{content:"\e017"}.glyphicon-signal:before{content:"\e018"}.glyphicon-cog:before{content:"\e019"}.glyphicon-trash:before{content:"\e020"}.glyphicon-home:before{content:"\e021"}.glyphicon-file:before{content:"\e022"}.glyphicon-time:before{content:"\e023"}.glyphicon-road:before{content:"\e024"}.glyphicon-download-alt:before{content:"\e025"}.glyphicon-download:before{content:"\e026"}.glyphicon-upload:before{content:"\e027"}.glyphicon-inbox:before{content:"\e028"}.glyphicon-play-circle:before{content:"\e029"}.glyphicon-repeat:before{content:"\e030"}.glyphicon-refresh:before{content:"\e031"}.glyphicon-list-alt:before{content:"\e032"}.glyphicon-lock:before{content:"\e033"}.glyphicon-flag:before{content:"\e034"}.glyphicon-headphones:before{content:"\e035"}.glyphicon-volume-off:before{content:"\e036"}.glyphicon-volume-down:before{content:"\e037"}.glyphicon-volume-up:before{content:"\e038"}.glyphicon-qrcode:before{content:"\e039"}.glyphicon-barcode:before{content:"\e040"}.glyphicon-tag:before{content:"\e041"}.glyphicon-tags:before{content:"\e042"}.glyphicon-book:before{content:"\e043"}.glyphicon-bookmark:before{content:"\e044"}.glyphicon-print:before{content:"\e045"}.glyphicon-camera:before{content:"\e046"}.glyphicon-font:before{content:"\e047"}.glyphicon-bold:before{content:"\e048"}.glyphicon-italic:before{content:"\e049"}.glyphicon-text-height:before{content:"\e050"}.glyphicon-text-width:before{content:"\e051"}.glyphicon-align-left:before{content:"\e052"}.glyphicon-align-center:before{content:"\e053"}.glyphicon-align-right:before{content:"\e054"}.glyphicon-align-justify:before{content:"\e055"}.glyphicon-list:before{content:"\e056"}.glyphicon-indent-left:before{content:"\e057"}.glyphicon-indent-right:before{content:"\e058"}.glyphicon-facetime-video:before{content:"\e059"}.glyphicon-picture:before{content:"\e060"}.glyphicon-map-marker:before{content:"\e062"}.glyphicon-adjust:before{content:"\e063"}.glyphicon-tint:before{content:"\e064"}.glyphicon-edit:before{content:"\e065"}.glyphicon-share:before{content:"\e066"}.glyphicon-check:before{content:"\e067"}.glyphicon-move:before{content:"\e068"}.glyphicon-step-backward:before{content:"\e069"}.glyphicon-fast-backward:before{content:"\e070"}.glyphicon-backward:before{content:"\e071"}.glyphicon-play:before{content:"\e072"}.glyphicon-pause:before{content:"\e073"}.glyphicon-stop:before{content:"\e074"}.glyphicon-forward:before{content:"\e075"}.glyphicon-fast-forward:before{content:"\e076"}.glyphicon-step-forward:before{content:"\e077"}.glyphicon-eject:before{content:"\e078"}.glyphicon-chevron-left:before{content:"\e079"}.glyphicon-chevron-right:before{content:"\e080"}.glyphicon-plus-sign:before{content:"\e081"}.glyphicon-minus-sign:before{content:"\e082"}.glyphicon-remove-sign:before{content:"\e083"}.glyphicon-ok-sign:before{content:"\e084"}.glyphicon-question-sign:before{content:"\e085"}.glyphicon-info-sign:before{content:"\e086"}.glyphicon-screenshot:before{content:"\e087"}.glyphicon-remove-circle:before{content:"\e088"}.glyphicon-ok-circle:before{content:"\e089"}.glyphicon-ban-circle:before{content:"\e090"}.glyphicon-arrow-left:before{content:"\e091"}.glyphicon-arrow-right:before{content:"\e092"}.glyphicon-arrow-up:before{content:"\e093"}.glyphicon-arrow-down:before{content:"\e094"}.glyphicon-share-alt:before{content:"\e095"}.glyphicon-resize-full:before{content:"\e096"}.glyphicon-resize-small:before{content:"\e097"}.glyphicon-exclamation-sign:before{content:"\e101"}.glyphicon-gift:before{content:"\e102"}.glyphicon-leaf:before{content:"\e103"}.glyphicon-fire:before{content:"\e104"}.glyphicon-eye-open:before{content:"\e105"}.glyphicon-eye-close:before{content:"\e106"}.glyphicon-warning-sign:before{content:"\e107"}.glyphicon-plane:before{content:"\e108"}.glyphicon-calendar:before{content:"\e109"}.glyphicon-random:before{content:"\e110"}.glyphicon-comment:before{content:"\e111"}.glyphicon-magnet:before{content:"\e112"}.glyphicon-chevron-up:before{content:"\e113"}.glyphicon-chevron-down:before{content:"\e114"}.glyphicon-retweet:before{content:"\e115"}.glyphicon-shopping-cart:before{content:"\e116"}.glyphicon-folder-close:before{content:"\e117"}.glyphicon-folder-open:before{content:"\e118"}.glyphicon-resize-vertical:before{content:"\e119"}.glyphicon-resize-horizontal:before{content:"\e120"}.glyphicon-hdd:before{content:"\e121"}.glyphicon-bullhorn:before{content:"\e122"}.glyphicon-bell:before{content:"\e123"}.glyphicon-certificate:before{content:"\e124"}.glyphicon-thumbs-up:before{content:"\e125"}.glyphicon-thumbs-down:before{content:"\e126"}.glyphicon-hand-right:before{content:"\e127"}.glyphicon-hand-left:before{content:"\e128"}.glyphicon-hand-up:before{content:"\e129"}.glyphicon-hand-down:before{content:"\e130"}.glyphicon-circle-arrow-right:before{content:"\e131"}.glyphicon-circle-arrow-left:before{content:"\e132"}.glyphicon-circle-arrow-up:before{content:"\e133"}.glyphicon-circle-arrow-down:before{content:"\e134"}.glyphicon-globe:before{content:"\e135"}.glyphicon-wrench:before{content:"\e136"}.glyphicon-tasks:before{content:"\e137"}.glyphicon-filter:before{content:"\e138"}.glyphicon-briefcase:before{content:"\e139"}.glyphicon-fullscreen:before{content:"\e140"}.glyphicon-dashboard:before{content:"\e141"}.glyphicon-paperclip:before{content:"\e142"}.glyphicon-heart-empty:before{content:"\e143"}.glyphicon-link:before{content:"\e144"}.glyphicon-phone:before{content:"\e145"}.glyphicon-pushpin:before{content:"\e146"}.glyphicon-usd:before{content:"\e148"}.glyphicon-gbp:before{content:"\e149"}.glyphicon-sort:before{content:"\e150"}.glyphicon-sort-by-alphabet:before{content:"\e151"}.glyphicon-sort-by-alphabet-alt:before{content:"\e152"}.glyphicon-sort-by-order:before{content:"\e153"}.glyphicon-sort-by-order-alt:before{content:"\e154"}.glyphicon-sort-by-attributes:before{content:"\e155"}.glyphicon-sort-by-attributes-alt:before{content:"\e156"}.glyphicon-unchecked:before{content:"\e157"}.glyphicon-expand:before{content:"\e158"}.glyphicon-collapse-down:before{content:"\e159"}.glyphicon-collapse-up:before{content:"\e160"}.glyphicon-log-in:before{content:"\e161"}.glyphicon-flash:before{content:"\e162"}.glyphicon-log-out:before{content:"\e163"}.glyphicon-new-window:before{content:"\e164"}.glyphicon-record:before{content:"\e165"}.glyphicon-save:before{content:"\e166"}.glyphicon-open:before{content:"\e167"}.glyphicon-saved:before{content:"\e168"}.glyphicon-import:before{content:"\e169"}.glyphicon-export:before{content:"\e170"}.glyphicon-send:before{content:"\e171"}.glyphicon-floppy-disk:before{content:"\e172"}.glyphicon-floppy-saved:before{content:"\e173"}.glyphicon-floppy-remove:before{content:"\e174"}.glyphicon-floppy-save:before{content:"\e175"}.glyphicon-floppy-open:before{content:"\e176"}.glyphicon-credit-card:before{content:"\e177"}.glyphicon-transfer:before{content:"\e178"}.glyphicon-cutlery:before{content:"\e179"}.glyphicon-header:before{content:"\e180"}.glyphicon-compressed:before{content:"\e181"}.glyphicon-earphone:before{content:"\e182"}.glyphicon-phone-alt:before{content:"\e183"}.glyphicon-tower:before{content:"\e184"}.glyphicon-stats:before{content:"\e185"}.glyphicon-sd-video:before{content:"\e186"}.glyphicon-hd-video:before{content:"\e187"}.glyphicon-subtitles:before{content:"\e188"}.glyphicon-sound-stereo:before{content:"\e189"}.glyphicon-sound-dolby:before{content:"\e190"}.glyphicon-sound-5-1:before{content:"\e191"}.glyphicon-sound-6-1:before{content:"\e192"}.glyphicon-sound-7-1:before{content:"\e193"}.glyphicon-copyright-mark:before{content:"\e194"}.glyphicon-registration-mark:before{content:"\e195"}.glyphicon-cloud-download:before{content:"\e197"}.glyphicon-cloud-upload:before{content:"\e198"}.glyphicon-tree-conifer:before{content:"\e199"}.glyphicon-tree-deciduous:before{content:"\e200"}.glyphicon-cd:before{content:"\e201"}.glyphicon-save-file:before{content:"\e202"}.glyphicon-open-file:before{content:"\e203"}.glyphicon-level-up:before{content:"\e204"}.glyphicon-copy:before{content:"\e205"}.glyphicon-paste:before{content:"\e206"}.glyphicon-alert:before{content:"\e209"}.glyphicon-equalizer:before{content:"\e210"}.glyphicon-king:before{content:"\e211"}.glyphicon-queen:before{content:"\e212"}.glyphicon-pawn:before{content:"\e213"}.glyphicon-bishop:before{content:"\e214"}.glyphicon-knight:before{content:"\e215"}.glyphicon-baby-formula:before{content:"\e216"}.glyphicon-tent:before{content:"\26fa"}.glyphicon-blackboard:before{content:"\e218"}.glyphicon-bed:before{content:"\e219"}.glyphicon-apple:before{content:"\f8ff"}.glyphicon-erase:before{content:"\e221"}.glyphicon-hourglass:before{content:"\231b"}.glyphicon-lamp:before{content:"\e223"}.glyphicon-duplicate:before{content:"\e224"}.glyphicon-piggy-bank:before{content:"\e225"}.glyphicon-scissors:before{content:"\e226"}.glyphicon-bitcoin:before{content:"\e227"}.glyphicon-btc:before{content:"\e227"}.glyphicon-xbt:before{content:"\e227"}.glyphicon-yen:before{content:"\00a5"}.glyphicon-jpy:before{content:"\00a5"}.glyphicon-ruble:before{content:"\20bd"}.glyphicon-rub:before{content:"\20bd"}.glyphicon-scale:before{content:"\e230"}.glyphicon-ice-lolly:before{content:"\e231"}.glyphicon-ice-lolly-tasted:before{content:"\e232"}.glyphicon-education:before{content:"\e233"}.glyphicon-option-horizontal:before{content:"\e234"}.glyphicon-option-vertical:before{content:"\e235"}.glyphicon-menu-hamburger:before{content:"\e236"}.glyphicon-modal-window:before{content:"\e237"}.glyphicon-oil:before{content:"\e238"}.glyphicon-grain:before{content:"\e239"}.glyphicon-sunglasses:before{content:"\e240"}.glyphicon-text-size:before{content:"\e241"}.glyphicon-text-color:before{content:"\e242"}.glyphicon-text-background:before{content:"\e243"}.glyphicon-object-align-top:before{content:"\e244"}.glyphicon-object-align-bottom:before{content:"\e245"}.glyphicon-object-align-horizontal:before{content:"\e246"}.glyphicon-object-align-left:before{content:"\e247"}.glyphicon-object-align-vertical:before{content:"\e248"}.glyphicon-object-align-right:before{content:"\e249"}.glyphicon-triangle-right:before{content:"\e250"}.glyphicon-triangle-left:before{content:"\e251"}.glyphicon-triangle-bottom:before{content:"\e252"}.glyphicon-triangle-top:before{content:"\e253"}.glyphicon-console:before{content:"\e254"}.glyphicon-superscript:before{content:"\e255"}.glyphicon-subscript:before{content:"\e256"}.glyphicon-menu-left:before{content:"\e257"}.glyphicon-menu-right:before{content:"\e258"}.glyphicon-menu-down:before{content:"\e259"}.glyphicon-menu-up:before{content:"\e260"} +.glyphicon-menu-coins:before{content:"\e038"} + + + *{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}*:before,*:after{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}html{font-size:10px;-webkit-tap-highlight-color:rgba(0,0,0,0)}body{font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:14px;line-height:1.42857143;color:#333;background-color:#fff}input,button,select,textarea{font-family:inherit;font-size:inherit;line-height:inherit}a{color:#337ab7;text-decoration:none}a:hover,a:focus{color:#23527c;text-decoration:underline}a:focus{outline:thin dotted;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}figure{margin:0}img{vertical-align:middle}.img-responsive{display:block;max-width:100%;height:auto}.img-rounded{border-radius:6px}.img-thumbnail{padding:4px;line-height:1.42857143;background-color:#fff;border:1px solid #ddd;border-radius:4px;-webkit-transition:all .2s ease-in-out;-o-transition:all .2s ease-in-out;transition:all .2s ease-in-out;display:inline-block;max-width:100%;height:auto}.img-circle{border-radius:50%}hr{margin-top:20px;margin-bottom:20px;border:0;border-top:1px solid #eee}.sr-only{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0, 0, 0, 0);border:0}.sr-only-focusable:active,.sr-only-focusable:focus{position:static;width:auto;height:auto;margin:0;overflow:visible;clip:auto}[role="button"]{cursor:pointer}.clearfix:before,.clearfix:after{content:" ";display:table}.clearfix:after{clear:both}.center-block{display:block;margin-left:auto;margin-right:auto}.pull-right{float:right !important}.pull-left{float:left !important}.hide{display:none !important}.show{display:block !important}.invisible{visibility:hidden}.text-hide{font:0/0 a;color:transparent;text-shadow:none;background-color:transparent;border:0}.hidden{display:none !important}.affix{position:fixed} \ No newline at end of file diff --git a/packages/phocadownload/media/com_phocadownload/bootstrap/css/bootstrap.min.css b/packages/phocadownload/media/com_phocadownload/bootstrap/css/bootstrap.min.css new file mode 100644 index 00000000..12a4edc6 --- /dev/null +++ b/packages/phocadownload/media/com_phocadownload/bootstrap/css/bootstrap.min.css @@ -0,0 +1,890 @@ +/*! + * Bootstrap v3.0.2 + * + * Copyright 2013 Twitter, Inc + * Licensed under the Apache License v2.0 + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Designed and built with all the love in the world @twitter by @mdo and @fat. + */ + + +article,aside,details,figcaption,figure,footer,header,hgroup,main,nav,section,summary{display:block;} +audio,canvas,video{display:inline-block;} +audio:not([controls]){display:none;height:0;} +[hidden],template{display:none;} +html{font-family:sans-serif;-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%;} +body{margin:0;} +a{background:transparent;} +a:focus{outline:thin dotted;} +a:active,a:hover{outline:0;} +h1{font-size:2em;margin:0.67em 0;} +abbr[title]{border-bottom:1px dotted;} +b,strong{font-weight:bold;} +dfn{font-style:italic;} +hr{-moz-box-sizing:content-box;box-sizing:content-box;height:0;} +mark{background:#ff0;color:#000;} +code,kbd,pre,samp{font-family:monospace, serif;font-size:1em;} +pre{white-space:pre-wrap;} +q{quotes:"\201C" "\201D" "\2018" "\2019";} +small{font-size:80%;} +sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline;} +sup{top:-0.5em;} +sub{bottom:-0.25em;} +img{border:0;} +svg:not(:root){overflow:hidden;} +figure{margin:0;} +fieldset{border:1px solid #c0c0c0;margin:0 2px;padding:0.35em 0.625em 0.75em;} +legend{border:0;padding:0;} +button,input,select,textarea{font-family:inherit;font-size:100%;margin:0;} +button,input{line-height:normal;} +button,select{text-transform:none;} +button,html input[type="button"],input[type="reset"],input[type="submit"]{-webkit-appearance:button;cursor:pointer;} +button[disabled],html input[disabled]{cursor:default;} +input[type="checkbox"],input[type="radio"]{box-sizing:border-box;padding:0;} +input[type="search"]{-webkit-appearance:textfield;-moz-box-sizing:content-box;-webkit-box-sizing:content-box;box-sizing:content-box;} +input[type="search"]::-webkit-search-cancel-button,input[type="search"]::-webkit-search-decoration{-webkit-appearance:none;} +button::-moz-focus-inner,input::-moz-focus-inner{border:0;padding:0;} +textarea{overflow:auto;vertical-align:top;} +table{border-collapse:collapse;border-spacing:0;} +@media print{*{text-shadow:none !important;color:#000 !important;background:transparent !important;box-shadow:none !important;} a,a:visited{text-decoration:underline;} a[href]:after{content:" (" attr(href) ")";} abbr[title]:after{content:" (" attr(title) ")";} a[href^="javascript:"]:after,a[href^="#"]:after{content:"";} pre,blockquote{border:1px solid #999;page-break-inside:avoid;} thead{display:table-header-group;} tr,img{page-break-inside:avoid;} img{max-width:100% !important;} @page {margin:2cm .5cm;}p,h2,h3{orphans:3;widows:3;} h2,h3{page-break-after:avoid;} select{background:#fff !important;} .navbar{display:none;} .table td,.table th{background-color:#fff !important;} .btn>.caret,.dropup>.btn>.caret{border-top-color:#000 !important;} .label{border:1px solid #000;} .table{border-collapse:collapse !important;} .table-bordered th,.table-bordered td{border:1px solid #ddd !important;}}*,*:before,*:after{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;} +html{font-size:62.5%;-webkit-tap-highlight-color:rgba(0, 0, 0, 0);} +body{font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:14px;line-height:1.428571429;color:#333333;background-color:#ffffff;} +input,button,select,textarea{font-family:inherit;font-size:inherit;line-height:inherit;} +a{color:#428bca;text-decoration:none;}a:hover,a:focus{color:#2a6496;text-decoration:underline;} +a:focus{outline:thin dotted #333;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px;} +img{vertical-align:middle;} +.img-responsive{display:block;max-width:100%;height:auto;} +.img-rounded{border-radius:6px;} +.img-thumbnail{padding:4px;line-height:1.428571429;background-color:#ffffff;border:1px solid #dddddd;border-radius:4px;-webkit-transition:all 0.2s ease-in-out;transition:all 0.2s ease-in-out;display:inline-block;max-width:100%;height:auto;} +.img-circle{border-radius:50%;} +hr{margin-top:20px;margin-bottom:20px;border:0;border-top:1px solid #eeeeee;} +.sr-only{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0, 0, 0, 0);border:0;} +p{margin:0 0 10px;} +.lead{margin-bottom:20px;font-size:16px;font-weight:200;line-height:1.4;}@media (min-width:768px){.lead{font-size:21px;}} +small,.small{font-size:85%;} +cite{font-style:normal;} +.text-muted{color:#999999;} +.text-primary{color:#428bca;}.text-primary:hover{color:#3071a9;} +.text-warning{color:#c09853;}.text-warning:hover{color:#a47e3c;} +.text-danger{color:#b94a48;}.text-danger:hover{color:#953b39;} +.text-success{color:#468847;}.text-success:hover{color:#356635;} +.text-info{color:#3a87ad;}.text-info:hover{color:#2d6987;} +.text-left{text-align:left;} +.text-right{text-align:right;} +.text-center{text-align:center;} +h1,h2,h3,h4,h5,h6,.h1,.h2,.h3,.h4,.h5,.h6{font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-weight:500;line-height:1.1;color:inherit;}h1 small,h2 small,h3 small,h4 small,h5 small,h6 small,.h1 small,.h2 small,.h3 small,.h4 small,.h5 small,.h6 small,h1 .small,h2 .small,h3 .small,h4 .small,h5 .small,h6 .small,.h1 .small,.h2 .small,.h3 .small,.h4 .small,.h5 .small,.h6 .small{font-weight:normal;line-height:1;color:#999999;} +h1,h2,h3{margin-top:20px;margin-bottom:10px;}h1 small,h2 small,h3 small,h1 .small,h2 .small,h3 .small{font-size:65%;} +h4,h5,h6{margin-top:10px;margin-bottom:10px;}h4 small,h5 small,h6 small,h4 .small,h5 .small,h6 .small{font-size:75%;} +h1,.h1{font-size:36px;} +h2,.h2{font-size:30px;} +h3,.h3{font-size:24px;} +h4,.h4{font-size:18px;} +h5,.h5{font-size:14px;} +h6,.h6{font-size:12px;} +.page-header{padding-bottom:9px;margin:40px 0 20px;border-bottom:1px solid #eeeeee;} +ul,ol{margin-top:0;margin-bottom:10px;}ul ul,ol ul,ul ol,ol ol{margin-bottom:0;} +.list-unstyled{padding-left:0;list-style:none;} +.list-inline{padding-left:0;list-style:none;}.list-inline>li{display:inline-block;padding-left:5px;padding-right:5px;}.list-inline>li:first-child{padding-left:0;} +dl{margin-bottom:20px;} +dt,dd{line-height:1.428571429;} +dt{font-weight:bold;} +dd{margin-left:0;} +@media (min-width:768px){.dl-horizontal dt{float:left;width:160px;clear:left;text-align:right;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;} .dl-horizontal dd{margin-left:180px;}.dl-horizontal dd:before,.dl-horizontal dd:after{content:" ";display:table;} .dl-horizontal dd:after{clear:both;} .dl-horizontal dd:before,.dl-horizontal dd:after{content:" ";display:table;} .dl-horizontal dd:after{clear:both;}}abbr[title],abbr[data-original-title]{cursor:help;border-bottom:1px dotted #999999;} +abbr.initialism{font-size:90%;text-transform:uppercase;} +blockquote{padding:10px 20px;margin:0 0 20px;border-left:5px solid #eeeeee;}blockquote p{font-size:17.5px;font-weight:300;line-height:1.25;} +blockquote p:last-child{margin-bottom:0;} +blockquote small{display:block;line-height:1.428571429;color:#999999;}blockquote small:before{content:'\2014 \00A0';} +blockquote.pull-right{padding-right:15px;padding-left:0;border-right:5px solid #eeeeee;border-left:0;}blockquote.pull-right p,blockquote.pull-right small,blockquote.pull-right .small{text-align:right;} +blockquote.pull-right small:before,blockquote.pull-right .small:before{content:'';} +blockquote.pull-right small:after,blockquote.pull-right .small:after{content:'\00A0 \2014';} +blockquote:before,blockquote:after{content:"";} +address{margin-bottom:20px;font-style:normal;line-height:1.428571429;} +code,kbd,pre,samp{font-family:Monaco,Menlo,Consolas,"Courier New",monospace;} +code{padding:2px 4px;font-size:90%;color:#c7254e;background-color:#f9f2f4;white-space:nowrap;border-radius:4px;} +pre{display:block;padding:9.5px;margin:0 0 10px;font-size:13px;line-height:1.428571429;word-break:break-all;word-wrap:break-word;color:#333333;background-color:#f5f5f5;border:1px solid #cccccc;border-radius:4px;}pre code{padding:0;font-size:inherit;color:inherit;white-space:pre-wrap;background-color:transparent;border-radius:0;} +.pre-scrollable{max-height:340px;overflow-y:scroll;} +.container{margin-right:auto;margin-left:auto;padding-left:15px;padding-right:15px;}.container:before,.container:after{content:" ";display:table;} +.container:after{clear:both;} +.container:before,.container:after{content:" ";display:table;} +.container:after{clear:both;} +.row{margin-left:-15px;margin-right:-15px;}.row:before,.row:after{content:" ";display:table;} +.row:after{clear:both;} +.row:before,.row:after{content:" ";display:table;} +.row:after{clear:both;} +.col-xs-1, .col-sm-1, .col-md-1, .col-lg-1, .col-xs-2, .col-sm-2, .col-md-2, .col-lg-2, .col-xs-3, .col-sm-3, .col-md-3, .col-lg-3, .col-xs-4, .col-sm-4, .col-md-4, .col-lg-4, .col-xs-5, .col-sm-5, .col-md-5, .col-lg-5, .col-xs-6, .col-sm-6, .col-md-6, .col-lg-6, .col-xs-7, .col-sm-7, .col-md-7, .col-lg-7, .col-xs-8, .col-sm-8, .col-md-8, .col-lg-8, .col-xs-9, .col-sm-9, .col-md-9, .col-lg-9, .col-xs-10, .col-sm-10, .col-md-10, .col-lg-10, .col-xs-11, .col-sm-11, .col-md-11, .col-lg-11, .col-xs-12, .col-sm-12, .col-md-12, .col-lg-12{position:relative;min-height:1px;padding-left:15px;padding-right:15px;} +.col-xs-1, .col-xs-2, .col-xs-3, .col-xs-4, .col-xs-5, .col-xs-6, .col-xs-7, .col-xs-8, .col-xs-9, .col-xs-10, .col-xs-11{float:left;} +.col-xs-12{width:100%;} +.col-xs-11{width:91.66666666666666%;} +.col-xs-10{width:83.33333333333334%;} +.col-xs-9{width:75%;} +.col-xs-8{width:66.66666666666666%;} +.col-xs-7{width:58.333333333333336%;} +.col-xs-6{width:50%;} +.col-xs-5{width:41.66666666666667%;} +.col-xs-4{width:33.33333333333333%;} +.col-xs-3{width:25%;} +.col-xs-2{width:16.666666666666664%;} +.col-xs-1{width:8.333333333333332%;} +.col-xs-pull-12{right:100%;} +.col-xs-pull-11{right:91.66666666666666%;} +.col-xs-pull-10{right:83.33333333333334%;} +.col-xs-pull-9{right:75%;} +.col-xs-pull-8{right:66.66666666666666%;} +.col-xs-pull-7{right:58.333333333333336%;} +.col-xs-pull-6{right:50%;} +.col-xs-pull-5{right:41.66666666666667%;} +.col-xs-pull-4{right:33.33333333333333%;} +.col-xs-pull-3{right:25%;} +.col-xs-pull-2{right:16.666666666666664%;} +.col-xs-pull-1{right:8.333333333333332%;} +.col-xs-pull-0{right:0%;} +.col-xs-push-12{left:100%;} +.col-xs-push-11{left:91.66666666666666%;} +.col-xs-push-10{left:83.33333333333334%;} +.col-xs-push-9{left:75%;} +.col-xs-push-8{left:66.66666666666666%;} +.col-xs-push-7{left:58.333333333333336%;} +.col-xs-push-6{left:50%;} +.col-xs-push-5{left:41.66666666666667%;} +.col-xs-push-4{left:33.33333333333333%;} +.col-xs-push-3{left:25%;} +.col-xs-push-2{left:16.666666666666664%;} +.col-xs-push-1{left:8.333333333333332%;} +.col-xs-push-0{left:0%;} +.col-xs-offset-12{margin-left:100%;} +.col-xs-offset-11{margin-left:91.66666666666666%;} +.col-xs-offset-10{margin-left:83.33333333333334%;} +.col-xs-offset-9{margin-left:75%;} +.col-xs-offset-8{margin-left:66.66666666666666%;} +.col-xs-offset-7{margin-left:58.333333333333336%;} +.col-xs-offset-6{margin-left:50%;} +.col-xs-offset-5{margin-left:41.66666666666667%;} +.col-xs-offset-4{margin-left:33.33333333333333%;} +.col-xs-offset-3{margin-left:25%;} +.col-xs-offset-2{margin-left:16.666666666666664%;} +.col-xs-offset-1{margin-left:8.333333333333332%;} +.col-xs-offset-0{margin-left:0%;} +@media (min-width:768px){.container{width:750px;} .col-sm-1, .col-sm-2, .col-sm-3, .col-sm-4, .col-sm-5, .col-sm-6, .col-sm-7, .col-sm-8, .col-sm-9, .col-sm-10, .col-sm-11{float:left;} .col-sm-12{width:100%;} .col-sm-11{width:91.66666666666666%;} .col-sm-10{width:83.33333333333334%;} .col-sm-9{width:75%;} .col-sm-8{width:66.66666666666666%;} .col-sm-7{width:58.333333333333336%;} .col-sm-6{width:50%;} .col-sm-5{width:41.66666666666667%;} .col-sm-4{width:33.33333333333333%;} .col-sm-3{width:25%;} .col-sm-2{width:16.666666666666664%;} .col-sm-1{width:8.333333333333332%;} .col-sm-pull-12{right:100%;} .col-sm-pull-11{right:91.66666666666666%;} .col-sm-pull-10{right:83.33333333333334%;} .col-sm-pull-9{right:75%;} .col-sm-pull-8{right:66.66666666666666%;} .col-sm-pull-7{right:58.333333333333336%;} .col-sm-pull-6{right:50%;} .col-sm-pull-5{right:41.66666666666667%;} .col-sm-pull-4{right:33.33333333333333%;} .col-sm-pull-3{right:25%;} .col-sm-pull-2{right:16.666666666666664%;} .col-sm-pull-1{right:8.333333333333332%;} .col-sm-pull-0{right:0%;} .col-sm-push-12{left:100%;} .col-sm-push-11{left:91.66666666666666%;} .col-sm-push-10{left:83.33333333333334%;} .col-sm-push-9{left:75%;} .col-sm-push-8{left:66.66666666666666%;} .col-sm-push-7{left:58.333333333333336%;} .col-sm-push-6{left:50%;} .col-sm-push-5{left:41.66666666666667%;} .col-sm-push-4{left:33.33333333333333%;} .col-sm-push-3{left:25%;} .col-sm-push-2{left:16.666666666666664%;} .col-sm-push-1{left:8.333333333333332%;} .col-sm-push-0{left:0%;} .col-sm-offset-12{margin-left:100%;} .col-sm-offset-11{margin-left:91.66666666666666%;} .col-sm-offset-10{margin-left:83.33333333333334%;} .col-sm-offset-9{margin-left:75%;} .col-sm-offset-8{margin-left:66.66666666666666%;} .col-sm-offset-7{margin-left:58.333333333333336%;} .col-sm-offset-6{margin-left:50%;} .col-sm-offset-5{margin-left:41.66666666666667%;} .col-sm-offset-4{margin-left:33.33333333333333%;} .col-sm-offset-3{margin-left:25%;} .col-sm-offset-2{margin-left:16.666666666666664%;} .col-sm-offset-1{margin-left:8.333333333333332%;} .col-sm-offset-0{margin-left:0%;}}@media (min-width:992px){.container{width:970px;} .col-md-1, .col-md-2, .col-md-3, .col-md-4, .col-md-5, .col-md-6, .col-md-7, .col-md-8, .col-md-9, .col-md-10, .col-md-11{float:left;} .col-md-12{width:100%;} .col-md-11{width:91.66666666666666%;} .col-md-10{width:83.33333333333334%;} .col-md-9{width:75%;} .col-md-8{width:66.66666666666666%;} .col-md-7{width:58.333333333333336%;} .col-md-6{width:50%;} .col-md-5{width:41.66666666666667%;} .col-md-4{width:33.33333333333333%;} .col-md-3{width:25%;} .col-md-2{width:16.666666666666664%;} .col-md-1{width:8.333333333333332%;} .col-md-pull-12{right:100%;} .col-md-pull-11{right:91.66666666666666%;} .col-md-pull-10{right:83.33333333333334%;} .col-md-pull-9{right:75%;} .col-md-pull-8{right:66.66666666666666%;} .col-md-pull-7{right:58.333333333333336%;} .col-md-pull-6{right:50%;} .col-md-pull-5{right:41.66666666666667%;} .col-md-pull-4{right:33.33333333333333%;} .col-md-pull-3{right:25%;} .col-md-pull-2{right:16.666666666666664%;} .col-md-pull-1{right:8.333333333333332%;} .col-md-pull-0{right:0%;} .col-md-push-12{left:100%;} .col-md-push-11{left:91.66666666666666%;} .col-md-push-10{left:83.33333333333334%;} .col-md-push-9{left:75%;} .col-md-push-8{left:66.66666666666666%;} .col-md-push-7{left:58.333333333333336%;} .col-md-push-6{left:50%;} .col-md-push-5{left:41.66666666666667%;} .col-md-push-4{left:33.33333333333333%;} .col-md-push-3{left:25%;} .col-md-push-2{left:16.666666666666664%;} .col-md-push-1{left:8.333333333333332%;} .col-md-push-0{left:0%;} .col-md-offset-12{margin-left:100%;} .col-md-offset-11{margin-left:91.66666666666666%;} .col-md-offset-10{margin-left:83.33333333333334%;} .col-md-offset-9{margin-left:75%;} .col-md-offset-8{margin-left:66.66666666666666%;} .col-md-offset-7{margin-left:58.333333333333336%;} .col-md-offset-6{margin-left:50%;} .col-md-offset-5{margin-left:41.66666666666667%;} .col-md-offset-4{margin-left:33.33333333333333%;} .col-md-offset-3{margin-left:25%;} .col-md-offset-2{margin-left:16.666666666666664%;} .col-md-offset-1{margin-left:8.333333333333332%;} .col-md-offset-0{margin-left:0%;}}@media (min-width:1200px){.container{width:1170px;} .col-lg-1, .col-lg-2, .col-lg-3, .col-lg-4, .col-lg-5, .col-lg-6, .col-lg-7, .col-lg-8, .col-lg-9, .col-lg-10, .col-lg-11{float:left;} .col-lg-12{width:100%;} .col-lg-11{width:91.66666666666666%;} .col-lg-10{width:83.33333333333334%;} .col-lg-9{width:75%;} .col-lg-8{width:66.66666666666666%;} .col-lg-7{width:58.333333333333336%;} .col-lg-6{width:50%;} .col-lg-5{width:41.66666666666667%;} .col-lg-4{width:33.33333333333333%;} .col-lg-3{width:25%;} .col-lg-2{width:16.666666666666664%;} .col-lg-1{width:8.333333333333332%;} .col-lg-pull-12{right:100%;} .col-lg-pull-11{right:91.66666666666666%;} .col-lg-pull-10{right:83.33333333333334%;} .col-lg-pull-9{right:75%;} .col-lg-pull-8{right:66.66666666666666%;} .col-lg-pull-7{right:58.333333333333336%;} .col-lg-pull-6{right:50%;} .col-lg-pull-5{right:41.66666666666667%;} .col-lg-pull-4{right:33.33333333333333%;} .col-lg-pull-3{right:25%;} .col-lg-pull-2{right:16.666666666666664%;} .col-lg-pull-1{right:8.333333333333332%;} .col-lg-pull-0{right:0%;} .col-lg-push-12{left:100%;} .col-lg-push-11{left:91.66666666666666%;} .col-lg-push-10{left:83.33333333333334%;} .col-lg-push-9{left:75%;} .col-lg-push-8{left:66.66666666666666%;} .col-lg-push-7{left:58.333333333333336%;} .col-lg-push-6{left:50%;} .col-lg-push-5{left:41.66666666666667%;} .col-lg-push-4{left:33.33333333333333%;} .col-lg-push-3{left:25%;} .col-lg-push-2{left:16.666666666666664%;} .col-lg-push-1{left:8.333333333333332%;} .col-lg-push-0{left:0%;} .col-lg-offset-12{margin-left:100%;} .col-lg-offset-11{margin-left:91.66666666666666%;} .col-lg-offset-10{margin-left:83.33333333333334%;} .col-lg-offset-9{margin-left:75%;} .col-lg-offset-8{margin-left:66.66666666666666%;} .col-lg-offset-7{margin-left:58.333333333333336%;} .col-lg-offset-6{margin-left:50%;} .col-lg-offset-5{margin-left:41.66666666666667%;} .col-lg-offset-4{margin-left:33.33333333333333%;} .col-lg-offset-3{margin-left:25%;} .col-lg-offset-2{margin-left:16.666666666666664%;} .col-lg-offset-1{margin-left:8.333333333333332%;} .col-lg-offset-0{margin-left:0%;}}table{max-width:100%;background-color:transparent;} +th{text-align:left;} +.table{width:100%;margin-bottom:20px;}.table>thead>tr>th,.table>tbody>tr>th,.table>tfoot>tr>th,.table>thead>tr>td,.table>tbody>tr>td,.table>tfoot>tr>td{padding:8px;line-height:1.428571429;vertical-align:top;border-top:1px solid #dddddd;} +.table>thead>tr>th{vertical-align:bottom;border-bottom:2px solid #dddddd;} +.table>caption+thead>tr:first-child>th,.table>colgroup+thead>tr:first-child>th,.table>thead:first-child>tr:first-child>th,.table>caption+thead>tr:first-child>td,.table>colgroup+thead>tr:first-child>td,.table>thead:first-child>tr:first-child>td{border-top:0;} +.table>tbody+tbody{border-top:2px solid #dddddd;} +.table .table{background-color:#ffffff;} +.table-condensed>thead>tr>th,.table-condensed>tbody>tr>th,.table-condensed>tfoot>tr>th,.table-condensed>thead>tr>td,.table-condensed>tbody>tr>td,.table-condensed>tfoot>tr>td{padding:5px;} +.table-bordered{border:1px solid #dddddd;}.table-bordered>thead>tr>th,.table-bordered>tbody>tr>th,.table-bordered>tfoot>tr>th,.table-bordered>thead>tr>td,.table-bordered>tbody>tr>td,.table-bordered>tfoot>tr>td{border:1px solid #dddddd;} +.table-bordered>thead>tr>th,.table-bordered>thead>tr>td{border-bottom-width:2px;} +.table-striped>tbody>tr:nth-child(odd)>td,.table-striped>tbody>tr:nth-child(odd)>th{background-color:#f9f9f9;} +.table-hover>tbody>tr:hover>td,.table-hover>tbody>tr:hover>th{background-color:#f5f5f5;} +table col[class*="col-"]{float:none;display:table-column;} +table td[class*="col-"],table th[class*="col-"]{float:none;display:table-cell;} +.table>thead>tr>td.active,.table>tbody>tr>td.active,.table>tfoot>tr>td.active,.table>thead>tr>th.active,.table>tbody>tr>th.active,.table>tfoot>tr>th.active,.table>thead>tr.active>td,.table>tbody>tr.active>td,.table>tfoot>tr.active>td,.table>thead>tr.active>th,.table>tbody>tr.active>th,.table>tfoot>tr.active>th{background-color:#f5f5f5;} +.table>thead>tr>td.success,.table>tbody>tr>td.success,.table>tfoot>tr>td.success,.table>thead>tr>th.success,.table>tbody>tr>th.success,.table>tfoot>tr>th.success,.table>thead>tr.success>td,.table>tbody>tr.success>td,.table>tfoot>tr.success>td,.table>thead>tr.success>th,.table>tbody>tr.success>th,.table>tfoot>tr.success>th{background-color:#dff0d8;} +.table-hover>tbody>tr>td.success:hover,.table-hover>tbody>tr>th.success:hover,.table-hover>tbody>tr.success:hover>td,.table-hover>tbody>tr.success:hover>th{background-color:#d0e9c6;} +.table>thead>tr>td.danger,.table>tbody>tr>td.danger,.table>tfoot>tr>td.danger,.table>thead>tr>th.danger,.table>tbody>tr>th.danger,.table>tfoot>tr>th.danger,.table>thead>tr.danger>td,.table>tbody>tr.danger>td,.table>tfoot>tr.danger>td,.table>thead>tr.danger>th,.table>tbody>tr.danger>th,.table>tfoot>tr.danger>th{background-color:#f2dede;} +.table-hover>tbody>tr>td.danger:hover,.table-hover>tbody>tr>th.danger:hover,.table-hover>tbody>tr.danger:hover>td,.table-hover>tbody>tr.danger:hover>th{background-color:#ebcccc;} +.table>thead>tr>td.warning,.table>tbody>tr>td.warning,.table>tfoot>tr>td.warning,.table>thead>tr>th.warning,.table>tbody>tr>th.warning,.table>tfoot>tr>th.warning,.table>thead>tr.warning>td,.table>tbody>tr.warning>td,.table>tfoot>tr.warning>td,.table>thead>tr.warning>th,.table>tbody>tr.warning>th,.table>tfoot>tr.warning>th{background-color:#fcf8e3;} +.table-hover>tbody>tr>td.warning:hover,.table-hover>tbody>tr>th.warning:hover,.table-hover>tbody>tr.warning:hover>td,.table-hover>tbody>tr.warning:hover>th{background-color:#faf2cc;} +@media (max-width:767px){.table-responsive{width:100%;margin-bottom:15px;overflow-y:hidden;overflow-x:scroll;-ms-overflow-style:-ms-autohiding-scrollbar;border:1px solid #dddddd;-webkit-overflow-scrolling:touch;}.table-responsive>.table{margin-bottom:0;}.table-responsive>.table>thead>tr>th,.table-responsive>.table>tbody>tr>th,.table-responsive>.table>tfoot>tr>th,.table-responsive>.table>thead>tr>td,.table-responsive>.table>tbody>tr>td,.table-responsive>.table>tfoot>tr>td{white-space:nowrap;} .table-responsive>.table-bordered{border:0;}.table-responsive>.table-bordered>thead>tr>th:first-child,.table-responsive>.table-bordered>tbody>tr>th:first-child,.table-responsive>.table-bordered>tfoot>tr>th:first-child,.table-responsive>.table-bordered>thead>tr>td:first-child,.table-responsive>.table-bordered>tbody>tr>td:first-child,.table-responsive>.table-bordered>tfoot>tr>td:first-child{border-left:0;} .table-responsive>.table-bordered>thead>tr>th:last-child,.table-responsive>.table-bordered>tbody>tr>th:last-child,.table-responsive>.table-bordered>tfoot>tr>th:last-child,.table-responsive>.table-bordered>thead>tr>td:last-child,.table-responsive>.table-bordered>tbody>tr>td:last-child,.table-responsive>.table-bordered>tfoot>tr>td:last-child{border-right:0;} .table-responsive>.table-bordered>tbody>tr:last-child>th,.table-responsive>.table-bordered>tfoot>tr:last-child>th,.table-responsive>.table-bordered>tbody>tr:last-child>td,.table-responsive>.table-bordered>tfoot>tr:last-child>td{border-bottom:0;}}fieldset{padding:0;margin:0;border:0;} +legend{display:block;width:100%;padding:0;margin-bottom:20px;font-size:21px;line-height:inherit;color:#333333;border:0;border-bottom:1px solid #e5e5e5;} +label{display:inline-block;margin-bottom:5px;font-weight:bold;} +input[type="search"]{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;} +input[type="radio"],input[type="checkbox"]{margin:4px 0 0;margin-top:1px \9;line-height:normal;} +input[type="file"]{display:block;} +select[multiple],select[size]{height:auto;} +select optgroup{font-size:inherit;font-style:inherit;font-family:inherit;} +input[type="file"]:focus,input[type="radio"]:focus,input[type="checkbox"]:focus{outline:thin dotted #333;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px;} +input[type="number"]::-webkit-outer-spin-button,input[type="number"]::-webkit-inner-spin-button{height:auto;} +output{display:block;padding-top:7px;font-size:14px;line-height:1.428571429;color:#555555;vertical-align:middle;} +.form-control{display:block;width:100%;height:34px;padding:6px 12px;font-size:14px;line-height:1.428571429;color:#555555;vertical-align:middle;background-color:#ffffff;background-image:none;border:1px solid #cccccc;border-radius:4px;-webkit-box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.075);box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.075);-webkit-transition:border-color ease-in-out .15s, box-shadow ease-in-out .15s;transition:border-color ease-in-out .15s, box-shadow ease-in-out .15s;}.form-control:focus{border-color:#66afe9;outline:0;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px rgba(102, 175, 233, 0.6);box-shadow:inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px rgba(102, 175, 233, 0.6);} +.form-control:-moz-placeholder{color:#999999;} +.form-control::-moz-placeholder{color:#999999;} +.form-control:-ms-input-placeholder{color:#999999;} +.form-control::-webkit-input-placeholder{color:#999999;} +.form-control[disabled],.form-control[readonly],fieldset[disabled] .form-control{cursor:not-allowed;background-color:#eeeeee;} +textarea.form-control{height:auto;} +.form-group{margin-bottom:15px;} +.radio,.checkbox{display:block;min-height:20px;margin-top:10px;margin-bottom:10px;padding-left:20px;vertical-align:middle;}.radio label,.checkbox label{display:inline;margin-bottom:0;font-weight:normal;cursor:pointer;} +.radio input[type="radio"],.radio-inline input[type="radio"],.checkbox input[type="checkbox"],.checkbox-inline input[type="checkbox"]{float:left;margin-left:-20px;} +.radio+.radio,.checkbox+.checkbox{margin-top:-5px;} +.radio-inline,.checkbox-inline{display:inline-block;padding-left:20px;margin-bottom:0;vertical-align:middle;font-weight:normal;cursor:pointer;} +.radio-inline+.radio-inline,.checkbox-inline+.checkbox-inline{margin-top:0;margin-left:10px;} +input[type="radio"][disabled],input[type="checkbox"][disabled],.radio[disabled],.radio-inline[disabled],.checkbox[disabled],.checkbox-inline[disabled],fieldset[disabled] input[type="radio"],fieldset[disabled] input[type="checkbox"],fieldset[disabled] .radio,fieldset[disabled] .radio-inline,fieldset[disabled] .checkbox,fieldset[disabled] .checkbox-inline{cursor:not-allowed;} +.input-sm{height:30px;padding:5px 10px;font-size:12px;line-height:1.5;border-radius:3px;}select.input-sm{height:30px;line-height:30px;} +textarea.input-sm{height:auto;} +.input-lg{height:45px;padding:10px 16px;font-size:18px;line-height:1.33;border-radius:6px;}select.input-lg{height:45px;line-height:45px;} +textarea.input-lg{height:auto;} +.has-warning .help-block,.has-warning .control-label,.has-warning .radio,.has-warning .checkbox,.has-warning .radio-inline,.has-warning .checkbox-inline{color:#c09853;} +.has-warning .form-control{border-color:#c09853;-webkit-box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.075);box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.075);}.has-warning .form-control:focus{border-color:#a47e3c;-webkit-box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.075),0 0 6px #dbc59e;box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.075),0 0 6px #dbc59e;} +.has-warning .input-group-addon{color:#c09853;border-color:#c09853;background-color:#fcf8e3;} +.has-error .help-block,.has-error .control-label,.has-error .radio,.has-error .checkbox,.has-error .radio-inline,.has-error .checkbox-inline{color:#b94a48;} +.has-error .form-control{border-color:#b94a48;-webkit-box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.075);box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.075);}.has-error .form-control:focus{border-color:#953b39;-webkit-box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.075),0 0 6px #d59392;box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.075),0 0 6px #d59392;} +.has-error .input-group-addon{color:#b94a48;border-color:#b94a48;background-color:#f2dede;} +.has-success .help-block,.has-success .control-label,.has-success .radio,.has-success .checkbox,.has-success .radio-inline,.has-success .checkbox-inline{color:#468847;} +.has-success .form-control{border-color:#468847;-webkit-box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.075);box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.075);}.has-success .form-control:focus{border-color:#356635;-webkit-box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.075),0 0 6px #7aba7b;box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.075),0 0 6px #7aba7b;} +.has-success .input-group-addon{color:#468847;border-color:#468847;background-color:#dff0d8;} +.form-control-static{margin-bottom:0;} +.help-block{display:block;margin-top:5px;margin-bottom:10px;color:#737373;} +@media (min-width:768px){.form-inline .form-group{display:inline-block;margin-bottom:0;vertical-align:middle;} .form-inline .form-control{display:inline-block;} .form-inline .radio,.form-inline .checkbox{display:inline-block;margin-top:0;margin-bottom:0;padding-left:0;} .form-inline .radio input[type="radio"],.form-inline .checkbox input[type="checkbox"]{float:none;margin-left:0;}} +.form-horizontal .control-label,.form-horizontal .radio,.form-horizontal .checkbox,.form-horizontal .radio-inline,.form-horizontal .checkbox-inline{margin-top:0;margin-bottom:0;padding-top:7px;} +.form-horizontal .form-group{margin-left:-15px;margin-right:-15px;}.form-horizontal .form-group:before,.form-horizontal .form-group:after{content:" ";display:table;} +.form-horizontal .form-group:after{clear:both;} +.form-horizontal .form-group:before,.form-horizontal .form-group:after{content:" ";display:table;} +.form-horizontal .form-group:after{clear:both;} +.form-horizontal .form-control-static{padding-top:7px;} +@media (min-width:768px){.form-horizontal .control-label{text-align:right;}} +.btn{display:inline-block;margin-bottom:0;font-weight:normal;text-align:center;vertical-align:middle;cursor:pointer;background-image:none;border:1px solid transparent;white-space:nowrap;padding:6px 12px;font-size:14px;line-height:1.428571429;border-radius:4px;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;-o-user-select:none;user-select:none;}.btn:focus{outline:thin dotted #333;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px;} +.btn:hover,.btn:focus{color:#333333;text-decoration:none;} +.btn:active,.btn.active{outline:0;background-image:none;-webkit-box-shadow:inset 0 3px 5px rgba(0, 0, 0, 0.125);box-shadow:inset 0 3px 5px rgba(0, 0, 0, 0.125);} +.btn.disabled,.btn[disabled],fieldset[disabled] .btn{cursor:not-allowed;pointer-events:none;opacity:0.65;filter:alpha(opacity=65);-webkit-box-shadow:none;box-shadow:none;} +.btn-default{color:#333333;background-color:#ffffff;border-color:#cccccc;}.btn-default:hover,.btn-default:focus,.btn-default:active,.btn-default.active,.open .dropdown-toggle.btn-default{color:#333333;background-color:#ebebeb;border-color:#adadad;} +.btn-default:active,.btn-default.active,.open .dropdown-toggle.btn-default{background-image:none;} +.btn-default.disabled,.btn-default[disabled],fieldset[disabled] .btn-default,.btn-default.disabled:hover,.btn-default[disabled]:hover,fieldset[disabled] .btn-default:hover,.btn-default.disabled:focus,.btn-default[disabled]:focus,fieldset[disabled] .btn-default:focus,.btn-default.disabled:active,.btn-default[disabled]:active,fieldset[disabled] .btn-default:active,.btn-default.disabled.active,.btn-default[disabled].active,fieldset[disabled] .btn-default.active{background-color:#ffffff;border-color:#cccccc;} +.btn-primary{color:#ffffff;background-color:#428bca;border-color:#357ebd;}.btn-primary:hover,.btn-primary:focus,.btn-primary:active,.btn-primary.active,.open .dropdown-toggle.btn-primary{color:#ffffff;background-color:#3276b1;border-color:#285e8e;} +.btn-primary:active,.btn-primary.active,.open .dropdown-toggle.btn-primary{background-image:none;} +.btn-primary.disabled,.btn-primary[disabled],fieldset[disabled] .btn-primary,.btn-primary.disabled:hover,.btn-primary[disabled]:hover,fieldset[disabled] .btn-primary:hover,.btn-primary.disabled:focus,.btn-primary[disabled]:focus,fieldset[disabled] .btn-primary:focus,.btn-primary.disabled:active,.btn-primary[disabled]:active,fieldset[disabled] .btn-primary:active,.btn-primary.disabled.active,.btn-primary[disabled].active,fieldset[disabled] .btn-primary.active{background-color:#428bca;border-color:#357ebd;} +.btn-warning{color:#ffffff;background-color:#f0ad4e;border-color:#eea236;}.btn-warning:hover,.btn-warning:focus,.btn-warning:active,.btn-warning.active,.open .dropdown-toggle.btn-warning{color:#ffffff;background-color:#ed9c28;border-color:#d58512;} +.btn-warning:active,.btn-warning.active,.open .dropdown-toggle.btn-warning{background-image:none;} +.btn-warning.disabled,.btn-warning[disabled],fieldset[disabled] .btn-warning,.btn-warning.disabled:hover,.btn-warning[disabled]:hover,fieldset[disabled] .btn-warning:hover,.btn-warning.disabled:focus,.btn-warning[disabled]:focus,fieldset[disabled] .btn-warning:focus,.btn-warning.disabled:active,.btn-warning[disabled]:active,fieldset[disabled] .btn-warning:active,.btn-warning.disabled.active,.btn-warning[disabled].active,fieldset[disabled] .btn-warning.active{background-color:#f0ad4e;border-color:#eea236;} +.btn-danger{color:#ffffff;background-color:#d9534f;border-color:#d43f3a;}.btn-danger:hover,.btn-danger:focus,.btn-danger:active,.btn-danger.active,.open .dropdown-toggle.btn-danger{color:#ffffff;background-color:#d2322d;border-color:#ac2925;} +.btn-danger:active,.btn-danger.active,.open .dropdown-toggle.btn-danger{background-image:none;} +.btn-danger.disabled,.btn-danger[disabled],fieldset[disabled] .btn-danger,.btn-danger.disabled:hover,.btn-danger[disabled]:hover,fieldset[disabled] .btn-danger:hover,.btn-danger.disabled:focus,.btn-danger[disabled]:focus,fieldset[disabled] .btn-danger:focus,.btn-danger.disabled:active,.btn-danger[disabled]:active,fieldset[disabled] .btn-danger:active,.btn-danger.disabled.active,.btn-danger[disabled].active,fieldset[disabled] .btn-danger.active{background-color:#d9534f;border-color:#d43f3a;} +.btn-success{color:#ffffff;background-color:#5cb85c;border-color:#4cae4c;}.btn-success:hover,.btn-success:focus,.btn-success:active,.btn-success.active,.open .dropdown-toggle.btn-success{color:#ffffff;background-color:#47a447;border-color:#398439;} +.btn-success:active,.btn-success.active,.open .dropdown-toggle.btn-success{background-image:none;} +.btn-success.disabled,.btn-success[disabled],fieldset[disabled] .btn-success,.btn-success.disabled:hover,.btn-success[disabled]:hover,fieldset[disabled] .btn-success:hover,.btn-success.disabled:focus,.btn-success[disabled]:focus,fieldset[disabled] .btn-success:focus,.btn-success.disabled:active,.btn-success[disabled]:active,fieldset[disabled] .btn-success:active,.btn-success.disabled.active,.btn-success[disabled].active,fieldset[disabled] .btn-success.active{background-color:#5cb85c;border-color:#4cae4c;} +.btn-info{color:#ffffff;background-color:#5bc0de;border-color:#46b8da;}.btn-info:hover,.btn-info:focus,.btn-info:active,.btn-info.active,.open .dropdown-toggle.btn-info{color:#ffffff;background-color:#39b3d7;border-color:#269abc;} +.btn-info:active,.btn-info.active,.open .dropdown-toggle.btn-info{background-image:none;} +.btn-info.disabled,.btn-info[disabled],fieldset[disabled] .btn-info,.btn-info.disabled:hover,.btn-info[disabled]:hover,fieldset[disabled] .btn-info:hover,.btn-info.disabled:focus,.btn-info[disabled]:focus,fieldset[disabled] .btn-info:focus,.btn-info.disabled:active,.btn-info[disabled]:active,fieldset[disabled] .btn-info:active,.btn-info.disabled.active,.btn-info[disabled].active,fieldset[disabled] .btn-info.active{background-color:#5bc0de;border-color:#46b8da;} +.btn-link{color:#428bca;font-weight:normal;cursor:pointer;border-radius:0;}.btn-link,.btn-link:active,.btn-link[disabled],fieldset[disabled] .btn-link{background-color:transparent;-webkit-box-shadow:none;box-shadow:none;} +.btn-link,.btn-link:hover,.btn-link:focus,.btn-link:active{border-color:transparent;} +.btn-link:hover,.btn-link:focus{color:#2a6496;text-decoration:underline;background-color:transparent;} +.btn-link[disabled]:hover,fieldset[disabled] .btn-link:hover,.btn-link[disabled]:focus,fieldset[disabled] .btn-link:focus{color:#999999;text-decoration:none;} +.btn-lg{padding:10px 16px;font-size:18px;line-height:1.33;border-radius:6px;} +.btn-sm,.btn-xs{padding:5px 10px;font-size:12px;line-height:1.5;border-radius:3px;} +.btn-xs{padding:1px 5px;} +.btn-block{display:block;width:100%;padding-left:0;padding-right:0;} +.btn-block+.btn-block{margin-top:5px;} +input[type="submit"].btn-block,input[type="reset"].btn-block,input[type="button"].btn-block{width:100%;} +.fade{opacity:0;-webkit-transition:opacity 0.15s linear;transition:opacity 0.15s linear;}.fade.in{opacity:1;} +.collapse{display:none;}.collapse.in{display:block;} +.collapsing{position:relative;height:0;overflow:hidden;-webkit-transition:height 0.35s ease;transition:height 0.35s ease;} +@font-face{font-family:'Glyphicons Halflings';src:url('../fonts/glyphicons-halflings-regular.eot');src:url('../fonts/glyphicons-halflings-regular.eot?#iefix') format('embedded-opentype'),url('../fonts/glyphicons-halflings-regular.woff') format('woff'),url('../fonts/glyphicons-halflings-regular.ttf') format('truetype'),url('../fonts/glyphicons-halflings-regular.svg#glyphicons_halflingsregular') format('svg');}.glyphicon{position:relative;top:1px;display:inline-block;font-family:'Glyphicons Halflings';font-style:normal;font-weight:normal;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;}.glyphicon:empty{width:1em;} +.glyphicon-asterisk:before{content:"\2a";} +.glyphicon-plus:before{content:"\2b";} +.glyphicon-euro:before{content:"\20ac";} +.glyphicon-minus:before{content:"\2212";} +.glyphicon-cloud:before{content:"\2601";} +.glyphicon-envelope:before{content:"\2709";} +.glyphicon-pencil:before{content:"\270f";} +.glyphicon-glass:before{content:"\e001";} +.glyphicon-music:before{content:"\e002";} +.glyphicon-search:before{content:"\e003";} +.glyphicon-heart:before{content:"\e005";} +.glyphicon-star:before{content:"\e006";} +.glyphicon-star-empty:before{content:"\e007";} +.glyphicon-user:before{content:"\e008";} +.glyphicon-film:before{content:"\e009";} +.glyphicon-th-large:before{content:"\e010";} +.glyphicon-th:before{content:"\e011";} +.glyphicon-th-list:before{content:"\e012";} +.glyphicon-ok:before{content:"\e013";} +.glyphicon-remove:before{content:"\e014";} +.glyphicon-zoom-in:before{content:"\e015";} +.glyphicon-zoom-out:before{content:"\e016";} +.glyphicon-off:before{content:"\e017";} +.glyphicon-signal:before{content:"\e018";} +.glyphicon-cog:before{content:"\e019";} +.glyphicon-trash:before{content:"\e020";} +.glyphicon-home:before{content:"\e021";} +.glyphicon-file:before{content:"\e022";} +.glyphicon-time:before{content:"\e023";} +.glyphicon-road:before{content:"\e024";} +.glyphicon-download-alt:before{content:"\e025";} +.glyphicon-download:before{content:"\e026";} +.glyphicon-upload:before{content:"\e027";} +.glyphicon-inbox:before{content:"\e028";} +.glyphicon-play-circle:before{content:"\e029";} +.glyphicon-repeat:before{content:"\e030";} +.glyphicon-refresh:before{content:"\e031";} +.glyphicon-list-alt:before{content:"\e032";} +.glyphicon-lock:before{content:"\e033";} +.glyphicon-flag:before{content:"\e034";} +.glyphicon-headphones:before{content:"\e035";} +.glyphicon-volume-off:before{content:"\e036";} +.glyphicon-volume-down:before{content:"\e037";} +.glyphicon-volume-up:before{content:"\e038";} +.glyphicon-qrcode:before{content:"\e039";} +.glyphicon-barcode:before{content:"\e040";} +.glyphicon-tag:before{content:"\e041";} +.glyphicon-tags:before{content:"\e042";} +.glyphicon-book:before{content:"\e043";} +.glyphicon-bookmark:before{content:"\e044";} +.glyphicon-print:before{content:"\e045";} +.glyphicon-camera:before{content:"\e046";} +.glyphicon-font:before{content:"\e047";} +.glyphicon-bold:before{content:"\e048";} +.glyphicon-italic:before{content:"\e049";} +.glyphicon-text-height:before{content:"\e050";} +.glyphicon-text-width:before{content:"\e051";} +.glyphicon-align-left:before{content:"\e052";} +.glyphicon-align-center:before{content:"\e053";} +.glyphicon-align-right:before{content:"\e054";} +.glyphicon-align-justify:before{content:"\e055";} +.glyphicon-list:before{content:"\e056";} +.glyphicon-indent-left:before{content:"\e057";} +.glyphicon-indent-right:before{content:"\e058";} +.glyphicon-facetime-video:before{content:"\e059";} +.glyphicon-picture:before{content:"\e060";} +.glyphicon-map-marker:before{content:"\e062";} +.glyphicon-adjust:before{content:"\e063";} +.glyphicon-tint:before{content:"\e064";} +.glyphicon-edit:before{content:"\e065";} +.glyphicon-share:before{content:"\e066";} +.glyphicon-check:before{content:"\e067";} +.glyphicon-move:before{content:"\e068";} +.glyphicon-step-backward:before{content:"\e069";} +.glyphicon-fast-backward:before{content:"\e070";} +.glyphicon-backward:before{content:"\e071";} +.glyphicon-play:before{content:"\e072";} +.glyphicon-pause:before{content:"\e073";} +.glyphicon-stop:before{content:"\e074";} +.glyphicon-forward:before{content:"\e075";} +.glyphicon-fast-forward:before{content:"\e076";} +.glyphicon-step-forward:before{content:"\e077";} +.glyphicon-eject:before{content:"\e078";} +.glyphicon-chevron-left:before{content:"\e079";} +.glyphicon-chevron-right:before{content:"\e080";} +.glyphicon-plus-sign:before{content:"\e081";} +.glyphicon-minus-sign:before{content:"\e082";} +.glyphicon-remove-sign:before{content:"\e083";} +.glyphicon-ok-sign:before{content:"\e084";} +.glyphicon-question-sign:before{content:"\e085";} +.glyphicon-info-sign:before{content:"\e086";} +.glyphicon-screenshot:before{content:"\e087";} +.glyphicon-remove-circle:before{content:"\e088";} +.glyphicon-ok-circle:before{content:"\e089";} +.glyphicon-ban-circle:before{content:"\e090";} +.glyphicon-arrow-left:before{content:"\e091";} +.glyphicon-arrow-right:before{content:"\e092";} +.glyphicon-arrow-up:before{content:"\e093";} +.glyphicon-arrow-down:before{content:"\e094";} +.glyphicon-share-alt:before{content:"\e095";} +.glyphicon-resize-full:before{content:"\e096";} +.glyphicon-resize-small:before{content:"\e097";} +.glyphicon-exclamation-sign:before{content:"\e101";} +.glyphicon-gift:before{content:"\e102";} +.glyphicon-leaf:before{content:"\e103";} +.glyphicon-fire:before{content:"\e104";} +.glyphicon-eye-open:before{content:"\e105";} +.glyphicon-eye-close:before{content:"\e106";} +.glyphicon-warning-sign:before{content:"\e107";} +.glyphicon-plane:before{content:"\e108";} +.glyphicon-calendar:before{content:"\e109";} +.glyphicon-random:before{content:"\e110";} +.glyphicon-comment:before{content:"\e111";} +.glyphicon-magnet:before{content:"\e112";} +.glyphicon-chevron-up:before{content:"\e113";} +.glyphicon-chevron-down:before{content:"\e114";} +.glyphicon-retweet:before{content:"\e115";} +.glyphicon-shopping-cart:before{content:"\e116";} +.glyphicon-folder-close:before{content:"\e117";} +.glyphicon-folder-open:before{content:"\e118";} +.glyphicon-resize-vertical:before{content:"\e119";} +.glyphicon-resize-horizontal:before{content:"\e120";} +.glyphicon-hdd:before{content:"\e121";} +.glyphicon-bullhorn:before{content:"\e122";} +.glyphicon-bell:before{content:"\e123";} +.glyphicon-certificate:before{content:"\e124";} +.glyphicon-thumbs-up:before{content:"\e125";} +.glyphicon-thumbs-down:before{content:"\e126";} +.glyphicon-hand-right:before{content:"\e127";} +.glyphicon-hand-left:before{content:"\e128";} +.glyphicon-hand-up:before{content:"\e129";} +.glyphicon-hand-down:before{content:"\e130";} +.glyphicon-circle-arrow-right:before{content:"\e131";} +.glyphicon-circle-arrow-left:before{content:"\e132";} +.glyphicon-circle-arrow-up:before{content:"\e133";} +.glyphicon-circle-arrow-down:before{content:"\e134";} +.glyphicon-globe:before{content:"\e135";} +.glyphicon-wrench:before{content:"\e136";} +.glyphicon-tasks:before{content:"\e137";} +.glyphicon-filter:before{content:"\e138";} +.glyphicon-briefcase:before{content:"\e139";} +.glyphicon-fullscreen:before{content:"\e140";} +.glyphicon-dashboard:before{content:"\e141";} +.glyphicon-paperclip:before{content:"\e142";} +.glyphicon-heart-empty:before{content:"\e143";} +.glyphicon-link:before{content:"\e144";} +.glyphicon-phone:before{content:"\e145";} +.glyphicon-pushpin:before{content:"\e146";} +.glyphicon-usd:before{content:"\e148";} +.glyphicon-gbp:before{content:"\e149";} +.glyphicon-sort:before{content:"\e150";} +.glyphicon-sort-by-alphabet:before{content:"\e151";} +.glyphicon-sort-by-alphabet-alt:before{content:"\e152";} +.glyphicon-sort-by-order:before{content:"\e153";} +.glyphicon-sort-by-order-alt:before{content:"\e154";} +.glyphicon-sort-by-attributes:before{content:"\e155";} +.glyphicon-sort-by-attributes-alt:before{content:"\e156";} +.glyphicon-unchecked:before{content:"\e157";} +.glyphicon-expand:before{content:"\e158";} +.glyphicon-collapse-down:before{content:"\e159";} +.glyphicon-collapse-up:before{content:"\e160";} +.glyphicon-log-in:before{content:"\e161";} +.glyphicon-flash:before{content:"\e162";} +.glyphicon-log-out:before{content:"\e163";} +.glyphicon-new-window:before{content:"\e164";} +.glyphicon-record:before{content:"\e165";} +.glyphicon-save:before{content:"\e166";} +.glyphicon-open:before{content:"\e167";} +.glyphicon-saved:before{content:"\e168";} +.glyphicon-import:before{content:"\e169";} +.glyphicon-export:before{content:"\e170";} +.glyphicon-send:before{content:"\e171";} +.glyphicon-floppy-disk:before{content:"\e172";} +.glyphicon-floppy-saved:before{content:"\e173";} +.glyphicon-floppy-remove:before{content:"\e174";} +.glyphicon-floppy-save:before{content:"\e175";} +.glyphicon-floppy-open:before{content:"\e176";} +.glyphicon-credit-card:before{content:"\e177";} +.glyphicon-transfer:before{content:"\e178";} +.glyphicon-cutlery:before{content:"\e179";} +.glyphicon-header:before{content:"\e180";} +.glyphicon-compressed:before{content:"\e181";} +.glyphicon-earphone:before{content:"\e182";} +.glyphicon-phone-alt:before{content:"\e183";} +.glyphicon-tower:before{content:"\e184";} +.glyphicon-stats:before{content:"\e185";} +.glyphicon-sd-video:before{content:"\e186";} +.glyphicon-hd-video:before{content:"\e187";} +.glyphicon-subtitles:before{content:"\e188";} +.glyphicon-sound-stereo:before{content:"\e189";} +.glyphicon-sound-dolby:before{content:"\e190";} +.glyphicon-sound-5-1:before{content:"\e191";} +.glyphicon-sound-6-1:before{content:"\e192";} +.glyphicon-sound-7-1:before{content:"\e193";} +.glyphicon-copyright-mark:before{content:"\e194";} +.glyphicon-registration-mark:before{content:"\e195";} +.glyphicon-cloud-download:before{content:"\e197";} +.glyphicon-cloud-upload:before{content:"\e198";} +.glyphicon-tree-conifer:before{content:"\e199";} +.glyphicon-tree-deciduous:before{content:"\e200";} +.caret{display:inline-block;width:0;height:0;margin-left:2px;vertical-align:middle;border-top:4px solid #000000;border-right:4px solid transparent;border-left:4px solid transparent;border-bottom:0 dotted;} +.dropdown{position:relative;} +.dropdown-toggle:focus{outline:0;} +.dropdown-menu{position:absolute;top:100%;left:0;z-index:1000;display:none;float:left;min-width:160px;padding:5px 0;margin:2px 0 0;list-style:none;font-size:14px;background-color:#ffffff;border:1px solid #cccccc;border:1px solid rgba(0, 0, 0, 0.15);border-radius:4px;-webkit-box-shadow:0 6px 12px rgba(0, 0, 0, 0.175);box-shadow:0 6px 12px rgba(0, 0, 0, 0.175);background-clip:padding-box;}.dropdown-menu.pull-right{right:0;left:auto;} +.dropdown-menu .divider{height:1px;margin:9px 0;overflow:hidden;background-color:#e5e5e5;} +.dropdown-menu>li>a{display:block;padding:3px 20px;clear:both;font-weight:normal;line-height:1.428571429;color:#333333;white-space:nowrap;} +.dropdown-menu>li>a:hover,.dropdown-menu>li>a:focus{text-decoration:none;color:#262626;background-color:#f5f5f5;} +.dropdown-menu>.active>a,.dropdown-menu>.active>a:hover,.dropdown-menu>.active>a:focus{color:#ffffff;text-decoration:none;outline:0;background-color:#428bca;} +.dropdown-menu>.disabled>a,.dropdown-menu>.disabled>a:hover,.dropdown-menu>.disabled>a:focus{color:#999999;} +.dropdown-menu>.disabled>a:hover,.dropdown-menu>.disabled>a:focus{text-decoration:none;background-color:transparent;background-image:none;filter:progid:DXImageTransform.Microsoft.gradient(enabled = false);cursor:not-allowed;} +.open>.dropdown-menu{display:block;} +.open>a{outline:0;} +.dropdown-header{display:block;padding:3px 20px;font-size:12px;line-height:1.428571429;color:#999999;} +.dropdown-backdrop{position:fixed;left:0;right:0;bottom:0;top:0;z-index:990;} +.pull-right>.dropdown-menu{right:0;left:auto;} +.dropup .caret,.navbar-fixed-bottom .dropdown .caret{border-top:0 dotted;border-bottom:4px solid #000000;content:"";} +.dropup .dropdown-menu,.navbar-fixed-bottom .dropdown .dropdown-menu{top:auto;bottom:100%;margin-bottom:1px;} +@media (min-width:768px){.navbar-right .dropdown-menu{right:0;left:auto;}}.btn-default .caret{border-top-color:#333333;} +.btn-primary .caret,.btn-success .caret,.btn-warning .caret,.btn-danger .caret,.btn-info .caret{border-top-color:#fff;} +.dropup .btn-default .caret{border-bottom-color:#333333;} +.dropup .btn-primary .caret,.dropup .btn-success .caret,.dropup .btn-warning .caret,.dropup .btn-danger .caret,.dropup .btn-info .caret{border-bottom-color:#fff;} +.btn-group,.btn-group-vertical{position:relative;display:inline-block;vertical-align:middle;}.btn-group>.btn,.btn-group-vertical>.btn{position:relative;float:left;}.btn-group>.btn:hover,.btn-group-vertical>.btn:hover,.btn-group>.btn:focus,.btn-group-vertical>.btn:focus,.btn-group>.btn:active,.btn-group-vertical>.btn:active,.btn-group>.btn.active,.btn-group-vertical>.btn.active{z-index:2;} +.btn-group>.btn:focus,.btn-group-vertical>.btn:focus{outline:none;} +.btn-group .btn+.btn,.btn-group .btn+.btn-group,.btn-group .btn-group+.btn,.btn-group .btn-group+.btn-group{margin-left:-1px;} +.btn-toolbar:before,.btn-toolbar:after{content:" ";display:table;} +.btn-toolbar:after{clear:both;} +.btn-toolbar:before,.btn-toolbar:after{content:" ";display:table;} +.btn-toolbar:after{clear:both;} +.btn-toolbar .btn-group{float:left;} +.btn-toolbar>.btn+.btn,.btn-toolbar>.btn-group+.btn,.btn-toolbar>.btn+.btn-group,.btn-toolbar>.btn-group+.btn-group{margin-left:5px;} +.btn-group>.btn:not(:first-child):not(:last-child):not(.dropdown-toggle){border-radius:0;} +.btn-group>.btn:first-child{margin-left:0;}.btn-group>.btn:first-child:not(:last-child):not(.dropdown-toggle){border-bottom-right-radius:0;border-top-right-radius:0;} +.btn-group>.btn:last-child:not(:first-child),.btn-group>.dropdown-toggle:not(:first-child){border-bottom-left-radius:0;border-top-left-radius:0;} +.btn-group>.btn-group{float:left;} +.btn-group>.btn-group:not(:first-child):not(:last-child)>.btn{border-radius:0;} +.btn-group>.btn-group:first-child>.btn:last-child,.btn-group>.btn-group:first-child>.dropdown-toggle{border-bottom-right-radius:0;border-top-right-radius:0;} +.btn-group>.btn-group:last-child>.btn:first-child{border-bottom-left-radius:0;border-top-left-radius:0;} +.btn-group .dropdown-toggle:active,.btn-group.open .dropdown-toggle{outline:0;} +.btn-group-xs>.btn{padding:5px 10px;font-size:12px;line-height:1.5;border-radius:3px;padding:1px 5px;} +.btn-group-sm>.btn{padding:5px 10px;font-size:12px;line-height:1.5;border-radius:3px;} +.btn-group-lg>.btn{padding:10px 16px;font-size:18px;line-height:1.33;border-radius:6px;} +.btn-group>.btn+.dropdown-toggle{padding-left:8px;padding-right:8px;} +.btn-group>.btn-lg+.dropdown-toggle{padding-left:12px;padding-right:12px;} +.btn-group.open .dropdown-toggle{-webkit-box-shadow:inset 0 3px 5px rgba(0, 0, 0, 0.125);box-shadow:inset 0 3px 5px rgba(0, 0, 0, 0.125);}.btn-group.open .dropdown-toggle.btn-link{-webkit-box-shadow:none;box-shadow:none;} +.btn .caret{margin-left:0;} +.btn-lg .caret{border-width:5px 5px 0;border-bottom-width:0;} +.dropup .btn-lg .caret{border-width:0 5px 5px;} +.btn-group-vertical>.btn,.btn-group-vertical>.btn-group{display:block;float:none;width:100%;max-width:100%;} +.btn-group-vertical>.btn-group:before,.btn-group-vertical>.btn-group:after{content:" ";display:table;} +.btn-group-vertical>.btn-group:after{clear:both;} +.btn-group-vertical>.btn-group:before,.btn-group-vertical>.btn-group:after{content:" ";display:table;} +.btn-group-vertical>.btn-group:after{clear:both;} +.btn-group-vertical>.btn-group>.btn{float:none;} +.btn-group-vertical>.btn+.btn,.btn-group-vertical>.btn+.btn-group,.btn-group-vertical>.btn-group+.btn,.btn-group-vertical>.btn-group+.btn-group{margin-top:-1px;margin-left:0;} +.btn-group-vertical>.btn:not(:first-child):not(:last-child){border-radius:0;} +.btn-group-vertical>.btn:first-child:not(:last-child){border-top-right-radius:4px;border-bottom-right-radius:0;border-bottom-left-radius:0;} +.btn-group-vertical>.btn:last-child:not(:first-child){border-bottom-left-radius:4px;border-top-right-radius:0;border-top-left-radius:0;} +.btn-group-vertical>.btn-group:not(:first-child):not(:last-child)>.btn{border-radius:0;} +.btn-group-vertical>.btn-group:first-child>.btn:last-child,.btn-group-vertical>.btn-group:first-child>.dropdown-toggle{border-bottom-right-radius:0;border-bottom-left-radius:0;} +.btn-group-vertical>.btn-group:last-child>.btn:first-child{border-top-right-radius:0;border-top-left-radius:0;} +.btn-group-justified{display:table;width:100%;table-layout:fixed;border-collapse:separate;}.btn-group-justified .btn{float:none;display:table-cell;width:1%;} +[data-toggle="buttons"]>.btn>input[type="radio"],[data-toggle="buttons"]>.btn>input[type="checkbox"]{display:none;} +.input-group{position:relative;display:table;border-collapse:separate;}.input-group.col{float:none;padding-left:0;padding-right:0;} +.input-group .form-control{width:100%;margin-bottom:0;} +.input-group-lg>.form-control,.input-group-lg>.input-group-addon,.input-group-lg>.input-group-btn>.btn{height:45px;padding:10px 16px;font-size:18px;line-height:1.33;border-radius:6px;}select.input-group-lg>.form-control,select.input-group-lg>.input-group-addon,select.input-group-lg>.input-group-btn>.btn{height:45px;line-height:45px;} +textarea.input-group-lg>.form-control,textarea.input-group-lg>.input-group-addon,textarea.input-group-lg>.input-group-btn>.btn{height:auto;} +.input-group-sm>.form-control,.input-group-sm>.input-group-addon,.input-group-sm>.input-group-btn>.btn{height:30px;padding:5px 10px;font-size:12px;line-height:1.5;border-radius:3px;}select.input-group-sm>.form-control,select.input-group-sm>.input-group-addon,select.input-group-sm>.input-group-btn>.btn{height:30px;line-height:30px;} +textarea.input-group-sm>.form-control,textarea.input-group-sm>.input-group-addon,textarea.input-group-sm>.input-group-btn>.btn{height:auto;} +.input-group-addon,.input-group-btn,.input-group .form-control{display:table-cell;}.input-group-addon:not(:first-child):not(:last-child),.input-group-btn:not(:first-child):not(:last-child),.input-group .form-control:not(:first-child):not(:last-child){border-radius:0;} +.input-group-addon,.input-group-btn{width:1%;white-space:nowrap;vertical-align:middle;} +.input-group-addon{padding:6px 12px;font-size:14px;font-weight:normal;line-height:1;color:#555555;text-align:center;background-color:#eeeeee;border:1px solid #cccccc;border-radius:4px;}.input-group-addon.input-sm{padding:5px 10px;font-size:12px;border-radius:3px;} +.input-group-addon.input-lg{padding:10px 16px;font-size:18px;border-radius:6px;} +.input-group-addon input[type="radio"],.input-group-addon input[type="checkbox"]{margin-top:0;} +.input-group .form-control:first-child,.input-group-addon:first-child,.input-group-btn:first-child>.btn,.input-group-btn:first-child>.dropdown-toggle,.input-group-btn:last-child>.btn:not(:last-child):not(.dropdown-toggle){border-bottom-right-radius:0;border-top-right-radius:0;} +.input-group-addon:first-child{border-right:0;} +.input-group .form-control:last-child,.input-group-addon:last-child,.input-group-btn:last-child>.btn,.input-group-btn:last-child>.dropdown-toggle,.input-group-btn:first-child>.btn:not(:first-child){border-bottom-left-radius:0;border-top-left-radius:0;} +.input-group-addon:last-child{border-left:0;} +.input-group-btn{position:relative;white-space:nowrap;}.input-group-btn:first-child>.btn{margin-right:-1px;} +.input-group-btn:last-child>.btn{margin-left:-1px;} +.input-group-btn>.btn{position:relative;}.input-group-btn>.btn+.btn{margin-left:-4px;} +.input-group-btn>.btn:hover,.input-group-btn>.btn:active{z-index:2;} +.nav{margin-bottom:0;padding-left:0;list-style:none;}.nav:before,.nav:after{content:" ";display:table;} +.nav:after{clear:both;} +.nav:before,.nav:after{content:" ";display:table;} +.nav:after{clear:both;} +.nav>li{position:relative;display:block;}.nav>li>a{position:relative;display:block;padding:10px 15px;}.nav>li>a:hover,.nav>li>a:focus{text-decoration:none;background-color:#eeeeee;} +.nav>li.disabled>a{color:#999999;}.nav>li.disabled>a:hover,.nav>li.disabled>a:focus{color:#999999;text-decoration:none;background-color:transparent;cursor:not-allowed;} +.nav .open>a,.nav .open>a:hover,.nav .open>a:focus{background-color:#eeeeee;border-color:#428bca;}.nav .open>a .caret,.nav .open>a:hover .caret,.nav .open>a:focus .caret{border-top-color:#2a6496;border-bottom-color:#2a6496;} +.nav .nav-divider{height:1px;margin:9px 0;overflow:hidden;background-color:#e5e5e5;} +.nav>li>a>img{max-width:none;} +.nav-tabs{border-bottom:1px solid #dddddd;}.nav-tabs>li{float:left;margin-bottom:-1px;}.nav-tabs>li>a{margin-right:2px;line-height:1.428571429;border:1px solid transparent;border-radius:4px 4px 0 0;}.nav-tabs>li>a:hover{border-color:#eeeeee #eeeeee #dddddd;} +.nav-tabs>li.active>a,.nav-tabs>li.active>a:hover,.nav-tabs>li.active>a:focus{color:#555555;background-color:#ffffff;border:1px solid #dddddd;border-bottom-color:transparent;cursor:default;} +.nav-tabs.nav-justified{width:100%;border-bottom:0;}.nav-tabs.nav-justified>li{float:none;}.nav-tabs.nav-justified>li>a{text-align:center;margin-bottom:5px;} +.nav-tabs.nav-justified>.dropdown .dropdown-menu{top:auto;left:auto;} +@media (min-width:768px){.nav-tabs.nav-justified>li{display:table-cell;width:1%;}.nav-tabs.nav-justified>li>a{margin-bottom:0;}}.nav-tabs.nav-justified>li>a{margin-right:0;border-radius:4px;} +.nav-tabs.nav-justified>.active>a,.nav-tabs.nav-justified>.active>a:hover,.nav-tabs.nav-justified>.active>a:focus{border:1px solid #dddddd;} +@media (min-width:768px){.nav-tabs.nav-justified>li>a{border-bottom:1px solid #dddddd;border-radius:4px 4px 0 0;} .nav-tabs.nav-justified>.active>a,.nav-tabs.nav-justified>.active>a:hover,.nav-tabs.nav-justified>.active>a:focus{border-bottom-color:#ffffff;}} +.nav-pills>li{float:left;}.nav-pills>li>a{border-radius:4px;} +.nav-pills>li+li{margin-left:2px;} +.nav-pills>li.active>a,.nav-pills>li.active>a:hover,.nav-pills>li.active>a:focus{color:#ffffff;background-color:#428bca;}.nav-pills>li.active>a .caret,.nav-pills>li.active>a:hover .caret,.nav-pills>li.active>a:focus .caret{border-top-color:#ffffff;border-bottom-color:#ffffff;} +.nav-stacked>li{float:none;}.nav-stacked>li+li{margin-top:2px;margin-left:0;} +.nav-justified{width:100%;}.nav-justified>li{float:none;}.nav-justified>li>a{text-align:center;margin-bottom:5px;} +.nav-justified>.dropdown .dropdown-menu{top:auto;left:auto;} +@media (min-width:768px){.nav-justified>li{display:table-cell;width:1%;}.nav-justified>li>a{margin-bottom:0;}} +.nav-tabs-justified{border-bottom:0;}.nav-tabs-justified>li>a{margin-right:0;border-radius:4px;} +.nav-tabs-justified>.active>a,.nav-tabs-justified>.active>a:hover,.nav-tabs-justified>.active>a:focus{border:1px solid #dddddd;} +@media (min-width:768px){.nav-tabs-justified>li>a{border-bottom:1px solid #dddddd;border-radius:4px 4px 0 0;} .nav-tabs-justified>.active>a,.nav-tabs-justified>.active>a:hover,.nav-tabs-justified>.active>a:focus{border-bottom-color:#ffffff;}} +.tab-content>.tab-pane{display:none;} +.tab-content>.active{display:block;} +.nav .caret{border-top-color:#428bca;border-bottom-color:#428bca;} +.nav a:hover .caret{border-top-color:#2a6496;border-bottom-color:#2a6496;} +.nav-tabs .dropdown-menu{margin-top:-1px;border-top-right-radius:0;border-top-left-radius:0;} +.navbar{position:relative;min-height:50px;margin-bottom:20px;border:1px solid transparent;}.navbar:before,.navbar:after{content:" ";display:table;} +.navbar:after{clear:both;} +.navbar:before,.navbar:after{content:" ";display:table;} +.navbar:after{clear:both;} +@media (min-width:768px){.navbar{border-radius:4px;}} +.navbar-header:before,.navbar-header:after{content:" ";display:table;} +.navbar-header:after{clear:both;} +.navbar-header:before,.navbar-header:after{content:" ";display:table;} +.navbar-header:after{clear:both;} +@media (min-width:768px){.navbar-header{float:left;}} +.navbar-collapse{max-height:340px;overflow-x:visible;padding-right:15px;padding-left:15px;border-top:1px solid transparent;box-shadow:inset 0 1px 0 rgba(255, 255, 255, 0.1);-webkit-overflow-scrolling:touch;}.navbar-collapse:before,.navbar-collapse:after{content:" ";display:table;} +.navbar-collapse:after{clear:both;} +.navbar-collapse:before,.navbar-collapse:after{content:" ";display:table;} +.navbar-collapse:after{clear:both;} +.navbar-collapse.in{overflow-y:auto;} +@media (min-width:768px){.navbar-collapse{width:auto;border-top:0;box-shadow:none;}.navbar-collapse.collapse{display:block !important;height:auto !important;padding-bottom:0;overflow:visible !important;} .navbar-collapse.in{overflow-y:auto;} .navbar-collapse .navbar-nav.navbar-left:first-child{margin-left:-15px;} .navbar-collapse .navbar-nav.navbar-right:last-child{margin-right:-15px;} .navbar-collapse .navbar-text:last-child{margin-right:0;}} +.container>.navbar-header,.container>.navbar-collapse{margin-right:-15px;margin-left:-15px;}@media (min-width:768px){.container>.navbar-header,.container>.navbar-collapse{margin-right:0;margin-left:0;}} +.navbar-static-top{z-index:1000;border-width:0 0 1px;}@media (min-width:768px){.navbar-static-top{border-radius:0;}} +.navbar-fixed-top,.navbar-fixed-bottom{position:fixed;right:0;left:0;z-index:1030;}@media (min-width:768px){.navbar-fixed-top,.navbar-fixed-bottom{border-radius:0;}} +.navbar-fixed-top{top:0;border-width:0 0 1px;} +.navbar-fixed-bottom{bottom:0;margin-bottom:0;border-width:1px 0 0;} +.navbar-brand{float:left;padding:15px 15px;font-size:18px;line-height:20px;}.navbar-brand:hover,.navbar-brand:focus{text-decoration:none;} +@media (min-width:768px){.navbar>.container .navbar-brand{margin-left:-15px;}} +.navbar-toggle{position:relative;float:right;margin-right:15px;padding:9px 10px;margin-top:8px;margin-bottom:8px;background-color:transparent;border:1px solid transparent;border-radius:4px;}.navbar-toggle .icon-bar{display:block;width:22px;height:2px;border-radius:1px;} +.navbar-toggle .icon-bar+.icon-bar{margin-top:4px;} +@media (min-width:768px){.navbar-toggle{display:none;}} +.navbar-nav{margin:7.5px -15px;}.navbar-nav>li>a{padding-top:10px;padding-bottom:10px;line-height:20px;} +@media (max-width:767px){.navbar-nav .open .dropdown-menu{position:static;float:none;width:auto;margin-top:0;background-color:transparent;border:0;box-shadow:none;}.navbar-nav .open .dropdown-menu>li>a,.navbar-nav .open .dropdown-menu .dropdown-header{padding:5px 15px 5px 25px;} .navbar-nav .open .dropdown-menu>li>a{line-height:20px;}.navbar-nav .open .dropdown-menu>li>a:hover,.navbar-nav .open .dropdown-menu>li>a:focus{background-image:none;}}@media (min-width:768px){.navbar-nav{float:left;margin:0;}.navbar-nav>li{float:left;}.navbar-nav>li>a{padding-top:15px;padding-bottom:15px;}} +@media (min-width:768px){.navbar-left{float:left !important;} .navbar-right{float:right !important;}}.navbar-form{margin-left:-15px;margin-right:-15px;padding:10px 15px;border-top:1px solid transparent;border-bottom:1px solid transparent;-webkit-box-shadow:inset 0 1px 0 rgba(255, 255, 255, 0.1),0 1px 0 rgba(255, 255, 255, 0.1);box-shadow:inset 0 1px 0 rgba(255, 255, 255, 0.1),0 1px 0 rgba(255, 255, 255, 0.1);margin-top:8px;margin-bottom:8px;}@media (min-width:768px){.navbar-form .form-group{display:inline-block;margin-bottom:0;vertical-align:middle;} .navbar-form .form-control{display:inline-block;} .navbar-form .radio,.navbar-form .checkbox{display:inline-block;margin-top:0;margin-bottom:0;padding-left:0;} .navbar-form .radio input[type="radio"],.navbar-form .checkbox input[type="checkbox"]{float:none;margin-left:0;}}@media (max-width:767px){.navbar-form .form-group{margin-bottom:5px;}} +@media (min-width:768px){.navbar-form{width:auto;border:0;margin-left:0;margin-right:0;padding-top:0;padding-bottom:0;-webkit-box-shadow:none;box-shadow:none;}} +.navbar-nav>li>.dropdown-menu{margin-top:0;border-top-right-radius:0;border-top-left-radius:0;} +.navbar-fixed-bottom .navbar-nav>li>.dropdown-menu{border-bottom-right-radius:0;border-bottom-left-radius:0;} +.navbar-nav.pull-right>li>.dropdown-menu,.navbar-nav>li>.dropdown-menu.pull-right{left:auto;right:0;} +.navbar-btn{margin-top:8px;margin-bottom:8px;} +.navbar-text{float:left;margin-top:15px;margin-bottom:15px;}@media (min-width:768px){.navbar-text{margin-left:15px;margin-right:15px;}} +.navbar-default{background-color:#f8f8f8;border-color:#e7e7e7;}.navbar-default .navbar-brand{color:#777777;}.navbar-default .navbar-brand:hover,.navbar-default .navbar-brand:focus{color:#5e5e5e;background-color:transparent;} +.navbar-default .navbar-text{color:#777777;} +.navbar-default .navbar-nav>li>a{color:#777777;}.navbar-default .navbar-nav>li>a:hover,.navbar-default .navbar-nav>li>a:focus{color:#333333;background-color:transparent;} +.navbar-default .navbar-nav>.active>a,.navbar-default .navbar-nav>.active>a:hover,.navbar-default .navbar-nav>.active>a:focus{color:#555555;background-color:#e7e7e7;} +.navbar-default .navbar-nav>.disabled>a,.navbar-default .navbar-nav>.disabled>a:hover,.navbar-default .navbar-nav>.disabled>a:focus{color:#cccccc;background-color:transparent;} +.navbar-default .navbar-toggle{border-color:#dddddd;}.navbar-default .navbar-toggle:hover,.navbar-default .navbar-toggle:focus{background-color:#dddddd;} +.navbar-default .navbar-toggle .icon-bar{background-color:#cccccc;} +.navbar-default .navbar-collapse,.navbar-default .navbar-form{border-color:#e7e7e7;} +.navbar-default .navbar-nav>.dropdown>a:hover .caret,.navbar-default .navbar-nav>.dropdown>a:focus .caret{border-top-color:#333333;border-bottom-color:#333333;} +.navbar-default .navbar-nav>.open>a,.navbar-default .navbar-nav>.open>a:hover,.navbar-default .navbar-nav>.open>a:focus{background-color:#e7e7e7;color:#555555;}.navbar-default .navbar-nav>.open>a .caret,.navbar-default .navbar-nav>.open>a:hover .caret,.navbar-default .navbar-nav>.open>a:focus .caret{border-top-color:#555555;border-bottom-color:#555555;} +.navbar-default .navbar-nav>.dropdown>a .caret{border-top-color:#777777;border-bottom-color:#777777;} +@media (max-width:767px){.navbar-default .navbar-nav .open .dropdown-menu>li>a{color:#777777;}.navbar-default .navbar-nav .open .dropdown-menu>li>a:hover,.navbar-default .navbar-nav .open .dropdown-menu>li>a:focus{color:#333333;background-color:transparent;} .navbar-default .navbar-nav .open .dropdown-menu>.active>a,.navbar-default .navbar-nav .open .dropdown-menu>.active>a:hover,.navbar-default .navbar-nav .open .dropdown-menu>.active>a:focus{color:#555555;background-color:#e7e7e7;} .navbar-default .navbar-nav .open .dropdown-menu>.disabled>a,.navbar-default .navbar-nav .open .dropdown-menu>.disabled>a:hover,.navbar-default .navbar-nav .open .dropdown-menu>.disabled>a:focus{color:#cccccc;background-color:transparent;}} +.navbar-default .navbar-link{color:#777777;}.navbar-default .navbar-link:hover{color:#333333;} +.navbar-inverse{background-color:#222222;border-color:#080808;}.navbar-inverse .navbar-brand{color:#999999;}.navbar-inverse .navbar-brand:hover,.navbar-inverse .navbar-brand:focus{color:#ffffff;background-color:transparent;} +.navbar-inverse .navbar-text{color:#999999;} +.navbar-inverse .navbar-nav>li>a{color:#999999;}.navbar-inverse .navbar-nav>li>a:hover,.navbar-inverse .navbar-nav>li>a:focus{color:#ffffff;background-color:transparent;} +.navbar-inverse .navbar-nav>.active>a,.navbar-inverse .navbar-nav>.active>a:hover,.navbar-inverse .navbar-nav>.active>a:focus{color:#ffffff;background-color:#080808;} +.navbar-inverse .navbar-nav>.disabled>a,.navbar-inverse .navbar-nav>.disabled>a:hover,.navbar-inverse .navbar-nav>.disabled>a:focus{color:#444444;background-color:transparent;} +.navbar-inverse .navbar-toggle{border-color:#333333;}.navbar-inverse .navbar-toggle:hover,.navbar-inverse .navbar-toggle:focus{background-color:#333333;} +.navbar-inverse .navbar-toggle .icon-bar{background-color:#ffffff;} +.navbar-inverse .navbar-collapse,.navbar-inverse .navbar-form{border-color:#101010;} +.navbar-inverse .navbar-nav>.open>a,.navbar-inverse .navbar-nav>.open>a:hover,.navbar-inverse .navbar-nav>.open>a:focus{background-color:#080808;color:#ffffff;} +.navbar-inverse .navbar-nav>.dropdown>a:hover .caret{border-top-color:#ffffff;border-bottom-color:#ffffff;} +.navbar-inverse .navbar-nav>.dropdown>a .caret{border-top-color:#999999;border-bottom-color:#999999;} +.navbar-inverse .navbar-nav>.open>a .caret,.navbar-inverse .navbar-nav>.open>a:hover .caret,.navbar-inverse .navbar-nav>.open>a:focus .caret{border-top-color:#ffffff;border-bottom-color:#ffffff;} +@media (max-width:767px){.navbar-inverse .navbar-nav .open .dropdown-menu>.dropdown-header{border-color:#080808;} .navbar-inverse .navbar-nav .open .dropdown-menu>li>a{color:#999999;}.navbar-inverse .navbar-nav .open .dropdown-menu>li>a:hover,.navbar-inverse .navbar-nav .open .dropdown-menu>li>a:focus{color:#ffffff;background-color:transparent;} .navbar-inverse .navbar-nav .open .dropdown-menu>.active>a,.navbar-inverse .navbar-nav .open .dropdown-menu>.active>a:hover,.navbar-inverse .navbar-nav .open .dropdown-menu>.active>a:focus{color:#ffffff;background-color:#080808;} .navbar-inverse .navbar-nav .open .dropdown-menu>.disabled>a,.navbar-inverse .navbar-nav .open .dropdown-menu>.disabled>a:hover,.navbar-inverse .navbar-nav .open .dropdown-menu>.disabled>a:focus{color:#444444;background-color:transparent;}} +.navbar-inverse .navbar-link{color:#999999;}.navbar-inverse .navbar-link:hover{color:#ffffff;} +.breadcrumb{padding:8px 15px;margin-bottom:20px;list-style:none;background-color:#f5f5f5;border-radius:4px;}.breadcrumb>li{display:inline-block;}.breadcrumb>li+li:before{content:"/\00a0";padding:0 5px;color:#cccccc;} +.breadcrumb>.active{color:#999999;} +.pagination{display:inline-block;padding-left:0;margin:20px 0;border-radius:4px;}.pagination>li{display:inline;}.pagination>li>a,.pagination>li>span{position:relative;float:left;padding:6px 12px;line-height:1.428571429;text-decoration:none;background-color:#ffffff;border:1px solid #dddddd;margin-left:-1px;} +.pagination>li:first-child>a,.pagination>li:first-child>span{margin-left:0;border-bottom-left-radius:4px;border-top-left-radius:4px;} +.pagination>li:last-child>a,.pagination>li:last-child>span{border-bottom-right-radius:4px;border-top-right-radius:4px;} +.pagination>li>a:hover,.pagination>li>span:hover,.pagination>li>a:focus,.pagination>li>span:focus{background-color:#eeeeee;} +.pagination>.active>a,.pagination>.active>span,.pagination>.active>a:hover,.pagination>.active>span:hover,.pagination>.active>a:focus,.pagination>.active>span:focus{z-index:2;color:#ffffff;background-color:#428bca;border-color:#428bca;cursor:default;} +.pagination>.disabled>span,.pagination>.disabled>span:hover,.pagination>.disabled>span:focus,.pagination>.disabled>a,.pagination>.disabled>a:hover,.pagination>.disabled>a:focus{color:#999999;background-color:#ffffff;border-color:#dddddd;cursor:not-allowed;} +.pagination-lg>li>a,.pagination-lg>li>span{padding:10px 16px;font-size:18px;} +.pagination-lg>li:first-child>a,.pagination-lg>li:first-child>span{border-bottom-left-radius:6px;border-top-left-radius:6px;} +.pagination-lg>li:last-child>a,.pagination-lg>li:last-child>span{border-bottom-right-radius:6px;border-top-right-radius:6px;} +.pagination-sm>li>a,.pagination-sm>li>span{padding:5px 10px;font-size:12px;} +.pagination-sm>li:first-child>a,.pagination-sm>li:first-child>span{border-bottom-left-radius:3px;border-top-left-radius:3px;} +.pagination-sm>li:last-child>a,.pagination-sm>li:last-child>span{border-bottom-right-radius:3px;border-top-right-radius:3px;} +.pager{padding-left:0;margin:20px 0;list-style:none;text-align:center;}.pager:before,.pager:after{content:" ";display:table;} +.pager:after{clear:both;} +.pager:before,.pager:after{content:" ";display:table;} +.pager:after{clear:both;} +.pager li{display:inline;}.pager li>a,.pager li>span{display:inline-block;padding:5px 14px;background-color:#ffffff;border:1px solid #dddddd;border-radius:15px;} +.pager li>a:hover,.pager li>a:focus{text-decoration:none;background-color:#eeeeee;} +.pager .next>a,.pager .next>span{float:right;} +.pager .previous>a,.pager .previous>span{float:left;} +.pager .disabled>a,.pager .disabled>a:hover,.pager .disabled>a:focus,.pager .disabled>span{color:#999999;background-color:#ffffff;cursor:not-allowed;} +.label{display:inline;padding:.2em .6em .3em;font-size:75%;font-weight:bold;line-height:1;color:#ffffff;text-align:center;white-space:nowrap;vertical-align:baseline;border-radius:.25em;}.label[href]:hover,.label[href]:focus{color:#ffffff;text-decoration:none;cursor:pointer;} +.label:empty{display:none;} +.label-default{background-color:#999999;}.label-default[href]:hover,.label-default[href]:focus{background-color:#808080;} +.label-primary{background-color:#428bca;}.label-primary[href]:hover,.label-primary[href]:focus{background-color:#3071a9;} +.label-success{background-color:#5cb85c;}.label-success[href]:hover,.label-success[href]:focus{background-color:#449d44;} +.label-info{background-color:#5bc0de;}.label-info[href]:hover,.label-info[href]:focus{background-color:#31b0d5;} +.label-warning{background-color:#f0ad4e;}.label-warning[href]:hover,.label-warning[href]:focus{background-color:#ec971f;} +.label-danger{background-color:#d9534f;}.label-danger[href]:hover,.label-danger[href]:focus{background-color:#c9302c;} +.badge{display:inline-block;min-width:10px;padding:3px 7px;font-size:12px;font-weight:bold;color:#ffffff;line-height:1;vertical-align:baseline;white-space:nowrap;text-align:center;background-color:#999999;border-radius:10px;}.badge:empty{display:none;} +a.badge:hover,a.badge:focus{color:#ffffff;text-decoration:none;cursor:pointer;} +.btn .badge{position:relative;top:-1px;} +a.list-group-item.active>.badge,.nav-pills>.active>a>.badge{color:#428bca;background-color:#ffffff;} +.nav-pills>li>a>.badge{margin-left:3px;} +.jumbotron{padding:30px;margin-bottom:30px;font-size:21px;font-weight:200;line-height:2.1428571435;color:inherit;background-color:#eeeeee;}.jumbotron h1{line-height:1;color:inherit;} +.jumbotron p{line-height:1.4;} +.container .jumbotron{border-radius:6px;} +@media screen and (min-width:768px){.jumbotron{padding-top:48px;padding-bottom:48px;}.container .jumbotron{padding-left:60px;padding-right:60px;} .jumbotron h1{font-size:63px;}} +.thumbnail{padding:4px;line-height:1.428571429;background-color:#ffffff;border:1px solid #dddddd;border-radius:4px;-webkit-transition:all 0.2s ease-in-out;transition:all 0.2s ease-in-out;display:inline-block;max-width:100%;height:auto;display:block;margin-bottom:20px;}.thumbnail>img{display:block;max-width:100%;height:auto;margin-left:auto;margin-right:auto;} +a.thumbnail:hover,a.thumbnail:focus,a.thumbnail.active{border-color:#428bca;} +.thumbnail .caption{padding:9px;color:#333333;} +.alert{padding:15px;margin-bottom:20px;border:1px solid transparent;border-radius:4px;}.alert h4{margin-top:0;color:inherit;} +.alert .alert-link{font-weight:bold;} +.alert>p,.alert>ul{margin-bottom:0;} +.alert>p+p{margin-top:5px;} +.alert-dismissable{padding-right:35px;}.alert-dismissable .close{position:relative;top:-2px;right:-21px;color:inherit;} +.alert-success{background-color:#dff0d8;border-color:#d6e9c6;color:#468847;}.alert-success hr{border-top-color:#c9e2b3;} +.alert-success .alert-link{color:#356635;} +.alert-info{background-color:#d9edf7;border-color:#bce8f1;color:#3a87ad;}.alert-info hr{border-top-color:#a6e1ec;} +.alert-info .alert-link{color:#2d6987;} +.alert-warning{background-color:#fcf8e3;border-color:#faebcc;color:#c09853;}.alert-warning hr{border-top-color:#f7e1b5;} +.alert-warning .alert-link{color:#a47e3c;} +.alert-danger{background-color:#f2dede;border-color:#ebccd1;color:#b94a48;}.alert-danger hr{border-top-color:#e4b9c0;} +.alert-danger .alert-link{color:#953b39;} +@-webkit-keyframes progress-bar-stripes{from{background-position:40px 0;} to{background-position:0 0;}}@-moz-keyframes progress-bar-stripes{from{background-position:40px 0;} to{background-position:0 0;}}@-o-keyframes progress-bar-stripes{from{background-position:0 0;} to{background-position:40px 0;}}@keyframes progress-bar-stripes{from{background-position:40px 0;} to{background-position:0 0;}}.progress{overflow:hidden;height:20px;margin-bottom:20px;background-color:#f5f5f5;border-radius:4px;-webkit-box-shadow:inset 0 1px 2px rgba(0, 0, 0, 0.1);box-shadow:inset 0 1px 2px rgba(0, 0, 0, 0.1);} +.progress-bar{float:left;width:0%;height:100%;font-size:12px;line-height:20px;color:#ffffff;text-align:center;background-color:#428bca;-webkit-box-shadow:inset 0 -1px 0 rgba(0, 0, 0, 0.15);box-shadow:inset 0 -1px 0 rgba(0, 0, 0, 0.15);-webkit-transition:width 0.6s ease;transition:width 0.6s ease;} +.progress-striped .progress-bar{background-image:-webkit-gradient(linear, 0 100%, 100% 0, color-stop(0.25, rgba(255, 255, 255, 0.15)), color-stop(0.25, transparent), color-stop(0.5, transparent), color-stop(0.5, rgba(255, 255, 255, 0.15)), color-stop(0.75, rgba(255, 255, 255, 0.15)), color-stop(0.75, transparent), to(transparent));background-image:-webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);background-image:-moz-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);background-image:linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);background-size:40px 40px;} +.progress.active .progress-bar{-webkit-animation:progress-bar-stripes 2s linear infinite;animation:progress-bar-stripes 2s linear infinite;} +.progress-bar-success{background-color:#5cb85c;}.progress-striped .progress-bar-success{background-image:-webkit-gradient(linear, 0 100%, 100% 0, color-stop(0.25, rgba(255, 255, 255, 0.15)), color-stop(0.25, transparent), color-stop(0.5, transparent), color-stop(0.5, rgba(255, 255, 255, 0.15)), color-stop(0.75, rgba(255, 255, 255, 0.15)), color-stop(0.75, transparent), to(transparent));background-image:-webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);background-image:-moz-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);background-image:linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);} +.progress-bar-info{background-color:#5bc0de;}.progress-striped .progress-bar-info{background-image:-webkit-gradient(linear, 0 100%, 100% 0, color-stop(0.25, rgba(255, 255, 255, 0.15)), color-stop(0.25, transparent), color-stop(0.5, transparent), color-stop(0.5, rgba(255, 255, 255, 0.15)), color-stop(0.75, rgba(255, 255, 255, 0.15)), color-stop(0.75, transparent), to(transparent));background-image:-webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);background-image:-moz-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);background-image:linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);} +.progress-bar-warning{background-color:#f0ad4e;}.progress-striped .progress-bar-warning{background-image:-webkit-gradient(linear, 0 100%, 100% 0, color-stop(0.25, rgba(255, 255, 255, 0.15)), color-stop(0.25, transparent), color-stop(0.5, transparent), color-stop(0.5, rgba(255, 255, 255, 0.15)), color-stop(0.75, rgba(255, 255, 255, 0.15)), color-stop(0.75, transparent), to(transparent));background-image:-webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);background-image:-moz-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);background-image:linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);} +.progress-bar-danger{background-color:#d9534f;}.progress-striped .progress-bar-danger{background-image:-webkit-gradient(linear, 0 100%, 100% 0, color-stop(0.25, rgba(255, 255, 255, 0.15)), color-stop(0.25, transparent), color-stop(0.5, transparent), color-stop(0.5, rgba(255, 255, 255, 0.15)), color-stop(0.75, rgba(255, 255, 255, 0.15)), color-stop(0.75, transparent), to(transparent));background-image:-webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);background-image:-moz-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);background-image:linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);} +.media,.media-body{overflow:hidden;zoom:1;} +.media,.media .media{margin-top:15px;} +.media:first-child{margin-top:0;} +.media-object{display:block;} +.media-heading{margin:0 0 5px;} +.media>.pull-left{margin-right:10px;} +.media>.pull-right{margin-left:10px;} +.media-list{padding-left:0;list-style:none;} +.list-group{margin-bottom:20px;padding-left:0;} +.list-group-item{position:relative;display:block;padding:10px 15px;margin-bottom:-1px;background-color:#ffffff;border:1px solid #dddddd;}.list-group-item:first-child{border-top-right-radius:4px;border-top-left-radius:4px;} +.list-group-item:last-child{margin-bottom:0;border-bottom-right-radius:4px;border-bottom-left-radius:4px;} +.list-group-item>.badge{float:right;} +.list-group-item>.badge+.badge{margin-right:5px;} +a.list-group-item{color:#555555;}a.list-group-item .list-group-item-heading{color:#333333;} +a.list-group-item:hover,a.list-group-item:focus{text-decoration:none;background-color:#f5f5f5;} +a.list-group-item.active,a.list-group-item.active:hover,a.list-group-item.active:focus{z-index:2;color:#ffffff;background-color:#428bca;border-color:#428bca;}a.list-group-item.active .list-group-item-heading,a.list-group-item.active:hover .list-group-item-heading,a.list-group-item.active:focus .list-group-item-heading{color:inherit;} +a.list-group-item.active .list-group-item-text,a.list-group-item.active:hover .list-group-item-text,a.list-group-item.active:focus .list-group-item-text{color:#e1edf7;} +.list-group-item-heading{margin-top:0;margin-bottom:5px;} +.list-group-item-text{margin-bottom:0;line-height:1.3;} +.panel{margin-bottom:20px;background-color:#ffffff;border:1px solid transparent;border-radius:4px;-webkit-box-shadow:0 1px 1px rgba(0, 0, 0, 0.05);box-shadow:0 1px 1px rgba(0, 0, 0, 0.05);} +.panel-body{padding:15px;}.panel-body:before,.panel-body:after{content:" ";display:table;} +.panel-body:after{clear:both;} +.panel-body:before,.panel-body:after{content:" ";display:table;} +.panel-body:after{clear:both;} +.panel>.list-group{margin-bottom:0;}.panel>.list-group .list-group-item{border-width:1px 0;}.panel>.list-group .list-group-item:first-child{border-top-right-radius:0;border-top-left-radius:0;} +.panel>.list-group .list-group-item:last-child{border-bottom:0;} +.panel-heading+.list-group .list-group-item:first-child{border-top-width:0;} +.panel>.table,.panel>.table-responsive{margin-bottom:0;} +.panel>.panel-body+.table,.panel>.panel-body+.table-responsive{border-top:1px solid #dddddd;} +.panel>.table-bordered,.panel>.table-responsive>.table-bordered{border:0;}.panel>.table-bordered>thead>tr>th:first-child,.panel>.table-responsive>.table-bordered>thead>tr>th:first-child,.panel>.table-bordered>tbody>tr>th:first-child,.panel>.table-responsive>.table-bordered>tbody>tr>th:first-child,.panel>.table-bordered>tfoot>tr>th:first-child,.panel>.table-responsive>.table-bordered>tfoot>tr>th:first-child,.panel>.table-bordered>thead>tr>td:first-child,.panel>.table-responsive>.table-bordered>thead>tr>td:first-child,.panel>.table-bordered>tbody>tr>td:first-child,.panel>.table-responsive>.table-bordered>tbody>tr>td:first-child,.panel>.table-bordered>tfoot>tr>td:first-child,.panel>.table-responsive>.table-bordered>tfoot>tr>td:first-child{border-left:0;} +.panel>.table-bordered>thead>tr>th:last-child,.panel>.table-responsive>.table-bordered>thead>tr>th:last-child,.panel>.table-bordered>tbody>tr>th:last-child,.panel>.table-responsive>.table-bordered>tbody>tr>th:last-child,.panel>.table-bordered>tfoot>tr>th:last-child,.panel>.table-responsive>.table-bordered>tfoot>tr>th:last-child,.panel>.table-bordered>thead>tr>td:last-child,.panel>.table-responsive>.table-bordered>thead>tr>td:last-child,.panel>.table-bordered>tbody>tr>td:last-child,.panel>.table-responsive>.table-bordered>tbody>tr>td:last-child,.panel>.table-bordered>tfoot>tr>td:last-child,.panel>.table-responsive>.table-bordered>tfoot>tr>td:last-child{border-right:0;} +.panel>.table-bordered>thead>tr:last-child>th,.panel>.table-responsive>.table-bordered>thead>tr:last-child>th,.panel>.table-bordered>tbody>tr:last-child>th,.panel>.table-responsive>.table-bordered>tbody>tr:last-child>th,.panel>.table-bordered>tfoot>tr:last-child>th,.panel>.table-responsive>.table-bordered>tfoot>tr:last-child>th,.panel>.table-bordered>thead>tr:last-child>td,.panel>.table-responsive>.table-bordered>thead>tr:last-child>td,.panel>.table-bordered>tbody>tr:last-child>td,.panel>.table-responsive>.table-bordered>tbody>tr:last-child>td,.panel>.table-bordered>tfoot>tr:last-child>td,.panel>.table-responsive>.table-bordered>tfoot>tr:last-child>td{border-bottom:0;} +.panel-heading{padding:10px 15px;border-bottom:1px solid transparent;border-top-right-radius:3px;border-top-left-radius:3px;}.panel-heading>.dropdown .dropdown-toggle{color:inherit;} +.panel-title{margin-top:0;margin-bottom:0;font-size:16px;}.panel-title>a{color:inherit;} +.panel-footer{padding:10px 15px;background-color:#f5f5f5;border-top:1px solid #dddddd;border-bottom-right-radius:3px;border-bottom-left-radius:3px;} +.panel-group .panel{margin-bottom:0;border-radius:4px;overflow:hidden;}.panel-group .panel+.panel{margin-top:5px;} +.panel-group .panel-heading{border-bottom:0;}.panel-group .panel-heading+.panel-collapse .panel-body{border-top:1px solid #dddddd;} +.panel-group .panel-footer{border-top:0;}.panel-group .panel-footer+.panel-collapse .panel-body{border-bottom:1px solid #dddddd;} +.panel-default{border-color:#dddddd;}.panel-default>.panel-heading{color:#333333;background-color:#f5f5f5;border-color:#dddddd;}.panel-default>.panel-heading+.panel-collapse .panel-body{border-top-color:#dddddd;} +.panel-default>.panel-heading>.dropdown .caret{border-color:#333333 transparent;} +.panel-default>.panel-footer+.panel-collapse .panel-body{border-bottom-color:#dddddd;} +.panel-primary{border-color:#428bca;}.panel-primary>.panel-heading{color:#ffffff;background-color:#428bca;border-color:#428bca;}.panel-primary>.panel-heading+.panel-collapse .panel-body{border-top-color:#428bca;} +.panel-primary>.panel-heading>.dropdown .caret{border-color:#ffffff transparent;} +.panel-primary>.panel-footer+.panel-collapse .panel-body{border-bottom-color:#428bca;} +.panel-success{border-color:#d6e9c6;}.panel-success>.panel-heading{color:#468847;background-color:#dff0d8;border-color:#d6e9c6;}.panel-success>.panel-heading+.panel-collapse .panel-body{border-top-color:#d6e9c6;} +.panel-success>.panel-heading>.dropdown .caret{border-color:#468847 transparent;} +.panel-success>.panel-footer+.panel-collapse .panel-body{border-bottom-color:#d6e9c6;} +.panel-warning{border-color:#faebcc;}.panel-warning>.panel-heading{color:#c09853;background-color:#fcf8e3;border-color:#faebcc;}.panel-warning>.panel-heading+.panel-collapse .panel-body{border-top-color:#faebcc;} +.panel-warning>.panel-heading>.dropdown .caret{border-color:#c09853 transparent;} +.panel-warning>.panel-footer+.panel-collapse .panel-body{border-bottom-color:#faebcc;} +.panel-danger{border-color:#ebccd1;}.panel-danger>.panel-heading{color:#b94a48;background-color:#f2dede;border-color:#ebccd1;}.panel-danger>.panel-heading+.panel-collapse .panel-body{border-top-color:#ebccd1;} +.panel-danger>.panel-heading>.dropdown .caret{border-color:#b94a48 transparent;} +.panel-danger>.panel-footer+.panel-collapse .panel-body{border-bottom-color:#ebccd1;} +.panel-info{border-color:#bce8f1;}.panel-info>.panel-heading{color:#3a87ad;background-color:#d9edf7;border-color:#bce8f1;}.panel-info>.panel-heading+.panel-collapse .panel-body{border-top-color:#bce8f1;} +.panel-info>.panel-heading>.dropdown .caret{border-color:#3a87ad transparent;} +.panel-info>.panel-footer+.panel-collapse .panel-body{border-bottom-color:#bce8f1;} +.well{min-height:20px;padding:19px;margin-bottom:20px;background-color:#f5f5f5;border:1px solid #e3e3e3;border-radius:4px;-webkit-box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.05);box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.05);}.well blockquote{border-color:#ddd;border-color:rgba(0, 0, 0, 0.15);} +.well-lg{padding:24px;border-radius:6px;} +.well-sm{padding:9px;border-radius:3px;} +.close{float:right;font-size:21px;font-weight:bold;line-height:1;color:#000000;text-shadow:0 1px 0 #ffffff;opacity:0.2;filter:alpha(opacity=20);}.close:hover,.close:focus{color:#000000;text-decoration:none;cursor:pointer;opacity:0.5;filter:alpha(opacity=50);} +button.close{padding:0;cursor:pointer;background:transparent;border:0;-webkit-appearance:none;} +.modal-open{overflow:hidden;} +.modal{display:none;overflow:auto;overflow-y:scroll;position:fixed;top:0;right:0;bottom:0;left:0;z-index:1040;}.modal.fade .modal-dialog{-webkit-transform:translate(0, -25%);-ms-transform:translate(0, -25%);transform:translate(0, -25%);-webkit-transition:-webkit-transform 0.3s ease-out;-moz-transition:-moz-transform 0.3s ease-out;-o-transition:-o-transform 0.3s ease-out;transition:transform 0.3s ease-out;} +.modal.in .modal-dialog{-webkit-transform:translate(0, 0);-ms-transform:translate(0, 0);transform:translate(0, 0);} +.modal-dialog{position:relative;margin-left:auto;margin-right:auto;width:auto;padding:10px;z-index:1050;} +.modal-content{position:relative;background-color:#ffffff;border:1px solid #999999;border:1px solid rgba(0, 0, 0, 0.2);border-radius:6px;-webkit-box-shadow:0 3px 9px rgba(0, 0, 0, 0.5);box-shadow:0 3px 9px rgba(0, 0, 0, 0.5);background-clip:padding-box;outline:none;} +.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1030;background-color:#000000;}.modal-backdrop.fade{opacity:0;filter:alpha(opacity=0);} +.modal-backdrop.in{opacity:0.5;filter:alpha(opacity=50);} +.modal-header{padding:15px;border-bottom:1px solid #e5e5e5;min-height:16.428571429px;} +.modal-header .close{margin-top:-2px;} +.modal-title{margin:0;line-height:1.428571429;} +.modal-body{position:relative;padding:20px;} +.modal-footer{margin-top:15px;padding:19px 20px 20px;text-align:right;border-top:1px solid #e5e5e5;}.modal-footer:before,.modal-footer:after{content:" ";display:table;} +.modal-footer:after{clear:both;} +.modal-footer:before,.modal-footer:after{content:" ";display:table;} +.modal-footer:after{clear:both;} +.modal-footer .btn+.btn{margin-left:5px;margin-bottom:0;} +.modal-footer .btn-group .btn+.btn{margin-left:-1px;} +.modal-footer .btn-block+.btn-block{margin-left:0;} +@media screen and (min-width:768px){.modal-dialog{width:600px;padding-top:30px;padding-bottom:30px;} .modal-content{-webkit-box-shadow:0 5px 15px rgba(0, 0, 0, 0.5);box-shadow:0 5px 15px rgba(0, 0, 0, 0.5);}}.tooltip{position:absolute;z-index:1030;display:block;visibility:visible;font-size:12px;line-height:1.4;opacity:0;filter:alpha(opacity=0);}.tooltip.in{opacity:0.9;filter:alpha(opacity=90);} +.tooltip.top{margin-top:-3px;padding:5px 0;} +.tooltip.right{margin-left:3px;padding:0 5px;} +.tooltip.bottom{margin-top:3px;padding:5px 0;} +.tooltip.left{margin-left:-3px;padding:0 5px;} +.tooltip-inner{max-width:200px;padding:3px 8px;color:#ffffff;text-align:center;text-decoration:none;background-color:#000000;border-radius:4px;} +.tooltip-arrow{position:absolute;width:0;height:0;border-color:transparent;border-style:solid;} +.tooltip.top .tooltip-arrow{bottom:0;left:50%;margin-left:-5px;border-width:5px 5px 0;border-top-color:#000000;} +.tooltip.top-left .tooltip-arrow{bottom:0;left:5px;border-width:5px 5px 0;border-top-color:#000000;} +.tooltip.top-right .tooltip-arrow{bottom:0;right:5px;border-width:5px 5px 0;border-top-color:#000000;} +.tooltip.right .tooltip-arrow{top:50%;left:0;margin-top:-5px;border-width:5px 5px 5px 0;border-right-color:#000000;} +.tooltip.left .tooltip-arrow{top:50%;right:0;margin-top:-5px;border-width:5px 0 5px 5px;border-left-color:#000000;} +.tooltip.bottom .tooltip-arrow{top:0;left:50%;margin-left:-5px;border-width:0 5px 5px;border-bottom-color:#000000;} +.tooltip.bottom-left .tooltip-arrow{top:0;left:5px;border-width:0 5px 5px;border-bottom-color:#000000;} +.tooltip.bottom-right .tooltip-arrow{top:0;right:5px;border-width:0 5px 5px;border-bottom-color:#000000;} +.popover{position:absolute;top:0;left:0;z-index:1010;display:none;max-width:276px;padding:1px;text-align:left;background-color:#ffffff;background-clip:padding-box;border:1px solid #cccccc;border:1px solid rgba(0, 0, 0, 0.2);border-radius:6px;-webkit-box-shadow:0 5px 10px rgba(0, 0, 0, 0.2);box-shadow:0 5px 10px rgba(0, 0, 0, 0.2);white-space:normal;}.popover.top{margin-top:-10px;} +.popover.right{margin-left:10px;} +.popover.bottom{margin-top:10px;} +.popover.left{margin-left:-10px;} +.popover-title{margin:0;padding:8px 14px;font-size:14px;font-weight:normal;line-height:18px;background-color:#f7f7f7;border-bottom:1px solid #ebebeb;border-radius:5px 5px 0 0;} +.popover-content{padding:9px 14px;} +.popover .arrow,.popover .arrow:after{position:absolute;display:block;width:0;height:0;border-color:transparent;border-style:solid;} +.popover .arrow{border-width:11px;} +.popover .arrow:after{border-width:10px;content:"";} +.popover.top .arrow{left:50%;margin-left:-11px;border-bottom-width:0;border-top-color:#999999;border-top-color:rgba(0, 0, 0, 0.25);bottom:-11px;}.popover.top .arrow:after{content:" ";bottom:1px;margin-left:-10px;border-bottom-width:0;border-top-color:#ffffff;} +.popover.right .arrow{top:50%;left:-11px;margin-top:-11px;border-left-width:0;border-right-color:#999999;border-right-color:rgba(0, 0, 0, 0.25);}.popover.right .arrow:after{content:" ";left:1px;bottom:-10px;border-left-width:0;border-right-color:#ffffff;} +.popover.bottom .arrow{left:50%;margin-left:-11px;border-top-width:0;border-bottom-color:#999999;border-bottom-color:rgba(0, 0, 0, 0.25);top:-11px;}.popover.bottom .arrow:after{content:" ";top:1px;margin-left:-10px;border-top-width:0;border-bottom-color:#ffffff;} +.popover.left .arrow{top:50%;right:-11px;margin-top:-11px;border-right-width:0;border-left-color:#999999;border-left-color:rgba(0, 0, 0, 0.25);}.popover.left .arrow:after{content:" ";right:1px;border-right-width:0;border-left-color:#ffffff;bottom:-10px;} +.carousel{position:relative;} +.carousel-inner{position:relative;overflow:hidden;width:100%;}.carousel-inner>.item{display:none;position:relative;-webkit-transition:0.6s ease-in-out left;transition:0.6s ease-in-out left;}.carousel-inner>.item>img,.carousel-inner>.item>a>img{display:block;max-width:100%;height:auto;line-height:1;} +.carousel-inner>.active,.carousel-inner>.next,.carousel-inner>.prev{display:block;} +.carousel-inner>.active{left:0;} +.carousel-inner>.next,.carousel-inner>.prev{position:absolute;top:0;width:100%;} +.carousel-inner>.next{left:100%;} +.carousel-inner>.prev{left:-100%;} +.carousel-inner>.next.left,.carousel-inner>.prev.right{left:0;} +.carousel-inner>.active.left{left:-100%;} +.carousel-inner>.active.right{left:100%;} +.carousel-control{position:absolute;top:0;left:0;bottom:0;width:15%;opacity:0.5;filter:alpha(opacity=50);font-size:20px;color:#ffffff;text-align:center;text-shadow:0 1px 2px rgba(0, 0, 0, 0.6);}.carousel-control.left{background-image:-webkit-gradient(linear, 0% top, 100% top, from(rgba(0, 0, 0, 0.5)), to(rgba(0, 0, 0, 0.0001)));background-image:-webkit-linear-gradient(left, color-stop(rgba(0, 0, 0, 0.5) 0%), color-stop(rgba(0, 0, 0, 0.0001) 100%));background-image:-moz-linear-gradient(left, rgba(0, 0, 0, 0.5) 0%, rgba(0, 0, 0, 0.0001) 100%);background-image:linear-gradient(to right, rgba(0, 0, 0, 0.5) 0%, rgba(0, 0, 0, 0.0001) 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#80000000', endColorstr='#00000000', GradientType=1);} +.carousel-control.right{left:auto;right:0;background-image:-webkit-gradient(linear, 0% top, 100% top, from(rgba(0, 0, 0, 0.0001)), to(rgba(0, 0, 0, 0.5)));background-image:-webkit-linear-gradient(left, color-stop(rgba(0, 0, 0, 0.0001) 0%), color-stop(rgba(0, 0, 0, 0.5) 100%));background-image:-moz-linear-gradient(left, rgba(0, 0, 0, 0.0001) 0%, rgba(0, 0, 0, 0.5) 100%);background-image:linear-gradient(to right, rgba(0, 0, 0, 0.0001) 0%, rgba(0, 0, 0, 0.5) 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#00000000', endColorstr='#80000000', GradientType=1);} +.carousel-control:hover,.carousel-control:focus{color:#ffffff;text-decoration:none;opacity:0.9;filter:alpha(opacity=90);} +.carousel-control .icon-prev,.carousel-control .icon-next,.carousel-control .glyphicon-chevron-left,.carousel-control .glyphicon-chevron-right{position:absolute;top:50%;z-index:5;display:inline-block;} +.carousel-control .icon-prev,.carousel-control .glyphicon-chevron-left{left:50%;} +.carousel-control .icon-next,.carousel-control .glyphicon-chevron-right{right:50%;} +.carousel-control .icon-prev,.carousel-control .icon-next{width:20px;height:20px;margin-top:-10px;margin-left:-10px;font-family:serif;} +.carousel-control .icon-prev:before{content:'\2039';} +.carousel-control .icon-next:before{content:'\203a';} +.carousel-indicators{position:absolute;bottom:10px;left:50%;z-index:15;width:60%;margin-left:-30%;padding-left:0;list-style:none;text-align:center;}.carousel-indicators li{display:inline-block;width:10px;height:10px;margin:1px;text-indent:-999px;border:1px solid #ffffff;border-radius:10px;cursor:pointer;background-color:#000 \9;background-color:rgba(0, 0, 0, 0);} +.carousel-indicators .active{margin:0;width:12px;height:12px;background-color:#ffffff;} +.carousel-caption{position:absolute;left:15%;right:15%;bottom:20px;z-index:10;padding-top:20px;padding-bottom:20px;color:#ffffff;text-align:center;text-shadow:0 1px 2px rgba(0, 0, 0, 0.6);}.carousel-caption .btn{text-shadow:none;} +@media screen and (min-width:768px){.carousel-control .glyphicons-chevron-left,.carousel-control .glyphicons-chevron-right,.carousel-control .icon-prev,.carousel-control .icon-next{width:30px;height:30px;margin-top:-15px;margin-left:-15px;font-size:30px;} .carousel-caption{left:20%;right:20%;padding-bottom:30px;} .carousel-indicators{bottom:20px;}}.clearfix:before,.clearfix:after{content:" ";display:table;} +.clearfix:after{clear:both;} +.center-block{display:block;margin-left:auto;margin-right:auto;} +.pull-right{float:right !important;} +.pull-left{float:left !important;} +.hide{display:none !important;} +.show{display:block !important;} +.invisible{visibility:hidden;} +.text-hide{font:0/0 a;color:transparent;text-shadow:none;background-color:transparent;border:0;} +.hidden{display:none !important;visibility:hidden !important;} +.affix{position:fixed;} +@-ms-viewport{width:device-width;}.visible-xs,tr.visible-xs,th.visible-xs,td.visible-xs{display:none !important;} +@media (max-width:767px){.visible-xs{display:block !important;}tr.visible-xs{display:table-row !important;} th.visible-xs,td.visible-xs{display:table-cell !important;}}@media (min-width:768px) and (max-width:991px){.visible-xs.visible-sm{display:block !important;}tr.visible-xs.visible-sm{display:table-row !important;} th.visible-xs.visible-sm,td.visible-xs.visible-sm{display:table-cell !important;}} +@media (min-width:992px) and (max-width:1199px){.visible-xs.visible-md{display:block !important;}tr.visible-xs.visible-md{display:table-row !important;} th.visible-xs.visible-md,td.visible-xs.visible-md{display:table-cell !important;}} +@media (min-width:1200px){.visible-xs.visible-lg{display:block !important;}tr.visible-xs.visible-lg{display:table-row !important;} th.visible-xs.visible-lg,td.visible-xs.visible-lg{display:table-cell !important;}} +.visible-sm,tr.visible-sm,th.visible-sm,td.visible-sm{display:none !important;} +@media (max-width:767px){.visible-sm.visible-xs{display:block !important;}tr.visible-sm.visible-xs{display:table-row !important;} th.visible-sm.visible-xs,td.visible-sm.visible-xs{display:table-cell !important;}} +@media (min-width:768px) and (max-width:991px){.visible-sm{display:block !important;}tr.visible-sm{display:table-row !important;} th.visible-sm,td.visible-sm{display:table-cell !important;}}@media (min-width:992px) and (max-width:1199px){.visible-sm.visible-md{display:block !important;}tr.visible-sm.visible-md{display:table-row !important;} th.visible-sm.visible-md,td.visible-sm.visible-md{display:table-cell !important;}} +@media (min-width:1200px){.visible-sm.visible-lg{display:block !important;}tr.visible-sm.visible-lg{display:table-row !important;} th.visible-sm.visible-lg,td.visible-sm.visible-lg{display:table-cell !important;}} +.visible-md,tr.visible-md,th.visible-md,td.visible-md{display:none !important;} +@media (max-width:767px){.visible-md.visible-xs{display:block !important;}tr.visible-md.visible-xs{display:table-row !important;} th.visible-md.visible-xs,td.visible-md.visible-xs{display:table-cell !important;}} +@media (min-width:768px) and (max-width:991px){.visible-md.visible-sm{display:block !important;}tr.visible-md.visible-sm{display:table-row !important;} th.visible-md.visible-sm,td.visible-md.visible-sm{display:table-cell !important;}} +@media (min-width:992px) and (max-width:1199px){.visible-md{display:block !important;}tr.visible-md{display:table-row !important;} th.visible-md,td.visible-md{display:table-cell !important;}}@media (min-width:1200px){.visible-md.visible-lg{display:block !important;}tr.visible-md.visible-lg{display:table-row !important;} th.visible-md.visible-lg,td.visible-md.visible-lg{display:table-cell !important;}} +.visible-lg,tr.visible-lg,th.visible-lg,td.visible-lg{display:none !important;} +@media (max-width:767px){.visible-lg.visible-xs{display:block !important;}tr.visible-lg.visible-xs{display:table-row !important;} th.visible-lg.visible-xs,td.visible-lg.visible-xs{display:table-cell !important;}} +@media (min-width:768px) and (max-width:991px){.visible-lg.visible-sm{display:block !important;}tr.visible-lg.visible-sm{display:table-row !important;} th.visible-lg.visible-sm,td.visible-lg.visible-sm{display:table-cell !important;}} +@media (min-width:992px) and (max-width:1199px){.visible-lg.visible-md{display:block !important;}tr.visible-lg.visible-md{display:table-row !important;} th.visible-lg.visible-md,td.visible-lg.visible-md{display:table-cell !important;}} +@media (min-width:1200px){.visible-lg{display:block !important;}tr.visible-lg{display:table-row !important;} th.visible-lg,td.visible-lg{display:table-cell !important;}} +.hidden-xs{display:block !important;}tr.hidden-xs{display:table-row !important;} +th.hidden-xs,td.hidden-xs{display:table-cell !important;} +@media (max-width:767px){.hidden-xs,tr.hidden-xs,th.hidden-xs,td.hidden-xs{display:none !important;}}@media (min-width:768px) and (max-width:991px){.hidden-xs.hidden-sm,tr.hidden-xs.hidden-sm,th.hidden-xs.hidden-sm,td.hidden-xs.hidden-sm{display:none !important;}} +@media (min-width:992px) and (max-width:1199px){.hidden-xs.hidden-md,tr.hidden-xs.hidden-md,th.hidden-xs.hidden-md,td.hidden-xs.hidden-md{display:none !important;}} +@media (min-width:1200px){.hidden-xs.hidden-lg,tr.hidden-xs.hidden-lg,th.hidden-xs.hidden-lg,td.hidden-xs.hidden-lg{display:none !important;}} +.hidden-sm{display:block !important;}tr.hidden-sm{display:table-row !important;} +th.hidden-sm,td.hidden-sm{display:table-cell !important;} +@media (max-width:767px){.hidden-sm.hidden-xs,tr.hidden-sm.hidden-xs,th.hidden-sm.hidden-xs,td.hidden-sm.hidden-xs{display:none !important;}} +@media (min-width:768px) and (max-width:991px){.hidden-sm,tr.hidden-sm,th.hidden-sm,td.hidden-sm{display:none !important;}}@media (min-width:992px) and (max-width:1199px){.hidden-sm.hidden-md,tr.hidden-sm.hidden-md,th.hidden-sm.hidden-md,td.hidden-sm.hidden-md{display:none !important;}} +@media (min-width:1200px){.hidden-sm.hidden-lg,tr.hidden-sm.hidden-lg,th.hidden-sm.hidden-lg,td.hidden-sm.hidden-lg{display:none !important;}} +.hidden-md{display:block !important;}tr.hidden-md{display:table-row !important;} +th.hidden-md,td.hidden-md{display:table-cell !important;} +@media (max-width:767px){.hidden-md.hidden-xs,tr.hidden-md.hidden-xs,th.hidden-md.hidden-xs,td.hidden-md.hidden-xs{display:none !important;}} +@media (min-width:768px) and (max-width:991px){.hidden-md.hidden-sm,tr.hidden-md.hidden-sm,th.hidden-md.hidden-sm,td.hidden-md.hidden-sm{display:none !important;}} +@media (min-width:992px) and (max-width:1199px){.hidden-md,tr.hidden-md,th.hidden-md,td.hidden-md{display:none !important;}}@media (min-width:1200px){.hidden-md.hidden-lg,tr.hidden-md.hidden-lg,th.hidden-md.hidden-lg,td.hidden-md.hidden-lg{display:none !important;}} +.hidden-lg{display:block !important;}tr.hidden-lg{display:table-row !important;} +th.hidden-lg,td.hidden-lg{display:table-cell !important;} +@media (max-width:767px){.hidden-lg.hidden-xs,tr.hidden-lg.hidden-xs,th.hidden-lg.hidden-xs,td.hidden-lg.hidden-xs{display:none !important;}} +@media (min-width:768px) and (max-width:991px){.hidden-lg.hidden-sm,tr.hidden-lg.hidden-sm,th.hidden-lg.hidden-sm,td.hidden-lg.hidden-sm{display:none !important;}} +@media (min-width:992px) and (max-width:1199px){.hidden-lg.hidden-md,tr.hidden-lg.hidden-md,th.hidden-lg.hidden-md,td.hidden-lg.hidden-md{display:none !important;}} +@media (min-width:1200px){.hidden-lg,tr.hidden-lg,th.hidden-lg,td.hidden-lg{display:none !important;}} +.visible-print,tr.visible-print,th.visible-print,td.visible-print{display:none !important;} +@media print{.visible-print{display:block !important;}tr.visible-print{display:table-row !important;} th.visible-print,td.visible-print{display:table-cell !important;} .hidden-print,tr.hidden-print,th.hidden-print,td.hidden-print{display:none !important;}} diff --git a/packages/phocadownload/media/com_phocadownload/bootstrap/css/bs_modal_transition.css b/packages/phocadownload/media/com_phocadownload/bootstrap/css/bs_modal_transition.css new file mode 100644 index 00000000..bcd62c1f --- /dev/null +++ b/packages/phocadownload/media/com_phocadownload/bootstrap/css/bs_modal_transition.css @@ -0,0 +1,91 @@ +.modal-backdrop { + -webkit-backface-visibility: hidden; +} +.modal-backdrop.zoom, +.modal-backdrop.newspaper, +.modal-backdrop.move-horizontal, +.modal-backdrop.move-from-top, +.modal-backdrop.unfold-3d, +.modal-backdrop.zoom-out { + opacity: 0; + transition: opacity 0.4s ease; +} +.modal-backdrop.in { + opacity: 0.5; +} +.modal-backdrop.unfold-3d { + perspective: 500; +} +.modal.zoom .modal-dialog { + opacity: 0; + -webkit-transition: all 0.5s ease-in-out; + -o-transition: all 0.5s ease-in-out; + transition: all 0.5s ease-in-out; + transform: scale(0.6); +} +.modal.in .modal-dialog { + opacity: 1; + -webkit-transition: all 0.4s ease-in-out; + -o-transition: all 0.4s ease-in-out; + transition: all 0.4s ease-in-out; + transform: scale(1); +} +.modal.fade.newspaper .modal-dialog, +.modal.newspaper .modal-dialog { + opacity: 0; + -webkit-transition: all 0.5s ease-in-out; + transition: all 0.5s; + transform: scale(0) rotate(500deg); +} +.modal.fade.newspaper.in .modal-dialog, +.modal.in .modal-dialog { + opacity: 1; + transform: scale(1) rotate(0deg); +} +.modal.move-horizontal .modal-dialog { + opacity: 0; + transition: all 0.5s; + transform: translateX(-50px); +} +.modal.in .modal-dialog { + opacity: 1; + transform: translateX(0); +} +.modal.move-from-top .modal-dialog { + opacity: 0; + transition: all 0.5s; + transform: translateY(-100px); +} +.modal.in .modal-dialog { + opacity: 1; + transform: translateY(0); +} +.modal.unfold-3d .modal-dialog { + opacity: 0; + transition: all 0.5s ease-in-out; + transform-style: preserve-3d; + transform: rotateY(-60deg); +} +.modal.in .modal-dialog { + opacity: 1; + transform: rotateY(0deg); +} +.modal.fade.zoom-out .modal-dialog, +.modal.zoom-out .modal-dialog { + opacity: 0; + transition: all 0.5s; + transform: scale(1.3); +} +.modal.fade.zoom-out.in .modal-dialog, +.modal.in .modal-dialog { + opacity: 1; + transform: scale(1); +} +.csstransforms3d .modal.unfold-3d .modal-dialog { + transform: none; + transform-origin: 50% 100%; + transform: scale(0.7) rotate3d(-1, 1, 0, -60deg); +} +.csstransforms3d .modal.in .modal-dialog { + transform: scale(1) rotate3d(-1, 1, 0, 0deg); +} \ No newline at end of file diff --git a/packages/phocadownload/media/com_phocadownload/bootstrap/css/index.html b/packages/phocadownload/media/com_phocadownload/bootstrap/css/index.html new file mode 100644 index 00000000..fa6d84e8 --- /dev/null +++ b/packages/phocadownload/media/com_phocadownload/bootstrap/css/index.html @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/phocadownload/media/com_phocadownload/bootstrap/fonts/glyphicons-halflings-regular.eot b/packages/phocadownload/media/com_phocadownload/bootstrap/fonts/glyphicons-halflings-regular.eot new file mode 100644 index 0000000000000000000000000000000000000000..423bd5d3a20b804f596e04e5cd02fb4f16cfcbc1 GIT binary patch literal 20290 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 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/packages/phocadownload/media/com_phocadownload/bootstrap/fonts/glyphicons-halflings-regular.ttf b/packages/phocadownload/media/com_phocadownload/bootstrap/fonts/glyphicons-halflings-regular.ttf new file mode 100644 index 0000000000000000000000000000000000000000..a498ef4e7c8b556fc36f580c5ff524025bb11c84 GIT binary patch literal 41236 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 \ No newline at end of file diff --git a/packages/phocadownload/media/com_phocadownload/bootstrap/index.html b/packages/phocadownload/media/com_phocadownload/bootstrap/index.html new file mode 100644 index 00000000..fa6d84e8 --- /dev/null +++ b/packages/phocadownload/media/com_phocadownload/bootstrap/index.html @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/phocadownload/media/com_phocadownload/bootstrap/js/bootstrap.min.js b/packages/phocadownload/media/com_phocadownload/bootstrap/js/bootstrap.min.js new file mode 100644 index 00000000..1104dc2b --- /dev/null +++ b/packages/phocadownload/media/com_phocadownload/bootstrap/js/bootstrap.min.js @@ -0,0 +1,11 @@ +/*! + * Bootstrap v3.0.2 + * + * Copyright 2013 Twitter, Inc + * Licensed under the Apache License v2.0 + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Designed and built with all the love in the world @twitter by @mdo and @fat. + */ + ++function(a){"use strict";var b='[data-dismiss="alert"]',c=function(c){a(c).on("click",b,this.close)};c.prototype.close=function(b){function f(){e.trigger("closed.bs.alert").remove()}var c=a(this),d=c.attr("data-target");d||(d=c.attr("href"),d=d&&d.replace(/.*(?=#[^\s]*$)/,""));var e=a(d);b&&b.preventDefault(),e.length||(e=c.hasClass("alert")?c:c.parent()),e.trigger(b=a.Event("close.bs.alert"));if(b.isDefaultPrevented())return;e.removeClass("in"),a.support.transition&&e.hasClass("fade")?e.one(a.support.transition.end,f).emulateTransitionEnd(150):f()};var d=a.fn.alert;a.fn.alert=function(b){return this.each(function(){var d=a(this),e=d.data("bs.alert");e||d.data("bs.alert",e=new c(this)),typeof b=="string"&&e[b].call(d)})},a.fn.alert.Constructor=c,a.fn.alert.noConflict=function(){return a.fn.alert=d,this},a(document).on("click.bs.alert.data-api",b,c.prototype.close)}(jQuery),+function(a){"use strict";var b=function(c,d){this.$element=a(c),this.options=a.extend({},b.DEFAULTS,d)};b.DEFAULTS={loadingText:"loading..."},b.prototype.setState=function(a){var b="disabled",c=this.$element,d=c.is("input")?"val":"html",e=c.data();a+="Text",e.resetText||c.data("resetText",c[d]()),c[d](e[a]||this.options[a]),setTimeout(function(){a=="loadingText"?c.addClass(b).attr(b,b):c.removeClass(b).removeAttr(b)},0)},b.prototype.toggle=function(){var a=this.$element.closest('[data-toggle="buttons"]');if(a.length){var b=this.$element.find("input").prop("checked",!this.$element.hasClass("active")).trigger("change");b.prop("type")==="radio"&&a.find(".active").removeClass("active")}this.$element.toggleClass("active")};var c=a.fn.button;a.fn.button=function(c){return this.each(function(){var d=a(this),e=d.data("bs.button"),f=typeof c=="object"&&c;e||d.data("bs.button",e=new b(this,f)),c=="toggle"?e.toggle():c&&e.setState(c)})},a.fn.button.Constructor=b,a.fn.button.noConflict=function(){return a.fn.button=c,this},a(document).on("click.bs.button.data-api","[data-toggle^=button]",function(b){var c=a(b.target);c.hasClass("btn")||(c=c.closest(".btn")),c.button("toggle"),b.preventDefault()})}(jQuery),+function(a){"use strict";var b=function(b,c){this.$element=a(b),this.$indicators=this.$element.find(".carousel-indicators"),this.options=c,this.paused=this.sliding=this.interval=this.$active=this.$items=null,this.options.pause=="hover"&&this.$element.on("mouseenter",a.proxy(this.pause,this)).on("mouseleave",a.proxy(this.cycle,this))};b.DEFAULTS={interval:5e3,pause:"hover",wrap:!0},b.prototype.cycle=function(b){return b||(this.paused=!1),this.interval&&clearInterval(this.interval),this.options.interval&&!this.paused&&(this.interval=setInterval(a.proxy(this.next,this),this.options.interval)),this},b.prototype.getActiveIndex=function(){return this.$active=this.$element.find(".item.active"),this.$items=this.$active.parent().children(),this.$items.index(this.$active)},b.prototype.to=function(b){var c=this,d=this.getActiveIndex();if(b>this.$items.length-1||b<0)return;return this.sliding?this.$element.one("slid",function(){c.to(b)}):d==b?this.pause().cycle():this.slide(b>d?"next":"prev",a(this.$items[b]))},b.prototype.pause=function(b){return b||(this.paused=!0),this.$element.find(".next, .prev").length&&a.support.transition.end&&(this.$element.trigger(a.support.transition.end),this.cycle(!0)),this.interval=clearInterval(this.interval),this},b.prototype.next=function(){if(this.sliding)return;return this.slide("next")},b.prototype.prev=function(){if(this.sliding)return;return this.slide("prev")},b.prototype.slide=function(b,c){var d=this.$element.find(".item.active"),e=c||d[b](),f=this.interval,g=b=="next"?"left":"right",h=b=="next"?"first":"last",i=this;if(!e.length){if(!this.options.wrap)return;e=this.$element.find(".item")[h]()}this.sliding=!0,f&&this.pause();var j=a.Event("slide.bs.carousel",{relatedTarget:e[0],direction:g});if(e.hasClass("active"))return;this.$indicators.length&&(this.$indicators.find(".active").removeClass("active"),this.$element.one("slid",function(){var b=a(i.$indicators.children()[i.getActiveIndex()]);b&&b.addClass("active")}));if(a.support.transition&&this.$element.hasClass("slide")){this.$element.trigger(j);if(j.isDefaultPrevented())return;e.addClass(b),e[0].offsetWidth,d.addClass(g),e.addClass(g),d.one(a.support.transition.end,function(){e.removeClass([b,g].join(" ")).addClass("active"),d.removeClass(["active",g].join(" ")),i.sliding=!1,setTimeout(function(){i.$element.trigger("slid")},0)}).emulateTransitionEnd(600)}else{this.$element.trigger(j);if(j.isDefaultPrevented())return;d.removeClass("active"),e.addClass("active"),this.sliding=!1,this.$element.trigger("slid")}return f&&this.cycle(),this};var c=a.fn.carousel;a.fn.carousel=function(c){return this.each(function(){var d=a(this),e=d.data("bs.carousel"),f=a.extend({},b.DEFAULTS,d.data(),typeof c=="object"&&c),g=typeof c=="string"?c:f.slide;e||d.data("bs.carousel",e=new b(this,f)),typeof c=="number"?e.to(c):g?e[g]():f.interval&&e.pause().cycle()})},a.fn.carousel.Constructor=b,a.fn.carousel.noConflict=function(){return a.fn.carousel=c,this},a(document).on("click.bs.carousel.data-api","[data-slide], [data-slide-to]",function(b){var c=a(this),d,e=a(c.attr("data-target")||(d=c.attr("href"))&&d.replace(/.*(?=#[^\s]+$)/,"")),f=a.extend({},e.data(),c.data()),g=c.attr("data-slide-to");g&&(f.interval=!1),e.carousel(f),(g=c.attr("data-slide-to"))&&e.data("bs.carousel").to(g),b.preventDefault()}),a(window).on("load",function(){a('[data-ride="carousel"]').each(function(){var b=a(this);b.carousel(b.data())})})}(jQuery),+function(a){function e(){a(b).remove(),a(c).each(function(b){var c=f(a(this));if(!c.hasClass("open"))return;c.trigger(b=a.Event("hide.bs.dropdown"));if(b.isDefaultPrevented())return;c.removeClass("open").trigger("hidden.bs.dropdown")})}function f(b){var c=b.attr("data-target");c||(c=b.attr("href"),c=c&&/#/.test(c)&&c.replace(/.*(?=#[^\s]*$)/,""));var d=c&&a(c);return d&&d.length?d:b.parent()}"use strict";var b=".dropdown-backdrop",c="[data-toggle=dropdown]",d=function(b){var c=a(b).on("click.bs.dropdown",this.toggle)};d.prototype.toggle=function(b){var c=a(this);if(c.is(".disabled, :disabled"))return;var d=f(c),g=d.hasClass("open");e();if(!g){"ontouchstart"in document.documentElement&&!d.closest(".navbar-nav").length&&a(''}),b.prototype=a.extend({},a.fn.tooltip.Constructor.prototype),b.prototype.constructor=b,b.prototype.getDefaults=function(){return b.DEFAULTS},b.prototype.setContent=function(){var a=this.tip(),b=this.getTitle(),c=this.getContent();a.find(".popover-title")[this.options.html?"html":"text"](b),a.find(".popover-content")[this.options.html?"html":"text"](c),a.removeClass("fade top bottom left right in"),a.find(".popover-title").html()||a.find(".popover-title").hide()},b.prototype.hasContent=function(){return this.getTitle()||this.getContent()},b.prototype.getContent=function(){var a=this.$element,b=this.options;return a.attr("data-content")||(typeof b.content=="function"?b.content.call(a[0]):b.content)},b.prototype.arrow=function(){return this.$arrow=this.$arrow||this.tip().find(".arrow")},b.prototype.tip=function(){return this.$tip||(this.$tip=a(this.options.template)),this.$tip};var c=a.fn.popover;a.fn.popover=function(c){return this.each(function(){var d=a(this),e=d.data("bs.popover"),f=typeof c=="object"&&c;e||d.data("bs.popover",e=new b(this,f)),typeof c=="string"&&e[c]()})},a.fn.popover.Constructor=b,a.fn.popover.noConflict=function(){return a.fn.popover=c,this}}(jQuery),+function(a){"use strict";var b=function(b){this.element=a(b)};b.prototype.show=function(){var b=this.element,c=b.closest("ul:not(.dropdown-menu)"),d=b.data("target");d||(d=b.attr("href"),d=d&&d.replace(/.*(?=#[^\s]*$)/,""));if(b.parent("li").hasClass("active"))return;var e=c.find(".active:last a")[0],f=a.Event("show.bs.tab",{relatedTarget:e});b.trigger(f);if(f.isDefaultPrevented())return;var g=a(d);this.activate(b.parent("li"),c),this.activate(g,g.parent(),function(){b.trigger({type:"shown.bs.tab",relatedTarget:e})})},b.prototype.activate=function(b,c,d){function g(){e.removeClass("active").find("> .dropdown-menu > .active").removeClass("active"),b.addClass("active"),f?(b[0].offsetWidth,b.addClass("in")):b.removeClass("fade"),b.parent(".dropdown-menu")&&b.closest("li.dropdown").addClass("active"),d&&d()}var e=c.find("> .active"),f=d&&a.support.transition&&e.hasClass("fade");f?e.one(a.support.transition.end,g).emulateTransitionEnd(150):g(),e.removeClass("in")};var c=a.fn.tab;a.fn.tab=function(c){return this.each(function(){var d=a(this),e=d.data("bs.tab");e||d.data("bs.tab",e=new b(this)),typeof c=="string"&&e[c]()})},a.fn.tab.Constructor=b,a.fn.tab.noConflict=function(){return a.fn.tab=c,this},a(document).on("click.bs.tab.data-api",'[data-toggle="tab"], [data-toggle="pill"]',function(b){b.preventDefault(),a(this).tab("show")})}(jQuery),+function(a){"use strict";var b=function(c,d){this.options=a.extend({},b.DEFAULTS,d),this.$window=a(window).on("scroll.bs.affix.data-api",a.proxy(this.checkPosition,this)).on("click.bs.affix.data-api",a.proxy(this.checkPositionWithEventLoop,this)),this.$element=a(c),this.affixed=this.unpin=null,this.checkPosition()};b.RESET="affix affix-top affix-bottom",b.DEFAULTS={offset:0},b.prototype.checkPositionWithEventLoop=function(){setTimeout(a.proxy(this.checkPosition,this),1)},b.prototype.checkPosition=function(){if(!this.$element.is(":visible"))return;var c=a(document).height(),d=this.$window.scrollTop(),e=this.$element.offset(),f=this.options.offset,g=f.top,h=f.bottom;typeof f!="object"&&(h=g=f),typeof g=="function"&&(g=f.top()),typeof h=="function"&&(h=f.bottom());var i=this.unpin!=null&&d+this.unpin<=e.top?!1:h!=null&&e.top+this.$element.height()>=c-h?"bottom":g!=null&&d<=g?"top":!1;if(this.affixed===i)return;this.unpin&&this.$element.css("top",""),this.affixed=i,this.unpin=i=="bottom"?e.top-d:null,this.$element.removeClass(b.RESET).addClass("affix"+(i?"-"+i:"")),i=="bottom"&&this.$element.offset({top:document.body.offsetHeight-h-this.$element.height()})};var c=a.fn.affix;a.fn.affix=function(c){return this.each(function(){var d=a(this),e=d.data("bs.affix"),f=typeof c=="object"&&c;e||d.data("bs.affix",e=new b(this,f)),typeof c=="string"&&e[c]()})},a.fn.affix.Constructor=b,a.fn.affix.noConflict=function(){return a.fn.affix=c,this},a(window).on("load",function(){a('[data-spy="affix"]').each(function(){var b=a(this),c=b.data();c.offset=c.offset||{},c.offsetBottom&&(c.offset.bottom=c.offsetBottom),c.offsetTop&&(c.offset.top=c.offsetTop),b.affix(c)})})}(jQuery),+function(a){"use strict";var b=function(c,d){this.$element=a(c),this.options=a.extend({},b.DEFAULTS,d),this.transitioning=null,this.options.parent&&(this.$parent=a(this.options.parent)),this.options.toggle&&this.toggle()};b.DEFAULTS={toggle:!0},b.prototype.dimension=function(){var a=this.$element.hasClass("width");return a?"width":"height"},b.prototype.show=function(){if(this.transitioning||this.$element.hasClass("in"))return;var b=a.Event("show.bs.collapse");this.$element.trigger(b);if(b.isDefaultPrevented())return;var c=this.$parent&&this.$parent.find("> .panel > .in");if(c&&c.length){var d=c.data("bs.collapse");if(d&&d.transitioning)return;c.collapse("hide"),d||c.data("bs.collapse",null)}var e=this.dimension();this.$element.removeClass("collapse").addClass("collapsing")[e](0),this.transitioning=1;var f=function(){this.$element.removeClass("collapsing").addClass("in")[e]("auto"),this.transitioning=0,this.$element.trigger("shown.bs.collapse")};if(!a.support.transition)return f.call(this);var g=a.camelCase(["scroll",e].join("-"));this.$element.one(a.support.transition.end,a.proxy(f,this)).emulateTransitionEnd(350)[e](this.$element[0][g])},b.prototype.hide=function(){if(this.transitioning||!this.$element.hasClass("in"))return;var b=a.Event("hide.bs.collapse");this.$element.trigger(b);if(b.isDefaultPrevented())return;var c=this.dimension();this.$element[c](this.$element[c]())[0].offsetHeight,this.$element.addClass("collapsing").removeClass("collapse").removeClass("in"),this.transitioning=1;var d=function(){this.transitioning=0,this.$element.trigger("hidden.bs.collapse").removeClass("collapsing").addClass("collapse")};if(!a.support.transition)return d.call(this);this.$element[c](0).one(a.support.transition.end,a.proxy(d,this)).emulateTransitionEnd(350)},b.prototype.toggle=function(){this[this.$element.hasClass("in")?"hide":"show"]()};var c=a.fn.collapse;a.fn.collapse=function(c){return this.each(function(){var d=a(this),e=d.data("bs.collapse"),f=a.extend({},b.DEFAULTS,d.data(),typeof c=="object"&&c);e||d.data("bs.collapse",e=new b(this,f)),typeof c=="string"&&e[c]()})},a.fn.collapse.Constructor=b,a.fn.collapse.noConflict=function(){return a.fn.collapse=c,this},a(document).on("click.bs.collapse.data-api","[data-toggle=collapse]",function(b){var c=a(this),d,e=c.attr("data-target")||b.preventDefault()||(d=c.attr("href"))&&d.replace(/.*(?=#[^\s]+$)/,""),f=a(e),g=f.data("bs.collapse"),h=g?"toggle":c.data(),i=c.attr("data-parent"),j=i&&a(i);if(!g||!g.transitioning)j&&j.find('[data-toggle=collapse][data-parent="'+i+'"]').not(c).addClass("collapsed"),c[f.hasClass("in")?"addClass":"removeClass"]("collapsed");f.collapse(h)})}(jQuery),+function(a){function b(c,d){var e,f=a.proxy(this.process,this);this.$element=a(c).is("body")?a(window):a(c),this.$body=a("body"),this.$scrollElement=this.$element.on("scroll.bs.scroll-spy.data-api",f),this.options=a.extend({},b.DEFAULTS,d),this.selector=(this.options.target||(e=a(c).attr("href"))&&e.replace(/.*(?=#[^\s]+$)/,"")||"")+" .nav li > a",this.offsets=a([]),this.targets=a([]),this.activeTarget=null,this.refresh(),this.process()}"use strict",b.DEFAULTS={offset:10},b.prototype.refresh=function(){var b=this.$element[0]==window?"offset":"position";this.offsets=a([]),this.targets=a([]);var c=this,d=this.$body.find(this.selector).map(function(){var d=a(this),e=d.data("target")||d.attr("href"),f=/^#\w/.test(e)&&a(e);return f&&f.length&&[[f[b]().top+(!a.isWindow(c.$scrollElement.get(0))&&c.$scrollElement.scrollTop()),e]]||null}).sort(function(a,b){return a[0]-b[0]}).each(function(){c.offsets.push(this[0]),c.targets.push(this[1])})},b.prototype.process=function(){var a=this.$scrollElement.scrollTop()+this.options.offset,b=this.$scrollElement[0].scrollHeight||this.$body[0].scrollHeight,c=b-this.$scrollElement.height(),d=this.offsets,e=this.targets,f=this.activeTarget,g;if(a>=c)return f!=(g=e.last()[0])&&this.activate(g);for(g=d.length;g--;)f!=e[g]&&a>=d[g]&&(!d[g+1]||a<=d[g+1])&&this.activate(e[g])},b.prototype.activate=function(b){this.activeTarget=b,a(this.selector).parents(".active").removeClass("active");var c=this.selector+'[data-target="'+b+'"],'+this.selector+'[href="'+b+'"]',d=a(c).parents("li").addClass("active");d.parent(".dropdown-menu").length&&(d=d.closest("li.dropdown").addClass("active")),d.trigger("activate")};var c=a.fn.scrollspy;a.fn.scrollspy=function(c){return this.each(function(){var d=a(this),e=d.data("bs.scrollspy"),f=typeof c=="object"&&c;e||d.data("bs.scrollspy",e=new b(this,f)),typeof c=="string"&&e[c]()})},a.fn.scrollspy.Constructor=b,a.fn.scrollspy.noConflict=function(){return a.fn.scrollspy=c,this},a(window).on("load",function(){a('[data-spy="scroll"]').each(function(){var b=a(this);b.scrollspy(b.data())})})}(jQuery),+function(a){function b(){var a=document.createElement("bootstrap"),b={WebkitTransition:"webkitTransitionEnd",MozTransition:"transitionend",OTransition:"oTransitionEnd otransitionend",transition:"transitionend"};for(var c in b)if(a.style[c]!==undefined)return{end:b[c]}}"use strict",a.fn.emulateTransitionEnd=function(b){var c=!1,d=this;a(this).one(a.support.transition.end,function(){c=!0});var e=function(){c||a(d).trigger(a.support.transition.end)};return setTimeout(e,b),this},a(function(){a.support.transition=b()})}(jQuery) \ No newline at end of file diff --git a/packages/phocadownload/media/com_phocadownload/bootstrap/js/index.html b/packages/phocadownload/media/com_phocadownload/bootstrap/js/index.html new file mode 100644 index 00000000..fa6d84e8 --- /dev/null +++ b/packages/phocadownload/media/com_phocadownload/bootstrap/js/index.html @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/phocadownload/media/com_phocadownload/css/administrator/index.html b/packages/phocadownload/media/com_phocadownload/css/administrator/index.html new file mode 100644 index 00000000..ea9e94c1 --- /dev/null +++ b/packages/phocadownload/media/com_phocadownload/css/administrator/index.html @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/phocadownload/media/com_phocadownload/css/administrator/phocadownload.css b/packages/phocadownload/media/com_phocadownload/css/administrator/phocadownload.css new file mode 100644 index 00000000..2b890ef0 --- /dev/null +++ b/packages/phocadownload/media/com_phocadownload/css/administrator/phocadownload.css @@ -0,0 +1,616 @@ +/* Columns*/ +.ph-image { + text-align:center; + width: 10%; +} +.ph-title { + width: 60%; +} + +.ph-title-stat { + width: 10%; +} +.ph-filename-stat { + width: 50%; +} + +.ph-title-short { + width: 30%; +} +.ph-filename-long { + width: 50%; +} +.ph-count { + width: 5%; +} + +.ph-page { + width: 5%; +} + +.ph-functions, +.ph-id, +.ph-check, +.ph-ordering { + width: 1%; +} + +.ph-right { + text-align: right !important; +} +.ph-center { + text-align: center !important; +} + +.ph-uploaduser { + width: 7%; + white-space: nowrap; +} +.ph-owner, +.ph-rating, +.ph-hits, +.ph-language, +.ph-published, +.ph-approved { + width: 5%; +} +.ph-user, +.ph-parentcattitle { + width: 15%; +} +.ph-filename, +.ph-access { + width: 10%; +} + + +.ph-multiple-table tr td.ph-img-table { + text-align: center; + padding-top: 4px; +} +.ph-icon { + margin: 0; + padding: 5px; + float: left; + margin: 0 auto; + text-align: center; +} +.ph-icon-inside.thumbnail { + width: 100px; + height: 100px; + -webkit-border-radius: 0px; + border-radius: 0px; + background: #fdfdfd; +} +.ph-icon-inside.thumbnail img { + margin-top: 10px; + margin-bottom: -12px; +} +.ph-icon-inside.thumbnail span { +} + +.ph-head-form-small, +.ph-head-form { + font-weight: bold; +} +.ph-head-form { + margin-bottom: 10px; +} +.ph-in { + padding: 5px; +} + +.ph-w80 { + width: 80%; +} +.dl-horizontal.ph-input dt { + float: left; + clear: left; + margin-right: 20px; + text-align: left; + width: auto; +} +.dl-horizontal.ph-input dd{ +} + +.ph-cpanel-left { + float: left; + width: 50%; +} +.ph-cpanel-right { + float: right; + width: 50%; +} + +#configTabs li a img { + margin-top: -3px; +} + +.ph-head-form-small, +.ph-head-form { + font-weight: bold; +} +.ph-head-form { + margin-bottom: 10px; +} +.ph-in { + padding: 5px; +} + +.ph-w80 { + width: 80%; +} +.dl-horizontal.ph-input dt { + float: left; + clear: left; + margin-right: 20px; + text-align: left; + width: auto; +} +.dl-horizontal.ph-input dd{ +} + +.icon-multiple:before { + content: url('../../images/administrator/icon-12-multiple.png'); +} + +.icon-authorizeall:before { + content: url('../../images/administrator/icon-12-authorizeall.png'); +} + +.icon-disapprove:before { + content: url('../../images/administrator/icon-12-disapprove.png'); +} +.icon-approve:before { + content: url('../../images/administrator/icon-12-approve.png'); +} + +.icon-reset:before { + content: url('../../images/administrator/icon-12-reset.png'); +} + +.icon-back:before { + content: url('../../images/administrator/icon-12-back.png'); +} + +/* -- Codemirror Editor ----------- */ +div.editor-border /*, div.CodeMirror-wrapping */ { + border: 1px solid #ccc; + background-color: #ffffff; +} +#ph-editor div.CodeMirror-wrapping { + height: 400px !important; +} + + + + +div.icon-48-phocadownload { + background: url('../../images/administrator/icon-48-phocadownload.png') no-repeat left; +} +div.icon-48-info { + background: url('../../images/administrator/icon-48-info.png') no-repeat left; +} +div.icon-48-tags { + background: url('../../images/administrator/icon-48-tags.png') no-repeat left; +} +div.icon-48-layout { + background: url('../../images/administrator/icon-48-layout.png') no-repeat left; +} +div.icon-48-category { + background: url('../../images/administrator/icon-48-cats.png') no-repeat left; +} + +div.icon-48-section { + background: url('../../images/administrator/icon-48-sec.png') no-repeat left; +} +div.icon-48-settings { + background: url('../../images/administrator/icon-48-set.png') no-repeat left; +} +div.icon-48-file { + background: url('../../images/administrator/icon-48-file.png') no-repeat left; +} +div.icon-48-statistics { + background: url('../../images/administrator/icon-48-stat.png') no-repeat left; +} +div.icon-48-userstat { + background: url('../../images/administrator/icon-48-user-stat.png') no-repeat left; +} +div.icon-48-license { + background: url('../../images/administrator/icon-48-lic.png') no-repeat left; +} +div.icon-48-users { + background: url('../../images/administrator/icon-48-users.png') no-repeat left; +} + +div.icon-48-multiple { + background: url('../../images/administrator/icon-48-pd-multiple.png') no-repeat left; +} + +div.icon-48-vote-file { + background: url('../../images/administrator/icon-48-vote-file.png') no-repeat left; +} +span.icon-32-reset { + background: url('../../images/administrator/icon-32-reset.png') no-repeat left; +} +span.icon-32-authorizeall { + background: url('../../images/administrator/icon-32-authorizeall.png') no-repeat left; +} +span.icon-32-multiple { + background: url('../../images/administrator/icon-32-multiple.png') no-repeat left; +} + +span.icon-32-disapprove { + background: url('../../images/administrator/icon-32-disapprove.png') no-repeat left; +} +span.icon-32-approve { + background: url('../../images/administrator/icon-32-approve.png') no-repeat left; +} + +/* Phoca Download Editor Button Plugin */ +.plg-button-tbl { + width: 100%; +} +.plg-button-tbl tr { + border-bottom: 1px solid #f0f0f0; +} + +.plg-button-tbl tr td { + + padding-top:5px; + padding-bottom: 5px; +} + +.plg-button-insert { + margin-right: 5px; +} + +#phocadownload-links .icon-16-edb-sections { + background: #fdfdfd url('../../images/administrator/icon-16-edb-sections.png') no-repeat 5px center; + list-style-type:none; + padding: 10px 10px 10px 30px; + margin:5px; + border:1px solid #ccc; + display: block; + width: auto; +} +#phocadownload-links .icon-16-edb-section { + background: #fdfdfd url('../../images/administrator/icon-16-edb-section.png') no-repeat 5px center; + list-style-type:none; + padding: 10px 10px 10px 30px; + margin:5px; + border:1px solid #ccc; + display: block; + width: auto; +} +#phocadownload-links .icon-16-edb-category { + background: #fdfdfd url('../../images/administrator/icon-16-edb-category.png') no-repeat 5px center; + list-style-type:none; + padding: 10px 10px 10px 30px; + margin:5px; + border:1px solid #ccc; + display: block; + width: auto; +} + +#phocadownload-links .icon-16-edb-categories { + background: #fdfdfd url('../../images/administrator/icon-16-edb-categories.png') no-repeat 5px center; + list-style-type:none; + padding: 10px 10px 10px 30px; + margin:5px; + border:1px solid #ccc; + display: block; + width: auto; +} +#phocadownload-links .icon-16-edb-file { + background: #fdfdfd url('../../images/administrator/icon-16-edb-file.png') no-repeat 5px center; + list-style-type:none; + padding: 10px 10px 10px 30px; + margin:5px; + border:1px solid #ccc; + display: block; + width: auto; +} +#phocadownload-links .icon-16-edb-play { + background: #fdfdfd url('../../images/administrator/icon-16-edb-play.png') no-repeat 5px center; + list-style-type:none; + padding: 10px 10px 10px 30px; + margin:5px; + border:1px solid #ccc; + display: block; + width: auto; +} +#phocadownload-links .icon-16-edb-preview { + background: #fdfdfd url('../../images/administrator/icon-16-edb-preview.png') no-repeat 5px center; + list-style-type:none; + padding: 10px 10px 10px 30px; + margin:5px; + border:1px solid #ccc; + display: block; + width: auto; +} +#phocadownload-links a { + text-decoration:underline; +} + +#phocadownload-links .icon-16-edb-back { + background: #fdfdfd url('../../images/administrator/icon-16-edb-back.png') no-repeat 5px center; + list-style-type:none; + padding: 10px 10px 10px 26px; + margin:5px; + border:1px solid #ccc; + display: block; + width: auto; +} + +#phocadownload-links th a { + text-decoration:none; +} + +.notapproved { + background:#FFC2C2; + border:1px solid #bf3030; + color: #a60000; + padding:10px; + margin-top:5px; + margin-bottom:5px; +} + +.phoca-adminform { + background-color: #fff; + border: solid 1px #d5d5d5; + padding:10px; + color: #777; +} +.cpanel-right { + color: #777; +} + +.pgerrormsg, +.notapproved { + background:#FFC2C2; + border:1px solid #bf3030; + color: #a60000; + padding:10px; + margin-top:5px; + margin-bottom:5px; +} +.pgsuccessmsg { + background:#ceffc1; + border:1px solid #4ebd30; + color: #23a600; + padding:10px; + margin-top:5px; + margin-bottom:5px; +} +.pgunsetmsg { + background:#fff2c1; + border:1px solid #bda130; + color: #a68400; + padding:10px; + margin-top:5px; + margin-bottom:5px; +} + +#phocadownloadmanager { + font-family: sans, arial; +} +#phocadownloadmanager a img { + + border: none; +} + +#phocadownloadmanager .pd-admin-path { + border: 1px solid #ccc; + background: #f0f0f0; + padding: 10px; + margin:5px 0px; +} +#phocadownloadmanager .pd-admin-files { + border: 1px solid #ccc; + background: #fff; + padding: 10px; + margin:5px 0px; +} + +#phocadownloadmanager .pd-admin-file { + padding:3px 0px; + margin:0px; +} +#phocadownloadmanager .pd-admin-file-checkbox { + padding:3px 0px; + margin:7px 0px; + background: #f9f9f9; + border-bottom: 1px solid #f0f0f0 +} + + +/* Rating */ +/* Voting - style by http://www.jluvip.com/works/css/starvote/index2-1.html*/ + .star-rating{ + list-style:none; + margin: 0px; + margin-top:5px; + margin-bottom:5px; + padding:0px; + width: 110px; + height: 22px; + position: relative; + background: url(images/icon-voting.png) top left repeat-x; +} + + .star-rating li{ + list-style-type:none; + padding:0px; + margin:0px; + /*\*/ + float: left; + /* */ +} + + .star-rating li a{ + display:block; + width:22px; + height: 22px; + text-decoration: none; + text-indent: -9000px; + z-index: 20; + position: absolute; + padding: 0px; +} + .star-rating li a:hover{ + background: url(images/icon-voting.png) left center; + z-index: 2; + left: 0px; +} + .star-rating a.star1{ + left: 0px; +} + .star-rating a.star1:hover{ + width:22px; +} + .star-rating a.stars2{ + left:22px; +} + .star-rating a.stars2:hover{ + width: 44px; +} + .star-rating a.stars3{ + left: 44px; +} + .star-rating a.stars3:hover{ + width: 66px; +} + .star-rating a.stars4{ + left: 66px; +} + .star-rating a.stars4:hover{ + width: 88px; +} + .star-rating a.stars5{ + left: 88px; +} + .star-rating a.stars5:hover{ + width: 110px; +} + .star-rating li.current-rating{ + background: url(images/icon-voting.png) left bottom; + position: absolute; + height: 22px; + /*width:77px;*/ + display: block; + text-indent: -9000px; + z-index: 1; +} + +/* Voting small */ +.star-rating-box-small { + border: 1px solid #e7e7e7; + padding: 1px; + margin: 0px; + background: #fff; +} + +.star-rating-small{ + list-style:none; + margin: 0px; + margin-top:5px; + margin-bottom:5px; + padding:0px; + width: 80px; + height: 16px; + position: relative; + background: url(images/icon-voting-small.png) top left repeat-x; +} + +.star-rating-small li{ + list-style-type:none; + padding:0px; + margin:0px; + /*\*/ + float: left; + /* */ +} + +.star-rating-small li a{ + display:block; + width:16px; + height: 16px; + text-decoration: none; + text-indent: -9000px; + z-index: 20; + position: absolute; + padding: 0px; +} +.star-rating-small li a:hover{ + background: url(images/icon-voting-small.png) left center; + z-index: 2; + left: 0px; +} +.star-rating-small a.star1{ + left: 0px; +} +.star-rating-small a.star1:hover{ + width:16px; +} +.star-rating-small a.stars2{ + left:16px; +} +.star-rating-small a.stars2:hover{ + width: 32px; +} +.star-rating-small a.stars3{ + left: 32px; +} +.star-rating-small a.stars3:hover{ + width: 48px; +} +.star-rating-small a.stars4{ + left: 48px; +} +.star-rating-small a.stars4:hover{ + width: 64px; +} +.star-rating-small a.stars5{ + left: 64px; +} +.star-rating-small a.stars5:hover{ + width: 80px; +} +.star-rating-small li.current-rating{ + background: url(images/icon-voting-small.png) left bottom; + position: absolute; + height: 16px; + /*width:77px;*/ + display: block; + text-indent: -9000px; + z-index: 1; +} + +.warning { + padding: 5px; + border: 1px solid #FF8E6B; + background: #FFDCD1; + color: #FF3F05; + margin: 10px 0px; +} + +.pdview { + padding: 0px 5px 10px 5px; + border: 1px solid #ccc; + background: #fff; + margin: 5px 0px; +} +.adminForm, +#adminForm { + margin: 0px 0px 0px 0px !important; + padding: 0px 0px 0px 0px !important; +} + +.ph-btn-toolbar-2 { + clear: right; + padding-top: 10px; +} +.ph-select-status { + padding-left: 5px; +} diff --git a/packages/phocadownload/media/com_phocadownload/css/administrator/phocadownloadoptions.css b/packages/phocadownload/media/com_phocadownload/css/administrator/phocadownloadoptions.css new file mode 100644 index 00000000..a82053e8 --- /dev/null +++ b/packages/phocadownload/media/com_phocadownload/css/administrator/phocadownloadoptions.css @@ -0,0 +1,41 @@ +label { + width: 20em; + +} + +hr { + border-bottom: 1px solid #cce6ff; + + display: block; + margin: 0; padding: 0; +} + +.ph-options-head { + background: #E5F3FF; + color: #0069CC; + border: 1px solid #B3DBFF; + + padding:15px 10px; + margin:5px 0; + display:block; + text-shadow: 0 1px 0 #ffffff; + margin-left: -180px; + border-radius: 0px; +} + +.ph-options-head-expert { + background: #F2dede; + color: #b94a48; + border: 1px solid #edd3d6; + padding:15px 10px; + margin:5px 0; + display:block; + text-shadow: 0 1px 0 #ffffff; + margin-left: -180px; +} + +.ph-options-head-expert div +.ph-options-head div{ + white-space: nowrap; + +} \ No newline at end of file diff --git a/packages/phocadownload/media/com_phocadownload/css/administrator/rating.css b/packages/phocadownload/media/com_phocadownload/css/administrator/rating.css new file mode 100644 index 00000000..7e3a9d52 --- /dev/null +++ b/packages/phocadownload/media/com_phocadownload/css/administrator/rating.css @@ -0,0 +1,268 @@ +/* Rating */ +/* Voting - style by http://www.jluvip.com/works/css/starvote/index2-1.html*/ +#phoca-dl-category-box ul.star-rating li, +#phoca-dl-category-box ul.star-rating-small li, +#phoca-dl-file-box ul.star-rating li, +#phoca-dl-file-box ul.star-rating-small li{ + background: none; + list-style-type:none; +} + +#phoca-dl-file-box .star-rating, +#phoca-dl-category-box .star-rating, +.star-rating{ + list-style:none; + margin: 0px; + margin-bottom:5px; + padding:0px; + width: 110px; + height: 22px; + position: relative; + background: url(../../images/icon-voting.png) top left repeat-x; +} + +#phoca-dl-file-box .star-rating li, +#phoca-dl-category-box .star-rating li, +.star-rating li{ + list-style-type:none; + padding:0px; + margin:0px; + /*\*/ + float: left; + /* */ +} + +#phoca-dl-file-box .star-rating li a, +#phoca-dl-category-box .star-rating li a, +.star-rating li a{ + display:block; + width:22px; + height: 22px; + text-decoration: none; + text-indent: -9000px; + z-index: 20; + position: absolute; + padding: 0px; +} + +#phoca-dl-file-box .star-rating li a:hover, +#phoca-dl-category-box .star-rating li a:hover, +.star-rating li a:hover{ + background: url(../../images/icon-voting.png) left center; + z-index: 2; + left: 0px; +} + +#phoca-dl-file-box .star-rating a.star1, +#phoca-dl-category-box .star-rating a.star1, +.star-rating a.star1{ + left: 0px; +} + +#phoca-dl-file-box .star-rating a.star1:hover, +#phoca-dl-category-box .star-rating a.star1:hover, +.star-rating a.star1:hover{ + width:22px; +} + +#phoca-dl-file-box .star-rating a.stars2, +#phoca-dl-category-box .star-rating a.stars2, +.star-rating a.stars2{ + left:22px; +} + +#phoca-dl-file-box .star-rating a.stars2:hover, +#phoca-dl-category-box .star-rating a.stars2:hover, +.star-rating a.stars2:hover{ + width: 44px; +} + +#phoca-dl-file-box .star-rating a.stars3, +#phoca-dl-category-box .star-rating a.stars3, +.star-rating a.stars3{ + left: 44px; +} + +#phoca-dl-file-box .star-rating a.stars3:hover, +#phoca-dl-category-box .star-rating a.stars3:hover, +.star-rating a.stars3:hover{ + width: 66px; +} + +#phoca-dl-file-box .star-rating a.stars4, +#phoca-dl-category-box .star-rating a.stars4, +.star-rating a.stars4{ + left: 66px; +} + +#phoca-dl-file-box .star-rating a.stars4:hover, +#phoca-dl-category-box .star-rating a.stars4:hover, +.star-rating a.stars4:hover{ + width: 88px; +} + +#phoca-dl-file-box .star-rating a.stars5, +#phoca-dl-category-box .star-rating a.stars5, +.star-rating a.stars5{ + left: 88px; +} + +#phoca-dl-file-box .star-rating a.stars5:hover, +#phoca-dl-category-box .star-rating a.stars5:hover, +.star-rating a.stars5:hover{ + width: 110px; +} + +#phoca-dl-file-box .star-rating li.current-rating, +#phoca-dl-category-box .star-rating li.current-rating, +.star-rating li.current-rating{ + background: url(../../images/icon-voting.png) left bottom; + position: absolute; + height: 22px; + /*width:77px;*/ + display: block; + text-indent: -9000px; + z-index: 1; +} + + +/* Voting small */ +#phoca-dl-file-box .star-rating-small, +#phoca-dl-category-box .star-rating-small, +.star-rating-small{ + list-style:none; + margin: 0px; + margin-bottom:5px; + padding:0px; + width: 90px; + height: 18px; + position: relative; + background: url(../../images/icon-voting-small.png) top left repeat-x; +} + +#phoca-dl-file-box .star-rating-small li, +#phoca-dl-category-box .star-rating-small li, +.star-rating-small li{ + list-style-type:none; + padding:0px; + margin:0px; + /*\*/ + float: left; + /* */ +} + +#phoca-dl-file-box .star-rating-small li a, +#phoca-dl-category-box .star-rating-small li a, +.star-rating-small li a{ + display:block; + width:18px; + height: 18px; + text-decoration: none; + text-indent: -9000px; + z-index: 20; + position: absolute; + padding: 0px; +} + +#phoca-dl-file-box .star-rating-small li a:hover, +#phoca-dl-category-box .star-rating-small li a:hover, +.star-rating-small li a:hover{ + background: url(../../images/icon-voting-small.png) left center; + z-index: 2; + left: 0px; +} + +#phoca-dl-file-box .star-rating-small a.star1, +#phoca-dl-category-box .star-rating-small a.star1, +.star-rating-small a.star1{ + left: 0px; +} + +#phoca-dl-file-box .star-rating-small a.star1:hover, +#phoca-dl-category-box .star-rating-small a.star1:hover, +.star-rating-small a.star1:hover{ + width:18px; +} + +#phoca-dl-file-box .star-rating-small a.stars2, +#phoca-dl-category-box .star-rating-small a.stars2, +.star-rating-small a.stars2{ + left:18px; +} + +#phoca-dl-file-box .star-rating-small a.stars2:hover, +#phoca-dl-category-box .star-rating-small a.stars2:hover, +.star-rating-small a.stars2:hover{ + width: 36px; +} + +#phoca-dl-file-box .star-rating-small a.stars3, +#phoca-dl-category-box .star-rating-small a.stars3, +.star-rating-small a.stars3{ + left: 36px; +} + +#phoca-dl-file-box .star-rating-small a.stars3:hover, +#phoca-dl-category-box .star-rating-small a.stars3:hover, +.star-rating-small a.stars3:hover{ + width: 54px; +} + +#phoca-dl-file-box .star-rating-small a.stars4, +#phoca-dl-category-box .star-rating-small a.stars4, +.star-rating-small a.stars4{ + left: 54px; +} + +#phoca-dl-file-box .star-rating-small a.stars4:hover, +#phoca-dl-category-box .star-rating-small a.stars4:hover, +.star-rating-small a.stars4:hover{ + width: 72px; +} + +#phoca-dl-file-box .star-rating-small a.stars5, +#phoca-dl-category-box .star-rating-small a.stars5, +.star-rating-small a.stars5{ + left: 72px; +} + +#phoca-dl-file-box .star-rating-small a.stars5:hover, +#phoca-dl-category-box .star-rating-small a.stars5:hover, +.star-rating-small a.stars5:hover{ + width: 90px; +} + +#phoca-dl-file-box .star-rating-small li.current-rating, +#phoca-dl-category-box .star-rating-small li.current-rating, +.star-rating-small li.current-rating{ + background: url(../../images/icon-voting-small.png) left bottom; + position: absolute; + height: 18px; + /*width:77px;*/ + display: block; + text-indent: -9000px; + z-index: 1; +} + + + +.pd-small, +.pd-result, +#phoca-dl-file-box .pd-small, +#phoca-dl-file-box .pd-result, +#phoca-dl-category-box .pd-small, +#phoca-dl-category-box .pd-result { + font-size: x-small; +} + + +#phoca-dl-file-box ul.star-rating-small, +#phoca-dl-category-box ul.star-rating-small, +#phoca-dl-file-box ul.star-rating-small li, +#phoca-dl-category-box ul.star-rating-small li, +#phoca-dl-file-box ul.star-rating, +#phoca-dl-category-box ul.star-rating, +#phoca-dl-file-box ul.star-rating li, +#phoca-dl-category-box ul.star-rating li { + list-style: none !important; +} \ No newline at end of file diff --git a/packages/phocadownload/media/com_phocadownload/css/custom/default.css b/packages/phocadownload/media/com_phocadownload/css/custom/default.css new file mode 100644 index 00000000..dc1f6a5e --- /dev/null +++ b/packages/phocadownload/media/com_phocadownload/css/custom/default.css @@ -0,0 +1,5 @@ +/* +Phoca Download +http://www.phoca.cz/ +http://www.phoca.cz/phocadownload +*/ \ No newline at end of file diff --git a/packages/phocadownload/media/com_phocadownload/css/custom/index.html b/packages/phocadownload/media/com_phocadownload/css/custom/index.html new file mode 100644 index 00000000..fa6d84e8 --- /dev/null +++ b/packages/phocadownload/media/com_phocadownload/css/custom/index.html @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/phocadownload/media/com_phocadownload/css/index.html b/packages/phocadownload/media/com_phocadownload/css/index.html new file mode 100644 index 00000000..ea9e94c1 --- /dev/null +++ b/packages/phocadownload/media/com_phocadownload/css/index.html @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/phocadownload/media/com_phocadownload/css/main/bootstrap.min.css b/packages/phocadownload/media/com_phocadownload/css/main/bootstrap.min.css new file mode 100644 index 00000000..a9cfd5af --- /dev/null +++ b/packages/phocadownload/media/com_phocadownload/css/main/bootstrap.min.css @@ -0,0 +1,9 @@ +/*! + * Bootstrap v2.3.2 + * + * Copyright 2012 Twitter, Inc + * Licensed under the Apache License v2.0 + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Designed and built with all the love in the world @twitter by @mdo and @fat. + */.clearfix{*zoom:1}.clearfix:before,.clearfix:after{display:table;line-height:0;content:""}.clearfix:after{clear:both}.hide-text{font:0/0 a;color:transparent;text-shadow:none;background-color:transparent;border:0}.input-block-level{display:block;width:100%;min-height:30px;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}article,aside,details,figcaption,figure,footer,header,hgroup,nav,section{display:block}audio,canvas,video{display:inline-block;*display:inline;*zoom:1}audio:not([controls]){display:none}html{font-size:100%;-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%}a:focus{outline:thin dotted #333;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}a:hover,a:active{outline:0}sub,sup{position:relative;font-size:75%;line-height:0;vertical-align:baseline}sup{top:-0.5em}sub{bottom:-0.25em}img{width:auto\9;height:auto;max-width:100%;vertical-align:middle;border:0;-ms-interpolation-mode:bicubic}#map_canvas img,.google-maps img{max-width:none}button,input,select,textarea{margin:0;font-size:100%;vertical-align:middle}button,input{*overflow:visible;line-height:normal}button::-moz-focus-inner,input::-moz-focus-inner{padding:0;border:0}button,html input[type="button"],input[type="reset"],input[type="submit"]{cursor:pointer;-webkit-appearance:button}label,select,button,input[type="button"],input[type="reset"],input[type="submit"],input[type="radio"],input[type="checkbox"]{cursor:pointer}input[type="search"]{-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box;-webkit-appearance:textfield}input[type="search"]::-webkit-search-decoration,input[type="search"]::-webkit-search-cancel-button{-webkit-appearance:none}textarea{overflow:auto;vertical-align:top}@media print{*{color:#000!important;text-shadow:none!important;background:transparent!important;box-shadow:none!important}a,a:visited{text-decoration:underline}a[href]:after{content:" (" attr(href) ")"}abbr[title]:after{content:" (" attr(title) ")"}.ir a:after,a[href^="javascript:"]:after,a[href^="#"]:after{content:""}pre,blockquote{border:1px solid #999;page-break-inside:avoid}thead{display:table-header-group}tr,img{page-break-inside:avoid}img{max-width:100%!important}@page{margin:.5cm}p,h2,h3{orphans:3;widows:3}h2,h3{page-break-after:avoid}}body{margin:0;font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:14px;line-height:20px;color:#333;background-color:#fff}a{color:#08c;text-decoration:none}a:hover,a:focus{color:#005580;text-decoration:underline}.img-rounded{-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px}.img-polaroid{padding:4px;background-color:#fff;border:1px solid #ccc;border:1px solid rgba(0,0,0,0.2);-webkit-box-shadow:0 1px 3px rgba(0,0,0,0.1);-moz-box-shadow:0 1px 3px rgba(0,0,0,0.1);box-shadow:0 1px 3px rgba(0,0,0,0.1)}.img-circle{-webkit-border-radius:500px;-moz-border-radius:500px;border-radius:500px}.row{margin-left:-20px;*zoom:1}.row:before,.row:after{display:table;line-height:0;content:""}.row:after{clear:both}[class*="span"]{float:left;min-height:1px;margin-left:20px}.container,.navbar-static-top .container,.navbar-fixed-top .container,.navbar-fixed-bottom .container{width:940px}.span12{width:940px}.span11{width:860px}.span10{width:780px}.span9{width:700px}.span8{width:620px}.span7{width:540px}.span6{width:460px}.span5{width:380px}.span4{width:300px}.span3{width:220px}.span2{width:140px}.span1{width:60px}.offset12{margin-left:980px}.offset11{margin-left:900px}.offset10{margin-left:820px}.offset9{margin-left:740px}.offset8{margin-left:660px}.offset7{margin-left:580px}.offset6{margin-left:500px}.offset5{margin-left:420px}.offset4{margin-left:340px}.offset3{margin-left:260px}.offset2{margin-left:180px}.offset1{margin-left:100px}.row-fluid{width:100%;*zoom:1}.row-fluid:before,.row-fluid:after{display:table;line-height:0;content:""}.row-fluid:after{clear:both}.row-fluid [class*="span"]{display:block;float:left;width:100%;min-height:30px;margin-left:2.127659574468085%;*margin-left:2.074468085106383%;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.row-fluid [class*="span"]:first-child{margin-left:0}.row-fluid .controls-row [class*="span"]+[class*="span"]{margin-left:2.127659574468085%}.row-fluid .span12{width:100%;*width:99.94680851063829%}.row-fluid .span11{width:91.48936170212765%;*width:91.43617021276594%}.row-fluid .span10{width:82.97872340425532%;*width:82.92553191489361%}.row-fluid .span9{width:74.46808510638297%;*width:74.41489361702126%}.row-fluid .span8{width:65.95744680851064%;*width:65.90425531914893%}.row-fluid .span7{width:57.44680851063829%;*width:57.39361702127659%}.row-fluid .span6{width:48.93617021276595%;*width:48.88297872340425%}.row-fluid .span5{width:40.42553191489362%;*width:40.37234042553192%}.row-fluid .span4{width:31.914893617021278%;*width:31.861702127659576%}.row-fluid .span3{width:23.404255319148934%;*width:23.351063829787233%}.row-fluid .span2{width:14.893617021276595%;*width:14.840425531914894%}.row-fluid .span1{width:6.382978723404255%;*width:6.329787234042553%}.row-fluid .offset12{margin-left:104.25531914893617%;*margin-left:104.14893617021275%}.row-fluid .offset12:first-child{margin-left:102.12765957446808%;*margin-left:102.02127659574467%}.row-fluid .offset11{margin-left:95.74468085106382%;*margin-left:95.6382978723404%}.row-fluid .offset11:first-child{margin-left:93.61702127659574%;*margin-left:93.51063829787232%}.row-fluid .offset10{margin-left:87.23404255319149%;*margin-left:87.12765957446807%}.row-fluid .offset10:first-child{margin-left:85.1063829787234%;*margin-left:84.99999999999999%}.row-fluid .offset9{margin-left:78.72340425531914%;*margin-left:78.61702127659572%}.row-fluid .offset9:first-child{margin-left:76.59574468085106%;*margin-left:76.48936170212764%}.row-fluid .offset8{margin-left:70.2127659574468%;*margin-left:70.10638297872339%}.row-fluid .offset8:first-child{margin-left:68.08510638297872%;*margin-left:67.9787234042553%}.row-fluid .offset7{margin-left:61.70212765957446%;*margin-left:61.59574468085106%}.row-fluid .offset7:first-child{margin-left:59.574468085106375%;*margin-left:59.46808510638297%}.row-fluid .offset6{margin-left:53.191489361702125%;*margin-left:53.085106382978715%}.row-fluid .offset6:first-child{margin-left:51.063829787234035%;*margin-left:50.95744680851063%}.row-fluid .offset5{margin-left:44.68085106382979%;*margin-left:44.57446808510638%}.row-fluid .offset5:first-child{margin-left:42.5531914893617%;*margin-left:42.4468085106383%}.row-fluid .offset4{margin-left:36.170212765957444%;*margin-left:36.06382978723405%}.row-fluid .offset4:first-child{margin-left:34.04255319148936%;*margin-left:33.93617021276596%}.row-fluid .offset3{margin-left:27.659574468085104%;*margin-left:27.5531914893617%}.row-fluid .offset3:first-child{margin-left:25.53191489361702%;*margin-left:25.425531914893618%}.row-fluid .offset2{margin-left:19.148936170212764%;*margin-left:19.04255319148936%}.row-fluid .offset2:first-child{margin-left:17.02127659574468%;*margin-left:16.914893617021278%}.row-fluid .offset1{margin-left:10.638297872340425%;*margin-left:10.53191489361702%}.row-fluid .offset1:first-child{margin-left:8.51063829787234%;*margin-left:8.404255319148938%}[class*="span"].hide,.row-fluid [class*="span"].hide{display:none}[class*="span"].pull-right,.row-fluid [class*="span"].pull-right{float:right}.container{margin-right:auto;margin-left:auto;*zoom:1}.container:before,.container:after{display:table;line-height:0;content:""}.container:after{clear:both}.container-fluid{padding-right:20px;padding-left:20px;*zoom:1}.container-fluid:before,.container-fluid:after{display:table;line-height:0;content:""}.container-fluid:after{clear:both}p{margin:0 0 10px}.lead{margin-bottom:20px;font-size:21px;font-weight:200;line-height:30px}small{font-size:85%}strong{font-weight:bold}em{font-style:italic}cite{font-style:normal}.muted{color:#999}a.muted:hover,a.muted:focus{color:#808080}.text-warning{color:#c09853}a.text-warning:hover,a.text-warning:focus{color:#a47e3c}.text-error{color:#b94a48}a.text-error:hover,a.text-error:focus{color:#953b39}.text-info{color:#3a87ad}a.text-info:hover,a.text-info:focus{color:#2d6987}.text-success{color:#468847}a.text-success:hover,a.text-success:focus{color:#356635}.text-left{text-align:left}.text-right{text-align:right}.text-center{text-align:center}h1,h2,h3,h4,h5,h6{margin:10px 0;font-family:inherit;font-weight:bold;line-height:20px;color:inherit;text-rendering:optimizelegibility}h1 small,h2 small,h3 small,h4 small,h5 small,h6 small{font-weight:normal;line-height:1;color:#999}h1,h2,h3{line-height:40px}h1{font-size:38.5px}h2{font-size:31.5px}h3{font-size:24.5px}h4{font-size:17.5px}h5{font-size:14px}h6{font-size:11.9px}h1 small{font-size:24.5px}h2 small{font-size:17.5px}h3 small{font-size:14px}h4 small{font-size:14px}.page-header{padding-bottom:9px;margin:20px 0 30px;border-bottom:1px solid #eee}ul,ol{padding:0;margin:0 0 10px 25px}ul ul,ul ol,ol ol,ol ul{margin-bottom:0}li{line-height:20px}ul.unstyled,ol.unstyled{margin-left:0;list-style:none}ul.inline,ol.inline{margin-left:0;list-style:none}ul.inline>li,ol.inline>li{display:inline-block;*display:inline;padding-right:5px;padding-left:5px;*zoom:1}dl{margin-bottom:20px}dt,dd{line-height:20px}dt{font-weight:bold}dd{margin-left:10px}.dl-horizontal{*zoom:1}.dl-horizontal:before,.dl-horizontal:after{display:table;line-height:0;content:""}.dl-horizontal:after{clear:both}.dl-horizontal dt{float:left;width:160px;overflow:hidden;clear:left;text-align:right;text-overflow:ellipsis;white-space:nowrap}.dl-horizontal dd{margin-left:180px}hr{margin:20px 0;border:0;border-top:1px solid #eee;border-bottom:1px solid #fff}abbr[title],abbr[data-original-title]{cursor:help;border-bottom:1px dotted #999}abbr.initialism{font-size:90%;text-transform:uppercase}blockquote{padding:0 0 0 15px;margin:0 0 20px;border-left:5px solid #eee}blockquote p{margin-bottom:0;font-size:17.5px;font-weight:300;line-height:1.25}blockquote small{display:block;line-height:20px;color:#999}blockquote small:before{content:'\2014 \00A0'}blockquote.pull-right{float:right;padding-right:15px;padding-left:0;border-right:5px solid #eee;border-left:0}blockquote.pull-right p,blockquote.pull-right small{text-align:right}blockquote.pull-right small:before{content:''}blockquote.pull-right small:after{content:'\00A0 \2014'}q:before,q:after,blockquote:before,blockquote:after{content:""}address{display:block;margin-bottom:20px;font-style:normal;line-height:20px}code,pre{padding:0 3px 2px;font-family:Monaco,Menlo,Consolas,"Courier New",monospace;font-size:12px;color:#333;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px}code{padding:2px 4px;color:#d14;white-space:nowrap;background-color:#f7f7f9;border:1px solid #e1e1e8}pre{display:block;padding:9.5px;margin:0 0 10px;font-size:13px;line-height:20px;word-break:break-all;word-wrap:break-word;white-space:pre;white-space:pre-wrap;background-color:#f5f5f5;border:1px solid #ccc;border:1px solid rgba(0,0,0,0.15);-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px}pre.prettyprint{margin-bottom:20px}pre code{padding:0;color:inherit;white-space:pre;white-space:pre-wrap;background-color:transparent;border:0}.pre-scrollable{max-height:340px;overflow-y:scroll}form{margin:0 0 20px}fieldset{padding:0;margin:0;border:0}legend{display:block;width:100%;padding:0;margin-bottom:20px;font-size:21px;line-height:40px;color:#333;border:0;border-bottom:1px solid #e5e5e5}legend small{font-size:15px;color:#999}label,input,button,select,textarea{font-size:14px;font-weight:normal;line-height:20px}input,button,select,textarea{font-family:"Helvetica Neue",Helvetica,Arial,sans-serif}label{display:block;margin-bottom:5px}select,textarea,input[type="text"],input[type="password"],input[type="datetime"],input[type="datetime-local"],input[type="date"],input[type="month"],input[type="time"],input[type="week"],input[type="number"],input[type="email"],input[type="url"],input[type="search"],input[type="tel"],input[type="color"],.uneditable-input{display:inline-block;height:20px;padding:4px 6px;margin-bottom:10px;font-size:14px;line-height:20px;color:#555;vertical-align:middle;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px}input,textarea,.uneditable-input{width:206px}textarea{height:auto}textarea,input[type="text"],input[type="password"],input[type="datetime"],input[type="datetime-local"],input[type="date"],input[type="month"],input[type="time"],input[type="week"],input[type="number"],input[type="email"],input[type="url"],input[type="search"],input[type="tel"],input[type="color"],.uneditable-input{background-color:#fff;border:1px solid #ccc;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);-webkit-transition:border linear .2s,box-shadow linear .2s;-moz-transition:border linear .2s,box-shadow linear .2s;-o-transition:border linear .2s,box-shadow linear .2s;transition:border linear .2s,box-shadow linear .2s}textarea:focus,input[type="text"]:focus,input[type="password"]:focus,input[type="datetime"]:focus,input[type="datetime-local"]:focus,input[type="date"]:focus,input[type="month"]:focus,input[type="time"]:focus,input[type="week"]:focus,input[type="number"]:focus,input[type="email"]:focus,input[type="url"]:focus,input[type="search"]:focus,input[type="tel"]:focus,input[type="color"]:focus,.uneditable-input:focus{border-color:rgba(82,168,236,0.8);outline:0;outline:thin dotted \9;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 8px rgba(82,168,236,0.6);-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 8px rgba(82,168,236,0.6);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 8px rgba(82,168,236,0.6)}input[type="radio"],input[type="checkbox"]{margin:4px 0 0;margin-top:1px \9;*margin-top:0;line-height:normal}input[type="file"],input[type="image"],input[type="submit"],input[type="reset"],input[type="button"],input[type="radio"],input[type="checkbox"]{width:auto}select,input[type="file"]{height:30px;*margin-top:4px;line-height:30px}select{width:220px;background-color:#fff;border:1px solid #ccc}select[multiple],select[size]{height:auto}select:focus,input[type="file"]:focus,input[type="radio"]:focus,input[type="checkbox"]:focus{outline:thin dotted #333;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}.uneditable-input,.uneditable-textarea{color:#999;cursor:not-allowed;background-color:#fcfcfc;border-color:#ccc;-webkit-box-shadow:inset 0 1px 2px rgba(0,0,0,0.025);-moz-box-shadow:inset 0 1px 2px rgba(0,0,0,0.025);box-shadow:inset 0 1px 2px rgba(0,0,0,0.025)}.uneditable-input{overflow:hidden;white-space:nowrap}.uneditable-textarea{width:auto;height:auto}input:-moz-placeholder,textarea:-moz-placeholder{color:#999}input:-ms-input-placeholder,textarea:-ms-input-placeholder{color:#999}input::-webkit-input-placeholder,textarea::-webkit-input-placeholder{color:#999}.radio,.checkbox{min-height:20px;padding-left:20px}.radio input[type="radio"],.checkbox input[type="checkbox"]{float:left;margin-left:-20px}.controls>.radio:first-child,.controls>.checkbox:first-child{padding-top:5px}.radio.inline,.checkbox.inline{display:inline-block;padding-top:5px;margin-bottom:0;vertical-align:middle}.radio.inline+.radio.inline,.checkbox.inline+.checkbox.inline{margin-left:10px}.input-mini{width:60px}.input-small{width:90px}.input-medium{width:150px}.input-large{width:210px}.input-xlarge{width:270px}.input-xxlarge{width:530px}input[class*="span"],select[class*="span"],textarea[class*="span"],.uneditable-input[class*="span"],.row-fluid input[class*="span"],.row-fluid select[class*="span"],.row-fluid textarea[class*="span"],.row-fluid .uneditable-input[class*="span"]{float:none;margin-left:0}.input-append input[class*="span"],.input-append .uneditable-input[class*="span"],.input-prepend input[class*="span"],.input-prepend .uneditable-input[class*="span"],.row-fluid input[class*="span"],.row-fluid select[class*="span"],.row-fluid textarea[class*="span"],.row-fluid .uneditable-input[class*="span"],.row-fluid .input-prepend [class*="span"],.row-fluid .input-append [class*="span"]{display:inline-block}input,textarea,.uneditable-input{margin-left:0}.controls-row [class*="span"]+[class*="span"]{margin-left:20px}input.span12,textarea.span12,.uneditable-input.span12{width:926px}input.span11,textarea.span11,.uneditable-input.span11{width:846px}input.span10,textarea.span10,.uneditable-input.span10{width:766px}input.span9,textarea.span9,.uneditable-input.span9{width:686px}input.span8,textarea.span8,.uneditable-input.span8{width:606px}input.span7,textarea.span7,.uneditable-input.span7{width:526px}input.span6,textarea.span6,.uneditable-input.span6{width:446px}input.span5,textarea.span5,.uneditable-input.span5{width:366px}input.span4,textarea.span4,.uneditable-input.span4{width:286px}input.span3,textarea.span3,.uneditable-input.span3{width:206px}input.span2,textarea.span2,.uneditable-input.span2{width:126px}input.span1,textarea.span1,.uneditable-input.span1{width:46px}.controls-row{*zoom:1}.controls-row:before,.controls-row:after{display:table;line-height:0;content:""}.controls-row:after{clear:both}.controls-row [class*="span"],.row-fluid .controls-row [class*="span"]{float:left}.controls-row .checkbox[class*="span"],.controls-row .radio[class*="span"]{padding-top:5px}input[disabled],select[disabled],textarea[disabled],input[readonly],select[readonly],textarea[readonly]{cursor:not-allowed;background-color:#eee}input[type="radio"][disabled],input[type="checkbox"][disabled],input[type="radio"][readonly],input[type="checkbox"][readonly]{background-color:transparent}.control-group.warning .control-label,.control-group.warning .help-block,.control-group.warning .help-inline{color:#c09853}.control-group.warning .checkbox,.control-group.warning .radio,.control-group.warning input,.control-group.warning select,.control-group.warning textarea{color:#c09853}.control-group.warning input,.control-group.warning select,.control-group.warning textarea{border-color:#c09853;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075)}.control-group.warning input:focus,.control-group.warning select:focus,.control-group.warning textarea:focus{border-color:#a47e3c;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #dbc59e;-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #dbc59e;box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #dbc59e}.control-group.warning .input-prepend .add-on,.control-group.warning .input-append .add-on{color:#c09853;background-color:#fcf8e3;border-color:#c09853}.control-group.error .control-label,.control-group.error .help-block,.control-group.error .help-inline{color:#b94a48}.control-group.error .checkbox,.control-group.error .radio,.control-group.error input,.control-group.error select,.control-group.error textarea{color:#b94a48}.control-group.error input,.control-group.error select,.control-group.error textarea{border-color:#b94a48;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075)}.control-group.error input:focus,.control-group.error select:focus,.control-group.error textarea:focus{border-color:#953b39;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #d59392;-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #d59392;box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #d59392}.control-group.error .input-prepend .add-on,.control-group.error .input-append .add-on{color:#b94a48;background-color:#f2dede;border-color:#b94a48}.control-group.success .control-label,.control-group.success .help-block,.control-group.success .help-inline{color:#468847}.control-group.success .checkbox,.control-group.success .radio,.control-group.success input,.control-group.success select,.control-group.success textarea{color:#468847}.control-group.success input,.control-group.success select,.control-group.success textarea{border-color:#468847;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075)}.control-group.success input:focus,.control-group.success select:focus,.control-group.success textarea:focus{border-color:#356635;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #7aba7b;-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #7aba7b;box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #7aba7b}.control-group.success .input-prepend .add-on,.control-group.success .input-append .add-on{color:#468847;background-color:#dff0d8;border-color:#468847}.control-group.info .control-label,.control-group.info .help-block,.control-group.info .help-inline{color:#3a87ad}.control-group.info .checkbox,.control-group.info .radio,.control-group.info input,.control-group.info select,.control-group.info textarea{color:#3a87ad}.control-group.info input,.control-group.info select,.control-group.info textarea{border-color:#3a87ad;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075)}.control-group.info input:focus,.control-group.info select:focus,.control-group.info textarea:focus{border-color:#2d6987;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #7ab5d3;-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #7ab5d3;box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #7ab5d3}.control-group.info .input-prepend .add-on,.control-group.info .input-append .add-on{color:#3a87ad;background-color:#d9edf7;border-color:#3a87ad}input:focus:invalid,textarea:focus:invalid,select:focus:invalid{color:#b94a48;border-color:#ee5f5b}input:focus:invalid:focus,textarea:focus:invalid:focus,select:focus:invalid:focus{border-color:#e9322d;-webkit-box-shadow:0 0 6px #f8b9b7;-moz-box-shadow:0 0 6px #f8b9b7;box-shadow:0 0 6px #f8b9b7}.form-actions{padding:19px 20px 20px;margin-top:20px;margin-bottom:20px;background-color:#f5f5f5;border-top:1px solid #e5e5e5;*zoom:1}.form-actions:before,.form-actions:after{display:table;line-height:0;content:""}.form-actions:after{clear:both}.help-block,.help-inline{color:#595959}.help-block{display:block;margin-bottom:10px}.help-inline{display:inline-block;*display:inline;padding-left:5px;vertical-align:middle;*zoom:1}.input-append,.input-prepend{display:inline-block;margin-bottom:10px;font-size:0;white-space:nowrap;vertical-align:middle}.input-append input,.input-prepend input,.input-append select,.input-prepend select,.input-append .uneditable-input,.input-prepend .uneditable-input,.input-append .dropdown-menu,.input-prepend .dropdown-menu,.input-append .popover,.input-prepend .popover{font-size:14px}.input-append input,.input-prepend input,.input-append select,.input-prepend select,.input-append .uneditable-input,.input-prepend .uneditable-input{position:relative;margin-bottom:0;*margin-left:0;vertical-align:top;-webkit-border-radius:0 4px 4px 0;-moz-border-radius:0 4px 4px 0;border-radius:0 4px 4px 0}.input-append input:focus,.input-prepend input:focus,.input-append select:focus,.input-prepend select:focus,.input-append .uneditable-input:focus,.input-prepend .uneditable-input:focus{z-index:2}.input-append .add-on,.input-prepend .add-on{display:inline-block;width:auto;height:20px;min-width:16px;padding:4px 5px;font-size:14px;font-weight:normal;line-height:20px;text-align:center;text-shadow:0 1px 0 #fff;background-color:#eee;border:1px solid #ccc}.input-append .add-on,.input-prepend .add-on,.input-append .btn,.input-prepend .btn,.input-append .btn-group>.dropdown-toggle,.input-prepend .btn-group>.dropdown-toggle{vertical-align:top;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0}.input-append .active,.input-prepend .active{background-color:#a9dba9;border-color:#46a546}.input-prepend .add-on,.input-prepend .btn{margin-right:-1px}.input-prepend .add-on:first-child,.input-prepend .btn:first-child{-webkit-border-radius:4px 0 0 4px;-moz-border-radius:4px 0 0 4px;border-radius:4px 0 0 4px}.input-append input,.input-append select,.input-append .uneditable-input{-webkit-border-radius:4px 0 0 4px;-moz-border-radius:4px 0 0 4px;border-radius:4px 0 0 4px}.input-append input+.btn-group .btn:last-child,.input-append select+.btn-group .btn:last-child,.input-append .uneditable-input+.btn-group .btn:last-child{-webkit-border-radius:0 4px 4px 0;-moz-border-radius:0 4px 4px 0;border-radius:0 4px 4px 0}.input-append .add-on,.input-append .btn,.input-append .btn-group{margin-left:-1px}.input-append .add-on:last-child,.input-append .btn:last-child,.input-append .btn-group:last-child>.dropdown-toggle{-webkit-border-radius:0 4px 4px 0;-moz-border-radius:0 4px 4px 0;border-radius:0 4px 4px 0}.input-prepend.input-append input,.input-prepend.input-append select,.input-prepend.input-append .uneditable-input{-webkit-border-radius:0;-moz-border-radius:0;border-radius:0}.input-prepend.input-append input+.btn-group .btn,.input-prepend.input-append select+.btn-group .btn,.input-prepend.input-append .uneditable-input+.btn-group .btn{-webkit-border-radius:0 4px 4px 0;-moz-border-radius:0 4px 4px 0;border-radius:0 4px 4px 0}.input-prepend.input-append .add-on:first-child,.input-prepend.input-append .btn:first-child{margin-right:-1px;-webkit-border-radius:4px 0 0 4px;-moz-border-radius:4px 0 0 4px;border-radius:4px 0 0 4px}.input-prepend.input-append .add-on:last-child,.input-prepend.input-append .btn:last-child{margin-left:-1px;-webkit-border-radius:0 4px 4px 0;-moz-border-radius:0 4px 4px 0;border-radius:0 4px 4px 0}.input-prepend.input-append .btn-group:first-child{margin-left:0}input.search-query{padding-right:14px;padding-right:4px \9;padding-left:14px;padding-left:4px \9;margin-bottom:0;-webkit-border-radius:15px;-moz-border-radius:15px;border-radius:15px}.form-search .input-append .search-query,.form-search .input-prepend .search-query{-webkit-border-radius:0;-moz-border-radius:0;border-radius:0}.form-search .input-append .search-query{-webkit-border-radius:14px 0 0 14px;-moz-border-radius:14px 0 0 14px;border-radius:14px 0 0 14px}.form-search .input-append .btn{-webkit-border-radius:0 14px 14px 0;-moz-border-radius:0 14px 14px 0;border-radius:0 14px 14px 0}.form-search .input-prepend .search-query{-webkit-border-radius:0 14px 14px 0;-moz-border-radius:0 14px 14px 0;border-radius:0 14px 14px 0}.form-search .input-prepend .btn{-webkit-border-radius:14px 0 0 14px;-moz-border-radius:14px 0 0 14px;border-radius:14px 0 0 14px}.form-search input,.form-inline input,.form-horizontal input,.form-search textarea,.form-inline textarea,.form-horizontal textarea,.form-search select,.form-inline select,.form-horizontal select,.form-search .help-inline,.form-inline .help-inline,.form-horizontal .help-inline,.form-search .uneditable-input,.form-inline .uneditable-input,.form-horizontal .uneditable-input,.form-search .input-prepend,.form-inline .input-prepend,.form-horizontal .input-prepend,.form-search .input-append,.form-inline .input-append,.form-horizontal .input-append{display:inline-block;*display:inline;margin-bottom:0;vertical-align:middle;*zoom:1}.form-search .hide,.form-inline .hide,.form-horizontal .hide{display:none}.form-search label,.form-inline label,.form-search .btn-group,.form-inline .btn-group{display:inline-block}.form-search .input-append,.form-inline .input-append,.form-search .input-prepend,.form-inline .input-prepend{margin-bottom:0}.form-search .radio,.form-search .checkbox,.form-inline .radio,.form-inline .checkbox{padding-left:0;margin-bottom:0;vertical-align:middle}.form-search .radio input[type="radio"],.form-search .checkbox input[type="checkbox"],.form-inline .radio input[type="radio"],.form-inline .checkbox input[type="checkbox"]{float:left;margin-right:3px;margin-left:0}.control-group{margin-bottom:10px}legend+.control-group{margin-top:20px;-webkit-margin-top-collapse:separate}.form-horizontal .control-group{margin-bottom:20px;*zoom:1}.form-horizontal .control-group:before,.form-horizontal .control-group:after{display:table;line-height:0;content:""}.form-horizontal .control-group:after{clear:both}.form-horizontal .control-label{float:left;width:160px;padding-top:5px;text-align:right}.form-horizontal .controls{*display:inline-block;*padding-left:20px;margin-left:180px;*margin-left:0}.form-horizontal .controls:first-child{*padding-left:180px}.form-horizontal .help-block{margin-bottom:0}.form-horizontal input+.help-block,.form-horizontal select+.help-block,.form-horizontal textarea+.help-block,.form-horizontal .uneditable-input+.help-block,.form-horizontal .input-prepend+.help-block,.form-horizontal .input-append+.help-block{margin-top:10px}.form-horizontal .form-actions{padding-left:180px}table{max-width:100%;background-color:transparent;border-collapse:collapse;border-spacing:0}.table{width:100%;margin-bottom:20px}.table th,.table td{padding:8px;line-height:20px;text-align:left;vertical-align:top;border-top:1px solid #ddd}.table th{font-weight:bold}.table thead th{vertical-align:bottom}.table caption+thead tr:first-child th,.table caption+thead tr:first-child td,.table colgroup+thead tr:first-child th,.table colgroup+thead tr:first-child td,.table thead:first-child tr:first-child th,.table thead:first-child tr:first-child td{border-top:0}.table tbody+tbody{border-top:2px solid #ddd}.table .table{background-color:#fff}.table-condensed th,.table-condensed td{padding:4px 5px}.table-bordered{border:1px solid #ddd;border-collapse:separate;*border-collapse:collapse;border-left:0;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px}.table-bordered th,.table-bordered td{border-left:1px solid #ddd}.table-bordered caption+thead tr:first-child th,.table-bordered caption+tbody tr:first-child th,.table-bordered caption+tbody tr:first-child td,.table-bordered colgroup+thead tr:first-child th,.table-bordered colgroup+tbody tr:first-child th,.table-bordered colgroup+tbody tr:first-child td,.table-bordered thead:first-child tr:first-child th,.table-bordered tbody:first-child tr:first-child th,.table-bordered tbody:first-child tr:first-child td{border-top:0}.table-bordered thead:first-child tr:first-child>th:first-child,.table-bordered tbody:first-child tr:first-child>td:first-child,.table-bordered tbody:first-child tr:first-child>th:first-child{-webkit-border-top-left-radius:4px;border-top-left-radius:4px;-moz-border-radius-topleft:4px}.table-bordered thead:first-child tr:first-child>th:last-child,.table-bordered tbody:first-child tr:first-child>td:last-child,.table-bordered tbody:first-child tr:first-child>th:last-child{-webkit-border-top-right-radius:4px;border-top-right-radius:4px;-moz-border-radius-topright:4px}.table-bordered thead:last-child tr:last-child>th:first-child,.table-bordered tbody:last-child tr:last-child>td:first-child,.table-bordered tbody:last-child tr:last-child>th:first-child,.table-bordered tfoot:last-child tr:last-child>td:first-child,.table-bordered tfoot:last-child tr:last-child>th:first-child{-webkit-border-bottom-left-radius:4px;border-bottom-left-radius:4px;-moz-border-radius-bottomleft:4px}.table-bordered thead:last-child tr:last-child>th:last-child,.table-bordered tbody:last-child tr:last-child>td:last-child,.table-bordered tbody:last-child tr:last-child>th:last-child,.table-bordered tfoot:last-child tr:last-child>td:last-child,.table-bordered tfoot:last-child tr:last-child>th:last-child{-webkit-border-bottom-right-radius:4px;border-bottom-right-radius:4px;-moz-border-radius-bottomright:4px}.table-bordered tfoot+tbody:last-child tr:last-child td:first-child{-webkit-border-bottom-left-radius:0;border-bottom-left-radius:0;-moz-border-radius-bottomleft:0}.table-bordered tfoot+tbody:last-child tr:last-child td:last-child{-webkit-border-bottom-right-radius:0;border-bottom-right-radius:0;-moz-border-radius-bottomright:0}.table-bordered caption+thead tr:first-child th:first-child,.table-bordered caption+tbody tr:first-child td:first-child,.table-bordered colgroup+thead tr:first-child th:first-child,.table-bordered colgroup+tbody tr:first-child td:first-child{-webkit-border-top-left-radius:4px;border-top-left-radius:4px;-moz-border-radius-topleft:4px}.table-bordered caption+thead tr:first-child th:last-child,.table-bordered caption+tbody tr:first-child td:last-child,.table-bordered colgroup+thead tr:first-child th:last-child,.table-bordered colgroup+tbody tr:first-child td:last-child{-webkit-border-top-right-radius:4px;border-top-right-radius:4px;-moz-border-radius-topright:4px}.table-striped tbody>tr:nth-child(odd)>td,.table-striped tbody>tr:nth-child(odd)>th{background-color:#f9f9f9}.table-hover tbody tr:hover>td,.table-hover tbody tr:hover>th{background-color:#f5f5f5}table td[class*="span"],table th[class*="span"],.row-fluid table td[class*="span"],.row-fluid table th[class*="span"]{display:table-cell;float:none;margin-left:0}.table td.span1,.table th.span1{float:none;width:44px;margin-left:0}.table td.span2,.table th.span2{float:none;width:124px;margin-left:0}.table td.span3,.table th.span3{float:none;width:204px;margin-left:0}.table td.span4,.table th.span4{float:none;width:284px;margin-left:0}.table td.span5,.table th.span5{float:none;width:364px;margin-left:0}.table td.span6,.table th.span6{float:none;width:444px;margin-left:0}.table td.span7,.table th.span7{float:none;width:524px;margin-left:0}.table td.span8,.table th.span8{float:none;width:604px;margin-left:0}.table td.span9,.table th.span9{float:none;width:684px;margin-left:0}.table td.span10,.table th.span10{float:none;width:764px;margin-left:0}.table td.span11,.table th.span11{float:none;width:844px;margin-left:0}.table td.span12,.table th.span12{float:none;width:924px;margin-left:0}.table tbody tr.success>td{background-color:#dff0d8}.table tbody tr.error>td{background-color:#f2dede}.table tbody tr.warning>td{background-color:#fcf8e3}.table tbody tr.info>td{background-color:#d9edf7}.table-hover tbody tr.success:hover>td{background-color:#d0e9c6}.table-hover tbody tr.error:hover>td{background-color:#ebcccc}.table-hover tbody tr.warning:hover>td{background-color:#faf2cc}.table-hover tbody tr.info:hover>td{background-color:#c4e3f3}[class^="icon-"],[class*=" icon-"]{display:inline-block;width:14px;height:14px;margin-top:1px;*margin-right:.3em;line-height:14px;vertical-align:text-top;background-image:url("../../images/bootstrap/glyphicons-halflings.png");background-position:14px 14px;background-repeat:no-repeat}.icon-white,.nav-pills>.active>a>[class^="icon-"],.nav-pills>.active>a>[class*=" icon-"],.nav-list>.active>a>[class^="icon-"],.nav-list>.active>a>[class*=" icon-"],.navbar-inverse .nav>.active>a>[class^="icon-"],.navbar-inverse .nav>.active>a>[class*=" icon-"],.dropdown-menu>li>a:hover>[class^="icon-"],.dropdown-menu>li>a:focus>[class^="icon-"],.dropdown-menu>li>a:hover>[class*=" icon-"],.dropdown-menu>li>a:focus>[class*=" icon-"],.dropdown-menu>.active>a>[class^="icon-"],.dropdown-menu>.active>a>[class*=" icon-"],.dropdown-submenu:hover>a>[class^="icon-"],.dropdown-submenu:focus>a>[class^="icon-"],.dropdown-submenu:hover>a>[class*=" icon-"],.dropdown-submenu:focus>a>[class*=" icon-"]{background-image:url("../../images/bootstrap/glyphicons-halflings-white.png")}.icon-glass{background-position:0 0}.icon-music{background-position:-24px 0}.icon-search{background-position:-48px 0}.icon-envelope{background-position:-72px 0}.icon-heart{background-position:-96px 0}.icon-star{background-position:-120px 0}.icon-star-empty{background-position:-144px 0}.icon-user{background-position:-168px 0}.icon-film{background-position:-192px 0}.icon-th-large{background-position:-216px 0}.icon-th{background-position:-240px 0}.icon-th-list{background-position:-264px 0}.icon-ok{background-position:-288px 0}.icon-remove{background-position:-312px 0}.icon-zoom-in{background-position:-336px 0}.icon-zoom-out{background-position:-360px 0}.icon-off{background-position:-384px 0}.icon-signal{background-position:-408px 0}.icon-cog{background-position:-432px 0}.icon-trash{background-position:-456px 0}.icon-home{background-position:0 -24px}.icon-file{background-position:-24px -24px}.icon-time{background-position:-48px -24px}.icon-road{background-position:-72px -24px}.icon-download-alt{background-position:-96px -24px}.icon-download{background-position:-120px -24px}.icon-upload{background-position:-144px -24px}.icon-inbox{background-position:-168px -24px}.icon-play-circle{background-position:-192px -24px}.icon-repeat{background-position:-216px -24px}.icon-refresh{background-position:-240px -24px}.icon-list-alt{background-position:-264px -24px}.icon-lock{background-position:-287px -24px}.icon-flag{background-position:-312px -24px}.icon-headphones{background-position:-336px -24px}.icon-volume-off{background-position:-360px -24px}.icon-volume-down{background-position:-384px -24px}.icon-volume-up{background-position:-408px -24px}.icon-qrcode{background-position:-432px -24px}.icon-barcode{background-position:-456px -24px}.icon-tag{background-position:0 -48px}.icon-tags{background-position:-25px -48px}.icon-book{background-position:-48px -48px}.icon-bookmark{background-position:-72px -48px}.icon-print{background-position:-96px -48px}.icon-camera{background-position:-120px -48px}.icon-font{background-position:-144px -48px}.icon-bold{background-position:-167px -48px}.icon-italic{background-position:-192px -48px}.icon-text-height{background-position:-216px -48px}.icon-text-width{background-position:-240px -48px}.icon-align-left{background-position:-264px -48px}.icon-align-center{background-position:-288px -48px}.icon-align-right{background-position:-312px -48px}.icon-align-justify{background-position:-336px -48px}.icon-list{background-position:-360px -48px}.icon-indent-left{background-position:-384px -48px}.icon-indent-right{background-position:-408px -48px}.icon-facetime-video{background-position:-432px -48px}.icon-picture{background-position:-456px -48px}.icon-pencil{background-position:0 -72px}.icon-map-marker{background-position:-24px -72px}.icon-adjust{background-position:-48px -72px}.icon-tint{background-position:-72px -72px}.icon-edit{background-position:-96px -72px}.icon-share{background-position:-120px -72px}.icon-check{background-position:-144px -72px}.icon-move{background-position:-168px -72px}.icon-step-backward{background-position:-192px -72px}.icon-fast-backward{background-position:-216px -72px}.icon-backward{background-position:-240px -72px}.icon-play{background-position:-264px -72px}.icon-pause{background-position:-288px -72px}.icon-stop{background-position:-312px -72px}.icon-forward{background-position:-336px -72px}.icon-fast-forward{background-position:-360px -72px}.icon-step-forward{background-position:-384px -72px}.icon-eject{background-position:-408px -72px}.icon-chevron-left{background-position:-432px -72px}.icon-chevron-right{background-position:-456px -72px}.icon-plus-sign{background-position:0 -96px}.icon-minus-sign{background-position:-24px -96px}.icon-remove-sign{background-position:-48px -96px}.icon-ok-sign{background-position:-72px -96px}.icon-question-sign{background-position:-96px -96px}.icon-info-sign{background-position:-120px -96px}.icon-screenshot{background-position:-144px -96px}.icon-remove-circle{background-position:-168px -96px}.icon-ok-circle{background-position:-192px -96px}.icon-ban-circle{background-position:-216px -96px}.icon-arrow-left{background-position:-240px -96px}.icon-arrow-right{background-position:-264px -96px}.icon-arrow-up{background-position:-289px -96px}.icon-arrow-down{background-position:-312px -96px}.icon-share-alt{background-position:-336px -96px}.icon-resize-full{background-position:-360px -96px}.icon-resize-small{background-position:-384px -96px}.icon-plus{background-position:-408px -96px}.icon-minus{background-position:-433px -96px}.icon-asterisk{background-position:-456px -96px}.icon-exclamation-sign{background-position:0 -120px}.icon-gift{background-position:-24px -120px}.icon-leaf{background-position:-48px -120px}.icon-fire{background-position:-72px -120px}.icon-eye-open{background-position:-96px -120px}.icon-eye-close{background-position:-120px -120px}.icon-warning-sign{background-position:-144px -120px}.icon-plane{background-position:-168px -120px}.icon-calendar{background-position:-192px -120px}.icon-random{width:16px;background-position:-216px -120px}.icon-comment{background-position:-240px -120px}.icon-magnet{background-position:-264px -120px}.icon-chevron-up{background-position:-288px -120px}.icon-chevron-down{background-position:-313px -119px}.icon-retweet{background-position:-336px -120px}.icon-shopping-cart{background-position:-360px -120px}.icon-folder-close{width:16px;background-position:-384px -120px}.icon-folder-open{width:16px;background-position:-408px -120px}.icon-resize-vertical{background-position:-432px -119px}.icon-resize-horizontal{background-position:-456px -118px}.icon-hdd{background-position:0 -144px}.icon-bullhorn{background-position:-24px -144px}.icon-bell{background-position:-48px -144px}.icon-certificate{background-position:-72px -144px}.icon-thumbs-up{background-position:-96px -144px}.icon-thumbs-down{background-position:-120px -144px}.icon-hand-right{background-position:-144px -144px}.icon-hand-left{background-position:-168px -144px}.icon-hand-up{background-position:-192px -144px}.icon-hand-down{background-position:-216px -144px}.icon-circle-arrow-right{background-position:-240px -144px}.icon-circle-arrow-left{background-position:-264px -144px}.icon-circle-arrow-up{background-position:-288px -144px}.icon-circle-arrow-down{background-position:-312px -144px}.icon-globe{background-position:-336px -144px}.icon-wrench{background-position:-360px -144px}.icon-tasks{background-position:-384px -144px}.icon-filter{background-position:-408px -144px}.icon-briefcase{background-position:-432px -144px}.icon-fullscreen{background-position:-456px -144px}.dropup,.dropdown{position:relative}.dropdown-toggle{*margin-bottom:-3px}.dropdown-toggle:active,.open .dropdown-toggle{outline:0}.caret{display:inline-block;width:0;height:0;vertical-align:top;border-top:4px solid #000;border-right:4px solid transparent;border-left:4px solid transparent;content:""}.dropdown .caret{margin-top:8px;margin-left:2px}.dropdown-menu{position:absolute;top:100%;left:0;z-index:1000;display:none;float:left;min-width:160px;padding:5px 0;margin:2px 0 0;list-style:none;background-color:#fff;border:1px solid #ccc;border:1px solid rgba(0,0,0,0.2);*border-right-width:2px;*border-bottom-width:2px;-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px;-webkit-box-shadow:0 5px 10px rgba(0,0,0,0.2);-moz-box-shadow:0 5px 10px rgba(0,0,0,0.2);box-shadow:0 5px 10px rgba(0,0,0,0.2);-webkit-background-clip:padding-box;-moz-background-clip:padding;background-clip:padding-box}.dropdown-menu.pull-right{right:0;left:auto}.dropdown-menu .divider{*width:100%;height:1px;margin:9px 1px;*margin:-5px 0 5px;overflow:hidden;background-color:#e5e5e5;border-bottom:1px solid #fff}.dropdown-menu>li>a{display:block;padding:3px 20px;clear:both;font-weight:normal;line-height:20px;color:#333;white-space:nowrap}.dropdown-menu>li>a:hover,.dropdown-menu>li>a:focus,.dropdown-submenu:hover>a,.dropdown-submenu:focus>a{color:#fff;text-decoration:none;background-color:#0081c2;background-image:-moz-linear-gradient(top,#08c,#0077b3);background-image:-webkit-gradient(linear,0 0,0 100%,from(#08c),to(#0077b3));background-image:-webkit-linear-gradient(top,#08c,#0077b3);background-image:-o-linear-gradient(top,#08c,#0077b3);background-image:linear-gradient(to bottom,#08c,#0077b3);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff0088cc',endColorstr='#ff0077b3',GradientType=0)}.dropdown-menu>.active>a,.dropdown-menu>.active>a:hover,.dropdown-menu>.active>a:focus{color:#fff;text-decoration:none;background-color:#0081c2;background-image:-moz-linear-gradient(top,#08c,#0077b3);background-image:-webkit-gradient(linear,0 0,0 100%,from(#08c),to(#0077b3));background-image:-webkit-linear-gradient(top,#08c,#0077b3);background-image:-o-linear-gradient(top,#08c,#0077b3);background-image:linear-gradient(to bottom,#08c,#0077b3);background-repeat:repeat-x;outline:0;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff0088cc',endColorstr='#ff0077b3',GradientType=0)}.dropdown-menu>.disabled>a,.dropdown-menu>.disabled>a:hover,.dropdown-menu>.disabled>a:focus{color:#999}.dropdown-menu>.disabled>a:hover,.dropdown-menu>.disabled>a:focus{text-decoration:none;cursor:default;background-color:transparent;background-image:none;filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.open{*z-index:1000}.open>.dropdown-menu{display:block}.dropdown-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:990}.pull-right>.dropdown-menu{right:0;left:auto}.dropup .caret,.navbar-fixed-bottom .dropdown .caret{border-top:0;border-bottom:4px solid #000;content:""}.dropup .dropdown-menu,.navbar-fixed-bottom .dropdown .dropdown-menu{top:auto;bottom:100%;margin-bottom:1px}.dropdown-submenu{position:relative}.dropdown-submenu>.dropdown-menu{top:0;left:100%;margin-top:-6px;margin-left:-1px;-webkit-border-radius:0 6px 6px 6px;-moz-border-radius:0 6px 6px 6px;border-radius:0 6px 6px 6px}.dropdown-submenu:hover>.dropdown-menu{display:block}.dropup .dropdown-submenu>.dropdown-menu{top:auto;bottom:0;margin-top:0;margin-bottom:-2px;-webkit-border-radius:5px 5px 5px 0;-moz-border-radius:5px 5px 5px 0;border-radius:5px 5px 5px 0}.dropdown-submenu>a:after{display:block;float:right;width:0;height:0;margin-top:5px;margin-right:-10px;border-color:transparent;border-left-color:#ccc;border-style:solid;border-width:5px 0 5px 5px;content:" "}.dropdown-submenu:hover>a:after{border-left-color:#fff}.dropdown-submenu.pull-left{float:none}.dropdown-submenu.pull-left>.dropdown-menu{left:-100%;margin-left:10px;-webkit-border-radius:6px 0 6px 6px;-moz-border-radius:6px 0 6px 6px;border-radius:6px 0 6px 6px}.dropdown .dropdown-menu .nav-header{padding-right:20px;padding-left:20px}.typeahead{z-index:1051;margin-top:2px;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px}.well{min-height:20px;padding:19px;margin-bottom:20px;background-color:#f5f5f5;border:1px solid #e3e3e3;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.05);-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,0.05);box-shadow:inset 0 1px 1px rgba(0,0,0,0.05)}.well blockquote{border-color:#ddd;border-color:rgba(0,0,0,0.15)}.well-large{padding:24px;-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px}.well-small{padding:9px;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px}.fade{opacity:0;-webkit-transition:opacity .15s linear;-moz-transition:opacity .15s linear;-o-transition:opacity .15s linear;transition:opacity .15s linear}.fade.in{opacity:1}.collapse{position:relative;height:0;overflow:hidden;-webkit-transition:height .35s ease;-moz-transition:height .35s ease;-o-transition:height .35s ease;transition:height .35s ease}.collapse.in{height:auto}.close{float:right;font-size:20px;font-weight:bold;line-height:20px;color:#000;text-shadow:0 1px 0 #fff;opacity:.2;filter:alpha(opacity=20)}.close:hover,.close:focus{color:#000;text-decoration:none;cursor:pointer;opacity:.4;filter:alpha(opacity=40)}button.close{padding:0;cursor:pointer;background:transparent;border:0;-webkit-appearance:none}.btn{display:inline-block;*display:inline;padding:4px 12px;margin-bottom:0;*margin-left:.3em;font-size:14px;line-height:20px;color:#333;text-align:center;text-shadow:0 1px 1px rgba(255,255,255,0.75);vertical-align:middle;cursor:pointer;background-color:#f5f5f5;*background-color:#e6e6e6;background-image:-moz-linear-gradient(top,#fff,#e6e6e6);background-image:-webkit-gradient(linear,0 0,0 100%,from(#fff),to(#e6e6e6));background-image:-webkit-linear-gradient(top,#fff,#e6e6e6);background-image:-o-linear-gradient(top,#fff,#e6e6e6);background-image:linear-gradient(to bottom,#fff,#e6e6e6);background-repeat:repeat-x;border:1px solid #ccc;*border:0;border-color:#e6e6e6 #e6e6e6 #bfbfbf;border-color:rgba(0,0,0,0.1) rgba(0,0,0,0.1) rgba(0,0,0,0.25);border-bottom-color:#b3b3b3;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffffff',endColorstr='#ffe6e6e6',GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false);*zoom:1;-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,0.2),0 1px 2px rgba(0,0,0,0.05);-moz-box-shadow:inset 0 1px 0 rgba(255,255,255,0.2),0 1px 2px rgba(0,0,0,0.05);box-shadow:inset 0 1px 0 rgba(255,255,255,0.2),0 1px 2px rgba(0,0,0,0.05)}.btn:hover,.btn:focus,.btn:active,.btn.active,.btn.disabled,.btn[disabled]{color:#333;background-color:#e6e6e6;*background-color:#d9d9d9}.btn:active,.btn.active{background-color:#ccc \9}.btn:first-child{*margin-left:0}.btn:hover,.btn:focus{color:#333;text-decoration:none;background-position:0 -15px;-webkit-transition:background-position .1s linear;-moz-transition:background-position .1s linear;-o-transition:background-position .1s linear;transition:background-position .1s linear}.btn:focus{outline:thin dotted #333;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}.btn.active,.btn:active{background-image:none;outline:0;-webkit-box-shadow:inset 0 2px 4px rgba(0,0,0,0.15),0 1px 2px rgba(0,0,0,0.05);-moz-box-shadow:inset 0 2px 4px rgba(0,0,0,0.15),0 1px 2px rgba(0,0,0,0.05);box-shadow:inset 0 2px 4px rgba(0,0,0,0.15),0 1px 2px rgba(0,0,0,0.05)}.btn.disabled,.btn[disabled]{cursor:default;background-image:none;opacity:.65;filter:alpha(opacity=65);-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none}.btn-large{padding:11px 19px;font-size:17.5px;-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px}.btn-large [class^="icon-"],.btn-large [class*=" icon-"]{margin-top:4px}.btn-small{padding:2px 10px;font-size:11.9px;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px}.btn-small [class^="icon-"],.btn-small [class*=" icon-"]{margin-top:0}.btn-mini [class^="icon-"],.btn-mini [class*=" icon-"]{margin-top:-1px}.btn-mini{padding:0 6px;font-size:10.5px;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px}.btn-block{display:block;width:100%;padding-right:0;padding-left:0;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.btn-block+.btn-block{margin-top:5px}input[type="submit"].btn-block,input[type="reset"].btn-block,input[type="button"].btn-block{width:100%}.btn-primary.active,.btn-warning.active,.btn-danger.active,.btn-success.active,.btn-info.active,.btn-inverse.active{color:rgba(255,255,255,0.75)}.btn-primary{color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,0.25);background-color:#006dcc;*background-color:#04c;background-image:-moz-linear-gradient(top,#08c,#04c);background-image:-webkit-gradient(linear,0 0,0 100%,from(#08c),to(#04c));background-image:-webkit-linear-gradient(top,#08c,#04c);background-image:-o-linear-gradient(top,#08c,#04c);background-image:linear-gradient(to bottom,#08c,#04c);background-repeat:repeat-x;border-color:#04c #04c #002a80;border-color:rgba(0,0,0,0.1) rgba(0,0,0,0.1) rgba(0,0,0,0.25);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff0088cc',endColorstr='#ff0044cc',GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.btn-primary:hover,.btn-primary:focus,.btn-primary:active,.btn-primary.active,.btn-primary.disabled,.btn-primary[disabled]{color:#fff;background-color:#04c;*background-color:#003bb3}.btn-primary:active,.btn-primary.active{background-color:#039 \9}.btn-warning{color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,0.25);background-color:#faa732;*background-color:#f89406;background-image:-moz-linear-gradient(top,#fbb450,#f89406);background-image:-webkit-gradient(linear,0 0,0 100%,from(#fbb450),to(#f89406));background-image:-webkit-linear-gradient(top,#fbb450,#f89406);background-image:-o-linear-gradient(top,#fbb450,#f89406);background-image:linear-gradient(to bottom,#fbb450,#f89406);background-repeat:repeat-x;border-color:#f89406 #f89406 #ad6704;border-color:rgba(0,0,0,0.1) rgba(0,0,0,0.1) rgba(0,0,0,0.25);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fffbb450',endColorstr='#fff89406',GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.btn-warning:hover,.btn-warning:focus,.btn-warning:active,.btn-warning.active,.btn-warning.disabled,.btn-warning[disabled]{color:#fff;background-color:#f89406;*background-color:#df8505}.btn-warning:active,.btn-warning.active{background-color:#c67605 \9}.btn-danger{color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,0.25);background-color:#da4f49;*background-color:#bd362f;background-image:-moz-linear-gradient(top,#ee5f5b,#bd362f);background-image:-webkit-gradient(linear,0 0,0 100%,from(#ee5f5b),to(#bd362f));background-image:-webkit-linear-gradient(top,#ee5f5b,#bd362f);background-image:-o-linear-gradient(top,#ee5f5b,#bd362f);background-image:linear-gradient(to bottom,#ee5f5b,#bd362f);background-repeat:repeat-x;border-color:#bd362f #bd362f #802420;border-color:rgba(0,0,0,0.1) rgba(0,0,0,0.1) rgba(0,0,0,0.25);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffee5f5b',endColorstr='#ffbd362f',GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.btn-danger:hover,.btn-danger:focus,.btn-danger:active,.btn-danger.active,.btn-danger.disabled,.btn-danger[disabled]{color:#fff;background-color:#bd362f;*background-color:#a9302a}.btn-danger:active,.btn-danger.active{background-color:#942a25 \9}.btn-success{color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,0.25);background-color:#5bb75b;*background-color:#51a351;background-image:-moz-linear-gradient(top,#62c462,#51a351);background-image:-webkit-gradient(linear,0 0,0 100%,from(#62c462),to(#51a351));background-image:-webkit-linear-gradient(top,#62c462,#51a351);background-image:-o-linear-gradient(top,#62c462,#51a351);background-image:linear-gradient(to bottom,#62c462,#51a351);background-repeat:repeat-x;border-color:#51a351 #51a351 #387038;border-color:rgba(0,0,0,0.1) rgba(0,0,0,0.1) rgba(0,0,0,0.25);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff62c462',endColorstr='#ff51a351',GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.btn-success:hover,.btn-success:focus,.btn-success:active,.btn-success.active,.btn-success.disabled,.btn-success[disabled]{color:#fff;background-color:#51a351;*background-color:#499249}.btn-success:active,.btn-success.active{background-color:#408140 \9}.btn-info{color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,0.25);background-color:#49afcd;*background-color:#2f96b4;background-image:-moz-linear-gradient(top,#5bc0de,#2f96b4);background-image:-webkit-gradient(linear,0 0,0 100%,from(#5bc0de),to(#2f96b4));background-image:-webkit-linear-gradient(top,#5bc0de,#2f96b4);background-image:-o-linear-gradient(top,#5bc0de,#2f96b4);background-image:linear-gradient(to bottom,#5bc0de,#2f96b4);background-repeat:repeat-x;border-color:#2f96b4 #2f96b4 #1f6377;border-color:rgba(0,0,0,0.1) rgba(0,0,0,0.1) rgba(0,0,0,0.25);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5bc0de',endColorstr='#ff2f96b4',GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.btn-info:hover,.btn-info:focus,.btn-info:active,.btn-info.active,.btn-info.disabled,.btn-info[disabled]{color:#fff;background-color:#2f96b4;*background-color:#2a85a0}.btn-info:active,.btn-info.active{background-color:#24748c \9}.btn-inverse{color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,0.25);background-color:#363636;*background-color:#222;background-image:-moz-linear-gradient(top,#444,#222);background-image:-webkit-gradient(linear,0 0,0 100%,from(#444),to(#222));background-image:-webkit-linear-gradient(top,#444,#222);background-image:-o-linear-gradient(top,#444,#222);background-image:linear-gradient(to bottom,#444,#222);background-repeat:repeat-x;border-color:#222 #222 #000;border-color:rgba(0,0,0,0.1) rgba(0,0,0,0.1) rgba(0,0,0,0.25);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff444444',endColorstr='#ff222222',GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.btn-inverse:hover,.btn-inverse:focus,.btn-inverse:active,.btn-inverse.active,.btn-inverse.disabled,.btn-inverse[disabled]{color:#fff;background-color:#222;*background-color:#151515}.btn-inverse:active,.btn-inverse.active{background-color:#080808 \9}button.btn,input[type="submit"].btn{*padding-top:3px;*padding-bottom:3px}button.btn::-moz-focus-inner,input[type="submit"].btn::-moz-focus-inner{padding:0;border:0}button.btn.btn-large,input[type="submit"].btn.btn-large{*padding-top:7px;*padding-bottom:7px}button.btn.btn-small,input[type="submit"].btn.btn-small{*padding-top:3px;*padding-bottom:3px}button.btn.btn-mini,input[type="submit"].btn.btn-mini{*padding-top:1px;*padding-bottom:1px}.btn-link,.btn-link:active,.btn-link[disabled]{background-color:transparent;background-image:none;-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none}.btn-link{color:#08c;cursor:pointer;border-color:transparent;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0}.btn-link:hover,.btn-link:focus{color:#005580;text-decoration:underline;background-color:transparent}.btn-link[disabled]:hover,.btn-link[disabled]:focus{color:#333;text-decoration:none}.btn-group{position:relative;display:inline-block;*display:inline;*margin-left:.3em;font-size:0;white-space:nowrap;vertical-align:middle;*zoom:1}.btn-group:first-child{*margin-left:0}.btn-group+.btn-group{margin-left:5px}.btn-toolbar{margin-top:10px;margin-bottom:10px;font-size:0}.btn-toolbar>.btn+.btn,.btn-toolbar>.btn-group+.btn,.btn-toolbar>.btn+.btn-group{margin-left:5px}.btn-group>.btn{position:relative;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0}.btn-group>.btn+.btn{margin-left:-1px}.btn-group>.btn,.btn-group>.dropdown-menu,.btn-group>.popover{font-size:14px}.btn-group>.btn-mini{font-size:10.5px}.btn-group>.btn-small{font-size:11.9px}.btn-group>.btn-large{font-size:17.5px}.btn-group>.btn:first-child{margin-left:0;-webkit-border-bottom-left-radius:4px;border-bottom-left-radius:4px;-webkit-border-top-left-radius:4px;border-top-left-radius:4px;-moz-border-radius-bottomleft:4px;-moz-border-radius-topleft:4px}.btn-group>.btn:last-child,.btn-group>.dropdown-toggle{-webkit-border-top-right-radius:4px;border-top-right-radius:4px;-webkit-border-bottom-right-radius:4px;border-bottom-right-radius:4px;-moz-border-radius-topright:4px;-moz-border-radius-bottomright:4px}.btn-group>.btn.large:first-child{margin-left:0;-webkit-border-bottom-left-radius:6px;border-bottom-left-radius:6px;-webkit-border-top-left-radius:6px;border-top-left-radius:6px;-moz-border-radius-bottomleft:6px;-moz-border-radius-topleft:6px}.btn-group>.btn.large:last-child,.btn-group>.large.dropdown-toggle{-webkit-border-top-right-radius:6px;border-top-right-radius:6px;-webkit-border-bottom-right-radius:6px;border-bottom-right-radius:6px;-moz-border-radius-topright:6px;-moz-border-radius-bottomright:6px}.btn-group>.btn:hover,.btn-group>.btn:focus,.btn-group>.btn:active,.btn-group>.btn.active{z-index:2}.btn-group .dropdown-toggle:active,.btn-group.open .dropdown-toggle{outline:0}.btn-group>.btn+.dropdown-toggle{*padding-top:5px;padding-right:8px;*padding-bottom:5px;padding-left:8px;-webkit-box-shadow:inset 1px 0 0 rgba(255,255,255,0.125),inset 0 1px 0 rgba(255,255,255,0.2),0 1px 2px rgba(0,0,0,0.05);-moz-box-shadow:inset 1px 0 0 rgba(255,255,255,0.125),inset 0 1px 0 rgba(255,255,255,0.2),0 1px 2px rgba(0,0,0,0.05);box-shadow:inset 1px 0 0 rgba(255,255,255,0.125),inset 0 1px 0 rgba(255,255,255,0.2),0 1px 2px rgba(0,0,0,0.05)}.btn-group>.btn-mini+.dropdown-toggle{*padding-top:2px;padding-right:5px;*padding-bottom:2px;padding-left:5px}.btn-group>.btn-small+.dropdown-toggle{*padding-top:5px;*padding-bottom:4px}.btn-group>.btn-large+.dropdown-toggle{*padding-top:7px;padding-right:12px;*padding-bottom:7px;padding-left:12px}.btn-group.open .dropdown-toggle{background-image:none;-webkit-box-shadow:inset 0 2px 4px rgba(0,0,0,0.15),0 1px 2px rgba(0,0,0,0.05);-moz-box-shadow:inset 0 2px 4px rgba(0,0,0,0.15),0 1px 2px rgba(0,0,0,0.05);box-shadow:inset 0 2px 4px rgba(0,0,0,0.15),0 1px 2px rgba(0,0,0,0.05)}.btn-group.open .btn.dropdown-toggle{background-color:#e6e6e6}.btn-group.open .btn-primary.dropdown-toggle{background-color:#04c}.btn-group.open .btn-warning.dropdown-toggle{background-color:#f89406}.btn-group.open .btn-danger.dropdown-toggle{background-color:#bd362f}.btn-group.open .btn-success.dropdown-toggle{background-color:#51a351}.btn-group.open .btn-info.dropdown-toggle{background-color:#2f96b4}.btn-group.open .btn-inverse.dropdown-toggle{background-color:#222}.btn .caret{margin-top:8px;margin-left:0}.btn-large .caret{margin-top:6px}.btn-large .caret{border-top-width:5px;border-right-width:5px;border-left-width:5px}.btn-mini .caret,.btn-small .caret{margin-top:8px}.dropup .btn-large .caret{border-bottom-width:5px}.btn-primary .caret,.btn-warning .caret,.btn-danger .caret,.btn-info .caret,.btn-success .caret,.btn-inverse .caret{border-top-color:#fff;border-bottom-color:#fff}.btn-group-vertical{display:inline-block;*display:inline;*zoom:1}.btn-group-vertical>.btn{display:block;float:none;max-width:100%;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0}.btn-group-vertical>.btn+.btn{margin-top:-1px;margin-left:0}.btn-group-vertical>.btn:first-child{-webkit-border-radius:4px 4px 0 0;-moz-border-radius:4px 4px 0 0;border-radius:4px 4px 0 0}.btn-group-vertical>.btn:last-child{-webkit-border-radius:0 0 4px 4px;-moz-border-radius:0 0 4px 4px;border-radius:0 0 4px 4px}.btn-group-vertical>.btn-large:first-child{-webkit-border-radius:6px 6px 0 0;-moz-border-radius:6px 6px 0 0;border-radius:6px 6px 0 0}.btn-group-vertical>.btn-large:last-child{-webkit-border-radius:0 0 6px 6px;-moz-border-radius:0 0 6px 6px;border-radius:0 0 6px 6px}.alert{padding:8px 35px 8px 14px;margin-bottom:20px;text-shadow:0 1px 0 rgba(255,255,255,0.5);background-color:#fcf8e3;border:1px solid #fbeed5;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px}.alert,.alert h4{color:#c09853}.alert h4{margin:0}.alert .close{position:relative;top:-2px;right:-21px;line-height:20px}.alert-success{color:#468847;background-color:#dff0d8;border-color:#d6e9c6}.alert-success h4{color:#468847}.alert-danger,.alert-error{color:#b94a48;background-color:#f2dede;border-color:#eed3d7}.alert-danger h4,.alert-error h4{color:#b94a48}.alert-info{color:#3a87ad;background-color:#d9edf7;border-color:#bce8f1}.alert-info h4{color:#3a87ad}.alert-block{padding-top:14px;padding-bottom:14px}.alert-block>p,.alert-block>ul{margin-bottom:0}.alert-block p+p{margin-top:5px}.nav{margin-bottom:20px;margin-left:0;list-style:none}.nav>li>a{display:block}.nav>li>a:hover,.nav>li>a:focus{text-decoration:none;background-color:#eee}.nav>li>a>img{max-width:none}.nav>.pull-right{float:right}.nav-header{display:block;padding:3px 15px;font-size:11px;font-weight:bold;line-height:20px;color:#999;text-shadow:0 1px 0 rgba(255,255,255,0.5);text-transform:uppercase}.nav li+.nav-header{margin-top:9px}.nav-list{padding-right:15px;padding-left:15px;margin-bottom:0}.nav-list>li>a,.nav-list .nav-header{margin-right:-15px;margin-left:-15px;text-shadow:0 1px 0 rgba(255,255,255,0.5)}.nav-list>li>a{padding:3px 15px}.nav-list>.active>a,.nav-list>.active>a:hover,.nav-list>.active>a:focus{color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,0.2);background-color:#08c}.nav-list [class^="icon-"],.nav-list [class*=" icon-"]{margin-right:2px}.nav-list .divider{*width:100%;height:1px;margin:9px 1px;*margin:-5px 0 5px;overflow:hidden;background-color:#e5e5e5;border-bottom:1px solid #fff}.nav-tabs,.nav-pills{*zoom:1}.nav-tabs:before,.nav-pills:before,.nav-tabs:after,.nav-pills:after{display:table;line-height:0;content:""}.nav-tabs:after,.nav-pills:after{clear:both}.nav-tabs>li,.nav-pills>li{float:left}.nav-tabs>li>a,.nav-pills>li>a{padding-right:12px;padding-left:12px;margin-right:2px;line-height:14px}.nav-tabs{border-bottom:1px solid #ddd}.nav-tabs>li{margin-bottom:-1px}.nav-tabs>li>a{padding-top:8px;padding-bottom:8px;line-height:20px;border:1px solid transparent;-webkit-border-radius:4px 4px 0 0;-moz-border-radius:4px 4px 0 0;border-radius:4px 4px 0 0}.nav-tabs>li>a:hover,.nav-tabs>li>a:focus{border-color:#eee #eee #ddd}.nav-tabs>.active>a,.nav-tabs>.active>a:hover,.nav-tabs>.active>a:focus{color:#555;cursor:default;background-color:#fff;border:1px solid #ddd;border-bottom-color:transparent}.nav-pills>li>a{padding-top:8px;padding-bottom:8px;margin-top:2px;margin-bottom:2px;-webkit-border-radius:5px;-moz-border-radius:5px;border-radius:5px}.nav-pills>.active>a,.nav-pills>.active>a:hover,.nav-pills>.active>a:focus{color:#fff;background-color:#08c}.nav-stacked>li{float:none}.nav-stacked>li>a{margin-right:0}.nav-tabs.nav-stacked{border-bottom:0}.nav-tabs.nav-stacked>li>a{border:1px solid #ddd;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0}.nav-tabs.nav-stacked>li:first-child>a{-webkit-border-top-right-radius:4px;border-top-right-radius:4px;-webkit-border-top-left-radius:4px;border-top-left-radius:4px;-moz-border-radius-topright:4px;-moz-border-radius-topleft:4px}.nav-tabs.nav-stacked>li:last-child>a{-webkit-border-bottom-right-radius:4px;border-bottom-right-radius:4px;-webkit-border-bottom-left-radius:4px;border-bottom-left-radius:4px;-moz-border-radius-bottomright:4px;-moz-border-radius-bottomleft:4px}.nav-tabs.nav-stacked>li>a:hover,.nav-tabs.nav-stacked>li>a:focus{z-index:2;border-color:#ddd}.nav-pills.nav-stacked>li>a{margin-bottom:3px}.nav-pills.nav-stacked>li:last-child>a{margin-bottom:1px}.nav-tabs .dropdown-menu{-webkit-border-radius:0 0 6px 6px;-moz-border-radius:0 0 6px 6px;border-radius:0 0 6px 6px}.nav-pills .dropdown-menu{-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px}.nav .dropdown-toggle .caret{margin-top:6px;border-top-color:#08c;border-bottom-color:#08c}.nav .dropdown-toggle:hover .caret,.nav .dropdown-toggle:focus .caret{border-top-color:#005580;border-bottom-color:#005580}.nav-tabs .dropdown-toggle .caret{margin-top:8px}.nav .active .dropdown-toggle .caret{border-top-color:#fff;border-bottom-color:#fff}.nav-tabs .active .dropdown-toggle .caret{border-top-color:#555;border-bottom-color:#555}.nav>.dropdown.active>a:hover,.nav>.dropdown.active>a:focus{cursor:pointer}.nav-tabs .open .dropdown-toggle,.nav-pills .open .dropdown-toggle,.nav>li.dropdown.open.active>a:hover,.nav>li.dropdown.open.active>a:focus{color:#fff;background-color:#999;border-color:#999}.nav li.dropdown.open .caret,.nav li.dropdown.open.active .caret,.nav li.dropdown.open a:hover .caret,.nav li.dropdown.open a:focus .caret{border-top-color:#fff;border-bottom-color:#fff;opacity:1;filter:alpha(opacity=100)}.tabs-stacked .open>a:hover,.tabs-stacked .open>a:focus{border-color:#999}.tabbable{*zoom:1}.tabbable:before,.tabbable:after{display:table;line-height:0;content:""}.tabbable:after{clear:both}.tab-content{overflow:auto}.tabs-below>.nav-tabs,.tabs-right>.nav-tabs,.tabs-left>.nav-tabs{border-bottom:0}.tab-content>.tab-pane,.pill-content>.pill-pane{display:none}.tab-content>.active,.pill-content>.active{display:block}.tabs-below>.nav-tabs{border-top:1px solid #ddd}.tabs-below>.nav-tabs>li{margin-top:-1px;margin-bottom:0}.tabs-below>.nav-tabs>li>a{-webkit-border-radius:0 0 4px 4px;-moz-border-radius:0 0 4px 4px;border-radius:0 0 4px 4px}.tabs-below>.nav-tabs>li>a:hover,.tabs-below>.nav-tabs>li>a:focus{border-top-color:#ddd;border-bottom-color:transparent}.tabs-below>.nav-tabs>.active>a,.tabs-below>.nav-tabs>.active>a:hover,.tabs-below>.nav-tabs>.active>a:focus{border-color:transparent #ddd #ddd #ddd}.tabs-left>.nav-tabs>li,.tabs-right>.nav-tabs>li{float:none}.tabs-left>.nav-tabs>li>a,.tabs-right>.nav-tabs>li>a{min-width:74px;margin-right:0;margin-bottom:3px}.tabs-left>.nav-tabs{float:left;margin-right:19px;border-right:1px solid #ddd}.tabs-left>.nav-tabs>li>a{margin-right:-1px;-webkit-border-radius:4px 0 0 4px;-moz-border-radius:4px 0 0 4px;border-radius:4px 0 0 4px}.tabs-left>.nav-tabs>li>a:hover,.tabs-left>.nav-tabs>li>a:focus{border-color:#eee #ddd #eee #eee}.tabs-left>.nav-tabs .active>a,.tabs-left>.nav-tabs .active>a:hover,.tabs-left>.nav-tabs .active>a:focus{border-color:#ddd transparent #ddd #ddd;*border-right-color:#fff}.tabs-right>.nav-tabs{float:right;margin-left:19px;border-left:1px solid #ddd}.tabs-right>.nav-tabs>li>a{margin-left:-1px;-webkit-border-radius:0 4px 4px 0;-moz-border-radius:0 4px 4px 0;border-radius:0 4px 4px 0}.tabs-right>.nav-tabs>li>a:hover,.tabs-right>.nav-tabs>li>a:focus{border-color:#eee #eee #eee #ddd}.tabs-right>.nav-tabs .active>a,.tabs-right>.nav-tabs .active>a:hover,.tabs-right>.nav-tabs .active>a:focus{border-color:#ddd #ddd #ddd transparent;*border-left-color:#fff}.nav>.disabled>a{color:#999}.nav>.disabled>a:hover,.nav>.disabled>a:focus{text-decoration:none;cursor:default;background-color:transparent}.navbar{*position:relative;*z-index:2;margin-bottom:20px;overflow:visible}.navbar-inner{min-height:40px;padding-right:20px;padding-left:20px;background-color:#fafafa;background-image:-moz-linear-gradient(top,#fff,#f2f2f2);background-image:-webkit-gradient(linear,0 0,0 100%,from(#fff),to(#f2f2f2));background-image:-webkit-linear-gradient(top,#fff,#f2f2f2);background-image:-o-linear-gradient(top,#fff,#f2f2f2);background-image:linear-gradient(to bottom,#fff,#f2f2f2);background-repeat:repeat-x;border:1px solid #d4d4d4;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffffff',endColorstr='#fff2f2f2',GradientType=0);*zoom:1;-webkit-box-shadow:0 1px 4px rgba(0,0,0,0.065);-moz-box-shadow:0 1px 4px rgba(0,0,0,0.065);box-shadow:0 1px 4px rgba(0,0,0,0.065)}.navbar-inner:before,.navbar-inner:after{display:table;line-height:0;content:""}.navbar-inner:after{clear:both}.navbar .container{width:auto}.nav-collapse.collapse{height:auto;overflow:visible}.navbar .brand{display:block;float:left;padding:10px 20px 10px;margin-left:-20px;font-size:20px;font-weight:200;color:#777;text-shadow:0 1px 0 #fff}.navbar .brand:hover,.navbar .brand:focus{text-decoration:none}.navbar-text{margin-bottom:0;line-height:40px;color:#777}.navbar-link{color:#777}.navbar-link:hover,.navbar-link:focus{color:#333}.navbar .divider-vertical{height:40px;margin:0 9px;border-right:1px solid #fff;border-left:1px solid #f2f2f2}.navbar .btn,.navbar .btn-group{margin-top:5px}.navbar .btn-group .btn,.navbar .input-prepend .btn,.navbar .input-append .btn,.navbar .input-prepend .btn-group,.navbar .input-append .btn-group{margin-top:0}.navbar-form{margin-bottom:0;*zoom:1}.navbar-form:before,.navbar-form:after{display:table;line-height:0;content:""}.navbar-form:after{clear:both}.navbar-form input,.navbar-form select,.navbar-form .radio,.navbar-form .checkbox{margin-top:5px}.navbar-form input,.navbar-form select,.navbar-form .btn{display:inline-block;margin-bottom:0}.navbar-form input[type="image"],.navbar-form input[type="checkbox"],.navbar-form input[type="radio"]{margin-top:3px}.navbar-form .input-append,.navbar-form .input-prepend{margin-top:5px;white-space:nowrap}.navbar-form .input-append input,.navbar-form .input-prepend input{margin-top:0}.navbar-search{position:relative;float:left;margin-top:5px;margin-bottom:0}.navbar-search .search-query{padding:4px 14px;margin-bottom:0;font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:13px;font-weight:normal;line-height:1;-webkit-border-radius:15px;-moz-border-radius:15px;border-radius:15px}.navbar-static-top{position:static;margin-bottom:0}.navbar-static-top .navbar-inner{-webkit-border-radius:0;-moz-border-radius:0;border-radius:0}.navbar-fixed-top,.navbar-fixed-bottom{position:fixed;right:0;left:0;z-index:1030;margin-bottom:0}.navbar-fixed-top .navbar-inner,.navbar-static-top .navbar-inner{border-width:0 0 1px}.navbar-fixed-bottom .navbar-inner{border-width:1px 0 0}.navbar-fixed-top .navbar-inner,.navbar-fixed-bottom .navbar-inner{padding-right:0;padding-left:0;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0}.navbar-static-top .container,.navbar-fixed-top .container,.navbar-fixed-bottom .container{width:940px}.navbar-fixed-top{top:0}.navbar-fixed-top .navbar-inner,.navbar-static-top .navbar-inner{-webkit-box-shadow:0 1px 10px rgba(0,0,0,0.1);-moz-box-shadow:0 1px 10px rgba(0,0,0,0.1);box-shadow:0 1px 10px rgba(0,0,0,0.1)}.navbar-fixed-bottom{bottom:0}.navbar-fixed-bottom .navbar-inner{-webkit-box-shadow:0 -1px 10px rgba(0,0,0,0.1);-moz-box-shadow:0 -1px 10px rgba(0,0,0,0.1);box-shadow:0 -1px 10px rgba(0,0,0,0.1)}.navbar .nav{position:relative;left:0;display:block;float:left;margin:0 10px 0 0}.navbar .nav.pull-right{float:right;margin-right:0}.navbar .nav>li{float:left}.navbar .nav>li>a{float:none;padding:10px 15px 10px;color:#777;text-decoration:none;text-shadow:0 1px 0 #fff}.navbar .nav .dropdown-toggle .caret{margin-top:8px}.navbar .nav>li>a:focus,.navbar .nav>li>a:hover{color:#333;text-decoration:none;background-color:transparent}.navbar .nav>.active>a,.navbar .nav>.active>a:hover,.navbar .nav>.active>a:focus{color:#555;text-decoration:none;background-color:#e5e5e5;-webkit-box-shadow:inset 0 3px 8px rgba(0,0,0,0.125);-moz-box-shadow:inset 0 3px 8px rgba(0,0,0,0.125);box-shadow:inset 0 3px 8px rgba(0,0,0,0.125)}.navbar .btn-navbar{display:none;float:right;padding:7px 10px;margin-right:5px;margin-left:5px;color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,0.25);background-color:#ededed;*background-color:#e5e5e5;background-image:-moz-linear-gradient(top,#f2f2f2,#e5e5e5);background-image:-webkit-gradient(linear,0 0,0 100%,from(#f2f2f2),to(#e5e5e5));background-image:-webkit-linear-gradient(top,#f2f2f2,#e5e5e5);background-image:-o-linear-gradient(top,#f2f2f2,#e5e5e5);background-image:linear-gradient(to bottom,#f2f2f2,#e5e5e5);background-repeat:repeat-x;border-color:#e5e5e5 #e5e5e5 #bfbfbf;border-color:rgba(0,0,0,0.1) rgba(0,0,0,0.1) rgba(0,0,0,0.25);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff2f2f2',endColorstr='#ffe5e5e5',GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false);-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,0.1),0 1px 0 rgba(255,255,255,0.075);-moz-box-shadow:inset 0 1px 0 rgba(255,255,255,0.1),0 1px 0 rgba(255,255,255,0.075);box-shadow:inset 0 1px 0 rgba(255,255,255,0.1),0 1px 0 rgba(255,255,255,0.075)}.navbar .btn-navbar:hover,.navbar .btn-navbar:focus,.navbar .btn-navbar:active,.navbar .btn-navbar.active,.navbar .btn-navbar.disabled,.navbar .btn-navbar[disabled]{color:#fff;background-color:#e5e5e5;*background-color:#d9d9d9}.navbar .btn-navbar:active,.navbar .btn-navbar.active{background-color:#ccc \9}.navbar .btn-navbar .icon-bar{display:block;width:18px;height:2px;background-color:#f5f5f5;-webkit-border-radius:1px;-moz-border-radius:1px;border-radius:1px;-webkit-box-shadow:0 1px 0 rgba(0,0,0,0.25);-moz-box-shadow:0 1px 0 rgba(0,0,0,0.25);box-shadow:0 1px 0 rgba(0,0,0,0.25)}.btn-navbar .icon-bar+.icon-bar{margin-top:3px}.navbar .nav>li>.dropdown-menu:before{position:absolute;top:-7px;left:9px;display:inline-block;border-right:7px solid transparent;border-bottom:7px solid #ccc;border-left:7px solid transparent;border-bottom-color:rgba(0,0,0,0.2);content:''}.navbar .nav>li>.dropdown-menu:after{position:absolute;top:-6px;left:10px;display:inline-block;border-right:6px solid transparent;border-bottom:6px solid #fff;border-left:6px solid transparent;content:''}.navbar-fixed-bottom .nav>li>.dropdown-menu:before{top:auto;bottom:-7px;border-top:7px solid #ccc;border-bottom:0;border-top-color:rgba(0,0,0,0.2)}.navbar-fixed-bottom .nav>li>.dropdown-menu:after{top:auto;bottom:-6px;border-top:6px solid #fff;border-bottom:0}.navbar .nav li.dropdown>a:hover .caret,.navbar .nav li.dropdown>a:focus .caret{border-top-color:#333;border-bottom-color:#333}.navbar .nav li.dropdown.open>.dropdown-toggle,.navbar .nav li.dropdown.active>.dropdown-toggle,.navbar .nav li.dropdown.open.active>.dropdown-toggle{color:#555;background-color:#e5e5e5}.navbar .nav li.dropdown>.dropdown-toggle .caret{border-top-color:#777;border-bottom-color:#777}.navbar .nav li.dropdown.open>.dropdown-toggle .caret,.navbar .nav li.dropdown.active>.dropdown-toggle .caret,.navbar .nav li.dropdown.open.active>.dropdown-toggle .caret{border-top-color:#555;border-bottom-color:#555}.navbar .pull-right>li>.dropdown-menu,.navbar .nav>li>.dropdown-menu.pull-right{right:0;left:auto}.navbar .pull-right>li>.dropdown-menu:before,.navbar .nav>li>.dropdown-menu.pull-right:before{right:12px;left:auto}.navbar .pull-right>li>.dropdown-menu:after,.navbar .nav>li>.dropdown-menu.pull-right:after{right:13px;left:auto}.navbar .pull-right>li>.dropdown-menu .dropdown-menu,.navbar .nav>li>.dropdown-menu.pull-right .dropdown-menu{right:100%;left:auto;margin-right:-1px;margin-left:0;-webkit-border-radius:6px 0 6px 6px;-moz-border-radius:6px 0 6px 6px;border-radius:6px 0 6px 6px}.navbar-inverse .navbar-inner{background-color:#1b1b1b;background-image:-moz-linear-gradient(top,#222,#111);background-image:-webkit-gradient(linear,0 0,0 100%,from(#222),to(#111));background-image:-webkit-linear-gradient(top,#222,#111);background-image:-o-linear-gradient(top,#222,#111);background-image:linear-gradient(to bottom,#222,#111);background-repeat:repeat-x;border-color:#252525;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff222222',endColorstr='#ff111111',GradientType=0)}.navbar-inverse .brand,.navbar-inverse .nav>li>a{color:#999;text-shadow:0 -1px 0 rgba(0,0,0,0.25)}.navbar-inverse .brand:hover,.navbar-inverse .nav>li>a:hover,.navbar-inverse .brand:focus,.navbar-inverse .nav>li>a:focus{color:#fff}.navbar-inverse .brand{color:#999}.navbar-inverse .navbar-text{color:#999}.navbar-inverse .nav>li>a:focus,.navbar-inverse .nav>li>a:hover{color:#fff;background-color:transparent}.navbar-inverse .nav .active>a,.navbar-inverse .nav .active>a:hover,.navbar-inverse .nav .active>a:focus{color:#fff;background-color:#111}.navbar-inverse .navbar-link{color:#999}.navbar-inverse .navbar-link:hover,.navbar-inverse .navbar-link:focus{color:#fff}.navbar-inverse .divider-vertical{border-right-color:#222;border-left-color:#111}.navbar-inverse .nav li.dropdown.open>.dropdown-toggle,.navbar-inverse .nav li.dropdown.active>.dropdown-toggle,.navbar-inverse .nav li.dropdown.open.active>.dropdown-toggle{color:#fff;background-color:#111}.navbar-inverse .nav li.dropdown>a:hover .caret,.navbar-inverse .nav li.dropdown>a:focus .caret{border-top-color:#fff;border-bottom-color:#fff}.navbar-inverse .nav li.dropdown>.dropdown-toggle .caret{border-top-color:#999;border-bottom-color:#999}.navbar-inverse .nav li.dropdown.open>.dropdown-toggle .caret,.navbar-inverse .nav li.dropdown.active>.dropdown-toggle .caret,.navbar-inverse .nav li.dropdown.open.active>.dropdown-toggle .caret{border-top-color:#fff;border-bottom-color:#fff}.navbar-inverse .navbar-search .search-query{color:#fff;background-color:#515151;border-color:#111;-webkit-box-shadow:inset 0 1px 2px rgba(0,0,0,0.1),0 1px 0 rgba(255,255,255,0.15);-moz-box-shadow:inset 0 1px 2px rgba(0,0,0,0.1),0 1px 0 rgba(255,255,255,0.15);box-shadow:inset 0 1px 2px rgba(0,0,0,0.1),0 1px 0 rgba(255,255,255,0.15);-webkit-transition:none;-moz-transition:none;-o-transition:none;transition:none}.navbar-inverse .navbar-search .search-query:-moz-placeholder{color:#ccc}.navbar-inverse .navbar-search .search-query:-ms-input-placeholder{color:#ccc}.navbar-inverse .navbar-search .search-query::-webkit-input-placeholder{color:#ccc}.navbar-inverse .navbar-search .search-query:focus,.navbar-inverse .navbar-search .search-query.focused{padding:5px 15px;color:#333;text-shadow:0 1px 0 #fff;background-color:#fff;border:0;outline:0;-webkit-box-shadow:0 0 3px rgba(0,0,0,0.15);-moz-box-shadow:0 0 3px rgba(0,0,0,0.15);box-shadow:0 0 3px rgba(0,0,0,0.15)}.navbar-inverse .btn-navbar{color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,0.25);background-color:#0e0e0e;*background-color:#040404;background-image:-moz-linear-gradient(top,#151515,#040404);background-image:-webkit-gradient(linear,0 0,0 100%,from(#151515),to(#040404));background-image:-webkit-linear-gradient(top,#151515,#040404);background-image:-o-linear-gradient(top,#151515,#040404);background-image:linear-gradient(to bottom,#151515,#040404);background-repeat:repeat-x;border-color:#040404 #040404 #000;border-color:rgba(0,0,0,0.1) rgba(0,0,0,0.1) rgba(0,0,0,0.25);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff151515',endColorstr='#ff040404',GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.navbar-inverse .btn-navbar:hover,.navbar-inverse .btn-navbar:focus,.navbar-inverse .btn-navbar:active,.navbar-inverse .btn-navbar.active,.navbar-inverse .btn-navbar.disabled,.navbar-inverse .btn-navbar[disabled]{color:#fff;background-color:#040404;*background-color:#000}.navbar-inverse .btn-navbar:active,.navbar-inverse .btn-navbar.active{background-color:#000 \9}.breadcrumb{padding:8px 15px;margin:0 0 20px;list-style:none;background-color:#f5f5f5;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px}.breadcrumb>li{display:inline-block;*display:inline;text-shadow:0 1px 0 #fff;*zoom:1}.breadcrumb>li>.divider{padding:0 5px;color:#ccc}.breadcrumb>.active{color:#999}.pagination{margin:20px 0}.pagination ul{display:inline-block;*display:inline;margin-bottom:0;margin-left:0;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;*zoom:1;-webkit-box-shadow:0 1px 2px rgba(0,0,0,0.05);-moz-box-shadow:0 1px 2px rgba(0,0,0,0.05);box-shadow:0 1px 2px rgba(0,0,0,0.05)}.pagination ul>li{display:inline}.pagination ul>li>a,.pagination ul>li>span{float:left;padding:4px 12px;line-height:20px;text-decoration:none;background-color:#fff;border:1px solid #ddd;border-left-width:0}.pagination ul>li>a:hover,.pagination ul>li>a:focus,.pagination ul>.active>a,.pagination ul>.active>span{background-color:#f5f5f5}.pagination ul>.active>a,.pagination ul>.active>span{color:#999;cursor:default}.pagination ul>.disabled>span,.pagination ul>.disabled>a,.pagination ul>.disabled>a:hover,.pagination ul>.disabled>a:focus{color:#999;cursor:default;background-color:transparent}.pagination ul>li:first-child>a,.pagination ul>li:first-child>span{border-left-width:1px;-webkit-border-bottom-left-radius:4px;border-bottom-left-radius:4px;-webkit-border-top-left-radius:4px;border-top-left-radius:4px;-moz-border-radius-bottomleft:4px;-moz-border-radius-topleft:4px}.pagination ul>li:last-child>a,.pagination ul>li:last-child>span{-webkit-border-top-right-radius:4px;border-top-right-radius:4px;-webkit-border-bottom-right-radius:4px;border-bottom-right-radius:4px;-moz-border-radius-topright:4px;-moz-border-radius-bottomright:4px}.pagination-centered{text-align:center}.pagination-right{text-align:right}.pagination-large ul>li>a,.pagination-large ul>li>span{padding:11px 19px;font-size:17.5px}.pagination-large ul>li:first-child>a,.pagination-large ul>li:first-child>span{-webkit-border-bottom-left-radius:6px;border-bottom-left-radius:6px;-webkit-border-top-left-radius:6px;border-top-left-radius:6px;-moz-border-radius-bottomleft:6px;-moz-border-radius-topleft:6px}.pagination-large ul>li:last-child>a,.pagination-large ul>li:last-child>span{-webkit-border-top-right-radius:6px;border-top-right-radius:6px;-webkit-border-bottom-right-radius:6px;border-bottom-right-radius:6px;-moz-border-radius-topright:6px;-moz-border-radius-bottomright:6px}.pagination-mini ul>li:first-child>a,.pagination-small ul>li:first-child>a,.pagination-mini ul>li:first-child>span,.pagination-small ul>li:first-child>span{-webkit-border-bottom-left-radius:3px;border-bottom-left-radius:3px;-webkit-border-top-left-radius:3px;border-top-left-radius:3px;-moz-border-radius-bottomleft:3px;-moz-border-radius-topleft:3px}.pagination-mini ul>li:last-child>a,.pagination-small ul>li:last-child>a,.pagination-mini ul>li:last-child>span,.pagination-small ul>li:last-child>span{-webkit-border-top-right-radius:3px;border-top-right-radius:3px;-webkit-border-bottom-right-radius:3px;border-bottom-right-radius:3px;-moz-border-radius-topright:3px;-moz-border-radius-bottomright:3px}.pagination-small ul>li>a,.pagination-small ul>li>span{padding:2px 10px;font-size:11.9px}.pagination-mini ul>li>a,.pagination-mini ul>li>span{padding:0 6px;font-size:10.5px}.pager{margin:20px 0;text-align:center;list-style:none;*zoom:1}.pager:before,.pager:after{display:table;line-height:0;content:""}.pager:after{clear:both}.pager li{display:inline}.pager li>a,.pager li>span{display:inline-block;padding:5px 14px;background-color:#fff;border:1px solid #ddd;-webkit-border-radius:15px;-moz-border-radius:15px;border-radius:15px}.pager li>a:hover,.pager li>a:focus{text-decoration:none;background-color:#f5f5f5}.pager .next>a,.pager .next>span{float:right}.pager .previous>a,.pager .previous>span{float:left}.pager .disabled>a,.pager .disabled>a:hover,.pager .disabled>a:focus,.pager .disabled>span{color:#999;cursor:default;background-color:#fff}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1040;background-color:#000}.modal-backdrop.fade{opacity:0}.modal-backdrop,.modal-backdrop.fade.in{opacity:.8;filter:alpha(opacity=80)}.modal{position:fixed;top:10%;left:50%;z-index:1050;width:560px;margin-left:-280px;background-color:#fff;border:1px solid #999;border:1px solid rgba(0,0,0,0.3);*border:1px solid #999;-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px;outline:0;-webkit-box-shadow:0 3px 7px rgba(0,0,0,0.3);-moz-box-shadow:0 3px 7px rgba(0,0,0,0.3);box-shadow:0 3px 7px rgba(0,0,0,0.3);-webkit-background-clip:padding-box;-moz-background-clip:padding-box;background-clip:padding-box}.modal.fade{top:-25%;-webkit-transition:opacity .3s linear,top .3s ease-out;-moz-transition:opacity .3s linear,top .3s ease-out;-o-transition:opacity .3s linear,top .3s ease-out;transition:opacity .3s linear,top .3s ease-out}.modal.fade.in{top:10%}.modal-header{padding:9px 15px;border-bottom:1px solid #eee}.modal-header .close{margin-top:2px}.modal-header h3{margin:0;line-height:30px}.modal-body{position:relative;max-height:400px;padding:15px;overflow-y:auto}.modal-form{margin-bottom:0}.modal-footer{padding:14px 15px 15px;margin-bottom:0;text-align:right;background-color:#f5f5f5;border-top:1px solid #ddd;-webkit-border-radius:0 0 6px 6px;-moz-border-radius:0 0 6px 6px;border-radius:0 0 6px 6px;*zoom:1;-webkit-box-shadow:inset 0 1px 0 #fff;-moz-box-shadow:inset 0 1px 0 #fff;box-shadow:inset 0 1px 0 #fff}.modal-footer:before,.modal-footer:after{display:table;line-height:0;content:""}.modal-footer:after{clear:both}.modal-footer .btn+.btn{margin-bottom:0;margin-left:5px}.modal-footer .btn-group .btn+.btn{margin-left:-1px}.modal-footer .btn-block+.btn-block{margin-left:0}.tooltip{position:absolute;z-index:1030;display:block;font-size:11px;line-height:1.4;opacity:0;filter:alpha(opacity=0);visibility:visible}.tooltip.in{opacity:.8;filter:alpha(opacity=80)}.tooltip.top{padding:5px 0;margin-top:-3px}.tooltip.right{padding:0 5px;margin-left:3px}.tooltip.bottom{padding:5px 0;margin-top:3px}.tooltip.left{padding:0 5px;margin-left:-3px}.tooltip-inner{max-width:200px;padding:8px;color:#fff;text-align:center;text-decoration:none;background-color:#000;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px}.tooltip-arrow{position:absolute;width:0;height:0;border-color:transparent;border-style:solid}.tooltip.top .tooltip-arrow{bottom:0;left:50%;margin-left:-5px;border-top-color:#000;border-width:5px 5px 0}.tooltip.right .tooltip-arrow{top:50%;left:0;margin-top:-5px;border-right-color:#000;border-width:5px 5px 5px 0}.tooltip.left .tooltip-arrow{top:50%;right:0;margin-top:-5px;border-left-color:#000;border-width:5px 0 5px 5px}.tooltip.bottom .tooltip-arrow{top:0;left:50%;margin-left:-5px;border-bottom-color:#000;border-width:0 5px 5px}.popover{position:absolute;top:0;left:0;z-index:1010;display:none;max-width:276px;padding:1px;text-align:left;white-space:normal;background-color:#fff;border:1px solid #ccc;border:1px solid rgba(0,0,0,0.2);-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px;-webkit-box-shadow:0 5px 10px rgba(0,0,0,0.2);-moz-box-shadow:0 5px 10px rgba(0,0,0,0.2);box-shadow:0 5px 10px rgba(0,0,0,0.2);-webkit-background-clip:padding-box;-moz-background-clip:padding;background-clip:padding-box}.popover.top{margin-top:-10px}.popover.right{margin-left:10px}.popover.bottom{margin-top:10px}.popover.left{margin-left:-10px}.popover-title{padding:8px 14px;margin:0;font-size:14px;font-weight:normal;line-height:18px;background-color:#f7f7f7;border-bottom:1px solid #ebebeb;-webkit-border-radius:5px 5px 0 0;-moz-border-radius:5px 5px 0 0;border-radius:5px 5px 0 0}.popover-title:empty{display:none}.popover-content{padding:9px 14px}.popover .arrow,.popover .arrow:after{position:absolute;display:block;width:0;height:0;border-color:transparent;border-style:solid}.popover .arrow{border-width:11px}.popover .arrow:after{border-width:10px;content:""}.popover.top .arrow{bottom:-11px;left:50%;margin-left:-11px;border-top-color:#999;border-top-color:rgba(0,0,0,0.25);border-bottom-width:0}.popover.top .arrow:after{bottom:1px;margin-left:-10px;border-top-color:#fff;border-bottom-width:0}.popover.right .arrow{top:50%;left:-11px;margin-top:-11px;border-right-color:#999;border-right-color:rgba(0,0,0,0.25);border-left-width:0}.popover.right .arrow:after{bottom:-10px;left:1px;border-right-color:#fff;border-left-width:0}.popover.bottom .arrow{top:-11px;left:50%;margin-left:-11px;border-bottom-color:#999;border-bottom-color:rgba(0,0,0,0.25);border-top-width:0}.popover.bottom .arrow:after{top:1px;margin-left:-10px;border-bottom-color:#fff;border-top-width:0}.popover.left .arrow{top:50%;right:-11px;margin-top:-11px;border-left-color:#999;border-left-color:rgba(0,0,0,0.25);border-right-width:0}.popover.left .arrow:after{right:1px;bottom:-10px;border-left-color:#fff;border-right-width:0}.thumbnails{margin-left:-20px;list-style:none;*zoom:1}.thumbnails:before,.thumbnails:after{display:table;line-height:0;content:""}.thumbnails:after{clear:both}.row-fluid .thumbnails{margin-left:0}.thumbnails>li{float:left;margin-bottom:20px;margin-left:20px}.thumbnail{display:block;padding:4px;line-height:20px;border:1px solid #ddd;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;-webkit-box-shadow:0 1px 3px rgba(0,0,0,0.055);-moz-box-shadow:0 1px 3px rgba(0,0,0,0.055);box-shadow:0 1px 3px rgba(0,0,0,0.055);-webkit-transition:all .2s ease-in-out;-moz-transition:all .2s ease-in-out;-o-transition:all .2s ease-in-out;transition:all .2s ease-in-out}a.thumbnail:hover,a.thumbnail:focus{border-color:#08c;-webkit-box-shadow:0 1px 4px rgba(0,105,214,0.25);-moz-box-shadow:0 1px 4px rgba(0,105,214,0.25);box-shadow:0 1px 4px rgba(0,105,214,0.25)}.thumbnail>img{display:block;max-width:100%;margin-right:auto;margin-left:auto}.thumbnail .caption{padding:9px;color:#555}.media,.media-body{overflow:hidden;*overflow:visible;zoom:1}.media,.media .media{margin-top:15px}.media:first-child{margin-top:0}.media-object{display:block}.media-heading{margin:0 0 5px}.media>.pull-left{margin-right:10px}.media>.pull-right{margin-left:10px}.media-list{margin-left:0;list-style:none}.label,.badge{display:inline-block;padding:2px 4px;font-size:11.844px;font-weight:bold;line-height:14px;color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,0.25);white-space:nowrap;vertical-align:baseline;background-color:#999}.label{-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px}.badge{padding-right:9px;padding-left:9px;-webkit-border-radius:9px;-moz-border-radius:9px;border-radius:9px}.label:empty,.badge:empty{display:none}a.label:hover,a.label:focus,a.badge:hover,a.badge:focus{color:#fff;text-decoration:none;cursor:pointer}.label-important,.badge-important{background-color:#b94a48}.label-important[href],.badge-important[href]{background-color:#953b39}.label-warning,.badge-warning{background-color:#f89406}.label-warning[href],.badge-warning[href]{background-color:#c67605}.label-success,.badge-success{background-color:#468847}.label-success[href],.badge-success[href]{background-color:#356635}.label-info,.badge-info{background-color:#3a87ad}.label-info[href],.badge-info[href]{background-color:#2d6987}.label-inverse,.badge-inverse{background-color:#333}.label-inverse[href],.badge-inverse[href]{background-color:#1a1a1a}.btn .label,.btn .badge{position:relative;top:-1px}.btn-mini .label,.btn-mini .badge{top:0}@-webkit-keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}@-moz-keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}@-ms-keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}@-o-keyframes progress-bar-stripes{from{background-position:0 0}to{background-position:40px 0}}@keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}.progress{height:20px;margin-bottom:20px;overflow:hidden;background-color:#f7f7f7;background-image:-moz-linear-gradient(top,#f5f5f5,#f9f9f9);background-image:-webkit-gradient(linear,0 0,0 100%,from(#f5f5f5),to(#f9f9f9));background-image:-webkit-linear-gradient(top,#f5f5f5,#f9f9f9);background-image:-o-linear-gradient(top,#f5f5f5,#f9f9f9);background-image:linear-gradient(to bottom,#f5f5f5,#f9f9f9);background-repeat:repeat-x;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff5f5f5',endColorstr='#fff9f9f9',GradientType=0);-webkit-box-shadow:inset 0 1px 2px rgba(0,0,0,0.1);-moz-box-shadow:inset 0 1px 2px rgba(0,0,0,0.1);box-shadow:inset 0 1px 2px rgba(0,0,0,0.1)}.progress .bar{float:left;width:0;height:100%;font-size:12px;color:#fff;text-align:center;text-shadow:0 -1px 0 rgba(0,0,0,0.25);background-color:#0e90d2;background-image:-moz-linear-gradient(top,#149bdf,#0480be);background-image:-webkit-gradient(linear,0 0,0 100%,from(#149bdf),to(#0480be));background-image:-webkit-linear-gradient(top,#149bdf,#0480be);background-image:-o-linear-gradient(top,#149bdf,#0480be);background-image:linear-gradient(to bottom,#149bdf,#0480be);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff149bdf',endColorstr='#ff0480be',GradientType=0);-webkit-box-shadow:inset 0 -1px 0 rgba(0,0,0,0.15);-moz-box-shadow:inset 0 -1px 0 rgba(0,0,0,0.15);box-shadow:inset 0 -1px 0 rgba(0,0,0,0.15);-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;-webkit-transition:width .6s ease;-moz-transition:width .6s ease;-o-transition:width .6s ease;transition:width .6s ease}.progress .bar+.bar{-webkit-box-shadow:inset 1px 0 0 rgba(0,0,0,0.15),inset 0 -1px 0 rgba(0,0,0,0.15);-moz-box-shadow:inset 1px 0 0 rgba(0,0,0,0.15),inset 0 -1px 0 rgba(0,0,0,0.15);box-shadow:inset 1px 0 0 rgba(0,0,0,0.15),inset 0 -1px 0 rgba(0,0,0,0.15)}.progress-striped .bar{background-color:#149bdf;background-image:-webkit-gradient(linear,0 100%,100% 0,color-stop(0.25,rgba(255,255,255,0.15)),color-stop(0.25,transparent),color-stop(0.5,transparent),color-stop(0.5,rgba(255,255,255,0.15)),color-stop(0.75,rgba(255,255,255,0.15)),color-stop(0.75,transparent),to(transparent));background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:-moz-linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:-o-linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);-webkit-background-size:40px 40px;-moz-background-size:40px 40px;-o-background-size:40px 40px;background-size:40px 40px}.progress.active .bar{-webkit-animation:progress-bar-stripes 2s linear infinite;-moz-animation:progress-bar-stripes 2s linear infinite;-ms-animation:progress-bar-stripes 2s linear infinite;-o-animation:progress-bar-stripes 2s linear infinite;animation:progress-bar-stripes 2s linear infinite}.progress-danger .bar,.progress .bar-danger{background-color:#dd514c;background-image:-moz-linear-gradient(top,#ee5f5b,#c43c35);background-image:-webkit-gradient(linear,0 0,0 100%,from(#ee5f5b),to(#c43c35));background-image:-webkit-linear-gradient(top,#ee5f5b,#c43c35);background-image:-o-linear-gradient(top,#ee5f5b,#c43c35);background-image:linear-gradient(to bottom,#ee5f5b,#c43c35);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffee5f5b',endColorstr='#ffc43c35',GradientType=0)}.progress-danger.progress-striped .bar,.progress-striped .bar-danger{background-color:#ee5f5b;background-image:-webkit-gradient(linear,0 100%,100% 0,color-stop(0.25,rgba(255,255,255,0.15)),color-stop(0.25,transparent),color-stop(0.5,transparent),color-stop(0.5,rgba(255,255,255,0.15)),color-stop(0.75,rgba(255,255,255,0.15)),color-stop(0.75,transparent),to(transparent));background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:-moz-linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:-o-linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent)}.progress-success .bar,.progress .bar-success{background-color:#5eb95e;background-image:-moz-linear-gradient(top,#62c462,#57a957);background-image:-webkit-gradient(linear,0 0,0 100%,from(#62c462),to(#57a957));background-image:-webkit-linear-gradient(top,#62c462,#57a957);background-image:-o-linear-gradient(top,#62c462,#57a957);background-image:linear-gradient(to bottom,#62c462,#57a957);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff62c462',endColorstr='#ff57a957',GradientType=0)}.progress-success.progress-striped .bar,.progress-striped .bar-success{background-color:#62c462;background-image:-webkit-gradient(linear,0 100%,100% 0,color-stop(0.25,rgba(255,255,255,0.15)),color-stop(0.25,transparent),color-stop(0.5,transparent),color-stop(0.5,rgba(255,255,255,0.15)),color-stop(0.75,rgba(255,255,255,0.15)),color-stop(0.75,transparent),to(transparent));background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:-moz-linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:-o-linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent)}.progress-info .bar,.progress .bar-info{background-color:#4bb1cf;background-image:-moz-linear-gradient(top,#5bc0de,#339bb9);background-image:-webkit-gradient(linear,0 0,0 100%,from(#5bc0de),to(#339bb9));background-image:-webkit-linear-gradient(top,#5bc0de,#339bb9);background-image:-o-linear-gradient(top,#5bc0de,#339bb9);background-image:linear-gradient(to bottom,#5bc0de,#339bb9);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5bc0de',endColorstr='#ff339bb9',GradientType=0)}.progress-info.progress-striped .bar,.progress-striped .bar-info{background-color:#5bc0de;background-image:-webkit-gradient(linear,0 100%,100% 0,color-stop(0.25,rgba(255,255,255,0.15)),color-stop(0.25,transparent),color-stop(0.5,transparent),color-stop(0.5,rgba(255,255,255,0.15)),color-stop(0.75,rgba(255,255,255,0.15)),color-stop(0.75,transparent),to(transparent));background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:-moz-linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:-o-linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent)}.progress-warning .bar,.progress .bar-warning{background-color:#faa732;background-image:-moz-linear-gradient(top,#fbb450,#f89406);background-image:-webkit-gradient(linear,0 0,0 100%,from(#fbb450),to(#f89406));background-image:-webkit-linear-gradient(top,#fbb450,#f89406);background-image:-o-linear-gradient(top,#fbb450,#f89406);background-image:linear-gradient(to bottom,#fbb450,#f89406);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fffbb450',endColorstr='#fff89406',GradientType=0)}.progress-warning.progress-striped .bar,.progress-striped .bar-warning{background-color:#fbb450;background-image:-webkit-gradient(linear,0 100%,100% 0,color-stop(0.25,rgba(255,255,255,0.15)),color-stop(0.25,transparent),color-stop(0.5,transparent),color-stop(0.5,rgba(255,255,255,0.15)),color-stop(0.75,rgba(255,255,255,0.15)),color-stop(0.75,transparent),to(transparent));background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:-moz-linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:-o-linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent)}.accordion{margin-bottom:20px}.accordion-group{margin-bottom:2px;border:1px solid #e5e5e5;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px}.accordion-heading{border-bottom:0}.accordion-heading .accordion-toggle{display:block;padding:8px 15px}.accordion-toggle{cursor:pointer}.accordion-inner{padding:9px 15px;border-top:1px solid #e5e5e5}.carousel{position:relative;margin-bottom:20px;line-height:1}.carousel-inner{position:relative;width:100%;overflow:hidden}.carousel-inner>.item{position:relative;display:none;-webkit-transition:.6s ease-in-out left;-moz-transition:.6s ease-in-out left;-o-transition:.6s ease-in-out left;transition:.6s ease-in-out left}.carousel-inner>.item>img,.carousel-inner>.item>a>img{display:block;line-height:1}.carousel-inner>.active,.carousel-inner>.next,.carousel-inner>.prev{display:block}.carousel-inner>.active{left:0}.carousel-inner>.next,.carousel-inner>.prev{position:absolute;top:0;width:100%}.carousel-inner>.next{left:100%}.carousel-inner>.prev{left:-100%}.carousel-inner>.next.left,.carousel-inner>.prev.right{left:0}.carousel-inner>.active.left{left:-100%}.carousel-inner>.active.right{left:100%}.carousel-control{position:absolute;top:40%;left:15px;width:40px;height:40px;margin-top:-20px;font-size:60px;font-weight:100;line-height:30px;color:#fff;text-align:center;background:#222;border:3px solid #fff;-webkit-border-radius:23px;-moz-border-radius:23px;border-radius:23px;opacity:.5;filter:alpha(opacity=50)}.carousel-control.right{right:15px;left:auto}.carousel-control:hover,.carousel-control:focus{color:#fff;text-decoration:none;opacity:.9;filter:alpha(opacity=90)}.carousel-indicators{position:absolute;top:15px;right:15px;z-index:5;margin:0;list-style:none}.carousel-indicators li{display:block;float:left;width:10px;height:10px;margin-left:5px;text-indent:-999px;background-color:#ccc;background-color:rgba(255,255,255,0.25);border-radius:5px}.carousel-indicators .active{background-color:#fff}.carousel-caption{position:absolute;right:0;bottom:0;left:0;padding:15px;background:#333;background:rgba(0,0,0,0.75)}.carousel-caption h4,.carousel-caption p{line-height:20px;color:#fff}.carousel-caption h4{margin:0 0 5px}.carousel-caption p{margin-bottom:0}.hero-unit{padding:60px;margin-bottom:30px;font-size:18px;font-weight:200;line-height:30px;color:inherit;background-color:#eee;-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px}.hero-unit h1{margin-bottom:0;font-size:60px;line-height:1;letter-spacing:-1px;color:inherit}.hero-unit li{line-height:30px}.pull-right{float:right}.pull-left{float:left}.hide{display:none}.show{display:block}.invisible{visibility:hidden}.affix{position:fixed} diff --git a/packages/phocadownload/media/com_phocadownload/css/main/button.css b/packages/phocadownload/media/com_phocadownload/css/main/button.css new file mode 100644 index 00000000..5afc4698 --- /dev/null +++ b/packages/phocadownload/media/com_phocadownload/css/main/button.css @@ -0,0 +1,110 @@ +/* +Phoca Download +http://www.phoca.cz/ +http://www.phoca.cz/phocadownload +*/ + +#phoca-dl-category-box .pd-button-mirror1 a, +#phoca-dl-category-box .pd-button-mirror2 a, +#phoca-dl-file-box .pd-button-mirror1 a, +#phoca-dl-file-box .pd-button-mirror2 a, +#phoca-dl-file-box .pd-button-download, +#phoca-dl-category-box .pd-button-play a, +#phoca-dl-category-box .pd-button-preview a, +#phoca-dl-category-box .pd-button-download a, +#phoca-dl-category-box .pd-button-details a, +#phoca-dl-download-box .pd-button-download a { + background: url(../../images/btn.png) repeat-x; + display: inline-block; + padding: 7px 12px 8px; + text-decoration: none; + box-shadow: 0 1px 2px rgba(0,0,0,0.6); + -moz-box-shadow: 0 1px 2px rgba(0,0,0,0.6); + -webkit-box-shadow: 0 1px 2px rgba(0,0,0,0.6); + + border-bottom: 1px solid rgba(0,0,0,0.25); + position: relative; + cursor: pointer; + text-shadow: 0 -1px 1px rgba(0,0,0,0.25); + font-weight: bold; + font-size: 110%; + padding-left: 28px; + color: #fff; +} + +#phoca-dl-category-box .pd-button-play a { + background: url(../../images/btn.png) repeat-x, url(../../images/icon-play.png) 6px center no-repeat; + background-color: #b8301e; +} +#phoca-dl-category-box .pd-button-preview a { + + background: url(../../images/btn.png) repeat-x, url(../../images/icon-preview.png) 6px center no-repeat; + background-color: #bf8e2f; +} + +#phoca-dl-file-box .pd-button-download { + background: url(../../images/btn.png) repeat-x, url(../../images/icon-download.png) 6px center no-repeat; + background-color: #269926; +} +#phoca-dl-download-box .pd-button-download a, +#phoca-dl-category-box .pd-button-download a { + background: url(../../images/btn.png) repeat-x, url(../../images/icon-download.png) 6px center no-repeat; + background-color: #269926; +} +#phoca-dl-category-box .pd-button-details a { + background: url(../../images/btn.png) repeat-x, url(../../images/icon-details.png) 6px center no-repeat; + background-color: #294580; +} + +#phoca-dl-file-box .pd-button-mirror1 a, +#phoca-dl-category-box .pd-button-mirror1 a { + background: url(../../images/btn.png) repeat-x, url(../../images/icon-extlink1.png) 6px center no-repeat; + background-color: #1d786c; +} +#phoca-dl-file-box .pd-button-mirror2 a, +#phoca-dl-category-box .pd-button-mirror2 a { + background: url(../../images/btn.png) repeat-x, url(../../images/icon-extlink2.png) 6px center no-repeat; + background-color: #aabb2d; +} + +#phoca-dl-category-box .pd-button-play a:hover { + background: url(../../images/btn.png) repeat-x, url(../../images/icon-play.png) 6px center no-repeat; + background-color: #78160a; +} +#phoca-dl-category-box .pd-button-preview a:hover { + background: url(../../images/btn.png) repeat-x, url(../../images/icon-preview.png) 6px center no-repeat; + background-color: #7c570f; +} +#phoca-dl-download-box .pd-button-download a:hover, +#phoca-dl-category-box .pd-button-download a:hover { + background: url(../../images/btn.png) repeat-x, url(../../images/icon-download.png) 6px center no-repeat; + background-color: #0c630c; +} +#phoca-dl-category-box .pd-button-details a:hover { + + background: url(../../images/btn.png) repeat-x, url(../../images/icon-details.png) 6px center no-repeat; + background-color: #0d2453; +} +#phoca-dl-category-box .pd-button-mirror1 a:hover { + background: url(../../images/btn.png) repeat-x, url(../../images/icon-extlink1.png) 6px center no-repeat; + background-color: #094e45; +} +#phoca-dl-category-box .pd-button-mirror2 a:hover { + background: url(../../images/btn.png) repeat-x, url(../../images/icon-extlink2.png) 6px center no-repeat; + background-color: #6d7a0f; +} + +#phoca-dl-download-box .pd-button-download a, +#phoca-dl-category-box .pd-button-mirror1 a, +#phoca-dl-category-box .pd-button-mirror2 a, +#phoca-dl-file-box .pd-button-mirror1 a, +#phoca-dl-file-box .pd-button-mirror2 a, +#phoca-dl-category-box .pd-button-play a, +#phoca-dl-category-box .pd-button-preview a, +#phoca-dl-category-box .pd-button-download a, +#phoca-dl-category-box .pd-button-details a { + border-radius: 0px; + -moz-border-radius: 0px; + -webkit-border-radius: 0px; +} + diff --git a/packages/phocadownload/media/com_phocadownload/css/main/buttonrc.css b/packages/phocadownload/media/com_phocadownload/css/main/buttonrc.css new file mode 100644 index 00000000..37e80985 --- /dev/null +++ b/packages/phocadownload/media/com_phocadownload/css/main/buttonrc.css @@ -0,0 +1,18 @@ +/* +Phoca Download +http://www.phoca.cz/ +http://www.phoca.cz/phocadownload +*/ +#phoca-dl-download-box .pd-button-download a, +#phoca-dl-category-box .pd-button-mirror1 a, +#phoca-dl-category-box .pd-button-mirror2 a, +#phoca-dl-file-box .pd-button-mirror1 a, +#phoca-dl-file-box .pd-button-mirror2 a, +#phoca-dl-category-box .pd-button-play a, +#phoca-dl-category-box .pd-button-preview a, +#phoca-dl-category-box .pd-button-download a, +#phoca-dl-category-box .pd-button-details a { + border-radius: 6px; + -moz-border-radius: 6px; + -webkit-border-radius: 6px; +} diff --git a/packages/phocadownload/media/com_phocadownload/css/main/index.html b/packages/phocadownload/media/com_phocadownload/css/main/index.html new file mode 100644 index 00000000..fa6d84e8 --- /dev/null +++ b/packages/phocadownload/media/com_phocadownload/css/main/index.html @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/phocadownload/media/com_phocadownload/css/main/phocadownload.css b/packages/phocadownload/media/com_phocadownload/css/main/phocadownload.css new file mode 100644 index 00000000..d994edb1 --- /dev/null +++ b/packages/phocadownload/media/com_phocadownload/css/main/phocadownload.css @@ -0,0 +1,819 @@ +/* Phoca Download http://www.phoca.cz/ http://www.phoca.cz/phocadownload */ + +/* Main */ +.pd-hr-cb { + border-bottom: 3px solid #e9e9e9; + margin-bottom: 10px; + clear:both; +} +.pd-hr { + border-bottom: 3px solid #e9e9e9; + margin-bottom: 10px; +} +.pd-fl { + position: relative; + float: left; +} +.pd-fl-m { + position: relative; + float: left; + margin: 5px 0; +} +.pd-fr { + position: relative; + float: right; +} +.pd-cb { + clear:both; +} +.pd-cl { + clear:left; +} + +.pd-cr-m { + clear: right; + margin-top: 20px; +} + +.pd-not-found { + text-align: center; + font-weight: bold; +} +.pd-center { + text-align:center; + vertical-align:middle; +} +.pd-inline { + margin:0 10px 0 10px; + display:inline; +} + +/* Top */ +#phoca-dl-category-box .pd-category h3.pd-ctitle, +#phoca-dl-file-box .pd-file h3.pd-ctitle, +#phoca-dl-download-box .pd-file h3.pd-ctitle{ + margin: 0; + padding: 5px; + background: #fafafa; + border: 1px solid #e9e9e9; + margin-bottom: 7px; +} + +#phoca-dl-category-box .pd-category div.pdtop, +#phoca-dl-file-box .pd-file div.pdtop, +#phoca-dl-download-box .pd-file div.pdtop { + float: right; + position: relative; + width: 16px; + margin-top: 5px; + margin-right: 7px; + padding-top: 2px; +} + + +/* Category, File, Overlib */ +#phoca-dl-category-box .pd-filesize-txt, +#phoca-dl-file-box .pd-filesize-txt, +#phoca-dl-category-box .pd-version-txt, +#phoca-dl-file-box .pd-version-txt, +#phoca-dl-category-box .pd-license-txt, +#phoca-dl-file-box .pd-license-txt, +#phoca-dl-category-box .pd-author-txt, +#phoca-dl-file-box .pd-author-txt, +#phoca-dl-category-box .pd-email-txt, +#phoca-dl-file-box .pd-email-txt, +#phoca-dl-category-box .pd-date-txt, +#phoca-dl-file-box .pd-date-txt, +#phoca-dl-category-box .pd-downloads-txt, +#phoca-dl-file-box .pd-downloads-txt{ + font-weight: bold; + clear:left; + margin:5px 0; + float:left; + width: 100px; +} + +#phoca-dl-category-box .pd-notes-txt, +#phoca-dl-file-box .pd-notes-txt, +#phoca-dl-category-box .pd-features-txt, +#phoca-dl-file-box .pd-features-txt, +#phoca-dl-category-box .pd-changelog-txt, +#phoca-dl-file-box .pd-changelog-txt { + margin: 7px 0; + font-weight: bold; + clear:left; +} + +#overDiv .pd-filesize-txt, +#overDiv .pd-version-txt, +#overDiv .pd-license-txt, +#overDiv .pd-author-txt, +#overDiv .pd-email-txt, +#overDiv .pd-date-txt, +#overDiv .pd-downloads-txt{ + font-weight: bold; + clear:left; + margin:5px 0; + float:left; + width: 80px; +} + +#overDiv .pd-title, +#phoca-dl-category-box .pd-title, +#phoca-dl-file-box .pd-title, +#phoca-dl-download-box .pd-title { + font-weight: bold; +} + +#overDiv .pd-image, +#phoca-dl-category-box .pd-image, +#phoca-dl-file-box .pd-image, +#phoca-dl-download-box .pd-image { + position:relative; + float:right; + margin:10px; +} + +#overDiv .pd-textonly, +#overDiv .pd-cdesc, +#phoca-dl-category-box .pd-textonly, +#phoca-dl-category-box .pd-cdesc, +#phoca-dl-file-box .pd-cdesc, +#phoca-dl-download-box .pd-cdesc { + margin: 10px 0px; + padding: 5px 0px; + clear:both; +} +#overDiv .pd-fdesc, +#phoca-dl-category-box .pd-fdesc, +#phoca-dl-file-box .pd-fdesc, +#phoca-dl-download-box .pd-fdesc { + padding: 5px 0px; + clear:both; +} + +#phoca-dl-category-box .pd-buttons, +#phoca-dl-file-box .pd-buttons, +#phoca-dl-download-box .pd-buttons { + position: relative; + float: right; + margin: 5px; +} +#phoca-dl-download-box .pd-filenamebox, +#phoca-dl-category-box .pd-filenamebox { + position: relative; + float: left; + margin: 5px; +} + +#phoca-dl-file-box .pd-filenamebox { + position: relative; + float: left; + margin: 5px 0px; +} + + + +#phoca-dl-download-box .pd-downloadbox-direct { + margin: 0 auto; + margin-top: 20px; + background: #f5f5f5; + border: 1px solid #d9d9d9; + -webkit-border-radius: 3px; + border-radius: 3px; + padding: 10px; +} + +#phoca-dl-category-box .pd-filebox { + margin-top: 10px; + margin-bottom: 10px; + padding-bottom: 10px; + border-bottom: 1px solid #f0f0f0; +} + +#phoca-dl-download-box .pd-filebox, +#phoca-dl-file-box .pd-filebox { + padding: 5px; +} + +#phoca-dl-category-box .pd-title, +#phoca-dl-file-box .pd-title, +#phoca-dl-download-box .pd-title { + margin-bottom: 3px; +} + + +#phoca-dl-category-box .pd-mirrors, +#phoca-dl-file-box .pd-mirrors { + position: relative; + float: right; + clear: right; + margin-top: 0px; +} + +#phoca-dl-category-box .pd-rating, +#phoca-dl-file-box .pd-rating { + position: relative; + float: left; + clear: both; + margin-top: 15px; +} + +#phoca-dl-category-box .pd-tags, +#phoca-dl-category-box .pd-report, +#phoca-dl-file-box .pd-tags, +#phoca-dl-file-box .pd-report { + position: relative; + float: right; + clear: right; + margin-top: 15px; +} + +#phoca-dl-download-box, +#phoca-dl-file-box { + text-align: left; +} +#phoca-dl-download-box .pd-file, +#phoca-dl-file-box .pd-file { + + margin:5px 0; +} + +/* Categories */ +#phoca-dl-categories-box a img { + border: 0px; + padding: 0; + margin: 0; +} + +#phoca-dl-categories-box div.pd-desc { + margin: 10px 0 10px 0; +} +#phoca-dl-categories-box div.pd-categoriesbox { + width: 28%; + position: relative; + float: left; + margin: 1%; + padding: 1%; +} + +#phoca-dl-categories-box div.pd-title{ + font-weight:bold; + font-size: 120%; + margin: 5px 0px 8px 0px; +} + +#phoca-dl-category-box .pagination, +#phoca-dl-category-box .pagination div ul { + text-align: center; + margin: auto; + margin: 5px; + border: none; + +} + +#phoca-dl-category-box .pd-subcategory, +#phoca-dl-file-box .pd-file { + margin: 5px; +} + +#phoca-dl-download-box .pd-file-details, +#phoca-dl-file-box .pd-file-details { + border: 0; +} + +#phoca-dl-categories-box .pd-subcategory, +#phoca-dl-category-box .pd-subcategory { + padding-left: 20px; + background: transparent url('../../images/folder.png') 0 center no-repeat; +} + +#phoca-dl-category-box .pd-category div.pdtop, +#phoca-dl-file-box .pd-file div.pdtop, +#phoca-dl-download-box .pd-file div.pdtop { + float: right; + position: relative; + width: 16px; + margin-top: 5px; + margin-right: 7px; +} + +#phoca-dl-categories-box a img, +#phoca-dl-category-box a img, +#phoca-dl-file-box a img, +#phoca-dl-download-box a img { + border: none; +} + +/* Icons - icon next to file*/ +.phoca-dl-file-box-mod .pd-document16, +#phoca-dl-file-box .pd-document16, +#phoca-dl-category-box .pd-document16, +#phoca-dl-download-box .pd-document16 { + padding-left: 20px; + background: url('../../images/icon-document-16.png') 0px center no-repeat; + height: 16px; + line-height: 16px; +} +#phoca-dl-most-viewed-box .pd-document16 { + padding-left: 20px; + background: url('../../images/icon-document-16.png') 0px center no-repeat; +} +.phoca-dl-file-box-mod .pd-document32, +#phoca-dl-file-box .pd-document32, +#phoca-dl-category-box .pd-document32, +#phoca-dl-most-viewed-box .pd-document32, +#phoca-dl-download-box .pd-document32 { + background: url('../../images/icon-document-32.png') 0px center no-repeat; + height: 32px; + line-height: 32px; + padding-left: 36px; +} +.phoca-dl-file-box-mod .pd-document48, +#phoca-dl-file-box .pd-document48, +#phoca-dl-category-box .pd-document48, +#phoca-dl-most-viewed-box .pd-document48, +#phoca-dl-download-box .pd-document48 { + background: url('../../images/icon-document-48.png') 0px center no-repeat; + height: 48px; + line-height: 48px; + padding-left: 52px; +} +.phoca-dl-file-box-mod .pd-document64, +#phoca-dl-file-box .pd-document64, +#phoca-dl-category-box .pd-document64, +#phoca-dl-most-viewed-box .pd-document64, +#phoca-dl-download-box .pd-document64 { + background: url('../../images/icon-document-64.png') 0px center no-repeat; + height: 64px; + line-height: 64px; + padding-left: 70px; +} + +/* Plugin */ +#phoca-dl-category-box-plugin .pd-document { + padding-left: 20px; + background: url('../../images/document.png') 0 center no-repeat; + text-align: left; + padding-top: 4px; + padding-bottom: 4px; + +} + +/* Module */ +.phoca-dl-categories-box-module .pd-categories { + color: #BF6070; +} + +.phocadownload-navigation { + padding: 2px; + border: 1px dotted #D6D6D6; + width: 6em; + position: relative; + float: right; + text-align: center; + margin-left: 5px; +} + +.phocadownload-navigation .navigation-text { + color: #BF6070; + background-color: #D6D6D6; + padding: 2px; + margin-bottom: 3px; + font-size: 10px; + text-align: center; +} + +#phoca-dl-license { + border: 1px solid #ccc; + background: #f5f5f5; + overflow: auto; + margin-top: 10px; + margin-bottom: 10px; +} + +.pd-pagination { + margin-top: 20px; +} + +.pd-float { + position: relative; + float: left; + margin: 0px 3px; +} + +#phocadownload-upload .comment-input{ + width: 98%; +} + +#phocadownload-upload .comment-input2 { + width: 40px; + border: 0px; + font-weight: bold; + +} + +/* tabs */ +form { + margin: 0; + padding: 0; +} + +dl.tabs { + float: left; + margin: 10px 0 -1px 2px; + z-index: 50; + +} + +dl.tabs dt { + float: left; + padding: 4px 10px; + border-left: 1px solid #ccc; + border-right: 1px solid #ccc; + border-top: 1px solid #ccc; + margin-left: 3px; + background: #f0f0f0; + color: #666; + +} + +dl.tabs dt.open { + background: #ffffff; + border-bottom: 1px solid #ffffff; + z-index: 100; + color: #000; + +} + +dl.tabs a { + text-decoration: none; + font-weight: normal; +} +dl.tabs a:hover { + background: transparent !important; +} + +div.current { + clear: both; + border: 1px solid #ccc; + padding: 10px 10px; + background: #ffffff; + +} + +div.current dd { + padding: 0; + margin: 0; +} + +#loading-label-file{ + text-align: center; + display: none; +} + +/** Table styles **/ +#phocadownload-upload table.adminlist { + width: 100%; + border-spacing: 1px; + background-color: #e7e7e7; + color: #666; +} + +#phocadownload-upload .pagination { + margin: 0; + padding: 0; + display: inline; +} + +#phocadownload-upload table.adminlist td, +#phocadownload-upload table.adminlist th { + padding: 4px; +} + +#phocadownload-upload table.adminlist thead th { + text-align: center; + background: #f0f0f0; + color: #666; + border-bottom: 1px solid #999; + border-left: 1px solid #fff; +} + +#phocadownload-upload table.adminlist thead a:hover { text-decoration: none; } +#phocadownload-upload table.adminlist thead th img { vertical-align: middle; } +#phocadownload-upload table.adminlist tbody th { font-weight: bold; } +#phocadownload-upload table.adminlist tbody tr { background-color: #fff; text-align: left; } +#phocadownload-upload table.adminlist tbody tr.row1 { background: #f9f9f9; border-top: 1px solid #fff; } +#phocadownload-upload table.adminlist tbody tr.row0:hover td, +#phocadownload-upload table.adminlist tbody tr.row1:hover td { background-color: #ffd ; } +#phocadownload-upload table.adminlist tbody tr td { height: 25px; background: #fff; border: 1px solid #fff; } +#phocadownload-upload table.adminlist tbody tr.row1 td { background: #f9f9f9; border-top: 1px solid #FFF; } +#phocadownload-upload table.adminlist tfoot tr { text-align: center; color: #333; } +#phocadownload-upload table.adminlist tfoot td, +#phocadownload-upload table.adminlist tfoot th { background-color: #f3f3f3; border-top: 1px solid #999; text-align: center; } +#phocadownload-upload table.adminlist td.order { text-align: center; white-space: nowrap; } +#phocadownload-upload table.adminlist td.order span { float: left; display: block; width: 20px; text-align: center; } + +#phocadownload-upload .error, +#phoca-dl-file-box .error, +#phoca-dl-category-box .pd-error, +#phoca-dl-category-box .error { + background: #FFC2C2; + border: 1px solid #bf3030; + color: #a60000; + padding: 10px; + margin-top: 5px; + margin-bottom: 5px; +} + +#phoca-dl-categories-box .pd-no-subcat { + margin-left: 5px; +} + +/* not conflict with beez */ +#phocadownload-upload table, +#phocadownload-upload table tr, +#phocadownload-upload table tr td, +#phoca-dl-file-box table, +#phoca-dl-file-box table tr, +#phoca-dl-file-box table tr td, +#phoca-dl-download-box table, +#phoca-dl-download-box table tr, +#phoca-dl-download-box table tr td, +#phoca-dl-category-box table, +#phoca-dl-category-box table tr, +#phoca-dl-category-box table tr td { + border: none; +} +#overDiv table, +#overDiv table tr, +#overDiv table tr td{ + border: none; + padding:5px; + +} + +#phoca-dl-category-box .pagination.pd-pagination { + border: none; +} +/* +#phocadownload-pane div.current, +#phocadownload-pane div.current dd, +#phocadownload-pane .tabs, +#phocadownload-pane #pane { + width: 100%; +} +*/ +#phoca-dl-category-box .pdtop a:hover, +#phoca-dl-category-box .pdtop a:active, +#phoca-dl-category-box .pdtop a:focus, +#phoca-dl-category-box .pdfile a:hover, +#phoca-dl-category-box .pdfile a:active, +#phoca-dl-category-box .pdfile a:focus, +#phoca-dl-file-box .pdtop a:hover, +#phoca-dl-file-box .pdtop a:active, +#phoca-dl-file-box .pdtop a:focus, +#phoca-dl-download-box .pdtop a:hover, +#phoca-dl-download-box .pdtop a:active, +#phoca-dl-download-box .pdtop a:focus { + background: transparent; +} + +/* overlib */ +#overDiv table, +#overDiv table tr, +#overDiv table tr td { + border: 0px +} + +#overDiv .fontPhocaPDClass { + color: #999; + margin:0;padding:0; +} + +#overDiv .fgPhocaPDClass { + background-color: #f0f0f0; + margin:0;padding:0; +} +#overDiv .bgPhocaPDClass { + background-color: #f0f0f0; + margin:0;padding:0; + border: 1px solid #999; +} +#overDiv .capfontPhocaPDClass { + color: #999; + margin:0;padding:0; +} +#overDiv .capfontclosePhocaPDClass, +#overDiv .capfontclosePhocaPDClass a { + color: #999; + text-decoration: underline; + text-align: right; + margin:0;padding:0; +} + +#phoca-dl-category-box .pagination #pg-pagination ul { + margin: 10px auto; + text-align: center; +} + +.pd-mirror, +.pd-report { + margin: 0px 0px 5px 5px; + float:right; +} + +.pd-mirror-file, +.pd-report-file { + margin: 0px 5px 5px 0px; + float:right; +} + +.pd-fbcomments { + margin-top: 10px; + margin-bottom: 10px; +} + +/* + * If Beez template is not used, the following code + * can be removed + * Because of using !important methods in Beez + */ + +#phocadownload table, +#phocadownload-pane table, +#phocadownload-pane table tr, +#phocadownload-pane table tr td{ + border-style: none !important; +} + +#phocadownload-pane table tr td { + padding:3px; +} +#phocadownload-multipleupload form fieldset { + text-align:left; + padding:5px; +} + +#phocadownload-pane .actions { + text-align:left; + width: auto; + padding:10px 5px !important; + margin:10px 0 !important; +} + +#phocadownload-pane ul#flash_uploader_filelist { + margin:0px; +} + +.label { + border-radius: 3px 3px 3px 3px; + padding: 1px 4px 2px; + color: #FFFFFF; + font-size: 10.998px; + font-weight: bold; + line-height: 14px; + text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25); + vertical-align: baseline; + white-space: nowrap; +} + +.label-warning { + background-color: #f89406; +} +.label-important { + background-color: #b94a48; +} + +.ph-cb { + clear:both +} + + +/* Bootstrap */ +#phoca-dl-category-box .pd-rating { + position: relative; + float: left; + clear: both; + margin-top: 5px; + margin-left: 5px; +} + +#phoca-dl-category-box .pd-tags-bp, +#phoca-dl-file-box .pd-tags-bp { + position: relative; + margin: 0px 5px 0px 5px; + float: right; + clear: right; +} +#phoca-dl-category-box .pd-mirror-bp { + margin: 0px 5px 0px 5px; + float:right; +} + +#phoca-dl-file-box .pd-mirror-bp { + margin: 0px 0px 0px 5px; + float:right; +} +#phoca-dl-category-box .pd-report-bp, +#phoca-dl-file-box .pd-report-bp { + margin: 0px 5px 0px 5px; + clear: right; + float:right; +} + +#phoca-dl-category-box .pd-video { +margin-left: 5px; +} + +#phoca-dl-file-box .pd-video { + padding-top: 10px; + clear:both; + padding: 10px; +} + +.pd-row2-bp { + border-bottom: 1px solid #e9e9e9; + margin: 0px 0px 8px 0px; + padding-bottom:5px; +} + + +#phoca-dl-file-box .pd-buttons-bp { + position: relative; + float: right; + margin: 0px 0px 0px 5px; +} +.ph-right { + text-align:right; +} + +.btn-file { + position: relative; + overflow: hidden; +} +.btn-file input[type=file] { + position: absolute; + top: 0; + right: 0; + min-width: 100%; + min-height: 100%; + font-size: 100px; + text-align: right; + filter: alpha(opacity=0); + opacity: 0; + outline: none; + background: white; + cursor: inherit; + display: block; +} +.pd-input-small { + width: 15em !important; +} +.pd-comment-input { + width: 100%; +} +.pd-user-upload-table tr td { + padding: 5px; +} + +#phocadownload-upload .footer { + text-align: center; +} +#phocadownload-upload .pd-file-upload-form { + padding-right: 10px; +} + +.ph-th-50 { + width: 50%; +} +.ph-th-3 { + width: 3%; +} +.ph-td-center { + text-align: center; +} + +.pd-button-box-bt a.btn { + float: right; + margin: 5px; +} + +#phoca-dl-download-box .pd-filenamebox-bt, +#phoca-dl-category-box .pd-filenamebox-bt { + position: relative; + float: left; + margin: 5px 0px; +} + +/* Specific colors for string tags */ +.pd-j-15 {background-color: #559d22;} +.pd-j-17 {background-color: #f25c14;} +.pd-j-25 {background-color: #6a379b;} +.pd-j-3x {background-color: #bc8b02;} +.pd-j-35 {background-color: #bc8b02;} + +#phoca-dl-license pre { + border: 0px; + border-radius:0px; +} \ No newline at end of file diff --git a/packages/phocadownload/media/com_phocadownload/css/main/rating.css b/packages/phocadownload/media/com_phocadownload/css/main/rating.css new file mode 100644 index 00000000..7e3a9d52 --- /dev/null +++ b/packages/phocadownload/media/com_phocadownload/css/main/rating.css @@ -0,0 +1,268 @@ +/* Rating */ +/* Voting - style by http://www.jluvip.com/works/css/starvote/index2-1.html*/ +#phoca-dl-category-box ul.star-rating li, +#phoca-dl-category-box ul.star-rating-small li, +#phoca-dl-file-box ul.star-rating li, +#phoca-dl-file-box ul.star-rating-small li{ + background: none; + list-style-type:none; +} + +#phoca-dl-file-box .star-rating, +#phoca-dl-category-box .star-rating, +.star-rating{ + list-style:none; + margin: 0px; + margin-bottom:5px; + padding:0px; + width: 110px; + height: 22px; + position: relative; + background: url(../../images/icon-voting.png) top left repeat-x; +} + +#phoca-dl-file-box .star-rating li, +#phoca-dl-category-box .star-rating li, +.star-rating li{ + list-style-type:none; + padding:0px; + margin:0px; + /*\*/ + float: left; + /* */ +} + +#phoca-dl-file-box .star-rating li a, +#phoca-dl-category-box .star-rating li a, +.star-rating li a{ + display:block; + width:22px; + height: 22px; + text-decoration: none; + text-indent: -9000px; + z-index: 20; + position: absolute; + padding: 0px; +} + +#phoca-dl-file-box .star-rating li a:hover, +#phoca-dl-category-box .star-rating li a:hover, +.star-rating li a:hover{ + background: url(../../images/icon-voting.png) left center; + z-index: 2; + left: 0px; +} + +#phoca-dl-file-box .star-rating a.star1, +#phoca-dl-category-box .star-rating a.star1, +.star-rating a.star1{ + left: 0px; +} + +#phoca-dl-file-box .star-rating a.star1:hover, +#phoca-dl-category-box .star-rating a.star1:hover, +.star-rating a.star1:hover{ + width:22px; +} + +#phoca-dl-file-box .star-rating a.stars2, +#phoca-dl-category-box .star-rating a.stars2, +.star-rating a.stars2{ + left:22px; +} + +#phoca-dl-file-box .star-rating a.stars2:hover, +#phoca-dl-category-box .star-rating a.stars2:hover, +.star-rating a.stars2:hover{ + width: 44px; +} + +#phoca-dl-file-box .star-rating a.stars3, +#phoca-dl-category-box .star-rating a.stars3, +.star-rating a.stars3{ + left: 44px; +} + +#phoca-dl-file-box .star-rating a.stars3:hover, +#phoca-dl-category-box .star-rating a.stars3:hover, +.star-rating a.stars3:hover{ + width: 66px; +} + +#phoca-dl-file-box .star-rating a.stars4, +#phoca-dl-category-box .star-rating a.stars4, +.star-rating a.stars4{ + left: 66px; +} + +#phoca-dl-file-box .star-rating a.stars4:hover, +#phoca-dl-category-box .star-rating a.stars4:hover, +.star-rating a.stars4:hover{ + width: 88px; +} + +#phoca-dl-file-box .star-rating a.stars5, +#phoca-dl-category-box .star-rating a.stars5, +.star-rating a.stars5{ + left: 88px; +} + +#phoca-dl-file-box .star-rating a.stars5:hover, +#phoca-dl-category-box .star-rating a.stars5:hover, +.star-rating a.stars5:hover{ + width: 110px; +} + +#phoca-dl-file-box .star-rating li.current-rating, +#phoca-dl-category-box .star-rating li.current-rating, +.star-rating li.current-rating{ + background: url(../../images/icon-voting.png) left bottom; + position: absolute; + height: 22px; + /*width:77px;*/ + display: block; + text-indent: -9000px; + z-index: 1; +} + + +/* Voting small */ +#phoca-dl-file-box .star-rating-small, +#phoca-dl-category-box .star-rating-small, +.star-rating-small{ + list-style:none; + margin: 0px; + margin-bottom:5px; + padding:0px; + width: 90px; + height: 18px; + position: relative; + background: url(../../images/icon-voting-small.png) top left repeat-x; +} + +#phoca-dl-file-box .star-rating-small li, +#phoca-dl-category-box .star-rating-small li, +.star-rating-small li{ + list-style-type:none; + padding:0px; + margin:0px; + /*\*/ + float: left; + /* */ +} + +#phoca-dl-file-box .star-rating-small li a, +#phoca-dl-category-box .star-rating-small li a, +.star-rating-small li a{ + display:block; + width:18px; + height: 18px; + text-decoration: none; + text-indent: -9000px; + z-index: 20; + position: absolute; + padding: 0px; +} + +#phoca-dl-file-box .star-rating-small li a:hover, +#phoca-dl-category-box .star-rating-small li a:hover, +.star-rating-small li a:hover{ + background: url(../../images/icon-voting-small.png) left center; + z-index: 2; + left: 0px; +} + +#phoca-dl-file-box .star-rating-small a.star1, +#phoca-dl-category-box .star-rating-small a.star1, +.star-rating-small a.star1{ + left: 0px; +} + +#phoca-dl-file-box .star-rating-small a.star1:hover, +#phoca-dl-category-box .star-rating-small a.star1:hover, +.star-rating-small a.star1:hover{ + width:18px; +} + +#phoca-dl-file-box .star-rating-small a.stars2, +#phoca-dl-category-box .star-rating-small a.stars2, +.star-rating-small a.stars2{ + left:18px; +} + +#phoca-dl-file-box .star-rating-small a.stars2:hover, +#phoca-dl-category-box .star-rating-small a.stars2:hover, +.star-rating-small a.stars2:hover{ + width: 36px; +} + +#phoca-dl-file-box .star-rating-small a.stars3, +#phoca-dl-category-box .star-rating-small a.stars3, +.star-rating-small a.stars3{ + left: 36px; +} + +#phoca-dl-file-box .star-rating-small a.stars3:hover, +#phoca-dl-category-box .star-rating-small a.stars3:hover, +.star-rating-small a.stars3:hover{ + width: 54px; +} + +#phoca-dl-file-box .star-rating-small a.stars4, +#phoca-dl-category-box .star-rating-small a.stars4, +.star-rating-small a.stars4{ + left: 54px; +} + +#phoca-dl-file-box .star-rating-small a.stars4:hover, +#phoca-dl-category-box .star-rating-small a.stars4:hover, +.star-rating-small a.stars4:hover{ + width: 72px; +} + +#phoca-dl-file-box .star-rating-small a.stars5, +#phoca-dl-category-box .star-rating-small a.stars5, +.star-rating-small a.stars5{ + left: 72px; +} + +#phoca-dl-file-box .star-rating-small a.stars5:hover, +#phoca-dl-category-box .star-rating-small a.stars5:hover, +.star-rating-small a.stars5:hover{ + width: 90px; +} + +#phoca-dl-file-box .star-rating-small li.current-rating, +#phoca-dl-category-box .star-rating-small li.current-rating, +.star-rating-small li.current-rating{ + background: url(../../images/icon-voting-small.png) left bottom; + position: absolute; + height: 18px; + /*width:77px;*/ + display: block; + text-indent: -9000px; + z-index: 1; +} + + + +.pd-small, +.pd-result, +#phoca-dl-file-box .pd-small, +#phoca-dl-file-box .pd-result, +#phoca-dl-category-box .pd-small, +#phoca-dl-category-box .pd-result { + font-size: x-small; +} + + +#phoca-dl-file-box ul.star-rating-small, +#phoca-dl-category-box ul.star-rating-small, +#phoca-dl-file-box ul.star-rating-small li, +#phoca-dl-category-box ul.star-rating-small li, +#phoca-dl-file-box ul.star-rating, +#phoca-dl-category-box ul.star-rating, +#phoca-dl-file-box ul.star-rating li, +#phoca-dl-category-box ul.star-rating li { + list-style: none !important; +} \ No newline at end of file diff --git a/packages/phocadownload/media/com_phocadownload/images/administrator/b-prm.png b/packages/phocadownload/media/com_phocadownload/images/administrator/b-prm.png new file mode 100644 index 0000000000000000000000000000000000000000..c83f0a8a21121cdf1ec1e871bddc8da0a71ae635 GIT binary patch literal 21641 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 Y-#Jh>HzR_mtpET307*qoM6N<$f)m_#9smFU literal 0 HcmV?d00001 diff --git a/packages/phocadownload/media/com_phocadownload/images/administrator/bg-install.png b/packages/phocadownload/media/com_phocadownload/images/administrator/bg-install.png new file mode 100644 index 0000000000000000000000000000000000000000..5e77919fa937a909107b1284605dd9183102e568 GIT binary patch literal 2164 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 M07*qoM6N<$f*K=n$N&HU literal 0 HcmV?d00001 diff --git a/packages/phocadownload/media/com_phocadownload/images/administrator/btn.png b/packages/phocadownload/media/com_phocadownload/images/administrator/btn.png new file mode 100644 index 0000000000000000000000000000000000000000..222cdc9131383dbb710de07fbb1833879ad9bebf GIT binary patch literal 135 zcmeAS@N?(olHy`uVBq!ia0vp^j6iI}!3HGf{@&OHq$EpRBT9nv(@M${i&7aJQ}UBi z6+Ckj(^G>|6H_V+Po~-c6={09IEGZ*O8WQz|9)m+X6D2776%(nxhnsAD5^a9YrmG; h!*Z2f?2Jr23}w1TDGooh7XURec)I$ztaD0e0s!~ADr5iv literal 0 HcmV?d00001 diff --git a/packages/phocadownload/media/com_phocadownload/images/administrator/icon-12-approve.png b/packages/phocadownload/media/com_phocadownload/images/administrator/icon-12-approve.png new file mode 100644 index 0000000000000000000000000000000000000000..c6f9bb87013c5bcfac67367b6270bd7847f2f06c GIT binary patch literal 702 zcmV;v0zv(WP)7IZ~ebVG7wVRUJ4ZXi@?ZDjy4F)uJNFEKJZsoO#T00I_C zL_t(2ktNZ~OB8Vc!13>I<~O^xySlrkCZ?`s842!*{cAFHnWa%XmCejWP!3m>7BLX4z!l4dt~(Ou10 z*V)qJlhal>;`c}9ecrXP=IFz@Mrr{NN-4w}LYT`R$jI&0>V?%3J|kT`nvD-#lT*?Y zyjfhjb+BjGP+kK#veI5$WPYu|l*rWukDWqWOHhL~EPrf8EKz za6d&}D9{B`dhv?DIiZxIsY~BuNNv=zR6sd8C4~`YmcIiofi(uYA7IZ~ebVG7wVRUJ4ZXi@?ZDjy4F)uJNFEKJZsoO#T00H$$ zL_t(2kp;m)NEA^3fZ_kWnRRzotTl0eBQS0aKu6bO;!DJrUS5!KO?5p;@zI%F3k zx&#G9hv*VWNq8uPs6&OInYfjdE$ZqjIlDVE@6DUn_X%q)0K;F4!dc7g^Ucy|On3w- zX>wcVGT!!UX|H+w&VhF^fUwqbX}m?oHG4ryI|8EJ0$7U>V5KyfblcrRe*f*8ePeYO zAY4;tgcOexE73-gV8BAC0dQJ9a~(CkP9OKg*+-(?5zeGV6zh@3m5_B{wFbL#9h~UB z$ou&hEY|<5b`}oyyRl+0v2jn@z%~c`2CT%eJJ-YTu?IN$qkR1PgP>B%msh`^bZumd ziY8I=&T)EgKY2UL)hUsixX;W}&4+v;q~|-YH)VGTW0?Il%}nVFU8#Vi@|ME#eWZYn@D=%Zd1@e0 z&*YO4wUVoT7)mu}F~K~GpD*LD&EYv&Qbs^y9i_MMi5p8-w$=)QmzB#h)Q8!uo)`5^ z$BiqfmQI9DK^TxUI|wDQnvhK5yF}4w5`-C)73dVk?0_i7CK0F*oRqdkm(f}ynyM~g zSSE_PQL#YzAQb5A0)F)=!M})&B;ecR1o@q1iv7`lOquvpCeH-I00000NkvXXu0mjf DNv$DH literal 0 HcmV?d00001 diff --git a/packages/phocadownload/media/com_phocadownload/images/administrator/icon-12-back.png b/packages/phocadownload/media/com_phocadownload/images/administrator/icon-12-back.png new file mode 100644 index 0000000000000000000000000000000000000000..f5cf66506e84b999c297e70c0e002f7321d27c44 GIT binary patch literal 350 zcmeAS@N?(olHy`uVBq!ia0vp^JRr=$1|-8uW1a&kmSQK*5Dp-y;YjHK@;M7UB8wRq zxITa|qthCb89+g?64!_l=c3falFa-(g^a>QWe}Xi&D$;i?WLqoP$l+HeFr-RJYC3#W6%j_h)Oqo7qicP=w zJWk(@_S)L7T>}FHnPa3PCWw45E+`NII?BMn(C}f<`2$LtnwsYi9N5q}fByZ3*|Vi@ zZu@`3#NgD)lePi^0u$0xQ;%k9871W9=hs(1KPP+l{{DJy!NrXq|NsAQ^ZfjL^Oft@ z>(_sKGn3ut(V3aXeHNvE|No!=6eugj%F6mSEiG++Z*T9$UGlTtIwLoysouDG^RAi~ kbBOTyoyE^(3QjUJ?A~B@e3@%jDbNQDp00i_>zopr0H>ma$p8QV literal 0 HcmV?d00001 diff --git a/packages/phocadownload/media/com_phocadownload/images/administrator/icon-12-disapprove.png b/packages/phocadownload/media/com_phocadownload/images/administrator/icon-12-disapprove.png new file mode 100644 index 0000000000000000000000000000000000000000..b1d951c55cd44a39e1c4c9b0a4596dbdbe385914 GIT binary patch literal 682 zcmV;b0#*HqP)7IZ~ebVG7wVRUJ4ZXi@?ZDjy4F)uJNFEKJZsoO#T00II@ zL_t(2kv+jnNK|1MfZ_N5&zUn9$HBWaBAS)qAeQCA!bJ%YQCOiwL6x}vQ^Up zM|%+Q$i+7)p&D|2sN*JP7}#iGIp zS7Mw#gLn}->w`1^h3ZC12-r3n4Fa*9E~Bs&L$*8p;!cjqf4PkOxX~+%?MhZoRLQrV z+VARj8-aKv^43-ypg!N^)|X^p|OLSp?g&1 z;aT5Ya!-i}N+}Ca{q>>7&I7IZ~ebVG7wVRUJ4ZXi@?ZDjy4F)uJNFEKJZsoO#T00G5G zL_t(2k#&(zNRx3K#y{WpotsX#niDrHgU|}9i=7kf6m$uapxfvYg;d7^ExHLoP*4z* zbl61_qC-%S#;`)NsO(luL5S8iw!L%P+y1@3ZezSoT#fRrT!Cm5tnN`F;A* z`J0c9aj}>uCoL%k5VwT51t>Pb(M?g+Z6E5NLX&~5>JhQ6kLGpkC6&x$V)5f@>R2`B zv-qvEqN;eS!vVXLnWk-DQ-1`hXI*+pe4pF-qCe&&nl`<`kpGGQdLxahVv^QjGvDQT zE9X@6tEww!ROc;6lkEHF2LLUbE(*qyMg;oy!>=7s&>&k3(GeejQQud)(!M8a$tkjH zka-8L-X_ROC-7G~ccVMn?X~Xs)l9a8hqb`KmH15F?F4=UZ8YweNfgTA00000NkvXX Hu0mjf;@K1y literal 0 HcmV?d00001 diff --git a/packages/phocadownload/media/com_phocadownload/images/administrator/icon-12-reset.png b/packages/phocadownload/media/com_phocadownload/images/administrator/icon-12-reset.png new file mode 100644 index 0000000000000000000000000000000000000000..04c2403785a877d1ffcdec87c05020a84941e857 GIT binary patch literal 640 zcmV-`0)PF9P)s9N3W^5v40k zARd#W2p?Ak!v>UF`Ptvh>e^1#^y3|%W)3d6S?YBe&6pXBjS zo{!;iF5_!&{>k0Pmxljd5=0Xl)GZ6qY#5q`o!{tQH>y%6q2iK?<=o8$L>vwstB@c! z7o)TP0PA;b$8fq?{Pu}oK^?o&ZB0Paq(y{4z{!jL3v}%7X3wnwUWG?^yE#t2y^3BF z4M2Yg-X4deU22M8Tb-u`lbP^!^m3WS?gY^*Wo%NTRryzu#iwURM}vdW=zKbxjTB3{ z(oDy;dd27STgg;aH`7(uc*R3btGX8KA7i~SKWD;WT`5JwyIt4;y9O;GI_*j+X=Hsv aecB%!=)_L@UBXlV0000!-CxaX51AMU@@TN*5jQS#?QyPexY?>|xmeS7 zlZxe=$TO#zgSvSk9aq-?3nW> zXYJb>XQgDJ;HwAIK3G*)?`C&9vNUB`wnL6!!N>4PS9wpJ@SEJY%lS~ZwRyOerFs|h zv!KFhcVf2P&`I8L*|9-gbBe61gIbP0 Hl+XkKKNhGj literal 0 HcmV?d00001 diff --git a/packages/phocadownload/media/com_phocadownload/images/administrator/icon-16-edb-categories.png b/packages/phocadownload/media/com_phocadownload/images/administrator/icon-16-edb-categories.png new file mode 100644 index 0000000000000000000000000000000000000000..ccd2a46101c74744ebc0ca5564ac75aeeb6be6d7 GIT binary patch literal 637 zcmV-@0)qXCP)lOq7)&x2z98UQ)fs21Si44LGUjSoE+@# zbPIJ_$vH=6| z_5Ho&Y;w4yAO?sX${(oDbN4^2{0kr}j~7d~E8UNUTzJ*RGBS#zYqO2D9~Wr}f?J%u} zMr`WP9}A>=4TAL^(MZ+b`9R8=#dmAhADFsd*c@b(pHxSHQBX)K=$xqA0SeLyIXiFG zyK~j0+$T>d3X`2i*))3LJR}p?ttM)B9}$q)5f16s{lXXZV(U?D5bACeLO5}I*#v35 zO~!sFdBGt!%jil8sgyX#&$8)Vsv5U?t-tX^cT$HlJl?@xKrbJnG(ZD9uw$PW6z!|V z!&>0E0r0|^_8EIZ2VsoYm;vLEF~A9k z75u(#!FUtBDA|vg27o2=%b&6;piQpx2hfO$FExP(u^JbdoSJZKog6|-iYox}-+$w8 XXs61nRipE_00000NkvXXu0mjf*+3Mu literal 0 HcmV?d00001 diff --git a/packages/phocadownload/media/com_phocadownload/images/administrator/icon-16-edb-category.png b/packages/phocadownload/media/com_phocadownload/images/administrator/icon-16-edb-category.png new file mode 100644 index 0000000000000000000000000000000000000000..c6e105568137022d415c876ac53c2a1cfc1ef5ce GIT binary patch literal 557 zcmV+|0@D47P)Cz5+H)ryqTDW!*PY zM1S^PpxkYf?RUusuFmp-s4&Z~_wGJ2t)zCCR#Z|_LxBOv5oMi`z5}43JR#Q?&3?Sl zSgC%nN>Lm4K?TTy>9vyDC$;@`tC>0-=MLNjI?a?lv^N_nyuH&)o$g$O>>Q*{cX!*5 zn+BklnUjiUL|mgw0jbxW)2qe!0vfP>B8J~T(dMOI&iDczuuP_Z1={)a vjwTbqD7IZ~ebVG7wVRUJ4ZXi@?ZDjy4FfTJOFEBam3nhvG00O;9 zL_t(Ija`$yi=0&y#((#|cfQ`)ot=+03z{|Kf(h|sgE6MDQ3S0L6!Z@eOkpKhh=^SZ zi!?$ILfk?@>})KAMI;Co0c{dB!Kg8e`S7W8@+IwdpN(td7kGw zGh^>8oj-eOt`)xkX#V0RHRr$#%B2Eo&fn~8e)smfXTJ#mAAj_I`^cf%d(RxMy-^I& z%s$fPh%v|ch$P8uHkK$yjw*u+2yZWD-?qf;feqO zz|x-1KY5z+OdD0fIfts^y+=dwS(cgi5qG;?cJ6mkRiY>` z8YRSW3_xwBj;NxdIKadn1f<|18m$8qN)-wrOr{^0txptDHB>Vk5jvJR02E7Q)^B`I z9ABa2J$+zg4l~F0?->R-3{CE$>To9i1qAO+@BGHk>m}B-K!b#*N(mMMqp>C4fzu*l z1}3QbeL#07k)IBpM%#HfeH>m)h1w851)P{dh9qy z8#64NSP^`(kDR?%TU<^C~DpV_^&>E>+}BR z+K<<_jX!s%xH|U=tJ*~U6!Z5wG?NWd&7-U$fMI|c$;5>-?(096yU(AvF?gcT8>EGP z)n}~yI$GRXhEO2W{7Z;JrhaXh`la>zm5cj180~)g+PyD+xS*#NcAN9Zddb$csnsv9 vZ#;aEo||^gYz#2>%f{@bix~00000NkvXXu0mjfB3Xw2 literal 0 HcmV?d00001 diff --git a/packages/phocadownload/media/com_phocadownload/images/administrator/icon-16-edb-play.png b/packages/phocadownload/media/com_phocadownload/images/administrator/icon-16-edb-play.png new file mode 100644 index 0000000000000000000000000000000000000000..861a4e90059dc4884bae7ab6802e3eb802647343 GIT binary patch literal 907 zcmV;619bd}P)2k&wy9aA`zU^m zjt$Y|PG+2_py&`Uycy!fpokwAO1%@=uKYkNQxKWL#9as#zqfVnqNOwr$+|jgpdXoA z(=;FFG$+eBuU8G)vH#T{9-bf1!}I)wQVIYe1W5fY2A^7BRo$Q!XwaBQV=w%ulseCC z6!?!9D1Qhgt^JSOm)@P~*){W1W#F-go_oUcymQOT%is3)_I`g`fKo~cAyoEY@`ZT9 zO6bipL7|9u$GfDIL$O%w4@bes?{=;T7{d< z2AZZJgupNi48zDI`;r%MiQWR(f8fCn)r!|BHQp?4*)|M_^zVn z)KX`rPM
        D${Yd7HV4(f)53O z08Pr9vp^=38GHKp;eKmx{S6~o;o6^zSTc+j(5p9A>(iI!3J*lD>ydhaQ=DfUKy0LO zLtBoCBLhQSpN3~?_FD6SUhq3#FE$}yQ!$KT2gLlTAw-Q51&XJDJIcSTjO(qlpVEwd$gaYN=*~ zMkKhfk?guDRO%*>l7$wUU(l}l7qSbk+!x$f(NRI%3^pP}#1Durl62xs=5}&iI2|N* zD#Zhbd$=DD=bZOkMnrgs2@iS=Ky2M$jP>Mlxp*iP@)rsPRns)>p9CUuJ(Wt$s;XM7 zR;%S&?bn&6?H?>IE@f`tX>~V1>xN<5Fpo;5GPMNq2WGJl&p*L zxw)~qK0KFvV|oEt>mV`4f-yyT*(uAuy}jL%7z}@njgP&aiBAl?efObqhv3R_Q_dp* zG5|jS2|xgV@5$2<_5J+(K2=UcPZ^zZx&S~$0000)QIG?8EI+ha|VA7!f7oarYL*hjg3^MXvqr6m@ f%Qyg#|Nf14EswzWMt3HH00000NkvXXu0mjfMl<8= literal 0 HcmV?d00001 diff --git a/packages/phocadownload/media/com_phocadownload/images/administrator/icon-16-edb-sections.png b/packages/phocadownload/media/com_phocadownload/images/administrator/icon-16-edb-sections.png new file mode 100644 index 0000000000000000000000000000000000000000..a0fcb9cc3078ab4598fc51e253bdd9fe0cb9f886 GIT binary patch literal 642 zcmV-|0)737P)^HGsU+V( zQX8-qZ3I&UV#KUO+-x@4&AV^k-Fxp?Br&TIEK+!2s$tH|nVBQ1%0*xGNXeFlGMF+=%gSF5+oq= z%3j?QMqv25p@u<+AT^Y1-4vHvy)Co2`P$*C!{{moLtRBEJn5TLCrkvyAFohrO4hWf)6V1d)dLG)oIi+B&k>+-w4vB- zIDL5$aAm}VssksVnDzQDhA?oZGqj77jSe6gm`Yji7s0saWj~52804J0&buuLV~JG& c`R{K03H^8QuA|qDw*UYD07*qoM6N<$g67&3?f?J) literal 0 HcmV?d00001 diff --git a/packages/phocadownload/media/com_phocadownload/images/administrator/icon-16-folder-small.png b/packages/phocadownload/media/com_phocadownload/images/administrator/icon-16-folder-small.png new file mode 100644 index 0000000000000000000000000000000000000000..7c613e054b15f36f1c63d3a9e68c29f95ccafbf2 GIT binary patch literal 395 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`EX7WqAsj$Z!;#Vf2?p zUk71ECym(^Ktah8*NBqf{Irtt#G+J&^73-M%)IR4fxrAZ4@_Z>LpB(P=EDgGHs@(H<#3lpZ>Z`kgozhr}u z%ND^SH)bT1ai5(%GhLBQWyc2T{QCEEs*fL)cv-qlud%l7b=JzvYWCyXgSnn09r_m{_v@Z)oh|J@zx(K@^6+>g^d@v4;gkbWsEoXE%32*i1tcpTNXd5CcIl)ECgqz|2rE6EW}s7R?kl za1q`0GCkMruC6-2LANtwVlsgzsp4?{@7$`KBv!G66>Vie3h?3OmEEkjwdLG0PgLVi z`!N((f$A@n17Ldj#`};0I3@iHJ5M{#IZz|UIYRm4(!uV7eYIYIwQf&}_2J~}>pQ^n z6o8--^T(=hkBNQ_k{-_GWE;FMW7!p}f{NG3nHZ{D5<3d8&tLh%a4AqqnjMkr3m&fkMdECD3N5}Unig5wy40;>lo4j~k+e}v)` zR6)J8Mk*u=SpB`p6o)7j?S0T@9?bz#m@l>gc*zk__|*!FMcHwP!gwLJvS~9c0px8E zW!|L0y&Ro1i2 zTFI$+a%MUc{nvNdN=v)MMsadTJvOL_r1Qw+HpZSz4y}AaLG#(GLG$( z&I0b5fb5n%x1xFHBt%f4KUYc%7M>k0g4?0F3y>X5O-6q@XVCC}83l=i-tRnIZ{O|E zlNn0ii2iWSFEw|D62WpMo*7DKx&R60Br`C6y(d?=><0l2bj9!kUwU$d3)%Son@47@ z34o|7S4R(x#s5|wZ636?A*d-TeuCv&2z$gx?ToqL>0ZTR!tm}V8g z3N#Jim9z1{zPA^j>csGpiTdCmFYny8b$bQ%EBIa=1guCD#A*YA27;M)ZJihf+NPj& zM}pD>$jYmAK=K_!og?PAl8aRQ+DVH#?SV0zj# z2s9$B0C2!9fL8$^0K_YUTLj~E0=)iifOu7lS{3}ZcTz8-wE~!W2SB`--32JS^6s-g zc&hm2d#|a!j;Nq^-Y!L*gs-Nh*;k?9hTbe6yx#Bp565TI+_?f3VgLXD07*qoM6N<$ Ef`rp1DgXcg literal 0 HcmV?d00001 diff --git a/packages/phocadownload/media/com_phocadownload/images/administrator/icon-16-pdl-menu-category.png b/packages/phocadownload/media/com_phocadownload/images/administrator/icon-16-pdl-menu-category.png new file mode 100644 index 0000000000000000000000000000000000000000..c6e105568137022d415c876ac53c2a1cfc1ef5ce GIT binary patch literal 557 zcmV+|0@D47P)Cz5+H)ryqTDW!*PY zM1S^PpxkYf?RUusuFmp-s4&Z~_wGJ2t)zCCR#Z|_LxBOv5oMi`z5}43JR#Q?&3?Sl zSgC%nN>Lm4K?TTy>9vyDC$;@`tC>0-=MLNjI?a?lv^N_nyuH&)o$g$O>>Q*{cX!*5 zn+BklnUjiUL|mgw0jbxW)2qe!0vfP>B8J~T(dMOI&iDczuuP_Z1={)a vjwTbqD7IZ~ebVG7wVRUJ4ZXi@?ZDjy4FfTJOFEBam3nhvG00K`* zL_t(Ijg6B{YZFlvhTk*y&U8}iq%CQvLDR9xqKhDnNE`gvlx`}x6of|5qKHd3F0xU? zWgrV(1w>kZfcOLI7c?%k(2Y_Mg&JaND775!yWNrZvh-?Rtr0Bl^J+{0B-v>Mo z5CZT#$Ufihrj-s%zf4zu>t2Nu0M`Lr7mNTi?cJj*bp3!nUgG@x{J5Ug?|)hUe4+mB zdDb}LVptmn0Br7T;8;t-E&axN@nrE$v(2heCV7E`Izlq#!mwrxCm{TPeE zJAiL~(570j_0Nb}=7{+p`R64f@sMqWH>FMdOilTIE5kXi2FFr273w_K@&Vl!F zM543DAPBIuv{WpY%PSlJipAn>P16uX(H_8qhntt?006tvE@VYU>{eA(6bgkq0PeC@ zt2H_^GgD0@5=kP0BuOA5D6#^kFffHdmSx1XI63FpTCMh$>$*OqX6GLEN2%R00f066C$A_PGIB0>~JVHk!k&tx*J-EOnh)m1RY4xKzP zF#%OoAxWLnaU6#QLBROh+S;F7F4xv|T|UZzWm#|>r}G0lPJX$ryFo$-RIAnTbUHmO pj#z?W7zo2Kev7IZ~ebVG7wVRUJ4ZXi@?ZDjy4FfTJOFEBam3nhvG00O;9 zL_t(Ija`$yi=0&y#((#|cfQ`)ot=+03z{|Kf(h|sgE6MDQ3S0L6!Z@eOkpKhh=^SZ zi!?$ILfk?@>})KAMI;Co0c{dB!Kg8e`S7W8@+IwdpN(td7kGw zGh^>8oj-eOt`)xkX#V0RHRr$#%B2Eo&fn~8e)smfXTJ#mAAj_I`^cf%d(RxMy-^I& z%s$fPh%v|ch$P8uHkK$yjw*u+2yZWD-?qf;feqO zz|x-1KY5z+OdD0fIfts^y+=dwS(cgi5qG;?cJ6mkRiY>` z8YRSW3_xwBj;NxdIKadn1f<|18m$8qN)-wrOr{^0txptDHB>Vk5jvJR02E7Q)^B`I z9ABa2J$+zg4l~F0?->R-3{CE$>To9i1qAO+@BGHk>m}B-K!b#*N(mMMqp>C4fzu*l z1}3QbeL#07k)IBpM%#HfeH>m)h1w851)P{dh9qy z8#64NSP^`(kDR?%TU<^C~DpV_^&>E>+}BR z+K<<_jX!s%xH|U=tJ*~U6!Z5wG?NWd&7-U$fMI|c$;5>-?(096yU(AvF?gcT8>EGP z)n}~yI$GRXhEO2W{7Z;JrhaXh`la>zm5cj180~)g+PyD+xS*#NcAN9Zddb$csnsv9 vZ#;aEo||^gYz#2>%f{@bix~00000NkvXXu0mjfB3Xw2 literal 0 HcmV?d00001 diff --git a/packages/phocadownload/media/com_phocadownload/images/administrator/icon-16-pdl-menu-info.png b/packages/phocadownload/media/com_phocadownload/images/administrator/icon-16-pdl-menu-info.png new file mode 100644 index 0000000000000000000000000000000000000000..7193ca419629cc67870fdd44a26fda248cf17574 GIT binary patch literal 777 zcmV+k1NQuhP))sDQ|*(0LHs7VWYB~DZef}otZ4|NO1c8v#V>#Ox^|Y z4iHvr4pk+U2oaRP)vC$0;`q{?3y=RI7`?Y}`A6#D6K?`Ul}6;bbv(nacEf|0D;N7zSlW-cn=qcdx#-; zt6K;Zje_*t$Y|PNwlX)7FouWACEk3lpy)RBEihoNeON4ub7dld2#7!(B*QiW5magQ ze?t)G%GW+Dmd(H`C1xv2e|#Z=jdf2HHBVfvM93fN&7FZ)+B{>=#=F_j*6QjEIH;|A zPW12Q(B1?_g!9AQ*m_eyoguWfde6qY*_IC$@)M<$UCA0}Q71HN%8|Yf-hQg`;_Xic z`#Mku>ICB~DZ7$g$WN61w(|J1t80?UM-uO-);)I97seQp2}7W@YEp~iOZk6TxfQ1C zQ<ZpOK=bDVzx!r44$q2v+#00000NkvXX Hu0mjfM~qp9 literal 0 HcmV?d00001 diff --git a/packages/phocadownload/media/com_phocadownload/images/administrator/icon-16-pdl-menu-layout.png b/packages/phocadownload/media/com_phocadownload/images/administrator/icon-16-pdl-menu-layout.png new file mode 100644 index 0000000000000000000000000000000000000000..95d14061614f4fb204ac53ef591e5f7d4ae912c2 GIT binary patch literal 512 zcmV+b0{{JqP)7IZ~ebVG7wVRUJ4ZXi@?ZDjy4FfTJOFEBam3nhvG00CG@ zL_t(IjiuAQN&`U@hT-r0WHu6`DI}HPZ)4#NSXpafrG>X3cojC@h)qB%dqEVdv?5rD zph855%R+XO>>LZpsJICUnP#Thhxg2|WM-IVDFAF=J|5<-yaDi-nkVU|_gA~?X9@t_ zxrL)_wzfrMer^OrN&6PSHvqE)24IqD%#tud-&?nz=RGn401%7?CVgPPM3iOOQ<|pDR;yLD0)dDqNs_yIy$+i8cm4vJgqz!-Isa4u0000PT*afVu zBB%(7f~nH@gQN*TuQ+pe>+am`n|aUTvg>UI9y9P}KJWXTd1F)+$H&JH+U@o;A`)C1 zs){sCvA4Ik-Rt!}U(Z8TadvjLW35$dt>k$wd7g{4R z54wUF5dkwB=bZ808)i1%d*hrlL}a?%Zg+EY^KffxYkgh-0e~?EA_5VC_a5GRs4Beo z5D_@%&}y}?v9Yn5B*~{FN!Du?PESvtdheB)m6_E!SIy2j9goMFWtkR5p`+1AkB*Km zc6WEzR27YR5D`IDXVQouA|N8faf~!gF`Z7Ks_1k&t8pCP2k^2{T1e9r%nV~p1u3EB z9#w^ipxJDq)oOVF{}nVEvtaI$1xv{L+Y&I)ZB8o{-;M=R$IDh*NdR3%mAjk<+A&yl8S6d#5i1Q)QIG?8EI+ha|VA7!f7oarYL*hjg3^MXvqr6m@ f%Qyg#|Nf14EswzWMt3HH00000NkvXXu0mjfMl<8= literal 0 HcmV?d00001 diff --git a/packages/phocadownload/media/com_phocadownload/images/administrator/icon-16-pdl-menu-settings.png b/packages/phocadownload/media/com_phocadownload/images/administrator/icon-16-pdl-menu-settings.png new file mode 100644 index 0000000000000000000000000000000000000000..3f1e2b3ffa7ea188869dd1140038e7f0f966c8e9 GIT binary patch literal 871 zcmV-t1DO1YP)7IZ~ebVG7wVRUJ4ZXi@?ZDjy4FfTJOFEBam3nhvG00O^B zL_t(Ijg3=5NEBfd{$_S|cAQbRnO$}Ti@6m+5{U-lQB1r@mqcp8LNYa3NEGrY>_Nil z5ZY3>AbN@*y@+h?!9xexK(RfzEHW2qXme-S(N$q*{@0=GP+EQPPVar+gYSJ0M1;T9 z+}zyQ@bK{U^ZFbS;XJIat}ZBwa?5qy;=#eei|+33)bBI=dE`_obz7F@UR6~inx+8D--~th0X=&+hI-UNwwzjsl zyu951%fx|!fx3~AkrhQz!YeB)F9!z)XHHH|STdP>(9_fNv|KKKo}Zt8($Uee8i_<2 zi3sI#+1T0HxhDVsW6U262CwS69%^fAo7vplBqHKEJ3HrfU58;90?+dejIoHSst`pH zrBbOj5D0W~L zV4CK;SS)sjo0^*H@9OHBQWQnAEQ?oF6`tq)aG2*|+cu)nD6=f9oJb^Yw6?Zh7DX{U zIXU^hR4Sba9LGsSRO`AfFG&()S%&NWxRxLYs8lMbR;xT?>_UBgJ&lcxeE@)XJPrWx zZES3OG7RH25q%4X!yVCR6g4$9kR%C=F_@-_bUNL?xVSj5u(0suj~qCTL#nDCHa0fK zg25mPg#s+g!v6j~c6WCX3Wd_)sSu5hg(})FHO_L-rk3<{F$47;yY2iiTV2eWJv%3002ovPDHLkV1oY+kShQH literal 0 HcmV?d00001 diff --git a/packages/phocadownload/media/com_phocadownload/images/administrator/icon-16-pdl-menu-stat.png b/packages/phocadownload/media/com_phocadownload/images/administrator/icon-16-pdl-menu-stat.png new file mode 100644 index 0000000000000000000000000000000000000000..fac766d2374a0df77091190d530c432cc84e19a1 GIT binary patch literal 605 zcmV-j0;2tiP)eg%Vq7Jdpl@ujh}@&lx_ z(N0iI7eT}q5K=^C4Kw5J+j-aOW|s|oNZ-MQ_J0$(1i8h`}*w->63Kp+$WBLNvojTWxJ zQ8t?-x%heE#rczKk5dlXT8nEZ#TXicV~%! zgSj6(0|r2#MoEC6D2kLj05u{(Dhn_G2oxhNL;|r*5cedY20~jAkoGwMnij$kP}`HB z`Cu{-hJX->rceSu|BxW;x`pO1Bm^O#MCj4fXo4EhF$vT{M_WJ%sKptC*^w!kwInmd z9l#=;A+Xg+>xIcFjO0b+tFPCmdY?A)z&v1?Qu%KA_P})PTQU=Hogl9PWH62LKsIP)5~(w$@{6l*YTmDEDgak5bIGn1J+_a-xQ@16U7E>bnM9(Xq|oWuK` zb7b!4`D-IXg$ch~DPt`=AtC_S|Lm0rL2S$)tCe{@GFX`C^$X*7t1WSq{7t3H@lY8c zV3Z}zn!vVDW-JHx^w<##+RrJqP;JS_i+$p`3Iw{Wu(bLu_oG<^#likp7#n<@1Pd0n zQp20~2DArQmTT8}y0OIJv1yVFHWR@hh=5iCse#oN z^aDxlHx|lYfF9Vs9{`Wr!8P*UX;lAy!qzs&5zx*KfmlJiat}5-;L1+hAcVW;d5NBUuWGu#*IH$*w~%pn-{;N?P!R>adTiJ zw2^MQvxt42CEQLI0LBPI?OXhw?V*(TqzCq~TIuG{jZ37*PO~}tIhDaz;f<5%xTipV z{VU%6;XU$s$oKVw?qcte4=AN4(RV)KP;HSHj$Q!ck)>agdwH1QT*i8R3%wcEc%nGL ziPx^66wJ(ArIBc^yz@4G{x;8yeMGsg`0ieWR+<6N(ujW~$|;W9=g?6jpja&O=7;AA zx7y5=>P$^dapL(&U=o0!5iz-V7uR(OqZUfPh1b_h=442@T)s6rIy%0ic8{RdYO%b$ z{J7IZ~ebVG7wVRUJ4ZXi@?ZDjy4FfTJOFEBam3nhvG00JIK zL_t(Ijir-4Xj4%f#m{?b(rT1$LOOOSO1jla{3r^UgbWT+5W&HMil9O%2nq$Eizo%f z!AWq?AxolGlS~dGsn&d`ydm0rycZhV_g>>OU-!Lt9BfOhNjiAo4)=fW{|Enj&Xq{w ze>AY$1xb>md_I56=kpzqWf>&hR4Vl_91ed40Fdmt07#`$>4odMBuOCzg%GUOYDP2~ zJw&oM0DxRBmtS&ImSwF)B9X(fSnNov)oSUwp6UqzAgkr_B0E&AR+qQV4Z~QmEKBJM z0N_zo^$kht?>^D0u8|~d+h(Cqcv>tLpF562(=?a=0RR}#R5ebLKi+;|bM!3D(=#-6 zgFCgcv7wNJ-0|98P162v27cbO63uNKY&mu zv`5pl*MUIb7s!c=NI>q(rdDfdv3L%)yW@kIcmH}XOb@g$h*$|$gK{)!RIuN!qT%bUJ;lZ``{TlgZ>! s(=@;5a=FX>n*08Rxw*OV-I___H?Ur6Nx}i%VgLXD07*qoM6N<$f_P6iumAu6 literal 0 HcmV?d00001 diff --git a/packages/phocadownload/media/com_phocadownload/images/administrator/icon-16-pdl-menu-upload.png b/packages/phocadownload/media/com_phocadownload/images/administrator/icon-16-pdl-menu-upload.png new file mode 100644 index 0000000000000000000000000000000000000000..2d2f538d98e7b86d8490d8a25063d98432ea492f GIT binary patch literal 756 zcmV7IZ~ebVG7wVRUJ4ZXi@?ZDjy4FfTJOFEBam3nhvG00K-& zL_t(Ijir)3Xj4%X$N%@E=}n?9DM@2_1oLQ2b%@YFh>IXf9I`s-&`e^HZUu*8bX620 z)lK4J6cofoa96~LR0JtV3staUOpTH@ZC>9?UhcaNw)KOi9XxP`!}74`#n^S4XxZxH~>_@`%s8cTi|U1Oy9qvoT|N&*n=Xp6oi{ z@pyFVkk7i7j06G704Ts!nESDext6$c>Q43YpY`#0#HD!ZsA$`(#ySvb6=#r#+H_rZjOzOz50tFkx1MKhr=fb7Z9s4ka`E$(*YDf z8o*%4I2zJ*C}$mhzke7&dW)b`DjmpXvkM-N2ZZ&(tbfM(%ylrKKomjO21I%inmz)z z+kxXas8lMcd_Mn<13)U38rL)puImB-2BL8UVh^F*-%>N#f|3s4@jwWHWHNakzyzyS ztHZfmuITl81B4JzN;hB2sVn%C#^VW+p=%t5i|L$F+HN+RUDGssHUj|X9E1=!jsrpnT-TLSN}KDt&T6$9o1dQtW31=qOeO;% z1StLWdzNJ}$8i{6TwGj^$Ky4_F#2{PFijJdWkD&mN%GCM?K)9Pp;#=AMk0|RwSx$a mMgvmH&5(3Do$rN0;q6aL%=_L69XsU!00007IZ~ebVG7wVRUJ4ZXi@?ZDjy4FfTJOFEBam3nhvG00HJn zL_t(Ijir;#OO$aC$3L^r^Q`IW>Pjz0?V%S$wgS5pMW7KvARW3CEO|&40#QTROI}x19O@A&W9OhMwC+g zkLiC)q^EATuFuc*0jlHT*xbFzn^rxY)azh);CP>(|NIos=>i2t^EZ9((JPOhFJv16 zQdbAN*517M=v#KgaY5Hnj)llBito(*M^^3ctJ{vS`0VAlTeKr#L)3WsGH1^nW9icm z1wp&k8XEyJ+X9BJ_4nJR#ihYsdV1qfcID9F9uQc|Sr-}tZVaDkH)00-as{(c4Y~p$ zg-8&s)o%e5ilv`>L`x9VX2A6;x!PE03&3=qpvr*zrw3()}j0x`tbOZrOPXWEJV2DEg{PyH}t^fc4 literal 0 HcmV?d00001 diff --git a/packages/phocadownload/media/com_phocadownload/images/administrator/icon-16-pdl-menu-vote-file.png b/packages/phocadownload/media/com_phocadownload/images/administrator/icon-16-pdl-menu-vote-file.png new file mode 100644 index 0000000000000000000000000000000000000000..2840b083dc269c5e7a5bd9702d233aa3dc7f41bb GIT binary patch literal 719 zcmV;=0x7IZ~ebVG7wVRUJ4ZXi@?ZDjy4FfTJOFEBam3nhvG00JjT zL_t(Ijg?YeNK;`Le!g?gHqV-FZY-D7Pz<+4f_CKc)E8J#D<#$rQyyIu0$@d%pq_fVHs*;svUTzmji5GMQ&?um3RZu_bq2!WwGcDrB<_%6BccV784UNeFb>+{`@54HS`n8Sf| zuJwt3Wc8v^H=R+Eg(Nfz&^l`LudNQI1RhI%faofq)spBc+?M=6y}#)nh$sd@6)4n( z&9ZAA0NR?Q5u2dEj$*K32h$UiB1hG}t-NC~nF)ma(afknni)-I0->$EW09k3-}J BH(US! literal 0 HcmV?d00001 diff --git a/packages/phocadownload/media/com_phocadownload/images/administrator/icon-16-pdl-menu.png b/packages/phocadownload/media/com_phocadownload/images/administrator/icon-16-pdl-menu.png new file mode 100644 index 0000000000000000000000000000000000000000..9afbbc9a6f1e1c720995218ff6c89686ab6abb68 GIT binary patch literal 859 zcmV-h1ElZ&O(i#eXyJKKt3oj#rT*8&FuJ082@M2n}>d)ReG7qF&L`LP5n>K%$|D zDBu%NV1%?Qr2q;7C~G7e))t7wf8Wcy*YDmfOjg@$vC|yQjArKO%#3tic79u5Tfbz~ zXb6Eo09az+KmEcNe(-(JF~^(7FFhYWzcx&VlEeu{4Ut3`F+>^>M=?gtKk-N+RFu_Z zHMCY+m{L^IkNY2G=lhO?Jdi{QYLt4dPOV(SW)@ipaU4@QQlU|4AP9MpbF6esjfjvg zQhe&UbM6k!Mw7|GglFAn?2dN1vT}vX8<+8Twg=n1oxY`7u9CS7DGRD7lYBxE3NHR~ z5$7EntqpEpxJ{a+oM@fk=;~35P;mYHbFWkhXjt89w^v8WnSkB018QysUfzfD0-PBQ43;{$05uqAadHly?o_u&h-}XtO z1YwzzAgoo_nB_Ajc7iJ$z)}N^6g5gLF`x6#yvyEEG9^rGK)`y-ieF*#N=HOd z1Ojm!)8FsY8}=AyWA1L>rL*55F$q5whYD2 z5fb_@!?$@exVN@K~P!JcHVKiaXMIUz3C3Rom=a- lh)>4K|1eiL-yL*2e*+&JL7;c`Tv`AC002ovPDHLkV1i9Zaqj>C literal 0 HcmV?d00001 diff --git a/packages/phocadownload/media/com_phocadownload/images/administrator/icon-16-up.png b/packages/phocadownload/media/com_phocadownload/images/administrator/icon-16-up.png new file mode 100644 index 0000000000000000000000000000000000000000..e797bb8db8180b0bfe9807f6d1101c6e7c357761 GIT binary patch literal 576 zcmV-G0>Ax7IZ~ebVG7wVRUJ4ZXi@?ZDjy4FfTJOFEBam3nhvG00Edu zL_t(Ijiu91C~Q$22k`Ij%)Mip879n#{3*o7pGTU)j+GK+@zzMaW}{^Bie_Oo{$wF} z8!J0wVxJ>Gya`zlzXGIkpD zXt%#~o0^wC*>E?hW&{`|Rf=gyuzd;0Y0Q>RXy0Dxx;5i;GtjFs#U9UYf_4mzS5BnVFH1k&=> zC#5R5WfrBD=NDxcD>w(6ux+}$0I2SYr;B5V#MI=D<_0E-goe#rL5fTUqH8i8PoB`4 zp=5K$CRtD`{cO;>F;!AR@-nk;uFTpmbD0~MW-&1Z&GGb9R4c2}JGgHT z&z)O3cbt-hggV{6{aVbP0l+XkK`Ru?c literal 0 HcmV?d00001 diff --git a/packages/phocadownload/media/com_phocadownload/images/administrator/icon-16-upload.png b/packages/phocadownload/media/com_phocadownload/images/administrator/icon-16-upload.png new file mode 100644 index 0000000000000000000000000000000000000000..c39e98dfcdb3a49507f4802201121d09f9752187 GIT binary patch literal 887 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!63?wyl`GbKJbFq_W2nPqp?T7vk7#J8k1AIbU zKYsl9=FOYm&#%3F`SSPE%P(HMc>e6!nH*em&Y15{S8#iv)uwniB_50V(Tf27cnl)=y zuU@@s)vA>%SFTvGV)^pr%a$!$x^(IM`Sb5ju)f!CJ#*&FyM0!7`YfkUpMJa7;%2Y; z%^vd`J!V(Cj3-Z?e6`DD(xge3I`k$^oOrQaXTpRD{r&yt+BD9!X`OG=>g($}+p5{y z+k2)(?M#bGPfyROX2q_quH%gg?d|PH>m?4=%O0+mIZ`KfxK8Y7okVME>w!9%L$x9Y zYlIKhi0!MD*k3EPzeadpjo5)2;l0%YyQ>5?R*Tiw*YB+4+g8rAwTyFf8Rxn(?zLsY zm6eqnO4!#Gv#cuNDlRTwQNXYwk9lbxV_sffW@ctaMn+0XN^){?LPA1ZTwH8yY;<(= z|NsBb{o`5&jHBj~AirQBcYpzdQv1pUK<984ctjR6FmMZjFyp1Wb$@_@5+$w?CBgY= zCFO}lsSJ)O`AMk?Zka`?<@rU~#r~V+{eWsNdAc};NK8%6aAM}+NRwQ};9VJHxQQV+ zt))0c&&AyI0>zOpmYaCd2^uURTiEm!WKFAWC!60HFBsA%b;b-lp#xy%L`oCvOmZ{(zNfolSIkcZHdmH=8M+5=~bER?AIER zdE#wZfws2s@#fp#eEISsqw<|XTa>5r;t2xr1_5D@iW65%H#0OeG`Mi}Qc!q!px}m- zjFjoqrcGmDGBiv~OiVLw+i>jIu34*2T{^VphJv`av8&2`CkBQ>9)Dl$&+{#TzGLuo L^>bP0l+XkKNEGh? literal 0 HcmV?d00001 diff --git a/packages/phocadownload/media/com_phocadownload/images/administrator/icon-16-user-stat.png b/packages/phocadownload/media/com_phocadownload/images/administrator/icon-16-user-stat.png new file mode 100644 index 0000000000000000000000000000000000000000..aa8be3cc81eda19660bfe9baf28705f1be6a9d75 GIT binary patch literal 711 zcmV;&0yzDNP)7IZ~ebVG7wVRUJ4ZXi@?ZDjy4FfTJOFEBam3nhvG00JLL zL_t(IjiuAgOO#O*$MNsI&ogh4&`e3nV1?Qu1f!O=>P?askrB~0BB71Ywtqm{l+q?> z)2dxTErQ%=D?up2m?WdH)X=GzoN=7zxi6>1jFW;w)H$5ZU3|E|14oGn|5M?1j~7QD zw-tL%J@Pu#0NOjrewrS7e&hV-zXGOu@?nS0^}9p@0PP&&g1x}@!0WD|)4L*$A^5;s z8R^YOcW?DYVMGc*IS(;@#|Zm>x|{7K8T3Giqtvoms1UC0sn!AUuzR(&x+7pP6@%b` z07s0g=nC3LpaKYN!pwEgoalHq)~9@0E6@qUhmV&ZOoRXyi^1aojl+t?$BF?74!oMpwJmwXE5rbX z%BBbwgKhl4vhFplr4_E6%+WtE%#q`rP_x8~3*4`jL20m?c2JLCnn3I<83`D^eHJ1Q zrDX^Mv^atm30GPb=%-1nLp~0H(2p4a5;=&h(B4 zlW~%{V!%?_@?<&71v)uUPJxlF5uBK`BSuivaLixL9_>CjNwFO8@LLuof(kwPAmWf0wN1f9;!A~oX|ri08YQd7nzkej)pw&fK}@o^$+g@668Z>~3vh;z|BF_nvvq`Tw8iIp?`>eCcXLINJL7bde zgXSpOuE!Wq@vo^&e%3zrfouOu0b;fYh=GX$N(^IIi#A{^SWCCL@#pQgKUUG^N)OsB zZJr}D0n!UDzqjkd1KZpu4y|6jdUQVGI`8ZPPE71T^Bh`(iXo1{2r!2G^E+7T{|O;x zE||iAn_WQHqLr_2T(on?L+{@?GM@lvR(aZPz-Z7q^&Zd)l%gE3A|tv8#3BN*xPiP} zOwR2l@H?*)f-g9GEprgj#LZ6 zu)e$(heJ{-}qD{aTjymgBseKPSI!uU7D!^!bdy|6v3l`>u zwwf@mP_Dj>6KC>of%#*G#e2-=AoDmzb(eBD4p_ zaQepKqs^Qxg~+k~w?dQUrr5wg;;o7I1~3MrB^Rc?OxZ5yc6o-|~Fu$R8*p3$^@A_*WP+_-Lc^VYk~97R0n#Fe)~H$vG}QR_W`u^A*?|Z zB^xo;3ABN@214PuhNbyeSZ0S<;SM&)H{bmzU-|fv#`_=sew^=}`b?5unZ=@5aodKU z9Q^ce9&SWH9J}%i!55zb0ZJvru}U_e)~)dr5)hae#_R)(c@J_kI?O%JAvUjSB?rj+ z1&mIfYdR$BXPKD%+b3I7AmnbWfUuHOJ>9(fN#Av{vq(#z5HMMWT)>-|UUuD8V%L4G zdC#@}?x2!eX1ulVhmOy(=q6 z@b$IU;-k}Om>7&o1ehqvg6q+lw>)w09h`rtr-fwbVv+tAd$ERD(cBuRVCz2TrXwjx zGALbZ80_7Cnl*Q9YMIpkLN8Zujk0(9={66CE)?m1q22R(bESttaq=5RKvNyCnh`75 zq>VvX2a`%2dhLg80=~B82vcFHZSh~8FVa6SH#vaxB(BJn>+g+9Xbi&$P_e=he&f`g z8Yyz{Wc#A|Y@v<(;K|;3DT%X(6140Ns@w7PO1#HrxgYO1}YO00k{&kP?&26p6ZE&Q>{^Rq9 z9Y8uBL0+OFQ5kr$lArxXWY`mjfHde>p7JKKhQtLI`{}AjoHk zn8Z{v{qoD z_BdXmRA!QuOqBd7(F!uM^Lm$Da_sjnzHw;mRZ4(P5tDul)81HXZL>CvhBx>xmZiWyN8>2GzrunDzPNMx;zn~$MMmC-awHj&qDY*XLdM3a5J)otS$ cQ0X}T0fAEv-kMUcrvLx|07*qoM6N<$f|DzS*#H0l literal 0 HcmV?d00001 diff --git a/packages/phocadownload/media/com_phocadownload/images/administrator/icon-32-authorizeall.png b/packages/phocadownload/media/com_phocadownload/images/administrator/icon-32-authorizeall.png new file mode 100644 index 0000000000000000000000000000000000000000..62edcf81c131933ac8395f6e21987d56097eb338 GIT binary patch literal 1748 zcmV;_1}piAP)B#3qDUHI zOiKeoYTBkv(KML07}ofqM6Ds3sH7x_`k^LjQKOcopr~n!7O5eUl2TdL-NNuJ!9b0+8ae_qaW?kMj)ALJE$pmZP{xlu}8 z_2oYtdi3ts-R|#}P2YT+%pENise*!1$9 z>)tIL*_c)P+Ef5a$nEc2z}g-29vZOc{uG3u z35jXJ<4J7^CuX9Ej=2J*iFAQDE|U2&nW=KkHH!~zUeORSseo0#SBta`52J0YY)DdQ zrD{r8Nv{f?NJuekK~zRHEpubXUE6=WbWhi40pqq|q>{gg*w|;9IG91XJc!9syk*+v zjH6V!3`P^_BB$Tkx8~0Wf4Xpt$k7k?Kc&_gSGmC%h=XP-=`hAwMEJj~ln$X>1S0J3 z+q!*H0fCRdCjtQls#%J$7I9457JqCdKe%f@U%!1DiEcw2l+$6tAfdPCKZ|x8Xhfmj zh`#t+wbDs8R|LXPliKpMa}Kb4eiz^T{5Aj<08LRFKiT^wJf1AID1^iPyS~4Q?>sn0 zfH>|`0HQJ0A#S4OuL8fR0Ux=V)=t0Tmv?sY ztrgqGjsN@X0T^}OIp;A$m)ge(@WL_=C=o=a2VZe>1Ab!AvgX(z$NLP3&|Y4^Vwpwk z`vDNZim5m9dJ+0s0eP?RLft;mzKEy3`Zmw3?PGao7hYg6?BvytyvXi(=h=PjS^laX zqqpj~Y&@%v4spES7M;d2E$K*2;Hw~ zb}ngQ-50h|k%Y$vS1}mg3{F54ul71tAL`}HH@5Jv0h4=TZEm9I36^kKEuh^U!C!HR z)g$0CE-S#QHjdB!4TI6bx)&pWVIy>W`ezJAogfx$23ZBtl)Yz4>^W1;;m(2hJonCk zF${A(-hp?X(MQPW6m)xm^M$1h#S;UL^;S82$xI44b@2>1pO1^HMJRvH;h+OetY;37 z6ClC?6!gUlCk34B%MkICLN1&?n72MBwRdX2&QY-Ezy~-Hin{gWI01N`cLwmmPYM6RC}^Cpo_Fealpn6-7BfEPAMw@rDa*_@gbaP-8lSvor= z_A())z5EjGL;LGvSPxE^Q{6{VE)#@~z$fJ=ztR2V_z2{ibkod%e@^U$?dQ~6zhciz zYq@)FVLYU=kAk_t$NRRRtgDH4Xj|f@^5Z1Mgi58#hvIn~C)@=9FaA(oDGs0h#fMAd zy_j9uM{Il8d+c|V-}oBJ${0vT=?Qw1Wt?eQT|1TXD0#1Wx9Ji75p3d|UUTV>>6TsU z(H-^8sIL4jSiU}J8)&}m=<&H*ulLS_wS=a`lAaYfGy};kTxhwMi^-k&cCt42xDeyT zHU6!71=i)}1Z)b*Ko}U3=G~ZVr~mfno*pAWJ@LjYiZgBvT&2r9eSZUBXwp5DgSq&) z0H|7x$Yc;G&HyW5$>+R~Hx{6E21Eg*)t@WxJ?h!_?m^U7Q2Jg(5~?X=+0=lh)_h!o z#{5K(QU$76E*feP^3aq(AtY2g{`(_>cmsg~V{))Hc>%gcE)fBx^M!1!e3B5#)!HFq z$3ljNb4XJWO7*@|t2_nQlA_7q7e&G z0wRPt%r-jTNN$~L^aAIu0!XKX)aSwigb@VlB0;c?p@FAEtg$!=>&>VBI}!!^J^*Gs z1nHyi?B95K{~li0assHkvVm+t3^ZX!~msws185F$%DJt qzW&Wxel%lyi?3Csy~4~$wf+xzz>)e~%F&|$0000 literal 0 HcmV?d00001 diff --git a/packages/phocadownload/media/com_phocadownload/images/administrator/icon-32-disapprove.png b/packages/phocadownload/media/com_phocadownload/images/administrator/icon-32-disapprove.png new file mode 100644 index 0000000000000000000000000000000000000000..f62c7b39c0ae88eca198842b57b34c9a04ba0a1c GIT binary patch literal 1776 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 UPGcw`*Z=?k07*qoM6N<$g4`!H*8l(j literal 0 HcmV?d00001 diff --git a/packages/phocadownload/media/com_phocadownload/images/administrator/icon-48-files.png b/packages/phocadownload/media/com_phocadownload/images/administrator/icon-48-files.png new file mode 100644 index 0000000000000000000000000000000000000000..41469113b28e28129c2f8bea652a87056cbe027a GIT binary patch literal 3234 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 UPGcw`*Z=?k07*qoM6N<$g4`!H*8l(j literal 0 HcmV?d00001 diff --git a/packages/phocadownload/media/com_phocadownload/images/administrator/icon-48-info.png b/packages/phocadownload/media/com_phocadownload/images/administrator/icon-48-info.png new file mode 100644 index 0000000000000000000000000000000000000000..77ebfe26fad5760367b6d834e92b5e10f2bc060a GIT binary patch literal 2430 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 literal 0 HcmV?d00001 diff --git a/packages/phocadownload/media/com_phocadownload/images/administrator/icon-48-lics.png b/packages/phocadownload/media/com_phocadownload/images/administrator/icon-48-lics.png new file mode 100644 index 0000000000000000000000000000000000000000..49525552dc2475fd8c2b1e260339e199d671e7d6 GIT binary patch literal 3961 zcmWkx3p`WpA0K&HUb*ETxsSOo4GXbcM%u)}OHm|pf78O;4SAU;w<*_LLWw>pEB8<+ zm(gf3EcXy|O>&vb|7oAk**VYoob#OX{C?ltNwUFTIL0r@4}n0A;jrd*V2}K>L3zRd z74Drxu;U5B;OwE`7X|gW2gXP5V4Z>>kiSL$Y+PT)qW8eb6U6h5M6*CoH=-}$w!FQs zzb8Zsd0Gc~8hLi3~#h4h~*{vmh~L)`*BA*LP#cTaf>-$2h$Lg2qa@@D^_c&UtH z2t;rIXKrfmbN6H3wOi86@XnYZR>4^Ah|74^#k^@s6a4(ZGtDeSkKnhmwTss!v0e}L z6ixce-+g}??K@C6r^MwarJAgJY)`B>Vd|n?aqL*R1WEN)x%Q2V$*Q&`z4t>J-ua$> zV`!MILn`)eMB(ylMSdOO{dU%HzIW&IVbfkKK`p@z3qReu_w)Ep)WLxx;OOy~AMaTF%*t%Vo{Y&95C12a}1$drvm! z@(Bm5I;W*r?!x($GP?>c7iR0&iB^nXjUMa`B@V(rnvZo%i-yO&)Q1U z>NLm5`}5-u0n!5PlT+=9^;NWAzfgmIkL00{HFVm@h!Y$){V7E%=UI}c6FO`ymQjA` zI2lHEvw1P-qnrPhuc{YJN@x~7995qp{e=PI$giagy@&8>4Kra#m-Ny&ve2w zarh#m6m}yxn46n}wx`QOeQK^kVO_Iwe8c{j%5+Rg~m0qun2hpNov?1%{zm<;?AtOA=%O zA)z;K-^RO1JV;G-m*6dm`gt_hiu~b&sji;hNeKxPsOihgrOujfs8md~W7(jet!B2G z7(e7kW2!JWeWRYZKvBYd(Qv(%gcO)zi??onbk)u8ThkZ8#AEJl8$sjxxAwOUI|BsK zQs)?vr{kf7i58ivmoF1uUe@?FI?Au7tJ{_+BuCcJ(3p}Uyc?(wSsuL;} zC9LHy3&ht5HbgsPgKM}p#Z7{5&Nq*DiDNFz(?xyo%y+vbt+H}GsIs!e_v(XKI1WpR zpASbM5ROzt(ePtIRbeuWieTK*4PR~E`VrF9+t>FI|Bgx(H4J!pxqXWSac0i;=IW?~ zxU*^-A~w~NON!YBR77X?e7JK<)Cf1etOLf=hBSwMNcda4AC-a>s9>_;qDMhj*3d!@ z4!QaHM}8NyTz_?(hl@laJvIy#WS|Cu3o<4PIW4*X;KywkO7?MML&3k#&c zfBAX@O1Fm(O7g4UnOzP?1oOJ4=6r?yG=O3C@oY;aGMOxR8{;5UEDQ?}RT5O|Uk*7b zC+F?%4iK@iu~FS_4n4Q^EeJ~y%kR(C@dlu}T_?o~mLOv(<`QJE+Ovg1HWl`Q{^nVp zlSx(?v?zm8$E_J%ktz%gj>R4)VKCVbuB87Of-L<;KK7DZN=#2`wMu<#eEM zbU1WP)wsS&%9U<>7-iuw_=iBvbraDXJvX|q^um#5m4o2#@Su2Mzz%;_SYc?HsBPRY zv=Dt`ja0O-;LCoReSJ4vm`Co2UYf(?rBkND>Gb)L(NXuvNY3zlgqiM=qOP%V%wo4n z(c?M&zalQV+KSmbC_&@Gs_zN%n8pfoJ2=d&DyT3~De}gbQfU;YguPnKE(+0Jb3V6?Z-gr@Iur?xg$c9hihwf z;sOIDn#2S69oX<-mE)N8aeQ2MIV3;ID9xXR%D1*+fHDL&NasBZ*qF2axq}|Not>0) zbZBTuLPln`qP)<6GA4_g15;cw+JSFI$h0Hf4Xw%<0LXBh*!}a8DZDMKia62b5UF+~ zXt9;@f1XayD=pO@VQe1`SDmpgz5GH;SNB9|HWrSBiWHli@p&Ws+Yd%93+=vZn>RVbuB$uT3d5sJYPXgLm;qidpcU;7Al$_k$Cj&m|mQTStAJRPi zYOYFG*gKrl?vcUGq3JhCB$-%H*^rQs*Z%o;?{a|yAc#v#OAs6NN5d>u>By~VeZk5~ zJM~A7E-oqEW5dG|Y&IKI3}t=O+dGkH&^I)6f{J+4+$@tn;9W$rP=Dke5|XvN>_5b0 zs%6uB@2JL0 zpH7Qm)_Qg5(h&^^S|T;-;iNOuGcZu}ye%{i0_3jGxXk43QD*Q>b?JeLdzvpQB^kF^ zwKH+w?+4mj95jAuvM5{1Ru{Hb7vs0GvVw5dL!+aOyq*l?AZYbfk@9+grbRb8yh~L7 zCzA@tL1EMLCF{^r0N|3aO0{_5PF-j!LM=2Tq@KjlZE#LKIEY5m6$|j4HLra0>|Z!& z=UVN>byZ8HSoD&vzC4kD;hNae5>O1e+KznAWJAgrzVX5VcqdoaPAURTFSSv%dBp@o zh%$=N=21|BWMyaP=H-Ll6yLyzyfi)e<579 z9A8jkSJAn8+Ye~+s;Yn_jZ^KuwURB8N`}Doi5kYNiOs--BKT}pw0amA&fxWZ2I5eVJax?8*kLYMwr>q^Ia>AH?CNptHA5;r6 zx~w~LE6bwvuA9Wt%E}63*@`?UWbCmT+FClv_xy*C>W}9+aBQ)H&4Re*P)y6E<$ZC9 zu&GEDGsy2!%u~A$C~FWjL2ZDR#L3??>~E~nK_X4mA58dbi8aaP7_7w|s$sQQ6?U~gE zrcz!Qp-$FRa7-@g7}J6A1O)|YX;>>~YW3O{`M9~kG@XHGu{p%UFg}lyuCa;l72kg- zPq?4@-mL#ar=rQhjP{CF!_4pm-^xVmCEa|bTq}im6Xs^lRu{E*rZWw23uJ(DhN-O> zn%-XP@61dw6o2LmvTlX_;^AYbEL@?HwLFiDv$W{jb(;*4_;pvlG-b_|1sn?3#;H{O zdQB*5ccC1lTky68c)oVz_R<^r9hYpo3iIacX(D%|69XHpKtY6JwvT|61bnoohaW_9 zVv~!Pw>L;BDeKbz~V8;je8Zb|GBcT32ub2(Q1<}ojg6e85a$=${N)k)y`21Ng zbp~lr z(8e)MfR4*AJ_7%!Vt@LEhH?Wr5ikRC@9&>7HRUGV=@uHA?e*ql{uf}o3&cG4>UsiY zOmjYZ_a7s_8lRQ}gXqcr4=^rltOo6#_^Y7buUwVceD^Xb4PDQqQg|DjHE(M#FE0bB z1-1$FZE{i`6bTrv#f1wEF^5J^?UMXzdLC(9!Im@l^li*}6l>LRqU|J-^Ues}arblR z^Zi}s+mO(7v|R9=^t;*D-RBzSC1fQP_Ry~$=cEV<3To@<91l%qED*nGieQjhTBh2$ za40t*G8F*=MVE(m&NEycE9GMQ3|zpBn||{~SPpIC&}eftT0D}F*1x4iCU-3wOiFu|B_(Sjza|s2b zw1|v06;qQH|DoSK0dEb)yTtLF=Ld(`I0* zlMYJ=uQEjaP0Y()kC$zu{kL)0kyL7-{ttO=p+f)w literal 0 HcmV?d00001 diff --git a/packages/phocadownload/media/com_phocadownload/images/administrator/icon-48-logs.png b/packages/phocadownload/media/com_phocadownload/images/administrator/icon-48-logs.png new file mode 100644 index 0000000000000000000000000000000000000000..955a19f9751655e696ea7f148ac1b2033003c9a6 GIT binary patch literal 3762 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 Knlu`F-}*laxjLNy literal 0 HcmV?d00001 diff --git a/packages/phocadownload/media/com_phocadownload/images/administrator/icon-48-pd-multiple.png b/packages/phocadownload/media/com_phocadownload/images/administrator/icon-48-pd-multiple.png new file mode 100644 index 0000000000000000000000000000000000000000..8056d9e60cba5d18657f463466d1c76534b2b03f GIT binary patch literal 2710 zcmV;H3TgF;P)7IZ~ebVG7wVRUJ4ZXi@?ZDjy4FfTJOFEBam3nhvG0156% zL_t(&fz_I6Y+Th9fWP~eSv)fy+p#lvkL@%GOA?wuf*~LpLZJjfp(;|v(l%XGRj5cT z>IQ95DT*rSLWTHI6^SZDVi7cKRn;VdrliUOBtRMx2RC*S?_+!R_vXEKZ-30B!H&nf z67@(=8qK@!-t(P%&OPVe_r(48-`^IC#n!v7+X_hjKSVPOqqD!if2R?P#nx}ywCN$g z-yZ|i`POWjB5d34fA-mDFFhWSjAH~t-`BV(Wg%mzRRgb;vs=5YleQA&ZD zotJtDTFZvH?GiyC9R1(_V*sp7n$DDS-WSLEp^ewgFwhqMBBur$Uubcz6zT16DD;9w6sPdrSAz8kzK zcvA(v0LqYf?2=osI&-XOeV9yn7%>HeT?7~}6S|O9(t>9imSrpsbpM_Xxf@i)3{#*E zBEmlR6(U`Y#1?-a%O@u7!=_-|@g_Peh+SET0d4Z(8R^;1f$W=Ll+Q%-&xi&D*pt}8 z4gFVcT#}UF)$f`(jc79aCGQZr00SR%n|^=M@GguKCq4Y$`xdN8luE3 zSj^CcN_n$TkQ@1glbMe}3(hLnjS=OiJGqBgsu!!WzGN&|6kTXqL99TVNHGD1gk89+)KzY-Kr00x!7-*W1C9jOD-e$t z0eA|Mp$n-DUQ8~%8}vDD1>2vvlRlx^>G$3a|b9wTl}ca+1k0;WL9Pux<2qjt)G^imEgHpOwhGIWW1HC?yI7S@DvdM!<9_ z%jRJ5PvI*c!WW(c6kPW-eD6cJZZoDWsdnQuW)AV%qOZ|jaS)s^s(m}u-AzqC#kck6 zaQ8jQa898YXJU-DIS&@*4zncHNl0@hv}h@jXaw90dB4esR)s6f!v9L3G!w@*&<}5c zo-U|phD*N-`=5sXBQUrJ>DLG+yLhzuPt^K`3a(~4h`Q_G)E?+7XuCA^3|&X=qG{<$ zG))@|5YOtYP5+Ur#Rmw2GoAru2)qUp#hJa15Q>p(l+N@*F3KK&!2@vNT3GV{9D5V? z{uQEdT&v*{?M=Sq-vL?+th^JnGRUW(=5kp7Ge{gGv~Me%_y@VR&!g-5SO6(Ka)}Ii zCpYVIU!65;3QgsB%d4ZMVwhmq0&5sLUWarKRDz@Vczv`HAxAK>c?hnA)xRt}p3gw@ z23T}G^zMhfThZ(UQi2d-oWpAZE9D?ZGYDh8c3c8MhJD!qi;7WS|t-T_;00UeIz zD|w~Ao<2K{5PpU(SU~lsZ@|%J@KwP*yJ7!R@Xl{ROQAIID%$WFg~Q%40J@=LjikwR zr7--Nc>*|%G01WJJlR!2eYlRG8DK+x$Io;PmEsj7_9*t(iy@f5oM?4&VQ384@|(dR@7`W$Y#vWJxy^byP} z5_XV%9hGeR&kD8=MA;BL2v!3AatHLi4?Y<3f^@BVf>llRIGHp`sj&dzppSbVe1c@E zaC7dbR%1m7f$i#i`q5ilsqQ1J4})Fyb2rMsE1I}F3XMeAVsFW}%- z=uOZh4|8So1;j1S;aWeSf3y$H3{qaxz>=tWZc2$#qJTvA+bl~Rg76}!t_ObuI2owC z44fK>AEvT<8}az3v@ULg+Nw$WJf{FIAhJD}Dd3uCpz+4S4JQK|w-$cyd;tI7euI-5 z0NSSP^PB?cfHJFb^I-hz5qR%;XljQ`?uH!?L82E_Y)#rSjPEC6-e|r?sWdb-a&pO| zw)%=GEnC!CGYrG%%;j>uQp$7ov4^P%>ek*tPklSbPkbP-6Nqpv;pSDU>4F8gnKb#y zUy};kw)+jk=oIJca~q$}#2*Zk)ho2TG(=FdrOz2rRxXR{PW6`Y%;z@$1;u?(X>jp2 QDF6Tf07*qoM6N<$f;Qmr0RR91 literal 0 HcmV?d00001 diff --git a/packages/phocadownload/media/com_phocadownload/images/administrator/icon-48-phoca.png b/packages/phocadownload/media/com_phocadownload/images/administrator/icon-48-phoca.png new file mode 100644 index 0000000000000000000000000000000000000000..7a35e909d286984ef2e5f6958b67ecf2cfd3c4bd GIT binary patch literal 4373 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 HMd<$lQTi{f literal 0 HcmV?d00001 diff --git a/packages/phocadownload/media/com_phocadownload/images/administrator/icon-48-phocadownload.png b/packages/phocadownload/media/com_phocadownload/images/administrator/icon-48-phocadownload.png new file mode 100644 index 0000000000000000000000000000000000000000..440c05e9a7ae653603650fe04649af21ccd6ad2a GIT binary patch literal 2984 zcmV;Z3s>}sP)I@GYfCB zNV0IU&MxpK+hmz6i~y4afnbb`*ak)(+mlJmP!uJIY?`D*HoMvEN7b!+PZqbk`oZEu zm_gtivcamlRp;JwzVAHhHq{$%yrHYr>Qh?lMZocoA=)|j;PU0mt6{ZTefq~g`SDwG zGjm^xR3svD;*-J&<8sRQY0m>E%`XTFg;P!)G!O2)`R1Gd9%`)@=4R%;Vkhjy<-KJh z9ify0K+*fF)X4GpSpU4}_@ps~!vCH;Hhk>Fu{f~^5NWL!Lcql;PCwcGgttC^iPw*-uTFQf4ty1BZlW6f1Y!4E(KiJhej(+9K=LHbVO;9vPZo(a^Ba^ z*!{h0`Oh$FeUxN?EI`=5!HL6ILuRvMC;xj~8!@opnh}E&H);TY!(p7kI8!{C?ok1a zQw}W}CocEYNzjkbqo+p@|Gaqbp4AxRya9c51_tyHFwW!;gkeY!1|FGihBX!hw9*7Y zK)GC|R4SpB##uMI5asC*gaJ_)k=YEB7_Y;59Z?*49dQZkEMnzUw2U(&nJVmO5)r|; z0fmAfpt;jzXLW~?D=`z#FcnWxic2UI85z5Fm$q(Geyq%e%NK~F80&04Sr7!YYi-s) zT}LH~sc4GHc#=4ZQA*LINk=-kievuLJPV5p-n&i}BB)R~0!Jw{gn&|hfz9Hv3W~XPFC{LiYhuk{LVf&Evops(_ewUlKZ!&dhigPpP$ZUpI8qvaMcR%Cxe|nv7 z|MRz*nVz9is-U$7Aj>l9%{sTMxB25=|H$g@Dwm$TL^&>Foh_teYSWy$g+XkrL2Hf8 zER(a7yz;NFFj=0Yn{=^a!45LO^yD;OedeotW9b{bdhbEi6wsc@()p|qHWrqjxHm! z8Hb%?bRd|_&}=tpbz8jr+{=9To8RT2c0kv3^Q6+xj(rCY2XSsde?ghc@`tRmdHL>3 z6h;IpAkq<080C4o-l_BS{L{Sl^lLPeW=_Y2}zDe4AU9TfBYmZJGy70v+U3o+;0;G_yovlTixw5Eu?(O@WAbW31RC z*DI9@50i)7ZrtWKpZ$hg+qakqC-U()in$P8@ciygJknu`N3xZ+SZ}WLUh_TP+j@_3 zP|kHoC|sSoN=cP+XAZ|hAp(Vl6tuqmAavqLx(PQ|ZW07RKBfcBw4O%eQ(oq>BRcw? z?$h)StAC)Cw$MuF^Da&-GOK5ETK8*|v7<3?q5}9heM`YpyGzbIk)$XzSV3kr>%5_YZCpoXrlgS{dj8JGi3q7ic2v#iZPTNDO21YvP z@_0H90c!{2ZP#XHdnM0mB0?O;oD0tRtIUsYHk24Wa5a}pyGII*K^z2!vNJ`}r z^?P*|?k@22fBQLKzVc-{NvEewvsPWB9@I(FB+n{E(y#cL&9GQHrh{{Xg(;=bqCtj? zEodc1V?dDyCpQNE&&?M$UZ&=bzxU+nR5B~cD zHp`pbDc|Al#@+mlt4K#K%4Zs_{JZsJJV_XYzVTBEapGHQ3>jIzgJH2FNns=glpfm3 zQ0j=+;wWZiWrekSYY4*b!7jUYm&3;nS?#W}R$U_s1{-6;n^s5Gul!s}D_rK7o0!X+ zLI7tSEz`njpT!(Lqh*YCw*v#zKxsa~*yI|`=I$oHZT^;WrHq*|)J%=d?M>QAn>dU| zpHYLIyORvCiRIGVr9m}U3X>WR(gW}PA!j;VaS->n?@r1>2vo`y_Sj?n;kplW5h5K? z4$DXLeUXl_aitZK2v;v$&0jUO*0kGg>ZVR6*%8MM>pU5OW4zbjL5qTDY&~Q5pN4=| zSZkSf(=1(CqH6{Pu~x6K@AmyRkJiUBBPU&dgKGFwB%*w-?!P6S_Bj>>1wjd@EV8Z^j4y%ke-Cj_pWsI?{D}GQ%=6qc&(Sz+0G|74 zJLSWb580d9qrP1y)MM?)NeKKsL`0~RD!lOQ3s|xF;+0aA;u1IBxxxMTJ{z44oVbzN zP$VN+s1SkUynI#!`u7YW>BMo^J$_ literal 0 HcmV?d00001 diff --git a/packages/phocadownload/media/com_phocadownload/images/administrator/icon-48-rafile.png b/packages/phocadownload/media/com_phocadownload/images/administrator/icon-48-rafile.png new file mode 100644 index 0000000000000000000000000000000000000000..60aa0171f0be4e6e73c55dc2bc1cc8238580358a GIT binary patch literal 2592 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 MH;vJis5>$L2TL66egFUf literal 0 HcmV?d00001 diff --git a/packages/phocadownload/media/com_phocadownload/images/administrator/icon-48-stat.png b/packages/phocadownload/media/com_phocadownload/images/administrator/icon-48-stat.png new file mode 100644 index 0000000000000000000000000000000000000000..9e14ab06473ca7f0a0c8874a0c8bf3342a1831d8 GIT binary patch literal 1190 zcmV;X1X=ruP) zL_t(&f$ds7h+I_^{?2`GW_CB5%)&|}2_&1vXqPG`h!8~4R8}d3fK3FGE@ES0mBK=T zkRr{NDboaO#41Dt6%A;$Ag*kPM%}_q!v19b?l~6k-M8;eoSl2_yI~0AOfkc7&wbx_ z&v$;_n;{XwvutM40P0#AW0UhAf3m=7<2XcG0DMBq0DirG<+Ek+TR+mG5cuc#JD2`F zcIqQyKP-{}d;ePb>h{dcS!{22>RdYt0W+}s`>k0J`>p2$0MiR=j~`C~m^=ZnSn9)@ z05Je7)^qu;7Ks1=o4;#(B3L{E1L)H6nI<5}A{N1R2+)V1Kg~3jrHwvlY=>YF7OC^@ z2TPmu-q#tRNk-u4k2Lk&oASln7ES}8v7Q7d*Tv>QseuV8vXbYyBNEZ-qc^UxyM69tO4B$_|Co1`Gj%RRn}&=R}nRD5*CG0TluSDPI0K#6>_`Mj6<@UcVMSK_Dms zOgaJvAZrF+o_l5S(`y$_H+z`(@+N=@tFL{Jo1foU+I)gQh=eLRpooAOB)vb5EWYv6 ztGLR>(>DS3J;0;4Zs87q{0U?cARPfGIR`3E1l(SMNvx4j83@Cv*UxWg-H?O=B0vFU)Ddui;z>xK1A>4m zR3@N}!0r;#_krT#Ap{b{l~8B|RHe`XvB(I-lu%F(xGJRSesz*~l!T~gWXdX3PGVns z8U##bm zgCK1P<U`U5rFUN3GCv!}9xoaMH2e5HVO}e~Dt@Ua!qod`4({#Yh@tU^NdRrL?RI{- zyT0&Xg%%EDK1o}tm!#P8y*0c3aN|(__2zs#ot^e0Ab{EIuHCM^w9*M|G0pR(6B_?do2~67l1DJ|kaJU96umAu607*qoM6N<$ Ef>87VFaQ7m literal 0 HcmV?d00001 diff --git a/packages/phocadownload/media/com_phocadownload/images/administrator/icon-48-styles.png b/packages/phocadownload/media/com_phocadownload/images/administrator/icon-48-styles.png new file mode 100644 index 0000000000000000000000000000000000000000..26c5327e11f7f1970fd8c33de0a8d5f86b0a388a GIT binary patch literal 3085 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 M07*qoM6N<$f_+Ky&j0`b literal 0 HcmV?d00001 diff --git a/packages/phocadownload/media/com_phocadownload/images/administrator/icon-48-uploads.png b/packages/phocadownload/media/com_phocadownload/images/administrator/icon-48-uploads.png new file mode 100644 index 0000000000000000000000000000000000000000..f2dde80fffa5b433735535f5aec56602b18d2a9d GIT binary patch literal 2234 zcmV;r2u1gaP)7IZ~ebVG7wVRUJ4ZXi@?ZDjy4FfTJOFEBam3nhvG00Csezf@LDV*N2~Q_(6JX)B1S+L)$H>()x^)KSziF$$GhZGvu~1*dBXgv4><#P+-Q z?2p)Pe%m2&U|%Vc^L+j8`J8j^Irl!Bm>K`i62-hZg}eO}zUUNlj-ml<3h#dKSNOv3 z+VQ}fyTXreM3{;)56yH6Q5e?K*tGqAymjDn=&3Rw5M|HcSz7tyJ^1a59C3PQbiSDc zm=k`p_8A;Fa5taZK3@>(%z79w5p^%3QzdYo?tJ|f?AY^8WY_yMHRp^0Yz*&N{T2Sr z^9ymYsn#k-jTHhw02m;FtLaY=O@53HuDSGQdT8Iv`1!9nf@x1aZ2$_xvlowk>pp$r znFXS!BIK_{sZ|cJ8ZtgN&_Kfd6qoxu(CK=TXGQZ*cjJ{8ITGr=X#h3hKi2KT51w7B z-+OGnO<3S8fF*4}s|jY4(Cnf!-igkE1TN4We>z5w?|v)t-o~XwN5GKIn@9tIRagD01CsuA79>i zKfkkYf!SMDH)kGveg|+}K=Q+}jTTH=S-vXIt5X&?ZPWdZr_M+Db((cKq^AvDrTp*t4GAOjy_aeElY zztI<2)?cViM#0tt_&m;%gFgSK2wdrf#O0XgGz%l3dV+V5Yu1!h0V+=xNP&2w9~Z7% zSG}?#CP}0WF^42H`H-+H5jB8i1=}+$cGOt?l`m?;;=?N9J?ho$J7 z2h#;89{@v07fBg#UzOXQjw1B7AN>}<`a|4)t5>i71rhC^2x3BjHEY(~wRi8{XKQL|%3aq5jkDgQ zlt{tCppc(cAzf$+5jjrKtf;6kwQ|P{V`fMxZOgKr42Q#S19)vp0PEMU-#B;f+;V1y z5aXXbi3miQ_of8Exz7tBzhL0AAB1q@7XKRkf&0AN6hj01S`(pyzk6>M#7{c1q~MC5O8Z{HjY1}F7? z7Qiq}7?ecfW1#z87nuAbfB_8t7myeL44F3q0ALsfmM&fTNGKHgSu`5$m=s{kmM!(?+GpscK{^3b6}I|6|KT-Tj)XlF~z4AV5Rc=6&b&CSh6PoF;h4+8+2nwpk2Ha6Z< zS66qlZ7fJ0kEf=wv2hiEAppm5V49}ZT2HC^+zd%6hx(7>Xdsh9$z-w@z+gI^w)1u0 z*%b5G#;CQ1QVK-W17rZ0S!=DeQVL2<@LY2imDx(?US|v*@jo(WR|6QT$*$|>{%)qS zUXR6M={@JWFyZq?Cfz8a+Kdh{xj-p2B8A z*_^JetsT=eQ>hgEem}fkFO*V{Qetp$5b<~%wrzu%N9>_S04Sv}Fff3wuCAgsvvfKQ z$8n&w9^uVwio{|ucsw5Xd_E+TNyK8Y5l$Wx0bnR}sZ!bE!9O1eh7uu3f|R>(`4O0V2YZB}>MwdPD@%G@-SIX__FS zT!Wpc3PCAF>2w;lZNumD6?HdiSr$r4N{~vW@}37qFZ5x306+#{U|=ArwH8V#SeAwA z>gpnxJyO|Ro~om=i&!a@1Tp}pPMx~k+1dFA!!R}>^U&i~6%lb)SJ&UpojdnFFzh?B zMT-`dx3#t1W7~Ggt@;a=OsWr_IdkTNlP6Dp1Qg-760@!U0U4vAP|-&si~s-t07*qo IM6N<$f)+mZo&W#< literal 0 HcmV?d00001 diff --git a/packages/phocadownload/media/com_phocadownload/images/administrator/icon-48-user-stat.png b/packages/phocadownload/media/com_phocadownload/images/administrator/icon-48-user-stat.png new file mode 100644 index 0000000000000000000000000000000000000000..dd6cc156dc66456ab16d24ab3492bfb148da67fe GIT binary patch literal 2047 zcmV7IZ~ebVG7wVRUJ4ZXi@?ZDjy4FfTJOFEBam3nhvG00&n| zL_t(&f$f@2Y+P3r$A9O(_vXv?jAJ(+cGKpAB&AeMAR=udL=ZHzi_#6PT0jB`5D+0D z5G+`*VgVAWkPzx7n@X$@NVHIi@~I?cLDVRfqEK1Tq%kBmt)0Zlcs}0D`?!b2n;DOt z@%W8n6jkaOJ&io?-t*4?o^$@^-1{u5%6nPN-8SG(#oY)cU-|C$cUsrmk7^c3<5CO! z>le@eXiC$KUsW~)z`Oe&|Mrc&kA6pNI$P9%k^f$L^>m@|H1&GpPM*CX08A8b3A4k9 zO*h^;fR%gZd_M==eE?XEB_uTfu|TYG%He%wg8%?=>wAzn8z378AY!m|d`|;V5|3?w zECGK24rAY4w#k&I$(I};54eOu^S2igGI5}fdHuJ(uxiUK%6`4 zgJ2l|K|7!Hc4*rJgVLylEem(fMYjQ1mj|r$2OzCml8jLWViW!D3;TBe;Dv7-%><11 znY~Pp6{e4z;iaGa>O}Q60P6{%WjWBp1Qoym*Mf-y)VKs+_ZrdQ! zh=5o$^vJh=THyh^t`L$H02D9|jL)8A^QrHVnLVF`O>3pcF1&&ajUH$m{J58ocExqm za8f-q3Bk^~!LnM|zH7UZIo+p|#H~vd#;^RDv0pz;{PuZj3U#1vp{}i~e5=5zS3kP{ zFVn`e*(GXCb9KooG@90@B-XZRR6z|CEB|5m_s3~myM^X}CWt`TOr|()5?&IJt{Uz|n@boN_*9VYhPhei<# zbJqx)5vt(U1MYq49J3D`qn3^P*Ak(h2ijg-XA(!r19FwCMCX1<5Q8)!48Zr{@Z$$L z{;g-odvJB;1`9VU1VKbDtYL>J0CKR020jwQDgXe&<#6m%!JUkh& z^_fSRz80|Wf$bc7>>&>98^_TA!Y<3YAK^NDIG2HjK%UjZXzdUhybg5S8beSEd3bNg z*PeZnX3Zn(31|dy{q|Mu{#%u;o?xnA`|T^%3ZeCSphIu5;u3-N$(p#;UZhzL#TAQD zu*+EfwqgB4Xk9tbW+4TvOS$QRjld4J-6}^B5%lExj`Ry5=@ha7SxA<8A%nw}Tbm$` zTB_4)y4Z-oxdQ-ZSu;0y2uYmm5T|b3N2OvI84e*%sVB1htscN8>3>?$Hoi-3$Ir5C zKQKTWA+3|P2pkJnYrA=EdMjiar0NS?%jH`Er)&hS4BSd|0q9QRw4XQu(QYMTFiw#d z-#9|OEZ~GoH+o$XgN^v{l{yQn>3pg|FFk3FNW6@yBQ9?s&HFmvNC<&o<8mE&agjC~D)bp>gXW}dme((xgCL(5T zj`Q-H0Z;8+#LWSbEK#77@a36Hc}`X*`0R&@)P0`|3)eYaxyI#E1bL@-GOtz#WF0gr zDD|+A+w7d*y!X&s?A&u56%Ri&Qa4S>fpV!6DdMDsKEA8=f#*23kQyAs@|DTP;j)iGh-*cie^vlFE_Mr3uhssd6O$rj@IARh*{ z4uEAORq{YWUqTfjY|ZO=P8}yzzA@>UN=1`BUnb;j$J)7$s?M8w5prLAVsa#4hv~B{ znjGWE{R_4@R@UK0Ggw3*HzDAnH$b+avZ1U`(*_*it43Bf5G+R z5D-&s&dnZwWcu_EPuS%E01=r0CRZw29ShyBDF!{~6ngfTJ;!x>wydg`Iyc|{Ux~Xc d?*q8o@;~5NO?NVzML_@n002ovPDHLkV1lo#ywLyv literal 0 HcmV?d00001 diff --git a/packages/phocadownload/media/com_phocadownload/images/administrator/icon-48-users.png b/packages/phocadownload/media/com_phocadownload/images/administrator/icon-48-users.png new file mode 100644 index 0000000000000000000000000000000000000000..173f4af0f31e979b7aff15ee7f17544b993a2fcf GIT binary patch literal 2029 zcmV7IZ~ebVG7wVRUJ4ZXi@?ZDjy4FfTJOFEBam3nhvG00%`$ zL_t(&f$f@Ya8%V9$N%Tt-J8w6gzRRMKnOAH5YiGFh0qeLf`XBusF5lIMmn^DaV#BL z9fs)?I!?#d_5($x7^Tn-)hQMSwc1u|bimS3C@7MNG{rQ6A#c0cY_jif_uljL!x9bA z(A>=i!c6}&=hMCSJpbQ$dCto&BO+YS;@8^1cy-+a7$&OX@1BN*&YaE$0Dfy#w4of) ziHO58IR`ese9@l#>-O8o`_WRw2IfFZH~j#5z17|i~#%| z;7#=#?$tg%_I(O=-vTAVAx6B!86aB~Hl_Go!|bIy_cT1yIPSp60Km3Wuz7y5Y@5>Y z{$q#+Wnuu>C@)j$5i{GvMpyOEZ`l9l&g~Y&#}j{C08h5Tdj7GmKb^er-bPZCv8Mz9 zFgXiZWjF7b|Jspl-vg5AdPqA9eF*ULTWfw4X?t&DGNwQkfU1tM2p}0vAoA}MTh6Sh z-JGrmU>rU0Nd3dBd`Ax+)FNRy-DV&SFy`7r`8D6U_t{;)Jd#cwX@!2`wqK-3!^TTf1$6|D1gw z9#+5%0EUe~#sHxK;Sgxvl1h4f>jP}&G%LJ=QFQeN;Pwn+a3F+OEDj+ElEh)Lno&AE zm-~|PgNzluLDZvbLhA--*|&3k#M8Gx)c`hP`Xpk2N}xMe-%gtzUBQa%oIylUWM?SK za{ym);!-00lo=pE0=l}xw=cSL>6ZYsOejF-sedjE`GVOJ2cQ9h03`_|04ly=D(W_@ zz^WBbfiX0cm$ZT7|M%GH|p`D8=&p2qqa4N7R_3JcR5a-xd;F# zDRE*>c_E6OCI(6ZYJ7B~R}u&Eb0imI#WGRXnCF2m07JrADa!^_>v_L`3aw<&2UP0L!3xCJ;?%Xzf;-_4v^Z z003{Ejvx1h)i8Jl0l0uSsJag|MNdsUz^mStcDHgIL)j=3g$U<*ly}b_Yiply0HW7p zZ#5?lgd-ZjhbHqlibNO;s>-V;6E6}SS0@|*0DiV3_7A`YkT+hy_1fY zv;c@+3_SU~?+PS4Tq ze`KD&z+wiVxATpJ!63)pmc0IuYIr-+-QU>S*!s7|=EjS9su?rDl9DA;s~)WSrgN6F z&gQf&%(BXcP=sI`=tbRZFRWGo${0IT78vj|9B40uT2KIMHb*k1AUYWRXrN=@mG-0U z2M)b`s5K)1jIpdun>XDzt#aBAYz4Nj8cYU|AP^B4X9$G_Onx8knc;=2Pz8ts8vFc0 z%>YQL%yq6;#-F?M0jC3I6HC>_7#L>|sz78Qa?#u7-FtG+$$d?proOZRY8TeJDpprK z;cz*=C0k@hTFUqcK*SY7+!sZKX#mwzBPh<%03$v-d=Wqj(BU`WgxiX9iUZcXY{&+D zu089=cNFF~-0ohL|tr?K$1EwP9Do@5T)9P~Ahf zmMklI-dtdwDYTKdw4-YXL{Wick{~WYbBRHg8DuH-o}R?PC5~h$necqzd3^Vd-Ov6{ zfORX^%`LsB^c8cVdA1(&m)8og5r=mIrM-dW5=SzejC)RazWrRob1z*MYB<31+~u~) z?UjG9mReU5T?#nbP4m?h0nEUV=udQZ{iW+0FZ}6+vqO(AI}gm-Fsn|UDz8*DCG*?; z@hS;OQ=}Pr)p=WPVmEDUre+lw2C(MFHO}G<#SaUE0I8GBeM*co7z>Q|FIcx=AAo-V z!vO5J*l&gf^AvRww*HU=02vmO%XAk;0!U7&T9Y)cdrNS&#Q|nx)ob(Dnh$ypMhyT^ z!)jRBQ)T5U)XCfWLn44=a#`kDasi|OT=gyzBrb@M=z{>C6q)CXG?Wz;v`Z!_4h&19 z^=s?xAQXXP#HINp69LfR<;C2y=jlBnqrVeh3tjhrHTXZkwbp+Dr~mR0Zlykj00000 LNkvXXu0mjfI47P^ literal 0 HcmV?d00001 diff --git a/packages/phocadownload/media/com_phocadownload/images/administrator/icon-48-vote-file.png b/packages/phocadownload/media/com_phocadownload/images/administrator/icon-48-vote-file.png new file mode 100644 index 0000000000000000000000000000000000000000..60aa0171f0be4e6e73c55dc2bc1cc8238580358a GIT binary patch literal 2592 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 K%T>sjh5QGzLOufk literal 0 HcmV?d00001 diff --git a/packages/phocadownload/media/com_phocadownload/images/administrator/icon-box-pcm.png b/packages/phocadownload/media/com_phocadownload/images/administrator/icon-box-pcm.png new file mode 100644 index 0000000000000000000000000000000000000000..26f3e87c32c05939fb9e0a56276a31783584d326 GIT binary patch literal 10657 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ΞEH8gQ_1u`ty|6E2EQ^FT$lEg{^nzPP)LKd>eBM^VynwX zzBPX?z)$DrE{3&pOzs&R*l6KXNdQOZ%k-nA|DU9CwAS58zjd+)*&1s!Ab$ zVcGbp&50S-ANlt3tp9DYa=Adzi*U;`2M>)ezCjWxBszr z;GY02BWnFI(2b_2NQx8LtrznLWa7nxyrBPxBF*6Q-D6O&<&O$i!hUW*77CyBAZS+4 zYH?jVr*URt@~ybP7xFr>e7rd(5%Rng9 zuXw-(JS;ErUs2!jC0nB8Z|-x673}V))CVk+o>i)tBEtm=$E(Lspz^zJp_&oYEQHBd zS~rVgN;)n(4f0)HUdFB&?9Sc>Fs7n&ad9;^HK{SQn@zT#etmRzI^F#N>1#MDLsQ$8V08+W#Quwr_tW`MW>(fl zPY8nW?O(SX5x=zNX5O3AwFwOsk%4xPLw=tN>Xubsrua?6=0*!33_1KR@UR9zE|>-e zk}Wq2d|3y{GxV`@9|Y?L)0g56K6vB-xu#10XK`_4FpijzknrFAZoZA9Bj&_q>voy} zYqqCt(wwYt0>?R#@MX8!8A-h2Oe??MdfGUq$zAcp`PC)c*|=9%a=_!wdD}!ld|R7< zQ^zqcAOyYE0{CpkbN>Cve`e0V`$czmk=~8jQ!aYVK<2#;cXP4=dt7^U8xzIXO8+o(2S%nX3Lq?JKnM^#-dTRb5{SFKkK`1KZ5ga}MYWB>Z23 zfxE?%3dt0z{-=hHRyw?_Ht8v;1fP+qztcuUF+_ zV=Z0REC7EWVtc({`~N_~z^N@_x?Ck$u3X^$0j=w*l#N432)4dXk^lG?p=86Q{Xzhc z#$|TKc!Y1?zIA(f@?nM*wX~!|4O)0V8iUquStyjamGKni*N_5R2v{7OO>Pii$(v*N!=ytYpM_9eK);m7uaL)+=9-(-l& zw*%^FH{4Fo2z{tLR}+f_0pzdeGT1Qa`5I6O$z!Z9@in5=ws0d449O8GUT#))lIohz z$nWb?)c*mkngF)#Iyyf7-$Vl_WWdDImKHB*gr-mEPn^F^_RtN`Aa4oylxI#5A=117Dr~rkb{R!g-}tGd*qTQ&`Lvgis~Wy zhl~m0WEEt5eB62g#9eN9c1wC{RWbSYXeQTx zed6Qi_-_-tZRdl;_)tcDrdfL)Utiz54gBr};Tz$%LoQKzF(Gov`HGNmoDBkr3Ns@^ zf?CF#W{2iM-1)L%wz*BuE0?rIDu%dg7c*eODo%hXK5+Y-boz)iaf#k_Izb}fx((bdzw)ME;KmL;ML1a3oFYOZ<{(7oYfT&P_=rp1`LXx}7gz?yEu zl=|DTRGmS)dba5Fahn~pTAqO|RlXAVR@qWa7!Ogv7EV@wwp<+fUC`C!=Ly4r>)D`{ z*;$Vs_OE$^>JxzXb{KdvkjtcoJ0q`JySfy(5jn(6%i&lr4Ocg<)M!2x7zt1%7C@m`%gqDL zU=AgXOFfSUF(v$fru0S;=$b}vs|jlA5# zM&>{@_1*5v2Mu8qpQMJZf0z}jR(R*>TnIbY=tJ?UW)BpLBY_+%RIg02pS5Q|4Xv7M zx6YC=HP9w-Gm0KCl>22kRhiO2Wj)Zq3{9Czv)cC-X0182hcz^s5iD_!mBHa+_j8X4 z6pU^odr~S_#x~7N+P9XoC(3GSRHkS$rd|NOIp2$9cTY>lsHwA~<1x49&=^V;vtCoJ z_YU!{%LItVk*qE@r+hO4e7vG^tUjVZ|D{6)rh7Mkyt2vYh zICyn+EIVdBvx4IEhiUF6GXnE$NZy&E$l>R�)&*3s`7MV$2o_ZbDWTs;by_Z11+ ze@v%mL=Q$CsLIRv`E>-|{fh)fi=VGfRyt_N5?~|AbN~_zqln#!yO0b43|HrgP^X%5 zN4^q55CJl1c4Y9$;}hcH*>?Bv5QvuQQz}*WB!Jw^%*@p582fDRl`5pOV@d++t~G}^ z2}2{+KNgymB)?~l#`zvof*1NAMT_;`%8&hx)HB5B`S&lLJ5p`Ob_Rvu7}W; z-&_;IAFp{{l9bD(rBdc#Pj@i%q$&1{F~TvnpnKS?dA+XxMl{`#yCC><@yF1~!9fEs z_!61mdVG8w1M0dUWeV%lVdpAhk;j^ckq9p@?b_20-!_1-Nh6l-?+|eyg`P$_>LcM@ zOXt*wN-=gqMM@fh-g}fjFH@lH`y@>SmU87>yk*YqjREZY8?P6({fTBdsCKd-B~{Xx zHBF-I7oepAgS)B8Ny^;ZTyP)ym@n(zfAv4cw<@X6K!XK35M-6F-09ln-+1f-C~;H zWWIZTIsV65XnhsC9fCp`d6|g_-Dj~47DLJ}z>HV^C4J(h))mImG8`%PWHz#Ux$*c? zgoGr|pq#@`2~eo1*;yK@zMh_7055`+jBZ*~rC6$A2vy;6T3@ z7Bc+rVI~_I`424@_Y*oh&|bZ+@dCIx^;^-q0^!S1u8YJ3|M2qsK>asl!t{XBnegA?a^3iarY1kq74Qh8 zHV)*U)hU$NnHRi7ts;6~a(8r!qUtcft>tT+@%HCeS)}UqF@6>P2;RV+H6ibL0 za{qGMy>@VNGFN7orGHqLr`G-5jKXvf5r$)ca%ZeXTO9%fc?TWo9w1l6;AK4QM6suS zv6Sn>c^F^!y;3}h0F})|UTQ+n)28bXsn<8!5Wsn|%NIzQA3~d)x2p!#mS&*24p}MsR6St8y9RAa6Y;zGGd=wgV9P*-46uLQ zack07nh)`JC~#b9*Aja?`q4BwspbZ(P0R_c-79xG%(GrrmghB8&DvLJx={{ptg1s) zv)?~%cmEo_89v{f7=fakY@V!!`|rq#2VUkqZuN-V?z3ZVcRilGpXM&ru9gcRao3w@ zq0aJv@pN7pm!=?!Q)KgklK{@i(!>KA+s|mhlo!p%FV#Gb<6EtRKp^fWCi$zKel7PQ zZ~Z^%RBLe=4kNH?lUv1PkxTA2M|GV9wmIB5-%T^9#EYKi7}_9hta*3XisPdroeQgk zQs~M&r->M2zdOh)Klgzxm*R>89;X93#YMBzN>wBTa#e3Jbfpq_@%~3`t%~zv!vHs) zy0iM*+hQ3;aRCMw8RHK@JIwQ|PYxHe_<1;&>n1UW^bA2;o*Yt*c3G~^*YmMv1kkB3 z(yD2+EkSsV2UTHj1NJ0Ay})waH6R48?(SNBfOZQg)PRZ<&Vw*=yK7PTZ|rG_M-tI2KcFown}^U(7TS6KaYQLMBQ6#j|F{paYjOE2@+ zr`$;uu2(PQK6T&e*WYF0Y@Jt0^#PBbRE5z!_s%pYV&I2Ykofz0$^{DLb>Nvlkesx# KRE>mb=>Gu7(ntva literal 0 HcmV?d00001 diff --git a/packages/phocadownload/media/com_phocadownload/images/administrator/icon-box-pe.png b/packages/phocadownload/media/com_phocadownload/images/administrator/icon-box-pe.png new file mode 100644 index 0000000000000000000000000000000000000000..429e682464d27809a36e0e537ff6ee6db121db6e GIT binary patch literal 10585 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 B@Pz;X literal 0 HcmV?d00001 diff --git a/packages/phocadownload/media/com_phocadownload/images/administrator/icon-box-pf.png b/packages/phocadownload/media/com_phocadownload/images/administrator/icon-box-pf.png new file mode 100644 index 0000000000000000000000000000000000000000..c2d847889ef900fad4d654d457e6a6a5a9a9e018 GIT binary patch literal 10594 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 literal 0 HcmV?d00001 diff --git a/packages/phocadownload/media/com_phocadownload/images/administrator/icon-box-pfv.png b/packages/phocadownload/media/com_phocadownload/images/administrator/icon-box-pfv.png new file mode 100644 index 0000000000000000000000000000000000000000..a674f6e5187bea09b33fdf5ef40e192d4d2443e4 GIT binary patch literal 10578 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 z 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 literal 0 HcmV?d00001 diff --git a/packages/phocadownload/media/com_phocadownload/images/administrator/icon-box-pg.png b/packages/phocadownload/media/com_phocadownload/images/administrator/icon-box-pg.png new file mode 100644 index 0000000000000000000000000000000000000000..f85d86321c1f04592180428c512cdc76726a2fae GIT binary patch literal 10763 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 NB`2jUSu1WD_CK>~4GsVR literal 0 HcmV?d00001 diff --git a/packages/phocadownload/media/com_phocadownload/images/administrator/icon-box-pgb.png b/packages/phocadownload/media/com_phocadownload/images/administrator/icon-box-pgb.png new file mode 100644 index 0000000000000000000000000000000000000000..82eb733fc092480bed63b297bdbeb13b6d12f32c GIT binary patch literal 10614 zcmWk!1yI~t6osP29ZGR`FD}L1DU`(>io0uZcP-9R+*uroI}~?laVyeAiY-4sGub4Y zH+gSv?z#7zGl|hqlgC6OMT3Kb!&Fp|(E^ULz;1?$4E%;PIJ^Z8i0)E~I;g-FfNB{H zT)%Zu(07M}L&y7nho9dHdItU^@{s-PA?;>m=3(dTM5SZrXa&d3&B-Ig$;}hKRWuEZ zAp3uWwzIW|x0#z2oTR0*xfPY1otu@nvzxs;m9#b=a??T)92^y#qKu@D&$sCw-((ZL zjH8DR=a)bB7nOlo-87cnrg61Kn3zt-O?J7p)#cw=BI~SJrtr8v$!OriZ{fFmwL;Ei zsVc$za6=GT{Node1CxVA^E>AzB7-J2W^lSzb~5@hxI zN_*=j`SAA@+T*=Q`>+Zj7ja%|w#kY(W&oW=_g1tNNZ#0iOPiJC8KVajMI7=QtB7ru zjb3s)f@vs%_AF~}`}_VK-aFab-d28$Z$qSsZu-FoN6R5aMuM}N0EZeKVoQTd$Ln)) z3_e6^5wDdg)YZHxng4A^>yY1)+j^4ldYgzIa4q|yKD<8(W>uQdd%f%O|6(4*L$Lk6 z7zdtQ_I$l3uexsiZOem+)=3jSm`IGaslxWBmR<>G^l}=qpH#^ez4lpJc&)bDvFbt6 zi@7j#`Mxd4f~-FDG3;+g{nkpkE8P%) z)Qd{fB9F6lj@7e6y+`uJ+|2@Z9G9|&uSqK|Zz|g@8{u{(QD+}al;i5TNnuDYB$GJ4z!?Q^N;ECb9Ufc*AmkK3Q zFkjC@?wQRB@}Sl!dMr_+tZ>Or2P3(iKHCR2;i{RJ3s<4ri`$g+rH|TM!I(&q@TPFI zKcZ1r6xEa7rYtAF>-M-w6`&Q))c_STpqcQ|Uhe@ zoImqEUo)vJa8{FxBx=iUl_=^X)z4pN5l~cAkx|>6MK+X~&oiL!`MrL2gb}SiE}5?t zDA~z>Or-N3Imh#n2hw0^+;-BG_22&G>e_=NY%{BKeYbrau7#2G1@6>E4(kG|KXV! z7n&yfgITwrij}2l*s%`6#!=E+gwetEEi4Q@ktceSBoy9deHFZld5L%R@jHAL zxvvk4pE0+n|Er>xJ0Ob(`MfJdHJ`1)WZRo|*x3(Hi!m$a{L^q`s@^T6^Gx6`NWVii)e zgt;N%yQF8LXe##lT4mjzjG%zOIcKY_C$u{6M;oUIXke3;l7e23ab!N%d;j`D0!w`l zftDs31dgUGk~zWI&qSF`Tz^;-{0v&(O_UQF?v5Y5(h?s9Cl(30?Ji7BiDCUPywz8N z_LUJ%X*n01zWDjwQR2p|a{YBmKW*OTEQK~plpov+XtX*N-%f6**Rg2So%{`WLB-!j z^lw@*-@5la{~@oNOt28mZ6Y?7l2*t-xbp@zZxklhI-+ct{qi<5Bt%rq0z?eny#A%vU(Y9Jh7loj7*s4K z@g(=DV2;43Bxq zSDrJ#XKvVjgX-!XE@e$=V*@K_7m?Z$QRN6^=gfam=1&U5nVjG;5&OvPPn&WFC&?U9 zBYtO(BAXui<--_QuJOA4=!#8Z6$%gIDmY*vH^eIOv0TvO75{gKB}ZBtXex=46RAwF z?0PN=XJd0=<96upVDj4M@kNsf3154MDs5es2Z9SGt4grg=dG8dv$Ve8=1=U-qpHI9 zmcRZg6xJYD`HYB`RymLDaxO~DAtpt#Ov1dawk7hG2`#6`{*9Fk7CIl=qC=;8`@_$z$>_36(-%*hXYB*Y~_i^X7Z1L+Hi0o@vkT? ziEt5ig3+i8&94ezuXu+q*hk6|13dUcTdri^e2gwRn^xcm;7RLsHZ9I9aK5*j_HpVYUk~FuljI{2enaZrhW?lQ0u^uoZ=5qAw+j zp)ZzlrrGJ(=v&?cikfO5d2OKDx0mWf8A+Dj2yJbX(s{v1vsE9MY}IsHi1pS_k+s$n zr^vs~R21*6>fGQ4T{K9Ttf)#fCw?@#$!Ow_PT(gc%%Lgy)S{Q+v##l~E}V*ktipDF zB!EPN%16%kkzmsoe11p>V|?b8XCRy1ak;k9 z^3?T%Kun#U#@Ssmgb-6gN@lg$p4b3#>Ek>0j7`N3AKCPFfCu!n>Xpg$1t**^)lmb6 z+aA~|tXn9q8N%W;@Q$Z(fFbDTw#Jfl`_Hg|)w&DDJ;ckqWgEm4EuMJuv zPqN>k$mHy|E!2jGb(XjlaiM?0=8?vD)>U$={w(r@{;AYMjkV8>UjE09Z4gDLBQr8@ zX(WhGkGk)sk@>ZmG>5+hBy})_2s=lL4p3o?G$5nr?#3GZq_C3L8Hwg^ES&j5ed+8T_ESJTY_)u>`e2}*td*S^K|V!VmKO1FV20nwB=Vj{27Of&3JM! ztVMhxqN!-gw3t&*Fl-nYg@UOQd4*$R*SRZ(J@4@0PW)XXX1pr;&Wi9E$4A+$dr&o{ zrm@F`97RmW7gMaX8Us8K)8UPIhXmcDjSTpCAZD~3h8teTq{%dYYJ=E_20e{hmVNL? zZU22bzh?KD7)XZA$+rG0q3j{mSbusi%e&|}+F+I1r25e>bzXh0Zn1%jHfhuxkhO}^muLK;^{Zp>7UU9lXd+LS}*+fE0>-_be2-f}JvXw6fUY!6M6$Rl01OtWF=JX|3R|qL3RWhc~Iw z!|eG^vHpZ#;)W(%uWaefxov2+BhDxlaohS`h)j61~V63BBHduI*cn?N``+X)8m%ngt1R7KhP56Wjcn=(S2FyIq=qC1}4Cxu9G? z!Jb*KvN`T=^Pb?G~48Wr_qqBi|5e$b0Ud89SbF`_7Swq zOV%P-brQ0S*}K>>M|09Y;8oqQWyg=5%C}#N6m00f%&3*3#WKaVLuW*MkBg&xUY~Ym zjl8#7_a8U|Pm~1{rD;;AGLsg;;PwYt~@$CjcwL{6Lgx5LO1Id(2Fh<8e{-ilGi zNKB4%#JQorWW$OHB+JHykS8=ME`|)m$tK_biB{6!ppK9XqcU}INxlra?_!1I%^r2! zZ~ObNXcFMcY6fGa4Th{oSDh2ArzU%;)SxOXi zK`hd$yqZf2N+&k<3AJukB#;d_mZk)0>Gc?YUvo&EJ<9srn}uN6zv2o_b3H+b5#4aW)EsiWZ{=9EO?vYxRL%o4d zw)}bVNlCn-qEqMRY`vHGvW{&>z?m6I>bND>`rD9b)U>oTKGFpGK*%PE2p+X0-5-of z@dKsBVCiG@6ecq56gL&J1*)H6RxRwHGIrHJYIXBrAGIE=d$cyfk3jSdeF z|Lqd@jpci9kGHNEE3*;p4Md=ao2^1@2b0l>IdGCj#}C}ZG%yCK3TJtRgcNylENyKo zdM1(iZO960+iY_hGqkl=inJe-~Q5~{iVfQHjmcv`QE?axd5v}3m0dQ250OD zAOSMXYjhMzyj)x#TR~Q)rXiqOIj~kgpK9(jL%E&X#ikHT2HMxJU(2+V^QkIzV*hNk z0WiVG$NxXi`i8!f0L12xOz=yMg`sOYXjYd&NDYUgWA zVX_3Wsj`xJ_gb*Dw3Lq&6XLv+xJ7%+v_y>M6|d` z<_?Z?*zAZ>0uKPX+`m);h>s|Rje|qH1OH?MI&en6tlx$0+xvv(?>GNZ4pY$|$VmgX^gpE6Z*hVON0!9@i-V-Gou zV@dJ}$oTiYnrsw^u0~7Cy?9ECBj%`<^1?hZ zLJOK~LUd&Qp3b1@@w5K?Fg04ln^sVQkLb)yzQ|gO9lpuyoGXWYBGBUCPSgQrZ z9f+RCnY^nA6N)My|d%z9FemWmb7TIP#3Z&b_2+bVM=}A zAA2G9LyTc_+!ap%DSUa;1v)pe%h9%UXm7h2GL$k-l)mb7(j4VJZv?;a8@AoIu*=&Sd~-wYcp>nS#oSz633q7a$b^}A>Foi5=HwFha^uV2ukEc8 zVK-b)`~-r*7i3Xby+1xSjxBI@hbu5j=%TZ8Uk??H5-4uAf7NSqARfQwlzaL>v>=zmA8BWn%}{QZd@MttS%iT<$fpshxY?AP!hI;E$~>Q4E;;{U zUFfBW-+O>?hq?u0NwYmyx9lxDzAzR80V0h~51MLin;+C_S}Vq9qX+hUEJ)& zyDtdr)sfPqD)^J|$|^%26zSwm1IjR^MkN-|jc>D$oftt&Ly!UZ}hKCtIfu`OK9l-`gSEca!Ud&6(&l30h>fmWCO zKrjrm&)=cudK;2Ux7o5cWV&L`W;VeQl8h8zJZLV_C3op5S`W4bdR&}4G6Ly4OUi87 z%gEERm$sjnJZ2p-v51T77Ho|z*}TQT4<@d?e@z-zr3do{u$9}@FeKW;t(G#|xrx8_ zh4Hr56FVkEp0JjGBB(Wehg|2V;Ux1fMdMal4j+Bty8!`OE%imBR-MGO$_c^4B5I>K z?i|O`p#@^6O4+G$&<429g{?fJB+|!C!{d?ieWAYfTbx73&ADOX&2pPc$1+_bdRWW@Op&*Sp9aUv zqrv^>=f%gTS*RsAB~&zjiL+4+RNvG~uGZl5zwdFc2g$XO+U}I{d%x||1b?c>;kWn6 zKnrS)WX7%aOVI66I{rX~)~Gsc@@b+TBfaAZmUO4cHmzfZVd2Aj_>84a#WHXSDqg17fGMZJgid4mD(%dB4+8SSWsl^KNt~VfacksqxxXWnp)5 zh`Fglbme?ivQh9yOd6w*$Ns}7czwcj3g1tbrzCTW+%)TJN*@^24tiaK4%#tZw?)>V z&VQ%;d0WC1M#X*luHoy1shOG7$pfIxZ3e%-Ja2Se?EeTw z0E9x&!=y=*>m+~G?MPMEpVqHUcn_+lHYRV1KCLC4thTGgcdQROkOgA1x6M4v(-JhT z?D60J}R(gdQd&_TtnPL?zq0e2|0m-4E@QLIiax59m#;m7BrJ-AwTWpUlCwAR+ z$czKqh4gv`0|C6)SWcmp2fCA7Y5(RX8N?BqyV4!0!XV9)Q}&rni;V~%;QLTtVAc-9 zL>(4cKvtxU*BtkE#oq@7w;vVwxBFbv$S0EhemE+$F*kp+)Ay`ekJ9_9tpr|i3#yXw z?Ue(AzUw+_)bdxXocS2XQK6y^CUgC5sEGz90jPJ1Lh`ufm?clyf?d-Z+lfc#=+thi z+IRn{j=H!#!7{B%S&lH)wB=l?_GirW4_|>5tu>e-2yA)a7aVc(@(wC<_ADY)YE|OI z4GRW7VjRsFQDsf0PFpe&G&yWQVnTPRz79*qcD$)bEBtv>T@KG1jrWKq?8N^8JQ(OO1e)}ol8KqJpBA41!Dew zDng0wIo5?K%mMT@{z1qE!idg6yfp?Z7Bw51vrsq=e|_jdafpZUGkpPPlbL=n;0s?{k@B1F%kgD++b?&=(gk^Ju9Ks-<9Up1H-?YLZX!nOTEPJpD!=S3b*3iXP z*IJ_mN)$Hbh^G;dq+J03x|j^|3hiTb8Ok7n=rf+XY+qw^G- zY=XuuMky_CMzEU$H-g%qB+MgmB}EgpVyRGlPAk9v1l^NMf^}vMC}nXWj`!zzem%V{ zTUhm5b`la2>Ks|6pxP#o#MGsgqOUXSNYcfz6N2Yh^ktuCV8aPs1AN zp?jZvj@IImN$7k|5DRx+DYKaZvx>>{9())H=8RN3Cm?gS$qIBF7B}-?<@8A_IeB>@ zzZ)hXk*V|5?r#SFhSuv=Pfbm6@$)19FcMQmRTWUx>Ri0MUoW5jcMGy2$o5PB0`yf)h&ZY-ueOG3m$(Y#W$v)&Q ze56YfyCx9W3E=g=zc@%Me5T7#ir8@KN&wZ4{4f6#Da0m5C19?wE9}=~&Vb+OaGQbm zTh9-LuR<$E-sH}KX9ktJ)dX?FlT%)^P`{L658-Kiby1)>vMqgi0?#tVs({m_pZwKx zXWE?MYSZUwnh4S_T5xa=kB$<61l!nwc>x+K3X8nNki-3Sk@@aoYr{lH2{8sf>@2v@ z_7U#&)TB4XvD})kfO?1RdiraWKf^yDie|7wXISLkXcDyGzB}rF^CHi=H^)LgDOK^i z(Bl9!;KIGoA}FX}oY&@Gv&4&b>NUyWuxPEW{jfLyR5xHIhYf2>%W%gHNXodSAN4vF zDjSume<`^~Y{?5erlwL%D{8zGf6SW!6$XoZ@xa_t`J})97fe9orOh6#b$N4UTGjS8 zqKVx+uHZX%X3Q~JmbUzG6Lcp!y+tm3Ik(CA_HF;>WFbB=(QS9=tyBAN&*#T1iKDT8 zg!6TG!r+IczWvL-SLxKc>E*Nf13-Srpun4bi9TON9;rFRLpP9#E{T45x^MQrGzJRA z+W9;ure{ekQS$jFkG_lV*+nBOa}_k??PsOR;{yMSm;&m}R_9gop%V2G= zhxQY`Jg%)abgD+OvQn|Y;rfzamaYbD^89u%xwx1*GBVQ78sR5;hu7m4c|bElc*n75 z3BnI^=0@Au4><(|YQO|p*a5!~$RvWkr7^1iUDQ_BWFqj{Ix}vgTl!MF_@$MEocy4< z@WtVB{XURvl-inEEd!%~Eg~Fmm*h`b@$dFSbM3~qiZvoV!>q{gB{e^}(D8xv%fnGw zO&O9%O_IoID%3BMIO%~qoG6l9_rUW5yCy}^D+85NzjZQS7%4W|1s4vpWGI=ffVKd% z8niiC0Y%aMXr@+Divy+F|BoOR(0BzCn}-(frH7aFsVA6ri7d&u(vzFQ-7%R2r3Ru= zOQN~rD?Sa%;UKE++)vi(R?j=|ABoN8IrEW1r>)(4*Bo@kW~-4Ue@2&#X)8Tc>L~dZ z2uK?Q|6@aSYe%Kh7Y*#RguA{By!0Qf?|nS&qaY>q>oOxLmBiuV;`;IHmnkRuucize zLbO4Ekc1i+)M%kC@cDZprZiCFmXxAOpuXsSu>IF-l5h7w_(xz;{{1&+?ie^Y)PeuM z1=u$1nLFn(x)!ZJ^feZXrBS#4V~|M*$^;v&WPE0m1G;V2q}c{!6~bO__hkc;08}B$ zV^Gjs$vlig*XH(QxK)@QG5+>!g)xaz0=5rqjlhM80TY4oW#>gEM_L?a`^CfGyY!Jp-JcLWvDB;|IxA;?**t4Jc?=KeG+ z(AEL75*?l~OGc`7^O|75zpHw(QD3LMkpvN-?KpcG-G5ms=ikh?BZ{P!#Ni90`ae1+ zv7XIq-_FP;fr`w!Jk1mfQexg|Vgq2UHe$3}r`(xMJlK@M!`A4iOFKRa*~1 zde-c;`tNZzm~R4DOspA+aK4&yt?mL~PzlG<#0;B10%XwbWS-u4(qOx!zT=RTmMCsX z*7DP(zW1XC?wL3l176G*nv`sBvQbZ?6~K=L@|;4@{cx(-^K991<_KE<0b>y8r_I2! z4C`0A%#9oYPXbsS&3qFZYm=ivR~_rM&o=-~B}{;)%B`xcvalFw7VSvtS8jFcW_$X@ z))rW0E1N5g^opwXcSHKoFLhWM?9y++QOF3c?0i*5QCdo|!zHl0w!Z0?`<;64%Wd{+ zA46lG-$+13b{i%4j@}alIBw^zjdx95HY>Q(oB-ZotF!g+3HE$`Uc<}Bw@-)nRv<%Z zO_N})xw$zCi%jrp^8tFqjUl}OVXr&G1DrJL=2eKQUJd3T&LCHdl|BI17vOV{llRWu zn!p$(W=E1pehledNHMnBXc=&yOXY1wWt0~4TIvVS{<&0vKwqO$7UHAB;Y4~5jvO4u z0vudiaC&q!NhI~zO1;h5a;@80ZQF!Jk{AOy3It$=!0lT!%HR`PW}}F;INKl?wD7)a z>C5f!C`!n}NlW0;C%rXkX=w=Xf-j#A52y2{YYo~;(&vpnij;06m|y#{5iK0e7H0Wh z_ULV2CweOg=P#R)C=tl6dm1Uy<3EB%v*Jzg7QAHMM?UZOKka8N;Pah+utQD(Sh#B= zyLNf`%;ZYn^^TP`KVz+~vT%5`0)JixU?xdpi_wi+Y5^7!U?(a7OA?^!@Y2ZC7Nx+J zmzRG}`S>$x>U&|(y136((I+N?^XWVRgZKOnT<8&DfaP@(pRB8-NE|XlMhw=u+;k~;1I<-thXp8B_xdZe?>XSyWbjZq>ZABZ(#ykx)hCV2Iy}GjgmLHA93_P zF4a#k!fs~w%k!L4?|biiw3rC!P{ZioA}KK^k_piqxalLKpvcN(XJ`K}a)4T#xz*(j zt@;R%gGFKvLt9x*%kGD1XDsiFO}hdi_mSMZJl;0P4eLYb0|irv2MN>!kPd0DayxkDwqESW6KOur`kXls#5e z*L{hq&hR^+T%0|Oh)J7jsg zTn8dC;o2>pHCc>eb-co!kdm>3{|)}V8pNKQ4Z7p?eK|9k&EZXRn-#ks+e?z*xb)w7 z^0}FlKL|ykNH*jc9TmUh77F;+03;&7%N8=N09QP#bwl%)!)CiCMc|Dl;EyIDN>Tw) zI|kL%8){kG*xZhdMF&6qY0Hy%TAQ8X!kBLBy{%oox@zE8U04LklP5h|kt4wKGJMWl z6{foqWA-h!Y<@R!;QKHl&|AztiT6?bwo-lk@%HRs+yC+aPzdSxjA~<-udvHW*vpgR z_XWJj;#Ek(GDx_zwsje3H(3hiZ7+U394Ocn={}-r;)PlN120R7eyzjZM(@7cO(S=@ zyuI%1a=mpje%Ra^h*Ck&qn%Op($o&@&klcvmXS>Yo8EkO9SJd3G<2ZtA*NX!w%lt} z(=gN97$0zx^r`^c2!1u_0UTf7yEU5w6p4SK1aY!+pyr^LM~bxG%RS!$CU9AEqk*|C zJBZ!i(Z2Q|*S^jSkV;KflSBa3Fej0_^ahaP9TH$w1n4l;SHPXORaIBdGk`cWI`uwS z_t>v+KpRIXnnh>h76%xgG7~d-!gck}ZTez!$Wv&ef~nhjUesW>pAE(DJY+9=pj&?v zMRsaSnNqthI+axx(sirp^Rr4h-ap7DTK60~`#m%(F~1$u;CJ3;%M)-muCs^p`<<#urj`ubl(VemV;_y|m_i9Le*zXtT zuxI+>PM3)a&~7GfS4?(zyO+@>+>Y)fkZN;1uV%b^@u>oKV;FCM6f4Nd;V$&Q5YlgR zGAc{w5zeF3?|x*GloFtocsHS?SXO2?Jwc8gtXK02eNFvU-^Wt5gy*;+oT4yhBMyDH z6+_964Do)Zg#V$`QmzyKf5x~hPaNm$uOkrl|3@VkPQFGz!uM1`J; z$k2>a4X}EdIzdZxc)y-{^qd_wde5yUf}KF_K@&iB!k3^>258JqPv_8>a~OCcQl%=G zPh=Q2_YXe|x_!Ce^8Y!ou@nAsC(vrr-?qGYE`i>2{yI^vJSz%~Zv-&9F13JsRH(ce dym0dhzb`CzYRijA348$wrzoo?QzvB__8*oNvC#kk literal 0 HcmV?d00001 diff --git a/packages/phocadownload/media/com_phocadownload/images/administrator/icon-box-ph.png b/packages/phocadownload/media/com_phocadownload/images/administrator/icon-box-ph.png new file mode 100644 index 0000000000000000000000000000000000000000..96026da9b0ff2287ec7f46e2f09fe0978f5beb89 GIT binary patch literal 10488 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 UZPdeorw?HiWK^VUBuzvA1MESp&;S4c literal 0 HcmV?d00001 diff --git a/packages/phocadownload/media/com_phocadownload/images/administrator/icon-box-pi.png b/packages/phocadownload/media/com_phocadownload/images/administrator/icon-box-pi.png new file mode 100644 index 0000000000000000000000000000000000000000..a2877e99741814c09fc3fc65c663de7746554c94 GIT binary patch literal 10562 zcmW++1z6i`7iGX0Zo_3b6ff@X#bv-4)&j$ayABw`hC6J?@ZxU6Ww^Tyx8d%8zCX{C zrfKseZ|=SCIp>}vTtiI(3!Mxd0RaI^Nl{h{*vbJb6cq*d46L+612)Jm(n>n0z~YN) z9tP~AIVyf|K|sL3|8IRYx#Ir_{7B>~r|&A`Yyow(cKA%KV{LDNz{SPMEyT&i9kP-= z0vti{-x1mlpIkkl&K3w#<_<6mYI$pC3l9fpTNi2>ZC;e>scZxUY6K-&DIL$uk>A#d zMtVuRcOo9X7d~e&Em^C|ozCPpG-LH0o)bvLl|+6 zXHG2EkKc2`-Z!g_H<>jrmRWw+3qEVC477&er>87~G2`d{m$~u58L^P(ihtS70?s=< zAN@oeL|xXCo?c?6zXmz41w0Md=WB?!K&N&N>+P3dG|fTD__<@CGA2Af>HX8Z$#u;x z(`jrQI^Ff*twH7T)I0XGQ*tKTCV}UXn*e9C4{*+V*z&(f>OsUQgs37^&1?lzRzzxQ z#9TDFSe=uFU`y7wR({gq;yGQXm6M%lbVZakEWKxZ0e%n2YoetAA61M&KlHSYUsk)9 zB4GYBxX0+4VS(5(^>!cQU-uLR%0hJ-UibNedzWd7H7VB7)q+&Q)4<*uI6)_x)5 zRQ$n7|4{|{OhclQJPqx3jz;ys^&lmkIMBUFaK_mxR-;cm1Hwbf%NM&2hH$3E#iw?n{hlj7V>wsK9xPU?4{S_iVL^`A`)bf-=59J3K+GFj@)_;#)yJ5 z?pUKpi(UxYS8Lf9Ms5eF5Y=Fsh&(Jm4s*&%Ou1|~BlKjg7 zqgo`#=2uZ`x{C~)u|nZ?YTD2?*O7$A>lrB80qS6ANSFKTr6>)s=pd(r+;vVC{&PkE z5?qfn>%l`(-mI!BrLmA%RVpK-PT3G4QWgY_fuHB~Kos7|W^2y~i>y3XmnPa7g0-U9 z0T|QM4tPlMM6T=%?pOz?5jiS@QgL7AA?{_jl(Rd#+Y&+`

        6#VxX+uFsmC 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 Xmm|Lox08Uk84;A^)MU%0O@sai@lUP= literal 0 HcmV?d00001 diff --git a/packages/phocadownload/media/com_phocadownload/images/administrator/icon-box-pm.png b/packages/phocadownload/media/com_phocadownload/images/administrator/icon-box-pm.png new file mode 100644 index 0000000000000000000000000000000000000000..71642abc7daf7f73e9fb323551cc5e9b054dcc94 GIT binary patch literal 10581 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 literal 0 HcmV?d00001 diff --git a/packages/phocadownload/media/com_phocadownload/images/administrator/icon-box-ppdf.png b/packages/phocadownload/media/com_phocadownload/images/administrator/icon-box-ppdf.png new file mode 100644 index 0000000000000000000000000000000000000000..f730e23fb4a46e9fb68140a709206499dddb6a16 GIT binary patch literal 10606 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 N$V)4MswGWA{sS>8#XbN4 literal 0 HcmV?d00001 diff --git a/packages/phocadownload/media/com_phocadownload/images/administrator/icon-box-prm.png b/packages/phocadownload/media/com_phocadownload/images/administrator/icon-box-prm.png new file mode 100644 index 0000000000000000000000000000000000000000..04119cf9569515defbaa8a94bec5f2a261fc353a GIT binary patch literal 11053 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 literal 0 HcmV?d00001 diff --git a/packages/phocadownload/media/com_phocadownload/images/administrator/icon-box-psef.png b/packages/phocadownload/media/com_phocadownload/images/administrator/icon-box-psef.png new file mode 100644 index 0000000000000000000000000000000000000000..e723f51ca96884a895653e821347a377c632db81 GIT binary patch literal 10647 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 NvQkQt6`u_Q{s)thA$|Y= literal 0 HcmV?d00001 diff --git a/packages/phocadownload/media/com_phocadownload/images/administrator/icon-file.png b/packages/phocadownload/media/com_phocadownload/images/administrator/icon-file.png new file mode 100644 index 0000000000000000000000000000000000000000..e6881fa29d66f8f262385a9c9f5368f9aee0b02e GIT binary patch literal 408 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!63?wyl`GbKJbFq_W2nPqp?T7vkfZWUgpAgso z|NjG-K%nNYG;`+6DO0AHROlNNYU^aG1Ih2-zXKHj$@lNyKYR9U>9sivFVC2FY3hvg z6Q-T(?>yX;y*s{Wb7ubf%#_VhS*w#0)`!Ke3XWbLm@+ReYF<##T(8jS{-NCg)^#R_ zx7BO{TBBSNy;nEJ`iUFUl_V-z@J3R8#Ef;us<^HT6OyUxNYCMf?Pfr!!-fI2p!yTa1t)*r+dyRmyK*j(6{`mLj!@pne ze}8-N=i7}xpD+CWbmq^e6aU|D{q=U!uQ#i|y*&Bz<>K$p_Wpb^`^U2>Kc4h{d${`h z2FL#%Hdrc0eA)Tkx%N*NES{aMcy&7a<2n5&$Fn}1R(*M(=+UA0hX-SU zZU#E?)?$-e^Gt3{HUTh(x-((i%SHAzYdEabZj{1Tu6{1-oD!MlV`0V%Y=I`(C{OjxJ^5x(1<@f5|z5lPb{;JjO z_O|r@=jZ3G|DDh5*`WTBw)Ly`+}xV~i|yXe!0fon<;Jt_t=!z)zvax8_=c1Df2i%I zyydml*4C2pguUD7ujZ+@;jfPIe5K{2uiwAF*59q+rjP7`v)AUD=#1sc%B4+4G&)@bAOJ%*@P+<$mqOopjy*pV_jX*`S5wb=$HnZlZ^ewR zuC7PL{ddG|;G}6>yy4xUc!;pVa=vNPo^;Hhb;6>9N4xJ|zkj8rr6j@s#h-cdmOO{5 zxzm|pxt)TNq^#4ITqU{qN3h`Fl0{Fsa)+a^y_Ia4nVE*2rz5lR`iL30l5EwBLiT%m zl$4Z5rqMsLWh1QU^Mn@pfe9j}-&>iqjEsygtXbuJ70Y>f;(HdSgJ9@*3R{t=*l}^s za&m-(gdv;H-*gJSc{Z(lOInPgAEivQdP3B679*F*Hj%s6a0*z4n|phEyKyLDe~TZE zzRqh351&6LinYaT6|HS7y=WCKgQ#>+9IXWA1nC3k~oL3W+ zQxhC%i`Y3kSy@?(Q5PFxf>Tpd%ri5BN)@m+Hyd1fy)iS@>A|e?X84wT<2?+@R005KP)5ib+010qNS#tmYHG}{FHG~1^ zP_U~2000vmZ_X000(rMObu0a%Ew3 zX>V>IRB3Hx05CK!FgPzTI3fLGt^fc8uSrBfR9J=Wmwi}MRUF3;-C8Zpd7(w@^0Fc% z=~c=wmm)~?hSqv-1ra04B-${utSP<}-3T}6O*C6%QA%X9WeJj%E3&lVDl0GI&?u6? zXly%w_B;3P<>G?_pWUaw`aaLj`Mun8KIeDt+1(vN|B+%QD3!{jq_nhI3GKguetk}Q z#wn9yW0lIp#Egs?3GH27UESS>ww*39BL)}~C&tCaC0w4J+TQie)~#P3KC(?>$OL6< zj9{e}q_%hGf|1+Xd$zO?rE+q>ntJ!t_Cq%k>zAXs(n69F;{w*SqG>x0^N=6+Wmd+&eX;j<)$)bWr7TguVQ%F3lHU#P8J_tvKK zrG>12=^-A{x?ob}(%Y|`K7G!d8{Yp^V#wQ#Jf!@y@_8$73dBC#eWA3F&6|11qaDj1 zti3c4`+V;e(n4BVo*><#@0LHdE(qDT|9D7MbdaaEyh{%6qCKmh-gJ==y6ZrX0y>r1 z$+aIojkFJ-`hnf<&x zvSA#QuK`BLI6n@{h!k$I59@Gj$CDg4-PR;!5A zNYNJ_1kYnP;Jt!;7?+|!2z!I_$Ph=?=OY5xaD-i~65od`h1TY9INDr3vNG5`P8G<& znb2xsCaq{F2f zjqE%xC?&^*eKHZGQ0x=+VNb{&6B4eZjqE&;Y!ryrg}oz&o)jcp3EbJN5s*;Efw3wA z1g;+gA}n5^$by*$LxXsTN=AefMn3>J>^;$T!7To)h!CG}Ncl6b9Rb1o`Sf{7stSQW z99AEkaDSg5FB$47jRXnH8+;>@fs@0DQ%wks@G+K&zEpS^%06)^0P(nlCxx>*bRvg_^u+!B2XF1(d}02E zbFX#5HY6YuudLuqm!?V{FyN z__B2wmFuHx*M?NB4Jlb0TD~TrV0CKgYQM78K1Hj7OIG<5t@JEf;hDSKJ#(pF))M=y zB~BTO?Xng-WG=SPTx^%I*fw>sXZ*s@w1qZl3$4=@SSK$qPg!7@y1+7NzIpWgprm=G z$@9#j=J_YgGmW2X6hGHEVXjf!9Ha0#E-|wWqh{%b&NK<0X&Nw1+jpwA|5P2HDLTGW z)cvMt`%G5%o2=wLSO>_%)r1c1j3A$?$-SQ3QCl?MwA5SrIirPvIZmUQ(aH0=dw~Ks$Fx}~EE|v%;8hZ_V_L_oMX6P>^JG07)YZ%k zy+a(A?b%~IpD#ZxD;Taa%lXx$4p9P9X*%QjxoN zMckY*>$ss)%&ff)H literal 0 HcmV?d00001 diff --git a/packages/phocadownload/media/com_phocadownload/images/administrator/icon-voting-small.png b/packages/phocadownload/media/com_phocadownload/images/administrator/icon-voting-small.png new file mode 100644 index 0000000000000000000000000000000000000000..eb33bbc8a6323066d8af329f08a98d9d3368d922 GIT binary patch literal 1940 zcmV;F2W$9=P)7IZ~ebVG7wVRUJ4ZXi@?ZDjy3HZL(ZFEBZzW_$Ml00!(y zL_t(YiItXXY#e75hM$?8z1q9$cl8iX*hK&twON)#bcE=na*8X?iktYp$U5ZmkfZDX(ZGJBbs-I>FW zwTnsCl{nH!Gv|BHtM{AlJx8A+A~cIsDs?s-4!;6m7{-^A$>eXF;nb$pjTlZO62#+i zfZ-icB68QG>-w41)m5=9OKjVgg@pytb^WW&usbOj?&#=XZEcNmxy+tDdv;Wz=(^qm zJO%UseLzn<9`B7rA`}V*{C+=?NQ6u#!|Lkl1h5KB0vTXLxpCu$baZqO4u=T_gQ#jl z)cpKBu~-a`$AjZIw6wG!BDk(grBb0%sgTKJ(ENTsot>SSrpe6A3?hPU+XREb4~t5r z62)S%Az4xIdcAaZc2X!5Pz}TQ-tF7BaU2KBvd}b*csx!bkw8%tR8=Jsi4ciI@cDe? z^LacT4@*l+luD%+w*LBy>+9=c7>10EjY&G4mW_=Ksnu$-73FeSR#sNTvMkBva-!?{ zMG;~9(Vfp`vtk&AjE|4Y+}xb3udhqBS``tI$;nA6l}fU*vLd>!|Df41UM-i)IF5se zV45a{LVh5mRi#p?5Dtd{ z2AdJ=3xz^dt5sB0B^Ha(-`~%`zyK{REfkAIOw%M33IW`^RiterI0cYMBye4qa=FaJ z!~}|>kVqux?(W8QU8>b8z{9{#?j(4-SS)@fm&=jQ=P^z5Y2al*ot&IJ>+|`3(bd&O zy!2Qd6;nTbpVXn z;|$3=&0rrn4>)!SlFv8ZcZy~`E?0O^u75+MUKOd8Mc(+L$Q2I#U-N(?-(~HcUs9ZV z3yxmgQH8d--$7si*aHmG`-O9M9o*VFcFv32a}u@d#4w|Z16{O$=|{syAR&| z4j8k$8Is(cP8=Zq2vX2Nt2Z*GPN;Q3YmT^g1}irO-Jb?H*v!faI+L*Rcc_7qeF&v* z6y@M$l)?cp>aZ~eoyTB@dGG+`W!Qfa#r!7h`Xt==G5Ffyv2m2CR|)xc117-7n-Lts z-;QFJVfrsH{yA{#Uji)j3$OFQb9lRsLvaeAf2-)f?L4ZS-SoRnqu+nWkkmKVyui85 z^$ak=ko@6)3GRqgD%G={FqurQHp6MnlAG~#JRW~mL|9&4jsV|o25PDxl}bfaRV^Go zd>BPh7#kbIb=`0>nJnFj-EkiD_4QHC{0%ez0eyXa0AKsaEu>PZRv^A_-@bo`LLtH- z54R_;;*0KQSN|Zu<$OMWIh{`52P|!=QFLAZ*518)Uvga+(=;(nleV@tLiRtXZM=mq zdO!ZoM=00Y$Y!%>nnoZHKvh*17Z;yZrl+SR8jaE(4dGN5s8!~%iqjY?*Vxq&#nU>7 z>2wi_9Yyi@P_7uOM)nhGJ5DB(L9J9OPfSfsLD%EZeFS28xF=8aV=K7U9AeI*I*WMSS?Z-*2o8ac zPcbnuL8VeTttOMn*DTBW`rNWbz4t1#JPJ+#+RFr5|A|{3!!5s0VfB3+*H2sDS?1^G zsnu#vB$LVCY`&Lq$GAyrYb$JP z=j{Za&@>G^A&@iB{#PoYA5o3|91cxG+vf?mvjhSGfFpM~5jdr38cyImwr#V#uuMMx zuO9-wSStb2fi!@qze$(b7*=%+=7z{q+x-M+H aAN&VP!L{81I+?=&0000!N000004b3#c}2nYxW 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 UFV(CZNdN!<07*qoM6N<$f{G}OPXGV_ literal 0 HcmV?d00001 diff --git a/packages/phocadownload/media/com_phocadownload/images/administrator/index.html b/packages/phocadownload/media/com_phocadownload/images/administrator/index.html new file mode 100644 index 00000000..fa6d84e8 --- /dev/null +++ b/packages/phocadownload/media/com_phocadownload/images/administrator/index.html @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/phocadownload/media/com_phocadownload/images/administrator/line.png b/packages/phocadownload/media/com_phocadownload/images/administrator/line.png new file mode 100644 index 0000000000000000000000000000000000000000..df9aed4e5947fe55adec554f2d1db206a9810a6f GIT binary patch literal 1597 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 literal 0 HcmV?d00001 diff --git a/packages/phocadownload/media/com_phocadownload/images/administrator/logo.png b/packages/phocadownload/media/com_phocadownload/images/administrator/logo.png new file mode 100644 index 0000000000000000000000000000000000000000..f5f5b79ab99b5de48f1d792389987da1f4db3b28 GIT binary patch literal 7953 zcmV+sAMW6ZP)000W>0fLJSS^xk57IZ~ebVG7wVRUJ4ZXi@?ZDjy3IWICW zFEKHnneYSv0010xMObuGZ)S9NVRB^vL1b@YWgtdra%FdKa%*!SLsK^Byt0e{03K;c zL_t(|ob7#icpK%t?mNZMczo5YFS+>k(zxLX<+$&bR4WJo-cRFn*@sEQ@VyXaC zoyGAdPIF(aN%JBZ*57L1Jp$a9-QYov4odQ3bVMi4?yM z2Dcn?h9i36I8Xp(fmuJ%v>!@O_lGhv{Ni$TbMu&UGTwS?k$v;#@4J^R>jq$%@`#f7 zhk!uLymMUhe`653Ftz8Q$h?-?^aOy@09*h90N5Dylpp7gJUS6Ehp)cceEz=so(9kw zQ7i|rVBQl?+@1Nx8-+q))+?{v=zj9aH;^Rew-y2s^UW|7ME-CYRr@l4e+OWXqaG^G z_6`9!DJs*PzxQ6J_KPo`QTFy~03hYe89j(qpgzuellTXNpko?F;Lr$#X~=M-AhjOA z@Hfy0H-Iy)ni{K6AhTMPASSCMzNHX|sf?V)dH4}Sr;LKB+BwAtL@7%ye!j(sT$RrR zsaBZ9`eiukkx3*G2gFixI*W|1zrA1&Blrfkn16y-Q*Yq7suqknTg*o)CiDqn}2}yl`jxId7I1Bg#H>k0Ed#Rroo8-h}sdW=I84 zx_9s1muQ++^JSb$rE1^2dGmcBQZq@+S%Rp<9D!4Fgxg;UpmM4e=Ap=3gvI{`U_q3h zXR6E21Zn_1#leXW?z7GWP}EpJ}(vI z01PZU) zJKW2by=~dGYe&Z3y%!cjir!vLCND)V1(FhTZb0z-Ov$AvVZ8Lbrr%wi)Aono0VqcF z)pi&_bMO84?{TbKH*0K~EX$7jBr*FSiB=d=ru)6RGDqZxrPYl1xa`hXS1CNE%>cA9 z>URS;)cNF-H+Dbt&|4!bSB{&)C%}vrWU&wqhsS)9#GIXoYAzbix!QcbVodC$3_z;f zXTEG+)9-$uH-DZD5XqT!?)5u+m)^f0WF;;@0pexJ0U@o@wsq^rwyj$`02FIZohqT7 z&X}euiQjL=Me-aabbNgZ=;U@8W74rF?5bY<39m0g6GJVDd= zx)vOD(f2;nr@YC|L?PtVFsbQkI!H>)xq<0;exk)r(g1Rgy6Ag_kn z*e+%tGCk}lxm85sMlP5HLZ$%70I_jq14su+nUEuPOr;ORixdK&6#K_{iD}^Lk@3gP z2r(Wg3E#(w9-?>PEM4}CO`q8=!9E(YllyIA-ZXiigjRgdl-s8E*&Ibq@umO zeWS@_svI63)>y69xT2!gty}kIX=$llDwTp^M&15qvsvSExvI5VZ4cj0EER+Wz<@|! zAO8tp;>=1xx~GCjYz_Z?y5tOk#2;8e!VP_VUnz`cfa>`6Quy|#Lr!r!k=sH_K_1`~ zkaQIl$e0v-IgR+q$pG+xIBtgdb{Jrkn7xkds}AYSpYIaRC~mlajU)TY7lW#taT{T2 z>=VaM`dEto!bR`#gsB+GYy?sYDGejirAJ(21C%e*FfAa-Yyv5>0W9z7>DgIdU%$m- znfjicLqkJVrKP0@B@)RPz0<(vLm%*t)y!x=WLrn|mC<2*&Tx#9@?_PLP1;0T4+% z%$G+JlmfY71_1d0iU7>(?d`1y27_ssCNWu-^#+5%!K|#T{TUe<4It8;0wJQ{8ZLCZ z-9-Zf0}CmNl4BYwN|biI7`+#IzO8)zuK|G8VzJ~n9FBB~qGa)ojpMjLC={}()#@(` z3kyF35rSigX|>JU`bVSbgAJ+HhIHXXz4_3z+=6`piRPgm)wGh?@)fN6#?0W;AUB={ zk(A3@TU+lqc<|uHP-xtaA#q`3WJC*qEiEmzH#9UDBK1tO*{pf+!3Wm?ST|7}I-Sn1 z*X#XDmMrP3tgJj-R8({rz!?DNK{g&^K!}h6viDNO(9qDe$B!TXPG4VN`gHp)#@e-O zk&%(n10row0W1Vib>hT{T`eswWlpCvA#nzLJKZ4WJT*uh#A3JGz52|VGh0k1)4X_R ztckE-!GhAl!on6rq)-bNDhQylXW1|RrMU5b{YLF<{zjt7#mHB%?neuKzXoswqYIYe zuCA_~pMLu3v`Gm7eSLje0JaSqHXQ!ytFN|A$4q3m+m&{^U3u=@IsN=%%IWqw7HFEz1i3aD02X(5cmLC8pMAE&;TcKge}$n4&` zLRbvNfervyO}AqPn)9#KF{bYsgHL43+4n&7OB&?DFRiPq+v4~8qh5%ttgN_Po(#iy z>+9?3>gwwK*I$2q?%ut7t0zBeV${{u&F}2&{FlccfBa#P2dNh%pr!J_fdluQI(4da zrftN48ibgtbLY-||AP-c*p*142nZ9MM+!1!U%qeOzF)Sqv=k<~9ggD^AP@8fwIgyc z90(ykHZQ!j*}U-9a*h4uN`|>e7*sY>sor^#EDx@pFUl9G1`e{OO7@mAAmLhoo>U518&0#VHFt*AppT0>A`wT zJvUphG5Romb(;bp_w3oTRgtS`0H~^}>aMM=eHCO19RN{9CSn)MAH#v%(1G>q*Z;M$ zva<7|k3L#gS67!~wOWZAn9G72y zd9OyJ=_n~FX~*PyC20XH*}s2(>9J$S3L}4@C`t+-v#zf0duFqFoIaV8ljEqauI`~} zy04<5;ta+w&L)Egs)t`Lw$(m4TtR+pO(fG^C%FJ4=)}hzyZ7j=%5Np?I zilS+n&KMXN&>TK|c+6%PF^L&t6R0qV$>5S~j@8)Ms0NU3GMV&ZiB?lnQwQJ+kQ{b5 zCMIPhv;b1xeDlp8t5mA=4I4Hz@7%fb!<{>Kvc0{%29wF8=QvIR(W;W7D2Y@mRrU1r zIWe*Gtj3YyReSK|7Nl9yad;3~3S&E8^the5J>)Rl~*CxKtp-K8}1TYv5hf5;~ zK~WSailPBzo<4oLR7{quuDYsY!-fri2G9sHLkMk6g_wfCpa3j6b?VeLZnt}k5L>)> zvH8XuZ+s8L)@=q6E(~JZJXHWHSeCs>{LscLF=q?p05mR_YmA;Nm&+NAM$-;*F(#VA zqd^8BU8z)NpE`AF<=L}mSC*HT4;2*^HRR>x9a^(yO*@F)PHgUw08p-4wQAAEjT^Vz zd+)th3=a>F=~p-$)&t1x>grk|Cd>Nu>(2oA6u?mso1GxxClb#Y0J6j3Fe2-dNF;*9 zGmpA`O-=Q0*s$RP03U%^3)~o$%+m=9$N^w%ZEY=y?1Nk`XTI~D?;HZK4i{9-RA-V{kO4^P@9!U@n$R@OfLx2I zjEMpOmSw5AE-?Ybj0R#cy$de|Adf*TAsA#LumIR-`RM$jiDnpPjD#yFC=gtFF&73g zKmnk{^?~mI$8i#Ixn8fgVN};k1S9}xF_E&evfO+-Q<44>kRY0I^+mIa%sFDtz_cR) zvHuzR`};NGdKrcZAkGUNjo5s@D28FiNH~6)nvR5*0#L9l3-RJ7EiG+$WMsr3zQGK` zgr?b6EKmT(JplZeCR@CTAp@YcSS;yL7C#i<)&<>u&JlBp@smQNjT|I^q8LC~Pfw3t zTu(_!Nh`?IG$|&Km=H@io;+hBXC{FJ#D<#zAm3~@E5$c5BO_z5ySrN#MUrwLQaPc~ z&oQRnskB3bc#yKJR;w;XeM-de{LD(kkW2*tN-`q)UAYyg-4D|(UKkVVuY0M%c7@kO?{zV7aB4Tu{z9mHx8n5)EG z1tI|_dvlr;fU2RPp`2luy!!h3y!Q6?bn!u}R;?0N&2bYmR<>mfV#eEF3V_^hx91)? za%9!J@4j0owjWkiRkZ;a3WvktD2pOFfQ=ygkVZ?hju(P~JqSP%!|u2SWK5G?Ga7)- z;czT};e{7!hlYm6xw%iAIFa7d)3bK|{P}Gl#I(#gVs>|T>+ibjuJr)cC!+p>f&$0N zl`G!^i4clQ%1k6NL!r=^sl277MZb0H)`axeU@-W%ZQJ$^082O=4vPu%@WT(U0I*`F z?Fe|_fd^i#t*spqKLCdg9m;NMYT5)~Q#|$fd_G#dvKQl5zxvhsZQHhackI~F4IuXZ zL9+!HGbcx<)A{eXfX95U{ z+Zh@fQbv<}Gr`c%kn)pHKB?WYV}~Aq^jk~JtgI~eo;`bBG#Ctj1DVD>m|U6X00g5+ zO#XX7EHM)Sl}g3jamO78SFT+7CV)-=xuH-fkmz>A;5beOAmQTyfZEzxb6s8Cn0Vif z8#jIp-hKM5Bc@KL^Ivn#HD7PpvgQ8)I0h23H;nkCWe9+sVHid%F@wP%17I)^2!s+P z$y6#8bKP~<_1tvRO>bvrW*!3B!PyBQ#q0HsbL}M>KA+DHz?#T*j7FpXw%cwyy>;u> zGlvf!Uh>Ezk6h;S`Dmlj=-C&ZVuf6u#zk`ftHu`>z^z2Lw1U^F32gQ+KiaTqn#xIk8@c91+IA@NPZ*PX%l zLl0sDOeFju*T})Qmjz-Tnoi0_7^Lqm5Yi1{G>|0)fDk3`1qsZt0f-(IKARA2Di4K1 zPLOw*AIIb?Y2juwAQywd^xqj71R=HuBtTgpo>0G#u_$CGPA3ymNM{WqdSnm_GUk2| zzxY(L5~tD!!GlEcZN=lVjRgjToPLZ3-*6z;(E&0B4rII`U=AAC0f1o`9|%D#n3*AY z942`|sc`WwcCP(oVEE5mf5o6Mj&Yci#GEbaM`L579HUd58S(8KFYF)^#^{tUK39X$ zoO~yLtdPt8O<+3XN(cnOFzdHP5pU){-Smfx1kE1?a_-pPRPiCAzdKV58o=TQyNdod zfF%>0oBi{S1<&m1Ecrcv_5AVk6WjF(G1YM;97$r%400{aWGW@B8YJ<5GRXckm{s%X zaN4Z^(kD1qlPV1xw9;_;r^9J$`Qu}~8RTMMs^dyHl2dsCAfY%KKs89f$RLO*N_d~U z@b-;t0PM|KgRM7b4c-p2N{xgHL@Jg5C{syT9m7$9tJ8)%u1*`i9c0mv1F{m&1i5$T zLCi^E{@fxEVKWF4S#IO&%?8nnognIioIgehl3V2F`&tB|E;uBBB+9s2`8tG@-g1x! z<~%=Up*$O8v19^SB+87&XV1S9Qy3bQ%BmKTh#W; zSIpVf?^x4!y<5?A0|0Dqs(5o(hUKpSu-B5Y?cIu|{}EA*6u`n~`|^JC)==gqwKU8W zD*f&vrQiOZHGR#?=Iqt)Ry6(O#s1tK9e(95Q$Uf`=2aW6GurBZUD&-FfbU;T`H#G9 z$=H%13;7qSy`}|9|K1I4XMZ`r=at9L&-+n}S6%jUY3uHGpQ`ZA z*3#!cTXFKi-}KDiy5DZtppvk`$4fe&RY_PwlyUt8ByR~H+Kg+TGUdPIWa!lD)RETb z7qva`$AO%xzJTJo7N2T%4Y}(#mQT|YW-TRt83q~ub+2>rRgvB=iZem50*zvg$AXBRcmP` zPfIg-QKm@ES1#?Qw}vt|{jQ|*{Xdm8zt-(nYNQk=S4qRdl$xC`3(fy*IIZmGd3{G; zFF*V4KAW-H6i}@1^()u!vl*}bLuu<94;1u%e$=U3Xq1KKfk>qAWvL^5wvcQ&fMtCF z#af!;@&J?_bm%u%XxxrZhSRox<1<|_g##pN#z zlyaeF%TAg!2!$|7#1!`~S z6sk%4%B8Jcp>dyIt#$nofM>1FSu64b}|9{2TZcS}>K%ri)ai3eP z_WlWgVV=^zCgL1Rt=4tyNtbpFfFfH+mYO0BGiN<1tIr1%i!al-Er*@DMYren_W=ms zlW#h|@#|$vDPUMUu6mcY5=52gyD@99x7)9r|A&E`A^U5F0L7jtbKhmtqacGF1}R1ENz(SdL=C zqxM1f}Wooo~7yKnsv0=8QoB5{lxaAd3KlCoI()Wg%CXqr4JQt_MI#D2|o@GB$c% zkv~PkdL3bD9>`81LAiugODS&BolU|(P$Oae=CD)?;-*ZKP#jH zf4wBd^F^CiZEW+YZaC)B-qhw*8$fZfT$Hw}(}oWmb?O#2d(}4&1?ATtaq1RH;&1_m zSc&VJwBaL1ow|iBUiHn#MpA#+=2aUgvZ5AXDNy={KDHaOS8H8I*XbQcn%o+Fp~^P` zps6gy^TiAOxp{*@c`5*Jn^!%;aFlP{xYXX$AX1O=vl5jhB+IsiWCdTkv{@8DQ4}X{ z^QsNUMpADX3d;Zc5r@8VvD(|paFknIUY_FVeBWkVZVD(?P!y+7NyB4y3z^Ll(+9v5 zEg9bFboPNL%9na)|DY`-J71%9wLaUIcSW05z5PnPskj4?6Tk)u|(2 z0`O53=g5}_zXZ^@C*Rb&r?aGF%ju zcdh9^e#??^-D_pd&x6FengF=owq)G@jy3&yQF$MT>QTa9pH=|9RaI31V0KGPFZh9h z7>Q*V4G9|oA?YQTm>>_zK#bo{V(c4?CqoPWi5G$oyXgLN#kZ~2x`N$)Wf@IzBZW%8 zu*;j!&#oBf3TWg%@qhs#Z%;&7rk|BKLL3zU@EOQnO#qO|a8w{lIY1t;)6p83wZyEd zs$xJ$DfW;gF&-4dO48mK%3PtR8T)UG&;0^K0)3OyVSoi%b<*%z5NSVI`GlCYQ~6v# zl-H(QDri7*yfZ)^n{$Zn2Vh}LpV4%Za?&Y0OYa- z_=LFr2ZPX>uQ@;w&H|6fVg?3oArNM~bhqvgP*AMIHKN41C^fMpGe1uuBr`Xa!N6SK z$W-6JV#fYYeLxiwAQi#+X(i=}MX3yqDfvmM3T~N2spa`a*~R{w<^6zaj(WN{hE&XX qdytV4$ZJygzdp~y0mK|a;62;HX$*`aSC3r;Ioi|J&t;ucLK6U|Tt4jp literal 0 HcmV?d00001 diff --git a/packages/phocadownload/media/com_phocadownload/images/bg-details.png b/packages/phocadownload/media/com_phocadownload/images/bg-details.png new file mode 100644 index 0000000000000000000000000000000000000000..2d81c5a25a461511e98c46e0fc90029f5e01f719 GIT binary patch literal 262 zcmeAS@N?(olHy`uVBq!ia0vp^j6f{M!VDzkcV~V9Qq09po*^6@9Je3(KLBzK0(?ST z|L@oNy-)x9Zllk;Ox|xdd$Y~*#TM(Qo9!NMbiB9T`Sx1Z8*4nSuJ+#7%CNJMVM`su zr#6FgK)sv=9+AZi3|t>Tn9*sC$qb;NScz*yiE~kEVo7Fxoy;nEJ`iUFUl@fa1J(M+jMyWP@S@;i(?4K%;baw yfrJ1CCw2uNhC^%$F$^v25_$$U2|pV6nHWx1iv%w8lV}1eXYh3Ob6Mw<&;$UpBUQiv literal 0 HcmV?d00001 diff --git a/packages/phocadownload/media/com_phocadownload/images/bg-download.png b/packages/phocadownload/media/com_phocadownload/images/bg-download.png new file mode 100644 index 0000000000000000000000000000000000000000..1bda547187e429e24232e2ac95fe3d526506acac GIT binary patch literal 257 zcmeAS@N?(olHy`uVBq!ia0vp^j6f{M!VDzkcV~V9Qq09po*^6@9Je3(KLB!d1AIbU zjjkE#U)9&Ss$+J}%;cPj^+{{Xla`K09qo?TxgK!!-s|mrz}aJu2g6JThKUU92CFTA z8aWF*B8wRqxITa|qthCb89+g?64!_l=c3falFa-(g^GA@gIz>+x#}JO0$pHxg2?+@W r42M`0au^QrI#e)l=rcTIt`T6kw^~F|d`Hw_pkfA3S3j3^P6;KZ(=!*GbD hjjfH7hx>yggVAZ;#=6VOM5H$aNH*vT`5gM;JtL;nXrE>D0@ zi0jRpH~;_t|NZ;-4<9~g>p%1WigOltL>4nJa0`Jja>QWe}Xi&D$;i?WLqoP$l+ zHeFr-R2Smu;uwzopr07+L<8vphBmZUrI3h^^B%xq`n*~s$cJF{EP7+p8OSnG6|N9H+l{5PNI7gHycx1(yC72enm9f)8d+mhOJrcU@-x zy$}5*xi4;A*t#&=`Fh(r-dO2fW}^b5;W3&VMsvexVK7=2j@AvMRpV&OV6|6H_V+Po~-c6={09IEGZ*O8WQz|9)m+X6D2776%(nxhnsAD5^a9YrmG; h!*Z2f?2Jr23}w1TDGooh7XURec)I$ztaD0e0s!~ADr5iv literal 0 HcmV?d00001 diff --git a/packages/phocadownload/media/com_phocadownload/images/button-detail-l.png b/packages/phocadownload/media/com_phocadownload/images/button-detail-l.png new file mode 100644 index 0000000000000000000000000000000000000000..d5a11a2a1e0faa6c70c1e589ff0c739bdbe6527c GIT binary patch literal 1563 zcmV+$2ITpPP)w(E zZ*psMAVX6$2C~zj0000MbVXQnLvm$dbZKvHAXI5>WdJZYFEKSQFgd6gxX1ti1$0S7 zK~#90?cGg}9Y+-g;P;%Wo{u}W<-~S~kU@N95ut2Yus~u1TaZ{FegbQL4qGHv`~Vb* z6^@V)t0ag7#CbX1 zLn@_oSt>~Y=2JQ;v=i;5>`2*ycDP6=BAj9LffyJK-be?L36)a1BsB;nr;(jV5#5ry zCtKHbYfs9qlnzpWpf~!!wu-i7TM}#fNLnUTO6ii+2#{SU;N?rt6!&f zq6MNL5H>7NW&Ve4=BShoS&V&kUHD1d`-Xk z)8!w3Uj02-3u|->Ms}c5N*h-R2_gcjAQjSyZU+(W;fBxji%9f+zq|K^xclSv`m_!! z$T~2R#@wZsQrff{5f%sn6opcXl#by`*JIugNL2v1R^xiHc7A?;|Ndez?#;gQ%IYD@ zIb|Ijvh$Qu+PE52T*MOsAcPcz-#_KsN3$Ywdxk3fa<_bIXF>Az?OU(Cb|?D1#mU=> z$7BH%l$?G_DQ#Arg2^1J5Jv=rFsF`3druytT<193y?*1`HnzHs!0yh@&d$#1@zbZW zJw%16nn*zY^M9q3(*NKho_zWSf)F4W^W#t6d*>c?OSkv7uHCUWzk2tLn-QU^s_Jyt z(nq0d4XFXmd`c;8ROQ8*%;#9MFTH;EN8kT}ma1B`=<7GSS`jQoH6q+1L>tvz=ul)l zrIa?TMnD35wuO!W33Ge(x_s;I76CATAZ)b)L{wEoJe;HxEueu;a%n+IX~QZ>66T;n z99=*O_ZVC2$M!<%lu`sRGj}I2#Zz%KLDsNKDQ#8-!W=;e5ky2pINeFsQa=9xNq2X5 zPM_&1;PWHIlv4VC)M@8R5E6_CcUNoS(OMgZ;f1?Jq?95e?mn8E2P1;acuFa4+{M(m zIVga6X$@mfYaOH3`oi5Jn6k;NwSH~Z%)B^Ukfkn0t)oY^|}Z47Fz&srKvu1TwRRxAnBOMHmrHBFtN$Zs-^Yy+5zUW!Nn5`YsCg1A_6IrWbS>hvh7Km|eg^x`k2ls2dCe&c)d$NSpQRRAb5 z9o<3zO4MmHo&1|>DN`J&pgeydUP>u#ME%Nle|B*2;o0GDt3exd=eeK%n-N<^Q%dPF z$l>APg9i`ZzxRuygJ0X~_^R8JQc4%(^z`)T=;+|!;L)Q;Po6yK``+D|tC&(sSFO%w zvpaY0h{$XEFzP9nn0*6a0Ru~;sb!!Ts;DW&u>_$TJj->sWu2loH~ N002ovPDHLkV1kf^;*bCU literal 0 HcmV?d00001 diff --git a/packages/phocadownload/media/com_phocadownload/images/button-detail-r.png b/packages/phocadownload/media/com_phocadownload/images/button-detail-r.png new file mode 100644 index 0000000000000000000000000000000000000000..afaa653340c2ff526e252cb0565fdc25c02d3a7e GIT binary patch literal 572 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 P00000NkvXXu0mjfio}2f literal 0 HcmV?d00001 diff --git a/packages/phocadownload/media/com_phocadownload/images/button-play-r.png b/packages/phocadownload/media/com_phocadownload/images/button-play-r.png new file mode 100644 index 0000000000000000000000000000000000000000..b60f73e8208bf9ba940d2b4500352dfd8d12ca5d GIT binary patch literal 568 zcmV-80>}M{P)w(E zZ*psMAVX6$2C~zj0000MbVXQnLvm$dbZKvHAXI5>WdJZYFEKSQFgd6gxX1ti0g*{W zK~yM_byGcS8$l3#b36LDTgfDMhjpMvU~u6gCbPKt|ld$u)9vBTT<=FPB6({E?q7_U_0{k!<{CuWYKh=}O=%U1vZ z-0Y#byOVrBjpLY^)$!#GUHyt~{;Ios_w!;poAJjFjYflh;|%~I5~UV)HQLtOKhBGy zV1WRD2stbu596^PjkMO02mYsc2UuV-nat;N_Nbz~VT@TWmuv&TmT9f`{yC!z5#d$Y z900I_*rzf=J=P?4bzoiAdPs1t0d^DM0}|Unz;9~qAs(QYc0)!az&c$h6*{Q_FSq+T zP)+{KZZ$_}*Fq|(a6j18W20SpmEj>vz&`n^Tv^~2k7jEN01X literal 0 HcmV?d00001 diff --git a/packages/phocadownload/media/com_phocadownload/images/button-preview-l.png b/packages/phocadownload/media/com_phocadownload/images/button-preview-l.png new file mode 100644 index 0000000000000000000000000000000000000000..4b11b7071a8278e9aba4c574033d7c76f476eef3 GIT binary patch literal 1415 zcmV;21$g?2P)w(E zZ*psMAVX6$2C~zj0000MbVXQnLvm$dbZKvHAXI5>WdJZYFEKSQFgd6gxX1ti1mH9DVJ=aK*e6m0L zFC+3_Wri7k4r-X0QzZp2TR zd*UK;mK28fkr>J*5jk55NdWM6{4WDwu;cHqmwW_3E&oL1D^kE9)A7pA3tR!@1gKS;0oD6^mt8wP6WD5kTgc6ZOD+VGO00Rst z2}?OG7dt;l%h@s;0Jk!6j%P7x1fn{iLp~8%u)=UKAsmKm)*&rtt_;#ejPIs{I~O|` z9`Co${le~Gh=_1H!>L^;5m~HaAQ*@+L$Wk54zsQJ!H+H-{P^D8D;HNHxV`uC=YM+q z%N?)f{H(Ep5ux>+h%8iz2t)$|u!Jbd&K2Cj-h1!dy}o)Gqye{9FTeM8Jo@c}5r$)n zgaD}>auHdmk{AepVX%ah!R-AvzLqbXTRxo3a)uEGTV1*E)_Fd7Iq8T@nih8=vS0-a z5b#Dbq(ldp`sU4jJe?+_l#qZ)Kb=gbo%f|ORiv<>DWF7TabCw09k2*`pmOlpJ|C@b ze)INCj~ZkGHnv}E_m;zR?Mq9E*(~v>Y*R$!+6GzzQv1A z)-IoWHoX1rD_mGgRt*k-aHvF6L>6K`d*b}gU4&Jdg`>_Y>LIvi-2gsFR zHWu@Mt3*>oPF^w6z%Ta~Cjmpy0yH3C0b|N6$&Kauw>H}B>c+$F>(`jyWSHpyPec}= z0084SU*;c15QNRo=0JdfaI};PO1k#lr=y##X0JU{rX{EVN<>at;r!U{pPTs}h15}p zOoo9pl5Up46hQZ;*VfpFW#odCVM-_wIZ4Ic89s0M^eobvzL{N#&r`N%jBuObZE+4jlcCfEmpIA_8WrEfA5DRmPM4FQWwY9ajw)Xt_^WELu>2&Ju zx}+i^r>+c#!z)*=nAvbR+}YU~kH@Vw#gmAfI*W+b+GH{rjYi|~xbJ(-ok}@P)w(E zZ*psMAVX6$2C~zj0000MbVXQnLvm$dbZKvHAXI5>WdJZYFEKSQFgd6gxX1ti0hLKa zK~yM_b(6tv(?Af0|FMT8_QpuHQzcR)7(Xrn%o4mV_07{P&-0=vj4^!jJ|Utwjwh2zp6AQu zaPN)9JMPIDY`}vF($B=D_#>0000< KMNUMnLSTYvEcRLe literal 0 HcmV?d00001 diff --git a/packages/phocadownload/media/com_phocadownload/images/category.png b/packages/phocadownload/media/com_phocadownload/images/category.png new file mode 100644 index 0000000000000000000000000000000000000000..e6703af0e35f31d8277ce160de940910ce3fa725 GIT binary patch literal 932 zcmd6l*-uk>6vr=%O|2RUQwa_a^5Up5m{DWkYBa63#U|PksR(2i3RGDVkx~R=Vq73@ zg8UUZ#tx!UpZTFmhe=D0pF@hUi8ih*Vn{Ds;Z@Udca4mO;Q3{(dCOVJ^PZ=fjfxfmUg&D$;n{w_ZAXR1qW zHb0*<{oZZrFqxh@KPWwKN~VoUr!jN(Wj<(!$Betjp6#A^s02@w#~&!b1K9Dm+|ep? z7$l$t9=j_B&B@?44D`Ez9(LRmgIg&>w_tE%CuoHG>$ihi*#75^(JNcq8uyG|-paDp zwkFjVF1|l>hZN~tUf&B)Y222j?^=Fhe^wa;t%zMxM8D%S%?;yq(o9`?$x&T}TC0J? z`6aoUL|LI$Q&FNVE>jxUDYzXVmxxvI4S8-}6iS%Qt!9aD{y6WV=w0Hj82+)WuISj& z?ip44$ohe2u1J#!X%a~ZLmbE;WY+PL;^qmoK<+eK3X8u zuFZ;1_{n%)T74!`+LDoR@6Ex6hVt^6nJUrQ*iF}*Ld{y9EM_B5Q2+8pyInkwsg)X~$lZBS6)_UcnQJ1eWmD}zwD-_(|ub9Bo4gD|cx@jt$> yAnir_>k3^E!&akJV+v28mG%K%k()L<(bKW2GhkfE9)Q1zJ#266_6y6f~9+ETMovKyY2yAcE^M zyEAX*zWd`Gi#M}E%}q{n&bjydIp^Huz#ASjbFTgP9WkUm{eJaHmYF{K>h1qeMYJA` z-1VZ!Ha|c2JvqP+-+al($5&bVbMp&z&o9PtU5Tiw2&#gr&dg**)y&VmbN=Ls)qSIcStEBDUqhu`VkDBPE{PeeC1{K{zo6A9KdFV<^6U6 zTOFNWJdB8-fQpi$Mi6>}@oot}efVMwdWO-Kg zdZw&OERdc3`rGo+lNWP6vtvK(Z?MQ?;>)|ZXEz9g2e`=&jdQIvju3*P?T8lW04sMM ztgpnT&I;K(oRFNql0+XikbKXs?L-1}$^fjsqGchnFkZegCwg7;ED!9qm8b2a5HL3zS z6TZ@cHAo&z2?p zUk71ECym(^Ktah8*NBqf{Irtt#G+J&^73-M%)IR4fxrAZ4@_Z>LpB(P=EDgGHs@(H<#3lpZ>Z`kgozhr}u z%ND^SH)bT1ai5(%GhLBQWyc2T{QCEEs*fL)cv-qlud%l7b=JzvYWCyXgSnn09r_m{_v@Z)oh|J@z2BR0prBZZYeb22QEFmIW`3SR zNM>#-gQ0=GfuX*EMT!8&N}vh}kc!~^w370~qErUQl>DSr1-Hzi)bjkI>|+1T@_s-y w;+`&!AsjQ41BB8Tm{J7}K44H|mEd4vkp0Q9a%IDnLqH`Ap00i_>zopr0E{F-UH||9 literal 0 HcmV?d00001 diff --git a/packages/phocadownload/media/com_phocadownload/images/htr.png b/packages/phocadownload/media/com_phocadownload/images/htr.png new file mode 100644 index 0000000000000000000000000000000000000000..6e5819eafdaf6491c51c22244f3a74f255dafb2c GIT binary patch literal 216 zcmeAS@N?(olHy`uVBq!ia0vp^oFL4?3?zm2ODh8@=3*z$5DpHG+YkL80J;1DJ|V78 zKmC9I{XY=A`11eD&;JePZNGt1oCO|{#S9GGLLkg|>2BR0prBZZYeb22QEFmIW`3SR zNM>#-gQ0=GfuX*EMT!8&N}vh}kc!~^w370~qErUQl>DSr1-Hzi)bjkI>|+1T@_s-y zQl2i3AsjQ46A}`{f)W^*(hN>MU{GU~_`t*<-OjMm?AoDdpehDWS3j3^P6Vb2f>2}Fa82O3m(Ob=t*sniin`NpInLyMJgI`saru@YOPfh zy4g0#G*cV!#N%;Gq9_VH9?v%kjS3Rb1j8^;C={$Gp=lbj z*(?%?geA!5^Pok%UauwjA)v4g2`HedDw4_Mk4hhBQt?e7YJ5(hcj|3dNu^TOPGnjB zTTsqd3GIZ=Bb`n=7no)dflv&K(lsWw?lH6T1Yht0F9qgIuzh}ym0%n<3d3EBWB*pg z+G!I0lbAEXyd>k|QNuwr4=KX1D+tLPv)j@C1=N4sA4NF9A>HcO3G47*Y6!+SrUH-7 z1hb;^#S=r|`aMh>J#dWruAEf}gcR(DRUC`ZUev&$Sbh0SgLiTXeeHEU<$_YV;9281 zym`igIE%Sm8DpDw7@71Tv^EB5xSdUR*0$Mqp+Wq8OoaZtOg52&)zZ;;M=7#C1Yd6x svjx>8ad4e2x|*xHHwRjcjs6zA0XLDUqKT6dS^xk507*qoM6N<$f7IZ~ebVG7wVRUJ4ZXi@?ZDjy3H!m?YFEBZ%7`Vs)00II@ zL_t(Ijir-4Yg9oLhMzO{dUrP%W0F;3G&YKY#t2DaDK;8QJ6j`m63`!EGXOKhIYP|-<-pATh=_GMe!MEW zLO_{ea)7~w!eSl~U+p7Rz+n3dms_YW{4#l9^2Fk6!4JVG6MEM`EnPr*!yiLCI z9W%uc=*N6F?q;~eVfBe@AHdA)+LhV&8(Vp+k&LD)ViFb(a7pa+9 zv1{YocOPGO@~VAl_F^rBsH*A^3_}b=q({+MB`;sSS?v!WIp}Y62kHj?0tR>}CqUr( QOaK4?07*qoM6N<$f(OnZ^Z)<= literal 0 HcmV?d00001 diff --git a/packages/phocadownload/media/com_phocadownload/images/icon-document-32.png b/packages/phocadownload/media/com_phocadownload/images/icon-document-32.png new file mode 100644 index 0000000000000000000000000000000000000000..52b7f2de8c2facc6091117d72cbca6adf334d277 GIT binary patch literal 1464 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 literal 0 HcmV?d00001 diff --git a/packages/phocadownload/media/com_phocadownload/images/icon-download.png b/packages/phocadownload/media/com_phocadownload/images/icon-download.png new file mode 100644 index 0000000000000000000000000000000000000000..6906e3a8280b324164509920e763b0e9124c72f2 GIT binary patch literal 775 zcmV+i1Ni)jP)7IZ~ebVG7wVRUJ4ZXi@?ZDjy4GA}VVFEBZrgI{_800Li0 zL_t(Ijir*!OH@%DhMzm0xg%j4M<*1WlwvT7J{7^T;6~Jpk!JJ%{61Yx$oh4l?xg zx7tIZnrcx^wQvy;m#25eoPQ4RWk_%PeMD8s`u@wSefyDv0;G{BqxrV}_4i!;9U+}g zv$?rREEdCc-HLoAQCbrkg*F%<4Gj&RwU!_VDz97qVAfi$KR-cds)PBpPrSZ8 zLo^y?V`GEC!NE}>rKC_Okk9AweIH{C)>^dImGP5HZ+I|ylSk*@GCMnq5Q3VT8l;qn zAP78wAPCS}lgVUo9EV6GQmMdN%e~siEG;dOOeWD<)6~?2l+qJH5TKMoDTUS=tu>D0 zV2s&^VvNBUgVq{rEnyfEh9ScD{mMaO3~g;~74x4cd)JLIr2r`<@p!zFTvpjwzI`u_ zwU)-lMwC(r-}lo)Lqj*DlmtP*-oC7IxnUUYL$%hXe*q}Vp|>Hv^7H@z002ovPDHLk FV1g|+NQ3|Y literal 0 HcmV?d00001 diff --git a/packages/phocadownload/media/com_phocadownload/images/icon-extlink1.png b/packages/phocadownload/media/com_phocadownload/images/icon-extlink1.png new file mode 100644 index 0000000000000000000000000000000000000000..ee892b539ad29bb3b7a09c75808582e2b793242c GIT binary patch literal 895 zcmV-_1AzRAP)7IZ~ebVG7wVRUJ4ZXi@?ZDjy4GA}VVFEBZrgI{_800P%Z zL_t(Ija8COXq-hD$A8bv?7mGl-DG2A+j@wI5?Y8_tO|i_DNP}vMkqy$*soI$4dkE* zy@;oRAqTw(xmZCIp|{e~LyOclv89F_r167@DI{h;8qzJYn`HNW-+4T|o2U=W3_Qd9 zW`6ufRF$ER@0@GP?t0${uK~LNf!3@7>WO^(=hJolUjD9rG&?=oq*bD-j9i+X`DWtK zeq*Fd!J_PxDuA+93;A~LDdpwH#;*&%b^ka$+5m6>#!6q>*{)w6V~q$TmlCNbij>VT z=EzICd9%;)z^}Ed-(M|^U(enB;;n`O5Rnd5wP|Ze8E^u&wTgg20MEW`n$b7*^8AZI zo6Bat0x-z~6K4Y$0VDGNVTIC@O?o>*4s;9W2cE&E>^nOO+pf-nAgBmFRxm=!f>*;I z>q^r{c;BS(LV!3E?Eq9k0Vf7UQ9z6&A$U-0APvR~-dhv{V)z#TcoJVh&{j`9r0jNH z28jhVir-161@KYQ@Y~V1c8vkN;HdIdK}JSK7#<#GqY-jp zd;);Z&d$IAL=EpF@6~kfk-th00JwemQ#6j5oSY<+Nuc$59r4QNpH1npp&?maUEOj3 z;Z|J9q;1a!$6w8SJ$=W_-2Q=g55EkBekzp;i;If{K|pVBFZp~PV+^zR=i*|qSQb^~ z(1ly$QK%;bJ!qPhj-DqsQqSePBnVOn@UY$&M$)dYwEvtIyfzw5Un*6q8@1}Oe*l%o VM@o*MC5Qk3002ovPDHLkV1j>3mCFDC literal 0 HcmV?d00001 diff --git a/packages/phocadownload/media/com_phocadownload/images/icon-extlink2.png b/packages/phocadownload/media/com_phocadownload/images/icon-extlink2.png new file mode 100644 index 0000000000000000000000000000000000000000..c3d1610d9c22c872da2a86f3baac032a3abbd23a GIT binary patch literal 907 zcmV;619bd}P)7IZ~ebVG7wVRUJ4ZXi@?ZDjy4GA}VVFEBZrgI{_800QGl zL_t(IjYW}5Xxvp4hre_FcV;@7kaWV7@v(@AMM4OoDJs#7v^0|GLJ38UkE&o1+JZar zi3&nBWT7i@A-WNSxK;#TwTVF$l2h z-^~Dwjh)58x%|Rlb@Srs6R*#Gm+KBdM7qr^a83~e+e;Sk0wMxG+D_tl>VTjMVv1Ra!$Aa86>o;2(3zFn8<_8yC^1ayhzZ`n zX#j+PLnOqkU2EpA1F(*T*4x((O+-*2kN|=Z!T=M`cI!`kXV(sBYqb|nW7k-^v`T)p zNUASM@#+>w9=wCDWQ^IF%cKt_nJZsLtl=`5Oriq_*>0}VY9{$+W|o-k^318Hs8lMf zudnm-h2IFGaZXM=gmVG;e4fZJ&aL&Vyy^CpE#RZ?J|>b2c>2`iyz$}NY|Q_|O*h`a z(9jTt+}})3&yz0{85tSjfy^jtYirLdKp2LE)}(f2hrXT!0LM;esWqBRPEIm9I!ZR1 zWqf>`YQ4$Xb1wkU+uIv+0RL5^KJ?zA$+&DRUIpOm55B^}kg2ID5{WjnQmG)`c>ld= z8#{hna=Bd10pzbNlu`%YN}aqboA~V4&vo|u3!FG|42F+VDwSAXUM3cc(cj-sI-N#U znY%O}=JWZYm>CaGy?bt_{KJHqzmsOGJGycxa&!8i#9|Qy*h;mU*LGIyaD6Z;c&pbN hzECKYtGnf~{{i&|OVXvJ=I8(b002ovPDHLkV1gG3qYVH6 literal 0 HcmV?d00001 diff --git a/packages/phocadownload/media/com_phocadownload/images/icon-hot.png b/packages/phocadownload/media/com_phocadownload/images/icon-hot.png new file mode 100644 index 0000000000000000000000000000000000000000..bfc0c02d75ec37e19662709fb21582134d237aac GIT binary patch literal 948 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 literal 0 HcmV?d00001 diff --git a/packages/phocadownload/media/com_phocadownload/images/icon-loading2.gif b/packages/phocadownload/media/com_phocadownload/images/icon-loading2.gif new file mode 100644 index 0000000000000000000000000000000000000000..88fac73dca427cd918e7fe9fda891fa7517a0c72 GIT binary patch literal 1569 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 literal 0 HcmV?d00001 diff --git a/packages/phocadownload/media/com_phocadownload/images/icon-trash.png b/packages/phocadownload/media/com_phocadownload/images/icon-trash.png new file mode 100644 index 0000000000000000000000000000000000000000..70938c99337b54607d945ac819fc7c7ed37799b0 GIT binary patch literal 854 zcmV-c1F8IpP)7IZ~ebVG7wVRUJ4ZXi@?ZDjy4GA}VVFEBZrgI{_800OQ_ zL_t(IjfIoFOB_)Y#m}2vKW1kfQOPP%P;}OSL=8BNkitSl(`8AzC@<#cnmaj637Zy!+luVVDRSa@x!N-E+T~QVRc5rBeCW+1Y7d zUte#}&(9y-kFkFNN~O|ErPQlJq41_yEEaTKhwHl0_V)JIIF8F38yiRe1e8jpcS@aU8g=`yvJG z@9$@%l*2-Zr$UJK?(S~0R;$6bZRolVDP;=l?d`?E!2tm1DL_j3ObGFbh~|jMjG~C? zx(*^j7=~bsfrwHkBO@blT^9h5-QC?ag%DpRCnuNs`}@(>)`n)YiPO_lTwGkhwrw!R zAcO$t97Kd>vxy{0?&d{A3;BG0X<%Rgx3{;5q6n5{VRm*FU0q$M)oL&d1B@{khJi+- z0i_f;=XU_k`G?WbQFxw*o0}W>zK>R`1;!X0$HDpeIh0b+G!2gD@k|endf&dc}6R6kgs8*}+eIG#(0081R zMjXeGQbI}z&N-x%AfgoT>+I|drfFh&dKxn`Gq5ZR0Khqi5CT0tJ&;mDDTPcXgIq56 z*TKrl%Fk-Gx^sAV2+OiySr&9%M=qB`rBZ=y+sNnh7#tjgWm#BQSU{uE01?&GJ4lk` z?eX#Pj_>=g9mh$nmdj;jnkHLcUk4F^h#-XELWsH$V&=g!t*)-V=bV2gq6QJ&5YdmV gt*vj5zUv?T22}8f#@QPD{r~^~07*qoM6N<$f>=g*=Kufz literal 0 HcmV?d00001 diff --git a/packages/phocadownload/media/com_phocadownload/images/icon-unpublish-g.png b/packages/phocadownload/media/com_phocadownload/images/icon-unpublish-g.png new file mode 100644 index 0000000000000000000000000000000000000000..6a0e63664beb9ed22bd1cf2885afa285af02f153 GIT binary patch literal 600 zcmV-e0;m0nP)LlFM%5KoCVww~cK~urY=ONGw?8|G$P0NH&2s z5A$l=cGoOMLqZ-SjplAzYE_-ORk}(<_#cIzKb&)NJRYg*8s{7$LJ$OGSw^1cL{X$Z z)~k;WPN$P>HXC}q9>d{~APDf@(=-jc-Hxv7n9XM7d9J-9?0 zG>8ac7!pMhRaJ35pIIyxj7B4MU%@#io6Uyda7db__h}-6)|#&CxL&VhSw`EoyuQBD z@AoB+W2FI($0J&6(lq68IN-gf>pHymv~5ezeU+jB}2vs@{)S*Y$&KYwfoe z@AZ0EYblBXV+`~8{5PO!8nP_oa=9QPJU>5w3s|jIc<*_7dcqh3fCdl|x~{wL{Wp2< zAKnlk2m-9N1VMmvj@4@QBOpl^c@gIk($kBSZmpCw-iM|nx<&2(ONSY3@FQz z^?J?ud}g^^k|c?OPf_0Q_ww@cf^&|dD2U@20BbGA7_`sL5?JIw-oc($E%(wIBf1W=4=lIU| zr;fcpdGy_h!*5R<`f+IQ^CLTd?pXJ0=h`1zmw(v0?ZcL>UpB9Ny=mQ#b&FqZSo3w= zl3%Old|I>e+p2}%S1tIudcp4%vp+9e^mXZi2dm~kTsiOSqItg-P582K?(OB%zs#R| zd+F3)bGkmxnfhyH+sD~ce@w3XHL33Vq}rboYu`@l{XU`g-Ne2R6Y9S7HvH%={n%Ui zuDjtwciFqnk{_-4?^|m>wB)~QuKCuS{h_JqTVwjGrka;^<&WxW9@o`;u1I=WmH(o$ z-zp!MER zi~S)s7yNAZ1zR5WH{Ka&e89&D7%8*=^?w6KSw~5bUoen67yyIB_G|n=H*pqtL>4nJ za0`Jjf_ z%JP+#OVf70n6|CUVUFIE;P>g7l9$4?nLf*`c5{m@ZsfDRv;71E!^0C1+nygVm literal 0 HcmV?d00001 diff --git a/packages/phocadownload/media/com_phocadownload/images/icon-voting-small.png b/packages/phocadownload/media/com_phocadownload/images/icon-voting-small.png new file mode 100644 index 0000000000000000000000000000000000000000..6ded95bf65be565d366460336c340290d61721b6 GIT binary patch literal 1401 zcmV-<1%~>GP)u=QrQ| z&bhxcN<;`7p66Wv@~-RN3ClBffLMlMdh>=|TP*40=n z=EPz#$F}Y7_5|`g@1$+pL(yoISS*H8YS{CdIG^Y}Y#HsG?ZU8cw z3~Os^_o~(EIUw!2ZqNprnVA{1ENfILbqqKPbm_XDux;Dy>FJ5`D#94yPCvAEL+f`Ce;LN=Rab#+xlWI%IW z_koC9+}PO28HRyrnrNC98irvYA`}XRb=$VjxUT!G*`wLn*)iL;ulM)&#|45dQAExU4-emgmR%be8JXPN+`O{5xL62+pkpAl&aRfy_Nws%FqPU8VgN}n@Z-ykPPNFe{37CLln55dh zAxSD5=tW}+i&L2O`3g|t9>O^w&A7B1QYIKgV-!WxkSG%9m_&%9TC(#L@ByKKA_FV{ zPYAfCWP%gu+$DmI0qD@S_-#X|-E?K3h#(ATjLQRri0P#J(* zj7euhGA=%f0qhWv321~HlBCjsULw>QYSc4~mT&-JXF~#UY-+o*4m>BzUzEwzD~bS$ z!z5L>A+bk+xX$PG zmo{wVfnO*RaGo!>8uBZdB*ztgra&>In%BVZWGQpG0ci&Tl(>m7&2k7R4fx#R>zxcK z4A2z-M}T?FuVYsiM=p92rcGE13f)UKi0x!Q#xZ4}GE zJVjn{n*xJW=;IaB{7RWLyEJ5(C`;U@(7})?-ufT%KQrXNwJdmIa>V`T00000NkvXX Hu0mjfi8*^K literal 0 HcmV?d00001 diff --git a/packages/phocadownload/media/com_phocadownload/images/icon-voting.png b/packages/phocadownload/media/com_phocadownload/images/icon-voting.png new file mode 100644 index 0000000000000000000000000000000000000000..4ec6df6583a7980aa6df9db2d38bf0895b57ec42 GIT binary patch literal 1735 zcmV;&1~~bNP)!N000004b3#c}2nYxW zdF%)2M2rwgk#L1=U^*mTg$uS?|p3yd1p7_S)VZ zC$5yA^wUaj-+cBv@4em6tk7DMq?A%VAbj61Cz)?0q5_s>T^2$#fT1MwjUgon5H?PlzQg}ft6CWlya<4 zD7dC+VwxuTeBPB(ey)`2xIf(z4_lU1%x1F)ArL~4%jGZ(;}|g9=|Z8kMk&<;{1oVu zQl2ynqbP(p4D|N&^c?U!Z_`D!T8;Vn`KdUL=YWS=>jyy)`~#Q*{^R@pyci!Jzipc4 zpyN29l(HbDWMiAAxox6mvq=yHL{UT-hHJghXf!OX^|)o4=5N9ALRK{rmUlGnq_ccpH@2+1XkYMHhyKhHi?r zuk_u!chALfeC^PoLxprYy({R_(h}8bby{mZGBh;w7iewXS}CR8wr%^?!Gj0$xm+$0 z^u>!8JbLsfjN|yY@B5Xt@lD6g_x&$}AUON<>C-1GD=Qd=(Xs3GIGK!+#YOS5ek01Zqb={-={r%GOJY3f$o6Vj9{@f89$8k{z zL8Vd&mY0_&gCH0Sg5V3^_m=>aQrDv>x=^W9E_$AKB%96J&1Un>c8+Lw-km#l<}AyK z<2e4L(P&)veSc+}rGuQmj}z`ve`bqQ1c*iOU9}tY{a+2wZEe%`-_SVvr#AyUa5uBhT_Ri7>E@66@6mN1X+t4M}&~5m2WFoaZCGZfUNHb7-zn zps?%Y4WPy}Fv73&R!dV7Z)0(bSIFZggsuQ{glLX4s<*c^qxwrC&a%i8nyeqOojL-R zsG@mmBXlcx6+S^sfJ^|kfS4Miy1S(*iPtemBk8_j4gjxF63Hx$LkcTlVw-I(y&d=% z7T%_0bzq8!DI!+dQroOqx(nFl6scCC1~5&?Gwu^GLcqs7zj1lq$qk0K|lDJNj3skvCiX)`4iRo@>u8KKKVlNQlAETvnT*mx=So&3tlG|%b=eWcXGW>)zxxKWs!vMWN zFW@AzbZ2l$*kl>w4O|4PnkwSr@i`^&!~RR-QlyVnzcqn_fc!p|&TtZwA|{8?^ztSL z=xw{|f53gFh?yhiAu$hFYPa+sxQ)#qIYKfNNC6oj1*BPhj@YhN#ku+ewf?%mA{I@? zh5i#~_?8>IgF(K_!gQ+{;NNSOeqZ0jL1G(-cVp=kDdGfRfYfd*ZR2ga \ No newline at end of file diff --git a/packages/phocadownload/media/com_phocadownload/images/mime/16/icon-7zip.png b/packages/phocadownload/media/com_phocadownload/images/mime/16/icon-7zip.png new file mode 100644 index 0000000000000000000000000000000000000000..99ae6fc6677bb9c0b47e740778a315a56b1fc3c5 GIT binary patch literal 551 zcmV+?0@(eDP)hnm57*rzi*-_GEo$ne!p+>JU83z z)&xNisx(cXT-QZweNTXTy$(R9)4AP=2(IgLI2@joh)|a0-C+RBvH+OR=Y(MhfH8)$ zED;ebtu+p&-3toAAqW=5E1e`$0~~Ap9a_X zzK`d5x4tY(ilRV?2vt=*G`Qxi!CMP;Jv@qtFdB_++ef1jBEogCs;Uaxw#l;WF5q&x zuvjc^e<31VE*EUueg(vFjN>@;dcFTXeKUADolc*I!y&e9ziYTC3W6X&YyDE2&1T<@ p$K!LFrk_7z&}cM%b-UdkzX4XSEHy8yRp>>VCD?q+4djE zFhLZ?kYNHDo&L{yjWHmtbuK`L3F?!K+qEL*rc1bYtAI!AAI^ET)*x$bE+7hHym>m8 zsh{Hxc z0+?}7%>lS005jv|&N1E(Z{Sz4h)Qh|%#6nmrZ5#s+=(ULKB@ilGIKV;;@z9r-~El* zqJ!7VvtVYdE>*C)R2hE*tu=@UD@_k8O)uB{zl<@bD-e+{gn&}&T)c5lDFq<}h{&f> ssniOBV58gZ&R;k#M}q-)|*zi+m6v_1bBa_z|1dhCL-i{j-n{e zMN$3^-?jH~UCd#bq4f@k=v9L_j*(^AfgodWdv9PLsmu&!#&9?U04Sv}o6Y=2r4+i| zE|?j{7zjfIGEbddz+f=&vm{AsbXSpxAczdAXXXN?)2Sy{Et~-WXsscPC9hu%Ns^>S zuHHL?#|j44a_u2AV>BAo=t`-TDntZfjDe{LxPX4Y?`NG(r$$~1pqjzD7oS_+pn3+* zU_2iCnUoR$P?ja6l)lPSz?!en>-AQM%T@jb(E19_KuYP!aU3HI!_^9!2th+UYv9Ps zbRt3^Tif%S>?cTTSj#@(rE9TRAWc&UA+E&Rz4*(;ul(e4bg>BlUv>0fKU1^WoJ3Ld Z=>bTwJbCQ{8OZd# literal 0 HcmV?d00001 diff --git a/packages/phocadownload/media/com_phocadownload/images/mime/16/icon-drawing.png b/packages/phocadownload/media/com_phocadownload/images/mime/16/icon-drawing.png new file mode 100644 index 0000000000000000000000000000000000000000..8f1da5c333fd0e97559e809da86928bae710b4a5 GIT binary patch literal 679 zcmV;Y0$BZtP)*gHC!F64q@T=P3!^;h%tLYE{MsM_SA$P9D#Bm(T<#JAVo`>goEz9NS>)gDPqstC) zPl}SREZ)o9L(Saug?Nw{VqGSW-%i zF+`@P5&1msAB9pL+B5!y&%n@FFVR>h#u$I3lnBrBFvifBo5R}MBeML4vHDL6?>b2g zrih=l3CDuRQZ{S&6-+#ij>l1{6hpTTs6TzptB>1E=DJB{CTXKTtl%3Q866IB<2?p zUk71ECym(^Ktah8*NBqf{Irtt#G+J&^73-M%)IR4FVdQ&MBb@02Nbo AR{#J2 literal 0 HcmV?d00001 diff --git a/packages/phocadownload/media/com_phocadownload/images/mime/16/icon-folder-open.png b/packages/phocadownload/media/com_phocadownload/images/mime/16/icon-folder-open.png new file mode 100644 index 0000000000000000000000000000000000000000..2aa5cc7571c872c8f10bbafae65a5ad501bcf519 GIT binary patch literal 431 zcmV;g0Z{&lP)#5i+25Ey z1eW>A(TJZct!&j|`k;COJ3TXtQVsytTJGvML{YngLVrtHtim3w?VOd|_q)l$Cb{vs zkD7(<;r;Y#yI$jXZ+#Ugxz$QB571FQokpWyx1TtpC>W?#ig|UqyIA$73V}a1@wae~ zR`Z(Hy!+)+K6#tHp#5t@~g&mrE6HM-f^~=t^SC=NDJo7J@Va1tE@8 ZegpsFp=+X_I-URk002ovPDHLkV1gz2?p zUk71ECym(^Ktah8*NBqf{Irtt#G+J&^73-M%)IR4fxrAZ4@_Z>LpB(P=EDgGHs@(H<#3lpZ>Z`kgozhr}u z%ND^SH)bT1ai5(%GhLBQWyc2T{QCEEs*fL)cv-qlud%l7b=JzvYWCyXgSnn09r_m{_v@Z)oh|J@zhnm57*rzi*-_GEo$ne!p+>JU83z z)&xNisx(cXT-QZweNTXTy$(R9)4AP=2(IgLI2@joh)|a0-C+RBvH+OR=Y(MhfH8)$ zED;ebtu+p&-3toAAqW=5E1e`$0~~Ap9a_X zzK`d5x4tY(ilRV?2vt=*G`Qxi!CMP;Jv@qtFdB_++ef1jBEogCs;Uaxw#l;WF5q&x zuvjc^e<31VE*EUueg(vFjN>@;dcFTXeKUADolc*I!y&e9ziYTC3W6X&YyDE2&1T<@ p$K!LFrk_7z&}cM%b-UdkzX4XSEHy8yRpgw0t`#U1?IUf8q|FA_- zEaiDlQ4|0u@bK}!Jl`3z@#=u{Gd0fS8F@A3i%a=2B+qktz21@yArL|U;N|X!pMQHs zty<=j_9d4IXAzVr#)5SNN2qFs461Dz2&FGNy4EMW}6ucvy;>( z5;nH?F($%exV!u(&IeQ#?>)vjhpO`9!@rSe?7`Lf8B!aQSc9mdz+|;VeImugmY;s@ zqpCRPFd>X-8?T0(o2m2VXQydoDK<7Fv7zw7V0Va!awe}(E+wpQ9iXa&5U@uh#Kv%S zeui>tF(x855jHkF-FQvmgw3~aP*w6;nPIH&M>qnUovyLH_m)R%TkH*sW4E(Xf{Di4 z@uG|hPwQ0WBw!*js0eE>_W0$=KRnyo#|Po^g(lx$yGWywA_9}ulq8N$0;cOJJGug;Fo{Xeny9&4@bbvm8-#l=OEB*DfJH?Fk*_lZ;$0OuUt zZWn89&t_S6yWj8M>2|x9KJ1alQ7V=CjYi}4J5=3(H%{8rYXATM07*qoM6N<$g05?9 AwEzGB literal 0 HcmV?d00001 diff --git a/packages/phocadownload/media/com_phocadownload/images/mime/16/icon-img.png b/packages/phocadownload/media/com_phocadownload/images/mime/16/icon-img.png new file mode 100644 index 0000000000000000000000000000000000000000..add1c5915f43ce85974c751787073adbd23028b5 GIT binary patch literal 671 zcmV;Q0$}}#P)Y9xF&lZFV~m-_0C}F%ZnrlQ=N#|$ z4|)FjEwNT1YK2TaGImHAkV!x$5oJIuh!+6fyn2Cij>I`fcQ9c2eiND31T9Q23*yj_ zT7@bjVPv5Uh!vDqh`?EY%)D|W)>>4pM&nKcRn-InPCLSUfQd&8=xL-pFG(vIS*?ar zf>cv%VXquil;-K%v!E3hV?(S(aDrH&W&`fFCqzwcX^||`i1t?zy!R+o;pY(6 z@2zmsA9FXEr=DoeCy|v@b9_8tX}L;NDXWi`h-m`S#e0u(&Ov|}BNOXTQCO|d@#~_b z7)uvk~J_NpOJ=opb!u}#5=%1WYNfUw(n6Y6pDDj0wp$Il!m45~mom>Gn9$o{gQ_G((KTx_t^Z`>$ zaHae2keq#R4QS+bPQQJfX^AWOBK_{a7B-(W`TqXpOn~8V$mji!Buc6F-rnBY`uaLr z>l=x!wX|9-lv3?vVPRqG=;&y>)oQKH;vmbicD-KT`U{mXE~Mg5YPhnm57*rzi*-_GEo$ne!p+>JU83z z)&xNisx(cXT-QZweNTXTy$(R9)4AP=2(IgLI2@joh)|a0-C+RBvH+OR=Y(MhfH8)$ zED;ebtu+p&-3toAAqW=5E1e`$0~~Ap9a_X zzK`d5x4tY(ilRV?2vt=*G`Qxi!CMP;Jv@qtFdB_++ef1jBEogCs;Uaxw#l;WF5q&x zuvjc^e<31VE*EUueg(vFjN>@;dcFTXeKUADolc*I!y&e9ziYTC3W6X&YyDE2&1T<@ p$K!LFrk_7z&}cM%b-UdkzX4XSEHy8yRpWBQ+$<6&=z0Siw>IL9MuT#>jMln6f{7xe^bhjy-?Se8j1%l2dwrZ#-+t;7--7{p z`xbXs5A}MTYPAZ`)}VahTVBUCGKYuAd~uZQ)mxK{ZzHpUPU zl>O)cPOFAQEsW#h?g_EhVvHeP`43rJQ0@0=_@sZ6OrGbVn#aFHPMpA4LvsHPtEaw# z%h#~oJ+QCZH7MfKhUQ52C*r?J+) z2dv-1x_6%WhRTEcxZS%jDuWmh1C_fI#I-8vbebed+5n~0%VM!e9LE~~vRUZdiL9=| z?r;MTul!H_;zhL96pKZaQZH2y1m{bo(vA7~`Hw$TxUMaku~8aMisZvrnVKRihTQOQ dsjI8&{5#5Ng9j%04W0l1002ovPDHLkV1ll-ZH52< literal 0 HcmV?d00001 diff --git a/packages/phocadownload/media/com_phocadownload/images/mime/16/icon-php.png b/packages/phocadownload/media/com_phocadownload/images/mime/16/icon-php.png new file mode 100644 index 0000000000000000000000000000000000000000..22c4df637f8429fb781e167889714665886b027b GIT binary patch literal 757 zcmVwzjr4H8o)v#)inA=aI=| zNT<^ugp{()G)<(G|1$ulX_88%+Jx)6xUTyfn910rzbulsOW3v~ZaC9}j)ffCh9p9M-Q#r~g^s>3yyvk%%^wQcQneqPXG!Fq{2JG#aI4%O(JRWaih^ zt9URdP)cDarN}K7aXk${V}nUJ947s30RYD9u)DZvX2EYh4yoDOGks2$8ZZ3n?X9>kXxp63em>LZn0}6uLY)IoXp; nCU4gRk{tyW9t%H?v#JxNhSup*ke_Y177tfbEU6bS)9 z9LHFvit)O~pvX>wcF^$*QXAdxIpKv1+*zQ}*<|g4r3;TV(N1*C5HAo1; z#TR%rySa{6k)ct3ja}|9R3fndEvN(pu?4_Bys^6$jS*kDlkOD}f`lN6L_|+a@2o722Pa@kqb@l7K}lw zHMH7$kxA}x98<5?vDP;1Naf`1&yDxDKFqHV0Bq+U|JP^A=kv?OV)6PP+-q|zm%SuV P00000NkvXXu0mjfeHs}( literal 0 HcmV?d00001 diff --git a/packages/phocadownload/media/com_phocadownload/images/mime/16/icon-rar.png b/packages/phocadownload/media/com_phocadownload/images/mime/16/icon-rar.png new file mode 100644 index 0000000000000000000000000000000000000000..8a0ff54f4eb81cd34ea804e3388abe1b7352046a GIT binary patch literal 621 zcmV-z0+RiSP)Y6r3(E9x@HK7 zpsr35a8PjUC}_ugf#M=ahr}=8q(m)6B}s=S=?yeZ@#da$?#YcqBtw%*`@-Rc1Hb3@ z!0T+i`1ruu(L0=Ql^G+X!>jktDHe+WY;SM#_Gy_gaB5OIFQw=Co9Qc;^VhT2h)6jN zhzX(}qLfM{0IJn0ch}db?>1LE?SoA@@cn!up5kElh*3D20z~6uXfm0c{B?i#NyJms z{bpVor8(|+Gs6H*biB*uGPPO_fItU$hXF=ugi;FSX|!)i}Ex| zDWp~kqx8&nfLIU#pin4KsZ;czA0uW2cdMn+$ zAYJRR_wZXbwU9bbo_7B*>wfZFDZJe1``32E8-3242Qcqs8^X)Qr7|(K+`pf>mAQiu zku!zEa7d@IlWCb>d(Ne`Cyz$PdlQEG#(4~cm}@$*`PY8|;3*p*@h`O500000NkvXX Hu0mjf^CuH? literal 0 HcmV?d00001 diff --git a/packages/phocadownload/media/com_phocadownload/images/mime/16/icon-source.png b/packages/phocadownload/media/com_phocadownload/images/mime/16/icon-source.png new file mode 100644 index 0000000000000000000000000000000000000000..5bef920766b333d4917efaf794b054b46632771c GIT binary patch literal 586 zcmV-Q0=4~#P)*9Rs1h``+!4`b3(7@xbNY z%Q@%cJNGKxZuhYe;>dBFZEg{&s`fQad#SWqt$r{Vj0FM#R8?K7*>M~ulL_PT_^URZ zPGh>R^XTM+UBlo@ug9)o@HP_R*ZVAY?>zuu8h^C_(RH1{U=ULpjfPAnlee*Vqtof2 z2_cYDl07{oWf-)3JyM3jo2@Op{SrUFwYU?x55Vv3;sQVjfl{m0WICN*$)MS6qS>~M zlyW72ZQJt^a%X1%q~dX2hr?LUE!MN^T;;FGeav0wHdC~RZ7!Z%%txqHDl(JFtYlEH z*XIU>LX|{f2Y`HjgF>MSKq9e2KEH7zKnO7h93MY(6F1%e2T*5#*|HC8>;s#%>Y96& zQnL4HkHhidLhXXVER=T&0GC{%JXKtS^M~jE*tiCkWw}(}2OrK0XJMC8vj2IX(vOl` zXIa+uFO@CEAaEOKZJwYu^nKmh`d-*4mjTj$;Ht04e3YTw5+5 w-aTF&T%LF40HA(d2NBJ5kWQx`T-V+E29xhKZnxnR+W-In07*qoM6N<$g3d?CyZ`_I literal 0 HcmV?d00001 diff --git a/packages/phocadownload/media/com_phocadownload/images/mime/16/icon-sql.png b/packages/phocadownload/media/com_phocadownload/images/mime/16/icon-sql.png new file mode 100644 index 0000000000000000000000000000000000000000..b3b1467bf98bd154dc51b007806acb26795f3110 GIT binary patch literal 510 zcmVL7t`q!MD#7QwHA4vqb$oeGR7>@GzBw*nZMm2O;a3?#|1GnthE@1VGIF;5MX8y zGo$bOQRcgt8RVRUwf4UPoO2)m@H}r6KL9AD002}~6|~j}f?!mDF$Pstf$F-(>2yMt zWiZA(aHN!f)dc_|LJ$NfiUM_AgOVh{^?F5FmbhQ!Uja%f#Bq!yNkEs&1@rkFzVDAh z==&a<%?8xAE%H1^mSyO=?r~Bf#2<$HpZLCyFbq)?1=_X+X{{d!A2;|)_YLAWhSnO? zG!166877m-D1@eIuwJi0Q51FC?KWI4m$24?nK2B*rwBp_D5XF|*zfm2?p zUk71ECym(^Ktah8*NBqf{Irtt#G+J&^73-M%)IR4`starVhW?6V_7VF+B}sPyZA0eS?@d$ z#eMQj!8uz(S^A z_uV}#-A9?6IzIB7&E}nUdTF_1ph&V~XsE%l3eK?ASL+YHEZS+4yFI!k@rOXp+SY4Q yE+t%LyYEI{HkqG$+wQlBOW>EyaqI2t7#)vK+t0cw<25i089ZJ6T-G@yGywqaxuc5! literal 0 HcmV?d00001 diff --git a/packages/phocadownload/media/com_phocadownload/images/mime/16/icon-txt.png b/packages/phocadownload/media/com_phocadownload/images/mime/16/icon-txt.png new file mode 100644 index 0000000000000000000000000000000000000000..1d48677c65ee9c3c3237780ad1dc32fcde4f0ad9 GIT binary patch literal 463 zcmV;=0WkiFP)+YL!FW8b-ND~^m|(lzR@|=FD?t#{)+z*yF^CAW*{lNU_xmN+-(+hoo`}Rz6rr^y z%d)4A)|x1a5Rq6~t=2M0lGW*SdV6XCKhtbBlXknk{07ed_tgh+a3uf$002ovPDHLk FV1o4Y#MS@+ literal 0 HcmV?d00001 diff --git a/packages/phocadownload/media/com_phocadownload/images/mime/16/icon-video.png b/packages/phocadownload/media/com_phocadownload/images/mime/16/icon-video.png new file mode 100644 index 0000000000000000000000000000000000000000..f92f7e1eb247a75de4ed66bd5b7faec131c7759d GIT binary patch literal 739 zcmV<90v!E`P)_G$Pd)0ltf5e&YhnWvk7c>zU^S{oO8Z2>f++!XYc(R zrPPa;-~2_e(mK0l zw@jx~ep^kbn+k19bXk1y7qWt3x96u{9(j0pplKRR2;oCjRo`o^nH|=-1GPol5@p5= zM)_fIR7N3kM^#m%ls=dkQ5Dzy9%rwjNy?bXk6(V5H<6&N)&_AGOx6{{@fk VbEjPP6gB_=002ovPDHLkV1im-P$mEX literal 0 HcmV?d00001 diff --git a/packages/phocadownload/media/com_phocadownload/images/mime/16/icon-xml.png b/packages/phocadownload/media/com_phocadownload/images/mime/16/icon-xml.png new file mode 100644 index 0000000000000000000000000000000000000000..83a83df91a6742767efeb2be12dcefdb9e5c8d6b GIT binary patch literal 585 zcmV-P0=E5$P)kv~VLT#6P4fg9gd>=S~+fH;pZ&8JNWkXU?2COwjA~cARsE zd7gh{g-}YRTI5kQh8WLehH z-g~_FD-8q8=d^PU5qYIiKm`B<6GLDRuLj?>%aMLUepVcsAs5 zf15liAtHqRd;HrfKCX~QB_8*;3D1T^#}|kQ&bfsL!P680q!bjMgkOi4&bx(2r2v5$ z_JyEOFxlP0Zf>xCbP7{PFn&g7Kbg)6rjGTaQ|#sjlijU92}Fd+UK`ttQ8y2idqZri zj<1#x5!B5Cwiz?oYZv&X6Xx;s=>viFh*pd3fNR#UtvB!+_OAp0q7`|w_EJdE;}xzT zu-2lrUg;B^b2AUL)>)dS7-N>6rwAx%@X)|swWs|SO@;IQBCzh6Z`6h(tLjt_nT XjRR+gDFH-y00000NkvXXu0mjfvlaK* literal 0 HcmV?d00001 diff --git a/packages/phocadownload/media/com_phocadownload/images/mime/16/icon-zip.png b/packages/phocadownload/media/com_phocadownload/images/mime/16/icon-zip.png new file mode 100644 index 0000000000000000000000000000000000000000..cc196c1eeeecf71a4ad125c1e8ce6414aa2e7112 GIT binary patch literal 617 zcmV-v0+#)WP)|WK~y-6m5;wq6j2mL&n$NrSwmn&HYkx&LLdPfEhM&9J2w6S zCMIeutf;K0tfa)m%Fc?IIIEqlg_3AkF%(;9ASfY77G{^3H}99l7!t#70$=iqcawX* zbA#rG2e&h0pF8ho=$4?w-G^_f)oK9L>vdLM-l2eAFG=5mbUN*&3)L&rV-u4Uq<9ig zI7h4_?mc<}!0R{fn4G=E&d;@({oSo4QJr*pbfk}6YXA@t78e(DfHhdv zMk|FFmEy9auI>2=IUo!}qA1EwFb0<$VN^=NDAlt)H*f$%QA8Mq{|p>9OE5|yI#akT z>1p7sJz?Oi#bpUPQ;4;KRlNa08Z$pvJ#L?$t76j_s}iggB-I1>Ai$~pt^nU^@?v3% zpm;t1>loc?LNGw8J<@K)nEo3Kj*s`W_&=8@4qYYQ+os+6galGzbL}HX2dz^A@|1^$ z38aizt(lm;$>7D)8sv%hwpri&jCd)r^?jAjpZ8}1oFA#;rG$8OxYH?3ja>_Ci1eLm z*%-^$)o*yUu@k&{eEELsz&%S8)w383^s_rWRCxLqgntx*WUqE=00000NkvXXu0mjf D(KZJc literal 0 HcmV?d00001 diff --git a/packages/phocadownload/media/com_phocadownload/images/mime/16/index.html b/packages/phocadownload/media/com_phocadownload/images/mime/16/index.html new file mode 100644 index 00000000..fa6d84e8 --- /dev/null +++ b/packages/phocadownload/media/com_phocadownload/images/mime/16/index.html @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/phocadownload/media/com_phocadownload/images/mime/32/icon-7zip.png b/packages/phocadownload/media/com_phocadownload/images/mime/32/icon-7zip.png new file mode 100644 index 0000000000000000000000000000000000000000..a59b8fe6ebd6eb6ea28f54c69b129e877afb5df5 GIT binary patch literal 1310 zcmV+(1>yRMP)GCXGnH&bLO5^Uy!qq!@#8<+ zw*5tbuPLUr=HthY)a!Morlx{!x2w0dwu)`8=-c;&~pv?^7rgGE<;|&c?<@RIk^~v;ygf{hAU7sUw8IvMh4B zT(Z4>{W=0VfVS9wS9`a#w6t8QRO+T_TCoS>@Q4Fs)X3A}GUykj6sBq7I1aAsGBGiM zQYw7>`0*>?9T18>WfAxZr~~DL7tvVSU%)G%p|#!>DYMw@zpXew7(fDhTI(LbKj<&A UmhiY=ApigX07*qoM6N<$g2?x4uK)l5 literal 0 HcmV?d00001 diff --git a/packages/phocadownload/media/com_phocadownload/images/mime/32/icon-audio.png b/packages/phocadownload/media/com_phocadownload/images/mime/32/icon-audio.png new file mode 100644 index 0000000000000000000000000000000000000000..7e7c120d6ca2de2392f5011122181daf31fc734b GIT binary patch literal 1251 zcmV<91RVQ`P)C8AQR2v876Y>?Q& zf(5&Z60CZI~910MT+?6X=&Mz)5zE><3 zk3UK8wOVbxQmK3>BA=>iM*sniudc2x9XWEO94!=)$LiQk_0G=D#@yW8i@>@Mc))C_ zR4Q9*W6mF!2vtQyh9XL(QW=;9HlutOR5iBHb$(DGZq(6zRelEQSB;T)@QTY;;%dFy!O&DiW7TM zF@QuVkmNiVrMT6Fw?Dc;nDNOMeC};F`FpEPtr=idu@<_mE`GZ)d^eeYM}$NKhzPjO zN4?kyVCl~~6NLu48BK7=f{ttc%G*S+3oz(~&Hm55>H2D&OJsF~j1? zDSo`(+5y=j2XNm zDf~`A@f3`UJV`*sFki}W?$rXm7d`JgvkF!`#F!X?F(hIskYujL5fGCh47!Mbfs@97Q1JBn${N-s`T}FeC_UERZCDQIpWyKY@^5 z(2WtezuV*E?{;YPpmJlIZl|{&0-h^C_9~e5YLCm68tt~Sz0+c9qBH#M>YXN^{n5na zbKI*o*tSAw3~DW^4~ucH8rajm{H4lL$EO{5+`jvOt*tswAMFeYeD(7->uq7JYgp-I zXr3%_!t0UA?C%UQoP^fe6!IX1Z+@$xg&eC5<>syrXJ(l;8wh>Gr^=Ij^6eV!XO2T5 zM}BRS3$M?UHSrXTpb%@r;n&bwiy2I^AXHXw?{YmmNoVdT9JUlUc6k5%3qzrAy)sQc zpX2-Gf5=L}x$~!ae$D`C0oK}-0HJ>re{*AF8&fP8L!smCX^`v&76j4~p(Pp-jFz4U;GtjB(`~!#dfcje2+F== z_cjo)D~?pE^0j@>ch33FcWx;W;s0rk*@IHb1A_Ur56McP5Ru9OP)dd0`^m#^?%#jo z2VoTN)oWm_mL`WkIMf zr4(8#Jg@$824b8Ve))$Ze)0Rix;3Q~p68LKDXmruV+_q^lU}b!nx>4$W3<*BA0Jbe zB_cA*N(MGrC7h?sXWf{lE$K-j=U@#yE0ve45RaJ3uaY3Hv`tb{MWc?*CvFKPNdWm%GC8P-~S z-zU#=j4?z}#DB6G0Bx-xRuC<76{ry$-d^GG_KK@t6ncE|jo!jW+uPeWI+*PtbLE`* zTr9!svSX(g)8C$+o-!JZu-3A(v%|Az&+vVp{r!EOKYvaXMXao>kmosBmNA)3I5;?< z-|sV-ObEk}s;U6k-`~Hn1ga9L9b3U_RRgd!@;HtW5n8PlRaJ54&YfDSMcCWhqbLgZ zyEu*s!;s6%OV-!dxpnIngTa7Cqj6n`7654LQlzH$*BMBXgyC?AwHB>4T5CMd!}oo{ zFy#FFoMy9GZ=|)0*cju~aXcPVRTZ61=f9Pp24O9(4bwCw3`3G6!5Blg+oj*{(`vP7 zHk)KwhKMj64r#SooSmJ~Znqf>23%cTv9z?rU@&l5oB5ofPyn{FSl24DK$^*9LXspd z!X!zEOM)2680jO(35wKI|RzO*%M1XF$i-@@4lIJ;FTU&HG9frdpolb{l zvq=<1D5dE2dgOWTxUjXgMO9V!zW;BBkrrwRwo@Rg&K)A+#;E6cwA*d+JV$HI($W$| zQJ|D^4vaDG99dNrB0?C36h+}?!%YBiq@RuCxrtboC0AEhG@H$Zbe^A|6UVU=r<0Qt z0E{t+2)^$#91dLzdb2a$4JDWgk;S5BECMXnTGBK{L|o5T)6=q2in1)-sW}WouCA_V zx7$tyl~RmGBg(QQ2!b1>SUC;|$W;H)s-BJ_tgfz7RTYg!!)-j%f;3I>JddiX2!enp ziiqQwMx)_6pxf(fvzmcRl^uu9dcXkWKYmSqG%Kv5KwWr;C{PN(BIFcYLC zNeIL6x-*ngE>rUd)5g?yHaLAYXszE~Rsx~~K}`k8(r&kDx7+WlA22^$0ObI5f hLk5ro6A>{0{{qrjK7DI0&Cmb<002ovPDHLkV1mEmb65ZX literal 0 HcmV?d00001 diff --git a/packages/phocadownload/media/com_phocadownload/images/mime/32/icon-drawing.png b/packages/phocadownload/media/com_phocadownload/images/mime/32/icon-drawing.png new file mode 100644 index 0000000000000000000000000000000000000000..7e6beb5c00d2f5cbfca09ddaf52513fc66896a5d GIT binary patch literal 1153 zcmV-{1b+L8P)kUcR5nWX^>RQc9hOENXf;H#gUEx!kM3ss+S= zTsE8akt?OVc2Y#eXmRC$m^nm8Oui+gek;z zz&g?^fKsW%{QNwXN`=f|4{IyizU*BQ@oo!c9UNKyqfNg2;#)4~$2mVTaJWh=NFJMdQ`!-Z3=|~T5D3NRMaZ))j%vPyG{-qIG~$uP52rR>=6ChCA5sz2|HaE6W@dmxmB~K*a$N-40 zfw}|DhIr?JzaA{JvcAI9^hDdYVAy|ci!kh5c=P&442|@2>GJb58yXc8Mqe3V>Ya%r z34}RdJoDZK%C#fv+-Bm+>lYchbdERPErb$p^GI$s%d&jeW($6VMBSIm<=vT? zneP`D7e4_Wsg~6}KmnKphK}v+$?y=k2P}xlo>%=!sW^vUEA}Z1*asXDsRR52pI9YG T-eN-t00000NkvXXu0mjfYO)Q1 literal 0 HcmV?d00001 diff --git a/packages/phocadownload/media/com_phocadownload/images/mime/32/icon-empty.png b/packages/phocadownload/media/com_phocadownload/images/mime/32/icon-empty.png new file mode 100644 index 0000000000000000000000000000000000000000..75fe5e1614c925300bcc779e3488aa00b80b4269 GIT binary patch literal 678 zcmV;X0$KfuP)@VPwEP>k)I7`6hK^>|j z;tyK|N&=+sI!gi8S z;#f7QfF%$V*vo}SP+OgAFT?Spsq_ z=^m;?T#E0?fd^k$r$PoL?ws41JLkx8NZfg9kLs{R4^4=0HUix2wxfB*mh M07*qoM6N<$g6WwmqyPW_ literal 0 HcmV?d00001 diff --git a/packages/phocadownload/media/com_phocadownload/images/mime/32/icon-folder-open.png b/packages/phocadownload/media/com_phocadownload/images/mime/32/icon-folder-open.png new file mode 100644 index 0000000000000000000000000000000000000000..75e71d9467cdf722c46cb47083d5e44d3e865778 GIT binary patch literal 1042 zcmV+t1nv8YP)wsh;WS`hM!w_r2*h&N&`ur1cL)QDi_1FbDizfv$6IuW^8)C|X~Bbn)$X z&cF24lau+WVL$e&-JAbx|Mvc8#lqGWTZhmS=bQ`$0483X8T(XsZk^iLIdFpPL}oAk zcxB<$UQcd6s`~bQ|L6C={BY&k;?lBn&JO}iuCLvBYPa(WGcTX}--(XH3xwm5Vs&Zp z%{S(sJ#lSuX#rRt1Te3^^})&4&cBEEGJJ*+pBM@-efrE~x7#}s zaR3ov`t+Gez?R=t0C}F9wY!_^1{KAx3ZKvHmFouIG z@vxzwN|#pt&E=0TeE3Om)j9WXS`>u=o|~WRTCMKu7ZikYA5TmpUt z{z?h^adPTd((w;UO&d=d1V90gDohnQM{EG_m|Xh^m5kR0S~}1~OpOd&GN;EoDtKLlgSJgeo2tkHtrUIzX8LO!Q5tf(9%| z*#lGs6+z8@00SVU2Lv!$tzH{Kr~uR>Qq5^<9_XRoW2}O)u@P0EBLjpI4;hFv4thXP z@u6Id#w}<{o>+#V66y`+ArGk0eHEZI6=4fPUl?LS@jX-pV{CwchO22lI!Bmfgq*3d^&0Cx6 zv(JoA9hq(|R_<)C1NQ+ZTb@Be&mtMK_(#qIj~)n}i6?6i(|4m$3E+VV5Qi)&Av`}F14KX}7?zbSwN&aPkm@Cs{sx^K!%#^V#++BI`oeRKvo(L?Jxm9784zMtRKP(YTTZzYJU{DrT0ZTxZ zr_nPs^+AwC;PAkEi6BfaFb$Z7h-!dXuT@|c zD`0{%t$>)0F$+mGhvAT3(moAo8VOjywDmw&fhZA3JNMS(6f_xNs+ipGfvA9n{^f5; z*hB%jUjfk&u%O_;#8MWt{f>g1@GVY*DoU6l5Ocsn^ne0ln8;KX9*shif|h(H4FQ>y zVMy+5pI&-i3#?V4`(O=$%)%J8fQW&(bh%d-CJ!hso@QMF(F3MQ{T zlnJ9dO^Gf{CD>;jc1p30Xu3HNLc3JR)RXs91&}JCS?u=aK+sW4K9RV7OV18yHv3G0 znCgUVQlO_K?l4Ja+>bzfACMU!cQ|0(9B6|mu7-WQe>|K)Be0_zM5c{HTXM5OhfdB! z1r*r%_0P?XCmxwQF(c%ucH^IaH-H^Lvxe5z?R#fWpIUnKw>@2Ts00XPpl51g8@0KWm>1J}Lx+tPfV*L7V074hqMmhB#J*Lyz#_z(DOx&Sz) RX(|8!002ovPDHLkV1n9}&kg_p literal 0 HcmV?d00001 diff --git a/packages/phocadownload/media/com_phocadownload/images/mime/32/icon-gzip.png b/packages/phocadownload/media/com_phocadownload/images/mime/32/icon-gzip.png new file mode 100644 index 0000000000000000000000000000000000000000..afe15a38ba9f40d96a86bf3129da66522a1876dc GIT binary patch literal 1183 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 JPDHLkV1h;wZ#Dn` literal 0 HcmV?d00001 diff --git a/packages/phocadownload/media/com_phocadownload/images/mime/32/icon-img.png b/packages/phocadownload/media/com_phocadownload/images/mime/32/icon-img.png new file mode 100644 index 0000000000000000000000000000000000000000..a5a2ce062e77673a90eff8577f3b9177722461f9 GIT binary patch literal 1468 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 literal 0 HcmV?d00001 diff --git a/packages/phocadownload/media/com_phocadownload/images/mime/32/icon-presentation.png b/packages/phocadownload/media/com_phocadownload/images/mime/32/icon-presentation.png new file mode 100644 index 0000000000000000000000000000000000000000..a7b9827ece65130dbd32f5989ac62b5a56f86607 GIT binary patch literal 1525 zcmVVU@wXsYj>U9 z@y_ge3HVhn<~~=J~$g@AGR#Rr!BfR9%RO1?KAaz9w_PL{;+uKt$&M z^7gB*fA9SIkDqGUjRFxkugtyp3%vJVS@hv>*t>rH`p-n&zD5)lDTeCO$7Z!bT% zeab%oL_iGQD|w!OB>*a^lO*Y$J9q9!z!eecMSulPt+nz~I#MtOq;N5UNa0^LxQGN0 ztE;PPz$xJ4O78`{15psb7{o+~8URFuUatp0nx+f}1Lo)F$+C`u#pDD=Q2J z1IFVqi;Igm=Sb6(g@py;IOgoxv((Do08%j^>K#-Mg(44_qV0COm41i_-g~UIY;JC% zs#t3g5u9`3locc1`$i&{AfzsVfs%m=M9D~{S;fHJyLU0hV6DYD$I{Xg{eGV$NyxGc zRb_d3nZ3O|E?v45WH83yy+6!A03f2C3PhcX zMo7L|;??t@!2tL?oEpsm4|=rxM1(kw8~3cW;j{ki^R)S?1ezCt)fetP1T~)gB1vyS zyo%c8#{I+P_ZSJL!9_i2jyx*x!v}EVZ*cbpOvdP?ZKCw|n9=`m>u=y!UI1V)7;x>{ zHBO#9NtR`#Y08BQ7Xs!6fI zJwV1|WIQIi{aYj-k!2Z4k}x+n$8b2rT6;u-3V;Y637M}{-|O1xm7hZ9A(yFdK7;A~ z14+}V5BK1c|FE>Qg!i5_O^M?;B@&Qi8!f*u7c9Tv&eQBJ%M+ z@%~#y)p!9B%)vgbl~!m}l^>d{(@t2>Ed}k~gXB=_1G;+yd^0$J$woYEKM%*I_jL2y z$Wv?e(>9r$(Fv{iycj?w1E_^M^5i&@<p{3VCC1%30^nBym>-)C2otpg~k06=U} z0h&W?7@0HYnaCn>{^_ij19 zgM02J)Y!*@tXt@W1-ZUaiq$NrP|v^oI)e{xkbL-GqC=~zbC7O6!{RG%psHNGdX-kI zg)xTR-Cee~w@H$u&O)OT7Spg|z`J5ERMVtQgvB5JoY9~E!06w9hkLzZu&i{k&puE4 z#a9c+s%&j-9g(1#hO+<^Ev>4A;779_U}0+;wzg+J8;wRB930@iC(m=@I1al*r_*_) z1m!GHinYCJM&`&e@g&Q#EUaqIIjprzCKHk*3GbQJh)i<|`jU|uv)~EVZntT-+uXTx z2V)FbmL1s*N^7iS#YXHa394Bjv%1&kvTnEA0AAmQ>WgVa!FRf|pZC9c+%Ka=D+Mhu zeL)ExWpyw&Z{F+!DP^Z|z|K2=z4z|UV17ul49N*N)|3+w<+${no@d>8mWu<@mj`*`~Zcn`R)st=^5OHA==W&Udh@DLcO bY6kEb(TQ3NZw%u000000NkvXXu0mjfj^5XG literal 0 HcmV?d00001 diff --git a/packages/phocadownload/media/com_phocadownload/images/mime/32/icon-rar.png b/packages/phocadownload/media/com_phocadownload/images/mime/32/icon-rar.png new file mode 100644 index 0000000000000000000000000000000000000000..21f751aa06aa618b336024ea23cf95dab3614c2c GIT binary patch literal 1384 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 JPDHLkV1hVEaV`J= literal 0 HcmV?d00001 diff --git a/packages/phocadownload/media/com_phocadownload/images/mime/32/icon-sql.png b/packages/phocadownload/media/com_phocadownload/images/mime/32/icon-sql.png new file mode 100644 index 0000000000000000000000000000000000000000..57dd5719ee351405ee947f8bfe7283254351c6e9 GIT binary patch literal 933 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 literal 0 HcmV?d00001 diff --git a/packages/phocadownload/media/com_phocadownload/images/mime/32/icon-xml.png b/packages/phocadownload/media/com_phocadownload/images/mime/32/icon-xml.png new file mode 100644 index 0000000000000000000000000000000000000000..8de9233e26f8878e96cd828c5472cd2ab8bcb816 GIT binary patch literal 1628 zcmV-i2BZ0jP)e{c83ZCMHCX4sw9n5$DVjRKRiF)k9%2+@AI3n z-J&WLM;gt2^WMAX-0wN(d%h!#G5kNxu?r!D0=)WfUy>C-W{fGT0E7_!ojZ4ay1l*q zvqqzF@yqny@Ar4_-Mja5A;jCpn5h5+aPiTjM|W3OSJ&->LWt+;xSr~RgM+76u3Y&# zu3NfL}PxUP%&_a4E!|HA$1MW$P;xH|)ityO{` z0KoTswAMI|vxoro0Aw8^DJ9eCl>PmEwAO@S$m-K6!Mp$Dci`v(`^t<~!eDf0ijZKysjjEQk)>RsgJ7GQrizq}-qj>oRoY;rZrT4v8DFcV*Z$HFscQCb+FYG@TfMmgp zF_;gZ5dP`|a!>NNnj6!ZrJMxzl2ooD!edx9~B-Im8;uSe(EGd__co_^;l#6HQd z@1h>;orl2bE|@#LF?dHgQfnL~S$pLQ&BQ-p$Nq%y;a$ort6aE#72Fdd5`zgwe}pIs zI2?gC7*3&EA#f(o9*suqy%@3kW()R)IB)%dqbK{-CeEM!1CxT{^-CBfPB!n22!8n< zvNK}(gV!m(aT#+ylZ&bbwAR%o{eGXLqa&p6F}$(P(f41&JD70c?Y}@#LaA~7{0YWU z6kltB<@cf_{Kb37y&=;dZj*m&6Qks*8aVEVIUblJ@;HtO!>}S5*4LRh4*olTg{(yM zCdiLE6gM`|i3gU%vJ$b|XY%8lolDZDJf%1$It{ozH}W!2qQcWmyu(G2`)=q9}-NUZTjx6kl1wzy1bB z35NT7G#U+xqQDiBeER|-n^KI5ihj$ooU!H^NK|cDuK_6~S(Z^0#T+W5Y=R$0l&<8+ zNIxN|aKptgN85uEx2Y183Q}MJT1LptRHrFdPnvq6jHv6^K%*QcyOPT5Beg z36A5CrfC(p^}zxW$=Z!771n_e0?+dhLJ-F>Q54Ohcbuwat%g)eRTI$jJfbL?(*fs6 zvg)Qqz&f>1N+~Oi;5be-@9l23q4SAV?)>%!Dw*4>kKyWQK`+FD*j!uS1?hifOX zPUiACuXw8K#R=PPw|l?@FzPq})9rR&y>{)|rM0y+zb?zI46|!nXm(xyEIz*|>xB@s z+wH;a+qd7pfB*hFKt~)yo&ejx8$j#S(Vnk820j4p8DoZZG3qk=x8i@s%g@86z{nVr a1N;}$C25yUV_r-E000078h`~`%C(Xciw3}%c27{h={j7&y`4`+hS(7<$6*FDEYRaaHd46vYy zH@RJPyQ=Sf&-=dT+}mPi{GY8dyb%!}2+QBSqLu)$nYkQ*h*TH8|Mc?%2Rk1JRX+qH z@1~`D171A7duxd!AAUo--F_0sv30xM=08_HBB)IeJ&mFpzuo;(M7}Vys3IZ)OwAtX zd{W_FVA0Di*QLMe_jhvVoWx zrpb7^Ih=DuQN)=uXK>D?43yr<0?#Gz#_Iva%$S*(;oP}%nFk!UnE`SJh9((HSBHqO zxVXsKvu8=!Ezj>ZF@R~2CNJA8%YqRG%oPmh$`=fHW;Qkk*pdOakpZvFfS4(&T)UzIM;Q=i?Am-=67ZQ}x(5p`J z^RJKT_4-Wjo}}XY?AXy@VPTnxM#zbGc4G1UXM<23VPI}}@d- z3cZysOE+)RU3o~WYWO-}ZvGx7^4vl+WZ?Yy^Fa~X)IXn%?YMw^7 zZ$DsaTfm!dOrnGJ;{6SM7-6T=;nb;9nJT6EQxp0dJW!a#ukGRLFfkMMATeAjVeKO4-%SsUX96Q)1e$>sMo6`bpcJ(aVtpJkVBCqcrzVdH+$*Q!y zAO(kQb~^3gfH=+EA%Ju+l7?Q?SG;fvx4uGpaD6pR{3`vZvIzipZr$S0yT?gf4O2^9 zpQV$jOKCU7EXlT8P0f~n@3K@&Pe18z6~p0)AR_n`A#B#Tv(U={pp`h!3`93#YE}CWk%A>$N{M%EoK=IOMwZ3A65zLb*jwl4&kO%l&{-~O<81-J<$VrGa)6F3SS z2VNUj$~~hk1DAnoX7*Tyn}vu3r2kf`uNXiCJT \ No newline at end of file diff --git a/packages/phocadownload/media/com_phocadownload/images/mime/48/icon-7zip.png b/packages/phocadownload/media/com_phocadownload/images/mime/48/icon-7zip.png new file mode 100644 index 0000000000000000000000000000000000000000..16a6f5a2ecfa10df78798b5eb597f68ef065b976 GIT binary patch literal 1955 zcmV;U2VD4xP)dvBb>s6&c^Il9cf4Fq@{iu7+J^ypgy|-IPDfxefw$=jtR`}gtgb+R;1n8_k zb!Q%*>3;WHK_7$;ebHH9t5w_~giuBXJ<8F8fRaJC%cjqxgl^r{F{28cUl-cot0Pus~ z@AqZ1+3&mLMGy*wXliOA8jZ4H!v=&90C`LZg+e;;1Mn04qJR$w78>xqq2?1paNxiJ zVzC$t3k!MeOAsU{v!j4mEUT`7f^FNpc<}-u1Sd|MaO#W5wI zHAjygb?VB=<5oa(zi>4ngkWxNj(hj+p=lbUqodfiO$m9N9JMYipzAup$;pwRkoVuj}B zW?EWW=<4cPmOR?h=hdc=60pC&pU00M)7I9Or$B-J>&J=9q0%s_vBo}7h(d+(z~UCe zk=JbjPbSW0v!qffPg?)A2m}H|B9XkEr5pYI{Y*|y($?0-ty{M|N)$j|6mlxnfa&S! z6%ihCi!nVtO-)VBvd1n*0fZ193jjQQ`jnS1Ut(ES!ELq>f|iyRT3cJoDp87_l|~`8 zOI0Wvg`PiuPBNLKrly9*#zx}tINP^xr>UulEnBuQH8sVvXV2DO6jGm=Oa|Mw>FVlY z=gys;zC%MpoIZWJ?CKU<%}P*d6w1rQwr!(n8Vd^xSe8Y5d%Lqgi9{mw_V&`(*N0_U z9$%T5n8=&7wzk%xUolh~gX>D!g^5x5X`}WQ0tH$;A z_5$$!{d=xny~^?9$B|N&RiGG(SipgD2G5DiJ)yFIDwi%@Vr*=TCr_Su>fKH@K0eOP zn>X3DYZqtFp7p%1m=iZQH*@OLDIPp{;E6OvcCQ6bWO)>lQhF@V*x1OPJ$txw=MGB` z|7zU){5;*=-GswoE?&Iogyu>pG&D4XVHkM|6qv{9P}BnIMC7)>!Gi|@=&9MrZO-{w1aSIqzaip{}luWHO0qn!j0izu!-NeSOJxmF0nwyWqtLRoIEs z=`_J$kW3~+G#d5X4y*@gnx>McLw(P+%BN4Ch{a+AgTYl7t{gN?L)Uc@i3Ak6R^h{k z4>UA1P+MD@cY1O=QMu>u)z7jlCMG77Ncov~o2hY)wr~VHgH=b#)a@?8ZvfD+OeU?pd-wX5L!sqRq|&}i>Eou*$jFFA z?l)tP0vRARJUl#_NF?HJ3b~_Dv8$C|L#1Lx)3kyV3IqZqlSzh#hDL$ZqRfs0Y2c^Z zw{JhJt*!m*{{8!FrIh|+6k198EUi~zG!O_l5hxT2A%rkry?XWK?%lf&$^Al^hF>;w z0;mK20Q?bX1XgY*w=zhP6Z}8GAn;!)r4+9Cs{xyU-;oo(_(kU0AWKe(abQYHX~Uug p+z>+e$x&-P{@KHnQhK(>{{xt&To}~br;7jp002ovPDHLkV1l(SsQv%| literal 0 HcmV?d00001 diff --git a/packages/phocadownload/media/com_phocadownload/images/mime/48/icon-audio.png b/packages/phocadownload/media/com_phocadownload/images/mime/48/icon-audio.png new file mode 100644 index 0000000000000000000000000000000000000000..20c14897c231f863dcdfe6227a8ab46ec733734c GIT binary patch literal 2062 zcmV+p2=VucP)E?v6xvm-~2yq(Qv_rD01aVVF|Ym1AEe?EWy{BM*} zD%TpH`t`QtG)99W<}jnj1H6{Ne1`vp)saMZ^SVk^v6R z&d$DNjOiOhDb>B6H{#|J5sWd+&d$CC9PDuJnot6mo}8SVHpcV~IOzUaBdk27RG%^@ zCnu+YXF95?{j3QGV+ZZu zxq8FsF!ImRoJ0gG3M=3#K`923cbQXE039`|v zUS)ZsO1)ta+0mky;lUwnQqfmY0TeMN6bv-T4!6qims{UP z3X33CsMlLmwrd!zy96DPW=Gh5UYbEpJV+ZcZ^>^r$V{Zj=F%w7Lurj@52Y1WX&OzT zTD26n>on?u=p-tskxIP6MnR7gk1C7{$&Am$)EL_Hz|)lLuw8|6)uU=W3>vIO5($*l zprLt+MBeSh!BP#=fNM1}8J}D(&HQ4CmAu9JDO5U(&Wxk>jNw_qahh>O1`*K8qqtGvjYCf zR%4{G2cf4TiyO>UVE5h!D_}#*9zSW|#HQI6pnVGB>KAK5&WdbTCe$~XF<=dL7h0@U z8hy{6bR+9qf$)c;2qV@Y2*$)mA!FN>SF0}3T4akR*U6)gKD*jwe7>F zFs#5YuPkz_mEhp9NfId^3rtLBXd1Vf4C4_-Y$_4A0wQqj=41Z!uM(N5F;Xd?kN&yL z;=*H0vxV(Ca=ZV+dW&26Ca+ElD+}9fRxPU~VJVq`!#=W_M-lJz!_tXZCyv9lj|*J+ zPn9E|pJ8*e#_C#y)Sfi0WD=Sl&1SQ=|IICymdZ#v!&+0ZY<&uT0@pi*sQ_bl7_=mu-+h@PINUY0w-S{XYoOi z|C%&*CI>H#x2L+l%6NX0U;N+{32ztaM})7lq;zGRB0{~TSl*~&?&PT?ldM>ed?JJ0 z2TGU7E~I>ehx;CsQOgUJs-|4tl7Jh<0Nacsu&`yal_O3}ku!P7!6EgZ-xGD(4$ zh~nw?)y+VK*v!=xK3(L)0`wegxhk-rknxn_zy$2eHj$2iUQjX)AT=snE8s{k+y`6H zYAYb`T1s!neYqImoL9h`!AFg z*!e@Z0$u{X0DK8J3gr4!@M2M*P5dTs2Urym>81}#DGlre4$vmQ`$L=Oiw12WR)D;8 s($~KHM=9mgHm%R%KYO%9q!oVnKb!5EQzceSdjJ3c07*qoM6N<$f>v1M82|tP literal 0 HcmV?d00001 diff --git a/packages/phocadownload/media/com_phocadownload/images/mime/48/icon-document.png b/packages/phocadownload/media/com_phocadownload/images/mime/48/icon-document.png new file mode 100644 index 0000000000000000000000000000000000000000..da78212372170494e2a78502c14c1d8d6ea448cd GIT binary patch literal 3298 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 literal 0 HcmV?d00001 diff --git a/packages/phocadownload/media/com_phocadownload/images/mime/48/icon-drawing.png b/packages/phocadownload/media/com_phocadownload/images/mime/48/icon-drawing.png new file mode 100644 index 0000000000000000000000000000000000000000..60c4836c32b8c92d242472328214a458f47e5c84 GIT binary patch literal 1833 zcmV+^2iEwBP)5M~GT!+Qcwu61FdDCnN&Uj8vD*02B1Rjvh#0l4R2HoUD3-E?WtZJO z**`1tr>G#U*9{sM0yr7Vp6=8=(+ z7kYbpA2W%%VjzS-2*I&q$6g;87CHaE-OHJNOUwMx8;}zs|Fs7kJmM$E*;r{r zzF1%;`(JxN#lhSxU#!ch-H?-!QbMNxjPv7HXP7;60ZkJ~BvpY5+OKQi#@nxLjnw3cIocylXqru&lsOkb?yt<%_21n=b*<0Qp1I!4$reJQ@K8i}wV3#6 zhETh83n_57djSFdnzf}_DsGy?^Qxfv#Kn;=z)*n23su!xu6=pXiXL)($|9H9i>~X$ zVlhiyu%Vjyb4yn4g@Uwr!C#{(?UpJkZgv5hU5pbZCnuSnp62l3!_3Ug0MN1}$R87D z^X&5q@=DBNgb%8!*JU#__?k%zFC%d3)F~p72!TL=si`TF$s}7N4I~oFoSlxF;y$lK z=2b}uc!+(s2*`hDjDkgg7wLQV?qzavk_{U+5Q#(>8yjPIc$gdZ)baTTW6aMjUJMz` z6Bq)UN()%UUQo1*dWPTcXUC2mIV(cY+uMtjlBuaFLN}-R=+GfTP1n-5y9dpu8I!m& z0KN+K7?pGOC`u*FaLYu^--W|r!r?H>dzbm_(AT_j;9ZjEs{nZV`TGgf_&gJ}ultJ0 zt6qhi3^{#Pp}M-7`yRTJUAOlbb)SCm3Fnv2y1u)XJ}o=3rye|_{kldppCFr+=$R~U zzIv3dTk2?P*-UqLH-5jr9P`FbY{`YZgpk)T2yd$=ye+po&;OmJwY8a}hex^L$yP>3 zM_E}}p{=crP$&ez+}s=u4Gn;&5L){rUM(^!l1x&kp{bUEyKdtB*M8*jXLl2*t|S(V zF+4m>DwU$LvJzd_>FMb)gm^*86WLnkfE~#Ty0MIIZmMP1z;@n#`5S}~w6(RdXU`s_ zl=S!avvK1_YHDh{^l9)dxseqNc-dUkX@?}Ws9W-(=9YSri7fH?gwby2&Yc`Tew<7u zLm&`v?GwdDCQ!_Qa*HCBwP_MiGp@i7zaXOfJ*b)u?>eW1q@Nygnf$a{`Lb1Cqp2icj7j;lU?% zxrPs@C$Bw(%*mY5Ky{T;>RQE|W~Y{{hnPY+e}0h<-#N;|PxKM$*z9P_Nr<9-aWdy* zNOiqvZ}ah6-vQ9t+{!hfRwHE2%`GrKdXm5XoZ-=DcGDcHa}7nOB~!(<=whoB`BEYd zz4;%Yx`?=wh*Id^7vb(lZgnK)1uo<* za10?Q5oVaZ@zUE*c_!#Y*r`tOz4AODR4=M7T}yRbF5H&UeE-U86@6l2BJRcDr7WfT z2FP>N?E+H3!qCvruc}F^GJYxH)SnQ7p`oE)fdz7$jSxxzu>%JV97(6s8~5+uzqO;I zqsHlX0jHmwoa&uMw$zB*pHH7Yy?F58!Pwy7;1M8}=WP7YEr2FqJ8&bg6{sy5g3F5q za>U1gpMe=Er8Lq9A%q6h0nOydS6v>Sj#wclVj7s2QtF_-N~s_hT36yfdt{`P8FS^o X#P`09H^i%C00000NkvXXu0mjf=JAFF literal 0 HcmV?d00001 diff --git a/packages/phocadownload/media/com_phocadownload/images/mime/48/icon-empty.png b/packages/phocadownload/media/com_phocadownload/images/mime/48/icon-empty.png new file mode 100644 index 0000000000000000000000000000000000000000..ec5c158d0b71565e472ff64eaa809580b88d9e3f GIT binary patch literal 997 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 bW0HRXaU+8uqEuZd00000NkvXXu0mjf4bsiP literal 0 HcmV?d00001 diff --git a/packages/phocadownload/media/com_phocadownload/images/mime/48/icon-folder.png b/packages/phocadownload/media/com_phocadownload/images/mime/48/icon-folder.png new file mode 100644 index 0000000000000000000000000000000000000000..f47e7e13caf09c921cab286694c6d9e5cdb82f7b GIT binary patch literal 1516 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 Uq1DSk&j0`b07*qoM6N<$f?oP8wg3PC literal 0 HcmV?d00001 diff --git a/packages/phocadownload/media/com_phocadownload/images/mime/48/icon-pdf.png b/packages/phocadownload/media/com_phocadownload/images/mime/48/icon-pdf.png new file mode 100644 index 0000000000000000000000000000000000000000..6bb7ab285c58a6498c3c74ea1fc62b29a8aba6ef GIT binary patch literal 2806 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 IM6N<$f=|as+5i9m literal 0 HcmV?d00001 diff --git a/packages/phocadownload/media/com_phocadownload/images/mime/48/icon-php.png b/packages/phocadownload/media/com_phocadownload/images/mime/48/icon-php.png new file mode 100644 index 0000000000000000000000000000000000000000..1bac2ec1b555014024caf83df9c9f8321e56cc21 GIT binary patch literal 3358 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 literal 0 HcmV?d00001 diff --git a/packages/phocadownload/media/com_phocadownload/images/mime/48/icon-presentation.png b/packages/phocadownload/media/com_phocadownload/images/mime/48/icon-presentation.png new file mode 100644 index 0000000000000000000000000000000000000000..d08d1b172fad0dec688a2ecca5b5c7bc67b7b0d4 GIT binary patch literal 2586 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 literal 0 HcmV?d00001 diff --git a/packages/phocadownload/media/com_phocadownload/images/mime/48/icon-rar.png b/packages/phocadownload/media/com_phocadownload/images/mime/48/icon-rar.png new file mode 100644 index 0000000000000000000000000000000000000000..a9b49d1f2a20b3ae0c484d263a473eba9385310d GIT binary patch literal 2309 zcmV+g3HtVlP)L{pS|zEr zSWvJJ$zgVJ`fR;jor3Csx6bq6MB9wk9E!bKL(Qn1lLQ6|Y#bTo@X^d&zST~#9 zY$m(O?q=R+?#p@lVP1A#?re;@yY_+m;hyu%z5nMt|L5hLJ4!_Oe-^#b06wn7+HaIn z7LWkqeEN(tfCp4XBy0}03{Xlr_wT#^#wYGQ^6Rm!<6lf9o%)<=Dzs5efgmWLKH5t| zX&;ley9Q;O%zfwW(>(Rs;{c@7>6aYGVSax85Ww%A{5wPAE&zq4Qf+p2=1;$Tb`@uuwueB)8Am9KMwKAMEcT)Bv{&0!46NtXq>$^njE|4=^wUq1PNy5jN#t)>DX$$ttT!?Sq9^;}(L@C? z08|&DBCUju>5uHWW(-GBh=}f3>i4T;q3etR zr4^`;(T1;@g(3{-a&<=~2Gy~WN-MOrlD0%xsg6?b;gzMZ;+nt<5hJVWM}l0XkVQ3f z4gJVUtW;OjTb5>E^8l8;(lUi!NG<14EBUAxBu5kIxJFq}$$1QHcKhl_<^1Nzhb?4{ zXY>hTR7c@ZTF_c?^cO!NnMe|v5Z4*tv4;<#DjKCV@16TMe|-Hl4j()MidFSPFX%O3 zwWJYI$hy~{Ye&{u2b8J5V8q$X69>OX=o|j_`d>LaJ;{!dU089&^vpEFPKNi-O|pG> z$13`}G1dNY(xlLH&pn5#7prS|Ac8`wI|iDR5<~<)@W_>O>~?P<3=K{q&V}qO2X4EI zsp%j5DmhymNS zv14&!+M?=L2*Td9JG?c`!2>7#z%ykAaok1hMusoMvxi`Y{T(0}=grOmKsrN`S zN?$~xH!%wQz{3xE4UCY;G^+E(97%VOLa_llgwXHhZIqZ`?b~oW9-~sJK%XF1XJ`Jy z?j3vh@6=iHg3gg{a8d0RqxD56`B8_dLU@(X=ElP(Qz^ZUn853KHLQ`^VtP6Ry(41Y<&`UY#CF{A$|$MD$4k1)jXD2J23`~fM^@6 z1jDO<}j(wgm^ax8=Fx9INl+dPzrRqDh zwKYHpMPal9u_QW?#!4zIt4d}56jIL40l5a|mH}m8y7>MdUUkyj9yP_e&32li~;+A+ku;b z)S4o_e#ub>{x9GRFfSsa+CFn?U>Mj+9ejLaaP}3Cx)GOvWs!POQr(@QQYuEBTA#*0 fdjulV(GL6%;13*NuiS)c00000NkvXXu0mjf{rF7X literal 0 HcmV?d00001 diff --git a/packages/phocadownload/media/com_phocadownload/images/mime/48/icon-source.png b/packages/phocadownload/media/com_phocadownload/images/mime/48/icon-source.png new file mode 100644 index 0000000000000000000000000000000000000000..c7bf4344add881dbc398c15a2b4c13446a1a05b6 GIT binary patch literal 2443 zcmV;633T>}P)6TC_6 zUEAy3@mx+H_Tt&yS=)(mL%-5!XMXd$e9z@~=KRizs`CE~bFT?(6?XJNL@Xc$B>3hD z7Xqt5MOA}FtEy6SqvY7w*vRDMZbC*Ztf9`g6HlEcv?h+f9BmYt=aRQ{~*)#1;|1s-tF|wgsZ7_lfI! zH)yp$2a6_s4BT!j^W|q#+r2{)QQ)X z(}D)y`W_en9(P^$Ptk#%=b@_Dwv91{APBH+yRk^6Qo*)uEX!(IIJ#&M1hMby2*VI# zOrvl8zV$iEE169G0QiTh-i&?+Od~Ya2+YpTlFeqBnwlb=P7?$Hxm*t0wizBCW^Qhd zd_GSynIs4T%H=YnqoXV=EU>)13_xFBAFk_CE|)oc_%K(mUS)Q6mchY6Y}-av>Fw>s z_kA*%47ps6rKKen7Z>U7?xw$gZCgex(U3A~ffJQV<&RMft*opdB3PD1GMQ}BpzFFA zV@MW9Ebtrlq81BF6?Y&J_ipQl_d zQ!bauWHQ*cO+KIJ*s)_=xNw2h)m0qFVR(2L-}jlHpC_G8bKt;%HUT;Xg*e}j5^tTR zaZ{6O5Ev_$%i~cEMZ?+uB7{a!Cmpp!om)DcejfNxRr786PAk!{HrNltrsuVl!s=DO z-$ukKv1t=WU#Kd-otVH^C6`RH{vbg&ci) zJ7sBbZOTTYz9u5P{P4pdf)OE5#WsdUj}tF|7$gkPy8qT)Gd_0T5u$F>$}Nhz0EQR~ zygoTeP_uv+hLk-I+p>7+&_49LCLRL5Q!17I zQ12lkgsLduSQab3Puj8wMX*Jnt`QLk0}xaFHCDClF43CG#95%LtLp{eZ>suL$1qyA zfENS|WHNYR$cpEYb{t+D9fmJH1ls}2fg4{yWeIuwM}&p1ko}K>liCvb4bT=whkz$b zrPBGvi`9LUrO~@5dtZYd4T}J2SYBOyv)@66afLQ?=mqr!PtFcO0hGiMCC=8+dwYY3Yr| z3lX#?h!LUWd2}Tb*v5bhQWj9q9$lNx2ZGv_g&+(tVo(%6^s$YN5rY?cIK~00eMAH! zhCl;^wU3~%mf%GN=4J@y$f@qh+iHk%YDOvQ9qQ z2fz}mDcxSDI?~|V(S-osdTWL&R~8u=>1BF)9?P;gbLJTDymJX-3}L8rcPH4px0}(C z9QH45^r%+LPZ^LY!9U|;|Jp|HQ?NmIDCTp+!cP|H9_)@Ix0xu^=0bacXNtw*?^-u+ zspOH(CI~~tvN{**WM0r6kwsQ(>S-O~0Ty^c^^AO{0@O}$XMnd=b+%(R3h?&ZGhDe+ zWOTHTnVBM%C7eEel=t4dg6H|DLQhYEefx5Z?CrrmYoogrxB#?+K!Zaf$tUyh1XjTFs>VrPCHF) zu~-2zonJSg#O$_agkjimFVrd-F9Cm1)!B6mxYhHgT^qOovCWW&4awKnHD+_Q<#jjl z`1lum`QA4BG&1lA=BN+7P_pYpN(X(2NLNstA> ze9v%o=ql+QX+E9(lxGe-bJxr^nG3}xb8RjJ;6LdTJh}FNf|)mX&wI7m>my+gdjL4O z@8p(_lN;qi>$y;)L$p|HrVaM{HW-kS;63kQja$g=YFG@8S3m!=v$Lf8(_AcEWe(09gaFJfgOml`rI@@yE(^hl04y*whHyBChHW1|RL7r+IIyACU8hc++JEri!ED=MKIT69+^M~jX4lhr z>;3ff^z!-h=V#8HJNGUyQ{&u7rv=yrd<%F4*bnr!so>tCNR{{m@HsH2s@g~&M8p7n zzz|jPiTHW$8CIzZ@fEP3TKzMkE&mY_oA|@vy+#Q5s_I7@{|m(j>99w+x%~hD002ov JPDHLkV1n+ynA-pV literal 0 HcmV?d00001 diff --git a/packages/phocadownload/media/com_phocadownload/images/mime/48/icon-spreadsheet.png b/packages/phocadownload/media/com_phocadownload/images/mime/48/icon-spreadsheet.png new file mode 100644 index 0000000000000000000000000000000000000000..af88f8350dd374b10cb587b9537c203610357abf GIT binary patch literal 2007 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 literal 0 HcmV?d00001 diff --git a/packages/phocadownload/media/com_phocadownload/images/mime/48/icon-tar.png b/packages/phocadownload/media/com_phocadownload/images/mime/48/icon-tar.png new file mode 100644 index 0000000000000000000000000000000000000000..ba2a7738328f7fb6cab46131cc26063c85c6bfc1 GIT binary patch literal 1013 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 IM6N<$f?91m%K!iX literal 0 HcmV?d00001 diff --git a/packages/phocadownload/media/com_phocadownload/images/mime/48/icon-video.png b/packages/phocadownload/media/com_phocadownload/images/mime/48/icon-video.png new file mode 100644 index 0000000000000000000000000000000000000000..6b8f79c05ebe2c5e0b58cc77cb595d7e36d0afea GIT binary patch literal 3265 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 literal 0 HcmV?d00001 diff --git a/packages/phocadownload/media/com_phocadownload/images/mime/48/icon-xml.png b/packages/phocadownload/media/com_phocadownload/images/mime/48/icon-xml.png new file mode 100644 index 0000000000000000000000000000000000000000..5cda3e624fdac0f56ddd2cb690b50db0f56675d6 GIT binary patch literal 2954 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 APyhe` literal 0 HcmV?d00001 diff --git a/packages/phocadownload/media/com_phocadownload/images/mime/48/icon-zip.png b/packages/phocadownload/media/com_phocadownload/images/mime/48/icon-zip.png new file mode 100644 index 0000000000000000000000000000000000000000..4d2c42ba2732c598104b4c4a54d08601ce5b10d6 GIT binary patch literal 2232 zcmV;p2uJscP)R^f2Xcpb76Xh9$`RdrW&S5F2EGvi54x=x*Qs{a4){J-y+S=fI$fz;yEcB}g%?lkR7zbJkqUqk zk=XM67yt6&vG=}z^(U#_1U>zzESX9d&%Vw2=l;Z|O`GsMk3ylq*|TRkckUe5{`M@n zu6(Nfh4a_{_@OPodJecHB0($@4;Xm&>Q(Edat-lIhz{l_i^lhTcI?=J=XrE@cXQyt z0RTjFOZ&BJdY=XcBFuFO*}ziU?Y3m0s9`E}yi7L%c*Gw~Q?J24C9#Ov0rW8=n+?A^OJ z1?WK}WC(&tFwZ%(@afa1Iez>&+qZ8|6Uc7AxSY6sT}BjA=|yr(zyOSJp*YVI*{l-E zz@rqzcu9|dk_GUAq=atYzRmXS+c|XTP*j;U0tzysP;_$vB*bhI%D`h7(1rjDF#@wn zD1(4%a@$lCBAN&0Gsgt7qEI*!H}whIw~0as$l{TZ%EHqWwK8VnWCsOC6UVkV;_u`K zG(hCUSrU>gCpPNyK+8cq;xu$N*uy{%xC3SS<_Wf3GOqbp;GKQ(v!G$hm-g)*Et z46E5rjHvY5BZ^qReC16pUmiyUfyMDuggJ0u?@Bf<4P74uO_1F@=`|YRj z{bA6xIWm}SV=ZGX)YQD`i%jCxUUXLwf0}Q7@P zZAAQ;==nO5eGNoYp7!bROoZS8!f``FgM)*3o|huf5=KM9nagRFxf)f1kz2waUOUGp zo_dU&IgaT5@cBBRQqvs#$q6RLt9+o?#j^e!{^U%n<=Wy8B~qx-hADLBU}$KFJ$v?quT_ffP6G*QX*__CCe*T=P7b{?OqA(ycdWwUS5Ff}4)@Ya zUyimsrT!~^8MHrV;Bo5hf}LMj&d+`~%2ed{-5mx$-uXeQ!GlM|=CUStND`1hPZi1-h^DP{s)rVla&GmZW1%=hSe6l!(i%H%B!x1V5o zG`gh`9?q(dA}Pb6G7~@>Csucc2U)&)J(Zh(O^{d|NtrH&ljq)O723=L+_*Z*iZy+B z#ZQB=B+)(GqYNi5O?X%lMXdNTn8)Xk}nkKEfkr&J_PMHw#wxaeR+6S@ks*T2?_Wb z9q7>eB_dI`X5*|ZB$pr*S+_wXnuJo;PqeKQQ5dF)VVYRBgXuchITzc}R7+!ADwk5e zk&=+@bTE8rm{rAbY*SI22?(kIK`lTBjh9PZx2@OhW!1ROl3-(`2rX}imUlWlRA&bj zGslgqQ`k;Nri4NQbqS3!dG9`cH9-41%sR5R76e@%iB{<(Wzs6KI^cv9C2_437-kK_ ztYSG8Ot*rQo1v$_Kwm>bnFRFx$-BW5`8DQ1@gr#8!LJ4AT0=s0*|Y`GN+@ii6NDn- zbq6N(thx`_Hl}T3yKXoVu23!A;=z!V}6eG!}CTSPnc6JPE7@dRSa(f)MyWfeXN>h=__07?e^5&i&bFyaNa7}NPvTFr<`WX7ltn15#rS6rUqn)?%l`t>U0LD?u;Fw70000 \ No newline at end of file diff --git a/packages/phocadownload/media/com_phocadownload/images/mime/64/icon-7zip.png b/packages/phocadownload/media/com_phocadownload/images/mime/64/icon-7zip.png new file mode 100644 index 0000000000000000000000000000000000000000..b87d6deb3345661e3cb9ae30e05d1db900a13c4a GIT binary patch literal 2976 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 N002ovPDHLkV1jkdl!^cV literal 0 HcmV?d00001 diff --git a/packages/phocadownload/media/com_phocadownload/images/mime/64/icon-document.png b/packages/phocadownload/media/com_phocadownload/images/mime/64/icon-document.png new file mode 100644 index 0000000000000000000000000000000000000000..b5b5e6aab46aaa28884db9e732a71e256ca15357 GIT binary patch literal 5273 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 literal 0 HcmV?d00001 diff --git a/packages/phocadownload/media/com_phocadownload/images/mime/64/icon-drawing.png b/packages/phocadownload/media/com_phocadownload/images/mime/64/icon-drawing.png new file mode 100644 index 0000000000000000000000000000000000000000..be8b60f93c524d870c6d15039176b79e994c753a GIT binary patch literal 2736 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 literal 0 HcmV?d00001 diff --git a/packages/phocadownload/media/com_phocadownload/images/mime/64/icon-folder-open.png b/packages/phocadownload/media/com_phocadownload/images/mime/64/icon-folder-open.png new file mode 100644 index 0000000000000000000000000000000000000000..914976fc6f960a8b020135d36901b73b418cf573 GIT binary patch literal 2339 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 Ac>n+a literal 0 HcmV?d00001 diff --git a/packages/phocadownload/media/com_phocadownload/images/mime/64/icon-gzip.png b/packages/phocadownload/media/com_phocadownload/images/mime/64/icon-gzip.png new file mode 100644 index 0000000000000000000000000000000000000000..46d82bfc207a2edf1be4edcbb91b38e0d7260572 GIT binary patch literal 2810 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 O00008z4hp>?iz+}W*BHO;2Dnr8*hw| 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 literal 0 HcmV?d00001 diff --git a/packages/phocadownload/media/com_phocadownload/images/mime/64/icon-pdf.png b/packages/phocadownload/media/com_phocadownload/images/mime/64/icon-pdf.png new file mode 100644 index 0000000000000000000000000000000000000000..bb2086ffd88228643a50d49761952a08d0aba362 GIT binary patch literal 4032 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 N002ovPDHLkV1fmho(KQ{ literal 0 HcmV?d00001 diff --git a/packages/phocadownload/media/com_phocadownload/images/mime/64/icon-tar.png b/packages/phocadownload/media/com_phocadownload/images/mime/64/icon-tar.png new file mode 100644 index 0000000000000000000000000000000000000000..817cf09239fbcd7c4fc52db91239eaf20aa51fdb GIT binary patch literal 2210 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 L%RsYA-7fln{od%o literal 0 HcmV?d00001 diff --git a/packages/phocadownload/media/com_phocadownload/images/mime/64/icon-video.png b/packages/phocadownload/media/com_phocadownload/images/mime/64/icon-video.png new file mode 100644 index 0000000000000000000000000000000000000000..78b9cd573d26428c191832b445918cb78c342dff GIT binary patch literal 5220 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 IM6N<$f-#b4{{R30 literal 0 HcmV?d00001 diff --git a/packages/phocadownload/media/com_phocadownload/images/mime/64/index.html b/packages/phocadownload/media/com_phocadownload/images/mime/64/index.html new file mode 100644 index 00000000..fa6d84e8 --- /dev/null +++ b/packages/phocadownload/media/com_phocadownload/images/mime/64/index.html @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/phocadownload/media/com_phocadownload/images/mime/AUTHORS b/packages/phocadownload/media/com_phocadownload/images/mime/AUTHORS new file mode 100644 index 00000000..bb7475c4 --- /dev/null +++ b/packages/phocadownload/media/com_phocadownload/images/mime/AUTHORS @@ -0,0 +1,5 @@ +Faenza is designed and developed by Matthieu James . + +Faenza icons are all licensed under the GPL. + +Thanks to Holger Seelig and clemyeats for their help for having some text preview inside icons in Nautilus. diff --git a/packages/phocadownload/media/com_phocadownload/images/mime/COPYING b/packages/phocadownload/media/com_phocadownload/images/mime/COPYING new file mode 100644 index 00000000..94a9ed02 --- /dev/null +++ b/packages/phocadownload/media/com_phocadownload/images/mime/COPYING @@ -0,0 +1,674 @@ + GNU GENERAL PUBLIC LICENSE + Version 3, 29 June 2007 + + Copyright (C) 2007 Free Software Foundation, Inc. + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + + Preamble + + The GNU General Public License is a free, copyleft license for +software and other kinds of works. + + The licenses for most software and other practical works are designed +to take away your freedom to share and change the works. By contrast, +the GNU General Public License is intended to guarantee your freedom to +share and change all versions of a program--to make sure it remains free +software for all its users. We, the Free Software Foundation, use the +GNU General Public License for most of our software; it applies also to +any other work released this way by its authors. You can apply it to +your programs, too. + + When we speak of free software, we are referring to freedom, not +price. Our General Public Licenses are designed to make sure that you +have the freedom to distribute copies of free software (and charge for +them if you wish), that you receive source code or can get it if you +want it, that you can change the software or use pieces of it in new +free programs, and that you know you can do these things. + + To protect your rights, we need to prevent others from denying you +these rights or asking you to surrender the rights. Therefore, you have +certain responsibilities if you distribute copies of the software, or if +you modify it: responsibilities to respect the freedom of others. + + For example, if you distribute copies of such a program, whether +gratis or for a fee, you must pass on to the recipients the same +freedoms that you received. You must make sure that they, too, receive +or can get the source code. And you must show them these terms so they +know their rights. + + Developers that use the GNU GPL protect your rights with two steps: +(1) assert copyright on the software, and (2) offer you this License +giving you legal permission to copy, distribute and/or modify it. + + For the developers' and authors' protection, the GPL clearly explains +that there is no warranty for this free software. For both users' and +authors' sake, the GPL requires that modified versions be marked as +changed, so that their problems will not be attributed erroneously to +authors of previous versions. + + Some devices are designed to deny users access to install or run +modified versions of the software inside them, although the manufacturer +can do so. This is fundamentally incompatible with the aim of +protecting users' freedom to change the software. The systematic +pattern of such abuse occurs in the area of products for individuals to +use, which is precisely where it is most unacceptable. Therefore, we +have designed this version of the GPL to prohibit the practice for those +products. If such problems arise substantially in other domains, we +stand ready to extend this provision to those domains in future versions +of the GPL, as needed to protect the freedom of users. + + Finally, every program is threatened constantly by software patents. +States should not allow patents to restrict development and use of +software on general-purpose computers, but in those that do, we wish to +avoid the special danger that patents applied to a free program could +make it effectively proprietary. To prevent this, the GPL assures that +patents cannot be used to render the program non-free. + + The precise terms and conditions for copying, distribution and +modification follow. + + TERMS AND CONDITIONS + + 0. Definitions. + + "This License" refers to version 3 of the GNU General Public License. + + "Copyright" also means copyright-like laws that apply to other kinds of +works, such as semiconductor masks. + + "The Program" refers to any copyrightable work licensed under this +License. Each licensee is addressed as "you". "Licensees" and +"recipients" may be individuals or organizations. + + To "modify" a work means to copy from or adapt all or part of the work +in a fashion requiring copyright permission, other than the making of an +exact copy. The resulting work is called a "modified version" of the +earlier work or a work "based on" the earlier work. + + A "covered work" means either the unmodified Program or a work based +on the Program. + + To "propagate" a work means to do anything with it that, without +permission, would make you directly or secondarily liable for +infringement under applicable copyright law, except executing it on a +computer or modifying a private copy. Propagation includes copying, +distribution (with or without modification), making available to the +public, and in some countries other activities as well. + + To "convey" a work means any kind of propagation that enables other +parties to make or receive copies. Mere interaction with a user through +a computer network, with no transfer of a copy, is not conveying. + + An interactive user interface displays "Appropriate Legal Notices" +to the extent that it includes a convenient and prominently visible +feature that (1) displays an appropriate copyright notice, and (2) +tells the user that there is no warranty for the work (except to the +extent that warranties are provided), that licensees may convey the +work under this License, and how to view a copy of this License. If +the interface presents a list of user commands or options, such as a +menu, a prominent item in the list meets this criterion. + + 1. Source Code. + + The "source code" for a work means the preferred form of the work +for making modifications to it. "Object code" means any non-source +form of a work. + + A "Standard Interface" means an interface that either is an official +standard defined by a recognized standards body, or, in the case of +interfaces specified for a particular programming language, one that +is widely used among developers working in that language. + + The "System Libraries" of an executable work include anything, other +than the work as a whole, that (a) is included in the normal form of +packaging a Major Component, but which is not part of that Major +Component, and (b) serves only to enable use of the work with that +Major Component, or to implement a Standard Interface for which an +implementation is available to the public in source code form. A +"Major Component", in this context, means a major essential component +(kernel, window system, and so on) of the specific operating system +(if any) on which the executable work runs, or a compiler used to +produce the work, or an object code interpreter used to run it. + + The "Corresponding Source" for a work in object code form means all +the source code needed to generate, install, and (for an executable +work) run the object code and to modify the work, including scripts to +control those activities. However, it does not include the work's +System Libraries, or general-purpose tools or generally available free +programs which are used unmodified in performing those activities but +which are not part of the work. For example, Corresponding Source +includes interface definition files associated with source files for +the work, and the source code for shared libraries and dynamically +linked subprograms that the work is specifically designed to require, +such as by intimate data communication or control flow between those +subprograms and other parts of the work. + + The Corresponding Source need not include anything that users +can regenerate automatically from other parts of the Corresponding +Source. + + The Corresponding Source for a work in source code form is that +same work. + + 2. Basic Permissions. + + All rights granted under this License are granted for the term of +copyright on the Program, and are irrevocable provided the stated +conditions are met. This License explicitly affirms your unlimited +permission to run the unmodified Program. The output from running a +covered work is covered by this License only if the output, given its +content, constitutes a covered work. This License acknowledges your +rights of fair use or other equivalent, as provided by copyright law. + + You may make, run and propagate covered works that you do not +convey, without conditions so long as your license otherwise remains +in force. You may convey covered works to others for the sole purpose +of having them make modifications exclusively for you, or provide you +with facilities for running those works, provided that you comply with +the terms of this License in conveying all material for which you do +not control copyright. Those thus making or running the covered works +for you must do so exclusively on your behalf, under your direction +and control, on terms that prohibit them from making any copies of +your copyrighted material outside their relationship with you. + + Conveying under any other circumstances is permitted solely under +the conditions stated below. Sublicensing is not allowed; section 10 +makes it unnecessary. + + 3. Protecting Users' Legal Rights From Anti-Circumvention Law. + + No covered work shall be deemed part of an effective technological +measure under any applicable law fulfilling obligations under article +11 of the WIPO copyright treaty adopted on 20 December 1996, or +similar laws prohibiting or restricting circumvention of such +measures. + + When you convey a covered work, you waive any legal power to forbid +circumvention of technological measures to the extent such circumvention +is effected by exercising rights under this License with respect to +the covered work, and you disclaim any intention to limit operation or +modification of the work as a means of enforcing, against the work's +users, your or third parties' legal rights to forbid circumvention of +technological measures. + + 4. Conveying Verbatim Copies. + + You may convey verbatim copies of the Program's source code as you +receive it, in any medium, provided that you conspicuously and +appropriately publish on each copy an appropriate copyright notice; +keep intact all notices stating that this License and any +non-permissive terms added in accord with section 7 apply to the code; +keep intact all notices of the absence of any warranty; and give all +recipients a copy of this License along with the Program. + + You may charge any price or no price for each copy that you convey, +and you may offer support or warranty protection for a fee. + + 5. Conveying Modified Source Versions. + + You may convey a work based on the Program, or the modifications to +produce it from the Program, in the form of source code under the +terms of section 4, provided that you also meet all of these conditions: + + a) The work must carry prominent notices stating that you modified + it, and giving a relevant date. + + b) The work must carry prominent notices stating that it is + released under this License and any conditions added under section + 7. This requirement modifies the requirement in section 4 to + "keep intact all notices". + + c) You must license the entire work, as a whole, under this + License to anyone who comes into possession of a copy. This + License will therefore apply, along with any applicable section 7 + additional terms, to the whole of the work, and all its parts, + regardless of how they are packaged. This License gives no + permission to license the work in any other way, but it does not + invalidate such permission if you have separately received it. + + d) If the work has interactive user interfaces, each must display + Appropriate Legal Notices; however, if the Program has interactive + interfaces that do not display Appropriate Legal Notices, your + work need not make them do so. + + A compilation of a covered work with other separate and independent +works, which are not by their nature extensions of the covered work, +and which are not combined with it such as to form a larger program, +in or on a volume of a storage or distribution medium, is called an +"aggregate" if the compilation and its resulting copyright are not +used to limit the access or legal rights of the compilation's users +beyond what the individual works permit. Inclusion of a covered work +in an aggregate does not cause this License to apply to the other +parts of the aggregate. + + 6. Conveying Non-Source Forms. + + You may convey a covered work in object code form under the terms +of sections 4 and 5, provided that you also convey the +machine-readable Corresponding Source under the terms of this License, +in one of these ways: + + a) Convey the object code in, or embodied in, a physical product + (including a physical distribution medium), accompanied by the + Corresponding Source fixed on a durable physical medium + customarily used for software interchange. + + b) Convey the object code in, or embodied in, a physical product + (including a physical distribution medium), accompanied by a + written offer, valid for at least three years and valid for as + long as you offer spare parts or customer support for that product + model, to give anyone who possesses the object code either (1) a + copy of the Corresponding Source for all the software in the + product that is covered by this License, on a durable physical + medium customarily used for software interchange, for a price no + more than your reasonable cost of physically performing this + conveying of source, or (2) access to copy the + Corresponding Source from a network server at no charge. + + c) Convey individual copies of the object code with a copy of the + written offer to provide the Corresponding Source. This + alternative is allowed only occasionally and noncommercially, and + only if you received the object code with such an offer, in accord + with subsection 6b. + + d) Convey the object code by offering access from a designated + place (gratis or for a charge), and offer equivalent access to the + Corresponding Source in the same way through the same place at no + further charge. You need not require recipients to copy the + Corresponding Source along with the object code. If the place to + copy the object code is a network server, the Corresponding Source + may be on a different server (operated by you or a third party) + that supports equivalent copying facilities, provided you maintain + clear directions next to the object code saying where to find the + Corresponding Source. Regardless of what server hosts the + Corresponding Source, you remain obligated to ensure that it is + available for as long as needed to satisfy these requirements. + + e) Convey the object code using peer-to-peer transmission, provided + you inform other peers where the object code and Corresponding + Source of the work are being offered to the general public at no + charge under subsection 6d. + + A separable portion of the object code, whose source code is excluded +from the Corresponding Source as a System Library, need not be +included in conveying the object code work. + + A "User Product" is either (1) a "consumer product", which means any +tangible personal property which is normally used for personal, family, +or household purposes, or (2) anything designed or sold for incorporation +into a dwelling. In determining whether a product is a consumer product, +doubtful cases shall be resolved in favor of coverage. For a particular +product received by a particular user, "normally used" refers to a +typical or common use of that class of product, regardless of the status +of the particular user or of the way in which the particular user +actually uses, or expects or is expected to use, the product. A product +is a consumer product regardless of whether the product has substantial +commercial, industrial or non-consumer uses, unless such uses represent +the only significant mode of use of the product. + + "Installation Information" for a User Product means any methods, +procedures, authorization keys, or other information required to install +and execute modified versions of a covered work in that User Product from +a modified version of its Corresponding Source. The information must +suffice to ensure that the continued functioning of the modified object +code is in no case prevented or interfered with solely because +modification has been made. + + If you convey an object code work under this section in, or with, or +specifically for use in, a User Product, and the conveying occurs as +part of a transaction in which the right of possession and use of the +User Product is transferred to the recipient in perpetuity or for a +fixed term (regardless of how the transaction is characterized), the +Corresponding Source conveyed under this section must be accompanied +by the Installation Information. But this requirement does not apply +if neither you nor any third party retains the ability to install +modified object code on the User Product (for example, the work has +been installed in ROM). + + The requirement to provide Installation Information does not include a +requirement to continue to provide support service, warranty, or updates +for a work that has been modified or installed by the recipient, or for +the User Product in which it has been modified or installed. Access to a +network may be denied when the modification itself materially and +adversely affects the operation of the network or violates the rules and +protocols for communication across the network. + + Corresponding Source conveyed, and Installation Information provided, +in accord with this section must be in a format that is publicly +documented (and with an implementation available to the public in +source code form), and must require no special password or key for +unpacking, reading or copying. + + 7. Additional Terms. + + "Additional permissions" are terms that supplement the terms of this +License by making exceptions from one or more of its conditions. +Additional permissions that are applicable to the entire Program shall +be treated as though they were included in this License, to the extent +that they are valid under applicable law. If additional permissions +apply only to part of the Program, that part may be used separately +under those permissions, but the entire Program remains governed by +this License without regard to the additional permissions. + + When you convey a copy of a covered work, you may at your option +remove any additional permissions from that copy, or from any part of +it. (Additional permissions may be written to require their own +removal in certain cases when you modify the work.) You may place +additional permissions on material, added by you to a covered work, +for which you have or can give appropriate copyright permission. + + Notwithstanding any other provision of this License, for material you +add to a covered work, you may (if authorized by the copyright holders of +that material) supplement the terms of this License with terms: + + a) Disclaiming warranty or limiting liability differently from the + terms of sections 15 and 16 of this License; or + + b) Requiring preservation of specified reasonable legal notices or + author attributions in that material or in the Appropriate Legal + Notices displayed by works containing it; or + + c) Prohibiting misrepresentation of the origin of that material, or + requiring that modified versions of such material be marked in + reasonable ways as different from the original version; or + + d) Limiting the use for publicity purposes of names of licensors or + authors of the material; or + + e) Declining to grant rights under trademark law for use of some + trade names, trademarks, or service marks; or + + f) Requiring indemnification of licensors and authors of that + material by anyone who conveys the material (or modified versions of + it) with contractual assumptions of liability to the recipient, for + any liability that these contractual assumptions directly impose on + those licensors and authors. + + All other non-permissive additional terms are considered "further +restrictions" within the meaning of section 10. If the Program as you +received it, or any part of it, contains a notice stating that it is +governed by this License along with a term that is a further +restriction, you may remove that term. If a license document contains +a further restriction but permits relicensing or conveying under this +License, you may add to a covered work material governed by the terms +of that license document, provided that the further restriction does +not survive such relicensing or conveying. + + If you add terms to a covered work in accord with this section, you +must place, in the relevant source files, a statement of the +additional terms that apply to those files, or a notice indicating +where to find the applicable terms. + + Additional terms, permissive or non-permissive, may be stated in the +form of a separately written license, or stated as exceptions; +the above requirements apply either way. + + 8. Termination. + + You may not propagate or modify a covered work except as expressly +provided under this License. Any attempt otherwise to propagate or +modify it is void, and will automatically terminate your rights under +this License (including any patent licenses granted under the third +paragraph of section 11). + + However, if you cease all violation of this License, then your +license from a particular copyright holder is reinstated (a) +provisionally, unless and until the copyright holder explicitly and +finally terminates your license, and (b) permanently, if the copyright +holder fails to notify you of the violation by some reasonable means +prior to 60 days after the cessation. + + Moreover, your license from a particular copyright holder is +reinstated permanently if the copyright holder notifies you of the +violation by some reasonable means, this is the first time you have +received notice of violation of this License (for any work) from that +copyright holder, and you cure the violation prior to 30 days after +your receipt of the notice. + + Termination of your rights under this section does not terminate the +licenses of parties who have received copies or rights from you under +this License. If your rights have been terminated and not permanently +reinstated, you do not qualify to receive new licenses for the same +material under section 10. + + 9. Acceptance Not Required for Having Copies. + + You are not required to accept this License in order to receive or +run a copy of the Program. Ancillary propagation of a covered work +occurring solely as a consequence of using peer-to-peer transmission +to receive a copy likewise does not require acceptance. However, +nothing other than this License grants you permission to propagate or +modify any covered work. These actions infringe copyright if you do +not accept this License. Therefore, by modifying or propagating a +covered work, you indicate your acceptance of this License to do so. + + 10. Automatic Licensing of Downstream Recipients. + + Each time you convey a covered work, the recipient automatically +receives a license from the original licensors, to run, modify and +propagate that work, subject to this License. You are not responsible +for enforcing compliance by third parties with this License. + + An "entity transaction" is a transaction transferring control of an +organization, or substantially all assets of one, or subdividing an +organization, or merging organizations. If propagation of a covered +work results from an entity transaction, each party to that +transaction who receives a copy of the work also receives whatever +licenses to the work the party's predecessor in interest had or could +give under the previous paragraph, plus a right to possession of the +Corresponding Source of the work from the predecessor in interest, if +the predecessor has it or can get it with reasonable efforts. + + You may not impose any further restrictions on the exercise of the +rights granted or affirmed under this License. For example, you may +not impose a license fee, royalty, or other charge for exercise of +rights granted under this License, and you may not initiate litigation +(including a cross-claim or counterclaim in a lawsuit) alleging that +any patent claim is infringed by making, using, selling, offering for +sale, or importing the Program or any portion of it. + + 11. Patents. + + A "contributor" is a copyright holder who authorizes use under this +License of the Program or a work on which the Program is based. The +work thus licensed is called the contributor's "contributor version". + + A contributor's "essential patent claims" are all patent claims +owned or controlled by the contributor, whether already acquired or +hereafter acquired, that would be infringed by some manner, permitted +by this License, of making, using, or selling its contributor version, +but do not include claims that would be infringed only as a +consequence of further modification of the contributor version. For +purposes of this definition, "control" includes the right to grant +patent sublicenses in a manner consistent with the requirements of +this License. + + Each contributor grants you a non-exclusive, worldwide, royalty-free +patent license under the contributor's essential patent claims, to +make, use, sell, offer for sale, import and otherwise run, modify and +propagate the contents of its contributor version. + + In the following three paragraphs, a "patent license" is any express +agreement or commitment, however denominated, not to enforce a patent +(such as an express permission to practice a patent or covenant not to +sue for patent infringement). To "grant" such a patent license to a +party means to make such an agreement or commitment not to enforce a +patent against the party. + + If you convey a covered work, knowingly relying on a patent license, +and the Corresponding Source of the work is not available for anyone +to copy, free of charge and under the terms of this License, through a +publicly available network server or other readily accessible means, +then you must either (1) cause the Corresponding Source to be so +available, or (2) arrange to deprive yourself of the benefit of the +patent license for this particular work, or (3) arrange, in a manner +consistent with the requirements of this License, to extend the patent +license to downstream recipients. "Knowingly relying" means you have +actual knowledge that, but for the patent license, your conveying the +covered work in a country, or your recipient's use of the covered work +in a country, would infringe one or more identifiable patents in that +country that you have reason to believe are valid. + + If, pursuant to or in connection with a single transaction or +arrangement, you convey, or propagate by procuring conveyance of, a +covered work, and grant a patent license to some of the parties +receiving the covered work authorizing them to use, propagate, modify +or convey a specific copy of the covered work, then the patent license +you grant is automatically extended to all recipients of the covered +work and works based on it. + + A patent license is "discriminatory" if it does not include within +the scope of its coverage, prohibits the exercise of, or is +conditioned on the non-exercise of one or more of the rights that are +specifically granted under this License. You may not convey a covered +work if you are a party to an arrangement with a third party that is +in the business of distributing software, under which you make payment +to the third party based on the extent of your activity of conveying +the work, and under which the third party grants, to any of the +parties who would receive the covered work from you, a discriminatory +patent license (a) in connection with copies of the covered work +conveyed by you (or copies made from those copies), or (b) primarily +for and in connection with specific products or compilations that +contain the covered work, unless you entered into that arrangement, +or that patent license was granted, prior to 28 March 2007. + + Nothing in this License shall be construed as excluding or limiting +any implied license or other defenses to infringement that may +otherwise be available to you under applicable patent law. + + 12. No Surrender of Others' Freedom. + + If conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot convey a +covered work so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you may +not convey it at all. For example, if you agree to terms that obligate you +to collect a royalty for further conveying from those to whom you convey +the Program, the only way you could satisfy both those terms and this +License would be to refrain entirely from conveying the Program. + + 13. Use with the GNU Affero General Public License. + + Notwithstanding any other provision of this License, you have +permission to link or combine any covered work with a work licensed +under version 3 of the GNU Affero General Public License into a single +combined work, and to convey the resulting work. The terms of this +License will continue to apply to the part which is the covered work, +but the special requirements of the GNU Affero General Public License, +section 13, concerning interaction through a network will apply to the +combination as such. + + 14. Revised Versions of this License. + + The Free Software Foundation may publish revised and/or new versions of +the GNU General Public License from time to time. Such new versions will +be similar in spirit to the present version, but may differ in detail to +address new problems or concerns. + + Each version is given a distinguishing version number. If the +Program specifies that a certain numbered version of the GNU General +Public License "or any later version" applies to it, you have the +option of following the terms and conditions either of that numbered +version or of any later version published by the Free Software +Foundation. If the Program does not specify a version number of the +GNU General Public License, you may choose any version ever published +by the Free Software Foundation. + + If the Program specifies that a proxy can decide which future +versions of the GNU General Public License can be used, that proxy's +public statement of acceptance of a version permanently authorizes you +to choose that version for the Program. + + Later license versions may give you additional or different +permissions. However, no additional obligations are imposed on any +author or copyright holder as a result of your choosing to follow a +later version. + + 15. Disclaimer of Warranty. + + THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY +APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT +HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY +OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, +THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM +IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF +ALL NECESSARY SERVICING, REPAIR OR CORRECTION. + + 16. Limitation of Liability. + + IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING +WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS +THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY +GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE +USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF +DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD +PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), +EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF +SUCH DAMAGES. + + 17. Interpretation of Sections 15 and 16. + + If the disclaimer of warranty and limitation of liability provided +above cannot be given local legal effect according to their terms, +reviewing courts shall apply local law that most closely approximates +an absolute waiver of all civil liability in connection with the +Program, unless a warranty or assumption of liability accompanies a +copy of the Program in return for a fee. + + END OF TERMS AND CONDITIONS + + How to Apply These Terms to Your New Programs + + If you develop a new program, and you want it to be of the greatest +possible use to the public, the best way to achieve this is to make it +free software which everyone can redistribute and change under these terms. + + To do so, attach the following notices to the program. It is safest +to attach them to the start of each source file to most effectively +state the exclusion of warranty; and each file should have at least +the "copyright" line and a pointer to where the full notice is found. + + + Copyright (C) + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see . + +Also add information on how to contact you by electronic and paper mail. + + If the program does terminal interaction, make it output a short +notice like this when it starts in an interactive mode: + + Copyright (C) + This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'. + This is free software, and you are welcome to redistribute it + under certain conditions; type `show c' for details. + +The hypothetical commands `show w' and `show c' should show the appropriate +parts of the General Public License. Of course, your program's commands +might be different; for a GUI interface, you would use an "about box". + + You should also get your employer (if you work as a programmer) or school, +if any, to sign a "copyright disclaimer" for the program, if necessary. +For more information on this, and how to apply and follow the GNU GPL, see +. + + The GNU General Public License does not permit incorporating your program +into proprietary programs. If your program is a subroutine library, you +may consider it more useful to permit linking proprietary applications with +the library. If this is what you want to do, use the GNU Lesser General +Public License instead of this License. But first, please read +. diff --git a/packages/phocadownload/media/com_phocadownload/images/mime/index.html b/packages/phocadownload/media/com_phocadownload/images/mime/index.html new file mode 100644 index 00000000..fa6d84e8 --- /dev/null +++ b/packages/phocadownload/media/com_phocadownload/images/mime/index.html @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/phocadownload/media/com_phocadownload/images/next-grey.png b/packages/phocadownload/media/com_phocadownload/images/next-grey.png new file mode 100644 index 0000000000000000000000000000000000000000..557822a9eac6b3d25c465579e4a762237359cf5f GIT binary patch literal 750 zcmV5lfO${NfgIF^XoeL!o&9-$QG+?3X3hY5I+GvC(H(Gg0ir{4P?0j#xOQc9mzS63fo#kYXN!^73_c>HVAG)qm>Oae$L zos{x@Q51i#udg3H3OGJKE=Hr#?;(WWa?Vcxgb)DSW`qzo#+W}lozCm!<>dgNZ%L!k zXg7rL0$^rl2Im~kxqEggr6)1Q7nhfp5qJe40S1G?vk=0rloG8qyxT zrlG1TLI{6tZEX$iEm8>KHBjW7f00s7wpy*bACECoRTX7fI_KOUF~&EyeGhJ7e}8{N zYrSi&T_}p8^A%ot??1*E-}L+aga7C60DF6Tw{Hsgq1|pjH^%$~5M%uJ`uh4E@ENE9 gc6N3iH~8NA54q|#gz#ZJV*mgE07*qoM6N<$f+HG8?EnA( literal 0 HcmV?d00001 diff --git a/packages/phocadownload/media/com_phocadownload/images/next.png b/packages/phocadownload/media/com_phocadownload/images/next.png new file mode 100644 index 0000000000000000000000000000000000000000..b125123e633b40566ec619facbd117085b9ca2d7 GIT binary patch literal 835 zcmV-J1HAl+P)5lh1Dybr{A!?{|LB&d%t8{;KyF1g_ znfZFqLPG1o=lncRp7(w7h}N17kc)hfzdq8O&xg=Z8Bw=S8{f{OU)e}~*x=}F@Ireb ze>aQtSh|LX2Gb=n9GNK&sn5UKxq5k1gL9Pa>7SC1qPl)BiwTqhQGkHXK<6M1t6o(; z+4Zt}>Nt%AK&?AXPxWijl0Io_33fg862p%V;|GEt2!)amlm$x&;(C5^=3-o1*C~L* zzXZFJMpkoe2uh0Qs(bl#|11ZeJwa%fQ36Ox=mz+@NZi!5Lzn#B0P5|eWF)O@+)ACI zXE{KE@o%ozMnB~2{_E`BdWf=J6{H=RML#^CMD>{`i$1(`@2nGRJ z{@_WT8FJ+LFF5hykL-AI8fCkRP`@6{vna|YR+1$4 z-2&UI+Zk|20hn!G;KCp8b1(i4&k89ykC2PdilR7L%_e^TIL#Em`Gd)1yR&w7p|gbR zyR2q6`MLfXcX~5~PKA;?NX6MgDt+eKw`jI|=e~QRKM7#2N9``NXnn<@U8s zD?Kwgu7B8c3-X{l0~i?G#~$x7h5>qiv3O^SOTYq<0^HYaI_Lj^zX7GVEB3 literal 0 HcmV?d00001 diff --git a/packages/phocadownload/media/com_phocadownload/images/phoca-download.png b/packages/phocadownload/media/com_phocadownload/images/phoca-download.png new file mode 100644 index 0000000000000000000000000000000000000000..3bf92fb7b8e9b1917513bd6cd5da450a450e020d GIT binary patch literal 9257 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 literal 0 HcmV?d00001 diff --git a/packages/phocadownload/media/com_phocadownload/images/prev-grey.png b/packages/phocadownload/media/com_phocadownload/images/prev-grey.png new file mode 100644 index 0000000000000000000000000000000000000000..f75a83500ef8c361fd23c5644125aaea4ba574e8 GIT binary patch literal 741 zcmV5lD|t^Q546&_uTtl-h(6%ctgR0EeImmO&mhI z2tp}3Wbr?6YnKWx1*ZyiNGWvh-{91x0hctDP(ivX7E8LQ#Aj08y}3W$?cxiKap{4( zT+aEN@A;m?y!W^polXaw^T$f5hX4>oQO`N|vtF-H<+8hggM)+mXf%42=lN2e=P>{f zktCw;VHkc~Sy}1a3+Q&cVVb6IwAQb^_hkTJi~#_O9LCt6APC;qYPH?v3q9CPd zx~;X|0RSPyzfBOwG2%GJ<>h7B7_)PIeQf}|9V=+HT2GZypNXhKMB~CB2rxT4i@CWu zoSdBC?CcDAp2ImeER{+xR##Ws;_&d0TWdFqV(&c|W0;wl!NS7ASPkbKaU4TR3GaQy zTD#e9x4(%j%W43YhzL;>pV2t6m(UMZCCakrw_rAm!Ly{y| zTwI)5RRJiTwHDUek})PG=bQqdIp?^#x1Aq0pBj4^GkRiu>a12`_^ z4F&@o9UY<9>%loU0U;s;K>)@Wy!Xda%04w34dug9ii?Yj zv58?A0sySF$~pIGV`IY+0IaR8wTv;%(P#uA#Mp7pIc{!laDILcV+`^_M*_%4$BKG(9p9>+jqbPb3hGFd% z-d9TfFvjdP8jUX#<`#fvvswIc01v9w>a!pS9sz(c=J#MQ_zK_`01E(HTU+-l_}};o XB=Ro&JHSF}00000NkvXXu0mjfO^8AA literal 0 HcmV?d00001 diff --git a/packages/phocadownload/media/com_phocadownload/images/prev.png b/packages/phocadownload/media/com_phocadownload/images/prev.png new file mode 100644 index 0000000000000000000000000000000000000000..6a1e73c405e469d126288d7e0632f5c7777132c3 GIT binary patch literal 835 zcmV-J1HAl+P)5lgn#eRTRd5d!P5Y=bU?QoBALPrikOW`o29-chgaXx&iT(NNtXZ=Etexq*IRAUfYK3*gQQi70x09}AqARKz$ zHgR_EbMDkJnkj%>C)F=zwRl;dG_?qVil9^$_`zQ_`rs&gAASZ)5F{(=SN#s_T*m;6;&tGHr(33=NfUiT6maZL`_4fmqhtsl=wu?zC zcS6q-Xa-n@&A#C`d41OzJTn5oHA-wX9-$RpM`a?++G6tUKf>?K)$4gx=VIKo3?lsy z!&^ppZRZpt(b&I^>)Rzt)gHZg4L>pH=EZn>KChbbUF{hP$MX9;e*e=PeDs5jZv_Io zM9J|8^AN52=uA6#OL;Qw7l|oE>R2vwOJ8%Q{xS>QpEm%cG%%%&ZwJ_>jT9msbW|d5 zEoM!Hx{5FfDlv`D51hL^!EEDW(qixr0EuNdL{0@Q3>50>{I9wxe>|j$I4-7F(=_qj z5_`7o;jzjqEUjJQi-i;X()<(v({Ly|TTnvKj^iZm71O`HmlqP?vx#)3(_MSN(Ot&% zUCNPWs5FdkMJx~MT)KUhtmu%7jQP$2t5=Wk>)0OtCN{be<^s9Sbg)Q>zd;&~1> zhG8LvNi)02Ppe-txA=X0`%ddrcSWDRXBJ+Z7B2-AyLMkS9E<#FRUl~ho6VKGow;s1 zKRq+4zuGhlLWuRA0X#7LEKhkui~;3=*#Y$WwN}P*Q6H7Al^Atid zb5j`%4fG8R^$jdi1UOa#Rmgx;1m~xflqVLYGB~E>C#5R5WfrBD=NDxcD>w(6ux+}$ z0H{vK)5S4FVrnu+YXbvYPS1)^hYbykPR$ZG|2sZlc7DOc#=&uyBe>@vhjbMW!_D0@ zi0jRpH~;_t|NZ;-4<9~g>p%1WigOltL>4nJa0`Jj9U%67*p|{y$|eP z-kS0F^y8A=JF)t5<$1*dKYpw|wCQ!!g{=#-lPybhU)%z*oUga75lS^n_RTPH5efD|ZbMC#TZ9>~bFoibQ8lezD zYKoQ!ir|xu(m+RPK@_QjA_O`z&tnIj{|l`(0}@yHSiLjWysJjh5RDo4&&n%z(bI#i{|2166&z}> zst<}-Pv#qVXfR!3>4@v$sPWn76WyP-1YDwOFMprT$94Ttkq{UL2m=tH3(yLLL)RM; zpFV%YT{uM}1u&nGmak=}gn)PV%>!`xw*}CUCOSy!>df`4NyapvY;JJ; z=U}Q|%fGP@q3cUj0lrn?;*nbboceB@Zn}=ED0M794W%ACFV{(3Z?P*P9Eu8OgfgNtjCZ9 z>?%FSq20$e4>dJ9%d^9WDMei@e*@o<=t57nR`SS**R`hzpmX*8jbjk#hGl$0QmZ7y43D$TwLv};rcF>vSvqV zgo?A1?cN9#cZA3pCKnki?Rzxa{Y#58+0s9Z)LT;vHQlt+V)^|Sp7J~g8!0UeVbaf9 z+)M6ov-V5;@Q>!%PFn{$Zn2Vh}LpV4%Za?&Y0OYa- z_=LFr2ZPX>uQ@;w&H|6fVg?3oArNM~bhqvgP*AMIHKN41C^fMpGe1uuBr`Xa!N6SK z$W-6JV#fYYeLxiwAQi#+X(i=}MX3yqDfvmM3T~N2spa`a*~R{w<^6zaj(WN{hE&XX qdytV4$ZJygzdp~y0mK|a;62;HX$*`aSC3r;Ioi|J&t;ucLK6U|Tt4jp literal 0 HcmV?d00001 diff --git a/packages/phocadownload/media/com_phocadownload/index.html b/packages/phocadownload/media/com_phocadownload/index.html new file mode 100644 index 00000000..ea9e94c1 --- /dev/null +++ b/packages/phocadownload/media/com_phocadownload/index.html @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/phocadownload/media/com_phocadownload/js/index.html b/packages/phocadownload/media/com_phocadownload/js/index.html new file mode 100644 index 00000000..fa6d84e8 --- /dev/null +++ b/packages/phocadownload/media/com_phocadownload/js/index.html @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/phocadownload/media/com_phocadownload/js/jquery.equalheights.min.js b/packages/phocadownload/media/com_phocadownload/js/jquery.equalheights.min.js new file mode 100644 index 00000000..6bba224c --- /dev/null +++ b/packages/phocadownload/media/com_phocadownload/js/jquery.equalheights.min.js @@ -0,0 +1,11 @@ +/*! + * Simple jQuery Equal Heights + * + * Copyright (c) 2013 Matt Banks + * Dual licensed under the MIT and GPL licenses. + * Uses the same license as jQuery, see: + * http://docs.jquery.com/License + * + * @version 1.5.1 + */ +!function(a){a.fn.equalHeights=function(){var b=0,c=a(this);return c.each(function(){var c=a(this).innerHeight();c>b&&(b=c)}),c.css("height",b)},a("[data-equal]").each(function(){var b=a(this),c=b.data("equal");b.find(c).equalHeights()})}(jQuery); \ No newline at end of file diff --git a/packages/phocadownload/media/com_phocadownload/js/jquery.matchHeight.js b/packages/phocadownload/media/com_phocadownload/js/jquery.matchHeight.js new file mode 100644 index 00000000..ab24d45c --- /dev/null +++ b/packages/phocadownload/media/com_phocadownload/js/jquery.matchHeight.js @@ -0,0 +1,385 @@ +/** +* jquery-match-height master by @liabru +* http://brm.io/jquery-match-height/ +* License: MIT +*/ + +;(function(factory) { // eslint-disable-line no-extra-semi + 'use strict'; + if (typeof define === 'function' && define.amd) { + // AMD + define(['jquery'], factory); + } else if (typeof module !== 'undefined' && module.exports) { + // CommonJS + module.exports = factory(require('jquery')); + } else { + // Global + factory(jQuery); + } +})(function($) { + /* + * internal + */ + + var _previousResizeWidth = -1, + _updateTimeout = -1; + + /* + * _parse + * value parse utility function + */ + + var _parse = function(value) { + // parse value and convert NaN to 0 + return parseFloat(value) || 0; + }; + + /* + * _rows + * utility function returns array of jQuery selections representing each row + * (as displayed after float wrapping applied by browser) + */ + + var _rows = function(elements) { + var tolerance = 1, + $elements = $(elements), + lastTop = null, + rows = []; + + // group elements by their top position + $elements.each(function(){ + var $that = $(this), + top = $that.offset().top - _parse($that.css('margin-top')), + lastRow = rows.length > 0 ? rows[rows.length - 1] : null; + + if (lastRow === null) { + // first item on the row, so just push it + rows.push($that); + } else { + // if the row top is the same, add to the row group + if (Math.floor(Math.abs(lastTop - top)) <= tolerance) { + rows[rows.length - 1] = lastRow.add($that); + } else { + // otherwise start a new row group + rows.push($that); + } + } + + // keep track of the last row top + lastTop = top; + }); + + return rows; + }; + + /* + * _parseOptions + * handle plugin options + */ + + var _parseOptions = function(options) { + var opts = { + byRow: true, + property: 'height', + target: null, + remove: false + }; + + if (typeof options === 'object') { + return $.extend(opts, options); + } + + if (typeof options === 'boolean') { + opts.byRow = options; + } else if (options === 'remove') { + opts.remove = true; + } + + return opts; + }; + + /* + * matchHeight + * plugin definition + */ + + var matchHeight = $.fn.matchHeight = function(options) { + var opts = _parseOptions(options); + + // handle remove + if (opts.remove) { + var that = this; + + // remove fixed height from all selected elements + this.css(opts.property, ''); + + // remove selected elements from all groups + $.each(matchHeight._groups, function(key, group) { + group.elements = group.elements.not(that); + }); + + // TODO: cleanup empty groups + + return this; + } + + if (this.length <= 1 && !opts.target) { + return this; + } + + // keep track of this group so we can re-apply later on load and resize events + matchHeight._groups.push({ + elements: this, + options: opts + }); + + // match each element's height to the tallest element in the selection + matchHeight._apply(this, opts); + + return this; + }; + + /* + * plugin global options + */ + + matchHeight.version = 'master'; + matchHeight._groups = []; + matchHeight._throttle = 80; + matchHeight._maintainScroll = false; + matchHeight._beforeUpdate = null; + matchHeight._afterUpdate = null; + matchHeight._rows = _rows; + matchHeight._parse = _parse; + matchHeight._parseOptions = _parseOptions; + + /* + * matchHeight._apply + * apply matchHeight to given elements + */ + + matchHeight._apply = function(elements, options) { + var opts = _parseOptions(options), + $elements = $(elements), + rows = [$elements]; + + // take note of scroll position + var scrollTop = $(window).scrollTop(), + htmlHeight = $('html').outerHeight(true); + + // get hidden parents + var $hiddenParents = $elements.parents().filter(':hidden'); + + // cache the original inline style + $hiddenParents.each(function() { + var $that = $(this); + $that.data('style-cache', $that.attr('style')); + }); + + // temporarily must force hidden parents visible + $hiddenParents.css('display', 'block'); + + // get rows if using byRow, otherwise assume one row + if (opts.byRow && !opts.target) { + + // must first force an arbitrary equal height so floating elements break evenly + $elements.each(function() { + var $that = $(this), + display = $that.css('display'); + + // temporarily force a usable display value + if (display !== 'inline-block' && display !== 'flex' && display !== 'inline-flex') { + display = 'block'; + } + + // cache the original inline style + $that.data('style-cache', $that.attr('style')); + + $that.css({ + 'display': display, + 'padding-top': '0', + 'padding-bottom': '0', + 'margin-top': '0', + 'margin-bottom': '0', + 'border-top-width': '0', + 'border-bottom-width': '0', + 'height': '100px', + 'overflow': 'hidden' + }); + }); + + // get the array of rows (based on element top position) + rows = _rows($elements); + + // revert original inline styles + $elements.each(function() { + var $that = $(this); + $that.attr('style', $that.data('style-cache') || ''); + }); + } + + $.each(rows, function(key, row) { + var $row = $(row), + targetHeight = 0; + + if (!opts.target) { + // skip apply to rows with only one item + if (opts.byRow && $row.length <= 1) { + $row.css(opts.property, ''); + return; + } + + // iterate the row and find the max height + $row.each(function(){ + var $that = $(this), + style = $that.attr('style'), + display = $that.css('display'); + + // temporarily force a usable display value + if (display !== 'inline-block' && display !== 'flex' && display !== 'inline-flex') { + display = 'block'; + } + + // ensure we get the correct actual height (and not a previously set height value) + var css = { 'display': display }; + css[opts.property] = ''; + $that.css(css); + + // find the max height (including padding, but not margin) + if ($that.outerHeight(false) > targetHeight) { + targetHeight = $that.outerHeight(false); + } + + // revert styles + if (style) { + $that.attr('style', style); + } else { + $that.css('display', ''); + } + }); + } else { + // if target set, use the height of the target element + targetHeight = opts.target.outerHeight(false); + } + + // iterate the row and apply the height to all elements + $row.each(function(){ + var $that = $(this), + verticalPadding = 0; + + // don't apply to a target + if (opts.target && $that.is(opts.target)) { + return; + } + + // handle padding and border correctly (required when not using border-box) + if ($that.css('box-sizing') !== 'border-box') { + verticalPadding += _parse($that.css('border-top-width')) + _parse($that.css('border-bottom-width')); + verticalPadding += _parse($that.css('padding-top')) + _parse($that.css('padding-bottom')); + } + + // set the height (accounting for padding and border) + $that.css(opts.property, (targetHeight - verticalPadding) + 'px'); + }); + }); + + // revert hidden parents + $hiddenParents.each(function() { + var $that = $(this); + $that.attr('style', $that.data('style-cache') || null); + }); + + // restore scroll position if enabled + if (matchHeight._maintainScroll) { + $(window).scrollTop((scrollTop / htmlHeight) * $('html').outerHeight(true)); + } + + return this; + }; + + /* + * matchHeight._applyDataApi + * applies matchHeight to all elements with a data-match-height attribute + */ + + matchHeight._applyDataApi = function() { + var groups = {}; + + // generate groups by their groupId set by elements using data-match-height + $('[data-match-height], [data-mh]').each(function() { + var $this = $(this), + groupId = $this.attr('data-mh') || $this.attr('data-match-height'); + + if (groupId in groups) { + groups[groupId] = groups[groupId].add($this); + } else { + groups[groupId] = $this; + } + }); + + // apply matchHeight to each group + $.each(groups, function() { + this.matchHeight(true); + }); + }; + + /* + * matchHeight._update + * updates matchHeight on all current groups with their correct options + */ + + var _update = function(event) { + if (matchHeight._beforeUpdate) { + matchHeight._beforeUpdate(event, matchHeight._groups); + } + + $.each(matchHeight._groups, function() { + matchHeight._apply(this.elements, this.options); + }); + + if (matchHeight._afterUpdate) { + matchHeight._afterUpdate(event, matchHeight._groups); + } + }; + + matchHeight._update = function(throttle, event) { + // prevent update if fired from a resize event + // where the viewport width hasn't actually changed + // fixes an event looping bug in IE8 + if (event && event.type === 'resize') { + var windowWidth = $(window).width(); + if (windowWidth === _previousResizeWidth) { + return; + } + _previousResizeWidth = windowWidth; + } + + // throttle updates + if (!throttle) { + _update(event); + } else if (_updateTimeout === -1) { + _updateTimeout = setTimeout(function() { + _update(event); + _updateTimeout = -1; + }, matchHeight._throttle); + } + }; + + /* + * bind events + */ + + // apply on DOM ready event + $(matchHeight._applyDataApi); + + // update heights on load and resize events + $(window).bind('load', function(event) { + matchHeight._update(false, event); + }); + + // throttled update heights on resize events + $(window).bind('resize orientationchange', function(event) { + matchHeight._update(true, event); + }); + +}); diff --git a/packages/phocadownload/media/com_phocadownload/js/jquery.matchHeight.min.js b/packages/phocadownload/media/com_phocadownload/js/jquery.matchHeight.min.js new file mode 100644 index 00000000..0ff8a9e8 --- /dev/null +++ b/packages/phocadownload/media/com_phocadownload/js/jquery.matchHeight.min.js @@ -0,0 +1 @@ +!function(t){"use strict";"function"==typeof define&&define.amd?define(["jquery"],t):"undefined"!=typeof module&&module.exports?module.exports=t(require("jquery")):t(jQuery)}(function(t){var e=-1,o=-1,a=function(t){return parseFloat(t)||0},i=function(e){var o=1,i=t(e),n=null,r=[];return i.each(function(){var e=t(this),i=e.offset().top-a(e.css("margin-top")),s=r.length>0?r[r.length-1]:null;null===s?r.push(e):Math.floor(Math.abs(n-i))<=o?r[r.length-1]=s.add(e):r.push(e),n=i}),r},n=function(e){var o={byRow:!0,property:"height",target:null,remove:!1};return"object"==typeof e?t.extend(o,e):("boolean"==typeof e?o.byRow=e:"remove"===e&&(o.remove=!0),o)},r=t.fn.matchHeight=function(e){var o=n(e);if(o.remove){var a=this;return this.css(o.property,""),t.each(r._groups,function(t,e){e.elements=e.elements.not(a)}),this}return this.length<=1&&!o.target?this:(r._groups.push({elements:this,options:o}),r._apply(this,o),this)};r.version="master",r._groups=[],r._throttle=80,r._maintainScroll=!1,r._beforeUpdate=null,r._afterUpdate=null,r._rows=i,r._parse=a,r._parseOptions=n,r._apply=function(e,o){var s=n(o),h=t(e),l=[h],c=t(window).scrollTop(),p=t("html").outerHeight(!0),d=h.parents().filter(":hidden");return d.each(function(){var e=t(this);e.data("style-cache",e.attr("style"))}),d.css("display","block"),s.byRow&&!s.target&&(h.each(function(){var e=t(this),o=e.css("display");"inline-block"!==o&&"flex"!==o&&"inline-flex"!==o&&(o="block"),e.data("style-cache",e.attr("style")),e.css({display:o,"padding-top":"0","padding-bottom":"0","margin-top":"0","margin-bottom":"0","border-top-width":"0","border-bottom-width":"0",height:"100px",overflow:"hidden"})}),l=i(h),h.each(function(){var e=t(this);e.attr("style",e.data("style-cache")||"")})),t.each(l,function(e,o){var i=t(o),n=0;if(s.target)n=s.target.outerHeight(!1);else{if(s.byRow&&i.length<=1)return void i.css(s.property,"");i.each(function(){var e=t(this),o=e.attr("style"),a=e.css("display");"inline-block"!==a&&"flex"!==a&&"inline-flex"!==a&&(a="block");var i={display:a};i[s.property]="",e.css(i),e.outerHeight(!1)>n&&(n=e.outerHeight(!1)),o?e.attr("style",o):e.css("display","")})}i.each(function(){var e=t(this),o=0;s.target&&e.is(s.target)||("border-box"!==e.css("box-sizing")&&(o+=a(e.css("border-top-width"))+a(e.css("border-bottom-width")),o+=a(e.css("padding-top"))+a(e.css("padding-bottom"))),e.css(s.property,n-o+"px"))})}),d.each(function(){var e=t(this);e.attr("style",e.data("style-cache")||null)}),r._maintainScroll&&t(window).scrollTop(c/p*t("html").outerHeight(!0)),this},r._applyDataApi=function(){var e={};t("[data-match-height], [data-mh]").each(function(){var o=t(this),a=o.attr("data-mh")||o.attr("data-match-height");a in e?e[a]=e[a].add(o):e[a]=o}),t.each(e,function(){this.matchHeight(!0)})};var s=function(e){r._beforeUpdate&&r._beforeUpdate(e,r._groups),t.each(r._groups,function(){r._apply(this.elements,this.options)}),r._afterUpdate&&r._afterUpdate(e,r._groups)};r._update=function(a,i){if(i&&"resize"===i.type){var n=t(window).width();if(n===e)return;e=n}a?-1===o&&(o=setTimeout(function(){s(i),o=-1},r._throttle)):s(i)},t(r._applyDataApi),t(window).bind("load",function(t){r._update(!1,t)}),t(window).bind("resize orientationchange",function(t){r._update(!0,t)})}); \ No newline at end of file diff --git a/packages/phocadownload/plugins/content/phocadownload/index.html b/packages/phocadownload/plugins/content/phocadownload/index.html new file mode 100644 index 00000000..fa6d84e8 --- /dev/null +++ b/packages/phocadownload/plugins/content/phocadownload/index.html @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/phocadownload/plugins/content/phocadownload/phocadownload.php b/packages/phocadownload/plugins/content/phocadownload/phocadownload.php new file mode 100644 index 00000000..bdca6aef --- /dev/null +++ b/packages/phocadownload/plugins/content/phocadownload/phocadownload.php @@ -0,0 +1,640 @@ +loadLanguage(); + } + + public function onContentPrepare($context, &$article, &$params, $page = 0) { + + $document = JFactory::getDocument(); + $db = JFactory::getDBO(); + $iSize = $this->params->get('icon_size', 32); + $iMime = $this->params->get('file_icon_mime', 0); + $component = 'com_phocadownload'; + $paramsC = JComponentHelper::getParams($component) ; + $ordering = $paramsC->get( 'file_ordering', 1 ); + + + // Start Plugin + $regex_one = '/({phocadownload\s*)(.*?)(})/si'; + $regex_all = '/{phocadownload\s*.*?}/si'; + $matches = array(); + $count_matches = preg_match_all($regex_all,$article->text,$matches,PREG_OFFSET_CAPTURE | PREG_PATTERN_ORDER); + + JHTML::stylesheet( 'media/com_phocadownload/css/main/phocadownload.css' ); + JHTML::stylesheet( 'media/plg_content_phocadownload/css/phocadownload.css' ); + + + // Start if count_matches + if ($count_matches != 0) { + + $l = new PhocaDownloadLayout(); + + // Start CSS + for($i = 0; $i < $count_matches; $i++) { + + $view = ''; + $id = ''; + $text = ''; + $target = ''; + $playerwidth = $paramsC->get( 'player_width', 328 ); + $playerheight = $paramsC->get( 'player_height', 200 ); + $previewwidth = $paramsC->get( 'preview_width', 640 ); + $previewheight = $paramsC->get( 'preview_height', 480 ); + $playerheightmp3 = $paramsC->get( 'player_mp3_height', 30 ); + $url = ''; + $youtubewidth = 448; + $youtubeheight = 336; + $fileView = $paramsC->get( 'display_file_view', 0 ); + $previewWindow = $paramsC->get( 'preview_popup_window', 0 ); + $playWindow = $paramsC->get( 'play_popup_window', 0 ); + $limit = 5; + + + // Get plugin parameters + $phocadownload = $matches[0][$i][0]; + preg_match($regex_one,$phocadownload,$phocadownload_parts); + $parts = explode("|", $phocadownload_parts[2]); + $values_replace = array ("/^'/", "/'$/", "/^'/", "/'$/", "/
        /"); + + + foreach($parts as $key => $value) { + $values = explode("=", $value, 2); + + foreach ($values_replace as $key2 => $values2) { + $values = preg_replace($values2, '', $values); + } + + // Get plugin parameters from article + if($values[0]=='view') {$view = $values[1];} + else if($values[0]=='id') {$id = $values[1];} + else if($values[0]=='text') {$text = $values[1];} + else if($values[0]=='target') {$target = $values[1];} + else if($values[0]=='playerwidth') {$playerwidth = (int)$values[1];} + else if($values[0]=='playerheight') {$playerheight = (int)$values[1];} + else if($values[0]=='playerheightmp3') {$playerheightmp3 = (int)$values[1];} + + else if($values[0]=='previewwidth') {$previewwidth = (int)$values[1];} + else if($values[0]=='previewheight') {$previewheight = (int)$values[1];} + + else if($values[0]=='youtubewidth') {$youtubewidth = (int)$values[1];} + else if($values[0]=='youtubeheight') {$youtubeheight = (int)$values[1];} + + else if($values[0]=='previewwindow') {$previewWindow = (int)$values[1];} + else if($values[0]=='playwindow') {$playWindow = (int)$values[1];} + else if($values[0]=='limit') {$limit = (int)$values[1];} + + else if($values[0]=='url') {$url = $values[1];} + + } + + switch($target) { + case 'b': + $targetOutput = 'target="_blank" '; + break; + case 't': + $targetOutput = 'target="_top" '; + break; + case 'p': + $targetOutput = 'target="_parent" '; + break; + case 's': + $targetOutput = 'target="_self" '; + break; + default: + $targetOutput = ''; + break; + } + + $output = ''; + /* + //Itemid + $menu =& JSite::getMenu(); + $itemSection= $menu->getItems('link', 'index.php?option=com_phocadownload&view=sections'); + if(isset($itemSection[0])) { + $itemId = $itemSection[0]->id; + } else { + $itemId = JRequest::getVar('Itemid', 1, 'get', 'int'); + } + */ + switch($view) { + /* + // - - - - - - - - - - - - - - - - + // SECTIONS + // - - - - - - - - - - - - - - - - + case 'sections': + if ($text !='') { + $textOutput = $text; + } else { + $textOutput = JText::_('PLG_CONTENT_PHOCADOWNLOAD_DOWNLOAD_SECTIONS'); + } + + $link = PhocaDownloadRoute::getSectionsRoute(); + + $output .= '

        '; + break; + + // - - - - - - - - - - - - - - - - + // SECTION + // - - - - - - - - - - - - - - - - + case 'section': + if ((int)$id > 0) { + $query = 'SELECT a.id, a.title, a.alias,' + . ' CASE WHEN CHAR_LENGTH(a.alias) THEN CONCAT_WS(\':\', a.id, a.alias) ELSE a.id END as slug' + . ' FROM #__phocadownload_sections AS a' + . ' WHERE a.id = '.(int)$id; + + $db->setQuery($query); + $item = $db->loadObject(); + + if (isset($item->id) && isset($item->slug)) { + + if ($text !='') { + $textOutput = $text; + } else if (isset($item->title) && $item->title != '') { + $textOutput = $item->title; + } else { + $textOutput = JText::_('PLG_CONTENT_PHOCADOWNLOAD_DOWNLOAD_SECTION'); + } + $link = PhocaDownloadRoute::getSectionRoute($item->id, $item->alias); + // 'index.php?option=com_phocadownload&view=section&id='.$item->slug.'&Itemid='. $itemId + + $output .= ''; + } + } + break; + */ + + // - - - - - - - - - - - - - - - - + // CATEGORIES + // - - - - - - - - - - - - - - - - + case 'categories': + if ($text !='') { + $textOutput = $text; + } else { + $textOutput = JText::_('PLG_CONTENT_PHOCADOWNLOAD_DOWNLOAD_CATEGORIES'); + } + + $link = PhocaDownloadRoute::getCategoriesRoute(); + + $output .= ''; + break; + + // - - - - - - - - - - - - - - - - + // CATEGORY + // - - - - - - - - - - - - - - - - + case 'category': + if ((int)$id > 0) { + $query = 'SELECT a.id, a.title, a.alias,' + . ' CASE WHEN CHAR_LENGTH(a.alias) THEN CONCAT_WS(\':\', a.id, a.alias) ELSE a.id END as slug' + . ' FROM #__phocadownload_categories AS a' + . ' WHERE a.id = '.(int)$id; + + $db->setQuery($query); + $item = $db->loadObject(); + + if (isset($item->id) && isset($item->slug)) { + + if ($text !='') { + $textOutput = $text; + } else if (isset($item->title) && $item->title != '') { + $textOutput = $item->title; + } else { + $textOutput = JText::_('PLG_CONTENT_PHOCADOWNLOAD_DOWNLOAD_CATEGORY'); + } + $link = PhocaDownloadRoute::getCategoryRoute($item->id, $item->alias); + //'index.php?option=com_phocadownload&view=category&id='.$item->slug.'&Itemid='. $itemId + $output .= ''; + } + + } + break; + + + // - - - - - - - - - - - - - - - - + // FILELIST + // - - - - - - - - - - - - - - - - + case 'filelist': + + $fileOrdering = PhocaDownloadOrdering::getOrderingText($ordering); + + $query = 'SELECT a.id, a.title, a.alias, a.filename_play, a.filename_preview, a.link_external, a.image_filename, a.filename, c.id as catid, a.confirm_license, c.title as cattitle, c.alias as catalias,' + . ' CASE WHEN CHAR_LENGTH(a.alias) THEN CONCAT_WS(\':\', a.id, a.alias) ELSE a.id END as slug,' + . ' CASE WHEN CHAR_LENGTH(c.alias) THEN CONCAT_WS(\':\', c.id, c.alias) ELSE c.id END as catslug' + . ' FROM #__phocadownload AS a' + . ' LEFT JOIN #__phocadownload_categories AS c ON a.catid = c.id'; + + if ((int)$id > 0) { + $query .= ' WHERE c.id = '.(int)$id; + //$query .= ' WHERE c.id = '.(int)$id . ' AND a.published = 1 AND a.approved = 1'; + } else { + //$query .= ' WHERE a.published = 1 AND a.approved = 1'; + } + + $query .= ' ORDER BY a.'.$fileOrdering; + $query .= ' LIMIT 0, '.(int)$limit; + + $db->setQuery($query); + $items = $db->loadObjectList(); + + if (!empty($items)) { + $output .= '
        '; + foreach ($items as $item) { + $imageFileName = $l->getImageFileName($item->image_filename, $item->filename, 3, (int)$iSize); + + if (isset($item->id) && isset($item->slug) && isset($item->catid) && isset($item->catslug)) { + + if ($text !='') { + $textOutput = $text; + } else if (isset($item->title) && $item->title != '') { + $textOutput = $item->title; + } else { + $textOutput = JText::_('PLG_CONTENT_PHOCADOWNLOAD_DOWNLOAD_FILE'); + } + + if ((isset($item->confirm_license) && $item->confirm_license > 0) || $fileView == 1) { + $link = PhocaDownloadRoute::getFileRoute($item->id,$item->catid,$item->alias, $item->catalias,0, 'file'); + + if ($iMime == 1) { + $output .= '
        '. $imageFileName['filenamethumb']. '
        '; + } else { + $output .= ''; + } + + } else { + if ($item->link_external != '') { + $link = $item->link_external; + } else { + $link = PhocaDownloadRoute::getFileRoute($item->id,$item->catid,$item->alias,$item->catalias, 0, 'download'); + } + + if ($iMime == 1) { + $output .= '
        '. $imageFileName['filenamethumb']. '
        '; + } else { + $output .= ''; + } + + } + + } + } + $output .= '
        '; + + } + break; + + + + + + // - - - - - - - - - - - - - - - - + // FILE + // - - - - - - - - - - - - - - - - + case 'file': + case 'fileplay': + case 'fileplaylink': + case 'filepreviewlink': + if ((int)$id > 0) { + $query = 'SELECT a.id, a.title, a.alias, a.filename_play, a.filename_preview, a.link_external, a.image_filename, a.filename, c.id as catid, a.confirm_license, c.title as cattitle, c.alias as catalias,' + . ' CASE WHEN CHAR_LENGTH(a.alias) THEN CONCAT_WS(\':\', a.id, a.alias) ELSE a.id END as slug,' + . ' CASE WHEN CHAR_LENGTH(c.alias) THEN CONCAT_WS(\':\', c.id, c.alias) ELSE c.id END as catslug' + . ' FROM #__phocadownload AS a' + . ' LEFT JOIN #__phocadownload_categories AS c ON a.catid = c.id' + . ' WHERE a.id = '.(int)$id; + + $db->setQuery($query); + $item = $db->loadObject(); + + if (isset($item->id) && isset($item->slug) && isset($item->catid) && isset($item->catslug)) { + + if ($text !='') { + $textOutput = $text; + } else if (isset($item->title) && $item->title != '') { + $textOutput = $item->title; + } else { + if ($view == 'fileplay') { + $textOutput = JText::_('PLG_CONTENT_PHOCADOWNLOAD_PLAY_FILE'); + } else { + $textOutput = JText::_('PLG_CONTENT_PHOCADOWNLOAD_DOWNLOAD_FILE'); + } + } + + $imageFileName = $l->getImageFileName($item->image_filename, $item->filename, 3, (int)$iSize); + + // - - - - - + // PLAY + // - - - - - + if ($view == 'fileplay') { + $play = 1; + $fileExt = ''; + $filePath = PhocaDownloadPath::getPathSet('fileplay'); + + $filePath = str_replace ( '../', JURI::base(true).'/', $filePath['orig_rel_ds']); + if (isset($item->filename_play) && $item->filename_play != '') { + $fileExt = PhocaDownloadFile::getExtension($item->filename_play); + $canPlay = PhocaDownloadFile::canPlay($item->filename_play); + if ($canPlay) { + $tmpl['playfilewithpath'] = $filePath . $item->filename_play; + $tmpl['playerpath'] = JURI::base().'components/com_phocadownload/assets/flowplayer/'; + } else { + $output .= JText::_('PLG_CONTENT_PHOCADOWNLOAD_NO_CORRECT_FILE_FOR_PLAYING_FOUND'); + $play = 0; + } + } else { + $output .= JText::_('PLG_CONTENT_PHOCADOWNLOAD_NO_FILE_FOR_PLAYING_FOUND'); + $play = 0; + } + + if ($play == 1) { + + //Correct MP3 + $tmpl['filetype'] = ''; + if ($fileExt == 'mp3') { + $tmpl['filetype'] = 'mp3'; + $playerheight = $playerheightmp3; + } + $versionFLP = '3.2.2'; + $versionFLPJS = '3.2.2'; + + //Flow Player + + $document->addScript($tmpl['playerpath'].'flowplayer-'.$versionFLPJS.'.min.js'); + + $output .= '
        '. "\n" + .'
        '. "\n"; + + if ($tmpl['filetype'] == 'mp3') { + $output .= ''. "\n"; + } else { + + $output .= ''. "\n"; + } + + $output .= '
        '. "\n"; + } + + } else if ($view == 'fileplaylink') { + + // PLAY - - - - - - - - - - - - + $windowWidthPl = (int)$playerwidth + 30; + $windowHeightPl = (int)$playerheight + 30; + $windowHeightPlMP3 = (int)$playerheightmp3 + 30; + //$playWindow = $paramsC->get( 'play_popup_window', 0 ); + if ($playWindow == 1) { + $buttonPl = new JObject(); + $buttonPl->set('methodname', 'js-button'); + $buttonPl->set('options', "window.open(this.href,'win2','width=".$windowWidthPl.",height=".$windowHeightPl.",scrollbars=yes,menubar=no,resizable=yes'); return false;"); + $buttonPl->set('optionsmp3', "window.open(this.href,'win2','width=".$windowWidthPl.",height=".$windowHeightPlMP3.",scrollbars=yes,menubar=no,resizable=yes'); return false;"); + } else { + JHTML::_('behavior.modal', 'a.modal-button'); + $document->addCustomTag( " \n"); + $buttonPl = new JObject(); + $buttonPl->set('name', 'image'); + $buttonPl->set('modal', true); + $buttonPl->set('methodname', 'modal-button'); + $buttonPl->set('options', "{handler: 'iframe', size: {x: ".$windowWidthPl.", y: ".$windowHeightPl."}, overlayOpacity: 0.7, classWindow: 'phocadownloadplaywindow', classOverlay: 'phocadownloadplayoverlay'}"); + $buttonPl->set('optionsmp3', "{handler: 'iframe', size: {x: ".$windowWidthPl.", y: ".$windowHeightPlMP3."}, overlayOpacity: 0.7, classWindow: 'phocadownloadplaywindow', classOverlay: 'phocadownloadplayoverlay'}"); + } + // - - - - - - - - - - - - - - - + + $fileExt = ''; + $filePath = PhocaDownloadPath::getPathSet('fileplay'); + + $filePath = str_replace ( '../', JURI::base(true).'/', $filePath['orig_rel_ds']); + if (isset($item->filename_play) && $item->filename_play != '') { + $fileExt = PhocaDownloadFile::getExtension($item->filename_play); + + + $canPlay = PhocaDownloadFile::canPlay($item->filename_play); + if ($canPlay) { + // Special height for music only + $buttonPlOptions = $buttonPl->options; + if ($fileExt == 'mp3') { + $buttonPlOptions = $buttonPl->optionsmp3; + } + /*if ($text == '') { + $text = JText::_('PLG_CONTENT_PHOCADOWNLOAD_PLAY'); + }*/ + + if ($text !='') { + $textOutput = $text; + //} else if (isset($item->title) && $item->title != '') { + // $textOutput = $item->title; + } else { + $textOutput = JText::_('PLG_CONTENT_PHOCADOWNLOAD_PLAY'); + } + + $playLink = JRoute::_(PhocaDownloadRoute::getFileRoute($item->id,$item->catid,$item->alias, $item->catalias,0, 'play')); + + + if ($iMime == 1) { + $output .= '
        '. $imageFileName['filenamethumb']. '
        '; + } else { + $output .= '
        '; + } + + if ($playWindow == 1) { + $output .= ''. $textOutput.''; + } else { + $output .= ''. $textOutput.''; + } + $output .= '
        '; + } + } else { + $output .= JText::_('PLG_CONTENT_PHOCADOWNLOAD_NO_FILE_FOR_PLAYING_FOUND'); + } + + + + + } else if ($view == 'filepreviewlink') { + + + if (isset($item->filename_preview) && $item->filename_preview != '') { + $fileExt = PhocaDownloadFile::getExtension($item->filename_preview); + if ($fileExt == 'pdf' || $fileExt == 'jpeg' || $fileExt == 'jpg' || $fileExt == 'png' || $fileExt == 'gif') { + + $filePath = PhocaDownloadPath::getPathSet('filepreview'); + $filePath = str_replace ( '../', JURI::base(true).'/', $filePath['orig_rel_ds']); + $previewLink = $filePath . $item->filename_preview; + //$previewWindow = $paramsC->get( 'preview_popup_window', 0 ); + + // PREVIEW - - - - - - - - - - - - + $windowWidthPr = (int)$previewwidth + 20; + $windowHeightPr = (int)$previewheight + 20; + if ($previewWindow == 1) { + $buttonPr = new JObject(); + $buttonPr->set('methodname', 'js-button'); + $buttonPr->set('options', "window.open(this.href,'win2','width=".$windowWidthPr.",height=".$windowHeightPr.",scrollbars=yes,menubar=no,resizable=yes'); return false;"); + } else { + JHTML::_('behavior.modal', 'a.modal-button'); + $document->addCustomTag( " \n"); + $buttonPr = new JObject(); + $buttonPr->set('name', 'image'); + $buttonPr->set('modal', true); + $buttonPr->set('methodname', 'modal-button'); + $buttonPr->set('options', "{handler: 'iframe', size: {x: ".$windowWidthPr.", y: ".$windowHeightPr."}, overlayOpacity: 0.7, classWindow: 'phocadownloadpreviewwindow', classOverlay: 'phocadownloadpreviewoverlay'}"); + $buttonPr->set('optionsimg', "{handler: 'image', size: {x: 200, y: 150}, overlayOpacity: 0.7, classWindow: 'phocadownloadpreviewwindow', classOverlay: 'phocadownloadpreviewoverlay'}"); + } + // - - - - - - - - - - - - - - - + + + + /*if ($text == '') { + $text = JText::_('PLG_CONTENT_PHOCADOWNLOAD_PREVIEW'); + }*/ + + if ($text !='') { + $textOutput = $text; + //} else if (isset($item->title) && $item->title != '') { + // $textOutput = $item->title; + } else { + $textOutput = JText::_('PLG_CONTENT_PHOCADOWNLOAD_PREVIEW'); + } + if ($iMime == 1) { + $output .= '
        '. $imageFileName['filenamethumb']. '
        '; + } else { + $output .= '
        '; + } + + if ($previewWindow == 1) { + $output .= ''. $text.''; + } else { + if ($fileExt == 'pdf') { + // Iframe - modal + $output .= ''. $textOutput.''; + } else { + // Image - modal + $output .= ''. $textOutput.''; + } + } + $output .= '
        '; + } + } else { + $output .= JText::_('PLG_CONTENT_PHOCADOWNLOAD_NO_FILE_FOR_PREVIEWING_FOUND'); + } + + } else { + if ((isset($item->confirm_license) && $item->confirm_license > 0) || $fileView == 1) { + $link = PhocaDownloadRoute::getFileRoute($item->id,$item->catid,$item->alias, $item->catalias,0, 'file'); + //'index.php?option=com_phocadownload&view=file&id='.$item->slug.'&Itemid='.$itemId + + if ($iMime == 1) { + $output .= '
        '. $imageFileName['filenamethumb']. '
        '; + } else { + $output .= ''; + } + + } else { + if ($item->link_external != '') { + $link = $item->link_external; + } else { + $link = PhocaDownloadRoute::getFileRoute($item->id,$item->catid,$item->alias,$item->catalias,0, 'download'); + } + //$link = PhocaDownloadRoute::getCategoryRoute($item->catid,$item->catalias,$item->sectionid); + + //'index.php?option=com_phocadownload&view=category&id='. $item->catslug. '&download='. $item->slug. '&Itemid=' . $itemId + + if ($iMime == 1) { + $output .= '
        '. $imageFileName['filenamethumb']. '
        '; + } else { + $output .= ''; + } + } + } + } + + } + break; + + // - - - - - - - - - - - - - - - - + // YOUTUBE + // - - - - - - - - - - - - - - - - + case 'youtube': + + if ($url != '' && PhocaDownloadUtils::isURLAddress($url) ) { + $l = new PhocaDownloadLayout(); + $pdVideo = $l->displayVideo($url, 0, $youtubewidth, $youtubeheight); + $output .= $pdVideo; + } else { + $output .= JText::_('PLG_CONTENT_PHOCADOWNLOAD_WRONG_YOUTUBE_URL'); + } + break; + + + } + $article->text = preg_replace($regex_all, $output, $article->text, 1); + } + }// end if count_matches + return true; + } +} +?> \ No newline at end of file diff --git a/packages/phocadownload/plugins/content/phocadownload/phocadownload.xml b/packages/phocadownload/plugins/content/phocadownload/phocadownload.xml new file mode 100644 index 00000000..248ea93e --- /dev/null +++ b/packages/phocadownload/plugins/content/phocadownload/phocadownload.xml @@ -0,0 +1,64 @@ + + + plg_content_phocadownload + 19/07/2014 + Jan Pavelka (www.phoca.cz) + + www.phoca.cz + Jan Pavelka + GNU/GPL + 3.0.2 + + PLG_CONTENT_PHOCADOWNLOAD_DESCRIPTION + + + phocadownload.php + index.html + + + + index.html + css + images + + + + language/en-GB/en-GB.plg_content_phocadownload.ini + language/en-GB/en-GB.plg_content_phocadownload.sys.ini + + + + + language/en-GB/en-GB.plg_content_phocadownload.ini + language/en-GB/en-GB.plg_content_phocadownload.sys.ini + + + + + + + +
        + + + + + + + + + + + + + + + + +
        +
        +
        + + + +
        \ No newline at end of file diff --git a/packages/phocadownload/plugins/editors-xtd/phocadownload/assets/css/index.html b/packages/phocadownload/plugins/editors-xtd/phocadownload/assets/css/index.html new file mode 100644 index 00000000..fa6d84e8 --- /dev/null +++ b/packages/phocadownload/plugins/editors-xtd/phocadownload/assets/css/index.html @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/phocadownload/plugins/editors-xtd/phocadownload/assets/css/phocadownload.css b/packages/phocadownload/plugins/editors-xtd/phocadownload/assets/css/phocadownload.css new file mode 100644 index 00000000..aae05332 --- /dev/null +++ b/packages/phocadownload/plugins/editors-xtd/phocadownload/assets/css/phocadownload.css @@ -0,0 +1,4 @@ + +.button2-left .phocadownload { + background: url(../images/icon-button.png) 100% 0 no-repeat; +} \ No newline at end of file diff --git a/packages/phocadownload/plugins/editors-xtd/phocadownload/assets/images/icon-button.png b/packages/phocadownload/plugins/editors-xtd/phocadownload/assets/images/icon-button.png new file mode 100644 index 0000000000000000000000000000000000000000..fba8aa0749cf8d6a6e11e9cd22f736d3c3af1406 GIT binary patch literal 1224 zcmV;(1ULJMP)hA01>gww0>FMa_ z=;-I??C0X~=FjKm=IZ6$=H}$(<>lk!h;Lohr(Z1u)qUX<<$kEp5&Xm~Azu?WO-_EJz&6?rNpx4d4+|8`!%a`WM zk<84@+RCco%9-ZLh|0>!)XJ{f$fecDv)jm_)yT5g$F9i8$koTO=q0z*z*TkI0 z#m2_P#o5D?#Kgqm!-e6)g2cqd!^6Yhz=6-fsKdg-!otGe!GhVqjlILa)4-kCz=_$v ziq*fA%fGAKzku1kjNHC}zrVlRy@AlZoZ7s8y}iA^zp&f8d)mBw*}Q$tyqw#*dD**s z)w+Vtx|i9ydb_*3#kr)?xrEobde*mi*SL1ow|LdIc+|Fd$+nc$wszCBcG9$U$h45s zv~0%B*b5t82@w zY|5)^$*F0{sA#{bg2|_3!l!hpsj0}PX0)e~$EIe*rDVpXWv8d7iL1)Sq+-RSWW=Ll z#G_-wqFuS8dbgo`xT1Q$pk=|JUc#VWwxM{!pkKD2c($K+wxD;xpI)t>inO11!Jb>c zomsS=cfXxmz@1pUoL{}1T%Dbryqj6Nn_s<}RlJ&5x|&_QnpeDw(EZ*psMAVX6$2C~zj00047Nkl05hwc|}D<<+3p`u{tp@Gc%XVNhpd7 zsM_e5IXYUj2m(dG!ahaY&H06eo&7U`Ad#1ijSVau6VqTKZ(yI+2n1Ed5Mgdv*={2T zZPS|8elV!zV`pb~Vi3vBUhI-!TQYIRY%u7MF5HML?N=gbS z?0e~CY0vyMYqmnbbQQ3$sPgUS?aOu_f`D^JW+_QZN&qSL@K_x0GYM2)f2I=7-pd=y#3|J8iAmb#% mfFUfS2@++%h+<7p6axTlXPWVYl|M}Y0000 \ No newline at end of file diff --git a/packages/phocadownload/plugins/editors-xtd/phocadownload/assets/index.html b/packages/phocadownload/plugins/editors-xtd/phocadownload/assets/index.html new file mode 100644 index 00000000..fa6d84e8 --- /dev/null +++ b/packages/phocadownload/plugins/editors-xtd/phocadownload/assets/index.html @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/phocadownload/plugins/editors-xtd/phocadownload/index.html b/packages/phocadownload/plugins/editors-xtd/phocadownload/index.html new file mode 100644 index 00000000..fa6d84e8 --- /dev/null +++ b/packages/phocadownload/plugins/editors-xtd/phocadownload/index.html @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/phocadownload/plugins/editors-xtd/phocadownload/phocadownload.php b/packages/phocadownload/plugins/editors-xtd/phocadownload/phocadownload.php new file mode 100644 index 00000000..d9ec5ffe --- /dev/null +++ b/packages/phocadownload/plugins/editors-xtd/phocadownload/phocadownload.php @@ -0,0 +1,57 @@ +loadLanguage(); + } + + function onDisplay($name, $asset, $author) { + + $app = JFactory::getApplication(); + + $document = & JFactory::getDocument(); + $template = $app->getTemplate(); + + $enableFrontend = $this->params->get('enable_frontend', 0); + + if ($template != 'beez_20') { + JHTML::stylesheet( 'plugins/editors-xtd/phocadownload/assets/css/phocadownload.css' ); + } + + $link = 'index.php?option=com_phocadownload&view=phocadownloadlinks&tmpl=component&e_name='.$name; + + JHTML::_('behavior.modal'); + + + + $button = new JObject; + $button->modal = true; + $button->class = 'btn'; + $button->link = $link; + $button->text = JText::_('PLG_EDITORS-XTD_PHOCADOWNLOAD_FILE'); + $button->name = 'file'; + $button->options = "{handler: 'iframe', size: {x: 800, y: 500}}"; + + if ($enableFrontend == 0) { + if (!$app->isAdmin()) { + $button = null; + } + } + + return $button; + } +} \ No newline at end of file diff --git a/packages/phocadownload/plugins/editors-xtd/phocadownload/phocadownload.xml b/packages/phocadownload/plugins/editors-xtd/phocadownload/phocadownload.xml new file mode 100644 index 00000000..72179a30 --- /dev/null +++ b/packages/phocadownload/plugins/editors-xtd/phocadownload/phocadownload.xml @@ -0,0 +1,42 @@ + + + plg_editors-xtd_phocadownload + 17/08/2013 + Jan Pavelka (www.phoca.cz) + + www.phoca.cz + Jan Pavelka + GNU/GPL + 3.0.1 + + PLG_EDITORS-XTD_PHOCADOWNLOAD_DESCRIPTION + + + phocadownload.php + index.html + assets + + + + language/en-GB/en-GB.plg_editors-xtd_phocadownload.ini + language/en-GB/en-GB.plg_editors-xtd_phocadownload.sys.ini + + + + + language/en-GB/en-GB.plg_editors-xtd_phocadownload.ini + language/en-GB/en-GB.plg_editors-xtd_phocadownload.sys.ini + + + + + +
        + + + + +
        +
        +
        +
        diff --git a/packages/phocadownload/plugins/search/phocadownload/index.html b/packages/phocadownload/plugins/search/phocadownload/index.html new file mode 100644 index 00000000..6bfc7988 --- /dev/null +++ b/packages/phocadownload/plugins/search/phocadownload/index.html @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/packages/phocadownload/plugins/search/phocadownload/phocadownload.php b/packages/phocadownload/plugins/search/phocadownload/phocadownload.php new file mode 100644 index 00000000..c4fc3226 --- /dev/null +++ b/packages/phocadownload/plugins/search/phocadownload/phocadownload.php @@ -0,0 +1,290 @@ +loadLanguage(); + } + + function onContentSearchAreas() { + static $areas = array( + 'phocadownload' => 'PLG_SEARCH_PHOCADOWNLOAD_PHOCADOWNLOAD' + ); + return $areas; + } + + + + function onContentSearch( $text, $phrase = '', $ordering = '', $areas = null ) { + + $db = JFactory::getDbo(); + $app = JFactory::getApplication(); + $user = JFactory::getUser(); + $groups = implode(',', $user->getAuthorisedViewLevels()); + + $component = 'com_phocadownload'; + $paramsC = JComponentHelper::getParams($component) ; + + $display_access_category = $paramsC->get( 'display_access_category', 1 ); + if (is_array( $areas )) { + if (!array_intersect( $areas, array_keys( $this->onContentSearchAreas() ) )) { + return array(); + } + } + + $limit = $this->params->get('search_limit', 20); + + $text = trim( $text ); + if ($text == '') { + return array(); + } + + $section = JText::_( 'PLG_SEARCH_PHOCADOWNLOAD_PHOCADOWNLOAD'); + + + switch ($ordering) + { + case 'oldest': + $order = 'a.created ASC'; + break; + + case 'popular': + $order = 'a.hits DESC'; + break; + + case 'alpha': + $order = 'a.title ASC'; + break; + + case 'category': + $order = 'c.title ASC, a.title ASC'; + break; + + case 'newest': + default: + $order = 'a.date DESC'; + } + + // Date in Where + $jnow =& JFactory::getDate(); + $now = $jnow->toMySQL(); + $nullDate = $db->getNullDate(); + + $wheres = array(); + switch ($phrase) + { + case 'exact': + $text = $db->Quote('%'.$db->getEscaped($text, true).'%', false); + $wheres2 = array(); + $wheres2[] = 'a.title LIKE '.$text; + $wheres2[] = 'a.alias LIKE '.$text; + //$wheres2[] = 'a.name LIKE '.$text; + $wheres2[] = 'a.metakey LIKE '.$text; + $wheres2[] = 'a.metadesc LIKE '.$text; + $wheres2[] = 'a.description LIKE '.$text; + $where = '(' . implode(') OR (', $wheres2) . ')'; + break; + + case 'all': + case 'any': + default: + $words = explode(' ', $text); + $wheres = array(); + foreach ($words as $word) + { + $word = $db->Quote('%'.$db->getEscaped($word, true).'%', false); + $wheres2 = array(); + $wheres2[] = 'a.title LIKE '.$word; + $wheres2[] = 'a.alias LIKE '.$word; + //$wheres2[] = 'a.name LIKE '.$word; + $wheres2[] = 'a.metakey LIKE '.$word; + $wheres2[] = 'a.metadesc LIKE '.$word; + $wheres2[] = 'a.description LIKE '.$word; + $wheres[] = implode(' OR ', $wheres2); + } + $where = '(' . implode(($phrase == 'all' ? ') AND (' : ') OR ('), $wheres) . ')'; + break; + } + + $rows = array(); + // - - - - - - + // Categories + // - - - - - - + $query = $db->getQuery(true); + $query->select('a.id, a.title AS title, a.alias, a.date AS created, a.access, a.accessuserid,' + . ' CASE WHEN CHAR_LENGTH(a.alias) THEN CONCAT_WS(\':\', a.id, a.alias) ELSE a.id END as slug,' + . ' a.description AS text,' + . ' CONCAT_WS( " / ", '.$db->Quote($section).', a.title ) AS section,' + . ' "2" AS browsernav'); + $query->from('#__phocadownload_categories AS a'); + //$query->innerJoin('#__categories AS c ON c.id = a.catid'); + //$query->where('('.$where.')' . ' AND a.state in ('.implode(',',$state).') AND a.published = 1 AND a.approved = 1 AND a.access IN ('.$groups.')'); + $query->where('('.$where.')' . ' AND a.published = 1 AND a.access IN ('.$groups.')'); + $query->group('a.id'); + $query->order($order); + + // Filter by language + if ($app->isSite() && $app->getLanguageFilter()) { + $tag = JFactory::getLanguage()->getTag(); + $query->where('a.language in (' . $db->Quote($tag) . ',' . $db->Quote('*') . ')'); + //$query->where('c.language in (' . $db->Quote($tag) . ',' . $db->Quote('*') . ')'); + } + + $db->setQuery( $query, 0, $limit ); + $listCategories = $db->loadObjectList(); + $limit -= count($listCategories); + + + + if(isset($listCategories)) { + foreach($listCategories as $key => $value) { + + // USER RIGHT - ACCESS - - - - - - - - - - - + $rightDisplay = 1;//default is set to 1 (all users can see the category) + + if (!empty($value)) { + $rightDisplay = PhocaDownloadHelper::getUserRight('accessuserid', $value->accessuserid, $value->access, $user->authorisedLevels(), $user->get('id', 0), $display_access_category); + } + if ($rightDisplay == 0) { + unset($listCategories[$key]); + } else { + $listCategories[$key]->href = $link = JRoute::_(PhocaDownloadHelperRoute::getCategoryRoute($value->id, $value->alias)); + } + // - - - - - - - - - - - - - - - - - - - - - + } + } + $rows[] = $listCategories; + + // Files + $wheres = array(); + $wheres3 = array(); + switch ($phrase) + { + case 'exact': + $text = $db->Quote('%'.$db->getEscaped($text, true).'%', false); + $wheres2 = array(); + $wheres2[] = 'a.title LIKE '.$text; + $wheres2[] = 'a.alias LIKE '.$text; + $wheres2[] = 'a.filename LIKE '.$text; + $wheres2[] = 'a.metakey LIKE '.$text; + $wheres2[] = 'a.metadesc LIKE '.$text; + $wheres2[] = 'a.description LIKE '.$text; + + $wheres3[] = '(' . implode(') OR (', $wheres2) . ')'; + break; + + case 'all': + case 'any': + default: + $words = explode(' ', $text); + $wheres = array(); + foreach ($words as $word) + { + $word = $db->Quote('%'.$db->getEscaped($word, true).'%', false); + $wheres2 = array(); + $wheres2[] = 'a.title LIKE '.$word; + $wheres2[] = 'a.alias LIKE '.$word; + $wheres2[] = 'a.filename LIKE '.$word; + $wheres2[] = 'a.metakey LIKE '.$word; + $wheres2[] = 'a.metadesc LIKE '.$word; + $wheres2[] = 'a.description LIKE '.$word; + + $wheres[] = implode(' OR ', $wheres2); + } + $wheres3[] = '(' . implode(($phrase == 'all' ? ') AND (' : ') OR ('), $wheres) . ')'; + break; + } + + $wheres3[] = '( (unaccessible_file = 1 ) OR (unaccessible_file = 0 AND a.access IN ('.$groups.') ) )'; + $wheres3[] = '( (unaccessible_file = 1 ) OR (unaccessible_file = 0 AND c.access IN ('.$groups.') ) )'; + $wheres3[] = ' ( a.publish_up = '.$db->Quote($nullDate).' OR a.publish_up <= '.$db->Quote($now).' )'; + $wheres3[] = ' ( a.publish_down = '.$db->Quote($nullDate).' OR a.publish_down >= '.$db->Quote($now).' )'; + + $where = implode(' AND ', $wheres3); + + if ( $limit > 0 ) { + + // - - - - - - + // Files + // - - - - - - + $query = $db->getQuery(true); + $query->select(' CASE WHEN CHAR_LENGTH(a.title) THEN CONCAT_WS(\': \', c.title, a.title) + ELSE c.title END AS title, ' + . ' CASE WHEN CHAR_LENGTH(a.description) THEN CONCAT_WS(\': \', a.title, + a.description) ELSE a.title END AS text, ' + . ' a.id, a.date AS created, c.accessuserid as accessuserid, c.access as cataccess,' + . ' CASE WHEN CHAR_LENGTH(a.alias) THEN CONCAT_WS(\':\', a.id, a.alias) ELSE a.id END as slug, ' + . ' CASE WHEN CHAR_LENGTH(c.alias) THEN CONCAT_WS(\':\', c.id, c.alias) ELSE c.id END AS catslug, ' + . ' CONCAT_WS( " / ", '.$db->Quote($section).', a.title ) AS section,' + . ' "2" AS browsernav, c.id as catid, c.alias as catalias'); + $query->from('#__phocadownload AS a'); + $query->innerJoin('#__phocadownload_categories AS c ON c.id = a.catid'); + //$query->where('('.$where.')' . ' AND a.state in ('.implode(',',$state).') AND a.published = 1 AND a.approved = 1 AND c.published = 1 AND c.approved = 1 AND c.access IN ('.$groups.')'); + $query->where('('.$where.')' . ' AND a.published = 1 AND a.approved = 1 AND c.published = 1 AND c.access IN ('.$groups.')'); + //$query->group('a.id'); + $query->order($order); + + // Filter by language + if ($app->isSite() && $app->getLanguageFilter()) { + $tag = JFactory::getLanguage()->getTag(); + $query->where('a.language in (' . $db->Quote($tag) . ',' . $db->Quote('*') . ')'); + $query->where('c.language in (' . $db->Quote($tag) . ',' . $db->Quote('*') . ')'); + } + + $db->setQuery( $query, 0, $limit ); + $listFiles = $db->loadObjectList(); + + + if(isset($listFiles)) { + foreach($listFiles as $key => $value) { + // USER RIGHT - ACCESS - - - - - - - - - - - + $rightDisplay = 1;//default is set to 1 (all users can see the category) + + if (!empty($value)) { + $rightDisplay = PhocaDownloadHelper::getUserRight('accessuserid', $value->accessuserid, $value->cataccess, $user->authorisedLevels(), $user->get('id', 0), $display_access_category); + } + if ($rightDisplay == 0) { + unset($listFiles[$key]); + } else { + $listFiles[$key]->href = JRoute::_(PhocaDownloadHelperRoute::getCategoryRoute($value->catid, $value->catalias)); + } + // - - - - - - - - - - - - - - - - - - - - - + } + } + $rows[] = $listFiles; + } + + $results = array(); + if(count($rows)) { + foreach($rows as $row) { + $results = array_merge($results, (array) $row); + } + } + + return $results; + } +} diff --git a/packages/phocadownload/plugins/search/phocadownload/phocadownload.xml b/packages/phocadownload/plugins/search/phocadownload/phocadownload.xml new file mode 100644 index 00000000..9f2ef416 --- /dev/null +++ b/packages/phocadownload/plugins/search/phocadownload/phocadownload.xml @@ -0,0 +1,38 @@ + + + plg_search_phocadownload + 23/05/2011 + Jan Pavelka (www.phoca.cz) + + www.phoca.cz + Jan Pavelka + GNU/GPL + 2.0.1 + + PLG_SEARCH_PHOCADOWNLOAD_DESCRIPTION + + + phocadownload.php + index.html + + + + language/en-GB/en-GB.plg_search_phocadownload.ini + language/en-GB/en-GB.plg_search_phocadownload.sys.ini + + + + + language/en-GB/en-GB.plg_search_phocadownload.ini + language/en-GB/en-GB.plg_search_phocadownload.sys.ini + + + + + +
        + +
        +
        +
        +
        \ No newline at end of file