Spade
Mini Shell
| Directory:~$ /home/lmsyaran/public_html/css/ |
| [Home] [System Details] [Kill Me] |
PK�{�[Sg�H�Hcss/backend_default.cssnu�[���/**
* @package HikaMarket for Joomla!
* @version 3.1.1
* @author Obsidev S.A.R.L.
* @copyright (C) 2011-2020 OBSIDEV. All rights reserved.
* @license GNU/GPLv3 http://www.gnu.org/licenses/gpl-3.0.html
*/
/*
*
*/
table.pad5 th, table.pad5 td, table.adminlist.pad5 td {
padding:5px;
}
table.pad0 th, table.pad0 td, table.adminlist.pad0 td {
padding:0px;
}
div#iframedoc {
border:1px solid black;
background-color:white;
}
#hikamarket_main_content .navbar {
padding-bottom: 5px;
}
.hikamarket_main_content {
background-color: white;
padding: 5px;
}
.hikamarket_main_content #cpanel div.icon a span.fa,
.hikamarket_main_content #cpanel div.icon a span.fas,
.hikamarket_main_content #cpanel div.icon a span.far {
font-size: 48px;
color: #297fbb;
}
/*
* Icons
*/
.icon-16-new {background-image:url(../images/icon-16/new.png);}
.icon-16-list {background-image:url(../images/icon-16/list.png);}
.icon-16-users {background-image:url(../images/icon-16/users.png);}
.icon-16-config {background-image:url(../images/icon-16/config.png);}
.icon-16-export {background-image:url(../images/icon-16/export.png);}
.icon-16-import {background-image:url(../images/icon-16/import.png);}
.icon-16-help {background-image:url(../images/icon-16/help.png);}
.icon-16-plugin {background-image:url(../images/icon-16/plugin.png);}
.icon-16-settings {background-image:url(../images/icon-16/settings.png);}
.icon-16-import {background-image:url(../images/icon-16/import.png);}
.icon-16-views {background-image:url(../images/icon-16/views.png);}
.icon-16-update {background-image:url(../images/icon-16/update.png);}
.icon-16-layout {background-image:url(../images/icon-16/layout.png);}
.icon-16-acl {background-image:url(../images/icon-16/acl.png);}
.icon-16-vendor {background-image:url(../images/icon-16/vendor.png);}
.icon-32-pay {background-image:url(../images/icon-32/pay.png);}
.icon-32-reports {background-image:url(../images/icon-32/report.png);}
.icon-32-view {background-image:url(../images/icon-32/view.png);}
.icon-32-block {background-image:url(../images/icon-32/block.png);}
.icon-32-vendor {background-image:url(../images/icon-32/vendor.png);}
.icon-48-layout {background-image:url(../images/icon-48/layout.png);}
.icon-48-block {background-image:url(../images/icon-48/block.png);}
.icon-48-acl {background-image:url(../images/icon-48/acl.png);}
.icon-48-vendors {background-image:url(../images/icon-48/vendor.png);}
.icon-16-hikamarket
{background-image:url(../images/icon-16/hikamarket.png);}
.icon-32-hikamarket
{background-image:url(../images/icon-32/hikamarket.png);}
.icon-48-hikamarket
{background-image:url(../images/icon-48/hikamarket.png);}
body.com_hikamarket h1.page-title span.icon-hikamarket {
background-image:url(../images/icon-32/hikamarket.png);
width:32px;
height:32px;
vertical-align:middle;
}
body.com_hikamarket div.subhead span.icon-pay:before {
content:"\73";
}
body.com_hikamarket div.subhead span.icon-reports:before {
content:"\76";
}
/*
*
*/
#hikamarket_main_content input,
#hikamarket_main_content textarea,
#hikamarket_main_content select,
#hikamarket_main_content fieldset input,
#hikamarket_main_content fieldset textarea,
#hikamarket_main_content fieldset select,
#hikamarket_main_content fieldset img,
#hikamarket_main_content fieldset button {
float:none;
}
#hikamarket_main_content label {
float:none;
display:inline;
}
#hikamarket_main_content fieldset {
border:1px solid #CCCCCC;
background-color:#FFFFFF;
overflow:visible;
}
.hk_config_table .hk_tbl_key {
width:25%;
font-weight:bold;
}
.hk_config_table tr:hover {
background-color:#bacada;
}
#hikamarket_main_content table.admintable td.key,
#hikamarket_main_content table.admintable td.paramlist_key {
background-color:#F6F6F6;
border-bottom:1px solid #E9E9E9;
border-right:1px solid #E9E9E9;
color:#666666;
font-weight:bold;
text-align:right;
width:210px;
}
#hikamarket_main_content table.admintable tr.option_title,
table.hk_config_table tr.option_title {
background-color:#eaeaea;
border-bottom:1px solid #E9E9E9;
border-right:1px solid #E9E9E9;
color:#444444;
font-weight:bold;
line-height:1.2em;
}
#hikamarket_main_content table.admintable tr.option_title td {
padding:4px 2px 4px 2px;
}
#hikamarket_main_content div.row-fluid table.admintable td.key,
#hikamarket_main_content div.row-fluid table.admintable td.paramlist_key {
white-space:normal;
}
#hikamarket_main_content table.admintable select {
margin: 1px 0px 1px 2px;
}
#hikamarket_main_content table.admintable tr.bigline {
font-size: 1.2em;
}
div.acl-popup-content {
position:absolute;
background-color:white;
border:1px solid #aeaeae;
-webkit-border-radius: 3px; -moz-border-radius: 3px; border-radius: 3px;
height:130px;
width:200px;
overflow:auto;
}
/*
* Files and Images
* - upload
* - drag & Drop
*/
div.hikamarket_main_image_div,
div.hikamarket_main_file_div {
position:relative;
}
div.hikamarket_uploader_image_add {
position:absolute;
top:5px;
right:5px;
}
div.hikamarket_uploader_image_add span {
display:inline-block;
width:16px;
height:16px;
}
div.hikamarket_uploader_image_add span.hikam_add_btn {
background-image:url(../images/icon-16/plus.png);
}
div.hikamarket_uploader_image_add span.hikam_upload_btn {
background-image:url(../images/icon-16/upload.png);
}
ul.hikamarket_uploader_images .ui-sortable-placeholder {
border:1px dotted black;
visibility:visible !important;
width:50px;
height:50px !important;
}
ul.hikamarket_uploader_images .ui-sortable-placeholder * {
visibility:hidden;
}
ul.hikamarket_uploader_images {
list-style-type:none;
margin:0 !important;
padding:15px 0 0 0 !important;
}
div.hikamarket_uploader_singleimage_content {
padding:15px 0 5px 8px !important;
width:100px;
}
div#hikamarket_category_current_image > div,
div#hikamarket_category_image_content > div {
position:relative;
padding:0px;
}
ul.hikamarket_product_images a,
div#hikamarket_category_current_image a,
div#hikamarket_category_image_content a {
background-color:transparent !important;
}
ul.hikamarket_product_images li {
display:inline-block;
position:relative;
margin-left: 3px !important;
}
.hikamarket_small_image_div {
display:inline-block;
}
.hikamarket_product_main_image_thumb {
display:block;
position:relative;
}
.hikamarket_small_image_div .hikamarket_image img {
max-width:50px;
max-height:50px;
}
ul.hikamarket_uploader_multiimage_content > li,
div.hikamarket_uploader_singleimage_content > div {
position:relative;
}
ul.hikamarket_uploader_multiimage_content .deleteImg,
div.hikamarket_uploader_singleimage_content .deleteImg {
position:absolute;
right:0px;
top:0px;
display:none;
}
ul.hikamarket_uploader_multiimage_content:hover .deleteImg,
div.hikamarket_uploader_singleimage_content:hover .deleteImg {
display:block;
opacity:0.5;
filter:alpha(opacity=50);
}
ul.hikamarket_uploader_multiimage_content .deleteImg:hover,
div.hikamarket_uploader_singleimage_content .deleteImg:hover {
opacity:1;
filter:alpha(opacity=100);
}
.uploadQueueItem {
font:11px Verdana, Geneva, sans-serif;
border:2px solid#E5E5E5;
background-color:#F5F5F5;
margin-top:5px;
padding:10px;
/*width: 350px;*/
}
.uploadError {
border:2px solid #FBCBBC !important;
background-color:#FDE5DD !important;
}
.uploadQueueItem .cancel {
float:right;
}
.uploadProgress {
background-color:#FFFFFF;
border-top:1px solid #808080;
border-left:1px solid #808080;
border-right:1px solid #C5C5C5;
border-bottom:1px solid #C5C5C5;
margin-top:10px;
width:100%;
}
.uploadProgressBar {
background:url('../images/progress.gif') repeat-x;
width:1px;
height:8px;
}
.uploadBtn {
width:80px;
margin-top:3px;
padding:6px;
text-align:center;
border:1px solid #333333;
background-color:#ececec;
}
.hkIcon {
width:16px;
height:16px;
display:inline-block;
line-height:16px;
}
.hkIcon-delete {
background-image:url(../images/icon-16/delete.png);
}
.dropOver {
background-color:#909090;
}
.hikamarket_dropzone {
border: 2px dashed #CCCCCC;
width:100%;
-webkit-border-radius:12px; -moz-border-radius:12px; border-radius:12px;
min-height:100px;
}
.hikamarket_uploader_image_empty {
width:100%;
padding:30px 0px;
text-align:center;
}
/*-- DL DT DD --*/
dl.hikam_options,
dl.hikam_suboptions {
margin-bottom:2px;
}
dl.hikam_options > dt {
float:left;
clear:left;
font-weight:bold;
padding:5px;
width:120px;
text-align:right;
line-height:18px;
overflow:hidden;
text-overflow:ellipsis;
white-space:nowrap;
}
dl.hikam_options.large > dt {
width:180px;
}
dl.hikam_options > dt label {
margin:0px;
}
dl.hikam_options > dd {
margin-left:130px;
padding-top:4px;
padding-bottom:4px;
line-height:20px;
min-height:20px;
float:none;
}
dl.hikam_options.large > dd {
margin-left:190px;
}
dl.hikam_options dd div.hikam_options_nl {
height:20px;
}
/*
* Toggle
*/
div.toggle_loading {
width:16px;
height:16px;
display:inline-block;
}
div.toggle_onload {
width:16px;
height:16px;
display:inline-block;
background-image:url('../../com_hikashop/images/spinner.gif');
}
div.toggle_onload a {
display:none;
}
div.toggle_loading a.unpublish {
width:16px;
height:16px;
display:inline-block;
background-image:url('../images/icon-16/unpublish.png');
}
div.toggle_loading a.publish {
width:16px;
height:16px;
display:inline-block;
background-image:url('../images/icon-16/publish.png');
}
div.toggle_loading a.refresh {
width:16px;
height:16px;
display:inline-block;
background-image:url('../images/icon-16/refresh.png');
}
/*
*
*/
span.acl-icon {
display:block;
height:16px;
width:100%;
margin:0 auto;
background-position:50% 50%;
background-repeat:no-repeat;
}
span.acl-icon:hover {
cursor:pointer;
}
td span.acl-icon {
background-image:url('../images/icon-16/notset.png');
}
td.published span.acl-icon {
background-image:url('../images/icon-16/publish.png');
}
td.unpublished span.acl-icon {
background-image:url('../images/icon-16/unpublish.png');
}
td.partial span.acl-icon {
background-image:url('../images/icon-16/partial.png');
}
td.published.set {
background-color:#dff0d8 !important;
}
td.unpublished.set {
background-color:#f2dede !important;
}
a.acl-apply {
height:16px;
width:16px;
margin:2px 5px;
display:inline-block;
background-image:url(../images/icon-16/save.png);
}
a.acl-apply span {
display:none;
}
a.acl-cancel {
height:16px;
width:16px;
margin:2px 5px;
display:inline-block;
background-image:url(../images/icon-16/delete.png);
}
a.acl-cancel span {
display:none;
}
.hikamarket_acl_opt_list td label {
line-height: 1.8em;
}
.hikamarket_acl_opt_list td input {
max-width:100px;
}
.hikamarket_acl_opt_list td.hikamarket_acl_opt:hover {
background-color: #B7E1F7;
cursor:pointer;
}
.hikamarket_acl_opt_list td.hikamarket_acl_opt .acl_value {
white-space: nowrap;
}
/**
* Panels
*/
.hikamarket_panel {
margin-bottom: 10px;
margin-right:4px;
background-color:#fff;
border: 1px solid #ddd;
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);
}
.hikamarket_panel_heading {
padding: 10px 15px;
border-bottom: 1px solid transparent;
border-top-right-radius: 3px;
border-top-left-radius: 3px;
color: #333;
background-color:#f0f0f0;
border-color:#cccccc;
}
.hikamarket_panel_body {
padding: 10px
}
.hikamarket_empty_chart {
width:100%;
text-align:center;
margin-top: 70px;
}
/*
* Gallery
*/
ul#hikaGallery {
list-style: none;
margin:0px;
position:relative;
top:0px;
bottom:0px;
left:0px;
right:0px;
outline:0px none;
padding:0px;
}
ul#hikaGallery li.hikaGalleryItem {
display: block;
float: left;
height: 125px;
}
ul#hikaGallery li.hikaGalleryItem .hikaGalleryPhoto {
position: relative;
float:left;
width:110px;
margin:5px 5px 5px 5px;
padding:3px;
text-decoration:none;
border:1px solid #efefef;
border-radius:4px;
box-shadow: 2px 2px 2px rgba(0,0,0,0.5);
background:white;
}
ul#hikaGallery li.hikaGalleryItem .hikaGalleryPhoto {
background:white;
color:black;
font-size:11px;
line-height:1.2em;
}
ul#hikaGallery li.hikaGalleryItem.selected .hikaGalleryPhoto {
background-color:#45a6e3 !important; /* #056eaf; */
}
ul#hikaGallery li.hikaGalleryItem .hikaGalleryPhoto img {
height:100px;
display:block;
margin:0px auto;
border:0px none;
}
ul#hikaGallery li.hikaGalleryItem .hikaGalleryPhoto .hikaGalleryChk {
position:absolute;
top:82px;
left:10px;
display:block;
margin:1px auto;
}
ul#hikaGallery li.hikaGalleryItem span.photo_name {
display: inline-block;
overflow:hidden;
white-space:nowrap;
width:100%;
}
ul#hikaGallery li.hikaGalleryItem div.hikaGalleryCommand {
display:none;
}
ul#hikaGallery li.hikaGalleryItem:hover .hikaGalleryPhoto {
z-index:20;
}
ul#hikaGallery li.hikaGalleryItem:hover div.hikaGalleryCommand {
display:block;
}
/**
*
*/
dl.hikamarket_pay_result {
margin:10px;
}
dl.hikamarket_pay_result dd {
margin-bottom:6px;
}
#hikamarket_pay_total {
font-size:1.2em;
}
@media (min-width:992px) {
.hkc-md-last {
float:right;
}
}
/*
* Joomla 3.0
*/
.btn-small .icon-hikamarket {
background-image:url(../images/icon-14/hikamarket.png);
vertical-align:middle;
}
#hikamarket_main_content button.btn > img {
max-width:inherit;
}
#hikamarket_main_content #cpanel .icon-wrapper {
width:auto;
height:auto;
display:block;
}
#hikamarket_main_content #cpanel div.icon {
text-align: center;
margin-right: 15px;
float: left;
margin-bottom: 15px;
}
body.com_hikamarket div.modal-body iframe {
border:0px;
}
.hikamarket_title_link.hikamarket_title_j3 { color:white; }
.hikamarket_title_link span.icon-hikamarket {
background-image:url(../images/icons-32/logo.png);
width:32px; height: 32px;
vertical-align:middle;
}
body.com_hikamarket .modal-body{
max-height: none !important;
}
#hikamarket_main_content #cpanel div.icon a {
background-color: #fff;
background-position: -30px;
display: block;
float: left;
height: 97px;
width: 108px;
color: #565656;
vertical-align: middle;
text-decoration: none;
border: 1px solid #CCC;
-webkit-border-radius: 5px;
-moz-border-radius: 5px;
border-radius: 5px;
-webkit-transition-property: background-position,
-webkit-border-bottom-left-radius, -webkit-box-shadow;
-moz-transition-property: background-position,
-moz-border-radius-bottomleft, -moz-box-shadow;
-webkit-transition-duration: 0.8s;
-moz-transition-duration: 0.8s;
}
#hikamarket_main_content #cpanel div.icon a:hover,
#hikamarket_main_content #cpanel div.icon a:focus,
#hikamarket_main_content #cpanel div.icon a:active {
background-position: 0px center;
/* border-bottom-left-radius: 50% 20px; */
background-color: #fafafa;
box-shadow: -5px 10px 15px rgba(0, 0, 0, 0.25);
position: relative;
z-index: 10;
}
#hikamarket_main_content #cpanel div.icon a span {
width:auto;
}
#hikamarket_main_content fieldset.radio {
border: 0;
margin-bottom: 5px;
}
#hikamarket_main_content #cpanel span {
display: block;
text-align: center;
}
#hikamarket_main_content fieldset.adminform {
padding: 5px 17px 17px;
}
#hikamarket_main_content fieldset.adminform legend {
margin: 0px;
padding: 0px 3px;
border: 0px solid;
width: auto;
/* IE Fix */
position:relative;
float:none;
top : 0px !important;
}
#hikamarket_main_content table td.order input {
width:20px;
}
#hikamarket_main_content button.btn,
#hikamarket_main_content a img {
margin-bottom: 9px;
}
#hikamarket_main_content .oTreeNode a img,
#hikamarket_main_content a button img {
margin-bottom:0px;
}
.hikaradios {
margin:2px 2px 5px 3px;
}
#module-form #attrib-hikamarket > .control-group,
#module-form #attrib-HikaMarket > .control-group,
#item-form #attrib-hikamarket > .control-group {
display:none;
}
@media screen and (max-width: 640px) {
div.hikashop_backend_tile_edition .input-append + label { display: none;
}
}
@media screen and (max-width: 1733px) and (min-width: 1600px) {
div.hikashop_backend_tile_edition .input-append + label { display: none;
}
}
div.hika_backend_tile_edition th { text-align: left; }
div.hikashop_backend_tile_edition div.nameboxes { border: 1px solid #ccc
!important; }
div.hikashop_backend_tile_edition .input-append { margin-left: 2px; }
div.hikashop_backend_tile_edition .editor { margin: 10px; }
div.hikashop_backend_tile_edition dd { margin-right: 25px; }
div.hikashop_backend_tile_edition .hikashop_dropzone { width: 95%;
margin-left: 12px; }
div.hikashop_backend_tile_edition dd.input_large > input { width: 98%;
}
div.hikashop_backend_tile_edition .input-prepend { margin-bottom: 0px
!important;
div.hikashop_backend_tile_edition dl.hika_options { margin-bottom: 18px;
padding: 5px; }
div.hikashop_backend_tile_edition dl.hika_options > div { margin-bottom:
3px; min-width: 462.396px; }
div.hikashop_backend_tile_edition .hikashop_tile_title {
background-image: linear-gradient(#f9f9f9, #e1e1e1);
text-align: center;
font-weight: bold;
border-top-left-radius: 10px;
border-top-right-radius: 10px;
text-transform: uppercase;
padding: 5px;
}
div.hikashop_backend_tile_edition .hikashop_tile_block > div {
background-color: #fbfbfb;
min-height: 280px;
margin-top: 12px;
border: 1px solid #d4d4d4;
border-radius: 10px;
}
div.hikashop_backend_tile_edition .hikashop_file_upload_div {
background-color: white;
min-height: 104px;
border-radius: 0px 0px 5px 5px;
}}
div.hikashop_backend_tile_edition dl.hika_options > dd > input,
#hikashop_backend_tile_edition dl.hika_options > dd > .nameboxes,
div.hikashop_backend_tile_edition dl.hika_options > dd >
div.input-append,
div.hikashop_backend_tile_edition dl.hika_options > dd >
div.input-append input,
div.hikashop_backend_tile_edition dl.hika_options > dd >
div.input-append button {
margin-bottom: 2px;
}
/**
* Joomla 4
*/
.hikamarket_main_content #cpanel span {
display: block;
text-align: center;
box-sizing: unset;
}
PK�{�[�R��EEcss/dropdown.cssnu�[���/**
* @package HikaMarket for Joomla!
* @version 3.1.1
* @author Obsidev S.A.R.L.
* @copyright (C) 2011-2020 OBSIDEV. All rights reserved.
* @license GNU/GPLv3 http://www.gnu.org/licenses/gpl-3.0.html
*/
.hkdropdown .caret,
.hkdropup .caret {
display: inline-block;
width: 0;
height: 0;
margin-left: 2px;
vertical-align: middle;
border-top: 4px dashed;
border-top: 4px solid \9;
border-right: 4px solid transparent;
border-left: 4px solid transparent;
}
.hkdropdown,
.hkdropup {
position: relative;
display: inline-block;
}
.hkdropdown > button.btn,
.hkdropup > button.btn {
margin-bottom:0px !important;
}
.hkdropdown-toggle:focus {
outline: 0;
}
.hkdropdown-menu {
position: absolute;
top: 100%;
left: 0;
z-index: 1000;
display: none;
float: left;
min-width: 160px;
padding: 5px 0 !important;
margin: 2px 0 0 !important;
list-style: none !important;
font-size: 14px;
text-align: left;
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);
-webkit-background-clip: padding-box;
background-clip: padding-box;
}
.hkdropdown-menu.pull-right {
right: 0;
left: auto;
}
.hkdropdown-menu .divider {
height: 1px;
margin: 9px 0 !important;
overflow: hidden;
background-color: #e5e5e5;
}
.hkdropdown-menu > li > a {
display: block;
padding: 3px 20px;
clear: both;
font-weight: normal;
line-height: 1.42857143;
color: #333333;
white-space: nowrap;
text-decoration: none;
}
.hkdropdown-menu > li > a:hover,
.hkdropdown-menu > li > a:focus {
text-decoration: none;
color: #262626;
background-color: #f5f5f5;
}
.hkdropdown-menu > .active > a,
.hkdropdown-menu > .active > a:hover,
.hkdropdown-menu > .active > a:focus {
color: #ffffff;
text-decoration: none;
outline: 0;
background-color: #337ab7;
}
.hkdropdown-menu > .disabled > a,
.hkdropdown-menu > .disabled > a:hover,
.hkdropdown-menu > .disabled > a:focus {
color: #777777;
}
.hkdropdown-menu > .disabled > a:hover,
.hkdropdown-menu > .disabled > a:focus {
text-decoration: none;
background-color: transparent;
background-image: none;
filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);
cursor: not-allowed;
}
.hkdropdown.open > .hkdropdown-menu {
display: block;
}
.hkdropdown.open > a {
outline: 0;
}
.hkdropdown-menu-right {
left: auto;
right: 0;
}
.hkdropdown-menu-left {
left: 0;
right: auto;
}
.hkdropdown-header {
display: block;
padding: 3px 20px;
font-size: 12px;
line-height: 1.42857143;
color: #777777;
white-space: nowrap;
}
.hkdropdown-backdrop {
position: fixed;
left: 0;
right: 0;
bottom: 0;
top: 0;
z-index: 990;
}
.hkdropup .caret {
border-top: 0;
border-bottom: 4px dashed;
border-bottom: 4px solid \9;
content: "";
}
.hkdropup .hkdropdown-menu {
top: auto;
bottom: 100%;
margin-bottom: 2px;
}
.pull-right > .hkdropdown-menu {
right: 0;
left: auto;
}
PK�{�[^�&~ǏǏcss/frontend_default.cssnu�[���/**
* @package HikaMarket for Joomla!
* @version 3.1.1
* @author Obsidev S.A.R.L.
* @copyright (C) 2011-2020 OBSIDEV. All rights reserved.
* @license GNU/GPLv3 http://www.gnu.org/licenses/gpl-3.0.html
*/
/*
* Icons
*/
.iconM-16-hikamarket
{background-image:url(../images/icon-16/hikamarket.png);}
.iconM-32-hikamarket
{background-image:url(../images/icon-32/hikamarket.png);}
.iconM-48-hikamarket
{background-image:url(../images/icon-48/hikamarket.png);}
.iconM-32-apply {background-image:url(../images/icon-32/apply.png);}
.iconM-32-back {background-image:url(../images/icon-32/back.png);}
.iconM-32-cancel {background-image:url(../images/icon-32/cancel.png);}
.iconM-32-delete {background-image:url(../images/icon-32/delete.png);}
.iconM-32-new {background-image:url(../images/icon-32/new.png);}
.iconM-32-save {background-image:url(../images/icon-32/save.png);}
.iconM-32-savenew {background-image:url(../images/icon-32/savenew.png);}
.iconM-32-invoice {background-image:url(../images/icon-32/invoice.png);}
.iconM-32-up {background-image:url(../images/icon-32/up.png);}
.iconM-32-cart
{background-image:url(../../com_hikashop/images/icons/icon-32-show_cart.png);}
.iconM-32-ordering {background-image:url(../images/icon-32/save.png);}
.iconM-32-category {background-image:url(../images/icon-32/category.png);}
.iconM-32-parent-category
{background-image:url(../images/icon-32/parent-category.png);}
.iconM-32-shipping-invoice
{background-image:url(../images/icon-32/shipping-invoice.png);}
.iconM-32-email {background-image:url(../images/icon-32/send-email.png);}
.iconM-32-report {background-image:url(../images/icon-32/report.png);}
.iconM-32-vendor {background-image:url(../images/icon-32/vendor.png);}
.iconM-32-order-status
{background-image:url(../images/icon-32/order-status.png);}
.iconM-32-approve {background-image:url(../images/icon-32/approve.png);}
.iconM-32-import {background-image:url(../images/icon-32/import.png);}
.iconM-32-pay {background-image:url(../images/icon-32/pay.png);}
.iconM-48-order {background-image:url(../images/icon-48/order.png);}
.iconM-48-products {background-image:url(../images/icon-48/products.png);}
.iconM-48-category {background-image:url(../images/icon-48/category.png);}
.iconM-48-user {background-image:url(../images/icon-48/user.png);}
.iconM-48-account {background-image:url(../images/icon-48/account.png);}
.iconM-48-discount {background-image:url(../images/icon-48/discount.png);}
.iconM-48-shipping {background-image:url(../images/icon-48/shipping.png);}
.iconM-48-payment {background-image:url(../images/icon-48/payment.png);}
.iconM-48-characteristic
{background-image:url(../images/icon-48/characteristic.png);}
.iconM-48-vendor {background-image:url(../images/icon-48/vendor.png);}
.hk-icon-14
{width:14px;height:14px;display:inline-block;vertical-align:middle;}
.iconM-14-length {background-image:url(../images/icon-14/length.png);}
.iconM-14-width {background-image:url(../images/icon-14/width.png);}
.iconM-14-height {background-image:url(../images/icon-14/height.png);}
/*
* CPanel
*/
#hikamarketcpanel .icon-wrapper {
width:auto;
height:auto;
display:block;
}
#hikamarketcpanel div.icon {
text-align:center;
margin-right:15px;
float:left;
margin-bottom:15px;
width:auto !important;
height:auto !important;
}
#hikamarketcpanel div.icon a {
background-color:#fff;
background-position:-30px;
display:block;
float:left;
height:97px;
width:108px;
color:#565656;
vertical-align:middle;
text-decoration:none;
border:1px solid #CCC;
-webkit-border-radius:5px; -moz-border-radius:5px; border-radius:5px;
-webkit-transition-property:background-position,
-webkit-border-bottom-left-radius, -webkit-box-shadow;
-moz-transition-property:background-position,
-moz-border-radius-bottomleft, -moz-box-shadow;
-webkit-transition-duration:0.8s;
-moz-transition-duration:0.8s;
}
#hikamarketcpanel div.icon a:hover,
#hikamarketcpanel div.icon a:focus,
#hikamarketcpanel div.icon a:active {
background-position:0px center;
/* border-bottom-left-radius: 50% 20px; */
background-color:#fafafa;
box-shadow:-2px 3px 8px rgba(0, 0, 0, 0.25);
position:relative;
z-index:10;
}
#hikamarketcpanel div.icon a span {
width:auto;
display:block;
}
.hikamarket_stat_table thead th {
text-align:left;
}
/*
* Filter Zone
*/
.hikam_filter {
border:0px;
margin-bottom:3px;
width:100%;
}
.hikam_filter td, .hikam_filter tr {
border:0 none;
}
/*
* Listing Zone
*/
table.hikam_table {
width:100%;
max-width: 100%;
border-spacing:1px;
color:#666;
}
table.hikam_table.hikam_bordered,
table.hikam_table.hikam_bordered td,
table.hikam_table.hikam_bordered > thead > tr > th {
border:1px solid #ddd;
}
table.hikam_table tr.row0,
table.hikam_table > tbody > tr:nth-of-type(odd) {
background-color:#f9f9f9;
}
table.hikam_table tr.row1 {
background-color:#fefefe;
}
table.hikam_table tbody tr.row0:hover,
table.hikam_table tbody tr.row1:hover {
background-color:#f0f0f0;
}
table.hikam_table td {
padding: 6px;
line-height: 1.42857143;
vertical-align: top;
border-top: 1px solid #ddd;
}
table.hikam_table th,
table.hikam_table.hikam_bordered > thead > tr > th {
vertical-align: bottom;
text-align: left;
border-bottom: 2px solid #ddd;
font-weight:bold;
padding:6px;
}
table.hikam_table thead a:hover {
text-decoration:none;
}
/* -- */
table.hikam_listing thead th img {
vertical-align:middle;
padding-left:3px;
}
table.hikam_listing tfoot td {
border:0 none;
border-top:1px solid #999;
}
table.hikam_listing tfoot tr {
text-align:center;
border:0 none;
}
table.hikam_listing input.text_ordering {
width: 40px;
}
table.hikam_listing th.titlenum {
width:1%;
min-width:30px;
}
table.hikam_listing th.titlebox {
width:1%;
min-width:15px;
}
table.hikam_listing td.order input {
width:25px;
}
table.hikam_listing span.hikam_btn_text {
display:none;
}
table.hikam_listing img.hikam_imglist {
float:left;
margin-right:5px;
margin-bottom:5px;
}
/**
*
*/
.hk-card-product,
.hk-card-category,
.hk-card-vendor-order,
.hk-card-discount,
.hk-card-plugin {
margin-bottom:10px;
}
.hk-card-vendor-order .hk-card-body {
padding:7px 15px;
}
.hk-card-discount .hk-card-body,
.hk-card-plugin .hk-card-body {
padding:10px 15px;
}
.hk-card-vendor-order .hk-card-header,
.hk-card-discount .hk-card-header,
.hk-card-plugin .hk-card-header {
font-weight:bold;
}
.hk-card-vendor-order .hkm_order_price,
.hk-card-product .hkm_product_price,
.hk-card-category .hkm_category_children,
.hk-card-plugin .hkm_plugin_type {
text-align:right;
}
.hk-card-product .hkm_product_code {
overflow:hidden;
text-overflow:ellipsis;
white-space:nowrap;
}
.hk-card-product .hkm_product_actions {
text-align:right;
}
.hk-card-category .hkm_category_children i.fa,
.hk-card-category .hkm_category_children i.fas,
.hk-card-category .hkm_category_children i.far {
margin-right:3px;
}
.hikam_float_img {
float:left;
margin-right:5px;
}
.hk-card-product .hkm_product_code,
.hk-card-product .hkm_product_stock,
.hk-card-product .hkm_product_stats {
margin-top:0px;
margin-bottom:3px;
}
.hk-card-product .hkm_product_fields {
margin:0;
}
.hk-card-product .hkm_order_value {
width:20px;
text-align:center;
}
.hk-card-vendor-order .hkm_order_status > .order-label {
font-size: 12px;
line-height: 14px;
padding: 4px 7px;
}
@media (max-width:768px) {
.hk-card-product .hkm_product_price,
.hk-card-product .hkm_product_actions,
.hk-card-category .hkm_category_children,
.hk-card-category .hkm_category_actions,
.hk-card-plugin .hkm_plugin_type {
text-align:left;
}
}
/*
* Specific listing
*/
td.hikamarket_order_total_value { text-align: center; }
td.hikamarket_product_quantity_value { text-align: center; }
td.hikamarket_product_actions_value { text-align: center; }
td.hikamarket_discount_value_value { text-align: center; }
td.hikamarket_discount_quota_value { text-align: center; }
td.hikamarket_discount_actions_value { text-align: center; }
td.hikamarket_discount_id_value { text-align: center; }
span.hikamarket_list_edit { }
span.hikamarket_list_single_edit { }
table.hikam_table td.hikamarket_order_item_option {
padding-left: 25px;
background: url('../../com_hikashop/images/j_arrow.png')
no-repeat 10px center;
}
/*
*
*/
.hikam_search_zone > input[type="text"] {
margin-bottom:0;
}
div.hikam_search_zone {
margin-bottom:5px;
}
div.hikamarket_search_block, div.hikam_sort_zone {
display:inline-block;
}
div.hikamarket_search_block > *,
div.hikam_sort_zone > * {
margin-bottom:5px;
}
/*
*
*/
div.hikamarket_search_block input {
margin-bottom:0px;
}
/*
*
*/
table.hikam_blocks {
border:0px;
width:100%;
}
table.hikam_blocks > tbody > tr > td,
table.hikam_blocks > tr > td {
vertical-align:top;
border:0px;
}
table.hikam_blocks tr {
border:0px;
}
table.hikam_blocks td.hikam_block_l {padding-right:3px;}
table.hikam_blocks td.hikam_block_r {padding-left:3px;}
table.hikam_blocks td.hikam_block_d30 {width:30%;}
table.hikam_blocks td.hikam_block_x150 {width:150px;}
/*
*
*/
table.hikam_options {
border-spacing:2px;
border-collapse:separate;
width:100%;
}
table.hikam_options td {
padding:1px;
margin:0px;
vertical-align:middle; /* TODO */
border:0px;
}
table.hikam_options td.key,
table.hikam_options td.paramlist_key {
background-color:#F6F6F6;
border-bottom:1px solid #E9E9E9;
border-right:1px solid #E9E9E9;
color:#666666;
font-weight:bold;
text-align:right;
width:120px;
}
table.hikam_options label {
display:inline;
}
/*-- DL DT DD --*/
dl.hikam_options,
dl.hikam_suboptions {
margin-bottom:2px;
}
dl.hikam_options > dt {
float:left;
clear:left;
font-weight:bold;
padding:5px;
width:120px;
text-align:right;
line-height:18px;
overflow:hidden;
text-overflow:ellipsis;
white-space:nowrap;
}
dl.hikam_options.large > dt {
width:180px;
}
dl.hikam_options.dl_glue {
margin-top:0px;
}
dl.hikam_options > dt label {
margin:0px;
}
dl.hikam_options > dd {
margin-left:130px;
padding-top:4px;
padding-bottom:4px;
line-height:20px;
min-height:20px;
float:none;
}
dl.hikam_options.large > dd {
margin-left:190px;
}
/*
dl.hikam_options > dd span {
display:inline-block;
margin-top:3px;
margin-bottom:3px;
}
*/
dl.hikam_options dd div.hikam_options_nl {
height:20px;
}
@media (max-width:768px) {
dl.hikam_options.large > dt {
width:auto;
text-align:left;
padding-left:0px;
float:none;
}
dl.hikam_options.large > dd {
margin-left:auto;
}
}
/*
*
*/
fieldset.hikam_field {
padding:5px;
overflow:visible;
border:1px solid #ccc;
background-color:white;
}
fieldset.hikam_field .hikam_edit {
float:right;
margin-top:-22px;
}
fieldset.hikam_field .hikam_edit img {
}
fieldset.hikam_field .hikam_edit span {
display:none;
}
fieldset.hikam_field .hikam_edit a,
fieldset.hikam_field .hikam_edit a:hover {
text-decoration:none;
background-color:transparent !important;
color:black !important;
}
fieldset.hikam_field legend {
margin:0;
padding:0;
}
fieldset.hikam_field label,
fieldset.hikam_field span.faux-label {
display:block;
margin:2px 2px;
}
fieldset.hikam_field ul {
margin:0;
padding:0;
}
fieldset.hikam_field select {
width:150px;
}
fieldset.hikam_field dd {
float:none;
}
td.hikam_price input {
width:100px;
}
td.hikam_currency select,
td.hikam_currency .chzn-container {
width:100px;
}
td.hikam_qty input {
width:40px;
}
label.hikamarket_product_description_label {
display:none;
}
/*
* Toolbar
*/
.hikam_toolbar {
padding: 2px;
border: 1px solid #ddd;
margin-bottom:3px;
background-color:#fafafa;
}
.hikam_toolbar .hikabtn {
margin-right:3px;
}
.hikam_toolbar .fa {
font-size: 28px;
color: #297fbb;
}
.hikam_toolbar div.sep {
display:inline-block;
margin-right:10px;
width:1px;
}
.hikam_toolbar .hikam_btn_16 div.sep { height:24px; }
.hikam_toolbar .hikam_btn_32 div.sep { height:40px; }
.hikam_toolbar .hikam_btn_48 div.sep { height:56px; }
.hikam_toolbar span.btnName {
display:block;
}
.hikam_toolbar span.btnIcon {
display:inline-block;
}
.hikam_toolbar .hikam_btn_16 span.btnIcon {
width:16px;
height:16px;
}
.hikam_toolbar .hikam_btn_32 span.btnIcon {
width:32px;
height:32px;
}
.hikam_toolbar .hikam_btn_48 span.btnIcon {
width:48px;
height:48px;
}
.hikam_toolbar .hikam_toolbar_right {
float:right;
}
.hikam_toolbar .hikam_toolbar_right div {
*float:none;
}
.hikam_breadcrumb {
margin:4px 0px;
background-color:#f5f5f5;
border-radius:4px;
border:1px solid #e1e1e1;
padding:7px 12px;
}
.breadcrumb_sep {
color:#777777;
padding:0 5px;
user-select:none;
cursor:default;
}
/*
* Namebox
*/
div.nameboxes {
margin:0;
padding:0px 5px;
height:auto !important;
height:1%;
font:11px "Lucida Grande", "Verdana";
cursor:text;
background-color:#fff;
background-image: -webkit-gradient(linear, 50% 0%, 50% 100%,
color-stop(2%, #eeeeee), color-stop(20%, #ffffff));
background-image: -webkit-linear-gradient(#eeeeee 2%, #ffffff 20%);
background-image: -moz-linear-gradient(#eeeeee 2%, #ffffff 20%);
background-image: -o-linear-gradient(#eeeeee 2%, #ffffff 20);
background-image: linear-gradient(#eeeeee 2%, #ffffff 20%);
border:1px solid #aeaeae;
-webkit-box-sizing: border-box;
-moz-box-sizing: border-box;
box-sizing: border-box;
-webkit-border-radius:3px; -moz-border-radius:3px; border-radius:3px;
}
.ui-sortable div.namebox {
cursor:move !important;
}
div.nameboxes div {
float:left;
margin:2px 5px 2px 0;
}
div.nameboxes div.namebox {
border:1px solid #aaa;
padding:1px 5px 2px;
min-height:14px;
line-height:14px;
-webkit-border-radius:4px; -moz-border-radius:4px; border-radius:4px;
cursor: default;
background-color: #e4e4e4;
background-image: -webkit-gradient(linear, 50% 0%, 50% 100%,
color-stop(20%, #f4f4f4), color-stop(50%, #f0f0f0), color-stop(52%,
#e8e8e8), color-stop(100%, #eeeeee));
background-image: -webkit-linear-gradient(#f4f4f4 20%, #f0f0f0 50%,
#e8e8e8 52%, #eeeeee 100%);
background-image: -moz-linear-gradient(#f4f4f4 20%, #f0f0f0 50%, #e8e8e8
52%, #eeeeee 100%);
background-image: -o-linear-gradient(#f4f4f4 20%, #f0f0f0 50%, #e8e8e8
52%, #eeeeee 100%);
background-image: linear-gradient(#f4f4f4 20%, #f0f0f0 50%, #e8e8e8 52%,
#eeeeee 100%);
background-clip: padding-box;
box-shadow: 0 0 2px white inset, 0 1px 0 rgba(0, 0, 0, 0.05);
}
div.nameboxes div.namebox {
padding-right:18px;
position:relative;
z-index:1;
}
div.nameboxes div.nametext input {
border:0px !important;
margin:2px 0px 0px 0px;
outline:none;
-webkit-box-shadow:none;
-moz-box-shadow:none;
box-shadow:none;
padding:0px;
}
div.nameboxes div.nametext input,
div.nameboxes div.nametext input:focus {
background:none;
}
div.nameboxes div.nametext input.placeholder {
color:#5c5c5c;
}
div.nameboxes div.namebox-focus {
border-color:#598BEC;
background:#598BEC;
color:white;
}
div.nameboxes div.namebox-hover {
background:#BBCEF1;
border:1px solid #6D95E0;
}
div.nameboxes div.namebox-focus {
border-color:#598BEC;
background:#598BEC;
color:white;
}
div.nameboxes div.namebox a.closebutton,
div.nameboxes div.namebox a.editbutton {
position:absolute;
right:4px;
top:5px;
display:block;
width:9px;
height:9px;
font-size:1px;
background:url('../images/close.png') !important;
background-color:transparent !important;
padding: 0px !important;
}
div.nameboxes div.namebox a.editbutton {
background: url('../images/edit.png') !important;
}
div.nameboxes div.namebox a.closebutton:hover,
div.nameboxes div.namebox a.closebutton:focus,
div.nameboxes div.namebox a.editbutton:hover,
div.nameboxes div.namebox a.editbutton:focus {
background-position:9px !important;
}
div.nameboxes div.namebox a.closebutton span,
div.nameboxes div.namebox a.editbutton span { display: none; }
div.nameboxes div.namebox-focus a.closebutton,
div.nameboxes div.namebox-focus a.closebutton:hover,
div.nameboxes div.namebox-focus a.editbutton,
div.nameboxes div.namebox-focus a.editbutton:hover { background-position:
bottom !important; }
div.namebox-popup {
position:relative;
}
div.namebox-popup div.namebox-popup-container {
position: absolute;
right: 0px;
left: 0px;
min-width:300px;
height:130px;
}
div.namebox-popup div.namebox-popup-content {
position:absolute;
background-color:white;
border:1px solid #aeaeae;
-webkit-border-radius:3px; -moz-border-radius:3px; border-radius:3px;
left:0px;
right:0px;
top:0px;
bottom:0px;
overflow:auto;
z-index:10;
}
div.namebox-popup div.oresize {
right:33%;
bottom: 4px;
width:33%;
height:4px;
max-width:33%;
max-height:4px;
cursor:n-resize;
border:0;
background-color:#9e9e9e;
}
div.acl-popup-content {
position:absolute;
background-color:white;
border:1px solid #aeaeae;
-webkit-border-radius:3px; -moz-border-radius:3px; border-radius:3px;
height:130px;
width:200px;
overflow:auto;
}
/*
* Clean Button
*/
a.marketCleanButton {
display:inline-block;
width:9px;
height:9px;
background:url('../images/close.png') !important;
background-color:transparent !important;
position:relative;
left:-14px;
}
a.marketCleanButton:hover, a.marketCleanButton:focus {
background-position:9px !important;
}
a.marketCleanButton span {
display:none !important;
}
/*
* Category explorer
*/
div.hikam_breadcrumb_explorer {
position:relative;
}
div.hikam_breadcrumb_explorer span.breadcrumb_expand_icon {
/* width:16px;
height:16px;*/
float:right;
color: #337ab7;
/* background-image:url('../images/icon-16/category.png');*/
}
.hikam_breadcrumb_explorer .hikam_category_explorer {
display:none;
position:absolute;
left:0;
top:28px;
min-height:250px;
max-width:100%;
min-width:50%;
background:white;
overflow:scroll;
border:1px solid #ccc;
z-index:60;
}
.hikam_breadcrumb_explorer:hover .hikam_category_explorer,
.hikam_breadcrumb_explorer.explorer_open .hikam_category_explorer {
display:block;
}
.hikam_breadcrumb_explorer.explorer_open .hikam_breadcrumb {
background-color:#c0d6ed;
}
#hikam_category_listing div.oTree,
#hikam_product_listing div.oTree {
width: 150px;
overflow: auto;
height:100%;
}
#hikam_category_listing div.category_explorer_btn_hide a,
#hikam_product_listing div.category_explorer_btn_hide a {
width:100%;
height:16px;
display:inline-block;
font-size:10px;
padding:3px 0px;
background:url('../images/category_hide.png') no-repeat right
#dae1e4 !important;
border-bottom:1px solid #adb7c4;
text-decoration: none;
color:#426ba4;
}
#hikam_category_listing div.category_explorer_btn_show,
#hikam_product_listing div.category_explorer_btn_show {
width:18px;
height:100%;
}
#hikam_category_listing div.category_explorer_btn_show a,
#hikam_product_listing div.category_explorer_btn_show a {
min-height:200px;
height:100%;
width:18px;
display:block;
background:url('../images/category_show.png') no-repeat left
center #dae1e4 !important;
border-right:1px solid #adb7c4;
}
#hikam_category_listing div.category_explorer_btn_show a span,
#hikam_product_listing div.category_explorer_btn_show a span {
display:none;
}
/*
*
*/
.hikamarket_section_container {
border:2px solid #ddd;
-webkit-border-radius:4px; -moz-border-radius:4px; border-radius:4px;
padding:0px;
margin-bottom:5px;
}
.hikamarket_section_toggle {
cursor: pointer;
background: url('../images/otree/nolines_minus.gif') no-repeat
right;
}
h3.hikamarket_section_toggle {
margin:0px;
padding:4px 6px;
}
.hikamarket_section_container > div {
margin:0px 3px;
}
.hikamarket_section_toggle {
background-color: #eaeaea;
}
.hikamarket_section_toggle:hover {
background-color: #dddddd;
}
.hikamarket_section_toggle.hk_closed {
background: #eaeaea url('../images/otree/nolines_plus.gif')
no-repeat right;
}
.hikamarket_section_toggle.hk_closed:hover {
background-color: #dddddd;
}
div.hk_collapsing {
overflow: hidden;
max-height: 0;
-webkit-transition: max-height .35s ease;
-o-transition: max-height .35s ease;
transition: max-height .35s ease;
}
div.hk_collapsing.open {
max-height:8000px;
overflow: visible;
}
div.hk_collapsed {
display:none;
}
.hkinput-group {
display:inline-block;
}
.hkinput-group > .hk-control {
margin:0px;
}
.hkinput-group-addon {
width: 1%;
white-space: nowrap;
vertical-align: middle;
padding: 5px 10px;
font-size: 14px;
font-weight: 400;
line-height: 1;
color: #555;
text-align: center;
background-color: #eee;
border: 1px solid #ccc;
border-radius: 4px;
}
.hkinput-group-addon:first-child {
border-right: 0;
border-top-right-radius: 0;
border-bottom-right-radius: 0;
}
.hkinput-group .hk-control:last-child, .hkinput-group-addon:last-child {
border-top-left-radius: 0;
border-bottom-left-radius: 0;
}
/*
* Infinity Button
*/
a.marketInfinityButton {
display:inline-block;
width:13px;
height:9px;
background:url('../images/infinity.png') transparent 0px 0px
!important;
position:relative;
left:-16px;
top:0px;
}
/* J3 Rule */
body.com_hikamarket a.marketInfinityButton {
left:-19px;
top:-4px;
}
a.marketInfinityButton:hover, a.marketInfinityButton:focus {
background-position:13px !important;
}
a.marketInfinityButton span {
display:none !important;
}
.hikamarket_product_quantity .input-append {
margin-bottom:0px;
}
ul.hikamarket_product_images a,
div#hikamarket_category_current_image a,
div#hikamarket_category_image_content a {
background-color:transparent !important;
}
ul.hikamarket_product_images .ui-sortable-placeholder {
border:1px dotted black;
visibility:visible !important;
width:50px;
height:50px !important;
}
ul.hikamarket_product_images .ui-sortable-placeholder * {
visibility:hidden;
}
ul.hikamarket_product_images,
ul.hikashop_uploader_images {
list-style-type:none;
margin:0;
padding:10px 0 0 0;
}
ul.hikamarket_product_images li {
display:inline-block;
position:relative;
margin-left: 3px !important;
}
.hikamarket_small_image_div {
display:inline-block;
}
.hikamarket_product_main_image_thumb {
display:block;
position:relative;
}
.hikamarket_small_image_div .hikamarket_image img {
max-width:50px;
max-height:50px;
}
div.hikashop_main_image_div,
div.hikashop_main_file_div {
position:relative;
}
div.hikashop_uploader_image_add,
div.hikashop_uploader_file_add {
/*
position:absolute;
top:5px;
right:5px;
*/
position:relative;
float:right;
}
.uploader_data_container {
clear:right;
}
ul.hikashop_uploader_images .ui-sortable-placeholder {
border:1px dotted black;
visibility:visible !important;
width:50px;
height:50px !important;
}
ul.hikashop_uploader_images .ui-sortable-placeholder * {
visibility:hidden;
}
/* */
div.hikashop_uploader_image_add span,div.hikashop_uploader_file_add span {
display:inline-block;
/* width:16px;height:16px; */
}
div.hikashop_uploader_image_add
span.hika_add_btn,div.hikashop_uploader_file_add
span.hika_add_btn,div.hikashop_uploader_image_add
span.hikam_add_btn,div.hikashop_uploader_file_add span.hikam_add_btn {
background-image:url(../images/icon-16/plus.png);
width:16px;height:16px;
}
div.hikashop_uploader_image_add
span.hika_upload_btn,div.hikashop_uploader_file_add
span.hika_upload_btn,div.hikashop_uploader_image_add
span.hikam_upload_btn,div.hikashop_uploader_file_add span.hikam_upload_btn
{
background-image:url(../images/icon-16/upload.png);
width:16px;height:16px;
}
div.hikashop_uploader_image_add
span.hika_link_btn,div.hikashop_uploader_file_add
span.hika_link_btn,div.hikashop_uploader_image_add
span.hikam_link_btn,div.hikashop_uploader_file_add span.hikam_link_btn {
background-image:url(../images/icon-16/link.png);
width:16px;height:16px;
}
/*
*
*/
div.hikamarket_product_file {
float:left;
width:220px;
min-height:30px;
margin:5px;
padding:3px;
/* border:1px solid #565656; */
border:1px solid #aaa;
/* padding:1px 5px 2px; */
-webkit-border-radius:4px; -moz-border-radius:4px; border-radius:4px;
background-color: #e4e4e4;
background-image: -webkit-gradient(linear, 50% 0%, 50% 100%,
color-stop(20%, #f4f4f4), color-stop(50%, #f0f0f0), color-stop(52%,
#e8e8e8), color-stop(100%, #eeeeee));
background-image: -webkit-linear-gradient(#f4f4f4 20%, #f0f0f0 50%,
#e8e8e8 52%, #eeeeee 100%);
background-image: -moz-linear-gradient(#f4f4f4 20%, #f0f0f0 50%, #e8e8e8
52%, #eeeeee 100%);
background-image: -o-linear-gradient(#f4f4f4 20%, #f0f0f0 50%, #e8e8e8
52%, #eeeeee 100%);
background-image: linear-gradient(#f4f4f4 20%, #f0f0f0 50%, #e8e8e8 52%,
#eeeeee 100%);
background-clip: padding-box;
box-shadow: 0 0 2px white inset, 0 1px 0 rgba(0, 0, 0, 0.05);
}
div.hikamarket_product_file:hover {
background-color: #f4f4f4;
background-image: none;
}
body.com_hikamarket div.hikamarket_product_file a img {
margin-bottom: 0px;
}
.hikamarket_product_file .deleteFile {
float:right;
}
#hikamarket_products_form .fullrow {
width:95%;
}
#hikamarket_product_variant_label span {
margin-left: 0.5em;
}
td.hikam_column_move {
cursor: move;
}
#hikamarket_product_variant_list tr.selectedVariant,
#hikamarket_product_variant_list tr.selectedVariant td {
background-color: #C1DAD6;
}
#hikamarket_product_variant_list tr.selectedVariant:hover,
#hikamarket_product_variant_list tr.selectedVariant:hover td {
background-color: #ACD1E9;
}
/*
* HikaShop pages
*/
.hikamarket_show_edit {
float:left;
}
.hikamarket_history_container {
overflow:auto;
max-height:180px;
}
/*
* Toggle
*/
div.toggle_loading {
width:16px;
height:16px;
display:inline-block;
}
div.toggle_onload {
width:16px;
height:16px;
display:inline-block;
background-image:url('../../com_hikashop/images/spinner.gif');
}
div.toggle_onload a {
display:none;
}
div.toggle_loading a.unpublish {
width:16px;
height:16px;
display:inline-block;
background-image:url('../images/icon-16/unpublish.png');
}
div.toggle_loading a.publish {
width:16px;
height:16px;
display:inline-block;
background-image:url('../images/icon-16/publish.png');
}
div.toggle_loading a.refresh {
width:16px;
height:16px;
display:inline-block;
background-image:url('../images/icon-16/refresh.png');
}
/*
* Gallery
*/
ul#hikaGallery {
list-style: none;
margin:0px;
position:relative;
top:0px;
bottom:0px;
left:0px;
right:0px;
outline:0px none;
padding:0px;
}
ul#hikaGallery li.hikaGalleryItem {
display: block;
float: left;
height: 125px;
}
ul#hikaGallery li.hikaGalleryItem .hikaGalleryPhoto {
position: relative;
float:left;
width:110px;
margin:5px 5px 5px 5px;
padding:3px;
text-decoration:none;
border:1px solid #efefef;
border-radius:4px;
box-shadow: 2px 2px 2px rgba(0,0,0,0.5);
background:white;
}
ul#hikaGallery li.hikaGalleryItem .hikaGalleryPhoto {
background:white;
color:black;
font-size:11px;
line-height:1.2em;
}
ul#hikaGallery li.hikaGalleryItem.selected .hikaGalleryPhoto {
background-color:#45a6e3 !important; /* #056eaf; */
}
ul#hikaGallery li.hikaGalleryItem .hikaGalleryPhoto img {
height:100px;
display:block;
margin:0px auto;
border:0px none;
}
ul#hikaGallery li.hikaGalleryItem .hikaGalleryPhoto .hikaGalleryChk {
position:absolute;
top:82px;
left:10px;
display:block;
margin:1px auto;
}
ul#hikaGallery li.hikaGalleryItem span.photo_name {
display: inline-block;
overflow:hidden;
white-space:nowrap;
width:100%;
}
ul#hikaGallery li.hikaGalleryItem div.hikaGalleryCommand {
display:none;
}
ul#hikaGallery li.hikaGalleryItem:hover .hikaGalleryPhoto {
z-index:20;
}
ul#hikaGallery li.hikaGalleryItem:hover div.hikaGalleryCommand {
display:block;
}
/*
* Vendor page
*/
.hikamarket_vendor_edit_page .hikamarket_add_vendoruser {
margin-bottom: 5px;
}
.hikamarket_vendor_edit_page .form-actions {
margin-top: 8px;
}
.hikamarket_vendor_edit_page fieldset.input {
padding-top:0px;
}
#hikamarket_vendor_page .hikamarket_vendor_fields table {
min-width:350px;
}
#hikamarket_vendor_page .hikamarket_vendor_image {
padding: 0px 10px 10px 0px;
}
/*
* Vendor listing
*/
.hikamarket_vendors_table {
width:100%;
}
.hikamarket_listing .hikamarket_listing_elem {
float:left;
width:100%;
}
.hikamarket_subcontainer {
padding-top:10px;
padding-bottom:10px;
}
.hikamarket_subcontainer_border {
border:1px solid;
}
.row-fluid .hikamarket_listing_column_1,
.row-fluid-7 .hikamarket_listing_column_1,
.row-fluid-8 .hikamarket_listing_column_1,
.row-fluid-10 .hikamarket_listing_column_1 {
margin-left: 0 !important;
clear:left;
}
/*
* pagination
*/
.hikamarket_listing_pagination {
color:#167e93;
font-size:11px;
text-align:center;
margin-top:25px;
clear:both;
padding-top:20px;
}
.hikamarket_listing_pagination ul.pagination {
text-align:center;
}
.hikamarket_listing_pagination .list-footer .limit {
color:#167e93;
font-weight:bold;
margin-bottom:5px;
}
.hikamarket_listing_pagination .list-footer .limit select {
width: 60px;
}
.hikamarket_listing_pagination .list-footer .limit .inputbox {
margin-left:10px;
border:1px solid #ccc;
color:#167e93;
}
.hikamarket_listing_pagination .list-footer .pagenav {
color:#14caec;
font-weight:bold;
background-color:#FFF;
padding-right:5px;
padding-left:5px;
padding-top:2px;
padding-bottom:2px;
border:1px solid #ccc;
margin-right : 2px;
margin-left : 2px;
}
.hikamarket_listing_pagination .list-footer a.pagenav {
color:#14caec;
background-color:#FFF;
}
.hikamarket_listing_pagination .list-footer a.pagenav:hover {
color:#fff;
background-color:#167e93;
}
.hikamarket_listing_pagination .list-footer span.pagenav {
color:#fff;
background-color:#167e93;
}
.hikamarket_listing_pagination .list-footer span.pagenav_text {
display:none;
}
.hikamarket_listing_pagination .list-footer .counter {
color:#666;
margin-top:15px;
}
.hikamarket_listing_pagination .hikashop_results_counter {
color:#666;
}
/**
* Panels
*/
.hikamarket_panel {
margin-bottom: 10px;
margin-right:4px;
background-color:#fff;
border: 1px solid #ddd;
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);
}
.hikamarket_panel_heading {
padding: 10px 15px;
border-bottom: 1px solid transparent;
border-top-right-radius: 3px;
border-top-left-radius: 3px;
color: #333;
background-color:#f0f0f0;
border-color:#cccccc;
}
.hikamarket_panel_body {
padding: 10px
}
.hikamarket_empty_chart {
width:100%;
text-align:center;
padding-top: 70px;
}
/**
* User Panel
*/
#hikamarket_user_form select.hikamarket_default_address_dropdown {
width:350px;
max-width:100%;
}
#hikamarket_user_form .hikam_edit {
float:right;
}
#hikamarket_user_form .hikam_edit span {
display:none;
}
#hikamarket_user_addresses_show .hikamarket_user_address,
#hikamarket_user_shipping_addresses_show .hikamarket_user_address,
#hikamarket_user_billing_addresses_show .hikamarket_user_address,
#hikamarket_user_addresses_show .hikashop_address_edition {
margin: 2px 5px 6px 0px;
padding:8px;
border:1px solid #9e9e9e;
background-color: #fdfdfd;
-webkit-border-radius: 3px; -moz-border-radius: 3px; border-radius: 3px;
}
#hikamarket_user_addresses_show .hikashop_address_edition h3 {
margin-top: 0px;
}
/**
* Order page
*/
div.hikamarket_order dl label {
font-weight: bold;
}
div.hikamarket_order_edit_block {
background-color: #f6f6f6;
padding:8px;
border:1px solid #aeaeae;
-webkit-border-radius: 3px; -moz-border-radius: 3px; border-radius: 3px;
margin:2px;
}
/**
* Tabs
*/
ul.hikam_tabs {
list-style:none !important;
margin:2px 0px 15px 0px;
border-bottom: 1px solid #ddd;
width:100%;
}
ul.hikam_tabs:before,
ul.hikam_tabs:after {
display: table;
content: "";
line-height: 0;
}
ul.hikam_tabs:after {
clear: both;
}
ul.hikam_tabs > li {
float:left;
margin-bottom:-1px !important;
}
ul.hikam_tabs > li > a {
display:block;
padding: 8px 12px;
line-height: 18px;
border: 1px solid transparent;
-webkit-border-radius: 4px 4px 0 0;
-moz-border-radius: 4px 4px 0 0;
border-radius: 4px 4px 0 0;
text-decoration:none;
}
ul.hikam_tabs > li > a:hover,
ul.hikam_tabs > li > a:focus {
border-color: #eee #eee #ddd;
}
ul.hikam_tabs > li.active > a,
ul.hikam_tabs > li.active > a:hover,
ul.hikam_tabs > li.active > a:focus {
color: #555;
background-color:#fff;
border: 1px solid #ddd;
border-bottom-color: transparent;
cursor: default;
}
/**
* Labels & Order Labels
*/
table.order_statistics td {
text-align:center;
}
table.order_statistics td.order_statistics_active {
background-color: #BFE3F5;
}
table.order_statistics span.value {
display:block;
font-size:1.4em;
}
table.order_statistics a {
text-decoration:none;
display:inline-block;
color:black;
}
span.hk-label,
span.order-label {
border-radius: 3px;
display: inline-block;
padding: 2px 4px;
font-size: 11px;
font-weight: bold;
line-height: 14px;
color: #FFF;
vertical-align: baseline;
white-space: nowrap;
text-shadow: 0px -1px 0px rgba(0, 0, 0, 0.25);
background-color: #999;
}
span.hk-label-grey,
span.order-label-created {
background-color: #999; /* grey */
}
span.hk-label-green,
span.order-label-confirmed {
background-color: #468847; /* green */
}
span.hk-label-blue,
span.order-label-shipped {
background-color: #3a87ad; /* blue */
}
span.hk-label-orange,
span.order-label-cancelled {
background-color: #c67605; /* orange */
}
span.hk-label-red,
span.order-label-refunded {
background-color: #b94a48; /* red */
}
span.hk-label-black,
span.order-label-all {
background-color: #000000; /* black */
}
span.hk-label-light,
span.order-label-pending {
background-color: #5bc0de; /* light blue */
}
.hk-icon-green {
color:#468847;
}
.hk-icon-blue {
color:#3a87ad;
}
.hk-icon-orange {
color:#c67605;
}
.hk-icon-red {
color:#b94a48;
}
/*
* Ajax loading
*/
div.hikamarket_ajax_loading { position:relative; }
div.hikamarket_ajax_loading div.hikamarket_ajax_loading_elem,
div.hikamarket_ajax_loading div.hikamarket_ajax_loading_spinner {
position:absolute;
z-index:999;
top:0px;
left:0px;
right:0px;
bottom:0px;
}
div.hikamarket_ajax_loading div.hikamarket_ajax_loading_elem {
background-color:#ffffff;
opacity:0.5;
filter:alpha(opacity=50);
}
div.hikamarket_ajax_loading div.hikamarket_ajax_loading_spinner {
background:url('../images/spinner_02.gif') no-repeat center;
}
div.hikamarket_ajax_loading
div.hikamarket_ajax_loading_spinner.small_spinner {
background:url('../images/spinner.gif') no-repeat center;
}
div.hikamarket_order_edit_block.hikamarket_ajax_loading { min-height:50px;
}
/*
* Joomla 3 specific rules
*/
div.chzn-container {
margin-bottom:9px;
}
body.com_hikamarket div.nameboxes {
margin-bottom:9px;
}
body.com_hikamarket div.namebox-popup {
top:-9px;
}
body.com_hikamarket button.btn,
body.com_hikamarket a img {
margin-bottom:9px;
}
body.com_hikamarket thead a img {
margin-bottom:0px;
}
body.com_hikamarket .hikamarket_product_qtyperorder .input-append
button.btn {
margin-bottom:0px;
}
body.com_hikamarket #hikamarket_products_form .volumeselect,
body.com_hikamarket #hikamarket_products_form .weightselect {
width:80px;
}
body.com_hikamarket #hikamarket_products_form .hikam_acl,
body.com_hikamarket #hikamarket_products_form .hikam_qty {
text-align:center;
}
body.com_hikamarket .hikamarket_product_salestart button.btn {
margin-bottom:0px;
}
#hikamarket_products_form .input-append {
display:inline-block
}
#hikamarket_products_form .hikamarket_product_salestart .input-append {
vertical-align:middle;
}
#hikamarket_shipping_restrictions select,
#hikamarket_payment_restrictions select {
min-width: 100px;
}
PK�{�[wtW�css/index.htmlnu�[���<html><body></body></html>PK�{�[6�i�"8"8css/leaflet.cssnu�[���/**
* @package HikaMarket for Joomla!
* @version 3.1.1
* @author Obsidev S.A.R.L.
* @copyright (C) 2011-2020 OBSIDEV. All rights reserved.
* @license GNU/GPLv3 http://www.gnu.org/licenses/gpl-3.0.html
*/
/* required styles */
.leaflet-pane,
.leaflet-tile,
.leaflet-marker-icon,
.leaflet-marker-shadow,
.leaflet-tile-container,
.leaflet-pane > svg,
.leaflet-pane > canvas,
.leaflet-zoom-box,
.leaflet-image-layer,
.leaflet-layer {
position: absolute;
left: 0;
top: 0;
}
.leaflet-container {
overflow: hidden;
}
.leaflet-tile,
.leaflet-marker-icon,
.leaflet-marker-shadow {
-webkit-user-select: none;
-moz-user-select: none;
user-select: none;
-webkit-user-drag: none;
}
/* Safari renders non-retina tile on retina better with this, but Chrome is
worse */
.leaflet-safari .leaflet-tile {
image-rendering: -webkit-optimize-contrast;
}
/* hack that prevents hw layers "stretching" when loading new
tiles */
.leaflet-safari .leaflet-tile-container {
width: 1600px;
height: 1600px;
-webkit-transform-origin: 0 0;
}
.leaflet-marker-icon,
.leaflet-marker-shadow {
display: block;
}
/* .leaflet-container svg: reset svg max-width decleration shipped in
Joomla! (joomla.org) 3.x */
/* .leaflet-container img: map is broken in FF if you have max-width: 100%
on tiles */
.leaflet-container .leaflet-overlay-pane svg,
.leaflet-container .leaflet-marker-pane img,
.leaflet-container .leaflet-shadow-pane img,
.leaflet-container .leaflet-tile-pane img,
.leaflet-container img.leaflet-image-layer,
.leaflet-container .leaflet-tile {
max-width: none !important;
max-height: none !important;
}
.leaflet-container.leaflet-touch-zoom {
-ms-touch-action: pan-x pan-y;
touch-action: pan-x pan-y;
}
.leaflet-container.leaflet-touch-drag {
-ms-touch-action: pinch-zoom;
/* Fallback for FF which doesn't support pinch-zoom */
touch-action: none;
touch-action: pinch-zoom;
}
.leaflet-container.leaflet-touch-drag.leaflet-touch-zoom {
-ms-touch-action: none;
touch-action: none;
}
.leaflet-container {
-webkit-tap-highlight-color: transparent;
}
.leaflet-container a {
-webkit-tap-highlight-color: rgba(51, 181, 229, 0.4);
}
.leaflet-tile {
filter: inherit;
visibility: hidden;
}
.leaflet-tile-loaded {
visibility: inherit;
}
.leaflet-zoom-box {
width: 0;
height: 0;
-moz-box-sizing: border-box;
box-sizing: border-box;
z-index: 800;
}
/* workaround for https://bugzilla.mozilla.org/show_bug.cgi?id=888319 */
.leaflet-overlay-pane svg {
-moz-user-select: none;
}
.leaflet-pane { z-index: 400; }
.leaflet-tile-pane { z-index: 200; }
.leaflet-overlay-pane { z-index: 400; }
.leaflet-shadow-pane { z-index: 500; }
.leaflet-marker-pane { z-index: 600; }
.leaflet-tooltip-pane { z-index: 650; }
.leaflet-popup-pane { z-index: 700; }
.leaflet-map-pane canvas { z-index: 100; }
.leaflet-map-pane svg { z-index: 200; }
.leaflet-vml-shape {
width: 1px;
height: 1px;
}
.lvml {
behavior: url(#default#VML);
display: inline-block;
position: absolute;
}
/* control positioning */
.leaflet-control {
position: relative;
z-index: 800;
pointer-events: visiblePainted; /* IE 9-10 doesn't have auto */
pointer-events: auto;
}
.leaflet-top,
.leaflet-bottom {
position: absolute;
z-index: 1000;
pointer-events: none;
}
.leaflet-top {
top: 0;
}
.leaflet-right {
right: 0;
}
.leaflet-bottom {
bottom: 0;
}
.leaflet-left {
left: 0;
}
.leaflet-control {
float: left;
clear: both;
}
.leaflet-right .leaflet-control {
float: right;
}
.leaflet-top .leaflet-control {
margin-top: 10px;
}
.leaflet-bottom .leaflet-control {
margin-bottom: 10px;
}
.leaflet-left .leaflet-control {
margin-left: 10px;
}
.leaflet-right .leaflet-control {
margin-right: 10px;
}
/* zoom and fade animations */
.leaflet-fade-anim .leaflet-tile {
will-change: opacity;
}
.leaflet-fade-anim .leaflet-popup {
opacity: 0;
-webkit-transition: opacity 0.2s linear;
-moz-transition: opacity 0.2s linear;
transition: opacity 0.2s linear;
}
.leaflet-fade-anim .leaflet-map-pane .leaflet-popup {
opacity: 1;
}
.leaflet-zoom-animated {
-webkit-transform-origin: 0 0;
-ms-transform-origin: 0 0;
transform-origin: 0 0;
}
.leaflet-zoom-anim .leaflet-zoom-animated {
will-change: transform;
}
.leaflet-zoom-anim .leaflet-zoom-animated {
-webkit-transition: -webkit-transform 0.25s cubic-bezier(0,0,0.25,1);
-moz-transition: -moz-transform 0.25s cubic-bezier(0,0,0.25,1);
transition: transform 0.25s cubic-bezier(0,0,0.25,1);
}
.leaflet-zoom-anim .leaflet-tile,
.leaflet-pan-anim .leaflet-tile {
-webkit-transition: none;
-moz-transition: none;
transition: none;
}
.leaflet-zoom-anim .leaflet-zoom-hide {
visibility: hidden;
}
/* cursors */
.leaflet-interactive {
cursor: pointer;
}
.leaflet-grab {
cursor: -webkit-grab;
cursor: -moz-grab;
cursor: grab;
}
.leaflet-crosshair,
.leaflet-crosshair .leaflet-interactive {
cursor: crosshair;
}
.leaflet-popup-pane,
.leaflet-control {
cursor: auto;
}
.leaflet-dragging .leaflet-grab,
.leaflet-dragging .leaflet-grab .leaflet-interactive,
.leaflet-dragging .leaflet-marker-draggable {
cursor: move;
cursor: -webkit-grabbing;
cursor: -moz-grabbing;
cursor: grabbing;
}
/* marker & overlays interactivity */
.leaflet-marker-icon,
.leaflet-marker-shadow,
.leaflet-image-layer,
.leaflet-pane > svg path,
.leaflet-tile-container {
pointer-events: none;
}
.leaflet-marker-icon.leaflet-interactive,
.leaflet-image-layer.leaflet-interactive,
.leaflet-pane > svg path.leaflet-interactive {
pointer-events: visiblePainted; /* IE 9-10 doesn't have auto */
pointer-events: auto;
}
/* visual tweaks */
.leaflet-container {
background: #ddd;
outline: 0;
}
.leaflet-container a {
color: #0078A8;
}
.leaflet-container a.leaflet-active {
outline: 2px solid orange;
}
.leaflet-zoom-box {
border: 2px dotted #38f;
background: rgba(255,255,255,0.5);
}
/* general typography */
.leaflet-container {
font: 12px/1.5 "Helvetica Neue", Arial, Helvetica, sans-serif;
}
/* general toolbar styles */
.leaflet-bar {
box-shadow: 0 1px 5px rgba(0,0,0,0.65);
border-radius: 4px;
}
.leaflet-bar a,
.leaflet-bar a:hover {
background-color: #fff;
border-bottom: 1px solid #ccc;
width: 26px;
height: 26px;
line-height: 26px;
display: block;
text-align: center;
text-decoration: none;
color: black;
}
.leaflet-bar a,
.leaflet-control-layers-toggle {
background-position: 50% 50%;
background-repeat: no-repeat;
display: block;
}
.leaflet-bar a:hover {
background-color: #f4f4f4;
}
.leaflet-bar a:first-child {
border-top-left-radius: 4px;
border-top-right-radius: 4px;
}
.leaflet-bar a:last-child {
border-bottom-left-radius: 4px;
border-bottom-right-radius: 4px;
border-bottom: none;
}
.leaflet-bar a.leaflet-disabled {
cursor: default;
background-color: #f4f4f4;
color: #bbb;
}
.leaflet-touch .leaflet-bar a {
width: 30px;
height: 30px;
line-height: 30px;
}
.leaflet-touch .leaflet-bar a:first-child {
border-top-left-radius: 2px;
border-top-right-radius: 2px;
}
.leaflet-touch .leaflet-bar a:last-child {
border-bottom-left-radius: 2px;
border-bottom-right-radius: 2px;
}
/* zoom control */
.leaflet-control-zoom-in,
.leaflet-control-zoom-out {
font: bold 18px 'Lucida Console', Monaco, monospace;
text-indent: 1px;
}
.leaflet-touch .leaflet-control-zoom-in, .leaflet-touch
.leaflet-control-zoom-out {
font-size: 22px;
}
/* layers control */
.leaflet-control-layers {
box-shadow: 0 1px 5px rgba(0,0,0,0.4);
background: #fff;
border-radius: 5px;
}
.leaflet-control-layers-toggle {
background-image: url(../images/leaflet/layers.png);
width: 36px;
height: 36px;
}
.leaflet-retina .leaflet-control-layers-toggle {
background-image: url(../images/leaflet/layers-2x.png);
background-size: 26px 26px;
}
.leaflet-touch .leaflet-control-layers-toggle {
width: 44px;
height: 44px;
}
.leaflet-control-layers .leaflet-control-layers-list,
.leaflet-control-layers-expanded .leaflet-control-layers-toggle {
display: none;
}
.leaflet-control-layers-expanded .leaflet-control-layers-list {
display: block;
position: relative;
}
.leaflet-control-layers-expanded {
padding: 6px 10px 6px 6px;
color: #333;
background: #fff;
}
.leaflet-control-layers-scrollbar {
overflow-y: scroll;
overflow-x: hidden;
padding-right: 5px;
}
.leaflet-control-layers-selector {
margin-top: 2px;
position: relative;
top: 1px;
}
.leaflet-control-layers label {
display: block;
}
.leaflet-control-layers-separator {
height: 0;
border-top: 1px solid #ddd;
margin: 5px -10px 5px -6px;
}
/* Default icon URLs */
.leaflet-default-icon-path {
background-image: url(../images/leaflet/marker-icon.png);
}
/* attribution and scale controls */
.leaflet-container .leaflet-control-attribution {
background: #fff;
background: rgba(255, 255, 255, 0.7);
margin: 0;
}
.leaflet-control-attribution,
.leaflet-control-scale-line {
padding: 0 5px;
color: #333;
}
.leaflet-control-attribution a {
text-decoration: none;
}
.leaflet-control-attribution a:hover {
text-decoration: underline;
}
.leaflet-container .leaflet-control-attribution,
.leaflet-container .leaflet-control-scale {
font-size: 11px;
}
.leaflet-left .leaflet-control-scale {
margin-left: 5px;
}
.leaflet-bottom .leaflet-control-scale {
margin-bottom: 5px;
}
.leaflet-control-scale-line {
border: 2px solid #777;
border-top: none;
line-height: 1.1;
padding: 2px 5px 1px;
font-size: 11px;
white-space: nowrap;
overflow: hidden;
-moz-box-sizing: border-box;
box-sizing: border-box;
background: #fff;
background: rgba(255, 255, 255, 0.5);
}
.leaflet-control-scale-line:not(:first-child) {
border-top: 2px solid #777;
border-bottom: none;
margin-top: -2px;
}
.leaflet-control-scale-line:not(:first-child):not(:last-child) {
border-bottom: 2px solid #777;
}
.leaflet-touch .leaflet-control-attribution,
.leaflet-touch .leaflet-control-layers,
.leaflet-touch .leaflet-bar {
box-shadow: none;
}
.leaflet-touch .leaflet-control-layers,
.leaflet-touch .leaflet-bar {
border: 2px solid rgba(0,0,0,0.2);
background-clip: padding-box;
}
/* popup */
.leaflet-popup {
position: absolute;
text-align: center;
margin-bottom: 20px;
}
.leaflet-popup-content-wrapper {
padding: 1px;
text-align: left;
border-radius: 12px;
}
.leaflet-popup-content {
margin: 13px 19px;
line-height: 1.4;
}
.leaflet-popup-content p {
margin: 18px 0;
}
.leaflet-popup-tip-container {
width: 40px;
height: 20px;
position: absolute;
left: 50%;
margin-left: -20px;
overflow: hidden;
pointer-events: none;
}
.leaflet-popup-tip {
width: 17px;
height: 17px;
padding: 1px;
margin: -10px auto 0;
-webkit-transform: rotate(45deg);
-moz-transform: rotate(45deg);
-ms-transform: rotate(45deg);
transform: rotate(45deg);
}
.leaflet-popup-content-wrapper,
.leaflet-popup-tip {
background: white;
color: #333;
box-shadow: 0 3px 14px rgba(0,0,0,0.4);
}
.leaflet-container a.leaflet-popup-close-button {
position: absolute;
top: 0;
right: 0;
padding: 4px 4px 0 0;
border: none;
text-align: center;
width: 18px;
height: 14px;
font: 16px/14px Tahoma, Verdana, sans-serif;
color: #c3c3c3;
text-decoration: none;
font-weight: bold;
background: transparent;
}
.leaflet-container a.leaflet-popup-close-button:hover {
color: #999;
}
.leaflet-popup-scrolled {
overflow: auto;
border-bottom: 1px solid #ddd;
border-top: 1px solid #ddd;
}
.leaflet-oldie .leaflet-popup-content-wrapper {
zoom: 1;
}
.leaflet-oldie .leaflet-popup-tip {
width: 24px;
margin: 0 auto;
-ms-filter: "progid:DXImageTransform.Microsoft.Matrix(M11=0.70710678,
M12=0.70710678, M21=-0.70710678, M22=0.70710678)";
filter: progid:DXImageTransform.Microsoft.Matrix(M11=0.70710678,
M12=0.70710678, M21=-0.70710678, M22=0.70710678);
}
.leaflet-oldie .leaflet-popup-tip-container {
margin-top: -1px;
}
.leaflet-oldie .leaflet-control-zoom,
.leaflet-oldie .leaflet-control-layers,
.leaflet-oldie .leaflet-popup-content-wrapper,
.leaflet-oldie .leaflet-popup-tip {
border: 1px solid #999;
}
/* div icon */
.leaflet-div-icon {
background: #fff;
border: 1px solid #666;
}
/* Tooltip */
/* Base styles for the element that has a tooltip */
.leaflet-tooltip {
position: absolute;
padding: 6px;
background-color: #fff;
border: 1px solid #fff;
border-radius: 3px;
color: #222;
white-space: nowrap;
-webkit-user-select: none;
-moz-user-select: none;
-ms-user-select: none;
user-select: none;
pointer-events: none;
box-shadow: 0 1px 3px rgba(0,0,0,0.4);
}
.leaflet-tooltip.leaflet-clickable {
cursor: pointer;
pointer-events: auto;
}
.leaflet-tooltip-top:before,
.leaflet-tooltip-bottom:before,
.leaflet-tooltip-left:before,
.leaflet-tooltip-right:before {
position: absolute;
pointer-events: none;
border: 6px solid transparent;
background: transparent;
content: "";
}
/* Directions */
.leaflet-tooltip-bottom {
margin-top: 6px;
}
.leaflet-tooltip-top {
margin-top: -6px;
}
.leaflet-tooltip-bottom:before,
.leaflet-tooltip-top:before {
left: 50%;
margin-left: -6px;
}
.leaflet-tooltip-top:before {
bottom: 0;
margin-bottom: -12px;
border-top-color: #fff;
}
.leaflet-tooltip-bottom:before {
top: 0;
margin-top: -12px;
margin-left: -6px;
border-bottom-color: #fff;
}
.leaflet-tooltip-left {
margin-left: -6px;
}
.leaflet-tooltip-right {
margin-left: 6px;
}
.leaflet-tooltip-left:before,
.leaflet-tooltip-right:before {
top: 50%;
margin-top: -6px;
}
.leaflet-tooltip-left:before {
right: 0;
margin-right: -12px;
border-left-color: #fff;
}
.leaflet-tooltip-right:before {
left: 0;
margin-left: -12px;
border-right-color: #fff;
}
PK�{�[��9%
css/otree.cssnu�[���/**
* @package HikaMarket for Joomla!
* @version 3.1.1
* @author Obsidev S.A.R.L.
* @copyright (C) 2011-2020 OBSIDEV. All rights reserved.
* @license GNU/GPLv3 http://www.gnu.org/licenses/gpl-3.0.html
*/
.oTree {
font-family:Verdana, Geneva, Arial, Helvetica, sans-serif;
font-size:11px;
color:#666;
white-space:nowrap;
line-height:normal;
text-align:left;
}
.oTree img {
border:0px;
vertical-align:middle;
margin:0px !important;
}
.oTree input {
border:0px;
}
.oTree a img {
margin:0px !important;
}
.oTree input[type="checkbox"] {
vertical-align:middle;
margin:0px 2px 0px 0px;
}
.oTree a, .oTree span {
color:#333;
text-decoration:none !important;
font-size:9px;
}
.oTree a.node, .oTree span.node {
white-space:nowrap;
padding:1px 2px 1px 2px;
}
.oTree a.node:hover, .oTree a.nodeSel:hover {
color:#333;
text-decoration:underline !important;
}
.oTree a.nodeSel {
background-color:#c0d2ec;
white-space:nowrap;
padding:1px 2px 1px 2px;
}
.oTree .clip {
/* overflow: hidden; */
}
.oresize {
max-width:0;
max-height:0;
border-bottom:15px solid #aeaeae;
border-left:15px solid transparent;
right:0;
bottom:0;
cursor:se-resize;
z-index:50;
}
.oTree .e1 { margin-left:18px; display:inline; }
.oTree .e2 { margin-left:36px; display:inline; }
.oTree .e3 { margin-left:54px; display:inline; }
.oTree .e4 { margin-left:72px; display:inline; }
.oTree .e5 { margin-left:90px; display:inline; }
.oTree .e6 { margin-left:108px; display:inline; }
.oList > ul { margin:0 !important; padding: 0 !important; }
.oList li { display: list-item; list-style: none; margin:0px; padding: 0px;
}
.oList a { display: block; text-decoration: none; padding: 5px 6px; }
.oList li span { display: block; text-decoration: none; padding: 5px 6px;
}
.oList a:hover, .oList a.sel { background-color:#0066CC; color: white;
text-decoration:none; }
.oList em { text-decoration:none; font-weight: bold; font-style: normal; }
.oList table.oListTable { width: 100%; }
.oList table.oListTable th { background-color: #eaeaea; }
.oList tr { }
.oList td { border-top: 1px solid #d0d0d0; padding: 4px; }
.oList tr.oListLine { }
.oList tr.oListLine:hover { cursor:pointer; background-color:#0066CC;
color: white; text-decoration:none; }
.oList tr.oListLine:hover td { background-color:#0066CC; }
.oList li.oListSelected a { background-color:#289CC9; color: white;
text-decoration:none; }
.oList tr.oListSelected { background-color:#289CC9; color: white;
text-decoration:none; }
.oList tr.oListSelected td { background-color:#289CC9; }
.oList tr.oListBlocked { background-color:#f6f6f6; }
.oList li.oListLoadMore,
.oList tr.oListLoadMore td { height: 16px;
background:url('../images/otree/loading.gif') no-repeat center;
}
PK�{�[��"A��css/rtl.cssnu�[���/**
* @package HikaMarket for Joomla!
* @version 3.1.1
* @author Obsidev S.A.R.L.
* @copyright (C) 2011-2020 OBSIDEV. All rights reserved.
* @license GNU/GPLv3 http://www.gnu.org/licenses/gpl-3.0.html
*/
/**
* Right To Left CSS File
*/
fieldset.hikam_field .hikam_edit {
float:left;
}
#hikam_category_listing div.category_explorer_btn_show a,
#hikam_product_listing div.category_explorer_btn_show a {
background:#dae1e4 !important;
}
PK�{�[��>B��css/tooltip.cssnu�[���/**
* @package HikaMarket for Joomla!
* @version 3.1.1
* @author Obsidev S.A.R.L.
* @copyright (C) 2011-2020 OBSIDEV. All rights reserved.
* @license GNU/GPLv3 http://www.gnu.org/licenses/gpl-3.0.html
*/
.hk-tooltip {
position: absolute;
z-index: 1030;
display: block;
font-size: 11px;
line-height: 1.4;
opacity: 0;
filter: alpha(opacity=0);
visibility: visible;
}
.hk-tooltip.in {
opacity: 0.8;
filter: alpha(opacity=80);
}
.hk-tooltip.top {
padding: 5px 0;
margin-top: -3px;
}
.hk-tooltip.right {
padding: 0 5px;
margin-left: 3px;
}
.hk-tooltip.bottom {
padding: 5px 0;
margin-top: 3px;
}
.hk-tooltip.left {
padding: 0 5px;
margin-left: -3px;
}
.hk-tooltip-inner {
max-width: 200px;
padding: 8px;
color: #ffffff;
text-align: left;
text-decoration: none;
background-color: #000000;
-webkit-border-radius: 4px;
-moz-border-radius: 4px;
border-radius: 4px;
}
.hk-tooltip-arrow {
position: absolute;
width: 0;
height: 0;
border-color: transparent;
border-style: solid;
}
.hk-tooltip.top .hk-tooltip-arrow {
bottom: 0;
left: 50%;
margin-left: -5px;
border-top-color: #000000;
border-width: 5px 5px 0;
}
.hk-tooltip.right .hk-tooltip-arrow {
top: 50%;
left: 0;
margin-top: -5px;
border-right-color: #000000;
border-width: 5px 5px 5px 0;
}
.hk-tooltip.left .hk-tooltip-arrow {
top: 50%;
right: 0;
margin-top: -5px;
border-left-color: #000000;
border-width: 5px 0 5px 5px;
}
.hk-tooltip.bottom .hk-tooltip-arrow {
top: 0;
left: 50%;
margin-left: -5px;
border-bottom-color: #000000;
border-width: 0 5px 5px;
}
PK�{�[z���images/arrow_menu.pngnu�[����PNG
IHDRo�?sRGB���bKGD������� pHYs��tIME�%���LIDAT(��1
�0O}��ruI!
�u!K�^�d/'��h^@K����?]�/�����'i�|��w�Ju�*��T.�ƿ7BIEND�B`�PK�{�[Ә+h��images/category_hide.pngnu�[����PNG
IHDRrP6�tEXtSoftwareAdobe
ImageReadyq�e<�IDATxڜT�OA��'�V
�Ѡ�Hc���<x�/�Y$=��o�x7&^A@1A�(B��X�BK�����fv�.$��l�쾝7�|�y�p��.B
�>ʄ
BV�>�c�X����`��j��R�W����t����!�ݲ$UU���S����^������\2�aA���4
��G+U�Sw��q�V�E��!k4�4��ib���^x>ó��i[n��e�~{���J��kjc+���C�٥lm[���'
X�Q���'Z��a���$ԭ�,��-��Og��s��8w"��}�XY�*I&�(wSoV�TJ�4���bnE�#����o[�L�D�qy�v����SV�r�~:9��?��5qq��g�����sK�vٌ����X��=��w&դ�̙e۸=z�6�ª�길{�:�{��
~������0�<�
�ip<|0���2l�Cg&���cҎ6���*h��<R��͔v�Ԋ�����M*���ߠ��({"'E5�6
�a�P�)�SU����V�}&�N��eb[�8Œ5�^Q���_��}t�'��L6�>Ct��7��k>]a6m?�y=�W�^�iܻ3�O������$��Fg��m5�7�[��s��L�a��U[���<M@#�#����}9
�IEND�B`�PK�{�[K�eU��images/category_show.pngnu�[����PNG
IHDR,lK8�tEXtSoftwareAdobe
ImageReadyq�e<\IDATxڴV�OQ���+�R�ZR�%
�WD�D���ƿ����M<h��h��PT
(`��n�_��-�Я-�f�Λ�~ofvf:��
��`�E��8���LcV�߰,덻O�{UM��Ur-�0Ͷp8�@�q�q�ُh�qQS���@��@�p�m�u�ˌ1�p6���L
�G��!%�b\*�qOO1M�L7L���^�m����(r�9���X ��i@��pHV��yj�/Պ8$UƠ�K(w���QGϪ���}t1(���D�n��w_V���rf���]�q�s�_:�r�'����l�v�hn���X�"�m2
����W��H����7��W�BP�1��`H�L�vD�Fa�*�?0
���P��
��ޡə%D�d��AQ$��ۉ��0-�3��P=�w�o�`O�'�̯�[��5�D|~��C��a�,����ӝ-�$�W�N�0�
�8����'��D���J����j
�s�h
1�v�ݧ2�\�F�X�?�8��Y�#�=���'�vV-�I�p��Utu��ҹ>�^9�X���cۅ旉
����L!�s��F/�,�7j��Q5ݓ5]�,7��w�j*�l�쮉9���we�
�����:�>{"����k:�G��"/��v�=�v�m;
_4�p�k�I4X! 1��x��Y&���Uu��9<
ʐ85ނH}R���*U�Ȱ�\"��~n�V{�x�M�j�<���l��S+?֟�?/l��O_�k멉���d���
���yI���P���]]XL~y��"���o�x;
+���E̛�q���|��:)&IEND�B`�PK�{�[H���!!images/close.pngnu�[����PNG
IHDR �msRGB���bKGD���̿ pHYs��tIME�
26d���IDAT(�e���
�x���Jq��}���C�f9Il����j0�fJ�O��
U��-U�LuI,��5@:��oUn@�Z�z��E�Ie�h�z���T��1wl�t��s�b�gX��%�pN�O��E5K}�ȡz���T�K���n��dž?��[ʏ
�\IEND�B`�PK�{�[���images/edit.pngnu�[����PNG
IHDR �msRGB���bKGD��#2 pHYs��tIME�5+{�H��IDAT(ύ��
�
Eы;3�E�
�$3d/G/&�A�Z�AGغ����bp�f��L�&[l[��P����ԝ6��95
��V�:}O=S�'R_���咤.
RP����Dǃڳ㾥 *[J�ywl:���ZIEND�B`�PK�{�[pljY��images/icon-14/height.pngnu�[����PNG
IHDRH-� pHYs��
cHRMz%������u0�`:�o�_�FTIDATx�\�MKTa��s��w���yA3B2ˍcV5�e\��4ABKn~��@�"4Zd��h��M&jh
%F�@�����3��H�p8���_h�9B�K����i�Zk����XY]]i��o�<�0qb�)%�e
`�uy�H|hinn���ml\+
�e��|&���v���Γ����\.G(:����m�~�>�����獍J�#Ӳdв(..�{���e.��� !�0�r�lb��䐾��ir||���5�m37?�PSS�}��*�lj��q�D�'�鏿m۾�pdDW�*��q�zwtT�MMM��ú����J�RG���Rj��ޘ�,./����J�,
H)M�N��~Cۇc|I&1�@J�(
4�@
�њ�Ճ��h�GH)ǹdHyU�R�je��V^ˣ�sw~vuv�z�G�/�i�d<�o:9T�B�$S��]\Z�Z[_�D[�Uth�����^���rjz:q��?����!��Xl�k2���8*B�D*_���z�[ZrH0��VWw!�� �i��R��}����;溹�������p8�������<��;�]���.IEND�B`�PK�{�[^���images/icon-14/hikamarket.pngnu�[����PNG
IHDRH-�tEXtSoftwareAdobe
ImageReadyq�e<LIDATx�l�O(DQ��7fIjR��PC���QXLʟJ$+ek�b�YXhj6lԔ���,d!֒�(��!�W�?e|O�^�^�֧[��s�"��U'��#�yd�
��f�|Q��Z��<�@D}6p�/�i�bV�?�>�54cW^�/��*��X?�q� ��D4����_j�N�5��.��Rc��5���
����P�:b5�T^�o�V�pj���؍>�A�/�G=��w��T���9����`����]���9�3a��T��x�=<�q_�(����ms8�u�ņ�^u��H�Jq�U'��g���?=O;��-K�J ^��IEND�B`�PK�{�[wtW�images/icon-14/index.htmlnu�[���<html><body></body></html>PK�{�[�b��images/icon-14/length.pngnu�[����PNG
IHDRH-� pHYs��
cHRMz%������u0�`:�o�_�F`IDATx�\R�KSq���nwn��D�2�
g��4�=HFφ
�$ B��"D��!A�
����!ˇ�ӭ҃FS�|p⮻���B:�Áχs��Č�ED@��8� �D�"B�0hyee�����T*UT@��B�OLTK��/.~���h�m��L���,�><<,Wy����DoO�@�\����$�I�V��>.-m��õ�L梔r߭�£����tz�r_�5"bR�����˲`�6�n7��"����z�����ohh��Ϧ�NI]�˦i�q"�&�8;�=}09�
����"CC_��lR�uw}0��R
�}"B�X\�4Mw~����[X83�P(�@��i��i��r���9*|��(���# ���8�������GAՑo��0��|Z��(R�%3�=V>�~ͬ��S�vw'�0@�냃cRQ�`oooM�6&��v�����!���U�GF^�r�|���n*�\������LG$�y�|�s��|�D�P(T�jz:���3P�d�<�%��
�q�忘U"��B�m*�!��~)nV��p,���po|�dŞJ�7���wIEND�B`�PK�{�[�g(�BBimages/icon-14/move.pngnu�[����PNG
IHDR 6��
pHYs��
cHRMz%������u0�`:�o�_�F�IDATx�,�=kTA�wΙ��ܽ� &��v���A�paA�T�V��&�ۙ?�
��"���V*V�E"�%��{���c���H)!�"�蜻D6��X�S�5Ơ�k0�<ϷkU�DHUo�?\ϲl�Z�g�F�&
U���2l��!�CR��"�1Dl��(�@մ����o_�����D�\��mX�T�k�����n�s2��1�'�����JU��c�07l�{�v�/E�F�y���i5�D��t�8�SJ�ރ�aȜ��^����
�B����9H%o�<���h�,k�*���zJ����ѓ�>�C��sV�L��{P]O"�dniy����,�Ĵ���A��e3���!F��u��
":�̬�v&�(� ��U��R�?����{�P��T����끙�b|c�S�H����⍍�$IEND�B`�PK�{�[Ƿ����images/icon-14/width.pngnu�[����PNG
IHDRH-� pHYs��
cHRMz%������u0�`:�o�_�FXIDATx�\��KTQƟ��3��(�ޚ��4i��L���XHF��N�H
���/qn�
�VA��I�E��Lc
*�(�h�9���N�<�r���R⬈(0L���R����,Z[__����w�8tf
�1���ы�����Ֆ��z���N7��q캮o۶W{�;;���z<�CYY�����������O++w���d��{��SU�X�������~kk�L2�����1IR���u�u�>TUE�P�)!�D8����\UUUwE4꽛���izB�od����߾k�"�����5��L���VD�q�y>�?%"
�M]���/��u�F���yM`��L!@�u%
�8|�ކ�(ER��
$���X,���'!%�WV$��~@�?�'�Pk��U{:4�ED�R�ծ����8(�UUa;x����D �%�T*����=6�������<H��4�thp�}6�ݯ���:95����_��k�3_�O.A8�K�ݠ�
K4[�S�
��\.ד�,��yt��U
*�I�*�Yq��
�(aY^1��
��a�{�x92r�������GQ#$uIEND�B`�PK�{�[
K ��images/icon-16/acl.pngnu�[����PNG
IHDR�asRGB���BIDAT8ˍ��oa���b�;�A"�D"B%GE��QS��7�PR
QPPA�! DA;P$1Q6^��^�wE0DD�i�f�y#�!^�~���˲�&�7�
��&���%�s���ᢽ�W>-355%���{�͆���I���t��u�$�tR�.h����nO�s�e��o���9�ZM�T�ŀ��5L���ח�9���b{;&��� �4>3;s�$I����9G�\�i0�;&�9*f��&�`L�q�~���y�D���c0��B������?j����δ�
I���x��d��y�sT7)�QUPED��ԠQ
�a�d�8&n�x�������R�>����@ig���*����߀��(�`����,�$���hŒ�os�]p�n"~�G����M�� �i3���(@��([F2!$2^´㖎����[l���{<��JD�R��J��~ü�����b�����g��sHӌ8��W䄬�lw!Q|���o
��ȱy���1ݢ���}$�"Q)B�C�""�
RČ>���u �@T+�A��F�
��(��%DP@Q����D
qW@IEND�B`�PK�{�[
=F�00images/icon-16/add.pngnu�[����PNG
IHDR�a pHYs��~��IDAT8���1hA��7�{�w�D/�b�!AmD�"���pH
K�H!hgeii���e��� �VJ,��`0����Ό�ܺI
�����͊�������od�8�E͉�G��p�L���r��ޖg�o��(�� *�����@5
Ґo>ø9�ߕ��'���c����n�@�.s�{@�$���3���sF.A&�����K&�����ϫ�L�=nm�D3
�0�P�k���;P�ˡi�u:�a�9G�V��aR�q���Q��L���މ�=X�շ�Sf�V��n8��a�������e��{�@9[j��x4|[&�
��>�)�P[d�2Q5�!����
�"p5�&�+�3(�H�n�{=�oP���^�`��Q�Iڡ)�� x3O��j��Q�
���qy���
nU1
?)�̤�S��o\j�B�Wu���o���2�<�b����U��-e��\��IEND�B`�PK�{�[�9˼��images/icon-16/cancel.pngnu�[����PNG
IHDR�asRGB���bKGD������� pHYs��~�tIME�
C�3�XIDAT8�U�?L�u��o߾���%��@Xh�Ds��
�@�C4A77�\.�b"N�&B<$GR���D4�hPځHJ����}۾����g�,�gy�4M�������&''_s8].��Z��H)�iiiy^�T~�V��L&s:11Ѹ����������i��z������4MG6��T*��R^�W�~?]]]X��E�T�*��T
�T*N]ן4�c��BA���b�6""�����|>sss�t:���Z��x<�
�_7��vww_�""�J)�RJD���h4*��ů���$�ˍ�����.�L�0���hoo�wwww3??�eY�������%�\N)�0������������H4�����LF���|��4���X�%���v� ��͡������xhkk�4M,˒��3�Df������
��,...���ƶmZ[[�z��b1��t�t:��ɤ8��i���N�^��l�i�F�b��i����S.�q�݈�J�B0T�dR��,�p���E\."B�\F�4������D"!JDpT�������Fs{{K�R`kk���MlۦT*!�V��;�M�dtt��ŷ�ٳo������xܬ��a�6�Z
M�X__P���K�Z�L|����6�����~@�?��H(R+++�D���8=M���O�~�^�������`PMOO3;;+�p�����|4ݓd2������]w����5z~~N*�"�ͪz�Noo��B!_�X(�3������j��˗������F�hkk�mmm�ZZ\!
�B3_(|��y��J��SSSE���U�sc�iܰ&�IEND�B`�PK�{�[��"�images/icon-16/category.pngnu�[����PNG
IHDR�a�IDATx^��1JQF��'��Timdva�".
�4�.!Y�.!m�,!;���Kao��Aq�wd��<������W��c@O �$��>+e�K�`��`֊/����������@x�
�
��e�����;F�DH�8�5��S�4!�]�?H�9"#�� ��)2�}k�����51���Te�q�yO^lh����?�
>5A��IEND�B`�PK�{�[����images/icon-16/config.pngnu�[����PNG
IHDR�a�IDATx^��]H�{��Ϟ�={���u�"v�!��1�,��|&2��(vPs,y�2#H���8��Ŭu87G{1#�*J�HZ2Ssi�Զ9�_���F7���_}ߛ/���C���&�
��?�>�R�T�Ĺ''��X���i&��!���*6a=��H7\�kƟs�=��7�~N�RSS�_�}Z\���yԊTq�h���=?6�t�9�B�D��}�������k!:�23��8�g�9��O���[;t6;jo�ŝF�(�����?x�^j�0C�V�*6'��;�6����@��2���&bR2���6�[Iq1lA
H.N�F�qh���RrEH���ҟx4j�47��)�U/P�*�0�fA�h?n�K�)��'�<�����gV�g8��@(.؎j- ���/;��|�I2G+`e@V?Ü���^�B=ٜu�
\.
��R�"�@�~m|S�0;���Ao��r�}�
�E!ͅ�Q������^�D�;[C�{qv������#W���)����%
��clތ@_g�-_�W�E)8b��ԥ�S�n��i�-i�K*�#[X�k8i��|�)C�C��%�a3�O���[c��t�D'�����e()�͆5��!�Fz{x����Uɉ�N�K�V�T?h
F~br`1ˇ=�bP�A�F���y��C6�IEND�B`�PK�{�[�#�I��images/icon-16/copy.pngnu�[����PNG
IHDR�aHIDAT8˅ҽjUY���g��{ro�$���A����B�N|_�^_�V���n
�)�APfb@�TL̽��ZkY\Q��f��om�6�֏����"�8V���A�@?�|���/ܽ�[s��n��K�iM��[$Dq%�W�q��"����/!C�����-C
hURm\!����@����_��I@��F`8
N���U�����߄��c�0��,;>���L������Kb|��.�����I��mE�w��{��cf��r�O���}l�/���x���j\�~���bq�<���H�6��w?2Qm�$�F��(�f`�ffs9y�G&�W���^ߋ�dP.��-�u��m��fb>����8"e��C#�P�@���[o�����DԠ�i�7��B��H��X�]�n�!%�l'_M�l:U1sԜ���qP��I�Pb�
!�?`b�*�����h���
a���������M߂u���v�ۗ������U.�F����H�O�����Ë%��r4p��A+��A�!M/ψ~:h�&���ȁ���Ng��>�����Xk.qI�IEND�B`�PK�{�[�O����images/icon-16/delete.pngnu�[����PNG
IHDR(-SsRGB���}PLTE�d
'''+++---...///333555999=====>>>>???@@@AAABBBCCCDDDEEEFFFHHHIIIIIJKKKKKLLLLMMMNNNPPPVVVXXYZZ[[[[\\\```aaabbbeeeeefgggjjjkkkqqqrrrttuwwwyyyzzz{{{|||~~~������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������u�0ttRNS@��fbKGD�H pHYs��~�tIME�ܶ\��IDAT�c`��������)��U�;�KI�8����ʪ��@B76(Pjl��jb��fY����lUgo]�n���Ɛ�)�lWWWXPW�(n��P�#+%�TU[[�&*�+��P$�'(dQ^[Sm����_��j��mT�SWc�ȨV����,�Ug�^W����t�#��6��#�p��\�P��rjY�+��&X
�Lxa����Kp~4ܻa�ٹ�!`&,/2���r=IEND�B`�PK�{�[L^�ܮ�images/icon-16/edit.pngnu�[����PNG
IHDR�asRGB���bKGD������� pHYs��tIME�
;#+���.IDAT8�}��OA�?��-��"�A
�@B<5j45�Wb4��?��G���Cś^j��
��f-R[�l��ݖ�J��M�2�}�ͼy_��z�a#�Gt�얘�����,����.O1S����@���e@ȀZ���I�=���d�s��5�U����En���c�HS `]A�o�r�A����O�X�e��Pz��ڿh�R�~{:�%�~����<Y�kQ���=,�N������1R��S7A)0�)��EMО�gƉF�
�j���w�l&�&�j�8��u^0����i~
,�*~+|����<�}Lv�<�ۨ����`���.
��Β-_6���DZ�n��oܢkhr��e��Ȗ'��^8�?�k�Ra����������t�����0!�Eg�1����v��2G+o�Gn�?�dž�TzN:9mP�'�]��/��*�K�����o6�{�6�o=�|���(ݽ��5V:m�߃�/���4��e��u�N�B���
+W3��"�?LJ����Z�vZ��zIEND�B`�PK�{�[���i��images/icon-16/help.pngnu�[����PNG
IHDR�a�IDATx^��[hY�3�������)lSX�����e��ԢxÇ*^�"��dU�o��"Th�Z���x��6
���n1n�n�۴���d2�9�3�F��>���|��p�he���G���L�S��(�Q�F�!�̓�����\W_�ں:QL}h&��7P,(l�2Ai0�>��u;C�p�g�t8�r:�>�cꪛ��LR.�d�������AtA{��rZ�,�&
��A7��[I�J��{�*m��M,v$c!�H�b�3X<�h���a��W������B���p�wS�ξ�ag����8~3�,��7k�VT{���
z�\X
�$Y�I��5����t�>�Ȧ#o̞\Nb=yJ����LX��� S
(e��U7���Zy�Wlc�1�j��?@p��k�����|ZY��#%�n�
�3&x�˟��+�r���
#{��y�T:XT�'��C�x�[�{��Y�=
�0��jL�f`5�X�A
e��!�D�e��j��
�iгiHV�
M�S�FWu7�~��*0
*�?�
hjiC�O�f����{6�:���y�$`�pi'�2yAd{�u��õln�5 �w+�SCi8+v(�]���#�����p��x�$S)�L����
��x���u����H류?��~������=��#����x�Tl�]]������Y~$_/�V9�{�IEND�B`�PK�{�[�P��images/icon-16/hikagreen.pngnu�[����PNG
IHDRH-�sRGB���bKGD������� pHYs��tIME�
(GU���IDAT(�m�M�Uq���}I��G��E�M�i1��E-R�h%M�ZTf�dhS��H:i�VE�S"��,r�q��eFug��i�ܮ�l����}����m�qG%i~q�*��T�ઇ�zϰ��{Ud��$���xW�lπZ����
�:Va�q%K�7I���)�t%-�%0��� 4���8��8_�oh�7_^���=��2�(6`Vpm\B'��}Q\�j��&i~���?�C���,y�{�o��
��i&i~�p;B�<���p�*�?�y�
���k��ǐ�L?�o�@0�Y����C���r�"��T��6b<Ƌ�d?�1z��Scx�$�Q\��*ބmGq�'����(.����$���m�zO�"�E7�7�b�a�?s�ww�P^tIEND�B`�PK�{�[/0�images/icon-16/hikamarket.pngnu�[����PNG
IHDR��h6sRGB���bKGD������� pHYs��tIME�!,��8�IDAT(�c�d�@
`b `Ѡ��� c���&�ؘ�Y�YY��
\�P]=t
���V^�ZJ,Ll������/��]P�n��
�68�Y)@�O��!������_~}����z����s�m���s���Z��������U����6'�����Y�S�z���ُ{�e��$���T�t�=�e�䢣dp���?���x��������p5E�>�|�����Ϸ�Ϗ������Ѷ�B�����g``Xrqb�NƑG;�힋=X]�y�7�X4�t�Ͽ��~������P�f~x�����QS��_~y����3��~��ϒ�&E�e��<����k���Ľ��O�.��d�$>f��B} �W�:����AP�'Ӳ���/�>Uґ�O���@��
m��>���IEND�B`�PK�{�[%���
images/icon-16/import.pngnu�[����PNG
IHDR�atEXtSoftwareAdobe
ImageReadyq�e<�IDATxڤ��OAǿ�����Z*T�r1r�E�</��/���x1�`0�RO&D/&�8И���(�Ђ��v��v̌o������͛}�3�}�-�R���T�x�u*�6#�p^�-
|z���0���>����O6J�F\�2̝*4���lZ`�L#F�1B9�z�p����dG":w)̀>t�u�'K{Aյ6����0
���U�J�C�ڳ_a���f���~���"$�*N⏨"�I������Tv<��%]r��䀘��
�`d=SC���Fq�Z�N���Y��1��Tɂ�2YN+
���b|�$u�S�����+�(i��'`:�Ԃ�Y��`�������p�*ڞׯ��f�1�U��J$��¥�r[,��cf��hx�3�/?�2����
5�A�UEA�N�M7Ӑ>j�6j����ݫF8y��I�fg�B�,�V��9.���z��v����Z��X,�O��C&FSL��?:�Ha��@�1g-2?Im�N#���|_X��
������@�M���6�w�Q,�1:}\ �[]'
,��^��uc{�ױ?0o���'U>r�
-)R���*_N;��D���L�y���������r��?Ӄsv�����L���k���o�,��0�������IEND�B`�PK�{�[wtW�images/icon-16/index.htmlnu�[���<html><body></body></html>PK�{�[�y2NNimages/icon-16/info.pngnu�[����PNG
IHDR�aIDATx^���ka���1����`�
���J���@좴Z�t�����GR����E]�;q���M4����6i�}ׯ�C��<p�{�w��%"�
��-��nexӨP�&������TUxU�
�k,��4��>��l,6�:�~[�l\Θ%LC����TxZ�M<��j���i���R��Q��+�
�;�J�"�G��:�!{<L:qȤ�O��[��
�s�}���
;�)N�a�J���F��68�^"��P
yA���#16�~�;zݡ����� �߆hJ�3�: �z�'h��3���Ai���܅�,����BO1�H(0@9� ʈG��I�����]H�@�P�h�Ft�����].�M��T'{&�]�|90�4��������X�����<!�F3�)ϮV�'L?&J�^Y�/�k��e�_n���5�9_���y�)?�#g���Q�!�Z?ns�07�3�\�1��-3���υ�a������l�Zn�?���+n��IEND�B`�PK�{�[�(.��images/icon-16/language.pngnu�[����PNG
IHDR�a�IDATx^��mHSa��r�eV,!L�"+
�0��>h��P�0)RXR B�3����%�A��6���Ӆ3�2���m�Z�Y������;�
va�����=<�s�a!"l�[�^朽!�{�mX�����
x���F�H��
b��>�+��U�7�T�+�(Z���ǖY�u��S� �]D����ΰIX!2`��~�b�̂F�y4a��+!����i7�
t�*�jq�.V~yF<��O���
��vx������6��ű\$�T;lLb�PկW�� �2{�mʄ�f,h1�[�=��g�FWQM�{�Vl7t0;�Y��s��H����
|~�$��n���!).
�
>
(��6-�H�=�1åDG��[�=JS�egҍǗ�2:���D���r�#\x)��z6��|�X@zᕷsF�F�����
�e�BQ��z��=�"ś��9��g[���ql���݃AZ��V�}�ip��ܛT^?�m��
��.,{%g��P^'Tb먶��D7����'�$�/��ڄ��1�b'
�#�gFl@#�ܑ��?�'R�d5 �:>&��Eْ�!�̘��=V��Q����{��,QH�F��L��I��S;�J��/��;��ц�1�VWtE����u�q���y�#�/<�[�8��D�KSx|IIEND�B`�PK�{�[�WnOOimages/icon-16/layout.pngnu�[����PNG
IHDR�atEXtSoftwareAdobe
ImageReadyq�e<�IDATx�b|���
����f��a��o����P�Ē��F�g#�������G��K��@�z�10���~zϰ�M�Al�̴�P�[���]�Ǡ�p���x��e�À�"�D�)�qqq�4�|����0z����p���_�~�������3XXZ�d�?`ԃ,��á�I2��� �&&&;{{���_���G$�^���!�
)�!x���
�iwhVԙ�IEND�B`�PK�{�[��F��images/icon-16/link.pngnu�[����PNG
IHDR�a pHYs��~�
cHRMz%������u0�`:�o�_�F<IDATxڔ�=K�A�g�E���)R�(��`�X�0��P,�E�T�`'�K��Q��V?A�j)�0`s_dw�N3�3s��{�\�\���C 8�|�����y�@�x
r�d"�(�Wh×(�
��SK
��a}��e��%p�At��/`>�E<V�@Ŀ�w��jd7��j�'��0�.��G�K��
o^N���|_�I�)�9�,b*�䬄
�d��o`kX��vC�&xG���0t�֠4�J��8�g<D�o���z���f�+j��!���'��3 �����ʺ�/2i
7��2X:����IEND�B`�PK�{�[���!!images/icon-16/loading.gifnu�[���GIF89a�?
%%%666DDDLLLTTT[[[dddlllttt{{{������������������������������������������������������������������������������������������������������������������������������������������������������������!�NETSCAPE2.0!�?,�����n
��RC�~o�Y-1����J��eF�$�v1_oa��SFr��29?, 8:BS".J#EJ')C-W7"#
,W6C.&>K,�C9!;K
6?>$�'75-8)�+b1)#/(?5)�?:>!?!4W1/?
>8�K>�?$�:IBA!�?,
X��p��$zD�+��!=�3�����~/�T))@B�X�r
��C Ȅ���� w6D(>IB$0�B1�D3,�?:%�A!�?,Q��pXi�B��c~6CY[@~�g#�l���A������PT:ȆE�~'�F�D2:C<7
>B.%HMC"3�1WBA!�?,
O����L�H�,�M?ܢ��U2?
4B0%Y���*@~7�j��P�/D�~���<I�G��.
�j�?HA!�?,Z����� ���T��
�#���6��%����%,�V$G��0 =ݣ�
����][
w-w"{?>JH).{?(<{�?A!�?,P��o�Y �_);^d��O�X�ʱ8"��$�
g�r�)�12��D��b8
?*=B1f.�f6^A!�?,
O��p��ňB,C�w�ȅ���FU!�2�d�2��1A�H�ߢ�x�$-������
@~-X=? ?(D�0D
=?NCA!�?,
V��pH̸��S
ɼ�>�SH�T.��YB8dDA��6����
)h��B� d���+�h ? ?,C"+?=2"C=a�<?:DA!�?,Q��p��
�X��?��XS�'��HL!��
6Ԥ�Ӱ~�_�H)@�Z�J �?
0P'??
>5qG>7BOGA!�?,
N��0� �BE�p
!�C�zZS+�䞞_�`�����~�ꩠ�8V�H�(?4G.M??6zG_?HA!�?,
U����3��ȟ�!B�_��vѣ��u
�SV1 FY�꓾M
ݘ�]>�Z�X*�X
"/I8??PG/)??8i$>?A!�?,S����W��W���O�\~AWP�~(�9�Fñ6�j�s�|�G��
!
5!'7?&*?0)#C:?!C1/?
A;PK�{�[.���images/icon-16/new.pngnu�[����PNG
IHDR�auIDATx^œ=KA�g/��`�,RN++�
V�1`u?!� be%WY��b�becq! �
VV~�]PI�!$��7k6\rI���ٽ�a�"�4R`J�0�D��%=������K����w�
�3�z�|�����0�yRV�e�+j�@�}#F��Opn6uP�,�����<���)�9lV�y�W
E�\�_zwtj;�EHɻS�F�W֩�F������u��
���F�24A�\��� N��rE� x��& {_���,�Q�f��0�זFdG,CL��ӊR�"#����gG#>�{:��
3O�M��W!��h2^vJ���a�,��8%�Z8��7b�����|�
�����I���IEND�B`�PK�{�[�ִ�
images/icon-16/notice.pngnu�[����PNG
IHDR�agAMA��7��tEXtSoftwareAdobe
ImageReadyq�e<�IDAT8˥��k�W�?wL�dL&1
��6�Ѩ(h��R,�M!R;TA�.\t�m\�
>V���t���Z�����0��4��3�$�����BH|�=�/_>8�U�}T��!su4-�WNV��8
(��w����O��o^u�ŕ���r�#�ɞ�F֮`!r�pzy����e�����Hn�V��Z�Ԝ��გ�[C*��³2??\��S���+��K�;E�С����zrc%���5�*��cb�]��3_槻�i4|��v�Q@���h�ԎdÅ���"�@��Iz�S�lՒ�,Ѿ1A�ֆ�F��ޟ����Xq A��Ǐ�d�'�b�βE��.r`o��+)�ȶ6��P�)�G��!�w��G��Cqn���f�G���
�S��J����y��8�ux�8q8+��g~jn�Bs��14(�{^&�xq�X�x�XƘ0�
���`~��Mq�rd;;?l�n]-�G�
"8:Z
�
��&V��#�_������M����_G���_�8T���-��y�/L��Z��O��r���_�wn���Yf�� .����m[�/-q�_�1��r�dߪr����^L�J&�KӼ~-�<]�0��(�1�����n��+iU
' �4`�)7
r珁s�?�w��?�{Y�!�IEND�B`�PK�{�[����images/icon-16/notset.pngnu�[����PNG
IHDR�asRGB���bKGD������� pHYs��tIME�
5+�W5��IDAT8˥S1n�@��=@�
ʕ:��(� ��A��/H~�~B��
RA����J,�&�̘4��W�������g���(��w�)���Q�'�ι�s,�>A��$���@D�@�0��E�s�|EP�o��-Y�H��9W���$U���}e�yx6Xk��RIBU�$ ��q�1BU�<�S�Y�]c�/�1�L�X,`�TU��n�C�֦6�2��{e>�w�0��0�:۶P�u��|�5���b�ө��r|8zv�4h�f�턔e��Ko�$�N�h�UU!�0$��Z�J{����k�u��(7�:��o<~PGw=\H�b��1F�s��~��2m��k�?�$��"R���z��UI��u��y����=�IEND�B`�PK�{�[���aaimages/icon-16/partial.pngnu�[����PNG
IHDR�asRGB���bKGD�C� pHYs��tIME�
*U��W�IDAT8˥��jTA���{
Dn,%��'0+�2"���4vB��O`�Y0���l�6��i"�b�&�3��wwc�0gf���9��l���+DGb9��!����
����֗�H|��-�\j��:��O��m��
<�UNǽP��L
D�j�I������Ό�(�e���T*�j7�������S��xK8��'�%X�=�����R~_����W��d.ޝ������fOj7:20���A^js�������IH4����2S���F�𪦚kc�sڊ���;<H9��a9cf����a�Vhiy�����M!�1ģ���s+���~�ON��2ٌl�����l�F�����OJ�T*��!7��]{WWO��o4^��n�����)%d�V����ǻ7~������N�i�r�c��o�U���d���^�1���gÛ�~3Qk����IEND�B`�PK�{�[k�]��images/icon-16/plugin.pngnu�[����PNG
IHDR�aHIDATx^���KƟwfWw�1�:[��):��A�V��,y��^����!;�DX����K��n;�n���պ"��yy��4M��Ʉ�.��ڤ���i����M�0"sss�Kh4p�*g����R8�Lr2���Ž�e�<ڄS���^Wvf�,#��dY��h4�N��
\2Ly�9:��������x�����x<Ω�}���W������ͼ%��[���\����8���{��D�uyqa����'t�`�
�&�
A���}��5}M-8W������s70�+�y�t�!��<(@jI��;��ӝ�����Y��FǠ�|P�v�:"�Z���@6~�q=�g\mߘ�� �I�hJb����!���0NM�=��@�=k��x>Vy���u��@���.g�5P$��HS��/��
0<q�FP�A�
�0����J�M�5�F��z�m��lŌW7�E(��^�
�/�>L�=mȮ �,Ոj(f�[�s��6��5#�5����"�'˗������^�13�����(ƴn�IEND�B`�PK�{�[-�c8��images/icon-16/plus.pngnu�[����PNG
IHDR�a�IDATx�cd����G+��ĈM-#.2L�3<b��
ǐ�0�$��+92|���A�O���흤�"o���>^I����f@�!�����?}f��e�}�$C���t��3�Ȃ����2��?8��>��b#LM��[F�]���@���߿������c�O8��P���y��%yY�_�߃͆���Eȶ��lLbw�c��z��X�Q�/ß_�T�t3BŠƀC�?;�����32V�Q���9FF�fy�_P�3<��Q��-�!���l�
���j
���:"���mݢ'[�s�1VJ��W�x ��ݐ`艹D|:(\`�_Y�!��
w��3�ǟ#ހ�y&�-,9��0LL:C��@^�
�Hf�
d2�s��f�817��݂�ϐ�P����IEND�B`�PK�{�[!"��images/icon-16/product.pngnu�[����PNG
IHDR�atEXtSoftwareAdobe
ImageReadyq�e<^IDATx�lSMkA}���w#!� r�Q=yԋ
���՟
��+���"�D (QD�5��Lf���ݳ��.E�T�{����h}<�7��bۺB���?`���f��`�P.�Y���cqZ}���<����W�/�u\�cu�hJ�$���]��t��x�����ӭ��}��+������)�d�(�]MP݀�oIp�8���O
���4���|�^U���u��P\>p�f�l�F��o0��\��֭�ϙ=�����;/��2��3&[nѮakó,��=B=?���N�����y���@�AK����x��u�i<F#��c��y<ɟ�]��
��}ܘ�bO�
�e�kh�P�$
�����Ұ�E^ �ǡ,�|�<���
�(H%3��'�"-�������|���D����k�`k%$���2���߽ޔ�qʤ m`I��gd,A++G*1A[��-^͂�:��V���
�M���+!�dc�֥����.E�� �%�Sf
�F�|�ێ�Kk�Tpe�UF�&��J
��$�@PU�E�W�M��p�*�Q�k4?��M��Z2�<���s;,�:IEND�B`�PK�{�[$Od�33images/icon-16/publish.pngnu�[����PNG
IHDR�a�IDATx^��AHQ���R���V���q�C��!KBh�k(���.���Gw�+<d�.ZQ�6��4��n��μ�X;�?��}����֚��f�������N�PQ���U>�H�x.!)H�,��Q��L��J��7ܢ5GX���%/���\+ʼ�E�!@ؔz�dy����d;���}�~~�3�:�x��M`�e�LJײp��>p�H�T��.�kB��7�M���.��Q2|)f��¢�AWFE��
t��/;��Z[�O��Oy��b����.?n�c��Ug'O��6$5a��g}u��I�5�H��#�hy���Z��$��J%~��ӧ����|3�������~T�3�>_���Me����D!�!�b<��̰t,�wҢ��MK����,���$�ۇq�Φ*vC9$�:҆z5&M�����J�A�FH��D)�:�
���
��]��@�qBUh��P��ViIEND�B`�PK�{�[7�eJ��images/icon-16/refresh.pngnu�[����PNG
IHDR�atEXtSoftwareAdobe
ImageReadyq�e<iIDATxڌRKLQ���|(���6%�
���
ݩA5��~эƕ�1�Iu��.\tӍ!�!.\IAa�"S��8�
E)3�L��3���Ёp���w?�{����+,�
���7�?z������\]yq[-�"
��q=e��\~�i�v'NS�(�l6c��"OL}x315�����b�ڝN>i`���04m�A׀�1�r�
�ˉ�葉xtT�5�a`0�yL��E�KN�AӋ@#����\]�{�ZN��?�C��bŲRTrJ�V��\>��z����`6�n�b&h��|��ƴ���s�&�DQL'��OKXB.�v1�/E���
T+����Ӯ� ���{�;rW��,����"�x/d����gn\��[���*��KVԼdj�`�0�;�.`�Ki0זcD��]Tv頭�Ao���,��%�os��SP��˫@(2l.fA[� �º�_N_+�DRi�Xz��͒�%�^;�A�
l8;��c�w���Cs��Yآ�۳�f���,}N��#V�fw�
�:���@5*@
Uz�u�-T��љ�f���A�i�1t>���&�'�������鸿��|��`�4�1IEND�B`�PK�{�[�E�"��images/icon-16/save.pngnu�[����PNG
IHDR�asRGB���bKGD������� pHYs��tIME� *�+IDAT8�œ�jQ��s���Θ"J`a;A�ȲĀl�B
a��%|;;����J�6��U�M�"dwfnȊ )<�-���;B�>��s����y��Ҩ��]u'���(�1i�
���7����S��+ߢFM}+���e�D�`�VD��(����d?�j�.T��I}��"�Gq иAD�8Wjvzf`�����ͳ���߰'�t͵����q
O?����G��k��u.S��8�!x��7>^���S�~��n�(���B�0�s���6�uH���c/;�?��H��sx�Sj
����?Cz�~��(1�Ԡq��@-Bv���bk�?����MV����:_�vx�֒��[�k�����v@��5��o*�/IEND�B`�PK�{�[ߓ_���images/icon-16/save2.pngnu�[����PNG
IHDR�a�IDATx^��O��`�g&ɶi�MA����.���<��R�êW��+��
�|��=��EV�²tZ��I2cH/��.{��c^�yIUq�0N:)����S��a@�iH'�ӷ7|v���Y��߬�\��t>1���5��ZI��@(J�������������o]qï��\��&�8T���|
�w'_�&9�\>���t�k9��t�U�����!���{tx��m�~��1�n7ۖi�&�l����E����{9^Ɯ��o,�V?��h�%��ɏ��T6���R@o�)����1�N+MbH�
�F���xH�5\]<�Ĩ���2QĄ����)�z6����A��"�Du�WH���/���KÃ痽�����߶1NIIEND�B`�PK�{�[�Y===images/icon-16/settings.pngnu�[����PNG
IHDR�aIDATx^���N�0E��%���?0K�w������Q&D%v$�negH��F|@�;��U�H�z��<����/�n��;�T�� .����tK�4��B:Ֆ:�U�m���-��LO�Sꍠ�sZ���
���m���@������Q+s��V�^�5��F���i��
����mB�}�!Em��
t�嘏���>�̇
1��O���h��߉D��U���-�$�b�Qs�+
s��z��e/~-��;�IEND�B`�PK�{�[}�����images/icon-16/unpublish.pngnu�[����PNG
IHDR�a�IDATx^��MkQ���������
q�bbAQ[���(t������r[���7R���4����T\Ŗi�I2s��:C�B8\�ᜳ:G���(�d0�ou#�0ʢ�6|�"�J�5|´VD�����H��XS1J ��Fb�}@�T)�6�BP@�T��[B�ٕIJ+a��7�tD
��"W��n�ؓ�B��ѥ�K����α�(�
�PU��k(�ps�ᰏU��7s�jGl�G��I�S�������wHE�6):b��,�Õ�2y���y"E��빚����"�����ɮ9Y�\,d6{_��9_��iR�Հ�瀂�l�^��
v�n�OF?Cz�<ƃ��ƥ�(��0@���_~K3ۃ��zO�ſ��ba�[x4Ý�h�6_��V9�K=�[FXS�����t�~��|����IEND�B`�PK�{�[����images/icon-16/update.pngnu�[����PNG
IHDR�a�IDATx^��=kQ���v��F��ڈM����!�N��Lk+��P+SK:md1
�JT0H�Mfvw>�3ܹl�O{�yx_.�x�l����ň��@inm��I��\�����*:��#��Vm`{�ˣ�v�u��֪��1SY�³�,��d�BYמm6z�÷�
�rt
����oTJ"}��+�ӹYs�?��:�����ߏ�`"TK
f%Bh��q�����.O�\���>���2$�HDY��k���~O�
� ��$%"�ٯ���y8f\D��F8^�@D6[8����7��u���m�y��������?M
����hN�:��
"Oс�k���֣���y%��@"�PeA�x�>on�m�,r�>~��Kv_Ёpi)��ѕJ���E�
p.�0���*�a���_��݆�z_2IEND�B`�PK�{�[���&
images/icon-16/upload.pngnu�[����PNG
IHDR�asBIT|d� pHYs��~�tEXtSoftwareAdobe
Fireworks CS3��FtEXtCreation Time2/17/08
��XtEXtXML:com.adobe.xmp<?xpacket begin=" "
id="W5M0MpCehiHzreSzNTczkc9d"?>
<x:xmpmeta xmlns:x="adobe:ns:meta/" x:xmptk="Adobe XMP
Core 4.1-c034 46.272976, Sat Jan 27 2007 22:11:41 ">
<rdf:RDF
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
<rdf:Description rdf:about=""
xmlns:xap="http://ns.adobe.com/xap/1.0/">
<xap:CreatorTool>Adobe Fireworks CS3</xap:CreatorTool>
<xap:CreateDate>2008-02-17T02:36:45Z</xap:CreateDate>
<xap:ModifyDate>2008-03-24T19:00:42Z</xap:ModifyDate>
</rdf:Description>
<rdf:Description rdf:about=""
xmlns:dc="http://purl.org/dc/elements/1.1/">
<dc:format>image/png</dc:format>
</rdf:Description>
</rdf:RDF>
</x:xmpmeta>
5RdIIDAT8��S=OA}Cd/Q)k1������`�01tד�l�GCmc��������Pvay�wg�$��ٝy��~Ilc����@Dr�a,��s�)s�(���nv�m����ua,��
���<J�Iڷ ���s77Ү�8�yZ�����l�6�Y2�]Qxv
9�z��˓���������P��\�vz��4}rzLL�N�D/����������Uj��[�!�3��PS�YY�?�]��q�����U�G���=��`0��V�("�5�10�@k�F�q�2����ZXk1���c��R
J)A��v�-��w�"����A�IEND�B`�PK�{�[
�xl��images/icon-16/user.pngnu�[����PNG
IHDR�a�IDATx^��OhgƟ��ofg��%�H�͟�M��B��%�h/-B��Kb�K�U!dwۦ�(��]$Jh�7ɥ�$��6A�m��Q������ݙ�^1�`oy�9�?�灇������qV���ߞ���q�>�>m��K8s"u�?�N
��^���a�E̞�{�k��nJ������X�
o�
�Or��R��K6�m0�pM�٦mE���î�-(�`�{,�S�6@R�X�?|��٣=�������K
���(d��4a1C��o6mT�a�KO]?�w���#澇.49�"{��,$/�ފ]=([ ���������ZeU�V�n�]^(`�'�]�`�#q�0����ɐ�u�.��rw,�J�Ǝ!JE��5J��f���VD
!|�
����@��Q
�L ��n��}� b���B~�)Y�0AR�1�3�+�uJ1��*����<l�C��:���"��
��%���K����1_��H+����0��e�g>8r��\�6��l�$'�f��yp.���3����r28����
'8����78����9n�v�[���5��_����"DM�s~�O��@47|q����.U��
������В��nYet�D���S�9����x�U幃�:���V��m!h�/���5GC�T��IEND�B`�PK�{�[l^�� images/icon-16/vendor.pngnu�[����PNG
IHDR�atEXtSoftwareAdobe
ImageReadyq�e<"iTXtXML:com.adobe.xmp<?xpacket
begin="" id="W5M0MpCehiHzreSzNTczkc9d"?>
<x:xmpmeta xmlns:x="adobe:ns:meta/" x:xmptk="Adobe XMP
Core 5.3-c011 66.145661, 2012/02/06-14:56:27 "> <rdf:RDF
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
<rdf:Description rdf:about=""
xmlns:xmp="http://ns.adobe.com/xap/1.0/"
xmlns:xmpMM="http://ns.adobe.com/xap/1.0/mm/"
xmlns:stRef="http://ns.adobe.com/xap/1.0/sType/ResourceRef#"
xmp:CreatorTool="Adobe Photoshop CS6 (Windows)"
xmpMM:InstanceID="xmp.iid:3D88341A0DC311E4A448FD79FC1693AF"
xmpMM:DocumentID="xmp.did:3D88341B0DC311E4A448FD79FC1693AF">
<xmpMM:DerivedFrom
stRef:instanceID="xmp.iid:3D8834180DC311E4A448FD79FC1693AF"
stRef:documentID="xmp.did:3D8834190DC311E4A448FD79FC1693AF"/>
</rdf:Description> </rdf:RDF> </x:xmpmeta> <?xpacket
end="r"?>�A�}IDATx�\SKh\e=���&�<2��1�&�$`�m��G#�"Q�mJ�(�X�B��
�.t�FW]�P-������"�J��4�'��N3���}�~wޟ����s�s�ON
rh��٩a~l��qg{u�k�r[ƿx�����!>��nY8�7SJh�!��~�42q��ƻM��^�&���+K/��:G�d�/�H4#��=��I��V`��~h|�#ɨ��U$Z3� �wf���UG5����q}�����șA�B��#1JWvv���B2>����k��1Y�o,�\J���o/�
?��
P��|��1��:�{��0�w�7ٕ�"��ʏ?��͉�B�q�r� &=���_=P,���O��bE��0sm�+�B�h�����hN
��w�aY�p��c�,���3SB�
�T+$4��6]�D<���.���X�5_j�XS���D�K��q@���9Q�>,��C��$�L�+m�^�Z��^��#G��o���^������A�m�N��{���:ȓ����vJ�
-I+�L䚓�]��gX�aH��ȵs�B?����Pa��}�0|��U���J��\�bgs�Ĭ�Z1g-É�#@M�x����6��l��˧�a"V%�藭���|N<9$S\�U�=K�g��0>�N��ɺ0"����RyDK�;�,���uxd/�*�0p�}��O��i�ة#c�$j�8��g�
�.MzK(C�6�7�)uY�y��;�M{Ɏ�R�|n�%���@�a��!�MѠ�� x\�w��> ��|�&���yS��W�����ƸJ9��|�f�j]�`�Dq���{Y�/�I�a���"��]���
��L�����g/���W%�h�+��%�Ѿ��mg�*�5��IEND�B`�PK�{�[����images/icon-16/views.pngnu�[����PNG
IHDR�atEXtSoftwareAdobe
ImageReadyq�e<cIDATxڤSKkQ=w$�f�X�X�](�(�"����u%���΅��^\
.\�B�&�P4!`�-��}0F�&�;��i��X��a��;g�9�E��Ͽ<�S_|s��
�O�0����ݾ��>���b�⪿�(ҠE"���ou.a��q�����5����V��r{w�{�1N
�X��O���
-!��p�"i�
�'fk��^B����Es-�:�X*�NN
��m3m����F�H��W�U�YI�xA���(���dܻ���~E�n�C�u0]�q�i�8��SMts��eb(��+Ep�9�ִ��6�0�!�c�N����0��t�TG��?na��zNdG�7��<OY�6����i�i�������D���7RRRJ�[�B����]���Y4��T�s�
W���,�1�������S�r(�ih�=�+�'�|��n��Q���Z��cmd���|[��P�cG�.�
�l���1�w�=j&�hҘ����&Vh_�Ր'5-��T
�];��ɞ����LOv��ٳ_a�L�/x���|a\���7?�??�~0��Q��
99{��������'�IEND�B`�PK�{�[�&
� � images/icon-32/apply.pngnu�[����PNG
IHDR szz�tEXtSoftwareAdobe
ImageReadyq�e< �IDATxڔW[l����g�뻝8�c� �p�
N��pPҗ�h�!*RU�Uڊ>U��҇V�Q�P��R�H��P*H
J��8NCb��xm��^gvgg��̎�u��u4��3���?Gz�X�DA�&���m|�z7fro"����m���L�ԝanw=��q�dٴ�|����e/�g�K�}��[Y����<��Wp�t
[��� �3��^�m����P��IO���Xf��w�����`�b
DؕҺ~��2��@�[�AN�#Pe�i�aL���b
��
M܈Z��������V�=El��1����D�K��λ,�@վH�K�
�(������/�v3��Ф!�ُ��v��ӗ�'�AI��*��?�o">��h��Z*q�e{f�3Z������,n:�Q�#������y��B)�`1� �k�{m-zNj-����0� ��C:`|Z;+�A���tC�e�]�`~�4R�.�c-���|%��V���O:#�*WP���bc�F#�ֽ_y�Iϕ���(�
S8�ޞ�{�$)�sa��k�q
�:�;~n�k(Y_�%�>�hQ��:��h�ѽ�>�L�{q���r���};�߈-��;���`�J�a��o(��ILvd�#O�;�Ȁ�5����އ���P�q�g������E�aٳ�>FFvB���u,���ڴm߭XET�2�bd��uJ<Nj�\a���&4�><~��C'?�_A�B�<���пYOQh�
K�m
�6�,lω��rcu�A�܄rn#�࿅���yD2KUh�=x���"��pv�(��S� 2�4)�(p���04�G��6���ڞ\��b�H���)�����UG��{!Wt�����,Mxƍx��_!�H�e|p��T3$*jL�Y!����d��&e��
��|����"&��1��!�s`�~D�G�%In��P�J�YoPO�+�
���
�ZۢBu��[�;F�)*e���ڸ�h
����2Ȋ�����U�Phw���S�<T�̠�\�B�������v?��{[6�gT��R��6�[u��~�*e��`�9��>������(kT(���V���W#�|�p/l�=yGR�U�a���X6��M;G��݈sg�q��vt=���d$K�3��?ctt~M����(Fzr�a�>���aX^
Հ�q��nc"�Ȃ�|y��c
�|� ������+P�}�O���ok
��h)�"tU�UP�H<���qx�@}5!�O��2�
��H�/U�qq��n��
�����"#��poy�R=})(:uH��=�D=�Xr���LB�[��d�kY
Tϫ��%�4���GTj��g��P^Fݵ��۰up5�$�2���Ϝ�"�AKJcm*T�ޤ0HԡǪ2*���_
\�k�8O$[�y��4q%X"���8~�]��J��F�by ���
���D�U�ѩѳ���fl�*)=E5B�b�
��.��Mu@����c���Fop��,I"��z��i��jG��u��'�{2�KD��"y������B)G!�ا�N2ebq���y{5���
/��{6լV}} ��Yb�
�l����h�O��|�3���Q�D�y�!@\�f�h_rQ�S�I�2ڱ�7�B)�N���M
��'@'�:��d��˛h�=��K�.����h���¥Q<����:"ҳs�Q�z����/7uJ�q�����,㳱2d�=K���4g���ٸ&�dA���t]vG��srʡ�_$�!�nD>���s�R��i�'R=&��s�U��"���accs�|�'ſ��0����{{SSqATˇ�ݤ�����\!��fĄ�"�:^�eQ����$Q�SO+��G�R��Ǝ�eLN_&1��b�٧c�Bv��M)e���Z~b����:�j2 ��@�w�
�m ��Qhx9m��
�j�[�`�n��˘�T�,L����i�j�>��X�-_ݜ
�����Ko80=`9���V�.hG"�W&FzE �]����%�Dg���Nv��N�AV�������5�
/.�&�-��t�ԓ�L�]�+�h�|XU�5-ގU��L�h���M���E2\Ef���������9ZV�Mp�A�`�0�ttd���M{}i%9|�G�>�L�}�#����q=��ޑ:#��
�2f�ja�{��~53U9f�7/6S�F�
U֨�E;��_y�:�+��"�ѫt�J�,�l'-��5@�sl�g&��F��%���IkҘ��/�ġ��:��衡6}��n�+�{)�V��E�7ܸn�5gG�F⪅���YY(^4�
�߃�y_���W��71\���3]��LqIEND�B`�PK�{�[�images/icon-32/approve.pngnu�[����PNG
IHDR szz�tEXtSoftwareAdobe
ImageReadyq�e<�IDATxڬW]l������ I�M�$�
��TB"�F�BD%���y�
/H<�҇�1�!�"��P+��@�J�����ژ��[{��ݙ��{�ݙ�wm���r3���s���s�sF(���ӧO�X(�u]?�E���^9z��3��
%w��١��~����>t���R��8BhF�O�O���D�0f�}�皁���'�Av�?�
�J�( u���
5{ ��0�~��fV�X�7�<|c�ƚ;{�~���^�+�����qB/q��݊U{E�"(����>v�A�!kWWdʺ!��/��
k�7 ��'�nꣳ�?��g!�5��;����S��~s��)[:��9mMW��͙m:�aY��eLB9��c�C[� a;0�%:���t~��H�U�֙�u�����Ex�2�P�}��AJ�wȏ�e
>>�l�K�;�X7�y���0s9H�«��!x�D�wF��]B!�\C\�B��Ę=w�%n|f�*�g~���<����|R5��C<[��a
�'~:\Dx��E��af\fq��NZ�����x�pV;�1�Fh�کbT�{���j#��|��)�W
.�ȼ"���2I�����d�wC%F[� ��w⼅c��]��!�
�@4cj��$�~X��<����E�_`� H�v��?��SN ��7
�Eh)��$�
�-8�ѫ��1,��Is��}X��= ϲ:�[hiӹͬm��2��{;\+B.o�3���Xh��)���!���X�4�f.3F^}{�U��k' ��P4�`>�j.*
�.���%Y�(��L �U�6e�
�tx
��ʽQ�e�qaZN�|mL���S����Y��u��{���E�n8���̈́% L��4D�ą8��#l
!lG�&>+#Ȋ@�h�D��i-��3S���^����:�lW3�:T1���º�kQrcd,�rR�.�����lN+Z�X�X=qH1s7
��+�X�N�
�G��r���ݶ�%���i�����)�B���X6�C��9�<�cT���r֖Ax㠦}�$���3�d�,C�[�l����Zș�T�3��uM6�
]Ƽ�5�H$
�{�ify�d�
�P�X�s9�9]Td�[6 ����}��U�9
Ze�}M�r��i'|:AS5�uH4DĮ�z!;Y��!��ᥘ���UJ?eZ�*]=1�"j.�/J�a�0�k.\|��
�/ɀɞ_�T011Ѫ�=����9���ד�&X�hky� :�1�dm�
�?a߀�m/j�}T��;��Q���<�A���(�}b
7��s�?İ� b=_O�D����%:�^���hT�ڧ��!��^���V��'���c.��?uΎ}��&���&S�-���8R�gǿԒ���g�� _!��9��%~�)�KP�!{�C�O0ӈMjG>
�
���P��_!�䍞����-;����~B���N����^��c/G��ռ����頩9��;`�lC� �_%�n:?����
FxY��D�Z�ڥ�co������}��BW���9����FN1��y|��o���F
��u�~�ߵ_�_���-0��8˖������o��&�����ث�zc�=�G�\�r�Y*�:]�`�u���IEND�B`�PK�{�[,�w� � images/icon-32/back.pngnu�[����PNG
IHDR szz�tEXtSoftwareAdobe
ImageReadyq�e< $IDATxڌW[lW�����ͻ��;�v�$u��BKh)�FIy�@塊(O\RP
��B��P U�B�JU��
T5m�P�4Ic;�cǷ]�wgo�s;�fg�����gg�����?��~�hEA8�n�x��=H��x�
$����|wz�1i�q�-�iE�J�,��ՕL��^(\W��K��c��q����EFò�-{?�x�=zt�h�
�,�`��Ip��0����t��3X�������Pd�W��I�fp�S��GG�~���#^a
6G�"P��u��*1�TIUF��ba~�_���[�&/�@N�;|�ʌ1ikw��<4�l(�N���L�,5aRp��aq�0�-W�aqt&xp�0Y�\J��l�F
����݃�_���Pӽ�]�,�Eb&�X4�
�3�@$��Ӈ�cSb��H͚;������G���-��47)C�O/��m��ܒdE�*��J��c��?A%c?�g����1�<���#ˮ��jݣ��ot����MÆTPW&�vM�Ɩ�a��7��н\1��}�C�C{;nh�5��˖5��u�S~3�FV�6t�L0��D�36�ľq��z�=H�H$��GF��L�Ꞩ|P� }�-�^�iHe��~0��-%�Mb5t�X���v��ݿ�����Ã�Td9��3�<�1�$D}9�o��SヨZ8 ����A��L�V�%���4}����c����-�=CZJ&M/3�Vz�R3�J��gG�G�q�N�̈�6�N88s)���w.J�i��@8�U�;oCw/��Ϲ-�DT���j�C�����ZA�i�Gv��p/�.pu)C��+L�l��\
@�GI�2B!b����q���(�
��
e�Vԑ)h0er�xR(�ZE�x���OO`�/�q�ލe�"�m��O���G��bႽK�y���M�uq;��\�D�K������d)��Q۶a����<��X7��1t�����H��t�l7�y� T��{܈}q�Y�xEǂm��Ȯ�zI��$�X�6Z�LY�P;�`oO�فd���nz]'��*z�HD��X���=��OB�sH��^sS�v�D�8N��]w=% gf��pj:C�����;���YLe�$D�M�0�5�֥�"V
y8e
N��
,�rh�r�t�{r_2��i��ܠ,}Z�]�pzj ����bp��?�^��KH�0���|A�Bs�X��x��~����R^�(5[B1R-Q^͕�����[�b�2��-%�9W��`@A�X��_{�/�ų�F16�BOw'nNM⥹%��ri=RV���eP�u�C��êڈD"��zMܳLc��=S)i�1�y�AL� DQ�����z����.{��$Մ�R�*�jfE�U)zg(&ډ�P��
�\
��
���QB�:�Y^�rtv��X���!�b:^-!��'�J`M��S=�
t%����CV��e��
��\jhN�yV�H��QҲt���4��D������j��}m�[�*iR��ĺU#�hV+��&���B0$�`���ّ<��/\��iF %�B�.�VV��83�ݟ�2�s�vL<�_̬��)Zb^M)+oBጁ�x;aiCYӨ[�j�+�H#�M
9�
�����d2K0�%$���. p��9,�9��dQ[ݴ^�[X��i�(�-ߖ��.ir)(�}�ȍf�u�����='B䪃QTJ�,-
/�
��?�\: m�"�my�P�FZX.���B��u�`T�U�9'������kh�\�d��ScZ
���m��Uܹ}��0����n��W�陏ޖ��t���i[�v�~F,���w{ֲl��X���O�Q%��ϒ�F��|�x�穴�>���C�B@&1�Z�>S7�����h<&&l��$.2m4
�/_�\1
"A�-H�:�<�\�LȨ�K������(x�e�z�W�nBB�T3�_��Ӟ�G�:��'C��Gl�p���u���;SQQ*fp'����ֲo�ϽT��z�n���u�w<W�d4k(Ԇ�n�x�t���o�H��''R�O���P4$���R���J��V�+Uר�[��t��8uҪ �G�țrk���p�ֵ���F�
j4�j{w2�u��x�$av6��9Ɲ���K��I0�U�Ec��_
�}�k�.�Zt��O'o��+~�����gD���'�;�~�Z'�6lA�t
m��7�ì��~ޠ����E`N3|�M��0�N��IEND�B`�PK�{�[IQH��images/icon-32/block.pngnu�[����PNG
IHDR
szz�sRGB���bKGD������� pHYs��tIME�'��m�VIDATX�ŗmlVg��yy���Rx������˄Sf�e�iI�q4��0�c�Ũ�f�˶���8��E�8d�d6�0�Q�Z
kK���s�s_~x��Ҳv8���;9�}�����u���t钤iʝ�eY��҂eYS�E�B�@�R��[GkͲe��;088Hkk+��Nۻp��JeV���E�|ߟ3��b���`����9v�+W�d](�n�s�(���u]�R�i�1�j��ƍ9{�,۷o'C�R���A��`��R�!�m��)A`�6;w��}�Rض������j����&TJ�$ ��ܲ��dn��Z�Gs>�F;��/����MC�J)��Su���i��y8I��|�r�<h�9~�8ץ���R���`�!�"B�5W���,H���lNn:3>>NG{;��͜8q�͛7�R�:}�5��iCkMGg�s��M�Z햔���M�Z7��͓'���}#�R��1���`DP���sk�R��tiJ[{;�B�l.�|�ё�J$7�\*��\�$�)�mm3F
"hc���ZBu4���i�&T(��^Q1�NS���~���`QP㩓Op��
?����?�1��+�+�ħ�&����8�{p;����K8�
��N�X�Z�M�X�w�
^È`�6/��wl��KlX�U���T���;��x�wɬ߉��K�Q�?�1��F�o�fb��4�<ܻ�HG'���#a
l�Z
���jn��C�y�-)��N��\͵�GF(,lB,����R�'��J��(&�pZ���l����<��R_��<�<JQÏ
��@��C|�k�>^�.^�Bt�
b�� ���r�XYД02�.N����O����G�r�e�|n=N."}oI��I!�Q"�ɫ(7���3�*%7q'�������P�B!�e���\�����ogyh���
������G�ڡ���/�N���\6G'�L�
���Hp���:D��xc���6�T3�-o"8��{I�XWaU�E��[p��'�Dc��8�=�'�M��,r��r��o�Z�ՠz[I��"�c�8��9��?���˄�� bp7�+�C��(*S��&�%�K��q�w��w���0��+_<�V��jP�ӕEQ�˖����;i
�"��TW}�������X��OK,*��,�\�]\́�P(~��i3����A̘�\*���.�_���g����4��'��F&��8�hD��Mq˓X^#�ȕQ[�K�l�]K�3��(��
����-OC����Z��i}5BTl��!O��~J:t��ԯQX$������d�"�Ɖ��CU���H��c��|]!E�����
�l�0�}�r������?$JR���e0(м`
&��XNG��<�r��/�O�ZU�IbcHq�9��씢��Wk&��1keǎ�ݻ���^�n���waY6j�A)��E��1)�-*"{����~{rrr��ݻ_Y�f͑s��m��(Z��*"JDr===��r��=z�U�>v��O[E�睝��n۶�|mN��N��i+������Z��a�p��|��vZg@��IEND�B`�PK�{�[х'�� � images/icon-32/cancel.pngnu�[����PNG
IHDR szz�tEXtSoftwareAdobe
ImageReadyq�e< gIDATxڔWkl�=3�/﮽~;k;��qBZ�������~�HHE�Ԃ��B*Z��GB�E* ��6-mxT"�JH��
��@q���N;�m�^�f��=w�koLxt�w<s��}�;��gp�2.��VR'�C�O~Ou52��ti������p�l�h�M#�ͤ�ԕxzfl�g2;�Q�Q[A��`���\��r�[�G�n�O��*5�P�;FE�]���ٶoLŦ���K�g���?���*�&ʵ"
���VUm�^�&��9������X
w��C)+�VU�n L�9� >��ͨء)x���|Mޚ��<�V�eg��Ο�
0"�;H�R�B�iPB!(--.��矡�X�5bf�i*��*�/�|�����ZG�cp�ٳ��kx�]�B��cn���V܈��%jn���c�!�_�Z���TT������s���t8S�4�]�矻�L��@%'T�0��m��λ�n��8Q��V�ސ�90�G�kXa/�;y����x�uhxܶ��^�z�ɤa�9_�
X�z���`�k�*͞��np���Gz#�b�y�oZ��NY �*�ƅpM����0D�X䎗���0��PuS'ꂥ����/��G"����:�����3��y��
J�N���ʰ�e2�q��h��{�e��?|�����
�/�"A�o�~��(�������.��R���xE��֍�6`�}��$���,4�9���W�څ��wB�<�ʟn�Ti),�y�>2�p�
T���������-�ؘf7�r�&��4GP��~������*OM��e��ߠ�{���A��9�����:�{Y���lZ��^��bT�`�#�LB���ϭ�ttǶn����ajj��q�����{��%V>�
��S�
w>�0�wu!��Y�c�;�*D6�i����n�<�L�֧c1�r�4I��l�)���S�s�`µո�o�M�7����3g����Ա��0�uLE�sL�tS�Xl���P��v�P�r�!��a�q�m��d�Ự�O|�]�d�$�͍J����H#��o<�N�>��������N&�@���x��yT��t�
x(���%�-9
��@ ��1V�4(�Ek���O_|g�G���nU���C6��,�6�y]�SRoq��Iś���9�1�H��&��sn� ��сz�@=I�R#�'�
�csR�HR�sd4$?�
���-�$�Ph@����X�ܳ(on�#��t��Js�3;Q��-�aIB䁼�b`Ҡ�M�I>�]�N��J��K��sYB�H�=�4jW���J�2̩˗��/��J��$X��V��v�Ҩ�W��O�3$s�`�i��Aϥ��1�]�!>f��j�ܭU�-*\�S��ukF4z����O���u�(/����b�VdK�H`��0-��p)B23c�����UNN����a�vs&�أh���x��
�ol���A.X�#/�����zW�E˺uHSA��K���2쫬���frII�w]q�dU�*`~2�?Te���&'2v��)���Ϻ�a�xl��v#�T�0��ܽ�:?S���[����E���K���fe�]B
b�ǹ�A���
!F�lK.Z�!I�]��}<Z�t����3���3��&淞
+�;�0EH�❝��щ0�<��\^�P�z�&Gpq|���xʣ�C�5i|w��H��vT/��ǹ�%kc�ár%i\�*G�������lҀ�g{��Ƙ�Ky��Q5T�Ti�r��/�}�I+{,�bëi���Rsi��L���dݒ����Ι�~0������`3ej����7 �Ƭ㞛&��P��6,'�Թ����S&�;�����9���V�Ӟ)��K_M���ݨ[�R���/�3�(4�Pa��Z/��U�ij�2Jp��$Fr�ԧ&6�1�� Vʰ]<�j��]g����D�7QRS����sW�Ο��r��
G}�J�&ۣ$\��0���������7.��W�\@>�^d����~?SZ��xE�]ÎВdw���ɽ�c���e��)�%�i�C�NMろC����#:NrhIބ���U0���(�G����x�����T����p�^M�Ú'
y�8����,R�)��zz��GǛ�
�r\o�y�N�Kl%���_d��,dC"Ke�*�����5~��2[������2Mb�u8u�Ƹ!(�@���c����|*,�뾚�jdM�{�(��ӵ'�Z��T�#��@��oG��E�E�P�����S4�K^~�/ho��ƵE�"��E�q��?'��9A�IEND�B`�PK�{�[(�iqqimages/icon-32/category.pngnu�[����PNG
IHDR szz�tEXtSoftwareAdobe
ImageReadyq�e<IDATxڤW[lW���Żv�&�;qC�\
jU�"��H�V�<E�(����\ ^P�x$�T�(Q�"�J�&J'�k{���xw�����}��x��$�������|�[n�쏱1DQD
�a�xab/~yo4���w�ԑ��.��_�h�aôM�L)ݎё�j�ָ�X�L �vC���i�6ĭ���3��^��Y_8p�R�z(�J#�x,{�'OzW���ӹ;y,|�+t�OE�{��K
�N|u��ib���ou�L���U�u»�%�U�DE�P�sM�
�H`|t&�F�{�Z����4��LSw��C�h��c�ތ%c��#��#
E�"g�l�8�OP)R�n��(k&x�O�c�@F\)՞UZ��(-͇�����Ǐ����k�ȉM!ga'p4���t��%ʊ��l&��\�����)��>�G��M����̱�o�D/r�����֡t
2
���0-*V�a�:��`xZ�-�(�U$�QL���B>��[)0�;���=�+�v$�yIE�V�5x|m4�g�"8�a,O�/%���2f�s$(<[�MuD��(�
�q�E�by��L��Ɏ.0-+>���7�}ILU�)�!8��Q%[BF-��a�YD$�]��m�O�
���p�(�O�c����zD�����&�z��FG/S�;v���C�s�}��ⷾ�$^?9B-�miݍ��w&�Jx��
���Ժ�OA~q9nH�sTO�6^9��e_��z�6Mjٖ��b��:� M2�u��/
�pkE��"�A�f�;��+���7ߡG@O��R_�T���4j�:�a��]b�x��x� �GC��B)��a�n��c�� Z�:*��� �U;�~�"��W��c�<
������?���|<]E�PǨ���녩)'����sx�Y���6ѶD�>�^n:�K�n�:MsPG��>���I$��Oh<u�m>�)�.�f��U0[j9oc��K�B��%C3t�|>v��vې�;/�C�rv)W��E
W:���c�&���Ke�l��-�݉l$���n�>�
6�����e��AO�k���͙b��-'%�n�F�6�P7�@��6���7p;_E��p
ꡉ�+S��b��w}�֘o��9�ڤe�Q�0L"�h��
ԲC@&��.�}�]W�%�j�`������fR�����
y6��µ�q��D`7�F���sK��效EQ�7��n]�'x�ZM�>��"n�vM
�seȴ����&��1oS��*�4w�'�RZ�m�"��l�M�(���i"�۔YwK���ik��v�¯S��ӎ�tZhTʌ�/��i��H��n��f�^?;��?))d�SS���L}a,��c�1s��RK��e��{0?;KUMZ�O9ѫ
��:����`4�ݷBr�Oģ���.y}������+����X�I��fiO�PY[C�X�G>�<7���ʐ���m�rg>���̯��S��&M%��3��!��7�{[��v9H�P��I���,�.�J딼2s�2��}d9爙��k��P_�ѾH0_��2?4��(Ε>��a�
�1���KX��1�Z[����n�j��
��=t�e�_*��D����P�4a��@!%��.&LyW���!��
Uz&@�ϣ\����E�sCm�ϕ�����al�jw�w�`�
�+4�r[ӿ���^JǒD�$�Uݑ�L30�hg�9�
A���P�榗�,W��lc������W�2�)
����϶p'�hR�Y)#�v*�Oe��'Rq��#b{�ybTV'5�I;��)���
�Y�]��?�-�ېOF��t\f�?�)(X��z ��v8<z�P(��%����{�C�{��Y���JgU�k����紡�E�Oϱ�$���+�͇��mF�s��e�b�,/�B�p�M\5����n�tt�w~}éD{1���s�fϪz;JtW
���c̡��l��d7���b���lב�lì��Y�̖��R5�BIEND�B`�PK�{�[�18ft t images/icon-32/delete.pngnu�[����PNG
IHDR szz�tEXtSoftwareAdobe
ImageReadyq�e< IDATxڔWYl\g��63�/�}IR�q�6-m5M�6U�P��C�x@��P����$�
}`�Z�D (Q��$u���cljw{�ξ�e�?�gƞ�nZ�}|�3�=�;�|gez�n�/Eס55�7-4��;;Q>y��폆|�υ����8^ʼn��S�gK�����Bz������+��>�o���J����c0�������N��-8�"�[��b��/�ב�3�ə��l�/�s�~e�!:���7��;����?��X_���$(�u�P�pJK���=���������xYŏ5�_�Ph���{��'^�L���Q�C
�z�6�%�24����s*����>
��"�
D��?pJ;p�9gz�[�����ƕ���}�q�H��<"�=��^՚�y)�W��[P�/����;�SO>kݾ
g|>�|R�� §�T^ʦQȥ�ynE%T��`$�T
��U(}�}�E�~� |��IH�Z,�]�С#��,ܩ)(�#��x
�v�'�@K$�.b�n��Pa��V�����l��B_؏}+I�����4�$ܩ��{�~߱m8w�@�@�U.�cM��
VBG�p
MͭpJE\:�
����D��M�T�a��q:��l�,:�:�����p���������Ď=��{� �,���啯!�ӇV����g`G`\^�X��$�Rn�L)�5���L�\���*�<c��%��=��v��k����!�ӆ��n��. $/���_|��(�L�\Y�$�|�,&O�;��O��J%�X�"�/�!�o�
^(J�A���z��ך�������r&'�1
�ji�]ę=̥�CRQU�I�jCR5��t����&h-�մ1K�`i��k�����,M�}��� m�?=`
��\�!T)TޡG�⛰�S�x�!�/�_Q�#ņ�
��mzM̮+D�ؘ�u���tC<���OD$���ZϦ����aP���bc�o~��g�w����e#[��*f_�\���ez�L[�jȐ�R[�|Uks�'�F*�[�}�Y�,r�F0�Tű�����.g)�Lr�D��q:㲪<F�#@]��^�f#R��I��5)�2�c�������\[Eyi1hNrP yo%�=y�<V}�C�Q��ۡ>�"�N����Y!;)?Ho���S�X�|������I��0��A��\�{�"JzRg�����$�B2a�TӼ+��
Q��,��3M7��+Y�̃"�K��"������b@��b�5�_�!
T��P*�4$��Qx5��pRlN�� �d��'�~�|���sZ{�∎��zH;�=���l�(�.Q����������yP�W3.�j(��]���z8B#Z�OD�<X��^��=�3��LW�!��͈Qg>�W�_.mPթ����H[|.#�"�Q�.���<{�eMG�"һ
�ɟ��V�M�g�Ȱ��֥e�L���|
)�
��?��
+A0?��:L���[��K�G�26����ŕˈp �Q�#�D�#oK�3���34nK'���Y�3(BLq�;)S� ��P���R�D;Ǭ��E/��D�m�`b��%�������<��@���|�D��y�S-�]��tnUΆ�q�e��r�|+߰�q��m�?���Nݝ���(�O-�[�FㆆgW������,����
�Z�%-Alx/�����e���qG�-!}�k�-��nl�BӖ"�̫���)wx���=TR���Pat+�x��)�pP5A���#�U7f�ć��[אcd<37��{�&-n:YJ#��r[���tu?���P��*$�d���������@֨�BS{zىݶ�ܽ�X���k}���p
w=x�~���JS�B_�˳$]�㴒�BpY Vr���A�P�*��nA�l��fܶ�������|���'�[��`��|�`�#�'�T��rs��ˉ��}�X�&K�& A��H(�f�$E$�{e��u��Ͽ[x��<�T3Q�Z}�
et
M��
�|7�m\�5n5G���R{<�e.���"rg�J���kX�إU_�9k����[�fЯ@�FJTU�����h3y\j��86�"�\�C
��|�_�,�$��+n�yXv�?i
��Bvj�p����.ٰ�ו�pֿ_�5oՆ/M�g�q�f���XrB�i=�Xm����
��
��7�������Q�K����y����[^�`�E+P�vm�IEND�B`�PK�{�[��>Z� � images/icon-32/hikamarket.pngnu�[����PNG
IHDR szz�tEXtSoftwareAdobe
ImageReadyq�e< �IDATxڌW[lW]���}��I�:��8N�&}�j�RJ��
�*��� ~��WE%������J[T5�h��RJȃ�i��M\Ǿ����3s��k'N�`�3����{����{�מ��HS�W��OTJ���R0���6[�>yU�}�/���]{�ƪZ��7��8I���䂵��}Y��O��n���m4n��y)�g�m$ƕ�<��!��)Ϥ�����F;,�xY}l�R�Wj�i������V���H��ۦ|�s)����:�:��|-x��AbB���?��E��1��i0w���W��ǹ�%:�vn���3��uJO�k!��"�{��C;���Mhu�h�$[@lM ��,tq�D�3Q)*�{w�+�v�zt��=���p��y�z(�OG
�
�l�<�7���\��)�S�
��H�"�C��C@R%G�| n�m�5�}�SSC�9�E]���Uus�o�t�D@UPȕ���V�Z iR�.�.M�z�9�i��0i'C'3@g-6�{bg�a����K2X��|��w���7��Y�E#Wee���r4(-���1E�i�����`��蒚H�r��$"�D�1�y�0G�=��^�Z7���H�����gh(���q?v�>�{w�FM�舏��
6�Av���|$F���S�y��*����X?���~�r$q�؏��1�m|6��*�}���Fb�j9-uf�N8V+I��O��9�L�o�b��w<������xo��78����t�}�xB�Zԇ}�#�ы����D�e͐%�i��"�4p+�S�6Jb4��hG-DQ�7{��~`�� S㏓�c��!�Nd�7,6���e�~��?�3�/�a�b$�8������}��q �k�x���%B��ko�s�1r7nz��!�ӈ�߃Fh��Ocs�V��99�[�R.�4ǭ�Q�5��錀\�D���VXg�W07�
�|���q�G�q�d5ɘ�n�yD-A��7�M��W��_�'9n�4�$�pK�6];�pE�*_
\_PD´i��r��ٗe {��9qj�
ʅ,
�Dh�>��Y�Ǜ�IMXB�Uame�e>�b�z�0��IHDB��p2e�
���v:��Uk�Μ�pvv?�bj�}�9r�Zr���<������3�7L����|?�RB_i��ۋ���Lt��2��8�O֪���!
"�EF��d��BC���/ҙ�ܹ�@ex�~�w}�}��Nc5�[�A��
���r"M��h Vlw���)��+ 习L��%2��
V�}h����a���&�N�E�
�Mwm�i�S:�+EAYg�
�S���L����bb�f`p/&n�c�n���r4�Kx�г�3>�[�>Į����V�sD��rm�9��i�2$W�iz��h��.H;v]�jq��w
{�?��c��%���3�^�ƾQ�Y�8!^T�Q�V
Ͱ��J�>�ڬ8�e�+CH�@�ˈ���'q۶���Z���)�&뫵{v?�!:�X����|&�ʁE'��D���sMú:�d+�j�@a�U>�sT�;���zieK�s(%l���&��I����.����!ъ~Mb�\gP+���;�a�Y�75²�ʀ
tby(D�����|/����������F�F���D���;�:!��E�s4�wm9e*
��MXjZ����~����^���ZcaB�8�������KH�Ƕ�R�
8��~4�L�a���YvC��4�'�e��K��d���I����a��p/!���#���\�}����fn�$&G�r����2r�dn�=\�]�S�se�D��.�q4L��R���?~�JR,��
?"ӫ:
)G�e���
7�ò��L����y��V癮��@�z~���m?p�c�ӡ�1m�O�a���_@Oy�ݶ�����ɤ2��Z�(0 �z�a��:v�.��vn�x�f^�_�y�%���l:��~�}�U����z?>3���T�]n��>�u䥬!�
�o�n��{���dQ9ET(U�q�i:�ׯ��.s�_�SwH���*�l��Op��a���_3M��'�+�Zc��e���C
�PO����j�W&?21���ۊ4�����$I�A!�u�
eXI�θ���r���t\v�;��f<+A��g�2�\H^���~�%���F���UĊ�.�
Bʬ��1�d�ݚN8IEı�
Y�)/�U6үJ��̐�"ɥ���+i����\�H��Fd�w�l�wm�O��21
J)ٟm�I�]����Nԇ3�8{����ە{Vʍ�agljE�|o!}������K��/+)yO�h|{�_?�W(�5�/�|ת�b�nl�3ihl�Ҳ}-���Y�M���̊)�|��Q8�`�R����s�����6����M9�k_=�#��gn��'
cIEND�B`�PK�{�[0g�SW W images/icon-32/import.pngnu�[����PNG
IHDR
szz� pHYs��~� IDATX���ۯ]�U�cι��W�s���k�:M7��R��
4n�bW�KQ[�KB��
!���R!(-H�IS5i�����&$�sl'q�/���e������q| }an������7�1甅����ژ�ţ_�``L��o�8��!�U�|��{��{�))"r�Lb��ڵ�������_M�~��t~�|�DP� St�$W�'�|"��U?����w~�_��/G�8�[�s��`�O<AȚS���֟���?��#�kS/��
Y�����_3��c|��&���ZEH�����-���9�u�t}!"��B��j�c{�߾�U�{�]%dM�"�>af
��z�I$���ۈ�����G=�����NU�MU��r��&�_ٻYAR����jN'SKĵ�ٽA7�!to̓
���??���ض巾�j�g�eI��i��琬#B�,�5�L�M��5`��X[�B{�?d��$,O��M�u��p�ܔ��Fq)
�d�_���;�I�
����%~��?�3����ɏ�%�"���f�v�ɤ���D�3m[x�K�K�S�H�Ey�3�d"��F�[��2QA�c�nʛ�����*Q33����_���?�2�P�%���[r�����ZBY��A�'�m�_����%ݳ�K��]F��f�0�QÑûP
b2�
��$D��
f�0R��=l�,a�V�o�c��G��/>}����?q��=����TRg����;�l��d^RC�0@Z�c���gi��Fg��t�r��
����=p��_x��c��-�������ӯ��E��pAp�6>�
E�8�H͂��Q��� g8
Eci��C�Zˌ�2��%R���6zn�I�T��ƻ.��tr�p� �6
����R�u҉�
C�ֶw���̔�b��9�2;��253G�ϒ��hR���3>��QQ����!�{G��k��X13D� �S���?����|�}������t@�
S�����q��u&BN�e��ޔ�6���u�v�E�BR0m
T�*�hTZ`��
EI��J�Fh�e�+���-�ƭd
����To:�.c}�P5
რ�(K%X�3���,���0��R����ӡ���{��k L!�@�)�i
$E@0&�[�s�<WT�*
C)�*E�'֍DM� E��y�뛿u���^�㝿���7s�q��ok@�6�U�4�;�U�U�
`�F�y�I$VFYFT�����"���5���:���f����}���_���ғ��o����x+�F�iP���D�`�s���Q�����x��S��uԌJǬ�1�\��3��L/��`y:�}n�>��Y(Wj
A���T��j֩�kA�E��8�?���Q�%U��b
����ò��m�-��O�y�����~}5��8�7Bk�B�
��B���44z��.��Ǚa���]6M���`4��DLj���2��c�B�j��?*.���S����+��nX@�Z6Ի�Śnhm�sb����,v��lPb�>3�Z�⩪1I�J�Y).�T�Ɉ)���3�u����s����ťef
m��!�
a.�bqT�ʒk����Tp�p�K�7�k�]�Z�CY.0�Ƙ��J��4?����}����a#�Ң��?m�Z=��G�RЊ�&L��V@�l�xde'�^��˳��`4CU�e�����2�r�vB���W.Tg_����|-
V�7 I%����|�pAc`�z��I!���T�4����EYi|�w��.�*beZڪ돯�
1%K�b��c?^��3?����%3���F��(<��t��ޤotk���W�t���q�,o�Ĕ���>����<��H��ׯ^��JH����ͣ��|�z���H�ڮ]w��j��#��*���v*�Dg��y��_�Wܨ,���;��^<���\8�S����H�+y%��.�_��������T8B�[Y��c�u����Z-v��M��R�t����[MN��=��S��Д�%����
Y9�ѹ⇯<S����֗�j�w?��?RE�O]�[�6��o�+�|�p�BF�ף�*���H)��ͬ�T���v9z�%YZᖝ�rˉU���U������¾Gá��qg�}�k�˫�(ոr�
!���8p���GUi�Z,//�{%�sT
��S��4
"NBY��_x��q�=[�q����D�����
�������g^�hp&���ԗIEND�B`�PK�{�[wtW�images/icon-32/index.htmlnu�[���<html><body></body></html>PK�{�[+y�AAimages/icon-32/invoice.pngnu�[����PNG
IHDR szz�tEXtSoftwareAdobe
ImageReadyq�e<�IDATxڤWKoU>���cǏ8Ic�m�m��D[X��!E����/T��%�,(6HP*K��R�
R)P�("�JU5BmR��q��q���˗s���u�^�'��;�9�g�,.���s�U�+�\�!"
�L�$�"0`B}H�ޒ�r�|/��tʲ�+�RI�m�����pY|E����t d:lT��''� *�8 O0���p�3�+�w���3�@ ���"�����
fh:���\�Z���m��w&��ɾW��l
(_�Iox�n.�DM�{��i�
I"��G&v����B�K�T�e0�
�FlZ764n�[��kqr�|�@c�H?��{v�F(>��^y6��xB�9�4Mj��DC^e
E8��,7$��g�W�\�7&wC����"k5�@j�IK
R��b��sB!&L��^<TᵉT�4Â�GbyS����b�XR���ˋ�ޅR��GL����~�����s䎅!0-�ƶ9��h4)�җ�LF�T*�Q8\!��hrZ�-�s%.�ɭ0|ܸi�
c(�E�:k����^8�Mt�Y0��ܞ�܋fy�9%�I��W����iU|�v�x���n)×��D�Q��`�$����>ΨW븆�[��>@�ݞ��`
�"E���:�9�ٯ:����
Zv
ʕ
�ݳ�J��8,�B!H��m�/E�f��H$�TѸ�Mfeř��%ŝJ����(t�=Z�8�˿p���u�$�Y���U�(����{��p8�b�ޡ�ۗ��"��Ƶ.��t@6��M@
�A�'l�t�m2���bM�
��?r%4�Q�u�b��r����<?@FQ����v
�r��+����02( ��@e%���!��M�T��r����R�F�<ӝ`pυ"
�{?��H��e?���t�cZphh�E�1��??a�ȍ�l�;���1y�j��C7QrM�N4zZ<�`bF�"<���ԃnBR�VP��G���݊�J�z���&�LPw�P"6��|��8��Ѕ�����}��Z�[���|�|;���Þ�������+p(��!�#_D�{��χ�v������
[,C,���������Kp����V��/��l���_
�:/n�f�c��'��2\Cֱ�Vd�{���O>�L���Ư
cI�ٕ�$2Bm�w��7$Ԏ?;:福B�4�K�m�-��)���9�����]��\�
o�b�b�u��qO��w�0��{*�
�
�@��P�N����n�_�0݄�{wBs`v%��^eh�
��ʁ]���>�\����c/@
p�*'��R
������pt�(H(P:�6?�2xk��`$�ڮ�k%�R�6����f���ʼ�
�./���<�o �+���̇SSS��vi�ҵ8��|��;��w��D�ǂtv��"����r�M�?M̴�EIEND�B`�PK�{�[�ʹ�4 4 images/icon-32/new.pngnu�[����PNG
IHDR szz�tEXtSoftwareAdobe
ImageReadyq�e<�IDATxڔWk�]U��y���;/��IK;�(m�$RK���>b45�Dc|����G�1��
j�4j�c~��4c�B-�-�1�=�N;s�:Ͻ��>���҂uf��{�Y{�ok�o����C�G8.�R*l#���a߀��a��+7��ٻYYx/l{��U>n���>?۩M��ÿ'v���v\��sͧJB���~����\{���~o�@���ħ]k��_��;���}��� ��38ޡ�"��@"������w�֊U��
Wymr�4�\�.�2�k�-�^@��~u��/���5�/³V9+V�,l��gh�?Ő�'�:xÑ�Pjk2e@X9(��2���vИ��=�\�)=
��|]!Pq��_�����w
W
�M�E�÷���C�8�� ��uREs@n�ۿ�0x������}�V�k����6�A�;�G�X��m�A���Osq2��Թ����IG��vS��{K��J:pǷ�nͯjϜ����x[��T|����{-�ER���ܹ
��h�E"|����t��<�ܱ�I\(�)�
��t��m�,�N}in�$����
�ʸ�ߺ�g�&�
'ΐ�6��Ɖ��;��87~
�=��k���S��t�cɼ0#�jOC��PY� �m�
��WH$���s�>2*G�:�()��q��,�0$��9Fej$/B�3dqb@(�8�'[3LH�`�`�\���u�Yqx��
��1�损�<d�MR�l��(�4R3RFhD�$:���8˃��T�GbS��5ې��/�}�&�U�'Tp���;\'^rb��ū2Ϲ���U�YwAvr��ϛ*U�,�QF�n��&�HB�Un�kɸQ�h�%��,����n��$XtnF-�K��q�T�,"��MX�!ڄ�U��ʮP�w��x��u���v�Q�E�6d��l^�S} .��*� 6l�|��(��� DZ�R?g��s�kHV��x�֪+�����T�
�5��P�� IʂE"�G�
����l��
���|�3lQ�C������cDqS"
8��i���c/0�(��2\\���a��~�1�*��|��7K'sH�\�T8E>��@���"���s��,6D�X�j�gy)+������:x��Є��^H!S�������,�/`sa������$��/"��##&�V��po�pZ��C4g�r�k�a�m�,��*%;f��I���E/լ�&�d"W6�h!��H�a�F["�SRJh��@�W�w0[g�x4R!{���<����@�7�"�YW�eyK/P��Kg�;��S䣅T �#��E��Jۖ�LnMJ�'J9�bɆ�)�������穠a��,�%q��Λ��QKq�ПjI¬��Hc�Q(�
9�k:Iu
��[�6ڸ5����K�y%�M��B��r��~Z2��LR#:���G�bh��'��&!���Ff٫�L����NE��ZHg>�9�$�Dy9C��LE��=a��U����@�uC!$'�Y��� ʫ�VIZ��4����`�I˄C�H�<L{�dȔN��2�d5�:�f,_���;,����v����#��hL��rn�g��NC�N~�h��fZ����%WDp��F+�
�J�Ѵ�VPx�"D�r8c�a�A���a��pϞ#Ѿo��6O�{$��\P���'�?e���
::r�ݱCz��ځB�W�D�B�`k"�t\��K�����ID��|�=����}{ވ̼�=��E��+~c��M�䥓l4U�]�t8I��H7?��l<����Sf�XC,��0}���h�~|�.��Cg�n�g�t\
1*��O�������y��Hςz�*�zp�h�2����`�0��}��4��s~��������9
Y:�f�[��kZ��$ւ�ITFw`�Mm��6w�.t0��j`�C$�ϋ<M��a�O���%��'�Y���k�jw�]��ԣK
t��i��H�)���}�{�|nlt��\�ul�s$��a��z}!�������/�O<�H�b�J�9�6������x��Tv��8J�g�4�G��[G�b-Eo5YJ�Nk�g�k{=�b�����,2�]z�0E�N_����Z\,��4�ٵ۳U��~���G/���Y��2��ؗ��e^����|�v������)�����i�
0�����d��IEND�B`�PK�{�[4�@��images/icon-32/order-status.pngnu�[����PNG
IHDR szz�tEXtSoftwareAdobe
ImageReadyq�e<HIDATx��Wkl��汳���c/��&�!�LI��B^RD%�B��"��J$�QZ�����*RP�PUEM�$! ) J�@H$i�1�bc{Y�wY{�3;����+l(S��h��h��}��s�w�0���l,��>�
���M�aX]��]���_���ZTQQ!ܬj�V~��f��9�8l��Ҵ����w�~3ML
��R�b�%��W�0��%K��y�>%T�����R2�FR0m,�L��DT��ܚ6�L�� k?.ToO�~R=�˃�u�a0W|bGf#OR���r\
�uC`.��"oO'RH��˼��N�È�%L��|j�*�b���kjj�t p�?���C�pl���+'F��Xyk!�CΒ*�����Mƾ�-�B�X,/bYv����I��M��Y^_"���Y��I���%?��
��e,j5�Y�|���O�Qt!���>�h����@�p����
ւ��h28I�UF6���U�a����l]�.��@��F�l�$ȍ\�Q�y�AO҆_L��j
9�,���8lV�k�Iφ�)��o��^*�����
�^fS]���{P(�((i��2b�$f�W��QKӚ�v�
""���;��W�B�e��s�@\qx�'��A�g���1�L�aF��=?m]�T�ח0ᇋ�~�F#��
^p�O%4�EY�xo�fئY�ct,�h4��:����o�0��ÃWPq~��ի��o6<����
��`�,r��"�`hp���ų��t���B-G�I���w���J-^-�[MbK�֫|ĉT�Y��Dc�89o67��ߴѲ����!�t�9Ti�pz��j�fV=��%��s�/^���8w�s
*�Yk]2mn*��y�`Q�J�Hc�X����7m&�;��L�7r�W�������v�yI0��>��a!<$:o�>��c�o���8t\)m�O��Eaz��-��(j*�"Q�|[khG�ʻݶ�bl\��Y��(r��2�$�ŶM�?�s;L�
�(�.@$���-����m��3���;�l&�D<���g���ɶ����5[I>Q \+�P�PF2�q����$t��T�|���N�c5�?�^3�rq0�%�$���z�Xӈc[��)�:}�Q����?�����a]O�Ay��j���xۿ��GQ�;!�apj+���"��
�b�,��Vd��q<d�e5o#^HH�\���fm
��w.de���*"��W�
r7�D����C�"l��!�A46��'fR*Rc
DI��4��!�L���Y�7�]��=P���dq���0��'�T�ġ�nx�VT�� 3剝����R����}G
�xPd��j�~���)������z�O��(zQ\���I���Ձ�3�aM2���~�ku�k!�x�L��P�����!Ϥ�8N��������
��'��,{h*��N>ǵ-������v���sZ[TR;z�|�3|D\7XQSԤ���l�B�x��o��(WW/>�f��{��mϫ����%�'*M*��N}M��t�?���7���U�}{�|��KVS���k|cL.���]��m��?_�-�{��IEND�B`�PK�{�[��,D� � "images/icon-32/parent-category.pngnu�[����PNG
IHDR szz�tEXtSoftwareAdobe
ImageReadyq�e< 8IDATxڔWY�W=�tW����Y���x���`'R
$��E�@!�H��( �D�E�(������D�"����BH�����؞�=�V/��*Ϋ��i'1�zz]U��w�sϽ�L=�V/]בL&���Y��n߉�����t�t�[?���t���F�A���:fîV��啓�缧�ʛP��
n�ү�
�Q ��'����o�Vvd�(&bP5
1*+W�<�����J��.�����Z�ﺪ<�����6����U��X�lTm�ؒ��&7%�H�F}�.�̱`��>����1$0�evnߒ���J��U߱�T�M��ޠ
4UM's�g��mz"�!_X�5��>j"@�&�P�+��8A��GE�B���Hbzj�c��r������(�Ҹ�J?TEIn.�r���Z1�M+]����4�2�_��zAVzoӪ���9��������0��z?_�~$����ӷ���ùj�q
�2����nT
Cy�Rv��?�ÿ{�V����_�·��Sc���o��뎑�ņ
K���G�O@�Ǯ��_*L���\��wm��>�#/��x�w�^���������
�P��J�b���|ׅc��3�e�T��M۶b��)��
�|��z��[6o�}���J�tL,����D@�R�p b�}�텑/|�?@�Ý��Xyا믶�է�B�����!#'�a�'u̵mar�����ݴM߿qlhZ���t
�%���vp�2D#����g���0-5]�Cye�c3b��8e�_S
�����;�5ӧ�z���g1>[��z�ʅ�4u��4��I@�
�c��b�FJ7��
��ε,H(��X�a�M������R��p�|I���n��b�HY#���k�u^P�2t��_FL!ɖ.��9�D2�C�Gx�YS�3��v���z: -Ì��Gg/�k7�;]�P K1��b�x��+hU�kC��'��@�s0�6T��?C��ncJ/}�Xuy�U0�|W
pntڜ��j�.-�9��.�����AdQ�x�������O��z
DHcI�=��~ɒ�$�2^�>����C�Z����0w�ʔ&&184�D:2`y���`V�����,��H/L�+� q�Sw��#�����JDsA��{
w�
�0�r��|���s�S�J�*�̱�x�ߋȤR0�!ݎ��T|�De�s�![I:��O�3���14�9Se�yȱ&����Ss�0H
r�L;������G�Pɸċ�0�v��0�`
�� Y�F�]!��JnjL�VHe 4�Z/��.ڰ<̐�r�D�L
%e�1���v�uӷM�Qt$'�|BB�v�:��6PY\
�,YQ�\S��v�l�c�8z_�T`*�l-
b�� Sl����U��>(<���g��-a�0X�Fj�ajlme�w���-dƴ*piq�K�S�56��X��})��N�hܿg�����`G(�١=��'��Uc�%���^L�t�����w߸�&�X4��'�=F�ďYG�\�産:�:��2�/�k��F�q���(�$�[$#V1����{�b��fڼ79:�b�퓳`�ӊ�����3g�%�`*�T��n��j�~���5��'�f��R!�;��i#0��.��ny/�(�N� zؠj!/DDR�l\��X:���3���˵Gx�+����uM4/��k�¬�29:���.�Zؐ���ۈ'V�v���M��0J7�����U>�|�m1��Uh���h~pճ�{����r��u�r%��٫�l�8��W��N��6�F%��iU<�D�c�(l������/CtH@�T1C��B����
T_q���7^?�>=��\�]����ϝx�H{�/�bώ���A�Hvd�����R ȡ��$�d:$��X1�
(��\�����Ǘ�z����dd�����u���G^��2]*m�vqC���X����潴3�:帞@*^@!G�5�j51{�
��
T!�6.��^��k/�H^���5#�ޟ���[�[�իK�.{�f�c���]�ł��!]+�w`�ȃ�\��2�&�z�۪���oW�?����+3����V����2r�Q�����xV�=��67��2�#=��OLe6n��0��|�(UH�Sn�1�3V����������~4�z@v���!�}ڻ�'�o�G�aj<X
�x�֢ۮ��#�_��zh��s#
����O{�gUF�Ոމ�!�����|����WI<�F��~��@�o�ȯ��
0M��;{�IEND�B`�PK�{�[�>� images/icon-32/pay.pngnu�[����PNG
IHDR
szz�sRGB���bKGD������� pHYs��tIME�+(��I�IDATX�kpU����s��}$7�0�&L�*`��<�QТ���u��ʴl�NuhAZdDA�BQ��T��)6<�B���y�~H�$�S�̚sf���������Kߺ�)����[\y0�9�>���'n967V�z���ı�*4Ež�=��=���Ũ�]`�p����
��G�f��G�PS:,a$�Z�Z"a\6�Z$�J��R7ψ�q��%?�!��,����8+Z����my�}/��o�7
Y폷�Lw��%�"n4��!iɠ��D��6�.���hj2���ւ��6d�_�ټ�����
��j7>���G�H:�53R��dc�u���2F���r��>΅���6&�g�y�~�|����|P?��V�>�1�{GNK��V��˳)/:�.�.[�Ls�*tcG�ܑ
�k���Ň.
�7{aǜ��y��뜜�ܡ
�PP�*�f:BaN��L�Dz�i�)92�n�y��k&1�p��S��/��3\�f�7cɨD�9d� 5��ccj9����P��~�o���1Pxl#���q����w�)��ʎ�����eE��ܰ��$��v��܆ǖMQN�o܈O"�E7�����5e̊�l
<����Sn��)�G�>�5-(�1w_�ǖsQ#�6f����:T����������0oT���"�����)μk[�U²�4{��q���íe�vPռ���}V)%i��ߵ�V��O�0
R#8<5iw��4��I+�p<$- Ĵ�g`S\��_��&���Qރ!W��Q]S���ۆeA��tj�ɟ�/K�@�Dҏ:"G@
�>������k6L��:p;���E� ڃ��&���S"��l�-_��0��DB��848ٱ�k3g��}�|ݼ��UOsʬ�ժ۱�����_lD����ܽR6X�K��D����ĺ�ln�]9���͊�A�]��䡛`H��0���5R5����0���D7�=R�;���z�-�DJI��Ce�B�R���E"`��رI���O4KH&1����iC�t]����?�ĜM�<��*>mZCC�
���{$)N�e�9V��j躊i(l�{�US��LB���G���H�%hB!a�D�.��
������yz��\��C@s_�K8en;l<���S�`�UG(�iBjyk�z�煃�/F�4�A7�0�~I�ܚ?���O��ԣ$�n�2A7�X˾x���:��.\
B<���X!����U��ڟ�:���x�&_��)�M!��=����%ÞOvR!�fo�dm.mA�s�a�{�k���U����"��"�D!�hD&N4�=�.�xpˈ�PC�a�l��\p�l�Q����*�|�Mg�2:�)%BN��d���dfQd��$>�hwr�T�H��`^g!�D�鶕{�M��nۧ�j��H�aJ���<7q�%��w��ͫU��
�$���&�|f��;�S�̎��n��d����?�j���EH}"�1�������A;�"��j�b����:����i2(�C�/�M݆���[Ka�������R����y��L�]����%����E��R�*��c�@��bW�)�t��s�Ǝ6��Av�
P�Rb���c`�Q-A?���**�97��I�����)E�,,M�oU��]%�8Z�Qƺ�K>���J7�M'ҳU2�t6���5��ZϺ�⊌�+�c��"��x�C�2���m��J��E��=�p�[/WM�}�g��̽����g�k����% SG
����!������Ir]̉���%��<M�|^��_(��m��,��6ӡ��'1]ӑ1���t�,;�e���
�K��T�xRCgX��#�DQE�
��(�j\�eT���iu-���δ��T蓋^Q����ڄM�6�ܸ�b�_��VY�~x���F�VE
����~��f���}���旯�8�|��5�ܯ�0L�%�]���R�R�O�4�swV�p�֞��P�''�k4��䓹�G����'Kdz��<���ls�;ё)cft���
�:$uc��լ�\����g��;eIՓM�Ưp��2��_��_�e��e����~�%����IEND�B`�PK�{�[�@�K\ \ images/icon-32/report.pngnu�[����PNG
IHDR szz�tEXtSoftwareAdobe
ImageReadyq�e<�IDATxڜWk�U��3g^w��}���n�˖n����>��G
�AJ�A4j�~���CQ L4U���AD#�bPZ���T[��"��m�����{�ܙ93�9swK�Q'9w���9���ǰ�o�WrX�@�"��U��M�n��v,���:��^8�#�Q
�Z9��{q��8��P�sG7��<�z&�^*�a=Bm����)|��G���1. �W��P�
)]Ӈ��]PI�=`��^Xo����a_n���yh*M�7��l8{�����h���轘^�.��n��fA���s�T���7]�7�U*Uw2�|��,��Qz��9���r
�o��֕C�\'�����V�Dߪ��X�x6�:�"=g0v�$sR��9~��t�5%
�:d,>{sn����|$˒����,Z���.7��&t��v7�$θ#bc��Rx��E��/lZ��N��O
,|�aq�hH��X�&q�*I�Рp��@F�����<�첀�ߴ�.�����ȩ
�}��DBVYK��>m���A�W����aC��*���-_���Y�Č{��7,F���K����N�÷��K�L�F�m�@A���!��ѵ��DMu��#��������-����)r�ID!-����u�|��.��&�2�����}�f~RÂ>ڋ>��
(���3ᚸ�����ڋ�~dz�-�k�l�ř��Tp�����O��+H���44��X�G�H,�H�$��w�;�$�c��D2 ��Kf�j�DZ#�fB��%���M{�s��+�!&e{$NI�hw3��
nhF�
�Y�i�i�,��{ �U3�)�Ͼ3g"J�X�s͓88� �قs
�u�n3Y�ƹ�j3�$c#��h�e
�k6�V��!#�.FD���걅e�&~�~:y��U��E�&�dje5�֑�4�' ��M�p�,"�Sr�9kp���p&�g�y�P�>������d��x�D��ʴkOׄլף8�E�䇳e�JU��H���6��P�@�@;g\�I�6x��K����y���Q]ޞ�^7�Ҳd���Ƚ�*�ᦱH������M�7_t�~iݪ�ۓ�鱉����F�\]�z�G4���:f ��VpE���K�_9��'����F�;��Z���R+"�
�
�[mL+$9YȜX��z�R���(/����(n�L��J�F<QwD�%�$K����Fu�c�ڹgt�ze�p�v���c�ӎa�j74@oX'GVh_ļ�M�@���Q��͏X�&ĝn�W��䖏^/��������$1�T���l�-Vc���<�'�S�/\*L$4a�4�d��?�������It���M��k)^ee��M�'�y�Ç߉�·N0�:+�^T�~R@�i��%]y�v�S��_���߆�[����e8l��k���*���@y!g��T���֊
��%:ܔl��,v����W��0��Ch��v��R)�5�Q*���*0���ƣ~�x���"ӡ�8�v��r���ZF�23�hC���E"��x#�6���wy�vה���8'���^v���gǏ�R
'>���>��ȃ�:�|&h��:�(Ӣ��
��X+v`C���?�E�Ζz��']����C'?��W��?{���<W�t-�?F��Qp�c2X�w�V*��#���$Щ�di���pĺ���}X�<�f�9�i~�I���LI�������45c����ꐄ2�i�PB4�8���T�H��mc�%�l^�b�^�j|c���xww���h���
i��V�����!�,���l�3�����Ra�2]Nˡ���U���ё�<��qV�R��MD�
>rW%kA:ӑ\C�6����N�n�6�m<}V'%�zӠ�f��B�����.�8�p���mS�9���jKuO����t���U%���4âh�q�qk�-����R��f�إ�0j��U3R4�U?��yǼ�},�ڷV�'FX�X��vZ���Dj�OX��ukm
:��zE,zbK��ߗ����G�"�u)����BYZԢ��Ň�=J���<{��ю�`�`��K�e�f�8Q�5�?2-
%��a�b�w���v�=V��d9��{��)1
S�l�5ʤPf4���Vp��q�H���7�9�H�(
��s��R�S���_:<���
eV��jmv�ϭߵ���Nˏ�K�6���l�>�{H�9�b������T����S9���6�"g)#���_�F�W�
={����d�_e+Y@Z���IEND�B`�PK�{�[$L��images/icon-32/save.pngnu�[����PNG
IHDR szz�tEXtSoftwareAdobe
ImageReadyq�e<�IDATxڤW[lW���v����I��M)qj.I[�!!��R���P�x
RyB<"�>
�"�RDA4*т�>$�Pr��I���/��뵽������3���C�:ҿ3;g�����^:=��CU4�\nagϗ��D,�'�������g�}T��q�~�q¹B�N����X�Z��s����,�{<���f���}��cP�#�ҥ^5�KИ@�1�w3��P�o
��#�x���8_2_gОWTd?��#�8��WB���͓*��t}
��P�]�"�w"���,�1uy
�^.���Op�
�4u�
�?V��(YWIq�@I���2T��c&\/ˉ���"�����ֻ����߰�5M�ɝ�����x���;mz`ΜEѾJ��`���"Ua�_�0E@Q+�P�ѺCC�J:?�Iz��Nߕ.ܖ��#��?�*^%�c(+X^P`
�j�J*�<,�C��
�6���>��^�?���?�+�Ĵ���o�T�s�}�;mM�����R�
f/
��C�㛟�5�\;��M�%#t#�"��h��p
�r=8z�E|��WP�Ƶ�5�itu��c�f����mH���}߳*&��`��1G>�}L~�1��C7(�u�̨��q�B���s�o�C~pv��ctd'����
�N���0��A
�<O�/�`���c�ߖ.\GŵP*�0X��voFGU��*e�%SV���[[�1Գ�u��YG0$��VUa�-��/�+iڄ�qhca���z��2\Dëb�\��
os��$�jG�\F��BQ��G��5��͗�\�Ћ����F�)L!+�o�/�x..����'S�
1I��v���02�K�'�_"�7��!S����e��:��e�"�ʃ��>
���8q�/`=]��b�җrT�5�XC
�C�0J���>�v/�e0_��m�Hc���N�T��#�_�EK��Q_��t�R�m����
M�[̓�I�v0
f��2�K� �V��-��X���
������>�Ǘ{=��Ryɼ�¡��<�PV�G7�%@#W�s��tW���T��rH
M�]�%c�m�o!Հ,��*�(�}
n-��@V8���iQ�(˔�~b۴oe�9�*7���u�L8U6�G#��2�Y��K�Wp(+�ȮL�R�
)�Y�����e��X�=$3KwUhZE�TOE�b��m�t�/K�-sv�Δg���2UCO!��*^�y���p��_�
`5�����p�J����M��CEᐊ�:�]��:B����S��&��N�L!�|!�?��'�ab����)����P����������K���N�+�t͛��+��T5��g��C}~0J��*�8�
�F>������1��Ip*�;��^<)��{+z��Hg���U��Jf�
E�4�,�Źp����������=�����O�=DU.��;����r���L������C�}�xo:]g?��$ϩԮ-Yx��D}&���׳[~����Gg�fi���T�W��!5���H?�B�9��D���c�^��ױ�����Sg���y��?��WW�@��؞� �}d>��K�"�]
,���
�b`
��V��(4�E#-�߁]���A"��2 ��s�D�|硔��]�����ȁ��0�%
X͖]���as(����W)��0<4���gp�Y\�7�]8�z�������l�7���m�
�2�������$J&��MRH�S��NR�?�kTdB�::�18�YC,�⼝�]+<{�l�
ʮ@M����ޙ�B��1A�����SN9�l*�X|�S�Y�Mç��=�Ҧ��������`��h���5;����L�ߴmhcN�5��aQU�~�MF@��T���V�z�P5]>�����'��`��OӍ/�&K�sX�i�����d�k��r^�5��5��F��X
�ԩ�Mmj�>H��
M]:I���h�}X��8m�)�'�I��L|�t)��$�n��l�1���ܮ�½[��k]$��E��i�s��լU���;R�US��C.�>h�eceK�O��a�
�n��o�h�Xy/_�z�,����
�50�ox��?��E�Q�IIEND�B`�PK�{�[r
�n� � images/icon-32/savenew.pngnu�[����PNG
IHDR szz�tEXtSoftwareAdobe
ImageReadyq�e< XIDATxڔWyl��}3{_��56�$�`piC��
�
M��J����R�J��J��!E=T����T�U)=B(�ڦ��ahC��
���.�z�Ϲ��ٵ�&@�H�fvg����{��˃X<D���ݔ�>�8B�fD�'�ww�IJ�y�sޫ�j��i�\������L|4�_)𞡳��"K���f0L��n���/
����u��e���zl�nnN��D����HlF:��8&��~v38xS��t�>��)xC���j& T&dzR��0&B`.8�
��fx�0�R×�qvp�r����x�b��ƚ:_�kA���e#��<J���r��)��
:L�n�
k1� x��ѿ���3�_���v9�on@��7:j��
�Uǃ��� �Qr�P$k����i1�Cb( ��7կǚ5�B:ۛIt�
ޖ��u!_�+�];S�Q�<�bQ�����-V"��҅H�Y-��������h�Ex��@`v�ߏD���B���v�FBŹI����/[�FY�
�T01ԅ=[��[��R�ل�d��~��d�i~Z�r.�'����>�ʑ}�2���:������:��e��9zn�ʫ�����=Y��-_��k�E����0p�n�
w��"];�2We�^�O=z�n����؈��x�����A6GY�`c��X���4~�cL��u�v���t�#(��RY����qݦ%uT��R�j�����Ģnh��ք�!�0(�������x��Ms%�(��:ϺC�rE%MF4�s�Y\V�hɅʗ
Y�*}�X�k���z���4���nttz��a>���!|��Zz��8d]%�a��kQt(JnGj/�:.��A*;g��`R��BLRoQ�$�g��j���C��wp�ٖ��)f��"�V��ˤ[/��(*NA�Y7
���Ǐ�
,ܲ��&A
&�|�F��F�p��p:�CfV�S6�po�]�`*�
q��Hi���\��r���GKL�.�l��r@������D��4�rd>SM�������,��^��5Մ*�$łA/+hq�Kuok;����C��Ć�~���E(
��I��.���fp�^J�J:�8U!���n6G��x�L�^�$+Uj��;��S~�_�Y��Zye�A9�DH=
�膩0H�6�*xv{��B��� Ƨ�Sn�8���_����7O�RA���/�P�("�����6�U�p�\����̈́Va���N"���;��J������9�%��T�ً'��
'A8H�U����+�\Bi��!�3$�@E
�]���#����й��H�-ȃ��.ښ�I�Mv)>�����\��n��K�l[5;�܊9��g���W������R�߿����^`R�����Ѕp�zjH����EkC/4���%Rz>���85:�]����.L:��Ӎ����k��F�B�B�~�KF��=+{8���5]�KyG�4��3v�ű��~��,顎�L�@��lm�_��)XP���ۖUR9�]e������S/�Pʡ��^�6u}L�?f+>guQ3��t��kH�g
�sض��4���@�X@>�'��?Z�R?@��@�im�.��5�-��q�"ᘺ>F,d�^�!�D��YZ3t}��r�����MF%|p�_x��I�6�B#ift�,|��.�S�؏���d�r~�o�噐��vC�����&&'h����LW9D�TŊ�����ā���sH��h.!D�2SL`<2��-FG�!:������$ӓ��Ӷ�b(e��Z-���1����H���iT�hU��*
TMAC]36oz:����#��h�o
��qL�)��hy��H�x�|��v
�>]�qr�i��D��}'�V��8���MJ�֩����6���}�2[�JŹ)���_���mmU.�u�**�l3u�K�h��13�Ij,D�)Q*�}��+��`���
�'���F���X@$CtJ�G����n�-�.wթ���gj�v>��2��>;���Ϧb��cӆ��(�T>i�������F]���f�G�y�
��q�F:�ù�c�Ȭwq����?,*.��ٿ��06\��7�S¸�p�}{[���E���9<V)�tc�}���9�]WK�E�Fl�x����5{�ѫ�'����`n��L=Ue�.��a!�R����
������V��6��fkz�T�Te��&JC��'���'O��׀����T���{ք�y�W��:�{G5Z�F���X���Z
���F�n0,�(��Iլ1�R���&�Q����z���70kf�0c���j�`
Ay�IEND�B`�PK�{�[�1�$$images/icon-32/send-email.pngnu�[����PNG
IHDR
szz� pHYs��~��IDATX��olg�?g��%w�}���t�VeqѺn*�K���"�u��-�Ә`� �+�U]� �&ޠ
��i �Hߠ�Md�4U��m�B����P�^Hm���w�����vRꦾ�'=�����}~�?B�N��V��Ok�L�b�-�x|/@�T�s6��M��p�I��fS��=��NM�FM�Y�vfff��ÇO��'9r�۪�n2�>�4LJ�������vEQEQ�$ Q�}�����7��N�СC_QU�����L2��jF<�H��ٳ'��eQ�e9�F�A��_ϳ�mtߑDb���n,�trr�d2i�۷�#���b��
t�ʓ��pG\��Q���B��$���֛����Y*�2UU
]��!�~oA:H���=�,A�h4�a�na*��#I}}}h���(k>n�a�);u^;�B��e�D"ѓ�fS�z�P(\��j#�f3�E���"������!M��r T��E�ŏr�?�CK���r7jl�H�A�.���l'������uwKw>�@$�#��Q�aC�I���h�x!�j���z��n��zyn���UA`�qY*Z���)��i��6�]�;_�Yu<�#\X*��
,-��Q�k<�}�ܿ� �]�A2�K��hP,)
ގ;B�tlF�r��~�,�-x�wǙ��yi�=M!=2��������l�B��.^�Z(�(����^ +a>��{�u��R\-5]�N5�s��ʛ�s���?x�|��]�P����e�9�J�
�8�%�u�u@We��<���2S�4�����{@zd��?��O]U�U�
�]�'�6���oI4m��V l�>�Rlu���Le&��t���g�ʤ)�5��/��BWev��Q�~�R��
u�xчѴdX k����0����g14����gr|8Lģo��Pe�2i�2�
e���^� �
x@��D��wVF��]�@�L����<o_�c�5@
=b2�бl�����@�
0N�&z�4�o@ن��C�����oz?\�������`O�n��ϰo�]�z�Bd�n�zʋ�'�r�J���Up�H�;b���l�-�聈���Z����mLv��7&�z�q�<�xnlX����
wj������r��(���ԭ!�^ ��i�u�}�u�<�u����Dqj`Y����z�����3_B�ބ�eYs��Z����j5|���p�hI�X����R>��q�K�e�T�}�R�Pg�:Wf�3���n�C�cǮ%�I��m۶����\(.V��E˲N�w��(��u��fn�C[�س�<��� "���[>����4�o4�1���n�٧��|.�"Oz�� <!�K��@���N#p?Oy�?���S�i|�x�:��s�z>��ɭ�m�~X�rq�wʙIEND�B`�PK�{�[�
,�F F #images/icon-32/shipping-invoice.pngnu�[����PNG
IHDR szz�tEXtSoftwareAdobe
ImageReadyq�e<�IDATxڔW[l���wۻk;6,1���)hS%���rI�6 jU)U��m�V}H[�)�R���)IEi(�A ���
h����������wwvv.�gf�����Y�;�3���Qv~��66E���� ��X���a�t������J?���E�sE�5�1�����>�\��3���ڂz�$D*O�Q<�TPG�8�@���q���5�M�>��C�,��T,�9c��1趠��s�6Q!m�ڛ���S��B����������ѵ���g5Ms��j�ՙ�
��TVp�$��
�Aȫ��e�Ĺ_Lہ�z�<� Ccc���U]o�ҍ;�ј[խ�s�i'�u+#�d�@��uc¬
b�U�ӾD�bcc�b<�hԴJ�R�ή�7n�i��J%�>ҿ��"��R�*z?!�$��8����!&¡�rU �v]�b��+V�qk`@)��>}����9��A8��,>�m�
D?�\�����
�#2BF]�m��J�P|W�
��9N�W���+E��\��W9�>����J�M�+wK_!%����F�\�C�H��"�uk�g+VuHP|��}�͂[O��L�C��ETZ�M��to7����1��y��;�x%�P:���Q�*�TL����}�u��OO�@AU\�C�A�D��=c����+$/������H�-�'��C��9X�!��m�X�=��� ��e2k������5���QZ[6ˈF#Љ[d�ZV���i&�J�E��C��/Ivr([bN�ç'��J�&��A"�S7���ʝs`�w�&˂��+tC���o"���0>>�t:
���5䳹jN�D$�)�xU0�8�X�3�+�XauSo�"D"?ћ�����!ƋG�A�}�����DW����;g�8
�2�Ţ�t�А�\��d?���#ҦsH��0Y��zr��mf��8Z�1�8�Om�X�z���I��j��V_N���n��V��4t��92ޒ1cD/�M
�Y
��yɉ$���V�q�ߥy
��u�k�Jh��'|�B#.����V�Ppr�h�,ʃ�a%��5mJ%_Yg,�fȕ�H��dɒ��潮q������cŜ�U]�͡�fr�Rx�"#���-��2~��
)��l��i4�'(iJ>-^�n���Z��B�:'+��:wql�$\���;�ᡘ�uHn�}%�5Q�;~������¹s��$HF���]+ݮFW�BF^) d��k�=�ԝB�j�\&�U\�n�k�v7~Ic�Svp7�����N����Na
Ja�d�w�`P�?�5��h�y4����]�S�
d���.��[Z��kX�{��MM6f���`�d�Z���S.�@��w���~���dy�Ig�.'c��`�\�;Z��ZwzKӚʉOIlc!�ª����6QN� ��SH�"�YE�k�Zޥ��s@f���W��?�m�p�%�m�ӈ��"��.���#�!^PI�.#��,,���ض�SqM�>B��+z����a�ӟ��O�.e�=���C"�A�EM�#^��Ѽ���2�7H��]����_r�gMv�6�Gn)��qi9�j�~i ��a@�"��$K�e���
?ǗR*EjPbf��Iե�+N�̽3�n��/iU�=�)��T�"0"
mˈ�+s��S�۬3���z%��O9s�nK=Ѥ�Rz(�m�Jg�U�7t�.@��N�|}�}�'��{V��S���� �.B�O�]<`�TS
[oO��\'�t�]�~j��u���߷1�LH
��ܐ�&E�3o��5�k���N��mh~�y'םӶ��7����K�^�Z~DD�B-'B��U�^:���*9�G#��v�lXj$�,�`�Ԅ�:��_��_t�}�RR?+zZҰ�i��/p��+7o�L�d�ߴ��>$���K^x[���(G�J��֩�k�bq�ص�K�������d��'��z$������Y���?o��:�&ݹN������c��Ҏc\��eÊL�^�����f3?�79|-]�km�DU0_�U��I:�M��"�'�Drا^!�W\��k;��՟�!_F��\6��W.���,���h��?lfmɓ���y2��<W�X�O_����1��a�Fr���::ޡ�"��d�I�vq
����4U�B��#��C�s?0���sS��s��A��z�[���u")�Hꃞ>l^ӎx$<ݏ�/�L�0���IEND�B`�PK�{�[6o��� � images/icon-32/up.pngnu�[����PNG
IHDR szz�tEXtSoftwareAdobe
ImageReadyq�e< �IDATxڌWI�]U����NOIw���i��CF�B�E$*�ҒR6�"�Bp�ƍ��\(�BW*RZ�b�qB
�3�C�Iw����9���w���KN�7�{����̣����4MXV�p��f|��sx�ŷ0��o^سs�+���b����İ���VéV��ԋ�
�=n��Qh�)
��e�1���$<_n�<��X��T���`$�n���ڭ��9�Z���.����3Vz��?L]{V�Wߍ�1|��c1��D���z�ɶɑO'�'�D�|�p�k�({U�w���!����m;����Tk_��3BGyt�=�`�z��e���5�t~C��*t,9�+��`4[h\zH�zWhyU�G��I�ن�Mc�k�;�v�C��#K�] ЧVnC�g���<�[�u|4
u�����W��՚
'Ē�0r*�4}���c�(�M��Je��j-�'ni�L@_�2O���3?���n�l�A�+`M�?�ߣ�b
�8���N���+�/�qh��6��>��X��=��#L�T��1��vO?�҅�
�'�
\��C. z��/Ύ����;��V�m�!�O�>á�aX&N�;�6�#�މ
a}���%!ea�։�s�p�n���[���am0���
FS��=�$� |�;P]*��uh��mOq�n�p���Ԯ��97O�'x�(�Y����>9��Ct�.߭��h�lO�=��p=��i<�w+j���$!��M�ʊ9pp/�BA
�$B�F4M�MnD�%&]�m�'��펃I�3��c4o�����>x�y,lE�$�I�P{z"��c�cc�rۮi&n�o���<8�it��<�"p��]V��g�����mgV�8|�2\E���q�<x�s)�K5Hߣ'$���u�<����ngդ&�+ו03xR3�]?,7��j�z_ew����
V#~��x��e��XD�
�K�ޘ�f�q��&<v��w�8*���§Q�������fF<��w�7!������� 7��6��f��^E*ƚ���e\y�<��
|��^Z�wjg�K8|�8^?/�`���@^�!\ǃ�мҀ���lC��
˘�yN���\f* 3k��(2�N�Hrx�}�}��$z$���/�i�8[^A���,z�6_�OpR�p�|IJzؤ�+P*3�k�.ֲp}��.z+
�\�ԁS��0�ؽ�9m&��*��)X�<|�����R�b^ׅ7����
�)e_� ���v�_Bpֺ������]�d�1X�
�c��2̰�5��J�^cB��I@g�=ZU3e<�wM^LO�+JJ�U��I��@��Umg��bJ
��2,3=lJk_����MA)�Y��4+��t$��s��8
����B�:�[*aL�X� H�捵��Z��ED}V$�?�_���ܘ��i���P�v��<e��u�%DŽ��1#�=E&W$��
�_`�0i�:�
��.����\�-ڮ���*�2���W�^t�j���l�È��P�#"���"$�-W�"��viy�[6㟢$�u��ʊ�.��A)v[]��p1�J��U�������/�I��U%���?/�����ˬ�T3�Y���l1�n;fs+t��b���x6�T��o&�2�K�T
�b��8c��khWx���k�u�<�d�v-�9�����Y%��H�m�C)��7:��[���r+�{�_o6aObS
�ۣ�a��l�c��ï��o��kd��z���҉���zy��WH�x����14-4/�
m},�_ضq�°���$�z�_��O�t<fr�`ڵ2�V�Tfa��0e
Ž&R,Ù���*N{��J�n/��N�(�}�3a_N���R>��P&�9�(ёAp�#����w)�i��K.K
H�DU�όf�%���ǡ{��TW�|�����|N�n��;���E���T�2��KO��Tפ���-&Zm&,dR�l�`s&���K8w�$��tW�s��=/=[̈́FD@٢�7?��*���˕Z��q�o�
�FƲ��$�G(!�hQ��Lg��L4z��8}��4�9[_|�;����#�ں������_�9���5�!G)�*2V����]���� %T*)C �Y�՛,�&Z�&;_��5J�*��o?.�x��\�����z��G�!t�[����#7��̎}���CF<9���m�On�-�+Mz�+��۪^���^�k�h-�:�;��c�"�nϐY�\�ދ�d"?6�L#�(����^�:�V4������E����{!�W�G�ŀU��fd5���R��5���(�f���}A[[r��/��
0U�G�2�IEND�B`�PK�{�[Ḡ(� � images/icon-32/update.pngnu�[����PNG
IHDR szz�tEXtSoftwareAdobe
ImageReadyq�e< 7IDATx��Wk�UW��y�ss��f��1���*B�%�jTZkbkk��R4jc*6�4�Mc�
6�j�Z
M������g���@y�3�w��q�y�]��@�����;ٹ���[����aB|�/�K��dF��1@��i5�U���s�TfB��hf�ZKk���j�L7��'�n��"�0�|1��t`E�L��g[���fR�v#t�P)����;h��_�^#s�5�*A�tPB�a))�t�dL�m�|�
���
�;ŝv������"�D�GE�^����TW�fkS,ۜ��hk���*S�,zA
��G��#��8�����CQ�
E��Q:8���t�$�U(�̟�@p\
���l��D2�.`�7���cm+�l���e/X��M�H��Dh��b=�N�|�Q��g)��@@�Q�D�!\�B��#i���E�8�_5�ʥ�̙�`ν_�诼e���d>���.
��H�[�g��1�wS:L"A!6�X;������t%�_G��Yj����೮�l��g�.ny��7/�7��
�!8�W��V���[���A�b��MSa��I%0�p�x��tS��������i
�/�
3��}�7=�ښ�u2�_,���!c`I+��M+`y\*u�4�N`h�Z̊����b6�蔉���+���E�ˈNw�Y�����1�}T</�0���.y����m�}�R��GS ���-c��
|�f��-0�����=��mDa��Ӛ�춹�
T����3��1����05e���u���T+�N[���Bt�t��S#q:\�M��DuRU6�2�CR��;�����L2���o`;�"���ņ�
�^e}��T�/ད�H[u�����0B!g0��w�E�"�K��2�R&4�%�זI[7����/%-n�pf���;�a��&̨N�
����}��A�Nv�F��JѥT
Bq騀Ȫ��Ux�]�[)��D_�v J٪��덈��LP#�B�A��F*D�`?�e����R���TS�b���Rd&���"
T��eX�̋�`*���b{�$�6Rأ�C����[+�;���P���p?^
&��8�W��i9�$
�;��
��%��Kg�����d�r�<�p"T�9�N����oo��\��fT3��>a=M9�+W`�T���h�^F��w`'/0oju�!�p E��R���Q��X|���(��T�JS1CY�Z&�}�y�|D�P\ WW;�?Z�S?Dp����~@�G�MFJ�&�������/����I�Ѹ0��#љX9��>塤wB%��άP�E�M[�6u�����:�h���{ϟ��Ǵ��tv9Z�ِ�BQ��
Z�c^B����h���EE'���x䢪*�Um�n���(z�PM�?��m�0<:|jB¨�Q�.��J"��i/q�iإ
�G��� �A�|�SK��y2J/^�=�b6[����"��X9}3�-\��[
� {��rl}��� F �ҹ������߅P^FJ&&]@�'>��*:O`ncm\�%��3�绨��bU�w0R���o#�9v��N���XVb���Cj29L#���d:ar�P��B�X��d$������y��a��
��>�����'ڛپ��8
�&��R)0�N�^ȏ�O�>'�r�?"�~� '
��
<��C��,T�Ld����H�����'~a�A�ZS�P6�xݾ���4)��� ,� 疺d������;9�˱�8 �(�c����K��F0�:�t2�_Y�e����+a
A�b�;��-[����V{��9�o�ƶz�HLT7J}�e��v��o�gt��'LJ5�8�5!Q)�ӳ*ڛ'aA�TL����%+~�c`hG�uc��C�س�T���QH�^�}�֙(N�?KaQjn}�����}�C�!��E���Բ
RDŽ\T��g�����1IK�]�b�@h4D�lSD�8QE��zb�{��u8�}�����O������}GOQT"�Xv5)iy9��BJ�z��tsz�)I8c�S���U6n�x��Oclr6�
��>0�W@�9�1y��/
��Cg�>�_�ǓӐt�H�N�c(!��+���C/������2\s�`����}4����0C�^"��r�g4�O�L�L%d��Hi��(�8�h�3�r�]���(�B���x����Gp�1�l�h�����JV�Z
�}�dEbW�GFG�7�
�K�#�Q.|'�{2p�q���?�[��
;jЕIEND�B`�PK�{�[H�images/icon-32/vendor.pngnu�[����PNG
IHDR szz�tEXtSoftwareAdobe
ImageReadyq�e<"iTXtXML:com.adobe.xmp<?xpacket
begin="" id="W5M0MpCehiHzreSzNTczkc9d"?>
<x:xmpmeta xmlns:x="adobe:ns:meta/" x:xmptk="Adobe XMP
Core 5.3-c011 66.145661, 2012/02/06-14:56:27 "> <rdf:RDF
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
<rdf:Description rdf:about=""
xmlns:xmp="http://ns.adobe.com/xap/1.0/"
xmlns:xmpMM="http://ns.adobe.com/xap/1.0/mm/"
xmlns:stRef="http://ns.adobe.com/xap/1.0/sType/ResourceRef#"
xmp:CreatorTool="Adobe Photoshop CS6 (Windows)"
xmpMM:InstanceID="xmp.iid:03F8DD170DC311E4B81781F1E0B3F6B5"
xmpMM:DocumentID="xmp.did:03F8DD180DC311E4B81781F1E0B3F6B5">
<xmpMM:DerivedFrom
stRef:instanceID="xmp.iid:03F8DD150DC311E4B81781F1E0B3F6B5"
stRef:documentID="xmp.did:03F8DD160DC311E4B81781F1E0B3F6B5"/>
</rdf:Description> </rdf:RDF> </x:xmpmeta> <?xpacket
end="r"?> W)�
�IDATx��Wil\����߬ό�qlg��;�qBҲ7��B�)���
�H]�T�ЂZ��@�D�
� U��t����
�PZ���b�i�8���dz/o�v{�@pZ!�?}ҳߛy��s��}�9î['��!
�}�q�}���Ʃ=�l�cяI���e�r���ؖ�����6\q�o�:f���x�������V\�~��:.<�?`t:}��ɽFݖ�Ӓ�w�龏�f���ddǽj��>����
��>~�j�U���2��e�ݐ�Q�=)(�&��gZ3�2��/�?�Q�C,�n�؇�Dq���Z[�9�%�
-�AY������
@���_�d��0����'g��6m�ݢH�~��f�G-�W�P��S���x�T�7��q��Hq���ŃH�Oܻsc���kJce!UA*B���4��`�t��R�c��d�yk]���h�WJ�>��(:��h�
�U�%�c=}�T}�So����c�����U|P�[���,M��`QR�<�6wۛ��V��8&��l@���U�x����ұ�rߵ�'O���wb�����t�p:�A�(������{g�2ң�%�B����i3�`r��_;~u�۸���7�+��8�c���_Y���6y���c�&x���QT�Uѿ�=�{7�)���c�dŭ�rn�@���v�a��P(K�ҫ��l��5��`ޢJ>�B��u
��Z,��g�c�x�`meO�顾n4Z��'��Q��d�Gθ���2g;��$��-�K
�*���o�Ƙ�U�2ԇ<e��?��|2�4�� �:�p�
O��}������\��0��y��c��B!��j>6���.��^�C]7r�l�o��h��9ʭ�ʡ
5�l��ˇ,繨Δ� *�GCQ��H��
�7��K["��OGX�5�%I�=��'&�?��*����Q?"�\CE�uB�Mje�W�%��`s�$s�x�x8U:c��q�4�R�"uv��
?��c߸�o>m=v�̣�K��̶xm/P$-и�P=]������}������D"]"�0��3���Ŧ�=LMd�e0�cY>W<M�ꡄ�^��𑤲^
�Zj8����Im�k��
�����"�,YF:D����4w<pk�3�dj��S�Bdhʹ�"R��1J�xj
��_��xE
azF�"�ޡP�hbnf��Ȩ/��V�� �;�;�-�yh���pw\����VA.h�]�q�5(�<��8����n:��K2���A(�
�wP��F�i|wq�|}߱��W�8S"���5�������Ꝯ�^9^(BV���b�\�$(
�6e\�9��1<_�E�3[���嚌6(�1�Ρ�7�����Ux��q4G�s�z`��_��i��|C&yէN�1_��C�Ӧ����*�r@(Y0����2�P�D'���"��^���'HJ��Ӯ���4��������l��3��M�d�*L�Hh)��ɰ��ěp�K���$��11�����
�4�#�BS�l'��K���LsT��H� J��Vi���#X�S/����3~62yY��(p�V�L��v[u85�lT!3��[皂�_�e�ThX�j=x��{�Ø����
̩J͉�>A�[4�hF�X6��F�|{�\�8���sY>����jR/_<Џ9rE6��ƣ4���jrCB��۲�>���j
��n;�ӡaH�.��l���N�
�3"��E:�V%�0*�O3�T6�����e��/Ϥ|�
M(1��Yb<��x�+�B!�ʼnz;�wb.� 1�Q-M�I��d-кLג��I�.���D��d"�,)T�(���JtL?������GV~K�k�\�Yl X�?�^��y��ӈvO�s���BoLar�$�$1)���5a>,@N�4D��F���%.�[�����7Ӌe��������/Ǿ2��?�E֚�P��k���nMUéH\z��6��3��4&OG"�Q1v[�3�pG��tL�8�+����y��Fڔ(
��Z�b&��R���� +o,��U@D+P�H��02�m����e�s�b8;�h�тC���˱eE*u1�I�gy��
C>�>�C(nӘ��)���,ڔm�:�=�����A'�k�b�٣X۾G0g
'WdK�}Hi̓���zlf��:͆��g�j��b��(�`L3��\%4H؞$(�i���0;кe7NumG���]��M���4;[k◯�)�x*�o/�+�MĢ���q��K_&�ӥ+�d�ElO�`Mza�����;�:�;Wix�p�.�]����=<(~/�Z�@�;d.��v�"{�&
%&[�5��#
��w���e ͂q2)#C�S'�"��S�[V�7�����s�]M��v��>M�B$�ɘ"��I���`n�[v����-
N��Ξ=S����,�"^.P��UuV�ك�J�A�
#]l5]�%����8�A�D3�Ѭ%��Km7"���
~.�q�7�$���P>WkMmZ;~��CՅ���m�����E-�9n���">1<��n��8�+TuI����{���x���T��z�q���`�ܹip�z��+8��ǿ؊�x��e�IEND�B`�PK�{�[γ���images/icon-32/view.pngnu�[����PNG
IHDR
szz�sRGB���bKGD������� pHYs��tIME�3�
��)IDATX��K�\G��SU����3n�cw�1�l,$�B(^�)BB�쒀X!���H
�P�%�����Q6(^$D
�؉Lę`ylz���L���9,nwO�=��ł�JW}o=�����9
��&f�����^��W��{�#Ar�C�PI�\��߾��^\�������o���r=���$W��>z��B��hv����K�����f�p�h��<�d������N�C`f�X�֮?������^�mm;�z�K.u2�������`�!vs�W.\45�'�d
�A��ă8dQ�����˸|�%��Ǐ}�_^�p;&��h�����{��H4�G�{��*���kÈ�R�^e{��X��C��C������,���c"!��Y�
��*b;��ٮ��J�ʣ'�O�p"��P�c�6s���o���{�i/|���'�47?����R��ʏ�d.b)��U+Ŀ��D���q��
�q
�L���I@�Z�c����0,�M�k�ȷo�-/�G�U�@�ٱvP��_�͍
�s�Rc�=mV�^%?~|o�b���?))fF���p�sn�e|YC�mԛ��~߃�5�1���E�ex� !LA�x�j��Ν�R���
>� Y��*��!!���?��Q�n���"Y��5���_SԌ01�����Tt��='���X�t��j�J��W��Y��8X ��ДU�(�)e��E�����q�NpR^s'"�x��ĭ� ~���wm>��yfFJiדϡV%�F$�1A"&�4���{��R�0a`�<�`�#�� i:Nʀ'B�"�y��Y��Wu�ڕ�a�Ȝ�}7�4F����M
��%'�8\%������x�Dv5�2�1A������eI ���h'i1e@42 �j��Y fM8�V>u�(�>����l9p�SDؗgeY�0�_����<�~��U%ظ:P�i�ӄ��2�G603̌Z���113�<'�2��>�n�"�@������7�Rz@m��0��L�6LPY��Ŏ!���"B�e�����U3B`x�ɲ�P|���.]BD�F�C8��S��t:\�|Ue0������
kkk���r��i��f�[��H��
T�Fc��'�N��1%B�F�^�̙3���v�M�ݾ�}�բ�j�ǁ<������se���{����A��7�pa�ޱ�Ϳ^��K��v�����ds��]�i!��~��?���"��9g�]o=@�����g?���p��z�����X���Y��{�Od�y�e��"��?:vd���߷*��"�aIEND�B`�PK�{�[[o++images/icon-48/account.pngnu�[����PNG
IHDR00W��sBIT|d�bzTXtRaw profile type
APP1x�Uȱ
�0��Sx�w2BEB��A
W���l��z�k�GUUUϒk�if^n (_-�LD
+
H��zP�stIDATh��k��G����a�{�֥@B�咦5h�~0�%mTR�j�Aib��DKC4i�%m5�ne�BS
)BE���uw�]�^����gw�e��}���d>��gf��y�w�90�ILb�����ij���s)%W}#�Z���v��ܱ���>)��k����⭖[�l���+�]ki�/�P�H�r�hoeἹ�fWM���|���RJ�s��K4J��-��؇O?3�f�^�B6�|)V=�YKV�E��)�p��z.�m���<���
�+)��SVgK��ll��?��~~W����[��Y1��EHD�t����v?W�����ه���||�c�*�l�yF 8t�Ѓ"R�ذ��%۳NM���cZ��q��N,^3k+��n�C�Ҥ��ʄǂ�Q�դ�%�|j0@DTaQ�zbX����RVV��<��M�lt}"�X���*�p�?�Y|��*�7��ʎ^��>��sj#L�w6�O�_��WV��Ci�y<����
���,S�}������:�7�L�J{_
i�ٞ�s!RYKE�p��<C�Y)R|�!�f���_*��֬gWE��˽�M�L84y-8�8q/�t"�1q��/�+�)�E�F�!D�+��r�c��F "/"���3y3Lj1�W[��H�\�t&ID��~�'�=��ڛ���6�ʲ��"0�[�f�lN
B6�ςٕ���B!�zM��x�O�e~0cT.e����RJ������w��X�7��X�'�}����h�I]n�Њ�iW��n]�;-]v?}-�ڟ�d��P^�G��!T�G�E�g��X�r%kXDj����_����W��/�����c��G�c�N�X�v��o��DH�/�ݶw���Y��5t��Z۶�O�M��+`���d�h�Rm�p�OQ�����+�B�1킘���
��o���?�~r��^��z|
�m-X�[�Zu^��Ψ���܊���9rW��V�Z@.��b{;/�v��i���!��,�O_?����� (u��MSSӖ���m�L�5�**������ZWN��Xs+Y#����T���_CD���6r�>����aO5�n��Ҏ�7Ƴ5�HWwww�acnfi��*'�u�5��Ʀ����¸U�X�.}�UVWa�U�l&W֓N�bSI���oN//�����çyd8��d2��c���v�����.Ѣc�S�\p0��b�H x�����,V"�*��$�O�!���<��N��F�;v[:R�>~�|�}�C>ʤ0F����QX���
pQ�dQX�Q��UƓ��EO����(z��[�.�do�;��v�=e�Oa�`�����F�x�D)�B�>bS��]Ɂ�'���m�����8�=��7ϒ!�'?�����lhX���^ÉDX*�t�\zә�Q<�&�8N
�L�!����-��El��X�
�j����*OY�PJ���ɓ,^��P(��8��.����9
mZk<O#�C� |[3F��F��h(r3�njj� 4c�"G"$ ����t���AkM8��X?�7��C����a/Č)����0x�p5u÷�ma��8��`I�]@b5e�(�w��o�R~"��B,�`|��Fރ��`5�jD���A�9UG��uZD�`�����k�PAX+�
�
���9�HFr�;��(�({�9U囎>�w+`L���ߙ�6����6�rDe�<�a�SJ��9;J
��*�"�(5�&'Ѱ�vՉ����ǿ�����ؖJb�"v��E
�L�a
D�CIQ9��:��9q��d�m���w���$&��c�#�IEND�B`�PK�{�[�{O
O
images/icon-48/acl.pngnu�[����PNG
IHDR00W��sRGB���
IDATh�՚{�\�y��3�]�wm�z}���
0�E4 ����)i��D��"E�*%j�F*MKDZ�(�Fj�FJ�J�����j��
A��R�!����؋/��:;3�|�����;k���H��Μ���=���Y�-��,����T{aa�n�K��dݺuLLL8k�_�y�V�����ȑ#��v?��c���Z@��G���P�W^��+�'h�Z�<��N����f�Z�F�$XkT�"B�v����<1-[g۶m���9p�رϜ8q�O+�
�f�j���cLyO��#!�����277���nڴEv��!o�SSS��=���ׯ7�f�J�:u�H�Z:c,���9ǫ�g��u\qŮ��i�h�ggg�35u��fdd
�z�4Mb�x����}��9!xT�tB�BDDشi+��x���UU�g�{�i���}晧oްa���!��j�s�r��.Y���o��RI������K�M9r�J��k�7��ڿ���j����Q��Z�<�YZZ`vv��s�
5?��V�{�핊�^8lzeV0T�&,.��}�ꫯ�"�T�>��S~||���!����FFF_�3��{B��j��/��4�
�y�͛�߶s�o�)ؿ�c����j�^��=�n[CP�e<�5�\+��-��i��
x���x��{fff�Bz�c����HGU����c{����133#{�\%����B V����luI��s�#�>��J
բ@:�6�J���S����j9���~CJ����iN�8F�&cz���.�JU[���֗��:t(�&�j���{Sk"iI��j�v�s&;&&&^��Y��h4V�=�>L�������n3:�N�ߋ���>�N�8a���f۹N�Z�j�H�<�z��<R:Џؙ�$!W~���en�$IH��v��֭����/�gv�N����L�qPU�ޏ
d�����v˺.�9�W����-���:�]�|��~�j�J�V��l�gdd�^S*B������399����y��Y�B����
��,�1�c/|�.��n7���g�����>ss�D�cJG���R�cx���&�Rۀ�y�f6l�P������j�-;�j�k��1�t���?�������N����\�����U%I�2}Qf��Z[v�~�Ǩ����K�>cI�/kmO�Q��;Z�0�s�
������{/�����ty�
��_�}�����q.'FKqf��˴�'�p^(𤽳�w���P߰��b>����0�n{�m�4-���~_˜<9C��Ƙ�~C(�����j�<��Z�T��X�e���\�@?:+H���F���Vֻ��-[����y��e�W6��*�Z�ֈ1�1*"��M�����aZ��9W�3�D��n�)A+"%�
^�����fga��C��:@�}"y����w�MtKQL%6��*�:��������c
*È���0n���=f?YI��x�>'�s.���N�<��O���O����ι�\��������O*��
l��h���c
=vZ7I�����d�m]�Q�mՈjDBƦ��`�gqa#k��ȍr��Q�7������W��6��<ڛ�4��zQ�л���$F�!�qlRA*c��I�U�O�b���::~Gb���l^�Zj?�[l���5�~d�l�)g�{��y�y�PC�a0�Q;�$L��
Y���?+X�?�
)�����5�i!k-��H���~�z��э��"�
,!��rI��� �$y^̩iR%D�k$)=�i�N��c7=�sy)k{��S4p姀1КW�SjM�V+�B)�J�r�.= C�����¿=�{\}���]���1/��!�����̾J�����۷_X_�<���
�u�~`2Ac�$�y��O�X@���%P��j/r����}��ع�F~|�|��M��8�K�w�!"��ͱ��C=f9KCZ���>����l��T�k�h�<��:��|�Lu�3�Ӵ���{�S~�o�������Iw�tG(�\?۶m#_��
z���1��:��t��u+bl��趷�\�Yn%M����C�,�� t�^Z�aCU�T*�{ǎ��-2\h<?J��ⲫncxIU�4��~i��g7^�S�Hm��Zh~q���Ջ��(D1@<D�6l#m��V"}�4F���~Dۡ3]H�Y@H���^����\��j���md(���{#�־��:��z���{���n��-�OG�s�����柄�O�ۧ8>;F�
Ci�k���d��CkN3^�G0����Mgh��Y�����b�w^��G?I@��E]6d�Rz��MHXB�����bL�0`n�G�#�=[P��.�"�%[���I�ewNNN^pN�kE�Ğ�lherj3��UH�an��\�lZ��&>�ahqށ��Yg5f�@,NM�����m��I����eH� �a�d����Wt)�KyO�.�ȡ� v�^*05��<jk˷��ZIRV
��X�=���C$�>Gh�BcbH_��G�� ���-f�O��c�+����<�J�7/&�
����w�v�ku�!*>D��)Y#%fҺe�Q/X�{O�ʾ_���I�r��[o'�l� J��R%mF/�#E�},:|�QEC(�����zLZ)��_�)��D������,�
�H����������.��#��r�$��.�(;��Z$ƈ��,[��s�vF{�A�V4FH��
T��)�"
F6n�.����J"��B�����0�L
-ԯo�Ԉ݀��I�v���z˨�*��ɓl��M5�"x�����̀�p����K�t}�CM�j}v�@b�ԠI�+�Xd�s>*�/~��q{>����>Ⱥ�S�{B(v�}v�ލ�'k�����~X���L�b��8�mt�����˩D Q1�EE��H���P�b���t'n�����o�-�Yz�T�"yo3�Rrx�1�S�+���}P�z��B��`��19O}i�jP�c�(�
`
R�ȀH
$�"��3�Faq��/!@�v�=
��dK��t���B#��U!�`dz��RcI���=�ey�TadؔZ�WfffΩ��<��QK��.:Tk=l9]�v��o�p�t���@L�
��O��<�U�=��f�]��=_�?G�`ɹ�w}���:���T}
�ހ�����d�����/������/��DIEND�B`�PK�{�[���W W images/icon-48/block.pngnu�[����PNG
IHDR00W��tEXtSoftwareAdobe
ImageReadyq�e<�IDATx��YylT����{{ػ����}\RScU
�0��M
!l�RQZ�R�
��UEՖP��*�R��ڒ����J =����wl����{��{�v��{��]��ԑ��7y��;~��{���)�^��F���i��r�D�U������C����ߴiӆ��h�������U����O���rm��n���������tb��<]��� ---��l���8{�,�Ba��q8��������fee!777h��>�<]oǎ����V�EUUx<^�>֬���T��G[�Yjt�v>����Jܹs[�lY�l� Q�&D[ff&RRRV4dh�R��"5������hXs���)n|<� ����Hh`bb�s���Y,.�1H(�D
uu:�}P��@$�`pp�P(���E~A�#I\ؘ���L��j��P^^��uJMP�{����,���BԦX"�ks�r�#
�5�M�@'�@�:�}�Pz/T�Z<���i�h4>rr:�J虗��[�nA�Tbrr�����K�����xi�>�wo��!�f�a��}��!3;��ٞٵ���zj�+�=��ZIi�c'[�}�e����ǭ�V'�gdBc�F��q�I^
��֝�5zzps�hNlG��P�瑐���
]�����!\�����'�_a�^����@�$9�
�����#����_�Ę���V�%$��k5j.R���姈J�#&5l��|/��dnZ=�3����/a�<
f�����gBN�^wbbb�iN�}y/�9�%��ο��6~�%݈+�aV�rbf$S#A<��X)Ĺ��6������ᶓ�7�t�δ}S��&�"=+;h�2y���,��Bv"�[o��h��lY6�D*C�\�o�\�ã(^���Լ�H�pX�` ��\��������
9m�j��z��u�x���M����zw�-E[��q�ֺs��*�d(���ٯ�{�
��E�hć�
z�w���dD���՟P�F�3際��"�:@���D!�P)��`�kRC6F�z�B��˹b�%+��w|�2�i�@$��s���������꺎� x�cڕX��良��c�8�U(ͥ2��1i�M,�`0���pEI
0p�t+�x�\�gչY1K���j��1BZ1�|e=��w>�i�D+q�Հ?Jvn�\t���<K����k�'��y˟�,Ҿ���*�W���,���0}�[Хmtt
z�-��pd}2�p�5B���!�.��=W<}�8=A�k��^�H�®�T��w�
y4J3+ �xg�t[�_W�v��$���~�oY��g�^�ID���5�[�Wc��C�j=q>%rs��9}��&<_pV�cMf䭅�f����G�W��-YG���w��w�����/e�v��/������ԯPs����W�)���}�1�T㕢�$�[�c{�Ѿ�� ���[A��1d�������O[�G!�� ���K����A
�]S.��:˛x}���a|9��x >�
�
�� N�N�Ǎo`F�% i7ٸ��Q�;��<f��ϜZ
sN���_�o��c�1�~�u.�:��
(�`�����p�Cwf�H̅g+��10.��������^A�E��S�u`k����e�sC\�M����z��[`��u���������6�>邬����$'fs�#�8�S��W�)p�����ɪs�5~n��4?_D#Fr��N!f�y��D�:��s�^̹�x-�"h�ci�,*,
�$��Q0�<
���p�"��Shnm�"ޱc��I�}wp��:y0�y���%� ��6�vX�V�8�u̻�Z�0{�Zi9/<�_jB4<SЬ��ᄣ�5����>LM�˦J�ZLXH�q�
�y
��晄�ˀ������zv��T(��ڸSr���JELh.<2�����VU�\��F�q~~>���T�Szr�1e�vX�
�~<6zu��]R�
�!T$fY!w0Ǐ����ى��v������l9��k£+�/_�Xi�̙3�ݽ{7����n��d��Pߣ����B)����{�.]�zR���O��B��lt699������Nv��5�L����l���Ç��_ҽ��HM�:cI�GFFM�=�_h��?^Z�$f�9�C
d��tl�S�d#�w�����tww7
�_'Z`הs���5��e*��#G�T���L��A��P�IEND�B`�PK�{�[�r��images/icon-48/category.pngnu�[����PNG
IHDR00W��tEXtSoftwareAdobe
ImageReadyq�e<IDATx��_kA�g/yh�"��IB�P)KE��/}
�b5BĖ�)�|�-�4H�Z1>iD8�5�/��-W��˃w��]���^Nif�fna�e~�3;��\���E@p����h%�6j�
�6h,^N�-�^�����?&�&�r�Q�yj��
+�(ڭPo��Ap�Ϳ�,���p���p��@�����`��jk��3��D6���W��{��ſA(צ�S�p�@��
@��Nل�upPA�j��
s��&��S���
�?y�C�o�nmr`��-?��1��i�?*ش<�Q�5�!��{|�+y�
��L+{�ڪ"=�`�$1Ӟ�����؛�3�xgq���atÌ�Z]!�pg��[XLW(|tq7:w��%������@��o�����`B��ċ����*�Od��9�9��W![I5�F��'��N��᪬���X��G= #%+��,F�*/�u�
x��t�GB\/Q��)~S
x&�^*eZ�J�6R~p��z�����I�����+�_��G��/}��#y�����Z�|�m�y��D��#��[2?��|�M�ʮ�"_��|�N}����WD@��`q�R�x[KIEND�B`�PK�{�[�����!images/icon-48/characteristic.pngnu�[����PNG
IHDR00W��tEXtSoftwareAdobe
ImageReadyq�e<eIDATx��YYl��f��������0%����&�RD���DQ�4Q^�>U�T�*"��}hR��>���CR�<��@@a��Cba
�s��2sg��]f�j�:H�|��;g�����_�)˲�}n��,�ݻ{�����;;p���Xp��wL�;�u<G���y��F�u~Y�;���l��#?ᐽK�t��A� #}�y�ɟ�2�0�'#�X̷��H]�3e���� j��1�61�U�{W�#H������0Ӕx8�2w�@�������rm�xj�їg��P���B�dY�q�Ō�%2���nX��2�[�4�|jz��h���hd,�B���g��=�k� .,wN
���M��s`��ٖu�@S���Ψ�(��믢�9���Vt�xڤ�!u�1D�<Gƺt`�3DJ�%��6�a��m��Ҕ�@���k
@��Z�
bܵ S|���&�x���ŵ��@��9(��D7z<S7%L��0�ύ*��p�?�������C��[��4'ZϾ��Pw9�}��co/'�IC�}��"��b�9�>��d�>4��j�Q�`"��M�иr`1����?z��6��H�˒�
���R�R1���:��d�&ڽ�Mo<Қ8�x�D�`�k)���|�1%�Ym���
!4���$
�2�"�֒9�D^�S�L/k��t�����j�n�5�h�!���'�V$[��]���F%�U��8]dʀ��n:��*G�\��K1�@����ڱ�pH��?�4xݜ
��Ka��l��t���r��0�O�&h��Ǖ��895��[����>��j��d|;���B�͉����ᥘK6�)�I�g� U��8I?��o�B��I�}�ll��;cU&W�[�,��K��|�l6�qbb�����څ��W���FƮbæ߀��OJ�K0
�T��hR�S+�^�Z����4Q�|�(�ڒj�D���>�i,
ys�e�g3z�N��VS� ]�ݣ�0�ȑ��_��x�-��^�]U���^��˸���3��v��q��;p;�DF���E6�;j�Sj�j��(�������d�H���/�Gv@��� ��o�fsh��-'�Y���&�
�h>�wz��|5[�.Wj��B��৾
�]^�3y;w$�����9s �����k+����s|}�����.ԅ�J@٦VY�w%�aQ�LJ�R���NW?ڍ���Cftttbpp��F�����`*��vls�FP���r1�i�ɾ[
�w1:2z��T©�����6(S��Ԏ
�
��vj5���r��HfÅ���?j�Z����n��#���3#�R$���H��湑H�mǷ�&|�8�W����A�n�˫!'[�Uz�<�����H��B����&��Ճ?~
��G���כ��C}�(�,iFfW8�bGP���^���z{l���زR$�
�Sf}�y}�a�A������z�K�����o��M��-
���&''1>>�@__@<Ni����D�����{.�hKFTh�Li���s@��F"����cʏ�2��4����~�����K�L&����.��s��
�k�H���Οbs�npS�����9��*ߎ����C�����Fb��O�ܮ�P���j�N��o!�'!M����H4
QH��K�"�R�>L����7۪+o�L�q���dž!�H�+7��J�
B��;�pU�Fʥ�(��N!��.\��?"��Ħy��V#��0=U��
ՙ<x�p�#@�H�Mg��rL�lo����e~�+�(7Oz�n��M�Pɾ���,��x���;��0L���]�նIEND�B`�PK�{�[�m
K��images/icon-48/discount.pngnu�[����PNG
IHDR00W��tEXtSoftwareAdobe
ImageReadyq�e<�IDATx��Z �Tՙ��۫���z�6i�� 6ň�@����I�3��- �40���N�!AMb2���&*�PA�i�fiz_�k���;�}U�vB������}������ !�_���y���-�Q=u��έgj�e˖���.r�¹�����F�o���G^rv���o��o�4|�W~�3��5��!#�6����צ.ߖ:cN��������/q{�Vv�忠�=e��u����<�6@��R�1�q;�
�Ƴ�>�ŕ�/|�;O����R6�9�漾�-������Z�af�9$��g�{G5Pl�iE��I|��Z�M �
M�DKM����_6CZη�o_z݂L��v���U�;�~,[0e!��"�{oC��f��-)�?���rT��3�uOķq��H�<b�gB�9�q�1���Ŕm$�l��t�����ƅ�h���߾��OM���~�z�:p�ų�,�oK���Y�Ӭ�E�N^8V�~�\T�V�a�8F~���4R}A��I���#�㤤~G�%ȃÚ�l��DfYѐ�׳D�\-^Ի���_8���9P��=/ݻ��E皡��7*����U��t�a���q�4N��m��\=�ZL�7
�@<�"H�N^�
�ũB!��H9q�G���(Qd��~ů���R�]:�����ٿفe�GN�%�CφU�x�]r�U�u�T�
BԩI���#�$�#�TW1�g�7�[�*b5^H!�Ր�|�����tb$j/���I_�V�r��;~�Z���[/���u�}��/a���?���f�� *�h�u����M�Et]4�"[�����w��b��_��Y<�N��C�+^�����=� �Z�4dI�0��߶)b��cb�r]Eu��\pzhv��ۥl��Ge�D����0���q��y��F%��~�{��z=+�L&=�sV��dy�Q
���C��}���,�NVi/
��si�y�ZuI��X������U��s-���!���.�Qs���Fȇ`bZE�����1��rñ�D*�2�2�x��$�S��";��55A9!�l�F*�y>�k���C��=1�Fq3��6�;���S良��K��v���gX�o�v-y�n����`��
�E"�i���?��5nj����v�$CE��*�E'�TxN�1P�
� ��SI�o����s,zx����O��==�H-�?4������8ϠV�\M��A�&�.c'cy���9����[s���w=Ez����MmX�r@Mo5��簑��(��Pp�(p�A�+��_ӇF������٬4�{�����g���ֿ�w8;�s�h�e�Ȭ<^�i�I��=(��XT2���I;tpv�Yكk��{�i��jb`��Ě���������5�^ր"��x��GX�_[1�뛤96�2�\�!F�Wʨb������@��;?j=v�:n/�|]��@�G���
�ϽT�|/t�£�t��ꢋv�MI�s�/
��z�
\7`/�h+�.+������kD�Ҥg�A��C�ƛ.��y|uJi��_^~_��1X뺈k����ݗ�쇢�',,�>�.P(��ۊ�8�9��!%@��>�8���ᤦPቤOZA�R�@��H��F���,�V� *�:�Dg'jC�;/���u������[鞻S�oޤ�h�h��#�t':`��70a�F.��̈��ȖB�w%LR8N�ȫ�A�gH�`-�#��)�$Cy0U��Dk��82�2ﰠW:EC(4x���#_s��)Yv�\��5��A��k��q.�P�K�r5DM�ф�PN��d%�xV�\@��� H���4��9h!�)� �?!6x8a�t7�Q_!��O� �'CD�}A���CpP̲�yv�<��v=n��a�|���=w|��#�9shN����
���^oe�~�=YbJ�p JS�y3(hZ����P�8f�2��&�Mz���j�
$9���$9��88]打h�
��I� �G��2I��鶓s`�;:�B�yHؕ��t��<�Z{�v��c}z+��
/�����(FS�RFZF^�Z kGj�S5��1�RɌ�I����H��o����K�@�����0����GH���x��7��3�GF��}A���L�^�B��2�?8�
P��l|�Xr�|J6��hׇ��q�<?��^�q1��7q��4�l����+Dz��D
��R5�����U�Dϒ��)��H5
7�"��ID*������Jj�t8{="�Mj�d�~
����
�d�f�
���l�w�/�3��|��I/���tUٰ�V]�!:`t
ls�oc��X'
a���z�I��H��A� GJG��x+I��&��j�n�5�I�`
C�(}��a��T���zqPk�
��p���)�Xb�w�^���j|�dʹ/�L��@��ͳ=43�J�
���e@����rxvȯ�L�>��b
��;Q7m�F�Aq��m~�X�A2� �ey-�A�H��b�1����6h�7��~�3ۮ�:�������u�%�&~�b~���JD�)��
F+����O�<l�h"%ֈ��5�B�;��4i��ps�mC@T�j.DAc�pe�R~���'P�9Ҋk��C�2}$I��B�Y
"Z�64�xMQl���bމK�j����ŷo9��!d�"�0�*�ޠA9���wjBA٣�5?��n#��B?H0�J�bo��6�R`����+;4.���l���.��3���
3+�3��5$��j2j��&��nN-�q�O�O}�2���z�k���j����(T�Ca�V���������c�Q��P��x%���B�XR'| ��6>�Dڨ���:��-ϑ�fAj�[E^��T��u�
d�E�y��k
���
%�15��M�d.Ag��M����Ev(�Ў�N��w�OP\�s9�I��ÀŠ���1�zR�#���"Rm�H�ܚYdTN������
�]4���)'���#��p^
2ȋ(Oхۑ���N�@
��O���ts�%�翾�RûlK;���ll���^�]p�5]\)٪��]�d��R��/
�VO#m�wa\��-kHtn%=ُ�,�b�l����G���%{���������cp��>��@C6G�ś�ԁђ�<YR~�aNf�Z��`����͍�ۃ!J6�B������<ޑH�j�>\VT���`@'ǂ�]�z>�}'�%���tݷ��ݿ$ꋡ�
?��ԣۨH�P�p���AJY2�y\�X~�T�K������0�U5L�gA��!�~�np|�}�t�[����H�����)o
�f�}|��*i�d&8g`d�&��T0�Ol
�諀.'���L��z�?�<�BW�U
N�T�2ON|��/�F(~:W���xt���#���q5m������K�?��L�sY\n��H�̀��i���$w�~o�g��q-[�g�FJ����`*S�׀�<�7�Ar8*�5
)�ȉ�{�8,��8�ܿ�u��JR'/q��u���F�ز*E
��ժ/�)�3�Vn\�^���r�, 䰚�!a��r�
a���;Si�~d��.)�}ʺ��i�����:y��Cg▵��k��]<���.U�J-�ađC�6ql�Uf�yG
��z0�R����P~g�+
�OSB�*(R��`���:���g%��pY{��6z������o�9��m��
S����`��ĝ�\)9��ة���rt����݈o�8�9Y9fb�RQ7��U,z@�٧�����B��#T?��=� ?<��
�H�I�%/%�}V�)`Y&�v���E�>��X
��vmY?�V��
�d��j��p�j��-����{�籵ɕM��^�f��%q�_�A�QP�,+S��n��Px�)�'������^̾���"i�%4����"��N
�v�ɐb� \k����E�>�sʒ���YbxȀ�ƺ`I}r�A��B�g�ٔ7�-�zy�Hg�yr�c�v!��#�L'��吔�_�Ɇ=Vq�^7gyh�̮�ޝ�k�툄�X.UMx��:~���1
]�,��,TUB��%�%55�g���
$g]P-���M�"�b�)�s2����{�h���;:������ߞ��:���F���-F(��Q��{��2mە��/`U���
\С"�W��{/O�*����]��$���y� V;��"�q��w��D��~s�ë�V�������iqz��#[�-��}�GU��_s��(�\t�aj��D��5?$����S��=_������áRȎ!QO�9��b����Zݕ�R��٨i�|�
�-�3��1f�.�{�*%�o��7�ɬU����]��HF��`C��4�#��l�p6qL]"�!e�y �����
f����W>{0%��^���#S��W>�灃������[�iGhL}o��1,8���i�}���b���-T:}��B����'ذy�!d�Z$ȭ�t��>2;3h��DEïs��O�kV寽�;�k��?u�(�^Q�,z(4�+����שG��9�N3d̀˖��}1m+ �(��V�I<�Xe���J�ť��x�'Zk��G���ѿ�t8�/��m�T*]�Z4�N�|�����~��c���TGG3�s>�Ov���O��6�m��w����~�'o2*�oU���^y�?tܣ���T�O�����ݴ��ũu���w��|ô#+V�|�t�u�.�ֱ͈L�"3�k����'z���ǙX��]s�O�N�)V��*?���_�[��w|��?��"p[�<�b1IEND�B`�PK�{�[�G�::images/icon-48/hikamarket.pngnu�[����PNG
IHDR00W��tEXtSoftwareAdobe
ImageReadyq�e<�IDATx��Z{p\�u�}߽��j��m,� V���H����bO�4�LH릤x��N��Ih��t�4Ii��v�t:i�v&��!Jʣ��lc[�e�2������=�|w�>�2��2�wW�����ι(\���,}�ڌw9��Y?�����$�=�����p<���t�T�ٲ(�B&��J:�E$�RM�m�/L ��
.ΔQ�Tv�]�~��c'/��_���N��Wd0�$�\ǿ��J��k����%���7C?�����;(�=���4���_�ܱ/tT�3O��V�LJ�wE�Lu�W�KK����v$�}���O��|��p2Fav6�C�}�ML=G��GlX��c�{Ͳ����*=ta�dq�6:F�'�u\�{��BW�`��P����*@�'��I$b}�O��v�|JL����ݥ��q���T�ﲔe-��R(�b�4���F��#b���FBJªy/��k��g���l�����pK�מ�<�>�vy�n��7"OFsذջp||�D˕Ͼ�G�vu/�PS���R�Fg%[<�*P"Y�Кn��`���s�(sՖ���Z�P��!D�����IZ\5pc�U��r��2)P��p���Sң��$y�M#��%�=5,�&������>68ܓr����?��*D�f�( ���G�hN��bl7:'ybt��+�.B�&{M>Y�N^�P�N&�|y�%%��'%�i��.��M�N��B�T+(GXp>'�9�18���b�I��1$�)[�C �NG�����
�0ԵXN���X�HQD�75�a$T�1ܔ���[i�§��taߛg�|�*�jc�vőI�H�&�F���좀�3�-4�遉0Q]�Sp��e�Z�*!��I�
</��{&H���㓷>�́�c��_X��|1�tFu�
��@`s�ip�z|Rf�h݅rM���1�އ��LXT�Rh$�:x����pu�%`q�-I����۴��}E�y����M�@@7r/��K�)��#�'1>���|�W���I�����{�2*���:<��p�S:��NO�u��e��qa��K��-2��%^�V�$�BdQ|# �%F��q\��q��{�A]�֯��.�Fứ��ǝ�R��
EU�qx���}�e/>��Y��+���Q�NҞ5Z>-r��HT�m�I���X�B�6���K����|�2�5?���G��e�Q�p�5��?;9��Uwc咡�=/?�YU�L2T�y><�!�%�Y���HŲk� �@�<E!�704��(���x�`����q�"�Y����e�%A���&9{�P�f#o����ݨV��;'�+�ly��ʡ�д��K�V
�r��O�gD����r�/�������Ëo��H �G�j��[>�����i�֦G�s�:����/�,Ϟ7m��.�(X%tF}��X�&'Y�R+R\�bYOo�բ������#��I��C���?r�yk#�9,��зq�ڍ$�GB��b0�pm1���F��Y>˘mhX�����j���2�D��k��n<��_mQ�c��ۿ����Fq;�j2��<�
�?�=��}��+֑
�f㖎R)*r�pA����0�8O�>+ !�P�=V[O
ҧĪ�J�إ�4�X��~��%�Y�?��ߡX��A�r��j�|��g��}@,�y�8�s�
u`�%�
�$���`�8�Y��P��{��\��%�m��Yd�6�KAZw�R|��?����Ȫm�5G������oF����v�0F/�b�x��}X��E�C_:�k�pt�U���7�u��w�ЮDJV�
U�L�J��J�\�p[���zb���H�r��x�G�s�~ם�����s�ݸ~����=-P�~?�O�
5�J�%�-u��6���-��`L8��4Znt�'ݼ�f �{o��y��D�����+0{�T�����Sm�P��V栵�)a�,4��| s��$ �SR��4/q�]�I��ك�@��/��]�=K�#��'���v���/���H�1$������`��fn���}MlT[
͂�t�1� <�R�u���X��(L�(n����s���
̜E!=�.,�rQ��
�"��J#����ѥJ��QUf����}�Qs��
!c�a-�&�!� _O#�&K��+�g0p�Z�x�o`x�m�Z������Y�^v]�
�|)G�2E�3OV��12za�,����g� A�Ʀe�h�<�q�D��!"���BW�o���6�+t��{�]X���Cj�1Kp\,͐�R(moaG-vjaD���z�m�y0���K��I{>?��o��%-}�ďq��70��f�4�5:Ǵ�JH�~TI�j�B���z���6���7�f0�pA7)
��'�tZ���v��}��>R��UK�B_�g�5��N
�~�2�$;�k�Ǡ��|h�Za��o����uǏ�g�z
��<��$Òt?���D��)��� �2��8�{�z�M���<�|A?�@Aӌ�mF4�}�::�
x��j�Q�F<���^�����*z����qj`(<�f��;-=�O�l��way�E�M
���U�a���0MӘ� ���:T6�ʆS���H���
,�\����M�O��,%$���#(�ꜯ��w�X�7*WJrm�r��/���Jm�vUV#|lW��>�]F\�[��d4�i���2q�e�+��x$hE��L�w ju
�;>;�{�� ���Ţ�R��]C�ʛmx��C����Xoc�A�S����pbr�U��1��tYE�c�P?
�p�@�+m�MZimDxױ͉:��S�
�~[�?q��OHO�:qLƥ��k���X*�S��FS��S�}S&"G��L��m5���K(��~�T��mD��K�68�Cx�/MyJj��ꊠ����s�lb ����(�����Q�5BM���c�H�2�Sn$�=H&z�K}�����#�h9�*N�:M�%d���S'v��M�-6TĶmv>��1�H/*SXm��#����/70(���ьR^�PD����7��#�c3#"xJΊм��}H'��+6�a>����CJ0p���~����90a]o�䍋���O[v+���V-�������#0T�Y�"uo����:/�o���q�6�O�J@�QxWZ�U�;�2�"��n�G:]�y�#eb���G=�3;�U�����J��}4�6<E���_�[#�M��H�2%���WS\��T/v��W"<�[w#%����:��$3IL�Ҩ�Vme���0���B����`��L!-��'J���>�=�wnJ^=�C\�8���+ӌ2Y��u�� �{~N�x��?x�o�C�r!��U�6�pn���:��vk�|��~��s<���Ȗ�Κ�㶨0��.Cfɞ8��;qnb��)7��J���v�HB3m�C��O�%�b)$�]��T;r;�)�g��D��1�ȗn�P���s�r/�L�_Z�y�[G�yw��:���c�\�oI���3^z�ʃ�L�jT��fJ�:�+by�'����#��}*�j�
�[4��U�״!�`�e/���wk5�R�+�|��vEo�}��d#[�cٱ�v2�^Ђ�1�lQ�#�ݷ
HX)�Q��2%����E0��}xo��h�&�x��F�=qM�ԕ4�R=z������G��p��n��U�o[OT�Y�j�@K���[xQ@��:o���Z�WhU���A�Q:�{���^�#�l�fb
�i|��Z�f�ړ�z+7�d_NJ$cj��Cn�/�:o�Ql�֩����
��5@[���
1�G�dnM�B����rO�ҙG�
r�=�Y��+}i}�MW:ҿr�NΘ�C��=��J�ӚtVaQy�<Im�c''�sv[�v�-�*.���5��-$�t�+�� =��|�Ȅap�P{�<���?�}��A����?ᡘ�CDIEND�B`�PK�{�[wtW�images/icon-48/index.htmlnu�[���<html><body></body></html>PK�{�[_��N��images/icon-48/layout.pngnu�[����PNG
IHDR00W��tEXtSoftwareAdobe
ImageReadyq�e<4IDATx��Z�o�D3����d�m�V�HE��EH-ڄD\r�_P���?HN��co!�q��#E$�j�A%��&���s�7����k{�Q��R_��^�x���{of6deezr���6c,�97=�q\`�@��m�M˸TQ�h�}���g��(���9�h��M)�-�d-v���_��F�w�����i(9�z��bkk�Tg2y]?D�<xݓ����.|�F�t����Y0M�i�( %�(
�GZ�g���Hĵ����2�0�(*�C�W"p�����GR�C�Y}NG��m�������x��v���(������[��fY��fK��P�V�u�1�A��h
X���
@X�^�cC��O�m���~
o�>o�:��&���7�gwÉ}�h.�v���.�����3p��"u��ɏ�js0�LMMF�,[��~�HaJ�%_��/&���*�˿�]��JkWTf�)�*1�W�ѣ:��L�C]�*|����
���QB�h�aȠJ>��xPie��s�nb&i�
�6Ң�r��bs\x�� �"�t�^�O?\߈eP���2�ñ"4�"���,4
��Ҏ퀉�HC1 >��"�8� �A����Q�D�G7Wbx'.d*%�M"�o��#P��Ө]�+���sv\���� ��u�ҏ�y��WoD����d2ڝH�~�{|T%;t�f�ymm-Q?!�Rq�~=����~p���8�z�XZZ:��������/M[���eq�U��k�l�'sv�lnn��4횎3�|>/V���B��X;�E�Є�+�
d2����eq�E]�P�
���/b��sP��]��Z�X,�{���e�fo��* ɯ�b�0\�����WF�\{P�Vz�RJ��,�bB)��.�j݀P+c�4���\^a�ލp0��?��O����
M��}��pF,�����Hc�n}��������V�G����y�gI��|��Xť%X^�<p=o���믾L
������
���
���ͥ@��)�l��F|FSe���I@!��C��ߤ��Y�C�^��*z�����:��e��6���hs�����<��7M+�����*���oS�ʅW������F���_H
�?Y7[�<Ƨ�1_�s�a�&�Nm�~�o�5����!
������(�#N��E����b�x�w�/����b��C�;�ЉAB<B����W�T�%G�H�r�A��O�1b�N�ÆIEND�B`�PK�{�[�ZXimages/icon-48/order.pngnu�[����PNG
IHDR00W��tEXtSoftwareAdobe
ImageReadyq�e<
�IDATx��Zyl�3�������� ���������
A%�R����U�HK!���"Ѣ�R
��r��PH
�J��&$i�IKB`�v�8�w��c��}3��9���|���9�{��D`��]w�'�8pl��0��
s�����4TWW�y��eA}}�
�2D"�|000�$I�\.���HN�z������
��,n$�(�B6�p�LF@�Y���D��M�Qp�"�����Px��{�J�kNv��넉��&�X��7����u$��a
�"
�#E���a���
�',<�
�;�!���w�'�|�9W(�MBe��CLT�X ���0�Q�IۢP�@�cc
�:�55^�nݺ��iJ(��뺉8�J\��J���˛O����6kmk��hD�.I���?̸ѯ�n�i��
݇z!�Io_���>T�MR�PKQ�
%H�x* +�F#P
��Dw�e�/
+o�e_���ܠ_�v�bH�RPUS���o]�j�e.F�i^"��~��1�}�~�������p�*�aX6�J�p�d��b|.�xƥ�64t���!;6��*N�{�a/�=O`x1'�R����\N�?2���Q1SE
�6*I��D�d�D"�ںω��x<�(�2�'O��*:�@�<�4�fqOn��(K�l��8TG:a`�E��!��a�`�6���)Q��@
^�ֹ���?�^�:�1���F��ަ�tu��"<����ph`3��T�1�H��0��l�:;�@Q˂,E0��I��;�74��._ڵb�����ڵk���@���H!c��$������C�8�aP
u�&7�N�i(`-��]����v�I��p����,+~�#+
�k,�1��F
�L��O��
'zX�૰��0o���8(a
����Q�n������WI�'�~�i044P�"���M�Z,b�cf�����/�G%��pL��N��y*�H��M�{������.h�U71�ԃa�ᵍ�0tt�ŋ�@�4�T)�r��H氒9��/x*�(*!�Q�x�/�73�F�/C�!�.�p��R�dGT@z ��ё4W��*�_ᩘg�ĭ^(�A�=)P,9m�p�j���\ҵ�<�?M2��
z��w!W�F8���gD���xms�Jm hkmA�@A
!I>@&
:J�=���Q�rL^D�H�%>��ʘ������b���9�d1ptdؿQ�Bx�r��X3�vcxdc��C��vhL4R8��e~�����1��௫�a�y��q�%��9���_\,��;���g`K#���^��B�&��:�F?$-��P(ě?ſ�K��<$d]mb��RظHs(�Bl|� 21�Vց�Q��<��4R��(|`��)tԬU�l|����m��(�7�/@KK,Z��,Yz.Y��"�ͨ;�iy��3�Qx�mć�A���Ul���|s�-�"C�ؐ�4+LU�4�`l|��B
�W,u\�Pu�?,���9q#���رa��[Q��N���B�I�DP*#�:ϓ�� ��'�,]�ڱ����_mذA�s�E�g��rT�V�,[G`a���P̍b,�B��x��y�6hJ6A�&�ç�ۡ�SH�
�-L�'Ȝ�bg�P2����`��TbMM�/�_HAw��ۯ�w>��
��.n�}��}^�
�?��
�aT�X�:2˗}�����,\����!�L��C�%�U�䆍�Vq�>p�`n��0d�� �G���ؘ���y0���,
?)��>�e��e�r{����+���<�:/
�-��܂-͟��H���Дh�\��+�n;u��dzBE�s��Ŏ�)���;}�S�����P0y�O�R��̱7���T�뷄W����\����
��g�%��y��^L����<VW*Z���,�(�j+O���|��"C��!��H8�
����o㖣�V)��@M
�,W���M7n����?��w�/v�/�b�&5h�
L���m���k�
�����3/��,�Z�h,
K>u>b�,��dv,�ё��~�4���I$�ﹷc�H|9~}#R-|��)�f^@ab�F�7�R���C�"�|��&���x���=�MU��+h���}�(Q
C=���<m.䶕[7mڧH��'��oB��!9��<��!����Z��
�M-���!}T���6���{\�`iz��M+��Y�y������Kӯ����By!�3��&é���XaB�;�o�YhF�x0V��d�rx��^k�V)6��yqrç�̲�ؗ�������Uh�����Rϵ/n�Yٕ}km;ĵ�E�ATF���:��/�����}I ��@C�?4�4��B�d|�p���]-8����D��-Y�d/���y��ܓ��ůʷ�%��99�����DjkS��6�&�
�H�4���>=�x�X���A�Ň�E����H��a�#��;e�����wOX�L9u���j邑!l>��p�%r��@�VG1�eyF~�c�2]�V��Lv��y�ܔ�s���?�p��;����ܧ�ƚ�!Wx�hC}M
�]}��|����(����뺡��ۃ-;���CrB�x�>��ڣs�N�\����1�dUl6��5q��A��#���Ds.�������3�Y��X��6���R#vʇh�����?�^���?E6$�6��du-�[7�<����c`�Eq��.��#S�4<��,'3]z����E��:`N�ʴ��~s�&�0hQn%j��77&
�J[@��Y�8���-ӜiaB�
�15B|�n��{/8�W�?�td��/)�b���
�И\۶!߉@Cc,]�R�f�C�3SA���c�=�8� )J�2.N�x�Ds![���5!/f�U6��-���
�٦6^�
�|���M�W��!c!*@
Qc^jL8���i`rbM]��ب�~�cs}��n�1��C"w�"[��(>��
�`>�Fc�ֺ�2>���.]v����rN���݁�cs�����G������\t��{��sb���0b�O�%��n�M��i9���|'\��U(��'T�?�Z��"�%h���8T�����OY�R&s�_Yl��ޛ�����z� �*��Ws�/�6�Ѹ�/�5�ؿ'���@e�JJ���'iP�����J(�mo��%�Q��\�Bl�M�n�9�֖���Z��5-Њ.~�Pnj8k&�
L�)�`�7����;�v����K�,�s}�DH�NՍ߽������omm]���B�if�-���^p�c�u�C���U:��.��^�;����δ�w�y� ϙ�h����p=b�;��~����F�2A˻��&��*�ζ�������M�KLOijIEND�B`�PK�{�[h�T���images/icon-48/payment.pngnu�[����PNG
IHDR00W��tEXtSoftwareAdobe
ImageReadyq�e<�IDATx��YKoU>wf<3��v��i�4M�V!�)��
�`Qu b
��n�A�
�A�*�(�l ��.�Z"@��tQ��AӒ�j��<�8~����{Ǐ8v<�"I���x�����2�9=��������8��
҅K�9��>*�l"V���>zq�����a#"� �tzhp�l�jF�kгN����4M}�����ء�3"�z<��P�-�u;,N6)IhQ�ߖ�xT���=ڢk�UB4u�.��mE
�J����<��ba[�i=�7'��xm�m���a��������d�.�]���6���9��rR)b���x�֚7�d��k\����r�D?���\ϓ�l|�8�����?��|>O� ��
�����2�kd7��i
�>�˦�4DN"���04�<ץ�[7�س������4'�(E���St��
���H@�>��G�aS61H��gB�O����L�zp�*�A��kT��)es�\�B>wA�F"
�
P�U6����in�$����iZ�P�5�tX�O��J\�Sp�*�Z��9���\�Y�>�xU�1�h�T+,ku����㖙z-�Xu�$C7
!���X��A��)H�<�����wi�?��I���GKr�̘A�eY�%PSO�.��1El�f��jե��hhx�N��L�?�ϳ
�b2�"�e��={�
*��G�l3I�f��XH���1gu
U�nzp�t�J:�.JjM=�^��͍��k&�V���y��
`^<N�@S�I�t��KT�*�;͘EI+�
�Q��i��S�MtD�>i7x��~�c5��q�'PӀ��9�%Ƥ>��Kyz땓�I�k4i����nϞkА�a1NxF���]�a��Z"�m�e�X��Eȫ�G��8�Cb:7
��-�R��c������{鏙R��B6@���\�����n&�2;��!,�p<�����-�i\Džka
�����Խ�ˌ�;t�Ц^B���B�"
"Cj�e�n�6ޠB�a;�Ř��Hw��HRZ�A�+w��4;��t�ƗT��r��8��3��@�+У�}thlW8�ή��`��4�O�K i
g��J�u��h#��\(�I
SE�@x�����buY\2��7�_��}�:3�"�Z$��JY��D7��M�\��d9�1!�0�e�}�St����z���IH�S��
�:�w�͘E�IQQ�[)���"�W�t>��DCN�X�Óg�
�`�O�&�x}�XW�J>$䂀���[3HS�����z���Z�'G� �y�:e|]Csy*W]�o���e�{��ZT��!��
Q��F�d��,<�2�}�m՛���"��`��:��82+��}w�:�:�`c�iп!��������g����QX�U��W®����l��i
*�|U-m�>QG�i�����e�6]��C㹬̌p��w�q%�\>:��B���~ 2
Ve���v�1Y��g4����\�B�
V���8�������L���H{D�?�Q���u���BL��t!;F)8�Jٕ5b`�"+�b�f�� �u�k���7�ɳ?o��Ubȹ�u��?4=====O��#�j��f[��IEND�B`�PK�{�[�-f
f
images/icon-48/plugin.pngnu�[����PNG
IHDR00W��tEXtSoftwareAdobe
ImageReadyq�e<
IDATx��Y[�%U^{��Uun�=����"2C@P&A�>(4�7��&�/��F���`����C��^#A�`��!g�!s���9u�{�����9}��g�'-65�T����ַ��J8�h�?G�Pq�����</��V(u���f���Duɹ�-��lQ<k����;y'��'�P)����|\�O��~�+7�8:u�s��IT��U�D2R�P��K[,,�������0������
��1�g�Z9.�姯��~!��5�t0�����&$n"�5��g����mV�|��/����j��-w�T-����Ѯ�.=ݎT����a�Cdy��o��zzJ�)ER~�fg��������8��&�T�$�tr�{�
�'�gQ�Cȕ[]��Ȕ;i?E���G �M#b���h�����Ĝ3�t�_
������x���p��H��YO,N��V�y
���Y+���?��I�9~��ت��Q��7�筨AP��YG�(�\Y.���Iϐ�;i�V!c�����*ǷJo{0��,4�J+C��1��~���=��Ql�B2�����%�QV��Z���eñ�r3�l���`s��=�>sJD-GR����
tU_d�y���=��?/uy����8��X�֎��O����s]P�WZq%�v����!��NOhYEZ���
bo0����2kE�����uH�7ޛw��iJZ�6����� pжb��2U0~��$��+�/�«M�p�SkH~��R�p���gi��緕(���vЅ��
;���afkn��`�sc59���kw`%�>'�Эz#D(~��ä��i��.!�*$fV��8�'�MX;ДTfo���5&�`�v�D���B(xbNDzD����
�_&���%�"�>�Lb�*_DGE&�x��T_�Q�5���d�h�L�4�m�H�N�do7�➭b]�&CJ��C#����`KZ$7&04��"�Xms���a�]����e+`��R<Poi���]���^�Q}��Lb�3��k��"�p�-/%|��K��
�`\�<
[5Fof�
5��'4����>�8x
�lk*����*tP�|m�j����3\-��ڠ��������v�w��%_\��j�a��DQ��QZ��.��l<����Cc���o�����ϬG'xL�|1�qJ�N%�]�j�ٞ���c��E�H�E,�`|ޯ�yct$�ձ��F`F
��[s$(`�(xc�&/�N`�:�6�8���э*������S����{}��_�s�}�g7������GƎ*0P�"�V�O�6Q];�<B��(xC�Q�f��|�q_1}�:��Y��'�9%�z9�ݚ��[�{[B�e���<���4{��_H��Rp!��pT
+�4%Oj/Q�#�v�T7�
�B�䄳#�G��[��b9fc��;\�ܣ�\�s� �f�ʓ���s�O.뤭=]w��RI�TB�=���oj�L�����}�V�{�+�y�J�
^$)���[�ظ��O�����H�bw;�Z�Z�4;=~䭌��[�QM��E��NIv�P��X�����Du��!��_����M�a�4���p���+8�
�r����0�S���>?��;b=�6߳I`��]�=�rK�G�5�P�'<���|a+��+��HfS��ߥ����W�b}���iH<�Fz�Յy����'q|t�}S2E���L����v��8���p+��`2bP#��)2�|)�nw6 ��kP�K�f�����#c���L~r�.�����E~`���N��TC0n0>��v4!�"h&_��za��ns?z���ԝ�n�@��[��c���'�^�������J�5��<�f�`���2�
�+�7�J4jd�{�r�}�,Tbi���>S�Z����ĉ1���Q
̲_Ǻ� ���:�����Ƌ���8�z�=�Dɺ
�W����C�k��J:��4����p�=q��ܟڻ,iv-�
368���@�ƍ<��W+�m}��`�H�y�[�Ϩ �/����0'%���4�toJ��z
(I���S�bTL���&�iSѷ����s�?0|m��
�)m(MQ��<��s*Ԛ<�F��D�3P
��4H�>�3��5�.v}<�c�la�f`����b��`*�-sh����H�0�#<, �"�+ůj5J��d}���'�6�����"�?�����*�f
�zB��eR�t@�WB\Zπ|������?�*�p~'VŞ3Ʊj�<#c7ܺޞc��Me=y�
0�O^���Pg�*��Q"��EO@*�#�9�$t���"�ćA4Y
�x!�.u��y�+[�|]�����ʶ(��ء�%���"5C
���@"�b�O(�]��z��xq�yk��prX
��ܰ�Nљ�����a1����A��*��*�b�.Ϲf,�~B¼H_u���*N�qn�n�����]<P����`�POP�Ă�Jn+�z�
/
����jI v��U����M��Hvs��<�촠��8,.��z/�&6~����,�*됲 Ϯ�2m
�� �[T�k`�>z�Z��F�:::+�<<�7b�cr`����@�R$zʐ.�+O���C
�q�}ň���[z-͍6a�LJFv��a�uU%���|lqr����3n|�9֫،��h=�41�k<�9W�'�Hzj���𢓹�b`���!K�Ě�h~3�譝3�D��S�U�n���s��,�9�-��d�|j�h�t#�m$v*�+������/3y��hp����F���cN�>+�b���Ҕ2��.6���Nxi@�Ͳ5E���xP�$����c����ק����c��nm��-s2�Ϣ����
x�Q��վ��A��Պ���ڪ̶7Z4x
p�ѥ����hh��Y�`.��g���Җ_��̛l�+�*��d����q
�7 =��?�l���X+���He�<O!���'�_m~{��]Yo��#9���⺼r�1�6:�Ʀ��%G=m����>�-��O9/V�vEQ��W�xA�A�IdB!�RM�6?͐�]R���?��OBG�[�QQ@=��U[���i��T�\�E��:�&�&qeu�Y�8R�W��x��_������Y|桽�67|�ʬ�;&��Q=��)T6V�6��|��ŗ^��<��߇�c�^ ��v�Y���[ſ?�(x˸�Q��m��?����IEND�B`�PK�{�[��
iiimages/icon-48/products.pngnu�[����PNG
IHDR00W��tEXtSoftwareAdobe
ImageReadyq�e<IDATx�왻oE�����{�s�� �
JPpADE�+��D�?@�d���@��J�JC�#� #�)"�H�(vbsw�z�{��|�}�K��,K�{�3��wf~�;n8����s�9@<������S���;p���AP�����O.�_`����k܇��B�
P�|�T���_|҉/�o���5���Ƞ��uX�5Z�V�Υ�,������t����M|���[��n���7�r,�0�Hj��v�Iv������) �~�)���4���Ō���@�QMӀR?�0u"|P��
�ܼ�^��^+C���O�:`
���$w���]�1M�%h]qv~K�G�oz](���5��'�>E̻�b|Y^��r���މ�˯A��W����xo�+��6��+P]Jj4_��Bb����@�%���;A\t���
sbJGc��&�'- p�<�y�
0��r��
p�zj�|-��b6k�L��9��j�^�e&�PV5p��F�]�S[]�y���F��x�}w��;p��C���{��o��k/U`���B-i�x�Aj���E8[p���ox�:���:��(C��z��Ffk6���玕�v�v�����&���-��� ��ܒ�|m&D.���������B�Y.�q���Rj��dM��&/Ja@�}G��0$=r��������@\c����L��d
4*˶��W����#\9�Z�PK�ba�@�x��@lq����C:���o�`P�8u�`d�����P0����l$�$e��q�c0I��
�D
�b�� P����5��WJPyt@���Q&Joe� ?�U�=Uٮ:}��S�<P �(��b�&j��m;��X�W6Q�]�Tf
1���1���.�N���� �Pk���Ͻ�`*���d�Nv2����Aub`�@��Xe���Y��l��������x@,LNuF�s%�}�l}|�P�P��SL�
o[������
a�F;�N8o4�͝e$��;ݒ�6@�t�����%T�X2���[�j�����Z9�;"�Ǯ�NQ�;���j3���A���9!G�'�<��I.:��Y�[m�B%>i5M�Ա�[m$9�zX���'���ZPH�s��*��*4�8��9�T!�
�Ղ+��r�l��r����MvߏޱC�u?!�0H���^�I?5��>���۾P�6�u�q�8rf���hZ"��w�9��1�O�`R#i�@H�IEND�B`�PK�{�[Mi�I==images/icon-48/shipping.pngnu�[����PNG
IHDR00W��tEXtSoftwareAdobe
ImageReadyq�e<�IDATx��Y{�\�>�=w��d��;klm�D�.Z��6PM�jSR"�`�*���
H���T!�5�
$��`
ILm��纏y�g��͝���u6�2�{�Ν��;���7�����`���s�Xk�^�u��7���h�G���F�H,F�eQ�\"��s�ۭ����#�-Ή��/�ђ,?��)�JQ(&��T,��G#����(㟗��'��2r˗ɫN0�W����56�!�k�~O"�C�d�dE!���qj��T,)�͒�i���K%#~���;��$�:��On�"�c'ɷ��q۫X��1�px:�nO�{)���y.ٶ
�[To4�V�R��x$|`.�җ��d��"I�Iz�$#A~_�=Cv�x������.����x��6����f����uj��w]�U�tM=�B��7}{�W��6I�P�GY!I3I�c!��#{��s�b@�W��\��L��a�0�
�T*��un�"�d�ɒ�߉�o�4
����{����I
���DQ��6���٣��k�`���'x"����ԲZ���(�˃&i��a��v���Ugqΰ�^#J"t{ap+yV���I���c���|�L�]��;�whg9��C���_�!{�90�9ے,W�٢2��:EBƾ��?s!��
���ހ�F��ZE����ݬ�fF��&h�w��>>6#*|T�"�^����r���ٗ�H�0�?/Y�w(�����(�<h3��|��?-��
�e�J���ėEf�����p�&ғ�q�Rf0'�*����m�Fr�B/����[��:�W��s�D2%"h�9�z�<D[ѵó?�-R|9��K�7#�B1D��N�(��iA��w�6w�r������B��F��,EH礦Wl��wC���Pq�b�hU�@7��g����|��VW<�:��()�%Tˏ�h�33A�x��{����l��.�%D}_#�ү������A!���(?�S�0�ig[�0�B���!~���p�!�n��pZ;u���?�%ɡ�����[H6��涌$Щ?� @�}���
�ҭ=�v�ï�Qi}�}굺��nc>6�F/��ˠ�E�G�����A�F!�:��r�$2R��N�ڵ�Ƴ�L�&j�c����9[����|��D�j������\�z��*��[]�3�b'�"�O���ߩ�'�z���oAk�[H�+�=�XО��/�Q.P�zl�%�Y�\m9E"� x�h��R|D��Ý��`�0bMF��u�����O!�DED��(x9���.tx�?L��oB7/D�,^_�~濦ʟ���-h�q'x���ɜK�����~���dsuꁠ��4��P}_n���E"Q�WYh�
�9o�4،=]��~):@6
�o���'�����)P"���{�GI�urv��d,1%���}�^�'3�^BnfL��M3�+i%.\5J��(&4q�ƾ��yU��0B!!�&�m27jA�C]}��9-N�UA�v6�ҴL�t`�̤�,M��T��^ґ��E.d;����%�����n"�F#l���I�-#�V}�P���P��
tu�'E+��/@U���A�ڂ��EX�xO),�v�}�q�`5�1�x���夡�M��L�b�v�s?w�nu��G�.6�ܢ�3u�}�
u��WΒ�;@Zj}}�MPI���y]=��u�q���R#��H<ѦZ��p#w��s���Y��H�0*d���p5Z腢�d���܍��WL�u��32�N7��m���j��L��71�7��Ԯ�?I�`�e�;J��_��ăk�ڥ͚ll����S��Ӱȭ��A�h|�LZ��i:�t�CE/.����19�y7h�0*F�Q����7CX�2QXdp�^S�E����SSK�7aM�����ȩWŔ�Yu�j��d,Pb�x!�`��%�5��3d�V�
�+Z��ڸ}R�,]F,.��ǥJ�t?�ћ~�����%�����0qX7.����4D�=Ma|'[��<�l�;I�7�V7B�������� GBzG�=I��_,#���Jɞ��R�&R�X|�Q�>����A���fER��ѥ��ȱ|A1�]�d-q��v�=vh��)�>M���{0�����O"&�ǩ�/���/��b���PI$�U4�5p�0��z���ʹ�R��~���b
�V@��X7�_8E���{1um��mA�m�j��q��P��c��ߺ�,(�bG�D��
@�K�r��-�I�߇�i�����J"&-���*S�9�F�ɧc�Qqs�e&&(
�I#�yo�Cȝ�o���c4�`��7�TE�K�A�^%�^�,�o���`�ڒ�8��y�v���@2���n5j��E���G�����@`�#-�_!C�����nC������?�J�Zu�����vH3B�Y�/7����(��-�k���k`�f�0<X���;�c��ż�u��σ��H2���g\$�w�Z�Deo"ݷ)�M-�l���<�%�g`������ӧ�a֒o}��#LT�B䪨���Za�[Ў��2Q�T���{) ���f�Z�B��x4��q��-��
�.�s��a��+�X蜎�hL|W^�[�S�]yw�5zɳݐ�fo��^���;őכ����f�d
�\.K�rY)\9����,1uq�F"�?s���
`)/X��~�
U>����6]U)� �%��P&3����+U�*�
c^�[W����{�ޱcGGn�
�{����/C�C�B�<���
T�|���[��P8�W��Є�SX�c�|�#w1��@8�������~l�]k`��5����L]���^����σ��^0��`�/�)�p~����n����ڵ����������T��b�IEND�B`�PK�{�[ ��� images/icon-48/user.pngnu�[����PNG
IHDR00W���IDATx^՚{�\U�?���ξ���۲[���
�(�!
��`����U��&�4 $E BM���
T�HВ"K�R���vvwfwf�=����죆O��/�ٛ9��sϙ�Z>�H>�q^����I�Z�Ce����=o_s����Z��s��FA˽���K@
��]�8�t�%fLũN�aGײ��K��Fc�E�˶2�na<�
�n���?�iuՂY�a0��%�����M�/~�!��>�P|��;kYW3�zu���A)��&d}=��0==��GIX֮ʶ}��9C��p�X�Y<��i�����|[*
ITccM�0���>���fݽv�kR������램9{��ӕ-��Ⱥ:l.Ga��m��9?e�����=<���(��Oq�W[֠;�����h����8���j]b�qIل��N`��~G����>�����';���X0�Jp���j�9�Ϧ
���ٓ�
���,��+�u?Gye�X
�-�^RZ^��o����1��B��U�U+�<b�X�\?JTe4�-ίqϽlK�ナ�=�{��s%�Q���$*��b�]]��7��;31�e���9���e�y���o/.���6ng/;��z+����>Vu�J.�zE����MOp�T�t�8�
�Y7���i��>�=�i�"6m�3�0e�叱y�zz2aX%�b4l����ԅ���Y:/Ł�/���|AP�v8�9`JU�˯K�x�Oυp�D/d��{���SWS2��Ն���6\�F|n�v������s�+�է���麤�m�,dM�o��ڪ�A]��8r
ǡR¶T��F������j�[����.�&�"օp߾��[�ԯL4�]�x�]����{���$����w�۶���=ߜ�
�-k���WS+�Cw���Û��05�,�#FK����z����U9�Ϯ�fi+7$].��R
�a�������ҧad��(twa���1�A�W�0��y��+/��n���]��vA�S>��j���=]D�J��^Z���Z�H&�/��}܄�A���h��2Kj�s�#O�-}=�P�:dv���U�d]�Du��H
��8���!,#�a��.��l'��a4�O�k�m��
p��MUu����*��X��Hap�&�,�0jnkj�}����H��z Kňg�(��`���Z]�_�z�B�iCҷ(�����u�Y��~��Ō���MXZ�J8�&��O:����k�N$�a̴x�\���փ{�ijf(�5t���~`,��b�#a�q�H+A3n��7��
���q=�ȇ�Rȍ��J���@`��*B��s��m���Lina0N�����Z��-@kV[i�F0^��������2sQ#z�5!�����7?d��=���ݣ
"�H���s�~��x�{O3����9�pIA�(������b��3��v`�fc�3�{��v�k�A�Q����\G *�x�ஃ�����t��SIVU�yJ"���Õm��"�����R��F)g��<s��p�\�n����\�d��
\��0y�<x9Ov�'�0�D�
G�D��A[ٯ�E0"��X�Ea��7�#���z�����
���n����k����dV=�e��;$�(R��
����-�V�5�A"���p�8�`,4F�
E:�~��'g�ď�U9HH�r���si9�����J���U��+R��sn�)�B��F��dB1!֔*
�ّ�����N��
�@8��R��z�%W-��ݚ��TT��x)��L:*�5D�������wi|Ccc
@P
��N,L@��/9���a Y�2X��5�(��j?`��75&�:��r��t��8��֟|�RkGw�b�5��5��X1i�1)$`�t�h�j�D
��њ��w<"��l4��7�z���KVG:R�R�~B0hc(EQ�_����X����P\s�5"�����R���2�דB�oš���~#c��t�8b��Ü8�8�<���4ZqU�)WIY.]��L����
�L+�l��Btv�s�BJ@'��:|����C�����N
4`� މ���qck�� �ݰ/�a8rٽl}q���
ژ��1�r����e�
5n|�v�?5`�uc�Z�g+ف;L6V+=�������̿]laIEND�B`�PK�{�[�n�22images/icon-48/vendor.pngnu�[����PNG
IHDR00W��tEXtSoftwareAdobe
ImageReadyq�e<"iTXtXML:com.adobe.xmp<?xpacket
begin="" id="W5M0MpCehiHzreSzNTczkc9d"?>
<x:xmpmeta xmlns:x="adobe:ns:meta/" x:xmptk="Adobe XMP
Core 5.3-c011 66.145661, 2012/02/06-14:56:27 "> <rdf:RDF
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
<rdf:Description rdf:about=""
xmlns:xmp="http://ns.adobe.com/xap/1.0/"
xmlns:xmpMM="http://ns.adobe.com/xap/1.0/mm/"
xmlns:stRef="http://ns.adobe.com/xap/1.0/sType/ResourceRef#"
xmp:CreatorTool="Adobe Photoshop CS6 (Windows)"
xmpMM:InstanceID="xmp.iid:F2D938770DC211E495F98422EC7E5E10"
xmpMM:DocumentID="xmp.did:F2D938780DC211E495F98422EC7E5E10">
<xmpMM:DerivedFrom
stRef:instanceID="xmp.iid:F2D938750DC211E495F98422EC7E5E10"
stRef:documentID="xmp.did:F2D938760DC211E495F98422EC7E5E10"/>
</rdf:Description> </rdf:RDF> </x:xmpmeta> <?xpacket
end="r"?>ϭ�E�IDATx��Z ��y��{}N�\;3��]�s�:�+��6�D\qe���!ⲱ��'1� 6`���
㤌+�+N�����A������c�{�|/���ٙ
$���w�v���?����,B��yS�)���M��`Հ
�o��Y6�/��~�L!��xz�e�ҽh��
`�����O�~痫��\�,��{�W�c��REU7SM���3p�VZޣf
*Q5�ݦ��77Q
������/���O�[pg�g��߸~�,��p��Nf��fz֨�b^�読���(>I'�;h����L�v��|����>�e���=z����"���=y�"����'�k4+��wh��ח7
iM�Q��4�.͂�$4�Ua*F�f��9�8�^����αp���2墷\z�����a)U7�j��5FO>�eM�
��j�2�S^��6����*5{�*<�t�{CdKY�l�B_�w���n��V1�z������Lq ���vd�%�2��i�ŦT/����&�Y?�V���r[�0�a#@��k�`�
���
��Dä}/3�a��
%^dip N���g�
]=��
�t�(�%�>���߸���'���y�d�g`C�
�r�F�{c&tF�k�w�u
h܃k7�,�����G�sE��U�"xࡒa���e0+r%5��)f�}��B�����<h���}k瞙��\]�l�
���}�2��/��H�a�剢�S03Q8.C&��6!�(|�#�$x��O����7.�XK�m`���U��Z�3Ӎ��xj�=?x�|�ط�몟x��U}E���o*M�[@
�T,3�X�Hp�HAbwy�!����yͪ�ё�����N�7�>�ZMު�j�ܜ��o6�|�}��g*����-)�a�g�
y('�%��KByȻ��Dr�sB����|j�J5�l�@�+�i����i��+�)[�B1��1�G�̯]����w�P���?v�M�xD��!�����S�54ա�s�y��N�'I�!���&Z�ΏWBi��\FDO�X#%�S�,���+;d�Y�-Re)�ubz�������_��_�$xS
�\�Gw��/�r�u6�[(�A����'(��
\��s
�t���/�!֪"�g���7n���p��Z���}�\�e^�xg0y|�鹯��|2�kM�
���_�.�3Ż�ށQ�V5J�(�ӹ���,����i�0����z!�[�D>H���DBp�WMT�AXi�Z�t&����?��?>0\���ʁ�a���1����m��ZN`[���<H��
��z����)���*xuB�+x{�hxM��
�ϙJ�����Ԑ�jB9�$�%NÃ�e!����]�[A�V}�y���4�X �(����4�,||���<��@և.�ۊ��T��8�t�n�cl��(�M�@����yD������U��|A�LL|����N`n�*(���@ʁ::�#�'��#ɢI\b�0T�)]����� �����Y�q��j壁OQ$=��:��Z�Px.�x[^�*t����7#
�~j��^�?e(jn�&�3H۩���[��4�?>�Ъ���:GB&�y����#�!}@�x�X(��-�b�)����!���P�#�!$-�id�i�+��U�02�B9槯��0��j�5|�^#�
��l�<A�����(��kU|^0"ψ�j����B��
�:"��h
W���"�nc¥RF�X�U��~��ӳ)�/@2w#5����RRy�<,h���ڋ��-��:���4�����&0C�N��B:qOOPD�47�Y��\�Ѩ�$D���t-J.��P`H��M�:����*���ti�b��TVW
�*�9p��X[B:�%�Å�KK���CR`V^ ������ �$C2@H�̷���zS�S��4��.Winr�87�V��Z��OK�V||�GH8��D!������k:l�`X9i1sn��-'�j?��EK���(xȰNx�y�:?��i5���s6�89ZWrYa���*�7��s�\��*�ҰL�����w�ЌKp�0Q8�-�����u��o�.�@M��b(�*�B�q�ha
�F%��L�5�կm�<���}�'C��
�uuPb�y��<���ت�1@�U쮰�Y q}.�(CB��k(���Z{>�3x�Z��a!Z�q�]����Mty�S��Sh���^��sW׃(�ߠ�L�H�,7�lZ k̩NCc˾�,R�U���m���4�=-{ME�_�w��hd��8�x|)tY_�ݰY�+�*坁�?�n�w���,p�ہc3bE!
Y;�jAa�[´�U�'��!�V��e�Az��(_i�m~�к���Tf
�z�'���{gH�u|��}F�MG($k/R��o:�Zm��y?Bst��1^n4Io�"%S���ř�3���K�b�����B��ɉ���fҬ��Bۑm����B$rǖ?�p�eÕ�\9d�Y,�#2}�4\�濍B8���J�V#��.�5��909����+��IJ������d�;��ŢK~�,Va��)���IJ�c;i��m��S$�9�B�~4��?r!�l6��@ƶ!D��>��8�P�ǻ=�?+_,�3�|�:+]�AgxW�AP�{���{|f��cS�M��@s��e�l{1Te�*9&���@�T^|(�.�銣�PU���}Л�²%%8��B!�����^��}._����EMD���)�Yҕӵ��LF���x���X��ժ�s�ʕ�}n�g�OfR�s��3"*A�ޝ
����^�ս���<
E�����_Y�4ÄJy��c;�B#y��ځͮ�+:�``DZ��0���!bY�f0
;���13�L���IJ{�=y���z2��
�;��`�Q]Ro�Qv�]{�'*�p��o�٫����d����5�=�B�y�y�،+/��D��S�/�(,��;���t��[�jǎ����vT�0|�}���ETK�Wu�De_���8QH�K� ��R��&o��^��6qk����A����^`1�j�0/�x�gI��2Z�`hR��U���x掗���7�r�����An!)7����FFA���&��yzL�V
`�ր��:q�R?���-�
�v�rd<G1�zj!TE7�k'z�!f.�:6S���{�΅�f�b��ŷG��r_ڀ�|�:�~]���*�^��=��hfM)4=��$^m!�:��4�Vn|υ�_W���Ź���F��Nխ�d�4Nx���2j�钢L[�_]?�ɾ9�i��TuG�jm+-HX=j����A�ݱ�>)R��<
"�m#n�ŋ�퉸�������JH~���5�l5%�>�4Ea��K��+���*Х%N���s]b�@�h'H�D6�������F,q!Qʼn�H��ψ��%��I��#�3��h`<aFHb�@9p������"j�~�
�*��7NKC�U��}���\<]�JNHf��+�B���I�"��,��"zNe����CWr{��S[ǖ�Qt�f��z4턘�6���=x��;�'p���D�)�.!��EpI%`�u| �q��2�#3����*>BsF��
���c��:Z%_��Ӥ'm�K/�VRTf.�IzX!d
��dAh�U[dT����R2ḗU!h/���hz5^}��SV@�l��~q�ڕ��#�Es�i&
�X-��C!�BZ�**
�FkA2��^T8�B)mW��}y���J�$��+��M=V>84S&�|�+�קs�vW�d��"O�|�
o��C�t
�tW6�B �Y6�ZBy��4�� 9�m������t����S���9�����P�Q��Ȣ�!ZY�`)�\��J�L��t��[#/�tb�h�����t�d
/<��](�����r��ϓ�_���_��"
J�L���U�d��A�6�^bs_2井������s8'��8��,��n��e;��$:�s7
�1��[�ɢ�����h�B�<������4@��),��:SU��q-�#\�q%�j�l�,�y���
����?��7Ӱ�@�IEND�B`�PK�{�[wtW�images/index.htmlnu�[���<html><body></body></html>PK�{�[J�m߁�images/infinity.pngnu�[����PNG
IHDR
m�qsRGB���bKGD���̿ pHYs��tIME� ,ู�IDAT(�}��m�0E�do�Jez�pzo��
�!2�q�"@p+�w�J#炔I�H|���� �<�$f���1�I��k�c�vm��lu�?[��l�q.�h;�|��
A��1Iᗄ�!XK�߽��mAǃ��
��|HycN#�2��a�+����R+;����s�YГ���]e'�d�)�R�%���%,�ę��>x�իe˖M�cl��l*�������k�ٴ���'�+�/j�������*jZ+7�c@���$IEND�B`�PK�{�[wtW�images/leaflet/index.htmlnu�[���<html><body></body></html>PK�{�[9W���images/leaflet/layers-2x.pngnu�[����PNG
IHDR44oq�`�IDATxb�O'H��J�JV:X4�vW?����m��x�����bM�����;��?厙ˡr%g�uPp���1oI�0f��w����s1��B��.\k���xvS�QGwRw�QǦ��ޒ����B�ydHu�i!��y(���m\oP�mDz��64�!����k������0�Y�
��*Op͜�P�+9��{���ș��T�����t��V.ݞ�6�!�w�ڮdY]��yg��.��\���fB����Q}�HԖ���m�R�1JF���Z���3���bX~_g��Yk �>ܾ�]>ck�����(ߍ��n��ݶ}y�!�E�g�S�������=��>��fr�*K4��R��墚v���e��Y�CL˖f�����
�R������e�M�,��k&#n��V.G�[ޤ92�D��S�x{���z��)�,����@���)I$�@�b�F��Π���4O�H��%֕�� m%���X��K�yэ��"-��@Xyvt#���ϻw����TL�I�aa�[ҹ�@��n�� -��
��M{&�[���j)
Oݦ���ԡ�vXY�Ц<�q�ʲs����q�~G��1�B,�{5
�Mv�
'�
��T��w,�J/B�
,E�fJ9A�ts�������ڶ�A�QՈ!���>v���I�kC��m��9���!s�g�yܙ��"v��l�S/rt)�\m�!a
�B��H
�%v��ۘ���tI�ќk�_SV�}����;�0���p�>��2{�`EjG�< 3�"��!���� գ�4bH�A=�BE.bA��"�n�DZҠpqS.7�.����C��j��am�<��07+zL�<nQGj���e����
�B8BaG��ii�D(']�`l̻���B:m�Va�6�!�!#LF�fvVpR�Jo��2G��Q��M�E�2��>�*^�2j$�=��#���stcYY�e�-I�cD3�Xeg�0RX;�
sD}Y[�����z�߃�9eo��8��P�9�b(a"-�v��_I��brKL�P�Х��CT
L�E���NsK=2��}F:!숲w8*fBk���n�l�-t�I�w~�a��
N�IwL�A����&�JF�9-�zn�ϰ愙�2Ňes��h��9arZ�>$'LJKP�D�DZ�6$&��!�0
�mH$̔s����q�C�IEND�B`�PK�{�[����images/leaflet/layers.pngnu�[����PNG
IHDRC�EIDATx�T3x$�=�ݡ<W)ϪN]�S�:ob��=ƶ��ì�,cOζ1��:N��y��x$8|�>��y��}����b��W'�"L�㯲��>�Mz��O.���
/�8/�B�9Cq�䮣��Ɨ� 0�2Ӿ�ޖ�ƭ��pч9����?�p�>ᝬ>���J١v{�h���L���/��8��n);(�pa�u�T�a�Y��ߤ�e��3�6\����و�M�_�2'ƿ<m���R�Z%!�\(�
l93�~��I��U��r���DV)�Bפ;����#�ƻ��7�'5�\Z��NJ�Ԛ�4b7�b0����1%���CKм
S��ɔ���D&b*�E��$�b)3U��rM�������&4c8�a�%�KS81V��1Z�����;ʙ8�
1�އy�Մ��'�Fj8�8䆸s�
U�+�/�μ�֪FAm��H�$G�{���e����������E�lN��$�!&��� �C�����HB1�Rk�%�ES(1V�l�[1����aP�+>[O4��u�P��'�-J<��=�n0������&Ԡu���0�
����v�����@�3�6Ȁ��#����~ZN�L�t±%��`xz��jL�F�K����*�3��6)����IEND�B`�PK�{�[�Է�� � !images/leaflet/marker-icon-2x.pngnu�[����PNG
IHDR2R!w��PLTELiq3y�6�8��7��.k�3x�<��7��8��7��4��6~�4u�.l�6��0w�3x�6��-w�1t�.k�5~�6�2u�4{�6~�5|�5z�7��.l�-k�1t�5�2u�2u�1s�.l�/l�0q�.m�0p�.m�.l�2v�2t�1j�.l�-l�.m�.l�/l�.l�/m�.l�-l�-m�.l�6�.l�+m�.l�.l�.k�7��4~�.l�.l�D��0��:��/��.��.��A��-��+��+��:��*��<��=��-��)��(��;��'��'�%~�8��$}�9��#|�8��!{�5~�;��
z�6��y�3|�(~�x�4��w�6��1x�v�u�1x�&}�3��/u�1��3��1��0�1��.t�/}�.r�T��N��5|�0q�/o�4z�P��3x�W��\��2t�V��Y��J��E��0p�Q��N��K����>��^��3w�[��G��6�G��B��2v�\��=��7��=��3y�P��7}�:�<��1s�7y�2s�H��L��R��R��M��O��E��T��Y��J��<��9��={�G��A��7��A��C��0q�s��8��J��6��N��;��K��5��=��8��?��4z�J��E��D�����H��B��I��F��A��2��U��/n�:����~�����?��G��F�У��B�����X��D�ϥ��1��G��>�е��K���������7�����?��S��N��R��d�����_��c��@��G��F��@��]��S��^��B�����4�̴��`��8�͍��C��3��^]��CtRNS7So����D&��a�����,���Ǐ�w�����>G���j��w��6�$\�R0Ħ����
�IDATx^���rG�^�!D �Ʈ
cpI/��x���qs�9'�s�䜃s��³�� ��SS��3�ӻ����9T�~���_�tՍ��?�o-UWݼbܽe�n��s�G����_iT
[:�o�˯V�]'�ީr�,_�xޔ���ڷn�d��3�3)�dZ�����&�n��9{���e�Gm1�,I�Z�tnf�xZT�5
�l6ϻ��7�-<�ؚj@U�m(����ͷXK�|v���ZuT-���.W���\��^۩ʃ;f]���$'p�|nWBg���]�� �]�5�!������]��W
�$�J�i(n�����O%��INRt��ry��$/q�u��Q��u+��ܕ[*ϓ���c
�=��q��c��o�������G1Y�87ݒ���r�ǘr�A+��ȉ��l���tM�|s��(����٫g�����i�D�q�8�;�T:X����
(S�Ǿ!�����iZ�����ڍד����%�߱����,�
:�A��PK��0Txl6� ± �6�!Ӌ!8l��
3�`��O)y8��@4�%`�y�P厓�Јs3�fpΩ�xb� ��Zu���\ـj�9p^�Hl�&t�s�P�S���6�y�.�0#}#̄�ox͏B��(-��AGX�l�^`d���ju�i$���ˌ:����L�EA�D���+�Ѩ���b�z���zQ�G�ѫՕ[�������m��(�ɂM�&�w*?���H��
�����A��{�'�o�9I�O�I^G��42������t/�H����
��I.jB��/�l,�&5�W/����p*>YL�THs)��M �x�_X_<~#BQԓ���h(JX��{+2��H��(jE��]�'˲���4�Y^(E#�
E����n@�m?(ھ��n|
�����-�L�^9vw����d,��b�
?�����I#�8�8&��1q� C$*6�%��b�@[���)�UQu��I7'�415�o`lrM��z�Mݛ�:�N�
�&�����$O�>F�ߪL��-�2����Ӫ�1B
��U�?���]��1N
���_�Pn�"�GMOp�i���[M��I�/,j�KG���)����ė�4�3��2�g�i�2���Z<Oq�0�e[1�9���12\�V�YiFZ"��(��l��QzhXQ��6Xe
��s8S��7��F�G��w����Hx�L�����wVe��d�d�j��)��|�T��{�UU��Y#��� ���"K��3:,�j
�dmJ�$��|r����Z2�x�H$�O�%;=���f�u>���ٚD�K'�'�4w�~�7�'fZ6n�rЋs����eyވ8bK�2���(l�Y9�ǩ
d?6e��:F�Y�3#�k,r��cD\���-f�w��'r��R~W���=��ո�)�f�ݠ{Ҿ���KE�=D�ʔ$=S�J�4=�gŃ��n����H�ݖʅB�̐�ֻ-�uED�f��J��q�Q�r�1���c`��0��Q7��y�+Q
J� !��Gݚ�%��W@h3)IEND�B`�PK�{�[�����images/leaflet/marker-icon.pngnu�[����PNG
IHDR)�����IDATx�W�cY�څ����i�k�L��c�5��dm��x���f��U�^���=�<'���2��v��nX�0E���h��v*
��#Uj���*�i�G|���F���0�Z?��i�(�,'+��*�С������y��3�����.'�5�:�8�n@��)�ȵtv8~��Ò?����Nś�l�:��h����
z1� E���ڵ�vf���E�&7�M�!>�y��3<��)��e:��d�G�ߡ��b��)����*J��.Zw�h���ѵ�>�6Ŵ�(z4Ў�M����m=��m��-{B]��#���=���\>��1(QG����G��l�O^��%VD�]w��p���+��E����6l���M�]M��lW���r�}]c����I��JV��,���D���FA�+H��J}�;>z�>��O�p��
K6{G������e�U�����Gv3.笥����X߀�3
խ���T����gF�xUt�6v.����c�wӽ5t�q�{�u=�5l��:x�ϓ�.�.��JQ�n�489$tx)�f3���O}��������牳�Jx���ArӠcB���oST�%�~���8g��نaAYY��:ڟn�P$�{3EVm��6Ϙ��� ��!���q�R�:8`��.R,���|9���I�7�q�b��/X?xH�ݫ�Ӻ�V�-�Õ��2w.-��}�a#�8?!M��F1*|�܅�һ�x�7-���;�%�3��*;y5�b����.J�/%if+U�k�8�<�O��u��"L��Z���$���A�
��͒�5�@̖��7��?*<�囎����)��ę���6/�$��j'չP��v�2�|��}���]�R̿���$u��嶀�|��S�?��D��r\h���s�-
@$���y�}_����L���tܡ�M���M���N�FSX��t����91��q�x��Ep�.�U:�V�u�6F��M�ߒ�:�W�i�K���m�|s��@��Y�|�7M��$��є�
I��n*�N
���ȟT��
�u�$7��G����"r�]g��(u[I<�I��-�s��,R��p��q1��tm�Q@;�q��ѿ>�ܸpj���$4�隂}��v�#���h�ˢ�^����:�*�[G;��)���뀻��i�HJ6ҝZ;]���_g'���4��E�[� aj�y���e��u��q3�K��'�������?Sk��ήJa����Ŭ��xt�]�ǹG}�G��D�i�J�g]`�;i��Q�>�"�h"�Y}yN7�_5�>0a�IEND�B`�PK�{�[�mUjj
images/leaflet/marker-shadow.pngnu�[����PNG
IHDR))i�}1IDATx�҅��@�
3��33�
s�Ҕ������p�T~�N��ܐ7d����~��_������"cP\�
�W��Aq�4�^ �W�$Aq�C�Q�_�R�Cfd7&�d՚�H͞_i�8�H�n���I���0bG�i(#T!�F1� 2�o�D$G��)��ɸ��*��� /��etԀZ�P��Hu����r�e��Q��-��ʘ"��~���aK,�Y��vG%�����Q������t���+˜Sd+^�Q�/0&�����MM�<�8����k̸��$��M
��c�.�
u$G��:I�q�}��i�D\ȷ�Dt�~�@���jKe��W�zRB�p�8�|�\Ŕ�$�zR��%)�C9���fR(E�W@���],WK!����~�Rt��r�H�A˄���P�À�a{�Ad$ٱ�+(R�g��Z��dG"
\��4��b�'|�|&y$�):0"�q!�P�;>�彁_ِ3����L5N��=�S�
����@`D�
�h���c�Ƨ��ġaM^�q����#�R�t�_�3�8�@bIEND�B`�PK�{�[�)U���images/mail/footer.pngnu�[����PNG
IHDRX("ۄ4sRGB���bKGD������� pHYs��tIME� �!�bIDATx���-NQ��;�bIwQ*
���b]������i@V��!3�Ò�ˏ8G����1_�K[�R�<{V
���@`,���X�
���@`�W#+~�z�����)"w1�Գ�m㡾=����,���i�8�Y�A\�G�ˮ﵉Euuz��,�d@`,���X����;�+&�l�1g�͗Qe����5k�WU)�H�
Yuq}� Ѩl�@j`m��-d��!�R�l 3��N`�V��
7�\��_$��
7��`��-AF�y-�IEND�B`�PK�{�[�f�L��images/mail/header.pngnu�[����PNG
IHDRX&��rsRGB���bKGD������� pHYs��tIME�8����cIDATx���Kb�@���� r��)��Lw��l����c���Z#��_?�^9K��!3Y��.a��*�
�
c4
��Y@#��F���oI����I,
��
L�L��2#sI�r��$Q/�%�v��|�a���Z% H���(iaf%��2�li��{�-3+)�K�D$�����K��볞��5�"sμ�0�q�w\��^)�U��Ak��r���k*p5�Ң�����SO��̰�k��2�*if52����w�)����|�.�����%���jbf��Bɽvo�LҦ�d̳ʱ��>�\?d�l)-�ƕ:���u��缜G���Y�%�v��,���r�Fx�f�A���
�S�A5)�~i��]�s�8�T#�E�Ȓ]����e~�(c����e�tt�EX�4��oR��Wm�-_�e�$�y-3:Z��C�b����f&o2r:I��c����EZ�g��7fI�8x\�-�4���a�.�۵rYk���?J�x@GO
혱)a��q�dg��}a�h�<��^�\GIn�Lc�fNkS^�@����-;>���bFZ���/��9/m��j|���G�Ŕ�0��C+�2��ˎ���,#�^���)�'����>b?��}P}��eM���(��[F+�C��g�$iu$��q��sb����
�v�O�잽���Mk}XKʵ�'�<�zyn��P�e�֣�C'[Q��j�/��y\��`)�o�w�o����^�͛��Q[�{7�7{���,v�k#��̂�~��9\�99F��)�;��8Y@�AȻ��n�!��
d4
��F!��P��O��IEND�B`�PK�{�[wtW�images/mail/index.htmlnu�[���<html><body></body></html>PK�{�[ ~vQ88images/otree/empty.gifnu�[���GIF89a�������!�,��������ڋ�ޜ;PK�{�[�Y�'ttimages/otree/folder.gifnu�[���GIF89a�������۷R̙4�����q*����l��"�jɖ1��%���g۷q���n˘3����~Œ-�uǔ/����s
���yȕ0��(��Ʈ|�h�v�z��o���������u�����������!�.,�@�pH,�Ȥ�5L�@9`Y)�az@`0���D��pbm�ۣϐ�:���1Ĵ���+C-%���-�B-*���- �.-)���-�
-(���-!�
-$���-|Bg
" C+���D&���RKJA;PK�{�[=K�Txximages/otree/folderopen.gifnu�[���GIF89a����s
���̙4������h�n˘3ɖ1�l�j���������ƚ��z��%Ϣ&�u�~�C*�p
������@ڿl�넙g����Pɠ!��p�r�ׄ��"�qȕ0��Ƭz����u����붶����ƚ���������!�5,���pH,�ȤR8
(�@9�YKaz�ʾ_ZĤ�`(�!�n[���0A���x٤!����~!'/}3mm31%�51�xw21#
��-���"��2+��+�5�3,���|B���$
D/���E.���RKIA;PK�{�[wtW�images/otree/index.htmlnu�[���<html><body></body></html>PK�{�[���EEimages/otree/join.gifnu�[���GIF89a�������!�,�����(��,�G�j4�bI����A;PK�{�[��BBimages/otree/joinbottom.gifnu�[���GIF89a�������!�,�����(��,�G�j�H�扦F;PK�{�[��BBimages/otree/line.gifnu�[���GIF89a�������!�,�����(��,�G��}W(Nd��h;PK�{�[�.Xy��images/otree/loading.gifnu�[���GIF89a���������������������؞��������222RRR��즦������������������������DDD```�����輼�***666FFF������<<<NNN>>>HHH������ZZZ������ppp���������^^^\\\bbb������~~~������,,,VVVPPP���888XXX�����֜��������@@@���$$$
���rrrJJJ444jjj�����&&&|||BBBTTT
������LLL������fffhhh��ܠ��"""!�NETSCAPE2.0!�Created
with ajaxload.info!� ,h���
"&%��! (�� � )���#'*��
��������$�� ��
��ҩ���։����$$��%��с!� ,k���457���3 /9:=9�+//�8; ;0�,
2.6!� 5�-)1�<><2�.0��0?
���%$Ă$%������҃�Չ���ǂ��%��ȁ!� ,h������ %*���@A &E�
8>�F���BC4G��D��
"&%�$�!�(���)��#'�˹��ӂ�Ղ���$���%��с!� ,g�������%%���$$DNR��I Q���HJOS��0��457%��3 /���/�8��.6��FP��K L0���!� 5���L T2���MQ��!� ,h�������%%���$$��������������� %����
�NE���+VXV����
"&%U>�F��!�(GWYB[��)GZ�#'*��!� ,g�������%%���$$������������%��$������P�]
]�F !�DS,�\ �)457I `�C <23�/^_�MQ2/�8�.6��!� ,g�������%%���$$����������
"&���! (�$��)��#'*��+NR�AOa��6����a\Y3��͂[ZH��
��!� ,h������b=J�%%��Fc L$$��\ �O���d>"2��0?1��457��3�/�$�/�8��.6��2ǃ%B+]��,
�����S_SD���ڏ���;PK�{�[��VVimages/otree/minus.gifnu�[���GIF89a����������!�,'�?�����Z�"�M3��"�e�*��:,k��uM�ܺ��;PK�{�[��UUimages/otree/minusbottom.gifnu�[���GIF89a�������!�,&�/�����Z�"�M3���e�*��:,k��uM���z^;PK�{�[+iV*]]images/otree/nolines_minus.gifnu�[���GIF89a�������!�,:H����*\�0�Ç
�
E�f�8�G�6j�Xq$F�!BdȲ�˗0;PK�{�[��_ffimages/otree/nolines_plus.gifnu�[���GIF89a�������!�,CH����*\�0�Ç
Q࿁fpQ�F���9�c��KV�q%A�/!BdH��͛8;PK�{�[�v�2CCimages/otree/option.gifnu�[���GIF89a�L(((555888999CCCDDDEEELLLOOO[[[bbbeeegggkkklllnnnqqqrrrttt{{{}}}������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������!�,����������JJ��&HH��ED6II6?��;KBGCCFCJ9�=>33><
�-C.�/A*�78@;�:>85�4412�3240�+��*,�((,--,()�'
&!#$"& )�"%�(��Ёt������
�3� ;PK�{�[ǩ(cFFimages/otree/page.gifnu�[���GIF89a�������������������������������kt���^a�U�퓪�z�������턛ʊ����꒼�s~���������������mw�ej��������匮������gm����}������������ip�oz�r|�t�������������붶��ux�������!�A,��A�������.6��65�@
5��0@� 15�'�"5�/�(�<<)9�,��<??4��%*
�>>�73ʄ�<��7
#Ճ��?788߂&����2�A-�7�+���B��ף���*@`�Ç 0
���/vB��P
;PK�{�[ vQYYimages/otree/plus.gifnu�[���GIF89a�������!�,*�/�����Z�"�'�h�n�y&���g��S��uM:����+;PK�{�[2k�XXimages/otree/plusbottom.gifnu�[���GIF89a�������!�,)�/�����Z�"�'�h�n�y&���g��S��uM��~_;PK�{�[�(.��images/otree/world.pngnu�[����PNG
IHDR�a�IDATx^��mHSa��r�eV,!L�"+
�0��>h��P�0)RXR B�3����%�A��6���Ӆ3�2���m�Z�Y������;�
va�����=<�s�a!"l�[�^朽!�{�mX�����
x���F�H��
b��>�+��U�7�T�+�(Z���ǖY�u��S� �]D����ΰIX!2`��~�b�̂F�y4a��+!����i7�
t�*�jq�.V~yF<��O���
��vx������6��ű\$�T;lLb�PկW�� �2{�mʄ�f,h1�[�=��g�FWQM�{�Vl7t0;�Y��s��H����
|~�$��n���!).
�
>
(��6-�H�=�1åDG��[�=JS�egҍǗ�2:���D���r�#\x)��z6��|�X@zᕷsF�F�����
�e�BQ��z��=�"ś��9��g[���ql���݃AZ��V�}�ip��ܛT^?�m��
��.,{%g��P^'Tb먶��D7����'�$�/��ڄ��1�b'
�#�gFl@#�ܑ��?�'R�d5 �:>&��Eْ�!�̘��=V��Q����{��,QH�F��L��I��S;�J��/��;��ц�1�VWtE����u�q���y�#�/<�[�8��D�KSx|IIEND�B`�PK�{�[f]����images/progress.gifnu�[���GIF89a&�
!!!"""###$$$%%%&&&'''((()))***+++,,,---...///000111222333444555666777888999:::;;;<<<===>>>???@@@AAABBBCCCDDDEEEFFFGGGHHHIIIJJJKKKLLLMMMNNNOOOPPPQQQRRRSSSTTTUUUVVVWWWXXXYYYZZZ[[[\\\]]]^^^___```aaabbbcccdddeeefffggghhhiiijjjkkklllmmmnnnooopppqqqrrrssstttuuuvvvwwwxxxyyyzzz{{{|||}}}~~~���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������!��,&���Y�G��#��@�&\��aD�
Vxaƍ/R�ȱ�ȍi$�J�FZSࡋ3k��)�
͚<{>� 3���ES��Ԍ�1O�J��ũէS�>�z�T�R�t�
6�خ_˞E[���1Sڮ�
W�X3q�ޭ��m@;PK�{�[��=��images/progress01.gifnu�[���GIF89a&�S�!S�$X�*[�0`�8g�=j�[��\��^��b��g��l��o��s����!�,&n�֪mN%$��W�m��WN'���I�l;�-���Ӧ���,N���(���f� �Z~��n5x�x<&x��0�lF�k���n��ϫ�}g{|to�{�g������_;PK�{�[���!!images/spinner.gifnu�[���GIF89a�?
%%%666DDDLLLTTT[[[dddlllttt{{{������������������������������������������������������������������������������������������������������������������������������������������������������������!�NETSCAPE2.0!�?,�����n
��RC�~o�Y-1����J��eF�$�v1_oa��SFr��29?, 8:BS".J#EJ')C-W7"#
,W6C.&>K,�C9!;K
6?>$�'75-8)�+b1)#/(?5)�?:>!?!4W1/?
>8�K>�?$�:IBA!�?,
X��p��$zD�+��!=�3�����~/�T))@B�X�r
��C Ȅ���� w6D(>IB$0�B1�D3,�?:%�A!�?,Q��pXi�B��c~6CY[@~�g#�l���A������PT:ȆE�~'�F�D2:C<7
>B.%HMC"3�1WBA!�?,
O����L�H�,�M?ܢ��U2?
4B0%Y���*@~7�j��P�/D�~���<I�G��.
�j�?HA!�?,Z����� ���T��
�#���6��%����%,�V$G��0 =ݣ�
����][
w-w"{?>JH).{?(<{�?A!�?,P��o�Y �_);^d��O�X�ʱ8"��$�
g�r�)�12��D��b8
?*=B1f.�f6^A!�?,
O��p��ňB,C�w�ȅ���FU!�2�d�2��1A�H�ߢ�x�$-������
@~-X=? ?(D�0D
=?NCA!�?,
V��pH̸��S
ɼ�>�SH�T.��YB8dDA��6����
)h��B� d���+�h ? ?,C"+?=2"C=a�<?:DA!�?,Q��p��
�X��?��XS�'��HL!��
6Ԥ�Ӱ~�_�H)@�Z�J �?
0P'??
>5qG>7BOGA!�?,
N��0� �BE�p
!�C�zZS+�䞞_�`�����~�ꩠ�8V�H�(?4G.M??6zG_?HA!�?,
U����3��ȟ�!B�_��vѣ��u
�SV1 FY�꓾M
ݘ�]>�Z�X*�X
"/I8??PG/)??8i$>?A!�?,S����W��W���O�\~AWP�~(�9�Fñ6�j�s�|�G��
!
5!'7?&*?0)#C:?!C1/? A;PK�{�[
h����images/spinner_02.gifnu�[���GIF89a@@����DBD���$"$dbd��䤢�TRT���424trt������
LJL���,*,ljl��쬪�\Z\���<:<|z|���������������DFD���$&$dfd��䤦�TVT���464tvt�����LNL���,.,lnl��쬮�\^\���<><|~|������������!�NETSCAPE2.0!� ?,@@���pH,�Ȥr�l:��$/��xѬvh���jKv6H`0LVn'Y�4��9�x�f�W�i4}Z<XC5�`8G-'&�D63 ;9?7�F&_0�?
3�-��Ei�v0�9hz1�B<�i-}
��:+q5G^`7�m�`/�88�C
`}<�_$�I2%=��`��P-�_�Px�.����7fP�(�ݠc�C�N�C�C��J�q�±D�A�C�
��x��O�EQ8�БF���dxH�P�j�lSǍ|����>�G�+N�Ȉ�GG�Y7�@GCdX#4�Ka�쐱�lp[DA\0l�q`�#��/)���"�%&�~Ѡ�r�!�@7��$= 2�n��D��uZ�����v2�@: \ŰR��2���
$�m�1n�C^�Q9�wA#��8�`�昀�E�2<j���q�f|��B�
Yj��@�
4$d��=��EQ�~wX�C4t�Kq�pV\}�:2SVp��S�R�qaS
����9Y��H���@
��"
,��C %�#Q"�1��Y�l�-�3i�X$-|��
ܴ�Ni�Xf��C!� >,@@����DBD���$"$��䤢�dbdTRT���424������trt
���LJL���,*,��쬪�\Z\���<:<������|z|ljl������DFD���$&$��䤦�dfdTVT���464��tvt���LNL���,.,��쬮�\^\���<><������|~|�������@�pH,�Ȥr�l:�ШtJ�Z��A�v�2q$��:�x=:�}����>��bI�a���E::EarH%6b/�1(
�B
k(G7r�g49xb'C+8H:3x,n,�k�Or6�^0�rP;r&n:�k/�O2'�n4�r
�R�k�Q�b��O:��u:�N�\g,+&�K:1�B0;��;T)z��&��
0.�A�ߕ8rnPa!�@� ���
gG�.4n�X��x.cʜ�f�
�Qt(x���Z(ę�F�b+M�����a�܋�XX<��[�08D�L*p�
@�����svP�X��.�g��)����g6ВKI��Ϩ�
�~����~�J���m��2�Ն�?�^L�CЦ�W3rx�m#]+T$a��.`ot�c�
�)����Bt��@CyAhH7B�8CYXs�s7�����������T��_�
��D��u�*��`#(F,���L7�`X��ɑ�wT�e�;B���$�N`Q��N���T!��h�p��H�]�&1�@b::|�
*<<�7L ��(�
5���`�A!� @,@@����DBD���$"$���dbd������TRT���424���trt���
���LJL���,*,���ljl������\Z\���<:<���|z|������DFD���$&$���dfd������TVT���464���tvt�����LNL���,.,���lnl������\^\���<><���|~|��������@����������������������-7���9���?<��#��@�������9'��$�6�8�0��
�(��:�?̋*,;�?4�/̼>��=(�)����%�3L,��U�a���4|Q����')��^`���G?j�Ţ�d5�����n��P�R,Y:zR�!@V��n��RK�J�J���/^�zh�
�P�谕���@Ǖ��
E���C�G⮒Q��0
�����>��f��!C�q�* ^U��OY
1�@����20���S�py[d���W���Q��.je����m�Fl�o�R�ȱ⮣`�Rx��E�p$��膈�2�^��!.
>����� }ر��+����Z9��0�B��Q�d,8W���S@V�h/���?��vZ-�!����)�2��&�Q����p�e抆���"��BMiK���)��fA
�)f�$�q��M��.V� ��378�ҘA d�d%>p��
?t CZ�`�jؼ�b$�Y�;�p��
]NC���*:y(,)��� �p棘�!� >,@@����DBD���$"$dbd������TRT424trt���������
LJL,*,ljl������\Z\<:<|z|�����������܌��������DFD���$&$dfd������TVT464tvt��������LNL,.,lnl������\^\<><|~|���������������@�pH,�Ȥr�l:�ШtJ�Z���v�2;$��;�x=:�}����>��X�ap��Mar3H6b0�LrGr
;�K)*=H;x-�
<9S;r�u:(k.�Pr&�x�R3%��!�$�U3��T���R=�Ɍ;�R�4�-!*&�O;4
b
,�;rU;5
�g
x�Uxn���C��ԸaAE����A�H��Ŋ5LdXࢇċCZd��GD�G�p�htP�fG
gbT[�!�I1*���s��%;n�q�̂�b@4X��Y��Sb@#T�$g\�h�J, ����ۚ6��cS���*��b؍�j�%-V�A���!�7�
i�@��N��f�=�x��
)�Xe�
.&���A��"5�QQ�Z�^X&��H�:�\#C�!���l��O<6J��!ck�KsqBZ�@�K���p��K4�Cǥ�LW�#�[���~� ��l���
Jm����1�D4��$|M
�8C\C`��
)��n���� ��S��"J;�
x��D
pPB
8p\�Di�A!� =,@@����DBD���$"$���dbd���TRT���424���trt���
LJL���,*,��쬪�\Z\���<:<������|z|���ljl������DFD���$&$��䤦�TVT���464��tvtLNL���,.,��쬮�\^\���<><������|~|lnl���������pH,�Ȥr�l:�ШtJ�Z��Kv�21���8�x=:�{����>��W�a���Mar;H%�9�L,rGr18�K(*6H81x+�:<Tr4�u'k.�P#
k�x&S0��!�$�+6�R;�o65b�P��g
�x.�N6ƫg0�.�N�3g8�btO83b1,n��p"2d�2�`�.��Tp�YD')R��D��8Bi-�A�Mp���JZ l���K(+((�ɳ�L�p��TUXA����NN�H4�`�BA����a��F;oLLФ�1X�8��(����v��#I�m3�a��% �A4#cW�M
{�ʁ�6��P���`z\��i�5*�.���*w�q��F{:�1Bo�%+�s�o#��"Q����L:"Cf�(q�0�`�W#9��E^�L���N1yEP��1X�N�
�E�0Pe�bB0� :�Y��h�X
",�YDBV
*�@
���
7�!B{D��_<�� �8]*�8�8��Q!� ?,@@�������DBD$"$������dbd������TRT424������trt
������LJL,*,������������\Z\<:<������|z|ljl������DFD$&$������������TVT464�����tvt������LNL,.,������������\^\<><������|~|lnl������pH,�Ȥr�l:�ШtJ�Z�����u:�kG
7d�0����ә�"��~7�bsO}f9E+�w'�M&�#E �}*�Le}>D<�}r�I
w&D��w;�K1+8E)�w�%=P��y�'w/aM6�
��%O���!�$�L���s>��N&3�$�E<5�Pڕ�N-(:/:`t(�"30����
{N��1҂O���PD�ԃP���``fR5NU��ɼ-�h�b!,*Z��y�Q�+
=��JB�*��Aq�J��@L0��
-xV�ʵ�ׯRp�0�@�H����*�xp;�CwV��)!��!�KjA�-��5��/ZQU���91�:�Ģ�x�x�hZ��P��45�.�P2?�Ȇ�&-BP�|N�����i3+�Ѣ�M:n܈����س��l�-��,{��PHܕ�|(G�_�*���2F�K\y�����V-X��
�"p�jGԠ[!��A+�5�A |@�wW��";�w����-@��HP���@6�7Q�@)�D�!� ?,@@�������DBD$"$������dbd������TRT424������tvt
������LJL,*,������ljl������\Z\<:<������|~|������DFD$&$������dfd������TVT464�����|z|������LNL,.,������lnl������\^\<><������������pH,
M�ק�0:�Ш�h9�W��5�z�v�Y����C#�i���q�C��Dz�\F>zj~nD<2��]&�dC50d!��Q6�cB
v%�R(�WB3~$q�P;�2?.�~:�P
��?�"�B6&?>/�5B�����W)>+��>����d�> �X9�=~�!v�9;J4)�#�t�n�1�F�v�@�)�B9>(���"�D5:z�!�Q�cfD��
5`ĐYQ��}�H�,��
8��g��d�&�y�T�47
l4%dbۘKS I�1���z\T��سhӪ]˶��!4�@4�u�xY�b�/>�����cH��ψ�j�i����4����!��|�������X
�ޗ:v&`��A���^\�����O��00~<�
R@jN��u�>,Ȱ����f��.��l}t8��(��$X�3���Y�6��Tر�Z
`������!�a�p���Y2�5�p�
\x����}`V�
�9c�0Y�Bx(p�4B�Aw=)�D!� ?,@@�������DBD������dbd$"$������TRT������trt424������LJL������ljl,*,������\Z\������|z|<:<
������DFD������dfd$&$������TVT�����tvt464������LNL������lnl,.,������\^\������|~|<><������pH,�Ȥr�$nJ�MsJ����bT�`"�-|��z����>�z�$�������?,F8)�{F;003;;~f1D;>Z!R�?;#w.�e:Dw&;���e)C%~"{;��/�?(�5{7��D
�9zȧ#�?!�
z3�~
<�C��t��53(4G;-w�t
�L< Z
�sd�s1o
:��a�FAOS`ؓ��xb��B�d8�a��2+��x!-CH5�8����,
�`4c�������c�rT(��F�C4��&
$@Qb�^ÊK��ٳhӪEKC��Ʋ`�2\Z\�K#.��`��A��;D�9pɂI#��)pg�~�x�q����z�dD�)'i���
����#C��6a���k�0�W����Sv�
p#�m�УK�(��Ӆ�0PF���Hvp7�x�
�p�$�j7�/�n?*�B��
?���A����If�g��&
���C\d1��w��PC31`F!x<��xF��X=4��
�.�0�B찁�8���@�D;PK�{�[wtW�
index.htmlnu�[���<html><body></body></html>PK�{�[�`�&js/dropdown.jsnu�[���/**
* @package HikaMarket for Joomla!
* @version 3.1.1
* @author Obsidev S.A.R.L.
* @copyright (C) 2011-2020 OBSIDEV. All rights reserved.
* @license GNU/GPLv3 http://www.gnu.org/licenses/gpl-3.0.html
*/
!function ($) {
"use strict"; // jshint ;_;
/* DROPDOWN CLASS DEFINITION
* ========================= */
var toggle = '[data-toggle=hkdropdown]',
HKDropdown = function (element) {
var $el = $(element).on('click.dropdown.data-api',
this.toggle);
$('html').on('click.dropdown.data-api', function ()
{
$el.parent().removeClass('open');
});
};
HKDropdown.prototype = {
constructor: HKDropdown,
toggle: function (e) {
var $this = $(this), $parent, isActive;
if ($this.is('.disabled, :disabled')) return;
$parent = getParent($this);
isActive = $parent.hasClass('open');
clearMenus();
if (!isActive) {
if ('ontouchstart' in document.documentElement) {
// if mobile we we use a backdrop because click events don't
delegate
$('<div
class="hk-dropdown-backdrop"/>').insertBefore($(this)).on('click',
clearMenus);
}
$parent.toggleClass('open');
}
$this.focus();
return false;
},
keydown: function (e) {
var $this, $items, $active, $parent, isActive, index;
if (!/(38|40|27)/.test(e.keyCode)) return;
$this = $(this);
e.preventDefault();
e.stopPropagation();
if ($this.is('.disabled, :disabled')) return;
$parent = getParent($this);
isActive = $parent.hasClass('open');
if (!isActive || (isActive && e.keyCode == 27)) {
if (e.which == 27) $parent.find(toggle).focus();
return $this.click();
}
$items = $('[role=menu] li:not(.divider):visible a',
$parent);
if (!$items.length) return;
index = $items.index($items.filter(':focus'));
if (e.keyCode == 38 && index > 0) index--; // up
if (e.keyCode == 40 && index < $items.length - 1) index++; //
down
if (!~index) index = 0;
$items
.eq(index)
.focus();
}
};
function clearMenus() {
$('.hk-dropdown-backdrop').remove();
$(toggle).each(function () {
getParent($(this)).removeClass('open');
});
}
function getParent($this) {
var selector = $this.attr('data-target'), $parent;
if (!selector) {
selector = $this.attr('href');
selector = selector && /#/.test(selector) &&
selector.replace(/.*(?=#[^\s]*$)/, ''); //strip for ie7;
}
$parent = selector && $(selector);
if (!$parent || !$parent.length) $parent = $this.parent();
return $parent;
}
/* DROPDOWN PLUGIN DEFINITION
* ========================== */
var old = $.fn.hkdropdown;
$.fn.hkdropdown = function (option) {
return this.each(function () {
var $this = $(this)
, data = $this.data('hkdropdown');
if (!data) $this.data('hkdropdown', (data = new
HKDropdown(this)));
if (typeof option == 'string') data[option].call($this);
});
};
$.fn.hkdropdown.Constructor = HKDropdown;
/* DROPDOWN NO CONFLICT
* ==================== */
$.fn.hkdropdown.noConflict = function () {
$.fn.hkdropdown = old;
return this;
};
/* APPLY TO STANDARD DROPDOWN ELEMENTS
* =================================== */
$(document)
.on('click.hkdropdown.data-api', clearMenus)
.on('click.hkdropdown.data-api', '.hkdropdown form',
function (e) { e.stopPropagation(); })
.on('click.hkdropdown.data-api' , toggle,
HKDropdown.prototype.toggle)
.on('keydown.hkdropdown.data-api', toggle + ',
[role=menu]' , HKDropdown.prototype.keydown);
}(window.jQuery);
PK�{�[ױQ:F:Fjs/hikamarket.jsnu�[���/**
* @package HikaMarket for Joomla!
* @version 3.1.1
* @author Obsidev S.A.R.L.
* @copyright (C) 2011-2020 OBSIDEV. All rights reserved.
* @license GNU/GPLv3 http://www.gnu.org/licenses/gpl-3.0.html
*/
(function() {
function preventDefault() { this.returnValue = false; }
function stopPropagation() { this.cancelBubble = true; }
var Oby = {
version: 20170309,
ajaxEvents : {},
hasClass: function(o,n) {
if(o.classList && o.classList.contains)
return o.classList.contains(n);
if(o.className == '' ) return false;
var reg = new RegExp("(^|\\s+)"+n+"(\\s+|$)");
return reg.test(o.className);
},
addClass: function(o,n) {
if(o.classList && o.classList.add)
return o.classList.add(n);
if( !this.hasClass(o,n) ) {
if( o.className == '' ) {
o.className = n;
} else {
o.className += ' '+n;
}
}
},
trim: function(s) {
if(s.trim) return s.trim();
return (s ? '' + s :
'').replace(/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g, '');
},
removeClass: function(e, c) {
if(e.classList && e.classList.remove)
return e.classList.remove(c);
var t = this;
if( t.hasClass(e,c) ) {
var cn = ' ' + e.className + ' ';
e.className = t.trim(cn.replace(' '+c+' ','
'));
}
},
toggleClass: function(e,c) {
if(e.classList && e.classList.toggle)
return e.classList.toggle(c);
var t = this;
if( t.hasClass(e,c) ) {
return t.removeClass(e,c);
}
return t.addClass(e,c);
},
addEvent: function(d,e,f) {
if( d.attachEvent )
d.attachEvent('on' + e, f);
else if (d.addEventListener)
d.addEventListener(e, f, false);
else
d['on' + e] = f;
return f;
},
removeEvent: function(d,e,f) {
try {
if( d.detachEvent )
d.detachEvent('on' + e, f);
else if( d.removeEventListener)
d.removeEventListener(e, f, false);
else
d['on' + e] = null;
} catch(e) {}
},
cancelEvent: function(e) {
if( !e ) {
e = window.event;
if( !e )
return false;
}
if(e.stopPropagation)
e.stopPropagation();
else
e.cancelBubble = true;
if( e.preventDefault )
e.preventDefault();
else
e.returnValue = false;
return false;
},
fireEvent: function(obj,e,data) {
var d = document, evt = null;
if(document.createEvent) {
evt = d.createEvent('HTMLEvents');
evt.initEvent(e, false, true);
if(data) evt.data = data;
obj.dispatchEvent(evt);
return;
}
if(data && d.createEventObject) {
evt = d.createEventObject();
evt.data = data;
obj.fireEvent('on'+e, evt);
return;
}
obj.fireEvent('on'+e);
},
fireAjax: function(name,params) {
var t = this, ev, r = null, ret = [];
if( t.ajaxEvents[name] === undefined )
return false;
for(var e in t.ajaxEvents[name]) {
if( e == '_id' )
continue;
ev = t.ajaxEvents[name][e];
if(!ev || typeof(ev) != 'function')
continue;
try {
r = ev(params);
if(r !== undefined)
ret.push(r);
}catch(e){}
}
return ret;
},
registerAjax: function(name, fct) {
var t = this;
if(typeof(name) == 'object') {
var r = [];
for(var k = name.length - 1; k >= 0; k--) {
r[r.length] = t.registerAjax(name[k], fct);
}
return r;
}
if( t.ajaxEvents[name] === undefined )
t.ajaxEvents[name] = {'_id':0};
var id = t.ajaxEvents[name]['_id'];
t.ajaxEvents[name]['_id'] += 1;
t.ajaxEvents[name][id] = fct;
return id;
},
unregisterAjax: function(name, id) {
if( t.ajaxEvents[name] === undefined || t.ajaxEvents[name][id] ===
undefined)
return false;
t.ajaxEvents[name][id] = null;
return true;
},
ready: function(fct) {
var w = window, d = document, t = this;
if(d.readyState === "complete") {
fct();
return;
}
var done = false, top = true, root = d.documentElement,
init = function(e) {
if(e.type == 'readystatechange' && d.readyState !=
'complete') return;
t.removeEvent((e.type == 'load' ? w : d), e.type, init);
if(!done && (done = true))
fct();
},
poll = function() {
try{ root.doScroll('left'); } catch(e){ setTimeout(poll, 50);
return; }
init('poll');
};
if(d.createEventObject && root.doScroll) {
try{ top = !w.frameElement; } catch(e){}
if(top) poll();
}
t.addEvent(d,'DOMContentLoaded',init);
t.addEvent(d,'readystatechange',init);
t.addEvent(w,'load',init);
},
evalJSON: function(text, secure) {
if( typeof(text) != "string" || !text.length) return null;
if(JSON !== undefined && typeof(JSON.parse) ==
'function') {
try { var ret = JSON.parse(text); return ret; } catch(e) { }
}
if(secure && !(/^[,:{}\[\]0-9.\-+Eaeflnr-u
\n\r\t]*$/).test(text.replace(/\\./g,
'@').replace(/"[^"\\\n\r]*"/g, '')))
return null;
try { var ret = eval('(' + text + ')'); return ret; }
catch(e) { }
return null;
},
getXHR: function() {
var xhr = null, w = window;
if(w.XMLHttpRequest || w.ActiveXObject) {
if(w.ActiveXObject) {
try {
xhr = new ActiveXObject("Microsoft.XMLHTTP");
} catch(e) {}
} else
xhr = new w.XMLHttpRequest();
}
return xhr;
},
xRequest: function(url, options, cb, cbError) {
var t = this, xhr = t.getXHR();
if(!options) options = {};
if(!cb) cb = function(){};
options.mode = options.mode || 'GET';
options.update = options.update || false;
xhr.onreadystatechange = function() {
if(xhr.readyState != 4)
return;
if( xhr.status == 200 || (xhr.status == 0 && xhr.responseText
> 0) || !cbError ) {
if(cb)
cb(xhr,options.params);
if(options.update)
t.updateElem(options.update, xhr.responseText);
} else {
cbError(xhr,options.params);
}
};
xhr.open(options.mode, url, true);
if(options.mode.toUpperCase() == 'POST' &&
typeof(options.data) == 'string') {
xhr.setRequestHeader("Content-type","application/x-www-form-urlencoded");
}
xhr.send( options.data );
},
getFormData: function(target) {
var d = document, ret = '';
if( typeof(target) == 'string' )
target = d.getElementById(target);
if( target === undefined )
target = d;
var typelist =
['input','select','textarea'];
for(var t in typelist) {
t = typelist[t];
var inputs = target.getElementsByTagName(t);
for(var i = 0; i < inputs.length; i++) {
if( !inputs[i].name || inputs[i].disabled )
continue;
var evalue = inputs[i].value, etype = '';
if( t == 'input' )
etype = inputs[i].type.toLowerCase();
if( (etype == 'radio' || etype == 'checkbox')
&& !inputs[i].checked )
evalue = null;
if(t == 'select' && inputs[i].multiple) {
for(var k = inputs[i].options.length - 1; k >= 0; k--) {
if(!inputs[i].options[k].selected)
continue;
if( ret != '' ) ret += '&';
ret += encodeURI(inputs[i].name) + '=' +
encodeURIComponent(inputs[i].options[k].value);
evalue = null;
}
}
if( (etype != 'file' && etype != 'submit')
&& evalue != null ) {
if( ret != '' ) ret += '&';
ret += encodeURI(inputs[i].name) + '=' +
encodeURIComponent(evalue);
}
}
}
return ret;
},
encodeFormData: function(data) {
var ret = '', v = null;
if(typeof(data) == "string")
return data;
for(var k in data) {
if(!data.hasOwnProperty(k))
continue;
v = data[k];
if( ret != '' ) ret += '&';
ret += encodeURI(k) + '=' + encodeURIComponent(v);
}
return ret;
},
updateElem: function(elem, data) {
var d = document, scripts = '';
if( typeof(elem) == 'string' )
elem = d.getElementById(elem);
var text =
data.replace(/<script[^>]*>([\s\S]*?)<\/script>/gi,
function(all, code){
scripts += code + '\n';
return '';
});
elem.innerHTML = text;
if( scripts != '' ) {
var script = d.createElement('script');
script.setAttribute('type', 'text/javascript');
script.text = scripts;
d.head.appendChild(script);
d.head.removeChild(script);
}
},
ease: function(v) {
return 1+Math.pow(v-1,3);
},
easeInOut: function(t,s,dt,du) {
return dt/2 * (1 - Math.cos(Math.PI*t/du)) + s;
},
scrollTo: function(name, anim, visible, margin) {
var t = this, d = document, w = window,
elem = d.getElementById(name);
if(!elem)
return;
if(margin === undefined) margin = 0;
if(!anim) {
window.scrollTo(0, elem.offsetTop - margin);
return;
}
if( t.anim && t.anim.timer )
clearInterval( t.anim.timer );
t.anim = { timer:null, s:null, dt:0, du:500, t:0, inc:10 };
if( w.scrollY )
t.anim.s = w.scrollY;
else if( d.documentElement.scrollTop )
t.anim.s = d.documentElement.scrollTop;
else
t.anim.s = d.body.scrollTop;
if(visible) {
if( d.documentElement.scrollTop )
h = d.documentElement.clientHeight;
else
h = d.body.clientHeight;
if(t.anim.s <= elem.offsetTop && (t.anim.s + h - 150) >
elem.offsetTop)
return;
}
t.anim.dt = elem.offsetTop - t.anim.s - margin;
var o = this;
t.anim.timer = setInterval( function() {
var a = o.anim;
if( !a || !a.timer )
return;
a.t += a.inc;
if( a.t < a.du ) {
window.scrollTo(0, o.easeInOut(a.t, a.s, a.dt, a.du), false, margin);
} else {
window.scrollTo(0, a.s + a.dt, false, margin);
clearInterval(a.timer);
a.timer = null;
}
}, t.anim.inc );
}
};
if((typeof(window.Oby) == 'undefined') || window.Oby.version <
Oby.version) {
window.Oby = Oby;
window.obscurelighty = Oby;
}
var hikamarket = {
submitFct: null,
submitBox: function(data) {
var t = this;
if( t.submitFct ) {
try {
t.submitFct(data);
} catch(err) {}
}
t.closeBox();
},
deleteId: function(id) { return window.hikashop.deleteId(id); },
dup: function(tplName, htmlblocks, id, extraData, appendTo) { return
window.hikashop.dup(tplName, htmlblocks, id, extraData, appendTo); },
deleteRow: function(id) { return window.hikashop.deleteRow(id); },
dupRow: function(tplName, htmlblocks, id, extraData) { return
window.hikashop.dupRow(tplName, htmlblocks, id, extraData); },
cleanTableRows: function(id) { return window.hikashop.cleanTableRows(id);
},
checkRow: function(id) { return window.hikashop.checkRow(id); },
isChecked: function(id,cancel) { return
window.hikashop.isChecked(id,cancel); },
checkAll: function(checkbox, stub) {
stub = stub || 'cb';
if(!checkbox.form)
return false;
var o = window.Oby, cb = checkbox.form, c = 0;
for(var i = 0, n = cb.elements.length; i < n; i++) {
var e = cb.elements[i];
if(e != checkbox && e.type == checkbox.type && ((stub
&& e.id.indexOf(stub) == 0) || !stub)) {
e.checked = checkbox.checked;
o.fireEvent(e, 'change');
c += (e.checked == true ? 1 : 0);
}
}
if(cb.boxchecked)
cb.boxchecked.value = c;
return true;
},
submitform: function(task, form, extra) { return
window.hikashop.submitform(task, form, extra); },
get: function(elem, target) { return window.hikashop.get(elem, target);
},
form: function(elem, target) { return window.hikashop.form(elem, target);
},
openBox: function(elem, url, jqmodal) { return
window.hikashop.openBox(elem, url, jqmodal); },
closeBox: function(parent) { return window.hikashop.closeBox(parent); },
tabSelect: function(m,c,id) { return window.hikashop.tabSelect(mc,id); },
getOffset: function(el) { return window.hikashop.getOffset(el); },
switchBlock: function(el, values, name) {
var dest = document.getElementById(name);
if(!dest) return;
if(typeof(values) == 'number') values = [values];
for(var i = values.length - 1; i >= 0; i--) {
if(values[i] == el.value) { dest.style.display = ''; return;
}
}
dest.style.display = 'none';
},
dataStore: function(name, value) {
if(localStorage) {
localStorage.setItem(name, value);
} else {
var expire = new Date(); expire.setDate(expire.getDate() + 5);
document.cookie = name+"="+value+";
expires="+expire;
}
},
dataGet: function(name) {
if(localStorage) {
return localStorage.getItem(name);
}
if(document.cookie.length > 0 &&
document.cookie.indexOf(name+"=") != -1) {
var s = name+"=", o = document.cookie.indexOf(s) + s.length, e
= document.cookie.indexOf(";",o);
if(e == -1) e = document.cookie.length;
return unescape(document.cookie.substring(o, e));
}
return null;
},
setArrayDisplay: function(fields, displayValue) {
var d = document, e = null;
if(displayValue === true) displayValue = '';
if(displayValue === false) displayValue = 'none';
for(var i = 0; i < fields.length; i++) {
e = d.getElementById(fields[i]);
if(e) e.style.display = displayValue;
}
},
dlTitle: function(parent) {
var t = this, d = document;
if(parent && typeof(parent) == 'string')
parent = d.getElementById(parent);
if(!parent)
parent = d;
var dt = parent.getElementsByTagName('dt'), val = null,
hkTip = (typeof(hkjQuery) != "undefined" &&
hkjQuery().hktooltip);
for(var i = 0; i < dt.length; i++) {
if(dt[i].offsetWidth < dt[i].scrollWidth &&
!dt[i].getAttribute('title')) {
val = (dt[i].innerText !== undefined) ? dt[i].innerText :
dt[i].textContent;
if(hkTip) {
dt[i].setAttribute('data-title', val);
hkjQuery(dt[i]).hktooltip({"html":
true,"container": "body"});
} else
dt[i].setAttribute('title', val);
}
}
},
collapseTitles: function() {
var t = this, d = document, w = window, o = w.Oby,
collapsedBlocks = t.dataGet('hkm_section_toggle');
collapsedBlocks = collapsedBlocks ? o.evalJSON(collapsedBlocks) : [];
if(!collapsedBlocks) collapsedBlocks = [];
d.querySelectorAll('[data-section-toggle]').forEach(function(el){
if(el.collapseTitleInit) return;
o.addEvent(el, 'click', t.collapseTitle);
var section = t._collapseGetSection(el);
if(section) {
if(collapsedBlocks.indexOf(section.name) >= 0) {
el.collapsed = true;
o.addClass(el, 'hk_closed');
} else
o.addClass(section.elem, 'open');
o.addClass(section.elem, 'hk_collapsing');
}
el.collapseTitleInit = true;
});
},
_collapseGetSection: function(el) {
if(!el) return false;
var d = document,
sectionName = el.getAttribute('data-section-toggle');
if(!sectionName) return false;
var section = d.getElementById('hikamarket_section_' +
sectionName);
if(!section) section = d.getElementById(sectionName);
return {name: sectionName, elem: section};
},
collapseTitle: function(evt) {
if(!evt) {
evt = window.event;
if(!evt) return false;
}
var w = window, t = w.hikamarket, o = w.Oby,
el = evt.target;
if(!el) return false;
var section = t._collapseGetSection(el);
if(!section) return false;
if(el.collapsed) {
o.addClass(section.elem, 'open');
o.removeClass(el, 'hk_closed');
} else {
o.removeClass(section.elem, 'open');
o.addClass(el, 'hk_closed');
}
var collapsedBlocks = t.dataGet('hkm_section_toggle');
collapsedBlocks = collapsedBlocks ? o.evalJSON(collapsedBlocks) : [];
if(!collapsedBlocks) collapsedBlocks = [];
var p = collapsedBlocks.indexOf(section.name);
if(p >= 0 && el.collapsed) {
collapsedBlocks.splice(p, 1);
}
if(p === -1 && !el.collapsed) {
collapsedBlocks.push(section.name);
}
t.dataStore('hkm_section_toggle',
JSON.stringify(collapsedBlocks));
el.collapsed = !el.collapsed;
},
noChzn: function() {
if(!window.jQuery)
return false;
jQuery('.no-chzn').each(function(i,el) {
var id = el.getAttribute('id'), chzn = null;
if(id) {
id =
id.replace('{','_').replace('}','_');
chzn = jQuery('#'+id+'_chzn');
} else {
chzn = el.nextSibling;
}
if(chzn) chzn.remove();
jQuery(el).removeClass('chzn-done').show();
});
return true;
},
switchTab: function(el) {
if(!el || !el.parentNode || !el.parentNode.parentNode) return false;
var d = document, w = window, o = w.Oby,
c = el.parentNode.parentNode,
r = c.getAttribute('rel'),
current = el.getAttribute('rel'),
dest = null;
if(!r || r.substring(0,5) != 'tabs:') return false;
if(current.substring(0,4) != 'tab:') return false;
var id = r.substring(5),
tabs = c.childNodes;
current = current.substring(4);
dest = d.getElementById(id + current);
if(!dest) return false;
for(var k = 0; k < tabs.length; k++) {
if(!tabs[k] || tabs[k].nodeName.toLowerCase() != 'li')
continue;
var i = 0, l = tabs[k].childNodes[i], lr = null;
while(l.nodeName.toLowerCase() != 'a' && i <
tabs[k].childNodes.length)
l = tabs[k].childNodes[++i];
if(l.nodeName.toLowerCase() == 'a')
lr = l.getAttribute('rel');
if(!lr || lr.substring(0,4) != 'tab:') continue;
var lid = lr.substring(4);
if(lid == current) continue;
o.removeClass(tabs[k], 'active');
var ld = d.getElementById(id + lid);
if(ld) ld.style.display = 'none';
}
dest.style.display = '';
o.addClass(el.parentNode, 'active');
el.blur();
return false;
},
callbackFct: function(t,url,keyword,tree,node,ev) {
return treeCallbackFct(t,url,keyword,tree,node,ev);
},
searchSubmit:function(el) {
if(el.form.limitstart)
el.form.limitstart.value=0;
el.form.submit();
},
searchReset:function(el) {
if(el.form.limitstart) el.form.limitstart.value=0;
if(el.form.search) el.form.search.value='';
var els = el.form.querySelectorAll("[data-search-reset]");
if(els) { for(var i = els.length - 1; i >= 0; i--) {
els[i].value = els[i].getAttribute('data-search-reset');
} }
el.form.submit();
},
searchFilters:function(el, id) {
var block = document.getElementById(id);
if(!block) return false;
block.style.display = (block.style.display == "none") ?
"" : "none";
return false;
}
};
window.hikamarket = hikamarket;
})();
PK�{�[wtW�
js/index.htmlnu�[���<html><body></body></html>PK�{�[�(V5�%�%
js/leaflet.jsnu�[���/**
* @package HikaMarket for Joomla!
* @version 3.1.1
* @author Obsidev S.A.R.L.
* @copyright (C) 2011-2020 OBSIDEV. All rights reserved.
* @license GNU/GPLv3 http://www.gnu.org/licenses/gpl-3.0.html
*/
/* @preserve
* Leaflet 1.3.4+Detached:
0e566b2ad5e696ba9f79a9d48a7e51c8f4892441.0e566b2, a JS library for
interactive maps. http://leafletjs.com
* (c) 2010-2018 Vladimir Agafonkin, (c) 2010-2011 CloudMade
*/
!function(t,i){"object"==typeof
exports&&"undefined"!=typeof
module?i(exports):"function"==typeof
define&&define.amd?define(["exports"],i):i(t.L={})}(this,function(t){"use
strict";function i(t){var
i,e,n,o;for(e=1,n=arguments.length;e<n;e++){o=arguments[e];for(i in
o)t[i]=o[i]}return t}function e(t,i){var
e=Array.prototype.slice;if(t.bind)return
t.bind.apply(t,e.call(arguments,1));var n=e.call(arguments,2);return
function(){return
t.apply(i,n.length?n.concat(e.call(arguments)):arguments)}}function
n(t){return t._leaflet_id=t._leaflet_id||++ei,t._leaflet_id}function
o(t,i,e){var n,o,s,r;return
r=function(){n=!1,o&&(s.apply(e,o),o=!1)},s=function(){n?o=arguments:(t.apply(e,arguments),setTimeout(r,i),n=!0)}}function
s(t,i,e){var n=i[1],o=i[0],s=n-o;return
t===n&&e?t:((t-o)%s+s)%s+o}function r(){return!1}function
a(t,i){var e=Math.pow(10,void 0===i?6:i);return Math.round(t*e)/e}function
h(t){return t.trim?t.trim():t.replace(/^\s+|\s+$/g,"")}function
u(t){return h(t).split(/\s+/)}function
l(t,i){t.hasOwnProperty("options")||(t.options=t.options?ii(t.options):{});for(var
e in i)t.options[e]=i[e];return t.options}function c(t,i,e){var
n=[];for(var o in
t)n.push(encodeURIComponent(e?o.toUpperCase():o)+"="+encodeURIComponent(t[o]));return(i&&-1!==i.indexOf("?")?"&":"?")+n.join("&")}function
_(t,i){return t.replace(ni,function(t,e){var n=i[e];if(void 0===n)throw new
Error("No value provided for variable
"+t);return"function"==typeof
n&&(n=n(i)),n})}function d(t,i){for(var
e=0;e<t.length;e++)if(t[e]===i)return e;return-1}function p(t){return
window["webkit"+t]||window["moz"+t]||window["ms"+t]}function
m(t){var i=+new Date,e=Math.max(0,16-(i-ri));return
ri=i+e,window.setTimeout(t,e)}function f(t,i,n){if(!n||ai!==m)return
ai.call(window,e(t,i));t.call(i)}function
g(t){t&&hi.call(window,t)}function v(){}function
y(t){if("undefined"!=typeof
L&&L&&L.Mixin){t=oi(t)?t:[t];for(var
i=0;i<t.length;i++)t[i]===L.Mixin.Events&&console.warn("Deprecated
include of L.Mixin.Events: this property will be removed in future
releases, please inherit from L.Evented instead.",(new
Error).stack)}}function
x(t,i,e){this.x=e?Math.round(t):t,this.y=e?Math.round(i):i}function
w(t,i,e){return t instanceof x?t:oi(t)?new x(t[0],t[1]):void
0===t||null===t?t:"object"==typeof t&&"x"in
t&&"y"in t?new x(t.x,t.y):new x(t,i,e)}function
P(t,i){if(t)for(var
e=i?[t,i]:t,n=0,o=e.length;n<o;n++)this.extend(e[n])}function
b(t,i){return!t||t instanceof P?t:new P(t,i)}function T(t,i){if(t)for(var
e=i?[t,i]:t,n=0,o=e.length;n<o;n++)this.extend(e[n])}function
z(t,i){return t instanceof T?t:new T(t,i)}function
M(t,i,e){if(isNaN(t)||isNaN(i))throw new Error("Invalid LatLng object:
("+t+", "+i+")");this.lat=+t,this.lng=+i,void
0!==e&&(this.alt=+e)}function C(t,i,e){return t instanceof
M?t:oi(t)&&"object"!=typeof t[0]?3===t.length?new
M(t[0],t[1],t[2]):2===t.length?new M(t[0],t[1]):null:void
0===t||null===t?t:"object"==typeof t&&"lat"in
t?new M(t.lat,"lng"in t?t.lng:t.lon,t.alt):void 0===i?null:new
M(t,i,e)}function S(t,i,e,n){if(oi(t))return
this._a=t[0],this._b=t[1],this._c=t[2],void(this._d=t[3]);this._a=t,this._b=i,this._c=e,this._d=n}function
Z(t,i,e,n){return new S(t,i,e,n)}function E(t){return
document.createElementNS("http://www.w3.org/2000/svg",t)}function
k(t,i){var
e,n,o,s,r,a,h="";for(e=0,o=t.length;e<o;e++){for(n=0,s=(r=t[e]).length;n<s;n++)a=r[n],h+=(n?"L":"M")+a.x+"
"+a.y;h+=i?Ji?"z":"x":""}return
h||"M0 0"}function A(t){return
navigator.userAgent.toLowerCase().indexOf(t)>=0}function
B(t,i,e,n){return"touchstart"===i?O(t,e,n):"touchmove"===i?W(t,e,n):"touchend"===i&&H(t,e,n),this}function
I(t,i,e){var
n=t["_leaflet_"+i+e];return"touchstart"===i?t.removeEventListener(te,n,!1):"touchmove"===i?t.removeEventListener(ie,n,!1):"touchend"===i&&(t.removeEventListener(ee,n,!1),t.removeEventListener(ne,n,!1)),this}function
O(t,i,n){var
o=e(function(t){if("mouse"!==t.pointerType&&t.MSPOINTER_TYPE_MOUSE&&t.pointerType!==t.MSPOINTER_TYPE_MOUSE){if(!(oe.indexOf(t.target.tagName)<0))return;Pt(t)}j(t,i)});t["_leaflet_touchstart"+n]=o,t.addEventListener(te,o,!1),re||(document.documentElement.addEventListener(te,R,!0),document.documentElement.addEventListener(ie,N,!0),document.documentElement.addEventListener(ee,D,!0),document.documentElement.addEventListener(ne,D,!0),re=!0)}function
R(t){se[t.pointerId]=t,ae++}function
N(t){se[t.pointerId]&&(se[t.pointerId]=t)}function D(t){delete
se[t.pointerId],ae--}function j(t,i){t.touches=[];for(var e in
se)t.touches.push(se[e]);t.changedTouches=[t],i(t)}function W(t,i,e){var
n=function(t){(t.pointerType!==t.MSPOINTER_TYPE_MOUSE&&"mouse"!==t.pointerType||0!==t.buttons)&&j(t,i)};t["_leaflet_touchmove"+e]=n,t.addEventListener(ie,n,!1)}function
H(t,i,e){var
n=function(t){j(t,i)};t["_leaflet_touchend"+e]=n,t.addEventListener(ee,n,!1),t.addEventListener(ne,n,!1)}function
F(t,i,e){function n(t){var
i;if(Vi){if(!bi||"mouse"===t.pointerType)return;i=ae}else
i=t.touches.length;if(!(i>1)){var
e=Date.now(),n=e-(s||e);r=t.touches?t.touches[0]:t,a=n>0&&n<=h,s=e}}function
o(t){if(a&&!r.cancelBubble){if(Vi){if(!bi||"mouse"===t.pointerType)return;var
e,n,o={};for(n in
r)e=r[n],o[n]=e&&e.bind?e.bind(r):e;r=o}r.type="dblclick",i(r),s=null}}var
s,r,a=!1,h=250;return
t[le+he+e]=n,t[le+ue+e]=o,t[le+"dblclick"+e]=i,t.addEventListener(he,n,!1),t.addEventListener(ue,o,!1),t.addEventListener("dblclick",i,!1),this}function
U(t,i){var e=t[le+he+i],n=t[le+ue+i],o=t[le+"dblclick"+i];return
t.removeEventListener(he,e,!1),t.removeEventListener(ue,n,!1),bi||t.removeEventListener("dblclick",o,!1),this}function
V(t){return"string"==typeof
t?document.getElementById(t):t}function q(t,i){var
e=t.style[i]||t.currentStyle&&t.currentStyle[i];if((!e||"auto"===e)&&document.defaultView){var
n=document.defaultView.getComputedStyle(t,null);e=n?n[i]:null}return"auto"===e?null:e}function
G(t,i,e){var n=document.createElement(t);return
n.className=i||"",e&&e.appendChild(n),n}function K(t){var
i=t.parentNode;i&&i.removeChild(t)}function
Y(t){for(;t.firstChild;)t.removeChild(t.firstChild)}function X(t){var
i=t.parentNode;i.lastChild!==t&&i.appendChild(t)}function J(t){var
i=t.parentNode;i.firstChild!==t&&i.insertBefore(t,i.firstChild)}function
$(t,i){if(void 0!==t.classList)return t.classList.contains(i);var
e=et(t);return e.length>0&&new
RegExp("(^|\\s)"+i+"(\\s|$)").test(e)}function
Q(t,i){if(void 0!==t.classList)for(var
e=u(i),n=0,o=e.length;n<o;n++)t.classList.add(e[n]);else if(!$(t,i)){var
s=et(t);it(t,(s?s+" ":"")+i)}}function tt(t,i){void
0!==t.classList?t.classList.remove(i):it(t,h((" "+et(t)+"
").replace(" "+i+" "," ")))}function
it(t,i){void
0===t.className.baseVal?t.className=i:t.className.baseVal=i}function
et(t){return void
0===t.className.baseVal?t.className:t.className.baseVal}function
nt(t,i){"opacity"in
t.style?t.style.opacity=i:"filter"in
t.style&&ot(t,i)}function ot(t,i){var
e=!1,n="DXImageTransform.Microsoft.Alpha";try{e=t.filters.item(n)}catch(t){if(1===i)return}i=Math.round(100*i),e?(e.Enabled=100!==i,e.Opacity=i):t.style.filter+="
progid:"+n+"(opacity="+i+")"}function
st(t){for(var
i=document.documentElement.style,e=0;e<t.length;e++)if(t[e]in i)return
t[e];return!1}function rt(t,i,e){var n=i||new
x(0,0);t.style[ce]=(Ri?"translate("+n.x+"px,"+n.y+"px)":"translate3d("+n.x+"px,"+n.y+"px,0)")+(e?"
scale("+e+")":"")}function
at(t,i){t._leaflet_pos=i,ji?rt(t,i):(t.style.left=i.x+"px",t.style.top=i.y+"px")}function
ht(t){return t._leaflet_pos||new x(0,0)}function
ut(){mt(window,"dragstart",Pt)}function
lt(){ft(window,"dragstart",Pt)}function
ct(t){for(;-1===t.tabIndex;)t=t.parentNode;t.style&&(_t(),me=t,fe=t.style.outline,t.style.outline="none",mt(window,"keydown",_t))}function
_t(){me&&(me.style.outline=fe,me=void 0,fe=void
0,ft(window,"keydown",_t))}function
dt(t){do{t=t.parentNode}while(!(t.offsetWidth&&t.offsetHeight||t===document.body));return
t}function pt(t){var
i=t.getBoundingClientRect();return{x:i.width/t.offsetWidth||1,y:i.height/t.offsetHeight||1,boundingClientRect:i}}function
mt(t,i,e,n){if("object"==typeof i)for(var o in
i)gt(t,o,i[o],e);else for(var
s=0,r=(i=u(i)).length;s<r;s++)gt(t,i[s],e,n);return this}function
ft(t,i,e,n){if("object"==typeof i)for(var o in
i)vt(t,o,i[o],e);else if(i)for(var
s=0,r=(i=u(i)).length;s<r;s++)vt(t,i[s],e,n);else{for(var a in
t[ye])vt(t,a,t[ye][a]);delete t[ye]}return this}function gt(t,i,e,o){var
s=i+n(e)+(o?"_"+n(o):"");if(t[ye]&&t[ye][s])return
this;var r=function(i){return
e.call(o||t,i||window.event)},a=r;Vi&&0===i.indexOf("touch")?B(t,i,r,s):!qi||"dblclick"!==i||!F||Vi&&Ei?"addEventListener"in
t?"mousewheel"===i?t.addEventListener("onwheel"in
t?"wheel":"mousewheel",r,!1):"mouseenter"===i||"mouseleave"===i?(r=function(i){i=i||window.event,Ct(t,i)&&a(i)},t.addEventListener("mouseenter"===i?"mouseover":"mouseout",r,!1)):("click"===i&&zi&&(r=function(t){St(t,a)}),t.addEventListener(i,r,!1)):"attachEvent"in
t&&t.attachEvent("on"+i,r):F(t,r,s),t[ye]=t[ye]||{},t[ye][s]=r}function
vt(t,i,e,o){var
s=i+n(e)+(o?"_"+n(o):""),r=t[ye]&&t[ye][s];if(!r)return
this;Vi&&0===i.indexOf("touch")?I(t,i,s):!qi||"dblclick"!==i||!U||Vi&&Ei?"removeEventListener"in
t?"mousewheel"===i?t.removeEventListener("onwheel"in
t?"wheel":"mousewheel",r,!1):t.removeEventListener("mouseenter"===i?"mouseover":"mouseleave"===i?"mouseout":i,r,!1):"detachEvent"in
t&&t.detachEvent("on"+i,r):U(t,s),t[ye][s]=null}function
yt(t){return
t.stopPropagation?t.stopPropagation():t.originalEvent?t.originalEvent._stopped=!0:t.cancelBubble=!0,Mt(t),this}function
xt(t){return gt(t,"mousewheel",yt),this}function wt(t){return
mt(t,"mousedown touchstart
dblclick",yt),gt(t,"click",zt),this}function Pt(t){return
t.preventDefault?t.preventDefault():t.returnValue=!1,this}function
Lt(t){return Pt(t),yt(t),this}function bt(t,i){if(!i)return new
x(t.clientX,t.clientY);var e=pt(i),n=e.boundingClientRect;return new
x((t.clientX-n.left)/e.x-i.clientLeft,(t.clientY-n.top)/e.y-i.clientTop)}function
Tt(t){return
bi?t.wheelDeltaY/2:t.deltaY&&0===t.deltaMode?-t.deltaY/xe:t.deltaY&&1===t.deltaMode?20*-t.deltaY:t.deltaY&&2===t.deltaMode?60*-t.deltaY:t.deltaX||t.deltaZ?0:t.wheelDelta?(t.wheelDeltaY||t.wheelDelta)/2:t.detail&&Math.abs(t.detail)<32765?20*-t.detail:t.detail?t.detail/-32765*60:0}function
zt(t){we[t.type]=!0}function Mt(t){var i=we[t.type];return
we[t.type]=!1,i}function Ct(t,i){var
e=i.relatedTarget;if(!e)return!0;try{for(;e&&e!==t;)e=e.parentNode}catch(t){return!1}return
e!==t}function St(t,i){var
e=t.timeStamp||t.originalEvent&&t.originalEvent.timeStamp,n=ge&&e-ge;n&&n>100&&n<500||t.target._simulatedClick&&!t._simulated?Lt(t):(ge=e,i(t))}function
Zt(t,i){if(!i||!t.length)return t.slice();var e=i*i;return
t=Bt(t,e),t=kt(t,e)}function Et(t,i,e){return
Math.sqrt(Dt(t,i,e,!0))}function kt(t,i){var e=t.length,n=new(typeof
Uint8Array!=void
0+""?Uint8Array:Array)(e);n[0]=n[e-1]=1,At(t,n,i,0,e-1);var
o,s=[];for(o=0;o<e;o++)n[o]&&s.push(t[o]);return s}function
At(t,i,e,n,o){var
s,r,a,h=0;for(r=n+1;r<=o-1;r++)(a=Dt(t[r],t[n],t[o],!0))>h&&(s=r,h=a);h>e&&(i[s]=1,At(t,i,e,n,s),At(t,i,e,s,o))}function
Bt(t,i){for(var
e=[t[0]],n=1,o=0,s=t.length;n<s;n++)Nt(t[n],t[o])>i&&(e.push(t[n]),o=n);return
o<s-1&&e.push(t[s-1]),e}function It(t,i,e,n,o){var
s,r,a,h=n?ke:Rt(t,e),u=Rt(i,e);for(ke=u;;){if(!(h|u))return[t,i];if(h&u)return!1;a=Rt(r=Ot(t,i,s=h||u,e,o),e),s===h?(t=r,h=a):(i=r,u=a)}}function
Ot(t,i,e,n,o){var s,r,a=i.x-t.x,h=i.y-t.y,u=n.min,l=n.max;return
8&e?(s=t.x+a*(l.y-t.y)/h,r=l.y):4&e?(s=t.x+a*(u.y-t.y)/h,r=u.y):2&e?(s=l.x,r=t.y+h*(l.x-t.x)/a):1&e&&(s=u.x,r=t.y+h*(u.x-t.x)/a),new
x(s,r,o)}function Rt(t,i){var e=0;return
t.x<i.min.x?e|=1:t.x>i.max.x&&(e|=2),t.y<i.min.y?e|=4:t.y>i.max.y&&(e|=8),e}function
Nt(t,i){var e=i.x-t.x,n=i.y-t.y;return e*e+n*n}function Dt(t,i,e,n){var
o,s=i.x,r=i.y,a=e.x-s,h=e.y-r,u=a*a+h*h;return
u>0&&((o=((t.x-s)*a+(t.y-r)*h)/u)>1?(s=e.x,r=e.y):o>0&&(s+=a*o,r+=h*o)),a=t.x-s,h=t.y-r,n?a*a+h*h:new
x(s,r)}function jt(t){return!oi(t[0])||"object"!=typeof
t[0][0]&&void 0!==t[0][0]}function Wt(t){return
console.warn("Deprecated use of _flat, please use L.LineUtil.isFlat
instead."),jt(t)}function Ht(t,i,e){var
n,o,s,r,a,h,u,l,c,_=[1,4,2,8];for(o=0,u=t.length;o<u;o++)t[o]._code=Rt(t[o],i);for(r=0;r<4;r++){for(l=_[r],n=[],o=0,s=(u=t.length)-1;o<u;s=o++)a=t[o],h=t[s],a._code&l?h._code&l||((c=Ot(h,a,l,i,e))._code=Rt(c,i),n.push(c)):(h._code&l&&((c=Ot(h,a,l,i,e))._code=Rt(c,i),n.push(c)),n.push(a));t=n}return
t}function Ft(t,i){var
e,n,o,s,r="Feature"===t.type?t.geometry:t,a=r?r.coordinates:null,h=[],u=i&&i.pointToLayer,l=i&&i.coordsToLatLng||Ut;if(!a&&!r)return
null;switch(r.type){case"Point":return e=l(a),u?u(t,e):new
$e(e);case"MultiPoint":for(o=0,s=a.length;o<s;o++)e=l(a[o]),h.push(u?u(t,e):new
$e(e));return new
Ke(h);case"LineString":case"MultiLineString":return
n=Vt(a,"LineString"===r.type?0:1,l),new
nn(n,i);case"Polygon":case"MultiPolygon":return
n=Vt(a,"Polygon"===r.type?1:2,l),new
on(n,i);case"GeometryCollection":for(o=0,s=r.geometries.length;o<s;o++){var
c=Ft({geometry:r.geometries[o],type:"Feature",properties:t.properties},i);c&&h.push(c)}return
new Ke(h);default:throw new Error("Invalid GeoJSON
object.")}}function Ut(t){return new M(t[1],t[0],t[2])}function
Vt(t,i,e){for(var
n,o=[],s=0,r=t.length;s<r;s++)n=i?Vt(t[s],i-1,e):(e||Ut)(t[s]),o.push(n);return
o}function qt(t,i){return i="number"==typeof i?i:6,void
0!==t.alt?[a(t.lng,i),a(t.lat,i),a(t.alt,i)]:[a(t.lng,i),a(t.lat,i)]}function
Gt(t,i,e,n){for(var
o=[],s=0,r=t.length;s<r;s++)o.push(i?Gt(t[s],i-1,e,n):qt(t[s],n));return!i&&e&&o.push(o[0]),o}function
Kt(t,e){return t.feature?i({},t.feature,{geometry:e}):Yt(e)}function
Yt(t){return"Feature"===t.type||"FeatureCollection"===t.type?t:{type:"Feature",properties:{},geometry:t}}function
Xt(t,i){return new sn(t,i)}function Jt(t,i){return new mn(t,i)}function
$t(t){return Xi?new vn(t):null}function Qt(t){return Ji||$i?new
Pn(t):null}var ti=Object.freeze;Object.freeze=function(t){return t};var
ii=Object.create||function(){function t(){}return function(i){return
t.prototype=i,new t}}(),ei=0,ni=/\{ *([\w_-]+)
*\}/g,oi=Array.isArray||function(t){return"[object
Array]"===Object.prototype.toString.call(t)},si="data:image/gif;base64,R0lGODlhAQABAAD/ACwAAAAAAQABAAACADs=",ri=0,ai=window.requestAnimationFrame||p("RequestAnimationFrame")||m,hi=window.cancelAnimationFrame||p("CancelAnimationFrame")||p("CancelRequestAnimationFrame")||function(t){window.clearTimeout(t)},ui=(Object.freeze||Object)({freeze:ti,extend:i,create:ii,bind:e,lastId:ei,stamp:n,throttle:o,wrapNum:s,falseFn:r,formatNum:a,trim:h,splitWords:u,setOptions:l,getParamString:c,template:_,isArray:oi,indexOf:d,emptyImageUrl:si,requestFn:ai,cancelFn:hi,requestAnimFrame:f,cancelAnimFrame:g});v.extend=function(t){var
e=function(){this.initialize&&this.initialize.apply(this,arguments),this.callInitHooks()},n=e.__super__=this.prototype,o=ii(n);o.constructor=e,e.prototype=o;for(var
s in
this)this.hasOwnProperty(s)&&"prototype"!==s&&"__super__"!==s&&(e[s]=this[s]);return
t.statics&&(i(e,t.statics),delete
t.statics),t.includes&&(y(t.includes),i.apply(null,[o].concat(t.includes)),delete
t.includes),o.options&&(t.options=i(ii(o.options),t.options)),i(o,t),o._initHooks=[],o.callInitHooks=function(){if(!this._initHooksCalled){n.callInitHooks&&n.callInitHooks.call(this),this._initHooksCalled=!0;for(var
t=0,i=o._initHooks.length;t<i;t++)o._initHooks[t].call(this)}},e},v.include=function(t){return
i(this.prototype,t),this},v.mergeOptions=function(t){return
i(this.prototype.options,t),this},v.addInitHook=function(t){var
i=Array.prototype.slice.call(arguments,1),e="function"==typeof
t?t:function(){this[t].apply(this,i)};return
this.prototype._initHooks=this.prototype._initHooks||[],this.prototype._initHooks.push(e),this};var
li={on:function(t,i,e){if("object"==typeof t)for(var n in
t)this._on(n,t[n],i);else for(var
o=0,s=(t=u(t)).length;o<s;o++)this._on(t[o],i,e);return
this},off:function(t,i,e){if(t)if("object"==typeof t)for(var n in
t)this._off(n,t[n],i);else for(var
o=0,s=(t=u(t)).length;o<s;o++)this._off(t[o],i,e);else delete
this._events;return
this},_on:function(t,i,e){this._events=this._events||{};var
n=this._events[t];n||(n=[],this._events[t]=n),e===this&&(e=void
0);for(var
o={fn:i,ctx:e},s=n,r=0,a=s.length;r<a;r++)if(s[r].fn===i&&s[r].ctx===e)return;s.push(o)},_off:function(t,i,e){var
n,o,s;if(this._events&&(n=this._events[t]))if(i){if(e===this&&(e=void
0),n)for(o=0,s=n.length;o<s;o++){var
a=n[o];if(a.ctx===e&&a.fn===i)return
a.fn=r,this._firingCount&&(this._events[t]=n=n.slice()),void
n.splice(o,1)}}else{for(o=0,s=n.length;o<s;o++)n[o].fn=r;delete
this._events[t]}},fire:function(t,e,n){if(!this.listens(t,n))return
this;var
o=i({},e,{type:t,target:this,sourceTarget:e&&e.sourceTarget||this});if(this._events){var
s=this._events[t];if(s){this._firingCount=this._firingCount+1||1;for(var
r=0,a=s.length;r<a;r++){var
h=s[r];h.fn.call(h.ctx||this,o)}this._firingCount--}}return
n&&this._propagateEvent(o),this},listens:function(t,i){var
e=this._events&&this._events[t];if(e&&e.length)return!0;if(i)for(var
n in
this._eventParents)if(this._eventParents[n].listens(t,i))return!0;return!1},once:function(t,i,n){if("object"==typeof
t){for(var o in t)this.once(o,t[o],i);return this}var
s=e(function(){this.off(t,i,n).off(t,s,n)},this);return
this.on(t,i,n).on(t,s,n)},addEventParent:function(t){return
this._eventParents=this._eventParents||{},this._eventParents[n(t)]=t,this},removeEventParent:function(t){return
this._eventParents&&delete
this._eventParents[n(t)],this},_propagateEvent:function(t){for(var e in
this._eventParents)this._eventParents[e].fire(t.type,i({layer:t.target,propagatedFrom:t.target},t),!0)}};li.addEventListener=li.on,li.removeEventListener=li.clearAllEventListeners=li.off,li.addOneTimeEventListener=li.once,li.fireEvent=li.fire,li.hasEventListeners=li.listens;var
ci=v.extend(li),_i=Math.trunc||function(t){return
t>0?Math.floor(t):Math.ceil(t)};x.prototype={clone:function(){return new
x(this.x,this.y)},add:function(t){return
this.clone()._add(w(t))},_add:function(t){return
this.x+=t.x,this.y+=t.y,this},subtract:function(t){return
this.clone()._subtract(w(t))},_subtract:function(t){return
this.x-=t.x,this.y-=t.y,this},divideBy:function(t){return
this.clone()._divideBy(t)},_divideBy:function(t){return
this.x/=t,this.y/=t,this},multiplyBy:function(t){return
this.clone()._multiplyBy(t)},_multiplyBy:function(t){return
this.x*=t,this.y*=t,this},scaleBy:function(t){return new
x(this.x*t.x,this.y*t.y)},unscaleBy:function(t){return new
x(this.x/t.x,this.y/t.y)},round:function(){return
this.clone()._round()},_round:function(){return
this.x=Math.round(this.x),this.y=Math.round(this.y),this},floor:function(){return
this.clone()._floor()},_floor:function(){return
this.x=Math.floor(this.x),this.y=Math.floor(this.y),this},ceil:function(){return
this.clone()._ceil()},_ceil:function(){return
this.x=Math.ceil(this.x),this.y=Math.ceil(this.y),this},trunc:function(){return
this.clone()._trunc()},_trunc:function(){return
this.x=_i(this.x),this.y=_i(this.y),this},distanceTo:function(t){var
i=(t=w(t)).x-this.x,e=t.y-this.y;return
Math.sqrt(i*i+e*e)},equals:function(t){return(t=w(t)).x===this.x&&t.y===this.y},contains:function(t){return
t=w(t),Math.abs(t.x)<=Math.abs(this.x)&&Math.abs(t.y)<=Math.abs(this.y)},toString:function(){return"Point("+a(this.x)+",
"+a(this.y)+")"}},P.prototype={extend:function(t){return
t=w(t),this.min||this.max?(this.min.x=Math.min(t.x,this.min.x),this.max.x=Math.max(t.x,this.max.x),this.min.y=Math.min(t.y,this.min.y),this.max.y=Math.max(t.y,this.max.y)):(this.min=t.clone(),this.max=t.clone()),this},getCenter:function(t){return
new
x((this.min.x+this.max.x)/2,(this.min.y+this.max.y)/2,t)},getBottomLeft:function(){return
new x(this.min.x,this.max.y)},getTopRight:function(){return new
x(this.max.x,this.min.y)},getTopLeft:function(){return
this.min},getBottomRight:function(){return
this.max},getSize:function(){return
this.max.subtract(this.min)},contains:function(t){var
i,e;return(t="number"==typeof t[0]||t instanceof
x?w(t):b(t))instanceof
P?(i=t.min,e=t.max):i=e=t,i.x>=this.min.x&&e.x<=this.max.x&&i.y>=this.min.y&&e.y<=this.max.y},intersects:function(t){t=b(t);var
i=this.min,e=this.max,n=t.min,o=t.max,s=o.x>=i.x&&n.x<=e.x,r=o.y>=i.y&&n.y<=e.y;return
s&&r},overlaps:function(t){t=b(t);var
i=this.min,e=this.max,n=t.min,o=t.max,s=o.x>i.x&&n.x<e.x,r=o.y>i.y&&n.y<e.y;return
s&&r},isValid:function(){return!(!this.min||!this.max)}},T.prototype={extend:function(t){var
i,e,n=this._southWest,o=this._northEast;if(t instanceof
M)i=t,e=t;else{if(!(t instanceof T))return
t?this.extend(C(t)||z(t)):this;if(i=t._southWest,e=t._northEast,!i||!e)return
this}return
n||o?(n.lat=Math.min(i.lat,n.lat),n.lng=Math.min(i.lng,n.lng),o.lat=Math.max(e.lat,o.lat),o.lng=Math.max(e.lng,o.lng)):(this._southWest=new
M(i.lat,i.lng),this._northEast=new
M(e.lat,e.lng)),this},pad:function(t){var
i=this._southWest,e=this._northEast,n=Math.abs(i.lat-e.lat)*t,o=Math.abs(i.lng-e.lng)*t;return
new T(new M(i.lat-n,i.lng-o),new
M(e.lat+n,e.lng+o))},getCenter:function(){return new
M((this._southWest.lat+this._northEast.lat)/2,(this._southWest.lng+this._northEast.lng)/2)},getSouthWest:function(){return
this._southWest},getNorthEast:function(){return
this._northEast},getNorthWest:function(){return new
M(this.getNorth(),this.getWest())},getSouthEast:function(){return new
M(this.getSouth(),this.getEast())},getWest:function(){return
this._southWest.lng},getSouth:function(){return
this._southWest.lat},getEast:function(){return
this._northEast.lng},getNorth:function(){return
this._northEast.lat},contains:function(t){t="number"==typeof
t[0]||t instanceof M||"lat"in t?C(t):z(t);var
i,e,n=this._southWest,o=this._northEast;return t instanceof
T?(i=t.getSouthWest(),e=t.getNorthEast()):i=e=t,i.lat>=n.lat&&e.lat<=o.lat&&i.lng>=n.lng&&e.lng<=o.lng},intersects:function(t){t=z(t);var
i=this._southWest,e=this._northEast,n=t.getSouthWest(),o=t.getNorthEast(),s=o.lat>=i.lat&&n.lat<=e.lat,r=o.lng>=i.lng&&n.lng<=e.lng;return
s&&r},overlaps:function(t){t=z(t);var
i=this._southWest,e=this._northEast,n=t.getSouthWest(),o=t.getNorthEast(),s=o.lat>i.lat&&n.lat<e.lat,r=o.lng>i.lng&&n.lng<e.lng;return
s&&r},toBBoxString:function(){return[this.getWest(),this.getSouth(),this.getEast(),this.getNorth()].join(",")},equals:function(t,i){return!!t&&(t=z(t),this._southWest.equals(t.getSouthWest(),i)&&this._northEast.equals(t.getNorthEast(),i))},isValid:function(){return!(!this._southWest||!this._northEast)}},M.prototype={equals:function(t,i){return!!t&&(t=C(t),Math.max(Math.abs(this.lat-t.lat),Math.abs(this.lng-t.lng))<=(void
0===i?1e-9:i))},toString:function(t){return"LatLng("+a(this.lat,t)+",
"+a(this.lng,t)+")"},distanceTo:function(t){return
pi.distance(this,C(t))},wrap:function(){return
pi.wrapLatLng(this)},toBounds:function(t){var
i=180*t/40075017,e=i/Math.cos(Math.PI/180*this.lat);return
z([this.lat-i,this.lng-e],[this.lat+i,this.lng+e])},clone:function(){return
new M(this.lat,this.lng,this.alt)}};var di={latLngToPoint:function(t,i){var
e=this.projection.project(t),n=this.scale(i);return
this.transformation._transform(e,n)},pointToLatLng:function(t,i){var
e=this.scale(i),n=this.transformation.untransform(t,e);return
this.projection.unproject(n)},project:function(t){return
this.projection.project(t)},unproject:function(t){return
this.projection.unproject(t)},scale:function(t){return
256*Math.pow(2,t)},zoom:function(t){return
Math.log(t/256)/Math.LN2},getProjectedBounds:function(t){if(this.infinite)return
null;var i=this.projection.bounds,e=this.scale(t);return new
P(this.transformation.transform(i.min,e),this.transformation.transform(i.max,e))},infinite:!1,wrapLatLng:function(t){var
i=this.wrapLng?s(t.lng,this.wrapLng,!0):t.lng;return new
M(this.wrapLat?s(t.lat,this.wrapLat,!0):t.lat,i,t.alt)},wrapLatLngBounds:function(t){var
i=t.getCenter(),e=this.wrapLatLng(i),n=i.lat-e.lat,o=i.lng-e.lng;if(0===n&&0===o)return
t;var s=t.getSouthWest(),r=t.getNorthEast();return new T(new
M(s.lat-n,s.lng-o),new
M(r.lat-n,r.lng-o))}},pi=i({},di,{wrapLng:[-180,180],R:6371e3,distance:function(t,i){var
e=Math.PI/180,n=t.lat*e,o=i.lat*e,s=Math.sin((i.lat-t.lat)*e/2),r=Math.sin((i.lng-t.lng)*e/2),a=s*s+Math.cos(n)*Math.cos(o)*r*r,h=2*Math.atan2(Math.sqrt(a),Math.sqrt(1-a));return
this.R*h}}),mi={R:6378137,MAX_LATITUDE:85.0511287798,project:function(t){var
i=Math.PI/180,e=this.MAX_LATITUDE,n=Math.max(Math.min(e,t.lat),-e),o=Math.sin(n*i);return
new
x(this.R*t.lng*i,this.R*Math.log((1+o)/(1-o))/2)},unproject:function(t){var
i=180/Math.PI;return new
M((2*Math.atan(Math.exp(t.y/this.R))-Math.PI/2)*i,t.x*i/this.R)},bounds:function(){var
t=6378137*Math.PI;return new
P([-t,-t],[t,t])}()};S.prototype={transform:function(t,i){return
this._transform(t.clone(),i)},_transform:function(t,i){return
i=i||1,t.x=i*(this._a*t.x+this._b),t.y=i*(this._c*t.y+this._d),t},untransform:function(t,i){return
i=i||1,new x((t.x/i-this._b)/this._a,(t.y/i-this._d)/this._c)}};var
fi,gi,vi,yi=i({},pi,{code:"EPSG:3857",projection:mi,transformation:function(){var
t=.5/(Math.PI*mi.R);return
Z(t,.5,-t,.5)}()}),xi=i({},yi,{code:"EPSG:900913"}),wi=document.documentElement.style,Pi="ActiveXObject"in
window,Li=Pi&&!document.addEventListener,bi="msLaunchUri"in
navigator&&!("documentMode"in
document),Ti=A("webkit"),zi=A("android"),Mi=A("android
2")||A("android
3"),Ci=parseInt(/WebKit\/([0-9]+)|$/.exec(navigator.userAgent)[1],10),Si=zi&&A("Google")&&Ci<537&&!("AudioNode"in
window),Zi=!!window.opera,Ei=A("chrome"),ki=A("gecko")&&!Ti&&!Zi&&!Pi,Ai=!Ei&&A("safari"),Bi=A("phantom"),Ii="OTransition"in
wi,Oi=0===navigator.platform.indexOf("Win"),Ri=Pi&&"transition"in
wi,Ni="WebKitCSSMatrix"in window&&"m11"in new
window.WebKitCSSMatrix&&!Mi,Di="MozPerspective"in
wi,ji=!window.L_DISABLE_3D&&(Ri||Ni||Di)&&!Ii&&!Bi,Wi="undefined"!=typeof
orientation||A("mobile"),Hi=Wi&&Ti,Fi=Wi&&Ni,Ui=!window.PointerEvent&&window.MSPointerEvent,Vi=!(!window.PointerEvent&&!Ui),qi=!window.L_NO_TOUCH&&(Vi||"ontouchstart"in
window||window.DocumentTouch&&document instanceof
window.DocumentTouch),Gi=Wi&&Zi,Ki=Wi&&ki,Yi=(window.devicePixelRatio||window.screen.deviceXDPI/window.screen.logicalXDPI)>1,Xi=!!document.createElement("canvas").getContext,Ji=!(!document.createElementNS||!E("svg").createSVGRect),$i=!Ji&&function(){try{var
t=document.createElement("div");t.innerHTML='<v:shape
adj="1"/>';var i=t.firstChild;return
i.style.behavior="url(#default#VML)",i&&"object"==typeof
i.adj}catch(t){return!1}}(),Qi=(Object.freeze||Object)({ie:Pi,ielt9:Li,edge:bi,webkit:Ti,android:zi,android23:Mi,androidStock:Si,opera:Zi,chrome:Ei,gecko:ki,safari:Ai,phantom:Bi,opera12:Ii,win:Oi,ie3d:Ri,webkit3d:Ni,gecko3d:Di,any3d:ji,mobile:Wi,mobileWebkit:Hi,mobileWebkit3d:Fi,msPointer:Ui,pointer:Vi,touch:qi,mobileOpera:Gi,mobileGecko:Ki,retina:Yi,canvas:Xi,svg:Ji,vml:$i}),te=Ui?"MSPointerDown":"pointerdown",ie=Ui?"MSPointerMove":"pointermove",ee=Ui?"MSPointerUp":"pointerup",ne=Ui?"MSPointerCancel":"pointercancel",oe=["INPUT","SELECT","OPTION"],se={},re=!1,ae=0,he=Ui?"MSPointerDown":Vi?"pointerdown":"touchstart",ue=Ui?"MSPointerUp":Vi?"pointerup":"touchend",le="_leaflet_",ce=st(["transform","webkitTransform","OTransform","MozTransform","msTransform"]),_e=st(["webkitTransition","transition","OTransition","MozTransition","msTransition"]),de="webkitTransition"===_e||"OTransition"===_e?_e+"End":"transitionend";if("onselectstart"in
document)fi=function(){mt(window,"selectstart",Pt)},gi=function(){ft(window,"selectstart",Pt)};else{var
pe=st(["userSelect","WebkitUserSelect","OUserSelect","MozUserSelect","msUserSelect"]);fi=function(){if(pe){var
t=document.documentElement.style;vi=t[pe],t[pe]="none"}},gi=function(){pe&&(document.documentElement.style[pe]=vi,vi=void
0)}}var
me,fe,ge,ve=(Object.freeze||Object)({TRANSFORM:ce,TRANSITION:_e,TRANSITION_END:de,get:V,getStyle:q,create:G,remove:K,empty:Y,toFront:X,toBack:J,hasClass:$,addClass:Q,removeClass:tt,setClass:it,getClass:et,setOpacity:nt,testProp:st,setTransform:rt,setPosition:at,getPosition:ht,disableTextSelection:fi,enableTextSelection:gi,disableImageDrag:ut,enableImageDrag:lt,preventOutline:ct,restoreOutline:_t,getSizedParentNode:dt,getScale:pt}),ye="_leaflet_events",xe=Oi&&Ei?2*window.devicePixelRatio:ki?window.devicePixelRatio:1,we={},Pe=(Object.freeze||Object)({on:mt,off:ft,stopPropagation:yt,disableScrollPropagation:xt,disableClickPropagation:wt,preventDefault:Pt,stop:Lt,getMousePosition:bt,getWheelDelta:Tt,fakeStop:zt,skipped:Mt,isExternalTarget:Ct,addListener:mt,removeListener:ft}),Le=ci.extend({run:function(t,i,e,n){this.stop(),this._el=t,this._inProgress=!0,this._duration=e||.25,this._easeOutPower=1/Math.max(n||.5,.2),this._startPos=ht(t),this._offset=i.subtract(this._startPos),this._startTime=+new
Date,this.fire("start"),this._animate()},stop:function(){this._inProgress&&(this._step(!0),this._complete())},_animate:function(){this._animId=f(this._animate,this),this._step()},_step:function(t){var
i=+new
Date-this._startTime,e=1e3*this._duration;i<e?this._runFrame(this._easeOut(i/e),t):(this._runFrame(1),this._complete())},_runFrame:function(t,i){var
e=this._startPos.add(this._offset.multiplyBy(t));i&&e._round(),at(this._el,e),this.fire("step")},_complete:function(){g(this._animId),this._inProgress=!1,this.fire("end")},_easeOut:function(t){return
1-Math.pow(1-t,this._easeOutPower)}}),be=ci.extend({options:{crs:yi,center:void
0,zoom:void 0,minZoom:void 0,maxZoom:void 0,layers:[],maxBounds:void
0,renderer:void
0,zoomAnimation:!0,zoomAnimationThreshold:4,fadeAnimation:!0,markerZoomAnimation:!0,transform3DLimit:8388608,zoomSnap:1,zoomDelta:1,trackResize:!0},initialize:function(t,i){i=l(this,i),this._initContainer(t),this._initLayout(),this._onResize=e(this._onResize,this),this._initEvents(),i.maxBounds&&this.setMaxBounds(i.maxBounds),void
0!==i.zoom&&(this._zoom=this._limitZoom(i.zoom)),i.center&&void
0!==i.zoom&&this.setView(C(i.center),i.zoom,{reset:!0}),this._handlers=[],this._layers={},this._zoomBoundLayers={},this._sizeChanged=!0,this.callInitHooks(),this._zoomAnimated=_e&&ji&&!Gi&&this.options.zoomAnimation,this._zoomAnimated&&(this._createAnimProxy(),mt(this._proxy,de,this._catchTransitionEnd,this)),this._addLayers(this.options.layers)},setView:function(t,e,n){return
e=void
0===e?this._zoom:this._limitZoom(e),t=this._limitCenter(C(t),e,this.options.maxBounds),n=n||{},this._stop(),this._loaded&&!n.reset&&!0!==n&&(void
0!==n.animate&&(n.zoom=i({animate:n.animate},n.zoom),n.pan=i({animate:n.animate,duration:n.duration},n.pan)),this._zoom!==e?this._tryAnimatedZoom&&this._tryAnimatedZoom(t,e,n.zoom):this._tryAnimatedPan(t,n.pan))?(clearTimeout(this._sizeTimer),this):(this._resetView(t,e),this)},setZoom:function(t,i){return
this._loaded?this.setView(this.getCenter(),t,{zoom:i}):(this._zoom=t,this)},zoomIn:function(t,i){return
t=t||(ji?this.options.zoomDelta:1),this.setZoom(this._zoom+t,i)},zoomOut:function(t,i){return
t=t||(ji?this.options.zoomDelta:1),this.setZoom(this._zoom-t,i)},setZoomAround:function(t,i,e){var
n=this.getZoomScale(i),o=this.getSize().divideBy(2),s=(t instanceof
x?t:this.latLngToContainerPoint(t)).subtract(o).multiplyBy(1-1/n),r=this.containerPointToLatLng(o.add(s));return
this.setView(r,i,{zoom:e})},_getBoundsCenterZoom:function(t,i){i=i||{},t=t.getBounds?t.getBounds():z(t);var
e=w(i.paddingTopLeft||i.padding||[0,0]),n=w(i.paddingBottomRight||i.padding||[0,0]),o=this.getBoundsZoom(t,!1,e.add(n));if((o="number"==typeof
i.maxZoom?Math.min(i.maxZoom,o):o)===1/0)return{center:t.getCenter(),zoom:o};var
s=n.subtract(e).divideBy(2),r=this.project(t.getSouthWest(),o),a=this.project(t.getNorthEast(),o);return{center:this.unproject(r.add(a).divideBy(2).add(s),o),zoom:o}},fitBounds:function(t,i){if(!(t=z(t)).isValid())throw
new Error("Bounds are not valid.");var
e=this._getBoundsCenterZoom(t,i);return
this.setView(e.center,e.zoom,i)},fitWorld:function(t){return
this.fitBounds([[-90,-180],[90,180]],t)},panTo:function(t,i){return
this.setView(t,this._zoom,{pan:i})},panBy:function(t,i){if(t=w(t).round(),i=i||{},!t.x&&!t.y)return
this.fire("moveend");if(!0!==i.animate&&!this.getSize().contains(t))return
this._resetView(this.unproject(this.project(this.getCenter()).add(t)),this.getZoom()),this;if(this._panAnim||(this._panAnim=new
Le,this._panAnim.on({step:this._onPanTransitionStep,end:this._onPanTransitionEnd},this)),i.noMoveStart||this.fire("movestart"),!1!==i.animate){Q(this._mapPane,"leaflet-pan-anim");var
e=this._getMapPanePos().subtract(t).round();this._panAnim.run(this._mapPane,e,i.duration||.25,i.easeLinearity)}else
this._rawPanBy(t),this.fire("move").fire("moveend");return
this},flyTo:function(t,i,e){function n(t){var
i=(g*g-m*m+(t?-1:1)*x*x*v*v)/(2*(t?g:m)*x*v),e=Math.sqrt(i*i+1)-i;return
e<1e-9?-18:Math.log(e)}function
o(t){return(Math.exp(t)-Math.exp(-t))/2}function
s(t){return(Math.exp(t)+Math.exp(-t))/2}function r(t){return
o(t)/s(t)}function a(t){return m*(s(w)/s(w+y*t))}function h(t){return
m*(s(w)*r(w+y*t)-o(w))/x}function u(t){return 1-Math.pow(1-t,1.5)}function
l(){var
e=(Date.now()-P)/b,n=u(e)*L;e<=1?(this._flyToFrame=f(l,this),this._move(this.unproject(c.add(_.subtract(c).multiplyBy(h(n)/v)),p),this.getScaleZoom(m/a(n),p),{flyTo:!0})):this._move(t,i)._moveEnd(!0)}if(!1===(e=e||{}).animate||!ji)return
this.setView(t,i,e);this._stop();var
c=this.project(this.getCenter()),_=this.project(t),d=this.getSize(),p=this._zoom;t=C(t),i=void
0===i?p:i;var
m=Math.max(d.x,d.y),g=m*this.getZoomScale(p,i),v=_.distanceTo(c)||1,y=1.42,x=y*y,w=n(0),P=Date.now(),L=(n(1)-w)/y,b=e.duration?1e3*e.duration:1e3*L*.8;return
this._moveStart(!0,e.noMoveStart),l.call(this),this},flyToBounds:function(t,i){var
e=this._getBoundsCenterZoom(t,i);return
this.flyTo(e.center,e.zoom,i)},setMaxBounds:function(t){return(t=z(t)).isValid()?(this.options.maxBounds&&this.off("moveend",this._panInsideMaxBounds),this.options.maxBounds=t,this._loaded&&this._panInsideMaxBounds(),this.on("moveend",this._panInsideMaxBounds)):(this.options.maxBounds=null,this.off("moveend",this._panInsideMaxBounds))},setMinZoom:function(t){var
i=this.options.minZoom;return
this.options.minZoom=t,this._loaded&&i!==t&&(this.fire("zoomlevelschange"),this.getZoom()<this.options.minZoom)?this.setZoom(t):this},setMaxZoom:function(t){var
i=this.options.maxZoom;return
this.options.maxZoom=t,this._loaded&&i!==t&&(this.fire("zoomlevelschange"),this.getZoom()>this.options.maxZoom)?this.setZoom(t):this},panInsideBounds:function(t,i){this._enforcingBounds=!0;var
e=this.getCenter(),n=this._limitCenter(e,this._zoom,z(t));return
e.equals(n)||this.panTo(n,i),this._enforcingBounds=!1,this},invalidateSize:function(t){if(!this._loaded)return
this;t=i({animate:!1,pan:!0},!0===t?{animate:!0}:t);var
n=this.getSize();this._sizeChanged=!0,this._lastCenter=null;var
o=this.getSize(),s=n.divideBy(2).round(),r=o.divideBy(2).round(),a=s.subtract(r);return
a.x||a.y?(t.animate&&t.pan?this.panBy(a):(t.pan&&this._rawPanBy(a),this.fire("move"),t.debounceMoveend?(clearTimeout(this._sizeTimer),this._sizeTimer=setTimeout(e(this.fire,this,"moveend"),200)):this.fire("moveend")),this.fire("resize",{oldSize:n,newSize:o})):this},stop:function(){return
this.setZoom(this._limitZoom(this._zoom)),this.options.zoomSnap||this.fire("viewreset"),this._stop()},locate:function(t){if(t=this._locateOptions=i({timeout:1e4,watch:!1},t),!("geolocation"in
navigator))return
this._handleGeolocationError({code:0,message:"Geolocation not
supported."}),this;var
n=e(this._handleGeolocationResponse,this),o=e(this._handleGeolocationError,this);return
t.watch?this._locationWatchId=navigator.geolocation.watchPosition(n,o,t):navigator.geolocation.getCurrentPosition(n,o,t),this},stopLocate:function(){return
navigator.geolocation&&navigator.geolocation.clearWatch&&navigator.geolocation.clearWatch(this._locationWatchId),this._locateOptions&&(this._locateOptions.setView=!1),this},_handleGeolocationError:function(t){var
i=t.code,e=t.message||(1===i?"permission
denied":2===i?"position
unavailable":"timeout");this._locateOptions.setView&&!this._loaded&&this.fitWorld(),this.fire("locationerror",{code:i,message:"Geolocation
error: "+e+"."})},_handleGeolocationResponse:function(t){var
i=new
M(t.coords.latitude,t.coords.longitude),e=i.toBounds(2*t.coords.accuracy),n=this._locateOptions;if(n.setView){var
o=this.getBoundsZoom(e);this.setView(i,n.maxZoom?Math.min(o,n.maxZoom):o)}var
s={latlng:i,bounds:e,timestamp:t.timestamp};for(var r in
t.coords)"number"==typeof
t.coords[r]&&(s[r]=t.coords[r]);this.fire("locationfound",s)},addHandler:function(t,i){if(!i)return
this;var e=this[t]=new i(this);return
this._handlers.push(e),this.options[t]&&e.enable(),this},remove:function(){if(this._initEvents(!0),this._containerId!==this._container._leaflet_id)throw
new Error("Map container is being reused by another
instance");try{delete this._container._leaflet_id,delete
this._containerId}catch(t){this._container._leaflet_id=void
0,this._containerId=void 0}void
0!==this._locationWatchId&&this.stopLocate(),this._stop(),K(this._mapPane),this._clearControlPos&&this._clearControlPos(),this._resizeRequest&&(g(this._resizeRequest),this._resizeRequest=null),this._clearHandlers(),this._loaded&&this.fire("unload");var
t;for(t in this._layers)this._layers[t].remove();for(t in
this._panes)K(this._panes[t]);return this._layers=[],this._panes=[],delete
this._mapPane,delete this._renderer,this},createPane:function(t,i){var
e=G("div","leaflet-pane"+(t?"
leaflet-"+t.replace("Pane","")+"-pane":""),i||this._mapPane);return
t&&(this._panes[t]=e),e},getCenter:function(){return
this._checkIfLoaded(),this._lastCenter&&!this._moved()?this._lastCenter:this.layerPointToLatLng(this._getCenterLayerPoint())},getZoom:function(){return
this._zoom},getBounds:function(){var t=this.getPixelBounds();return new
T(this.unproject(t.getBottomLeft()),this.unproject(t.getTopRight()))},getMinZoom:function(){return
void
0===this.options.minZoom?this._layersMinZoom||0:this.options.minZoom},getMaxZoom:function(){return
void 0===this.options.maxZoom?void
0===this._layersMaxZoom?1/0:this._layersMaxZoom:this.options.maxZoom},getBoundsZoom:function(t,i,e){t=z(t),e=w(e||[0,0]);var
n=this.getZoom()||0,o=this.getMinZoom(),s=this.getMaxZoom(),r=t.getNorthWest(),a=t.getSouthEast(),h=this.getSize().subtract(e),u=b(this.project(a,n),this.project(r,n)).getSize(),l=ji?this.options.zoomSnap:1,c=h.x/u.x,_=h.y/u.y,d=i?Math.max(c,_):Math.min(c,_);return
n=this.getScaleZoom(d,n),l&&(n=Math.round(n/(l/100))*(l/100),n=i?Math.ceil(n/l)*l:Math.floor(n/l)*l),Math.max(o,Math.min(s,n))},getSize:function(){return
this._size&&!this._sizeChanged||(this._size=new
x(this._container.clientWidth||0,this._container.clientHeight||0),this._sizeChanged=!1),this._size.clone()},getPixelBounds:function(t,i){var
e=this._getTopLeftPoint(t,i);return new
P(e,e.add(this.getSize()))},getPixelOrigin:function(){return
this._checkIfLoaded(),this._pixelOrigin},getPixelWorldBounds:function(t){return
this.options.crs.getProjectedBounds(void
0===t?this.getZoom():t)},getPane:function(t){return"string"==typeof
t?this._panes[t]:t},getPanes:function(){return
this._panes},getContainer:function(){return
this._container},getZoomScale:function(t,i){var e=this.options.crs;return
i=void
0===i?this._zoom:i,e.scale(t)/e.scale(i)},getScaleZoom:function(t,i){var
e=this.options.crs;i=void 0===i?this._zoom:i;var
n=e.zoom(t*e.scale(i));return isNaN(n)?1/0:n},project:function(t,i){return
i=void
0===i?this._zoom:i,this.options.crs.latLngToPoint(C(t),i)},unproject:function(t,i){return
i=void
0===i?this._zoom:i,this.options.crs.pointToLatLng(w(t),i)},layerPointToLatLng:function(t){var
i=w(t).add(this.getPixelOrigin());return
this.unproject(i)},latLngToLayerPoint:function(t){return
this.project(C(t))._round()._subtract(this.getPixelOrigin())},wrapLatLng:function(t){return
this.options.crs.wrapLatLng(C(t))},wrapLatLngBounds:function(t){return
this.options.crs.wrapLatLngBounds(z(t))},distance:function(t,i){return
this.options.crs.distance(C(t),C(i))},containerPointToLayerPoint:function(t){return
w(t).subtract(this._getMapPanePos())},layerPointToContainerPoint:function(t){return
w(t).add(this._getMapPanePos())},containerPointToLatLng:function(t){var
i=this.containerPointToLayerPoint(w(t));return
this.layerPointToLatLng(i)},latLngToContainerPoint:function(t){return
this.layerPointToContainerPoint(this.latLngToLayerPoint(C(t)))},mouseEventToContainerPoint:function(t){return
bt(t,this._container)},mouseEventToLayerPoint:function(t){return
this.containerPointToLayerPoint(this.mouseEventToContainerPoint(t))},mouseEventToLatLng:function(t){return
this.layerPointToLatLng(this.mouseEventToLayerPoint(t))},_initContainer:function(t){var
i=this._container=V(t);if(!i)throw new Error("Map container not
found.");if(i._leaflet_id)throw new Error("Map container is
already
initialized.");mt(i,"scroll",this._onScroll,this),this._containerId=n(i)},_initLayout:function(){var
t=this._container;this._fadeAnimated=this.options.fadeAnimation&&ji,Q(t,"leaflet-container"+(qi?"
leaflet-touch":"")+(Yi?"
leaflet-retina":"")+(Li?"
leaflet-oldie":"")+(Ai?"
leaflet-safari":"")+(this._fadeAnimated?"
leaflet-fade-anim":""));var
i=q(t,"position");"absolute"!==i&&"relative"!==i&&"fixed"!==i&&(t.style.position="relative"),this._initPanes(),this._initControlPos&&this._initControlPos()},_initPanes:function(){var
t=this._panes={};this._paneRenderers={},this._mapPane=this.createPane("mapPane",this._container),at(this._mapPane,new
x(0,0)),this.createPane("tilePane"),this.createPane("shadowPane"),this.createPane("overlayPane"),this.createPane("markerPane"),this.createPane("tooltipPane"),this.createPane("popupPane"),this.options.markerZoomAnimation||(Q(t.markerPane,"leaflet-zoom-hide"),Q(t.shadowPane,"leaflet-zoom-hide"))},_resetView:function(t,i){at(this._mapPane,new
x(0,0));var
e=!this._loaded;this._loaded=!0,i=this._limitZoom(i),this.fire("viewprereset");var
n=this._zoom!==i;this._moveStart(n,!1)._move(t,i)._moveEnd(n),this.fire("viewreset"),e&&this.fire("load")},_moveStart:function(t,i){return
t&&this.fire("zoomstart"),i||this.fire("movestart"),this},_move:function(t,i,e){void
0===i&&(i=this._zoom);var n=this._zoom!==i;return
this._zoom=i,this._lastCenter=t,this._pixelOrigin=this._getNewPixelOrigin(t),(n||e&&e.pinch)&&this.fire("zoom",e),this.fire("move",e)},_moveEnd:function(t){return
t&&this.fire("zoomend"),this.fire("moveend")},_stop:function(){return
g(this._flyToFrame),this._panAnim&&this._panAnim.stop(),this},_rawPanBy:function(t){at(this._mapPane,this._getMapPanePos().subtract(t))},_getZoomSpan:function(){return
this.getMaxZoom()-this.getMinZoom()},_panInsideMaxBounds:function(){this._enforcingBounds||this.panInsideBounds(this.options.maxBounds)},_checkIfLoaded:function(){if(!this._loaded)throw
new Error("Set map center and zoom
first.")},_initEvents:function(t){this._targets={},this._targets[n(this._container)]=this;var
i=t?ft:mt;i(this._container,"click dblclick mousedown mouseup
mouseover mouseout mousemove contextmenu
keypress",this._handleDOMEvent,this),this.options.trackResize&&i(window,"resize",this._onResize,this),ji&&this.options.transform3DLimit&&(t?this.off:this.on).call(this,"moveend",this._onMoveEnd)},_onResize:function(){g(this._resizeRequest),this._resizeRequest=f(function(){this.invalidateSize({debounceMoveend:!0})},this)},_onScroll:function(){this._container.scrollTop=0,this._container.scrollLeft=0},_onMoveEnd:function(){var
t=this._getMapPanePos();Math.max(Math.abs(t.x),Math.abs(t.y))>=this.options.transform3DLimit&&this._resetView(this.getCenter(),this.getZoom())},_findEventTargets:function(t,i){for(var
e,o=[],s="mouseout"===i||"mouseover"===i,r=t.target||t.srcElement,a=!1;r;){if((e=this._targets[n(r)])&&("click"===i||"preclick"===i)&&!t._simulated&&this._draggableMoved(e)){a=!0;break}if(e&&e.listens(i,!0)){if(s&&!Ct(r,t))break;if(o.push(e),s)break}if(r===this._container)break;r=r.parentNode}return
o.length||a||s||!Ct(r,t)||(o=[this]),o},_handleDOMEvent:function(t){if(this._loaded&&!Mt(t)){var
i=t.type;"mousedown"!==i&&"keypress"!==i||ct(t.target||t.srcElement),this._fireDOMEvent(t,i)}},_mouseEvents:["click","dblclick","mouseover","mouseout","contextmenu"],_fireDOMEvent:function(t,e,n){if("click"===t.type){var
o=i({},t);o.type="preclick",this._fireDOMEvent(o,o.type,n)}if(!t._stopped&&(n=(n||[]).concat(this._findEventTargets(t,e))).length){var
s=n[0];"contextmenu"===e&&s.listens(e,!0)&&Pt(t);var
r={originalEvent:t};if("keypress"!==t.type){var
a=s.getLatLng&&(!s._radius||s._radius<=10);r.containerPoint=a?this.latLngToContainerPoint(s.getLatLng()):this.mouseEventToContainerPoint(t),r.layerPoint=this.containerPointToLayerPoint(r.containerPoint),r.latlng=a?s.getLatLng():this.layerPointToLatLng(r.layerPoint)}for(var
h=0;h<n.length;h++)if(n[h].fire(e,r,!0),r.originalEvent._stopped||!1===n[h].options.bubblingMouseEvents&&-1!==d(this._mouseEvents,e))return}},_draggableMoved:function(t){return(t=t.dragging&&t.dragging.enabled()?t:this).dragging&&t.dragging.moved()||this.boxZoom&&this.boxZoom.moved()},_clearHandlers:function(){for(var
t=0,i=this._handlers.length;t<i;t++)this._handlers[t].disable()},whenReady:function(t,i){return
this._loaded?t.call(i||this,{target:this}):this.on("load",t,i),this},_getMapPanePos:function(){return
ht(this._mapPane)||new x(0,0)},_moved:function(){var
t=this._getMapPanePos();return
t&&!t.equals([0,0])},_getTopLeftPoint:function(t,i){return(t&&void
0!==i?this._getNewPixelOrigin(t,i):this.getPixelOrigin()).subtract(this._getMapPanePos())},_getNewPixelOrigin:function(t,i){var
e=this.getSize()._divideBy(2);return
this.project(t,i)._subtract(e)._add(this._getMapPanePos())._round()},_latLngToNewLayerPoint:function(t,i,e){var
n=this._getNewPixelOrigin(e,i);return
this.project(t,i)._subtract(n)},_latLngBoundsToNewLayerBounds:function(t,i,e){var
n=this._getNewPixelOrigin(e,i);return
b([this.project(t.getSouthWest(),i)._subtract(n),this.project(t.getNorthWest(),i)._subtract(n),this.project(t.getSouthEast(),i)._subtract(n),this.project(t.getNorthEast(),i)._subtract(n)])},_getCenterLayerPoint:function(){return
this.containerPointToLayerPoint(this.getSize()._divideBy(2))},_getCenterOffset:function(t){return
this.latLngToLayerPoint(t).subtract(this._getCenterLayerPoint())},_limitCenter:function(t,i,e){if(!e)return
t;var n=this.project(t,i),o=this.getSize().divideBy(2),s=new
P(n.subtract(o),n.add(o)),r=this._getBoundsOffset(s,e,i);return
r.round().equals([0,0])?t:this.unproject(n.add(r),i)},_limitOffset:function(t,i){if(!i)return
t;var e=this.getPixelBounds(),n=new P(e.min.add(t),e.max.add(t));return
t.add(this._getBoundsOffset(n,i))},_getBoundsOffset:function(t,i,e){var
n=b(this.project(i.getNorthEast(),e),this.project(i.getSouthWest(),e)),o=n.min.subtract(t.min),s=n.max.subtract(t.max);return
new
x(this._rebound(o.x,-s.x),this._rebound(o.y,-s.y))},_rebound:function(t,i){return
t+i>0?Math.round(t-i)/2:Math.max(0,Math.ceil(t))-Math.max(0,Math.floor(i))},_limitZoom:function(t){var
i=this.getMinZoom(),e=this.getMaxZoom(),n=ji?this.options.zoomSnap:1;return
n&&(t=Math.round(t/n)*n),Math.max(i,Math.min(e,t))},_onPanTransitionStep:function(){this.fire("move")},_onPanTransitionEnd:function(){tt(this._mapPane,"leaflet-pan-anim"),this.fire("moveend")},_tryAnimatedPan:function(t,i){var
e=this._getCenterOffset(t)._trunc();return!(!0!==(i&&i.animate)&&!this.getSize().contains(e))&&(this.panBy(e,i),!0)},_createAnimProxy:function(){var
t=this._proxy=G("div","leaflet-proxy
leaflet-zoom-animated");this._panes.mapPane.appendChild(t),this.on("zoomanim",function(t){var
i=ce,e=this._proxy.style[i];rt(this._proxy,this.project(t.center,t.zoom),this.getZoomScale(t.zoom,1)),e===this._proxy.style[i]&&this._animatingZoom&&this._onZoomTransitionEnd()},this),this.on("load
moveend",function(){var
t=this.getCenter(),i=this.getZoom();rt(this._proxy,this.project(t,i),this.getZoomScale(i,1))},this),this._on("unload",this._destroyAnimProxy,this)},_destroyAnimProxy:function(){K(this._proxy),delete
this._proxy},_catchTransitionEnd:function(t){this._animatingZoom&&t.propertyName.indexOf("transform")>=0&&this._onZoomTransitionEnd()},_nothingToAnimate:function(){return!this._container.getElementsByClassName("leaflet-zoom-animated").length},_tryAnimatedZoom:function(t,i,e){if(this._animatingZoom)return!0;if(e=e||{},!this._zoomAnimated||!1===e.animate||this._nothingToAnimate()||Math.abs(i-this._zoom)>this.options.zoomAnimationThreshold)return!1;var
n=this.getZoomScale(i),o=this._getCenterOffset(t)._divideBy(1-1/n);return!(!0!==e.animate&&!this.getSize().contains(o))&&(f(function(){this._moveStart(!0,!1)._animateZoom(t,i,!0)},this),!0)},_animateZoom:function(t,i,n,o){this._mapPane&&(n&&(this._animatingZoom=!0,this._animateToCenter=t,this._animateToZoom=i,Q(this._mapPane,"leaflet-zoom-anim")),this.fire("zoomanim",{center:t,zoom:i,noUpdate:o}),setTimeout(e(this._onZoomTransitionEnd,this),250))},_onZoomTransitionEnd:function(){this._animatingZoom&&(this._mapPane&&tt(this._mapPane,"leaflet-zoom-anim"),this._animatingZoom=!1,this._move(this._animateToCenter,this._animateToZoom),f(function(){this._moveEnd(!0)},this))}}),Te=v.extend({options:{position:"topright"},initialize:function(t){l(this,t)},getPosition:function(){return
this.options.position},setPosition:function(t){var i=this._map;return
i&&i.removeControl(this),this.options.position=t,i&&i.addControl(this),this},getContainer:function(){return
this._container},addTo:function(t){this.remove(),this._map=t;var
i=this._container=this.onAdd(t),e=this.getPosition(),n=t._controlCorners[e];return
Q(i,"leaflet-control"),-1!==e.indexOf("bottom")?n.insertBefore(i,n.firstChild):n.appendChild(i),this},remove:function(){return
this._map?(K(this._container),this.onRemove&&this.onRemove(this._map),this._map=null,this):this},_refocusOnMap:function(t){this._map&&t&&t.screenX>0&&t.screenY>0&&this._map.getContainer().focus()}}),ze=function(t){return
new Te(t)};be.include({addControl:function(t){return
t.addTo(this),this},removeControl:function(t){return
t.remove(),this},_initControlPos:function(){function t(t,o){var
s=e+t+" "+e+o;i[t+o]=G("div",s,n)}var
i=this._controlCorners={},e="leaflet-",n=this._controlContainer=G("div",e+"control-container",this._container);t("top","left"),t("top","right"),t("bottom","left"),t("bottom","right")},_clearControlPos:function(){for(var
t in
this._controlCorners)K(this._controlCorners[t]);K(this._controlContainer),delete
this._controlCorners,delete this._controlContainer}});var
Me=Te.extend({options:{collapsed:!0,position:"topright",autoZIndex:!0,hideSingleBase:!1,sortLayers:!1,sortFunction:function(t,i,e,n){return
e<n?-1:n<e?1:0}},initialize:function(t,i,e){l(this,e),this._layerControlInputs=[],this._layers=[],this._lastZIndex=0,this._handlingClick=!1;for(var
n in t)this._addLayer(t[n],n);for(n in
i)this._addLayer(i[n],n,!0)},onAdd:function(t){this._initLayout(),this._update(),this._map=t,t.on("zoomend",this._checkDisabledLayers,this);for(var
i=0;i<this._layers.length;i++)this._layers[i].layer.on("add
remove",this._onLayerChange,this);return
this._container},addTo:function(t){return
Te.prototype.addTo.call(this,t),this._expandIfNotCollapsed()},onRemove:function(){this._map.off("zoomend",this._checkDisabledLayers,this);for(var
t=0;t<this._layers.length;t++)this._layers[t].layer.off("add
remove",this._onLayerChange,this)},addBaseLayer:function(t,i){return
this._addLayer(t,i),this._map?this._update():this},addOverlay:function(t,i){return
this._addLayer(t,i,!0),this._map?this._update():this},removeLayer:function(t){t.off("add
remove",this._onLayerChange,this);var i=this._getLayer(n(t));return
i&&this._layers.splice(this._layers.indexOf(i),1),this._map?this._update():this},expand:function(){Q(this._container,"leaflet-control-layers-expanded"),this._form.style.height=null;var
t=this._map.getSize().y-(this._container.offsetTop+50);return
t<this._form.clientHeight?(Q(this._form,"leaflet-control-layers-scrollbar"),this._form.style.height=t+"px"):tt(this._form,"leaflet-control-layers-scrollbar"),this._checkDisabledLayers(),this},collapse:function(){return
tt(this._container,"leaflet-control-layers-expanded"),this},_initLayout:function(){var
t="leaflet-control-layers",i=this._container=G("div",t),e=this.options.collapsed;i.setAttribute("aria-haspopup",!0),wt(i),xt(i);var
n=this._form=G("form",t+"-list");e&&(this._map.on("click",this.collapse,this),zi||mt(i,{mouseenter:this.expand,mouseleave:this.collapse},this));var
o=this._layersLink=G("a",t+"-toggle",i);o.href="#",o.title="Layers",qi?(mt(o,"click",Lt),mt(o,"click",this.expand,this)):mt(o,"focus",this.expand,this),e||this.expand(),this._baseLayersList=G("div",t+"-base",n),this._separator=G("div",t+"-separator",n),this._overlaysList=G("div",t+"-overlays",n),i.appendChild(n)},_getLayer:function(t){for(var
i=0;i<this._layers.length;i++)if(this._layers[i]&&n(this._layers[i].layer)===t)return
this._layers[i]},_addLayer:function(t,i,n){this._map&&t.on("add
remove",this._onLayerChange,this),this._layers.push({layer:t,name:i,overlay:n}),this.options.sortLayers&&this._layers.sort(e(function(t,i){return
this.options.sortFunction(t.layer,i.layer,t.name,i.name)},this)),this.options.autoZIndex&&t.setZIndex&&(this._lastZIndex++,t.setZIndex(this._lastZIndex)),this._expandIfNotCollapsed()},_update:function(){if(!this._container)return
this;Y(this._baseLayersList),Y(this._overlaysList),this._layerControlInputs=[];var
t,i,e,n,o=0;for(e=0;e<this._layers.length;e++)n=this._layers[e],this._addItem(n),i=i||n.overlay,t=t||!n.overlay,o+=n.overlay?0:1;return
this.options.hideSingleBase&&(t=t&&o>1,this._baseLayersList.style.display=t?"":"none"),this._separator.style.display=i&&t?"":"none",this},_onLayerChange:function(t){this._handlingClick||this._update();var
i=this._getLayer(n(t.target)),e=i.overlay?"add"===t.type?"overlayadd":"overlayremove":"add"===t.type?"baselayerchange":null;e&&this._map.fire(e,i)},_createRadioElement:function(t,i){var
e='<input type="radio"
class="leaflet-control-layers-selector"
name="'+t+'"'+(i?'
checked="checked"':"")+"/>",n=document.createElement("div");return
n.innerHTML=e,n.firstChild},_addItem:function(t){var
i,e=document.createElement("label"),o=this._map.hasLayer(t.layer);t.overlay?((i=document.createElement("input")).type="checkbox",i.className="leaflet-control-layers-selector",i.defaultChecked=o):i=this._createRadioElement("leaflet-base-layers",o),this._layerControlInputs.push(i),i.layerId=n(t.layer),mt(i,"click",this._onInputClick,this);var
s=document.createElement("span");s.innerHTML="
"+t.name;var r=document.createElement("div");return
e.appendChild(r),r.appendChild(i),r.appendChild(s),(t.overlay?this._overlaysList:this._baseLayersList).appendChild(e),this._checkDisabledLayers(),e},_onInputClick:function(){var
t,i,e=this._layerControlInputs,n=[],o=[];this._handlingClick=!0;for(var
s=e.length-1;s>=0;s--)t=e[s],i=this._getLayer(t.layerId).layer,t.checked?n.push(i):t.checked||o.push(i);for(s=0;s<o.length;s++)this._map.hasLayer(o[s])&&this._map.removeLayer(o[s]);for(s=0;s<n.length;s++)this._map.hasLayer(n[s])||this._map.addLayer(n[s]);this._handlingClick=!1,this._refocusOnMap()},_checkDisabledLayers:function(){for(var
t,i,e=this._layerControlInputs,n=this._map.getZoom(),o=e.length-1;o>=0;o--)t=e[o],i=this._getLayer(t.layerId).layer,t.disabled=void
0!==i.options.minZoom&&n<i.options.minZoom||void
0!==i.options.maxZoom&&n>i.options.maxZoom},_expandIfNotCollapsed:function(){return
this._map&&!this.options.collapsed&&this.expand(),this},_expand:function(){return
this.expand()},_collapse:function(){return
this.collapse()}}),Ce=Te.extend({options:{position:"topleft",zoomInText:"+",zoomInTitle:"Zoom
in",zoomOutText:"−",zoomOutTitle:"Zoom
out"},onAdd:function(t){var
i="leaflet-control-zoom",e=G("div",i+"
leaflet-bar"),n=this.options;return
this._zoomInButton=this._createButton(n.zoomInText,n.zoomInTitle,i+"-in",e,this._zoomIn),this._zoomOutButton=this._createButton(n.zoomOutText,n.zoomOutTitle,i+"-out",e,this._zoomOut),this._updateDisabled(),t.on("zoomend
zoomlevelschange",this._updateDisabled,this),e},onRemove:function(t){t.off("zoomend
zoomlevelschange",this._updateDisabled,this)},disable:function(){return
this._disabled=!0,this._updateDisabled(),this},enable:function(){return
this._disabled=!1,this._updateDisabled(),this},_zoomIn:function(t){!this._disabled&&this._map._zoom<this._map.getMaxZoom()&&this._map.zoomIn(this._map.options.zoomDelta*(t.shiftKey?3:1))},_zoomOut:function(t){!this._disabled&&this._map._zoom>this._map.getMinZoom()&&this._map.zoomOut(this._map.options.zoomDelta*(t.shiftKey?3:1))},_createButton:function(t,i,e,n,o){var
s=G("a",e,n);return
s.innerHTML=t,s.href="#",s.title=i,s.setAttribute("role","button"),s.setAttribute("aria-label",i),wt(s),mt(s,"click",Lt),mt(s,"click",o,this),mt(s,"click",this._refocusOnMap,this),s},_updateDisabled:function(){var
t=this._map,i="leaflet-disabled";tt(this._zoomInButton,i),tt(this._zoomOutButton,i),(this._disabled||t._zoom===t.getMinZoom())&&Q(this._zoomOutButton,i),(this._disabled||t._zoom===t.getMaxZoom())&&Q(this._zoomInButton,i)}});be.mergeOptions({zoomControl:!0}),be.addInitHook(function(){this.options.zoomControl&&(this.zoomControl=new
Ce,this.addControl(this.zoomControl))});var
Se=Te.extend({options:{position:"bottomleft",maxWidth:100,metric:!0,imperial:!0},onAdd:function(t){var
i=G("div","leaflet-control-scale"),e=this.options;return
this._addScales(e,"leaflet-control-scale-line",i),t.on(e.updateWhenIdle?"moveend":"move",this._update,this),t.whenReady(this._update,this),i},onRemove:function(t){t.off(this.options.updateWhenIdle?"moveend":"move",this._update,this)},_addScales:function(t,i,e){t.metric&&(this._mScale=G("div",i,e)),t.imperial&&(this._iScale=G("div",i,e))},_update:function(){var
t=this._map,i=t.getSize().y/2,e=t.distance(t.containerPointToLatLng([0,i]),t.containerPointToLatLng([this.options.maxWidth,i]));this._updateScales(e)},_updateScales:function(t){this.options.metric&&t&&this._updateMetric(t),this.options.imperial&&t&&this._updateImperial(t)},_updateMetric:function(t){var
i=this._getRoundNum(t),e=i<1e3?i+" m":i/1e3+"
km";this._updateScale(this._mScale,e,i/t)},_updateImperial:function(t){var
i,e,n,o=3.2808399*t;o>5280?(i=o/5280,e=this._getRoundNum(i),this._updateScale(this._iScale,e+"
mi",e/i)):(n=this._getRoundNum(o),this._updateScale(this._iScale,n+"
ft",n/o))},_updateScale:function(t,i,e){t.style.width=Math.round(this.options.maxWidth*e)+"px",t.innerHTML=i},_getRoundNum:function(t){var
i=Math.pow(10,(Math.floor(t)+"").length-1),e=t/i;return
e=e>=10?10:e>=5?5:e>=3?3:e>=2?2:1,i*e}}),Ze=Te.extend({options:{position:"bottomright",prefix:'<a
href="http://leafletjs.com" title="A JS library for
interactive
maps">Leaflet</a>'},initialize:function(t){l(this,t),this._attributions={}},onAdd:function(t){t.attributionControl=this,this._container=G("div","leaflet-control-attribution"),wt(this._container);for(var
i in
t._layers)t._layers[i].getAttribution&&this.addAttribution(t._layers[i].getAttribution());return
this._update(),this._container},setPrefix:function(t){return
this.options.prefix=t,this._update(),this},addAttribution:function(t){return
t?(this._attributions[t]||(this._attributions[t]=0),this._attributions[t]++,this._update(),this):this},removeAttribution:function(t){return
t?(this._attributions[t]&&(this._attributions[t]--,this._update()),this):this},_update:function(){if(this._map){var
t=[];for(var i in
this._attributions)this._attributions[i]&&t.push(i);var
e=[];this.options.prefix&&e.push(this.options.prefix),t.length&&e.push(t.join(",
")),this._container.innerHTML=e.join(" |
")}}});be.mergeOptions({attributionControl:!0}),be.addInitHook(function(){this.options.attributionControl&&(new
Ze).addTo(this)});Te.Layers=Me,Te.Zoom=Ce,Te.Scale=Se,Te.Attribution=Ze,ze.layers=function(t,i,e){return
new Me(t,i,e)},ze.zoom=function(t){return new
Ce(t)},ze.scale=function(t){return new
Se(t)},ze.attribution=function(t){return new Ze(t)};var
Ee=v.extend({initialize:function(t){this._map=t},enable:function(){return
this._enabled?this:(this._enabled=!0,this.addHooks(),this)},disable:function(){return
this._enabled?(this._enabled=!1,this.removeHooks(),this):this},enabled:function(){return!!this._enabled}});Ee.addTo=function(t,i){return
t.addHandler(i,this),this};var ke,Ae={Events:li},Be=qi?"touchstart
mousedown":"mousedown",Ie={mousedown:"mouseup",touchstart:"touchend",pointerdown:"touchend",MSPointerDown:"touchend"},Oe={mousedown:"mousemove",touchstart:"touchmove",pointerdown:"touchmove",MSPointerDown:"touchmove"},Re=ci.extend({options:{clickTolerance:3},initialize:function(t,i,e,n){l(this,n),this._element=t,this._dragStartTarget=i||t,this._preventOutline=e},enable:function(){this._enabled||(mt(this._dragStartTarget,Be,this._onDown,this),this._enabled=!0)},disable:function(){this._enabled&&(Re._dragging===this&&this.finishDrag(),ft(this._dragStartTarget,Be,this._onDown,this),this._enabled=!1,this._moved=!1)},_onDown:function(t){if(!t._simulated&&this._enabled&&(this._moved=!1,!$(this._element,"leaflet-zoom-anim")&&!(Re._dragging||t.shiftKey||1!==t.which&&1!==t.button&&!t.touches||(Re._dragging=this,this._preventOutline&&ct(this._element),ut(),fi(),this._moving)))){this.fire("down");var
i=t.touches?t.touches[0]:t,e=dt(this._element);this._startPoint=new
x(i.clientX,i.clientY),this._parentScale=pt(e),mt(document,Oe[t.type],this._onMove,this),mt(document,Ie[t.type],this._onUp,this)}},_onMove:function(t){if(!t._simulated&&this._enabled)if(t.touches&&t.touches.length>1)this._moved=!0;else{var
i=t.touches&&1===t.touches.length?t.touches[0]:t,e=new
x(i.clientX,i.clientY)._subtract(this._startPoint);(e.x||e.y)&&(Math.abs(e.x)+Math.abs(e.y)<this.options.clickTolerance||(e.x/=this._parentScale.x,e.y/=this._parentScale.y,Pt(t),this._moved||(this.fire("dragstart"),this._moved=!0,this._startPos=ht(this._element).subtract(e),Q(document.body,"leaflet-dragging"),this._lastTarget=t.target||t.srcElement,window.SVGElementInstance&&this._lastTarget
instanceof
SVGElementInstance&&(this._lastTarget=this._lastTarget.correspondingUseElement),Q(this._lastTarget,"leaflet-drag-target")),this._newPos=this._startPos.add(e),this._moving=!0,g(this._animRequest),this._lastEvent=t,this._animRequest=f(this._updatePosition,this,!0)))}},_updatePosition:function(){var
t={originalEvent:this._lastEvent};this.fire("predrag",t),at(this._element,this._newPos),this.fire("drag",t)},_onUp:function(t){!t._simulated&&this._enabled&&this.finishDrag()},finishDrag:function(){tt(document.body,"leaflet-dragging"),this._lastTarget&&(tt(this._lastTarget,"leaflet-drag-target"),this._lastTarget=null);for(var
t in
Oe)ft(document,Oe[t],this._onMove,this),ft(document,Ie[t],this._onUp,this);lt(),gi(),this._moved&&this._moving&&(g(this._animRequest),this.fire("dragend",{distance:this._newPos.distanceTo(this._startPos)})),this._moving=!1,Re._dragging=!1}}),Ne=(Object.freeze||Object)({simplify:Zt,pointToSegmentDistance:Et,closestPointOnSegment:function(t,i,e){return
Dt(t,i,e)},clipSegment:It,_getEdgeIntersection:Ot,_getBitCode:Rt,_sqClosestPointOnSegment:Dt,isFlat:jt,_flat:Wt}),De=(Object.freeze||Object)({clipPolygon:Ht}),je={project:function(t){return
new x(t.lng,t.lat)},unproject:function(t){return new M(t.y,t.x)},bounds:new
P([-180,-90],[180,90])},We={R:6378137,R_MINOR:6356752.314245179,bounds:new
P([-20037508.34279,-15496570.73972],[20037508.34279,18764656.23138]),project:function(t){var
i=Math.PI/180,e=this.R,n=t.lat*i,o=this.R_MINOR/e,s=Math.sqrt(1-o*o),r=s*Math.sin(n),a=Math.tan(Math.PI/4-n/2)/Math.pow((1-r)/(1+r),s/2);return
n=-e*Math.log(Math.max(a,1e-10)),new
x(t.lng*i*e,n)},unproject:function(t){for(var
i,e=180/Math.PI,n=this.R,o=this.R_MINOR/n,s=Math.sqrt(1-o*o),r=Math.exp(-t.y/n),a=Math.PI/2-2*Math.atan(r),h=0,u=.1;h<15&&Math.abs(u)>1e-7;h++)i=s*Math.sin(a),i=Math.pow((1-i)/(1+i),s/2),a+=u=Math.PI/2-2*Math.atan(r*i)-a;return
new
M(a*e,t.x*e/n)}},He=(Object.freeze||Object)({LonLat:je,Mercator:We,SphericalMercator:mi}),Fe=i({},pi,{code:"EPSG:3395",projection:We,transformation:function(){var
t=.5/(Math.PI*We.R);return
Z(t,.5,-t,.5)}()}),Ue=i({},pi,{code:"EPSG:4326",projection:je,transformation:Z(1/180,1,-1/180,.5)}),Ve=i({},di,{projection:je,transformation:Z(1,0,-1,0),scale:function(t){return
Math.pow(2,t)},zoom:function(t){return
Math.log(t)/Math.LN2},distance:function(t,i){var
e=i.lng-t.lng,n=i.lat-t.lat;return
Math.sqrt(e*e+n*n)},infinite:!0});di.Earth=pi,di.EPSG3395=Fe,di.EPSG3857=yi,di.EPSG900913=xi,di.EPSG4326=Ue,di.Simple=Ve;var
qe=ci.extend({options:{pane:"overlayPane",attribution:null,bubblingMouseEvents:!0},addTo:function(t){return
t.addLayer(this),this},remove:function(){return
this.removeFrom(this._map||this._mapToAdd)},removeFrom:function(t){return
t&&t.removeLayer(this),this},getPane:function(t){return
this._map.getPane(t?this.options[t]||t:this.options.pane)},addInteractiveTarget:function(t){return
this._map._targets[n(t)]=this,this},removeInteractiveTarget:function(t){return
delete this._map._targets[n(t)],this},getAttribution:function(){return
this.options.attribution},_layerAdd:function(t){var
i=t.target;if(i.hasLayer(this)){if(this._map=i,this._zoomAnimated=i._zoomAnimated,this.getEvents){var
e=this.getEvents();i.on(e,this),this.once("remove",function(){i.off(e,this)},this)}this.onAdd(i),this.getAttribution&&i.attributionControl&&i.attributionControl.addAttribution(this.getAttribution()),this.fire("add"),i.fire("layeradd",{layer:this})}}});be.include({addLayer:function(t){if(!t._layerAdd)throw
new Error("The provided object is not a Layer.");var
i=n(t);return
this._layers[i]?this:(this._layers[i]=t,t._mapToAdd=this,t.beforeAdd&&t.beforeAdd(this),this.whenReady(t._layerAdd,t),this)},removeLayer:function(t){var
i=n(t);return
this._layers[i]?(this._loaded&&t.onRemove(this),t.getAttribution&&this.attributionControl&&this.attributionControl.removeAttribution(t.getAttribution()),delete
this._layers[i],this._loaded&&(this.fire("layerremove",{layer:t}),t.fire("remove")),t._map=t._mapToAdd=null,this):this},hasLayer:function(t){return!!t&&n(t)in
this._layers},eachLayer:function(t,i){for(var e in
this._layers)t.call(i,this._layers[e]);return
this},_addLayers:function(t){for(var
i=0,e=(t=t?oi(t)?t:[t]:[]).length;i<e;i++)this.addLayer(t[i])},_addZoomLimit:function(t){!isNaN(t.options.maxZoom)&&isNaN(t.options.minZoom)||(this._zoomBoundLayers[n(t)]=t,this._updateZoomLevels())},_removeZoomLimit:function(t){var
i=n(t);this._zoomBoundLayers[i]&&(delete
this._zoomBoundLayers[i],this._updateZoomLevels())},_updateZoomLevels:function(){var
t=1/0,i=-1/0,e=this._getZoomSpan();for(var n in this._zoomBoundLayers){var
o=this._zoomBoundLayers[n].options;t=void
0===o.minZoom?t:Math.min(t,o.minZoom),i=void
0===o.maxZoom?i:Math.max(i,o.maxZoom)}this._layersMaxZoom=i===-1/0?void
0:i,this._layersMinZoom=t===1/0?void
0:t,e!==this._getZoomSpan()&&this.fire("zoomlevelschange"),void
0===this.options.maxZoom&&this._layersMaxZoom&&this.getZoom()>this._layersMaxZoom&&this.setZoom(this._layersMaxZoom),void
0===this.options.minZoom&&this._layersMinZoom&&this.getZoom()<this._layersMinZoom&&this.setZoom(this._layersMinZoom)}});var
Ge=qe.extend({initialize:function(t,i){l(this,i),this._layers={};var
e,n;if(t)for(e=0,n=t.length;e<n;e++)this.addLayer(t[e])},addLayer:function(t){var
i=this.getLayerId(t);return
this._layers[i]=t,this._map&&this._map.addLayer(t),this},removeLayer:function(t){var
i=t in this._layers?t:this.getLayerId(t);return
this._map&&this._layers[i]&&this._map.removeLayer(this._layers[i]),delete
this._layers[i],this},hasLayer:function(t){return!!t&&(t in
this._layers||this.getLayerId(t)in
this._layers)},clearLayers:function(){return
this.eachLayer(this.removeLayer,this)},invoke:function(t){var
i,e,n=Array.prototype.slice.call(arguments,1);for(i in
this._layers)(e=this._layers[i])[t]&&e[t].apply(e,n);return
this},onAdd:function(t){this.eachLayer(t.addLayer,t)},onRemove:function(t){this.eachLayer(t.removeLayer,t)},eachLayer:function(t,i){for(var
e in this._layers)t.call(i,this._layers[e]);return
this},getLayer:function(t){return this._layers[t]},getLayers:function(){var
t=[];return this.eachLayer(t.push,t),t},setZIndex:function(t){return
this.invoke("setZIndex",t)},getLayerId:function(t){return
n(t)}}),Ke=Ge.extend({addLayer:function(t){return
this.hasLayer(t)?this:(t.addEventParent(this),Ge.prototype.addLayer.call(this,t),this.fire("layeradd",{layer:t}))},removeLayer:function(t){return
this.hasLayer(t)?(t in
this._layers&&(t=this._layers[t]),t.removeEventParent(this),Ge.prototype.removeLayer.call(this,t),this.fire("layerremove",{layer:t})):this},setStyle:function(t){return
this.invoke("setStyle",t)},bringToFront:function(){return
this.invoke("bringToFront")},bringToBack:function(){return
this.invoke("bringToBack")},getBounds:function(){var t=new
T;for(var i in this._layers){var
e=this._layers[i];t.extend(e.getBounds?e.getBounds():e.getLatLng())}return
t}}),Ye=v.extend({options:{popupAnchor:[0,0],tooltipAnchor:[0,0]},initialize:function(t){l(this,t)},createIcon:function(t){return
this._createIcon("icon",t)},createShadow:function(t){return
this._createIcon("shadow",t)},_createIcon:function(t,i){var
e=this._getIconUrl(t);if(!e){if("icon"===t)throw new
Error("iconUrl not set in Icon options (see the docs).");return
null}var
n=this._createImg(e,i&&"IMG"===i.tagName?i:null);return
this._setIconStyles(n,t),n},_setIconStyles:function(t,i){var
e=this.options,n=e[i+"Size"];"number"==typeof
n&&(n=[n,n]);var
o=w(n),s=w("shadow"===i&&e.shadowAnchor||e.iconAnchor||o&&o.divideBy(2,!0));t.className="leaflet-marker-"+i+"
"+(e.className||""),s&&(t.style.marginLeft=-s.x+"px",t.style.marginTop=-s.y+"px"),o&&(t.style.width=o.x+"px",t.style.height=o.y+"px")},_createImg:function(t,i){return
i=i||document.createElement("img"),i.src=t,i},_getIconUrl:function(t){return
Yi&&this.options[t+"RetinaUrl"]||this.options[t+"Url"]}}),Xe=Ye.extend({options:{iconUrl:"marker-icon.png",iconRetinaUrl:"marker-icon-2x.png",shadowUrl:"marker-shadow.png",iconSize:[25,41],iconAnchor:[12,41],popupAnchor:[1,-34],tooltipAnchor:[16,-28],shadowSize:[41,41]},_getIconUrl:function(t){return
Xe.imagePath||(Xe.imagePath=this._detectIconPath()),(this.options.imagePath||Xe.imagePath)+Ye.prototype._getIconUrl.call(this,t)},_detectIconPath:function(){var
t=G("div","leaflet-default-icon-path",document.body),i=q(t,"background-image")||q(t,"backgroundImage");return
document.body.removeChild(t),i=null===i||0!==i.indexOf("url")?"":i.replace(/^url\(["']?/,"").replace(/marker-icon\.png["']?\)$/,"")}}),Je=Ee.extend({initialize:function(t){this._marker=t},addHooks:function(){var
t=this._marker._icon;this._draggable||(this._draggable=new
Re(t,t,!0)),this._draggable.on({dragstart:this._onDragStart,predrag:this._onPreDrag,drag:this._onDrag,dragend:this._onDragEnd},this).enable(),Q(t,"leaflet-marker-draggable")},removeHooks:function(){this._draggable.off({dragstart:this._onDragStart,predrag:this._onPreDrag,drag:this._onDrag,dragend:this._onDragEnd},this).disable(),this._marker._icon&&tt(this._marker._icon,"leaflet-marker-draggable")},moved:function(){return
this._draggable&&this._draggable._moved},_adjustPan:function(t){var
i=this._marker,e=i._map,n=this._marker.options.autoPanSpeed,o=this._marker.options.autoPanPadding,s=ht(i._icon),r=e.getPixelBounds(),a=e.getPixelOrigin(),h=b(r.min._subtract(a).add(o),r.max._subtract(a).subtract(o));if(!h.contains(s)){var
u=w((Math.max(h.max.x,s.x)-h.max.x)/(r.max.x-h.max.x)-(Math.min(h.min.x,s.x)-h.min.x)/(r.min.x-h.min.x),(Math.max(h.max.y,s.y)-h.max.y)/(r.max.y-h.max.y)-(Math.min(h.min.y,s.y)-h.min.y)/(r.min.y-h.min.y)).multiplyBy(n);e.panBy(u,{animate:!1}),this._draggable._newPos._add(u),this._draggable._startPos._add(u),at(i._icon,this._draggable._newPos),this._onDrag(t),this._panRequest=f(this._adjustPan.bind(this,t))}},_onDragStart:function(){this._oldLatLng=this._marker.getLatLng(),this._marker.closePopup().fire("movestart").fire("dragstart")},_onPreDrag:function(t){this._marker.options.autoPan&&(g(this._panRequest),this._panRequest=f(this._adjustPan.bind(this,t)))},_onDrag:function(t){var
i=this._marker,e=i._shadow,n=ht(i._icon),o=i._map.layerPointToLatLng(n);e&&at(e,n),i._latlng=o,t.latlng=o,t.oldLatLng=this._oldLatLng,i.fire("move",t).fire("drag",t)},_onDragEnd:function(t){g(this._panRequest),delete
this._oldLatLng,this._marker.fire("moveend").fire("dragend",t)}}),$e=qe.extend({options:{icon:new
Xe,interactive:!0,keyboard:!0,title:"",alt:"",zIndexOffset:0,opacity:1,riseOnHover:!1,riseOffset:250,pane:"markerPane",bubblingMouseEvents:!1,draggable:!1,autoPan:!1,autoPanPadding:[50,50],autoPanSpeed:10},initialize:function(t,i){l(this,i),this._latlng=C(t)},onAdd:function(t){this._zoomAnimated=this._zoomAnimated&&t.options.markerZoomAnimation,this._zoomAnimated&&t.on("zoomanim",this._animateZoom,this),this._initIcon(),this.update()},onRemove:function(t){this.dragging&&this.dragging.enabled()&&(this.options.draggable=!0,this.dragging.removeHooks()),delete
this.dragging,this._zoomAnimated&&t.off("zoomanim",this._animateZoom,this),this._removeIcon(),this._removeShadow()},getEvents:function(){return{zoom:this.update,viewreset:this.update}},getLatLng:function(){return
this._latlng},setLatLng:function(t){var i=this._latlng;return
this._latlng=C(t),this.update(),this.fire("move",{oldLatLng:i,latlng:this._latlng})},setZIndexOffset:function(t){return
this.options.zIndexOffset=t,this.update()},setIcon:function(t){return
this.options.icon=t,this._map&&(this._initIcon(),this.update()),this._popup&&this.bindPopup(this._popup,this._popup.options),this},getElement:function(){return
this._icon},update:function(){if(this._icon&&this._map){var
t=this._map.latLngToLayerPoint(this._latlng).round();this._setPos(t)}return
this},_initIcon:function(){var
t=this.options,i="leaflet-zoom-"+(this._zoomAnimated?"animated":"hide"),e=t.icon.createIcon(this._icon),n=!1;e!==this._icon&&(this._icon&&this._removeIcon(),n=!0,t.title&&(e.title=t.title),"IMG"===e.tagName&&(e.alt=t.alt||"")),Q(e,i),t.keyboard&&(e.tabIndex="0"),this._icon=e,t.riseOnHover&&this.on({mouseover:this._bringToFront,mouseout:this._resetZIndex});var
o=t.icon.createShadow(this._shadow),s=!1;o!==this._shadow&&(this._removeShadow(),s=!0),o&&(Q(o,i),o.alt=""),this._shadow=o,t.opacity<1&&this._updateOpacity(),n&&this.getPane().appendChild(this._icon),this._initInteraction(),o&&s&&this.getPane("shadowPane").appendChild(this._shadow)},_removeIcon:function(){this.options.riseOnHover&&this.off({mouseover:this._bringToFront,mouseout:this._resetZIndex}),K(this._icon),this.removeInteractiveTarget(this._icon),this._icon=null},_removeShadow:function(){this._shadow&&K(this._shadow),this._shadow=null},_setPos:function(t){at(this._icon,t),this._shadow&&at(this._shadow,t),this._zIndex=t.y+this.options.zIndexOffset,this._resetZIndex()},_updateZIndex:function(t){this._icon.style.zIndex=this._zIndex+t},_animateZoom:function(t){var
i=this._map._latLngToNewLayerPoint(this._latlng,t.zoom,t.center).round();this._setPos(i)},_initInteraction:function(){if(this.options.interactive&&(Q(this._icon,"leaflet-interactive"),this.addInteractiveTarget(this._icon),Je)){var
t=this.options.draggable;this.dragging&&(t=this.dragging.enabled(),this.dragging.disable()),this.dragging=new
Je(this),t&&this.dragging.enable()}},setOpacity:function(t){return
this.options.opacity=t,this._map&&this._updateOpacity(),this},_updateOpacity:function(){var
t=this.options.opacity;nt(this._icon,t),this._shadow&&nt(this._shadow,t)},_bringToFront:function(){this._updateZIndex(this.options.riseOffset)},_resetZIndex:function(){this._updateZIndex(0)},_getPopupAnchor:function(){return
this.options.icon.options.popupAnchor},_getTooltipAnchor:function(){return
this.options.icon.options.tooltipAnchor}}),Qe=qe.extend({options:{stroke:!0,color:"#3388ff",weight:3,opacity:1,lineCap:"round",lineJoin:"round",dashArray:null,dashOffset:null,fill:!1,fillColor:null,fillOpacity:.2,fillRule:"evenodd",interactive:!0,bubblingMouseEvents:!0},beforeAdd:function(t){this._renderer=t.getRenderer(this)},onAdd:function(){this._renderer._initPath(this),this._reset(),this._renderer._addPath(this)},onRemove:function(){this._renderer._removePath(this)},redraw:function(){return
this._map&&this._renderer._updatePath(this),this},setStyle:function(t){return
l(this,t),this._renderer&&this._renderer._updateStyle(this),this},bringToFront:function(){return
this._renderer&&this._renderer._bringToFront(this),this},bringToBack:function(){return
this._renderer&&this._renderer._bringToBack(this),this},getElement:function(){return
this._path},_reset:function(){this._project(),this._update()},_clickTolerance:function(){return(this.options.stroke?this.options.weight/2:0)+this._renderer.options.tolerance}}),tn=Qe.extend({options:{fill:!0,radius:10},initialize:function(t,i){l(this,i),this._latlng=C(t),this._radius=this.options.radius},setLatLng:function(t){return
this._latlng=C(t),this.redraw(),this.fire("move",{latlng:this._latlng})},getLatLng:function(){return
this._latlng},setRadius:function(t){return
this.options.radius=this._radius=t,this.redraw()},getRadius:function(){return
this._radius},setStyle:function(t){var
i=t&&t.radius||this._radius;return
Qe.prototype.setStyle.call(this,t),this.setRadius(i),this},_project:function(){this._point=this._map.latLngToLayerPoint(this._latlng),this._updateBounds()},_updateBounds:function(){var
t=this._radius,i=this._radiusY||t,e=this._clickTolerance(),n=[t+e,i+e];this._pxBounds=new
P(this._point.subtract(n),this._point.add(n))},_update:function(){this._map&&this._updatePath()},_updatePath:function(){this._renderer._updateCircle(this)},_empty:function(){return
this._radius&&!this._renderer._bounds.intersects(this._pxBounds)},_containsPoint:function(t){return
t.distanceTo(this._point)<=this._radius+this._clickTolerance()}}),en=tn.extend({initialize:function(t,e,n){if("number"==typeof
e&&(e=i({},n,{radius:e})),l(this,e),this._latlng=C(t),isNaN(this.options.radius))throw
new Error("Circle radius cannot be
NaN");this._mRadius=this.options.radius},setRadius:function(t){return
this._mRadius=t,this.redraw()},getRadius:function(){return
this._mRadius},getBounds:function(){var
t=[this._radius,this._radiusY||this._radius];return new
T(this._map.layerPointToLatLng(this._point.subtract(t)),this._map.layerPointToLatLng(this._point.add(t)))},setStyle:Qe.prototype.setStyle,_project:function(){var
t=this._latlng.lng,i=this._latlng.lat,e=this._map,n=e.options.crs;if(n.distance===pi.distance){var
o=Math.PI/180,s=this._mRadius/pi.R/o,r=e.project([i+s,t]),a=e.project([i-s,t]),h=r.add(a).divideBy(2),u=e.unproject(h).lat,l=Math.acos((Math.cos(s*o)-Math.sin(i*o)*Math.sin(u*o))/(Math.cos(i*o)*Math.cos(u*o)))/o;(isNaN(l)||0===l)&&(l=s/Math.cos(Math.PI/180*i)),this._point=h.subtract(e.getPixelOrigin()),this._radius=isNaN(l)?0:h.x-e.project([u,t-l]).x,this._radiusY=h.y-r.y}else{var
c=n.unproject(n.project(this._latlng).subtract([this._mRadius,0]));this._point=e.latLngToLayerPoint(this._latlng),this._radius=this._point.x-e.latLngToLayerPoint(c).x}this._updateBounds()}}),nn=Qe.extend({options:{smoothFactor:1,noClip:!1},initialize:function(t,i){l(this,i),this._setLatLngs(t)},getLatLngs:function(){return
this._latlngs},setLatLngs:function(t){return
this._setLatLngs(t),this.redraw()},isEmpty:function(){return!this._latlngs.length},closestLayerPoint:function(t){for(var
i,e,n=1/0,o=null,s=Dt,r=0,a=this._parts.length;r<a;r++)for(var
h=this._parts[r],u=1,l=h.length;u<l;u++){var
c=s(t,i=h[u-1],e=h[u],!0);c<n&&(n=c,o=s(t,i,e))}return
o&&(o.distance=Math.sqrt(n)),o},getCenter:function(){if(!this._map)throw
new Error("Must add layer to map before using getCenter()");var
t,i,e,n,o,s,r,a=this._rings[0],h=a.length;if(!h)return
null;for(t=0,i=0;t<h-1;t++)i+=a[t].distanceTo(a[t+1])/2;if(0===i)return
this._map.layerPointToLatLng(a[0]);for(t=0,n=0;t<h-1;t++)if(o=a[t],s=a[t+1],e=o.distanceTo(s),(n+=e)>i)return
r=(n-i)/e,this._map.layerPointToLatLng([s.x-r*(s.x-o.x),s.y-r*(s.y-o.y)])},getBounds:function(){return
this._bounds},addLatLng:function(t,i){return
i=i||this._defaultShape(),t=C(t),i.push(t),this._bounds.extend(t),this.redraw()},_setLatLngs:function(t){this._bounds=new
T,this._latlngs=this._convertLatLngs(t)},_defaultShape:function(){return
jt(this._latlngs)?this._latlngs:this._latlngs[0]},_convertLatLngs:function(t){for(var
i=[],e=jt(t),n=0,o=t.length;n<o;n++)e?(i[n]=C(t[n]),this._bounds.extend(i[n])):i[n]=this._convertLatLngs(t[n]);return
i},_project:function(){var t=new
P;this._rings=[],this._projectLatlngs(this._latlngs,this._rings,t);var
i=this._clickTolerance(),e=new
x(i,i);this._bounds.isValid()&&t.isValid()&&(t.min._subtract(e),t.max._add(e),this._pxBounds=t)},_projectLatlngs:function(t,i,e){var
n,o,s=t[0]instanceof
M,r=t.length;if(s){for(o=[],n=0;n<r;n++)o[n]=this._map.latLngToLayerPoint(t[n]),e.extend(o[n]);i.push(o)}else
for(n=0;n<r;n++)this._projectLatlngs(t[n],i,e)},_clipPoints:function(){var
t=this._renderer._bounds;if(this._parts=[],this._pxBounds&&this._pxBounds.intersects(t))if(this.options.noClip)this._parts=this._rings;else{var
i,e,n,o,s,r,a,h=this._parts;for(i=0,n=0,o=this._rings.length;i<o;i++)for(e=0,s=(a=this._rings[i]).length;e<s-1;e++)(r=It(a[e],a[e+1],t,e,!0))&&(h[n]=h[n]||[],h[n].push(r[0]),r[1]===a[e+1]&&e!==s-2||(h[n].push(r[1]),n++))}},_simplifyPoints:function(){for(var
t=this._parts,i=this.options.smoothFactor,e=0,n=t.length;e<n;e++)t[e]=Zt(t[e],i)},_update:function(){this._map&&(this._clipPoints(),this._simplifyPoints(),this._updatePath())},_updatePath:function(){this._renderer._updatePoly(this)},_containsPoint:function(t,i){var
e,n,o,s,r,a,h=this._clickTolerance();if(!this._pxBounds||!this._pxBounds.contains(t))return!1;for(e=0,s=this._parts.length;e<s;e++)for(n=0,o=(r=(a=this._parts[e]).length)-1;n<r;o=n++)if((i||0!==n)&&Et(t,a[o],a[n])<=h)return!0;return!1}});nn._flat=Wt;var
on=nn.extend({options:{fill:!0},isEmpty:function(){return!this._latlngs.length||!this._latlngs[0].length},getCenter:function(){if(!this._map)throw
new Error("Must add layer to map before using getCenter()");var
t,i,e,n,o,s,r,a,h,u=this._rings[0],l=u.length;if(!l)return
null;for(s=r=a=0,t=0,i=l-1;t<l;i=t++)e=u[t],n=u[i],o=e.y*n.x-n.y*e.x,r+=(e.x+n.x)*o,a+=(e.y+n.y)*o,s+=3*o;return
h=0===s?u[0]:[r/s,a/s],this._map.layerPointToLatLng(h)},_convertLatLngs:function(t){var
i=nn.prototype._convertLatLngs.call(this,t),e=i.length;return
e>=2&&i[0]instanceof
M&&i[0].equals(i[e-1])&&i.pop(),i},_setLatLngs:function(t){nn.prototype._setLatLngs.call(this,t),jt(this._latlngs)&&(this._latlngs=[this._latlngs])},_defaultShape:function(){return
jt(this._latlngs[0])?this._latlngs[0]:this._latlngs[0][0]},_clipPoints:function(){var
t=this._renderer._bounds,i=this.options.weight,e=new x(i,i);if(t=new
P(t.min.subtract(e),t.max.add(e)),this._parts=[],this._pxBounds&&this._pxBounds.intersects(t))if(this.options.noClip)this._parts=this._rings;else
for(var
n,o=0,s=this._rings.length;o<s;o++)(n=Ht(this._rings[o],t,!0)).length&&this._parts.push(n)},_updatePath:function(){this._renderer._updatePoly(this,!0)},_containsPoint:function(t){var
i,e,n,o,s,r,a,h,u=!1;if(!this._pxBounds||!this._pxBounds.contains(t))return!1;for(o=0,a=this._parts.length;o<a;o++)for(s=0,r=(h=(i=this._parts[o]).length)-1;s<h;r=s++)e=i[s],n=i[r],e.y>t.y!=n.y>t.y&&t.x<(n.x-e.x)*(t.y-e.y)/(n.y-e.y)+e.x&&(u=!u);return
u||nn.prototype._containsPoint.call(this,t,!0)}}),sn=Ke.extend({initialize:function(t,i){l(this,i),this._layers={},t&&this.addData(t)},addData:function(t){var
i,e,n,o=oi(t)?t:t.features;if(o){for(i=0,e=o.length;i<e;i++)((n=o[i]).geometries||n.geometry||n.features||n.coordinates)&&this.addData(n);return
this}var s=this.options;if(s.filter&&!s.filter(t))return this;var
r=Ft(t,s);return
r?(r.feature=Yt(t),r.defaultOptions=r.options,this.resetStyle(r),s.onEachFeature&&s.onEachFeature(t,r),this.addLayer(r)):this},resetStyle:function(t){return
t.options=i({},t.defaultOptions),this._setLayerStyle(t,this.options.style),this},setStyle:function(t){return
this.eachLayer(function(i){this._setLayerStyle(i,t)},this)},_setLayerStyle:function(t,i){"function"==typeof
i&&(i=i(t.feature)),t.setStyle&&t.setStyle(i)}}),rn={toGeoJSON:function(t){return
Kt(this,{type:"Point",coordinates:qt(this.getLatLng(),t)})}};$e.include(rn),en.include(rn),tn.include(rn),nn.include({toGeoJSON:function(t){var
i=!jt(this._latlngs),e=Gt(this._latlngs,i?1:0,!1,t);return
Kt(this,{type:(i?"Multi":"")+"LineString",coordinates:e})}}),on.include({toGeoJSON:function(t){var
i=!jt(this._latlngs),e=i&&!jt(this._latlngs[0]),n=Gt(this._latlngs,e?2:i?1:0,!0,t);return
i||(n=[n]),Kt(this,{type:(e?"Multi":"")+"Polygon",coordinates:n})}}),Ge.include({toMultiPoint:function(t){var
i=[];return
this.eachLayer(function(e){i.push(e.toGeoJSON(t).geometry.coordinates)}),Kt(this,{type:"MultiPoint",coordinates:i})},toGeoJSON:function(t){var
i=this.feature&&this.feature.geometry&&this.feature.geometry.type;if("MultiPoint"===i)return
this.toMultiPoint(t);var e="GeometryCollection"===i,n=[];return
this.eachLayer(function(i){if(i.toGeoJSON){var
o=i.toGeoJSON(t);if(e)n.push(o.geometry);else{var
s=Yt(o);"FeatureCollection"===s.type?n.push.apply(n,s.features):n.push(s)}}}),e?Kt(this,{geometries:n,type:"GeometryCollection"}):{type:"FeatureCollection",features:n}}});var
an=Xt,hn=qe.extend({options:{opacity:1,alt:"",interactive:!1,crossOrigin:!1,errorOverlayUrl:"",zIndex:1,className:""},initialize:function(t,i,e){this._url=t,this._bounds=z(i),l(this,e)},onAdd:function(){this._image||(this._initImage(),this.options.opacity<1&&this._updateOpacity()),this.options.interactive&&(Q(this._image,"leaflet-interactive"),this.addInteractiveTarget(this._image)),this.getPane().appendChild(this._image),this._reset()},onRemove:function(){K(this._image),this.options.interactive&&this.removeInteractiveTarget(this._image)},setOpacity:function(t){return
this.options.opacity=t,this._image&&this._updateOpacity(),this},setStyle:function(t){return
t.opacity&&this.setOpacity(t.opacity),this},bringToFront:function(){return
this._map&&X(this._image),this},bringToBack:function(){return
this._map&&J(this._image),this},setUrl:function(t){return
this._url=t,this._image&&(this._image.src=t),this},setBounds:function(t){return
this._bounds=z(t),this._map&&this._reset(),this},getEvents:function(){var
t={zoom:this._reset,viewreset:this._reset};return
this._zoomAnimated&&(t.zoomanim=this._animateZoom),t},setZIndex:function(t){return
this.options.zIndex=t,this._updateZIndex(),this},getBounds:function(){return
this._bounds},getElement:function(){return
this._image},_initImage:function(){var
t="IMG"===this._url.tagName,i=this._image=t?this._url:G("img");Q(i,"leaflet-image-layer"),this._zoomAnimated&&Q(i,"leaflet-zoom-animated"),this.options.className&&Q(i,this.options.className),i.onselectstart=r,i.onmousemove=r,i.onload=e(this.fire,this,"load"),i.onerror=e(this._overlayOnError,this,"error"),(this.options.crossOrigin||""===this.options.crossOrigin)&&(i.crossOrigin=!0===this.options.crossOrigin?"":this.options.crossOrigin),this.options.zIndex&&this._updateZIndex(),t?this._url=i.src:(i.src=this._url,i.alt=this.options.alt)},_animateZoom:function(t){var
i=this._map.getZoomScale(t.zoom),e=this._map._latLngBoundsToNewLayerBounds(this._bounds,t.zoom,t.center).min;rt(this._image,e,i)},_reset:function(){var
t=this._image,i=new
P(this._map.latLngToLayerPoint(this._bounds.getNorthWest()),this._map.latLngToLayerPoint(this._bounds.getSouthEast())),e=i.getSize();at(t,i.min),t.style.width=e.x+"px",t.style.height=e.y+"px"},_updateOpacity:function(){nt(this._image,this.options.opacity)},_updateZIndex:function(){this._image&&void
0!==this.options.zIndex&&null!==this.options.zIndex&&(this._image.style.zIndex=this.options.zIndex)},_overlayOnError:function(){this.fire("error");var
t=this.options.errorOverlayUrl;t&&this._url!==t&&(this._url=t,this._image.src=t)}}),un=hn.extend({options:{autoplay:!0,loop:!0},_initImage:function(){var
t="VIDEO"===this._url.tagName,i=this._image=t?this._url:G("video");if(Q(i,"leaflet-image-layer"),this._zoomAnimated&&Q(i,"leaflet-zoom-animated"),i.onselectstart=r,i.onmousemove=r,i.onloadeddata=e(this.fire,this,"load"),t){for(var
n=i.getElementsByTagName("source"),o=[],s=0;s<n.length;s++)o.push(n[s].src);this._url=n.length>0?o:[i.src]}else{oi(this._url)||(this._url=[this._url]),i.autoplay=!!this.options.autoplay,i.loop=!!this.options.loop;for(var
a=0;a<this._url.length;a++){var
h=G("source");h.src=this._url[a],i.appendChild(h)}}}}),ln=qe.extend({options:{offset:[0,7],className:"",pane:"popupPane"},initialize:function(t,i){l(this,t),this._source=i},onAdd:function(t){this._zoomAnimated=t._zoomAnimated,this._container||this._initLayout(),t._fadeAnimated&&nt(this._container,0),clearTimeout(this._removeTimeout),this.getPane().appendChild(this._container),this.update(),t._fadeAnimated&&nt(this._container,1),this.bringToFront()},onRemove:function(t){t._fadeAnimated?(nt(this._container,0),this._removeTimeout=setTimeout(e(K,void
0,this._container),200)):K(this._container)},getLatLng:function(){return
this._latlng},setLatLng:function(t){return
this._latlng=C(t),this._map&&(this._updatePosition(),this._adjustPan()),this},getContent:function(){return
this._content},setContent:function(t){return
this._content=t,this.update(),this},getElement:function(){return
this._container},update:function(){this._map&&(this._container.style.visibility="hidden",this._updateContent(),this._updateLayout(),this._updatePosition(),this._container.style.visibility="",this._adjustPan())},getEvents:function(){var
t={zoom:this._updatePosition,viewreset:this._updatePosition};return
this._zoomAnimated&&(t.zoomanim=this._animateZoom),t},isOpen:function(){return!!this._map&&this._map.hasLayer(this)},bringToFront:function(){return
this._map&&X(this._container),this},bringToBack:function(){return
this._map&&J(this._container),this},_updateContent:function(){if(this._content){var
t=this._contentNode,i="function"==typeof
this._content?this._content(this._source||this):this._content;if("string"==typeof
i)t.innerHTML=i;else{for(;t.hasChildNodes();)t.removeChild(t.firstChild);t.appendChild(i)}this.fire("contentupdate")}},_updatePosition:function(){if(this._map){var
t=this._map.latLngToLayerPoint(this._latlng),i=w(this.options.offset),e=this._getAnchor();this._zoomAnimated?at(this._container,t.add(e)):i=i.add(t).add(e);var
n=this._containerBottom=-i.y,o=this._containerLeft=-Math.round(this._containerWidth/2)+i.x;this._container.style.bottom=n+"px",this._container.style.left=o+"px"}},_getAnchor:function(){return[0,0]}}),cn=ln.extend({options:{maxWidth:300,minWidth:50,maxHeight:null,autoPan:!0,autoPanPaddingTopLeft:null,autoPanPaddingBottomRight:null,autoPanPadding:[5,5],keepInView:!1,closeButton:!0,autoClose:!0,closeOnEscapeKey:!0,className:""},openOn:function(t){return
t.openPopup(this),this},onAdd:function(t){ln.prototype.onAdd.call(this,t),t.fire("popupopen",{popup:this}),this._source&&(this._source.fire("popupopen",{popup:this},!0),this._source
instanceof
Qe||this._source.on("preclick",yt))},onRemove:function(t){ln.prototype.onRemove.call(this,t),t.fire("popupclose",{popup:this}),this._source&&(this._source.fire("popupclose",{popup:this},!0),this._source
instanceof
Qe||this._source.off("preclick",yt))},getEvents:function(){var
t=ln.prototype.getEvents.call(this);return(void
0!==this.options.closeOnClick?this.options.closeOnClick:this._map.options.closePopupOnClick)&&(t.preclick=this._close),this.options.keepInView&&(t.moveend=this._adjustPan),t},_close:function(){this._map&&this._map.closePopup(this)},_initLayout:function(){var
t="leaflet-popup",i=this._container=G("div",t+"
"+(this.options.className||"")+"
leaflet-zoom-animated"),e=this._wrapper=G("div",t+"-content-wrapper",i);if(this._contentNode=G("div",t+"-content",e),wt(e),xt(this._contentNode),mt(e,"contextmenu",yt),this._tipContainer=G("div",t+"-tip-container",i),this._tip=G("div",t+"-tip",this._tipContainer),this.options.closeButton){var
n=this._closeButton=G("a",t+"-close-button",i);n.href="#close",n.innerHTML="×",mt(n,"click",this._onCloseButtonClick,this)}},_updateLayout:function(){var
t=this._contentNode,i=t.style;i.width="",i.whiteSpace="nowrap";var
e=t.offsetWidth;e=Math.min(e,this.options.maxWidth),e=Math.max(e,this.options.minWidth),i.width=e+1+"px",i.whiteSpace="",i.height="";var
n=t.offsetHeight,o=this.options.maxHeight;o&&n>o?(i.height=o+"px",Q(t,"leaflet-popup-scrolled")):tt(t,"leaflet-popup-scrolled"),this._containerWidth=this._container.offsetWidth},_animateZoom:function(t){var
i=this._map._latLngToNewLayerPoint(this._latlng,t.zoom,t.center),e=this._getAnchor();at(this._container,i.add(e))},_adjustPan:function(){if(!(!this.options.autoPan||this._map._panAnim&&this._map._panAnim._inProgress)){var
t=this._map,i=parseInt(q(this._container,"marginBottom"),10)||0,e=this._container.offsetHeight+i,n=this._containerWidth,o=new
x(this._containerLeft,-e-this._containerBottom);o._add(ht(this._container));var
s=t.layerPointToContainerPoint(o),r=w(this.options.autoPanPadding),a=w(this.options.autoPanPaddingTopLeft||r),h=w(this.options.autoPanPaddingBottomRight||r),u=t.getSize(),l=0,c=0;s.x+n+h.x>u.x&&(l=s.x+n-u.x+h.x),s.x-l-a.x<0&&(l=s.x-a.x),s.y+e+h.y>u.y&&(c=s.y+e-u.y+h.y),s.y-c-a.y<0&&(c=s.y-a.y),(l||c)&&t.fire("autopanstart").panBy([l,c])}},_onCloseButtonClick:function(t){this._close(),Lt(t)},_getAnchor:function(){return
w(this._source&&this._source._getPopupAnchor?this._source._getPopupAnchor():[0,0])}});be.mergeOptions({closePopupOnClick:!0}),be.include({openPopup:function(t,i,e){return
t instanceof cn||(t=new
cn(e).setContent(t)),i&&t.setLatLng(i),this.hasLayer(t)?this:(this._popup&&this._popup.options.autoClose&&this.closePopup(),this._popup=t,this.addLayer(t))},closePopup:function(t){return
t&&t!==this._popup||(t=this._popup,this._popup=null),t&&this.removeLayer(t),this}}),qe.include({bindPopup:function(t,i){return
t instanceof
cn?(l(t,i),this._popup=t,t._source=this):(this._popup&&!i||(this._popup=new
cn(i,this)),this._popup.setContent(t)),this._popupHandlersAdded||(this.on({click:this._openPopup,keypress:this._onKeyPress,remove:this.closePopup,move:this._movePopup}),this._popupHandlersAdded=!0),this},unbindPopup:function(){return
this._popup&&(this.off({click:this._openPopup,keypress:this._onKeyPress,remove:this.closePopup,move:this._movePopup}),this._popupHandlersAdded=!1,this._popup=null),this},openPopup:function(t,i){if(t
instanceof qe||(i=t,t=this),t instanceof Ke)for(var e in
this._layers){t=this._layers[e];break}return
i||(i=t.getCenter?t.getCenter():t.getLatLng()),this._popup&&this._map&&(this._popup._source=t,this._popup.update(),this._map.openPopup(this._popup,i)),this},closePopup:function(){return
this._popup&&this._popup._close(),this},togglePopup:function(t){return
this._popup&&(this._popup._map?this.closePopup():this.openPopup(t)),this},isPopupOpen:function(){return!!this._popup&&this._popup.isOpen()},setPopupContent:function(t){return
this._popup&&this._popup.setContent(t),this},getPopup:function(){return
this._popup},_openPopup:function(t){var
i=t.layer||t.target;this._popup&&this._map&&(Lt(t),i
instanceof
Qe?this.openPopup(t.layer||t.target,t.latlng):this._map.hasLayer(this._popup)&&this._popup._source===i?this.closePopup():this.openPopup(i,t.latlng))},_movePopup:function(t){this._popup.setLatLng(t.latlng)},_onKeyPress:function(t){13===t.originalEvent.keyCode&&this._openPopup(t)}});var
_n=ln.extend({options:{pane:"tooltipPane",offset:[0,0],direction:"auto",permanent:!1,sticky:!1,interactive:!1,opacity:.9},onAdd:function(t){ln.prototype.onAdd.call(this,t),this.setOpacity(this.options.opacity),t.fire("tooltipopen",{tooltip:this}),this._source&&this._source.fire("tooltipopen",{tooltip:this},!0)},onRemove:function(t){ln.prototype.onRemove.call(this,t),t.fire("tooltipclose",{tooltip:this}),this._source&&this._source.fire("tooltipclose",{tooltip:this},!0)},getEvents:function(){var
t=ln.prototype.getEvents.call(this);return
qi&&!this.options.permanent&&(t.preclick=this._close),t},_close:function(){this._map&&this._map.closeTooltip(this)},_initLayout:function(){var
t="leaflet-tooltip
"+(this.options.className||"")+"
leaflet-zoom-"+(this._zoomAnimated?"animated":"hide");this._contentNode=this._container=G("div",t)},_updateLayout:function(){},_adjustPan:function(){},_setPosition:function(t){var
i=this._map,e=this._container,n=i.latLngToContainerPoint(i.getCenter()),o=i.layerPointToContainerPoint(t),s=this.options.direction,r=e.offsetWidth,a=e.offsetHeight,h=w(this.options.offset),u=this._getAnchor();"top"===s?t=t.add(w(-r/2+h.x,-a+h.y+u.y,!0)):"bottom"===s?t=t.subtract(w(r/2-h.x,-h.y,!0)):"center"===s?t=t.subtract(w(r/2+h.x,a/2-u.y+h.y,!0)):"right"===s||"auto"===s&&o.x<n.x?(s="right",t=t.add(w(h.x+u.x,u.y-a/2+h.y,!0))):(s="left",t=t.subtract(w(r+u.x-h.x,a/2-u.y-h.y,!0))),tt(e,"leaflet-tooltip-right"),tt(e,"leaflet-tooltip-left"),tt(e,"leaflet-tooltip-top"),tt(e,"leaflet-tooltip-bottom"),Q(e,"leaflet-tooltip-"+s),at(e,t)},_updatePosition:function(){var
t=this._map.latLngToLayerPoint(this._latlng);this._setPosition(t)},setOpacity:function(t){this.options.opacity=t,this._container&&nt(this._container,t)},_animateZoom:function(t){var
i=this._map._latLngToNewLayerPoint(this._latlng,t.zoom,t.center);this._setPosition(i)},_getAnchor:function(){return
w(this._source&&this._source._getTooltipAnchor&&!this.options.sticky?this._source._getTooltipAnchor():[0,0])}});be.include({openTooltip:function(t,i,e){return
t instanceof _n||(t=new
_n(e).setContent(t)),i&&t.setLatLng(i),this.hasLayer(t)?this:this.addLayer(t)},closeTooltip:function(t){return
t&&this.removeLayer(t),this}}),qe.include({bindTooltip:function(t,i){return
t instanceof
_n?(l(t,i),this._tooltip=t,t._source=this):(this._tooltip&&!i||(this._tooltip=new
_n(i,this)),this._tooltip.setContent(t)),this._initTooltipInteractions(),this._tooltip.options.permanent&&this._map&&this._map.hasLayer(this)&&this.openTooltip(),this},unbindTooltip:function(){return
this._tooltip&&(this._initTooltipInteractions(!0),this.closeTooltip(),this._tooltip=null),this},_initTooltipInteractions:function(t){if(t||!this._tooltipHandlersAdded){var
i=t?"off":"on",e={remove:this.closeTooltip,move:this._moveTooltip};this._tooltip.options.permanent?e.add=this._openTooltip:(e.mouseover=this._openTooltip,e.mouseout=this.closeTooltip,this._tooltip.options.sticky&&(e.mousemove=this._moveTooltip),qi&&(e.click=this._openTooltip)),this[i](e),this._tooltipHandlersAdded=!t}},openTooltip:function(t,i){if(t
instanceof qe||(i=t,t=this),t instanceof Ke)for(var e in
this._layers){t=this._layers[e];break}return
i||(i=t.getCenter?t.getCenter():t.getLatLng()),this._tooltip&&this._map&&(this._tooltip._source=t,this._tooltip.update(),this._map.openTooltip(this._tooltip,i),this._tooltip.options.interactive&&this._tooltip._container&&(Q(this._tooltip._container,"leaflet-clickable"),this.addInteractiveTarget(this._tooltip._container))),this},closeTooltip:function(){return
this._tooltip&&(this._tooltip._close(),this._tooltip.options.interactive&&this._tooltip._container&&(tt(this._tooltip._container,"leaflet-clickable"),this.removeInteractiveTarget(this._tooltip._container))),this},toggleTooltip:function(t){return
this._tooltip&&(this._tooltip._map?this.closeTooltip():this.openTooltip(t)),this},isTooltipOpen:function(){return
this._tooltip.isOpen()},setTooltipContent:function(t){return
this._tooltip&&this._tooltip.setContent(t),this},getTooltip:function(){return
this._tooltip},_openTooltip:function(t){var
i=t.layer||t.target;this._tooltip&&this._map&&this.openTooltip(i,this._tooltip.options.sticky?t.latlng:void
0)},_moveTooltip:function(t){var
i,e,n=t.latlng;this._tooltip.options.sticky&&t.originalEvent&&(i=this._map.mouseEventToContainerPoint(t.originalEvent),e=this._map.containerPointToLayerPoint(i),n=this._map.layerPointToLatLng(e)),this._tooltip.setLatLng(n)}});var
dn=Ye.extend({options:{iconSize:[12,12],html:!1,bgPos:null,className:"leaflet-div-icon"},createIcon:function(t){var
i=t&&"DIV"===t.tagName?t:document.createElement("div"),e=this.options;if(i.innerHTML=!1!==e.html?e.html:"",e.bgPos){var
n=w(e.bgPos);i.style.backgroundPosition=-n.x+"px
"+-n.y+"px"}return
this._setIconStyles(i,"icon"),i},createShadow:function(){return
null}});Ye.Default=Xe;var
pn=qe.extend({options:{tileSize:256,opacity:1,updateWhenIdle:Wi,updateWhenZooming:!0,updateInterval:200,zIndex:1,bounds:null,minZoom:0,maxZoom:void
0,maxNativeZoom:void 0,minNativeZoom:void
0,noWrap:!1,pane:"tilePane",className:"",keepBuffer:2},initialize:function(t){l(this,t)},onAdd:function(){this._initContainer(),this._levels={},this._tiles={},this._resetView(),this._update()},beforeAdd:function(t){t._addZoomLimit(this)},onRemove:function(t){this._removeAllTiles(),K(this._container),t._removeZoomLimit(this),this._container=null,this._tileZoom=void
0},bringToFront:function(){return
this._map&&(X(this._container),this._setAutoZIndex(Math.max)),this},bringToBack:function(){return
this._map&&(J(this._container),this._setAutoZIndex(Math.min)),this},getContainer:function(){return
this._container},setOpacity:function(t){return
this.options.opacity=t,this._updateOpacity(),this},setZIndex:function(t){return
this.options.zIndex=t,this._updateZIndex(),this},isLoading:function(){return
this._loading},redraw:function(){return
this._map&&(this._removeAllTiles(),this._update()),this},getEvents:function(){var
t={viewprereset:this._invalidateAll,viewreset:this._resetView,zoom:this._resetView,moveend:this._onMoveEnd};return
this.options.updateWhenIdle||(this._onMove||(this._onMove=o(this._onMoveEnd,this.options.updateInterval,this)),t.move=this._onMove),this._zoomAnimated&&(t.zoomanim=this._animateZoom),t},createTile:function(){return
document.createElement("div")},getTileSize:function(){var
t=this.options.tileSize;return t instanceof x?t:new
x(t,t)},_updateZIndex:function(){this._container&&void
0!==this.options.zIndex&&null!==this.options.zIndex&&(this._container.style.zIndex=this.options.zIndex)},_setAutoZIndex:function(t){for(var
i,e=this.getPane().children,n=-t(-1/0,1/0),o=0,s=e.length;o<s;o++)i=e[o].style.zIndex,e[o]!==this._container&&i&&(n=t(n,+i));isFinite(n)&&(this.options.zIndex=n+t(-1,1),this._updateZIndex())},_updateOpacity:function(){if(this._map&&!Li){nt(this._container,this.options.opacity);var
t=+new Date,i=!1,e=!1;for(var n in this._tiles){var
o=this._tiles[n];if(o.current&&o.loaded){var
s=Math.min(1,(t-o.loaded)/200);nt(o.el,s),s<1?i=!0:(o.active?e=!0:this._onOpaqueTile(o),o.active=!0)}}e&&!this._noPrune&&this._pruneTiles(),i&&(g(this._fadeFrame),this._fadeFrame=f(this._updateOpacity,this))}},_onOpaqueTile:r,_initContainer:function(){this._container||(this._container=G("div","leaflet-layer
"+(this.options.className||"")),this._updateZIndex(),this.options.opacity<1&&this._updateOpacity(),this.getPane().appendChild(this._container))},_updateLevels:function(){var
t=this._tileZoom,i=this.options.maxZoom;if(void 0!==t){for(var e in
this._levels)this._levels[e].el.children.length||e===t?(this._levels[e].el.style.zIndex=i-Math.abs(t-e),this._onUpdateLevel(e)):(K(this._levels[e].el),this._removeTilesAtZoom(e),this._onRemoveLevel(e),delete
this._levels[e]);var n=this._levels[t],o=this._map;return
n||((n=this._levels[t]={}).el=G("div","leaflet-tile-container
leaflet-zoom-animated",this._container),n.el.style.zIndex=i,n.origin=o.project(o.unproject(o.getPixelOrigin()),t).round(),n.zoom=t,this._setZoomTransform(n,o.getCenter(),o.getZoom()),n.el.offsetWidth,this._onCreateLevel(n)),this._level=n,n}},_onUpdateLevel:r,_onRemoveLevel:r,_onCreateLevel:r,_pruneTiles:function(){if(this._map){var
t,i,e=this._map.getZoom();if(e>this.options.maxZoom||e<this.options.minZoom)this._removeAllTiles();else{for(t
in this._tiles)(i=this._tiles[t]).retain=i.current;for(t in
this._tiles)if((i=this._tiles[t]).current&&!i.active){var
n=i.coords;this._retainParent(n.x,n.y,n.z,n.z-5)||this._retainChildren(n.x,n.y,n.z,n.z+2)}for(t
in
this._tiles)this._tiles[t].retain||this._removeTile(t)}}},_removeTilesAtZoom:function(t){for(var
i in
this._tiles)this._tiles[i].coords.z===t&&this._removeTile(i)},_removeAllTiles:function(){for(var
t in this._tiles)this._removeTile(t)},_invalidateAll:function(){for(var t
in this._levels)K(this._levels[t].el),this._onRemoveLevel(t),delete
this._levels[t];this._removeAllTiles(),this._tileZoom=void
0},_retainParent:function(t,i,e,n){var
o=Math.floor(t/2),s=Math.floor(i/2),r=e-1,a=new x(+o,+s);a.z=+r;var
h=this._tileCoordsToKey(a),u=this._tiles[h];return
u&&u.active?(u.retain=!0,!0):(u&&u.loaded&&(u.retain=!0),r>n&&this._retainParent(o,s,r,n))},_retainChildren:function(t,i,e,n){for(var
o=2*t;o<2*t+2;o++)for(var s=2*i;s<2*i+2;s++){var r=new
x(o,s);r.z=e+1;var
a=this._tileCoordsToKey(r),h=this._tiles[a];h&&h.active?h.retain=!0:(h&&h.loaded&&(h.retain=!0),e+1<n&&this._retainChildren(o,s,e+1,n))}},_resetView:function(t){var
i=t&&(t.pinch||t.flyTo);this._setView(this._map.getCenter(),this._map.getZoom(),i,i)},_animateZoom:function(t){this._setView(t.center,t.zoom,!0,t.noUpdate)},_clampZoom:function(t){var
i=this.options;return void
0!==i.minNativeZoom&&t<i.minNativeZoom?i.minNativeZoom:void
0!==i.maxNativeZoom&&i.maxNativeZoom<t?i.maxNativeZoom:t},_setView:function(t,i,e,n){var
o=this._clampZoom(Math.round(i));(void
0!==this.options.maxZoom&&o>this.options.maxZoom||void
0!==this.options.minZoom&&o<this.options.minZoom)&&(o=void
0);var
s=this.options.updateWhenZooming&&o!==this._tileZoom;n&&!s||(this._tileZoom=o,this._abortLoading&&this._abortLoading(),this._updateLevels(),this._resetGrid(),void
0!==o&&this._update(t),e||this._pruneTiles(),this._noPrune=!!e),this._setZoomTransforms(t,i)},_setZoomTransforms:function(t,i){for(var
e in
this._levels)this._setZoomTransform(this._levels[e],t,i)},_setZoomTransform:function(t,i,e){var
n=this._map.getZoomScale(e,t.zoom),o=t.origin.multiplyBy(n).subtract(this._map._getNewPixelOrigin(i,e)).round();ji?rt(t.el,o,n):at(t.el,o)},_resetGrid:function(){var
t=this._map,i=t.options.crs,e=this._tileSize=this.getTileSize(),n=this._tileZoom,o=this._map.getPixelWorldBounds(this._tileZoom);o&&(this._globalTileRange=this._pxBoundsToTileRange(o)),this._wrapX=i.wrapLng&&!this.options.noWrap&&[Math.floor(t.project([0,i.wrapLng[0]],n).x/e.x),Math.ceil(t.project([0,i.wrapLng[1]],n).x/e.y)],this._wrapY=i.wrapLat&&!this.options.noWrap&&[Math.floor(t.project([i.wrapLat[0],0],n).y/e.x),Math.ceil(t.project([i.wrapLat[1],0],n).y/e.y)]},_onMoveEnd:function(){this._map&&!this._map._animatingZoom&&this._update()},_getTiledPixelBounds:function(t){var
i=this._map,e=i._animatingZoom?Math.max(i._animateToZoom,i.getZoom()):i.getZoom(),n=i.getZoomScale(e,this._tileZoom),o=i.project(t,this._tileZoom).floor(),s=i.getSize().divideBy(2*n);return
new P(o.subtract(s),o.add(s))},_update:function(t){var
i=this._map;if(i){var e=this._clampZoom(i.getZoom());if(void
0===t&&(t=i.getCenter()),void 0!==this._tileZoom){var
n=this._getTiledPixelBounds(t),o=this._pxBoundsToTileRange(n),s=o.getCenter(),r=[],a=this.options.keepBuffer,h=new
P(o.getBottomLeft().subtract([a,-a]),o.getTopRight().add([a,-a]));if(!(isFinite(o.min.x)&&isFinite(o.min.y)&&isFinite(o.max.x)&&isFinite(o.max.y)))throw
new Error("Attempted to load an infinite number of
tiles");for(var u in this._tiles){var
l=this._tiles[u].coords;l.z===this._tileZoom&&h.contains(new
x(l.x,l.y))||(this._tiles[u].current=!1)}if(Math.abs(e-this._tileZoom)>1)this._setView(t,e);else{for(var
c=o.min.y;c<=o.max.y;c++)for(var _=o.min.x;_<=o.max.x;_++){var d=new
x(_,c);if(d.z=this._tileZoom,this._isValidTile(d)){var
p=this._tiles[this._tileCoordsToKey(d)];p?p.current=!0:r.push(d)}}if(r.sort(function(t,i){return
t.distanceTo(s)-i.distanceTo(s)}),0!==r.length){this._loading||(this._loading=!0,this.fire("loading"));var
m=document.createDocumentFragment();for(_=0;_<r.length;_++)this._addTile(r[_],m);this._level.el.appendChild(m)}}}}},_isValidTile:function(t){var
i=this._map.options.crs;if(!i.infinite){var
e=this._globalTileRange;if(!i.wrapLng&&(t.x<e.min.x||t.x>e.max.x)||!i.wrapLat&&(t.y<e.min.y||t.y>e.max.y))return!1}if(!this.options.bounds)return!0;var
n=this._tileCoordsToBounds(t);return
z(this.options.bounds).overlaps(n)},_keyToBounds:function(t){return
this._tileCoordsToBounds(this._keyToTileCoords(t))},_tileCoordsToNwSe:function(t){var
i=this._map,e=this.getTileSize(),n=t.scaleBy(e),o=n.add(e);return[i.unproject(n,t.z),i.unproject(o,t.z)]},_tileCoordsToBounds:function(t){var
i=this._tileCoordsToNwSe(t),e=new T(i[0],i[1]);return
this.options.noWrap||(e=this._map.wrapLatLngBounds(e)),e},_tileCoordsToKey:function(t){return
t.x+":"+t.y+":"+t.z},_keyToTileCoords:function(t){var
i=t.split(":"),e=new x(+i[0],+i[1]);return
e.z=+i[2],e},_removeTile:function(t){var
i=this._tiles[t];i&&(K(i.el),delete
this._tiles[t],this.fire("tileunload",{tile:i.el,coords:this._keyToTileCoords(t)}))},_initTile:function(t){Q(t,"leaflet-tile");var
i=this.getTileSize();t.style.width=i.x+"px",t.style.height=i.y+"px",t.onselectstart=r,t.onmousemove=r,Li&&this.options.opacity<1&&nt(t,this.options.opacity),zi&&!Mi&&(t.style.WebkitBackfaceVisibility="hidden")},_addTile:function(t,i){var
n=this._getTilePos(t),o=this._tileCoordsToKey(t),s=this.createTile(this._wrapCoords(t),e(this._tileReady,this,t));this._initTile(s),this.createTile.length<2&&f(e(this._tileReady,this,t,null,s)),at(s,n),this._tiles[o]={el:s,coords:t,current:!0},i.appendChild(s),this.fire("tileloadstart",{tile:s,coords:t})},_tileReady:function(t,i,n){i&&this.fire("tileerror",{error:i,tile:n,coords:t});var
o=this._tileCoordsToKey(t);(n=this._tiles[o])&&(n.loaded=+new
Date,this._map._fadeAnimated?(nt(n.el,0),g(this._fadeFrame),this._fadeFrame=f(this._updateOpacity,this)):(n.active=!0,this._pruneTiles()),i||(Q(n.el,"leaflet-tile-loaded"),this.fire("tileload",{tile:n.el,coords:t})),this._noTilesToLoad()&&(this._loading=!1,this.fire("load"),Li||!this._map._fadeAnimated?f(this._pruneTiles,this):setTimeout(e(this._pruneTiles,this),250)))},_getTilePos:function(t){return
t.scaleBy(this.getTileSize()).subtract(this._level.origin)},_wrapCoords:function(t){var
i=new
x(this._wrapX?s(t.x,this._wrapX):t.x,this._wrapY?s(t.y,this._wrapY):t.y);return
i.z=t.z,i},_pxBoundsToTileRange:function(t){var i=this.getTileSize();return
new
P(t.min.unscaleBy(i).floor(),t.max.unscaleBy(i).ceil().subtract([1,1]))},_noTilesToLoad:function(){for(var
t in
this._tiles)if(!this._tiles[t].loaded)return!1;return!0}}),mn=pn.extend({options:{minZoom:0,maxZoom:18,subdomains:"abc",errorTileUrl:"",zoomOffset:0,tms:!1,zoomReverse:!1,detectRetina:!1,crossOrigin:!1},initialize:function(t,i){this._url=t,(i=l(this,i)).detectRetina&&Yi&&i.maxZoom>0&&(i.tileSize=Math.floor(i.tileSize/2),i.zoomReverse?(i.zoomOffset--,i.minZoom++):(i.zoomOffset++,i.maxZoom--),i.minZoom=Math.max(0,i.minZoom)),"string"==typeof
i.subdomains&&(i.subdomains=i.subdomains.split("")),zi||this.on("tileunload",this._onTileRemove)},setUrl:function(t,i){return
this._url=t,i||this.redraw(),this},createTile:function(t,i){var
n=document.createElement("img");return
mt(n,"load",e(this._tileOnLoad,this,i,n)),mt(n,"error",e(this._tileOnError,this,i,n)),(this.options.crossOrigin||""===this.options.crossOrigin)&&(n.crossOrigin=!0===this.options.crossOrigin?"":this.options.crossOrigin),n.alt="",n.setAttribute("role","presentation"),n.src=this.getTileUrl(t),n},getTileUrl:function(t){var
e={r:Yi?"@2x":"",s:this._getSubdomain(t),x:t.x,y:t.y,z:this._getZoomForUrl()};if(this._map&&!this._map.options.crs.infinite){var
n=this._globalTileRange.max.y-t.y;this.options.tms&&(e.y=n),e["-y"]=n}return
_(this._url,i(e,this.options))},_tileOnLoad:function(t,i){Li?setTimeout(e(t,this,null,i),0):t(null,i)},_tileOnError:function(t,i,e){var
n=this.options.errorTileUrl;n&&i.getAttribute("src")!==n&&(i.src=n),t(e,i)},_onTileRemove:function(t){t.tile.onload=null},_getZoomForUrl:function(){var
t=this._tileZoom,i=this.options.maxZoom,e=this.options.zoomReverse,n=this.options.zoomOffset;return
e&&(t=i-t),t+n},_getSubdomain:function(t){var
i=Math.abs(t.x+t.y)%this.options.subdomains.length;return
this.options.subdomains[i]},_abortLoading:function(){var t,i;for(t in
this._tiles)this._tiles[t].coords.z!==this._tileZoom&&((i=this._tiles[t].el).onload=r,i.onerror=r,i.complete||(i.src=si,K(i),delete
this._tiles[t]))},_removeTile:function(t){var i=this._tiles[t];if(i)return
Si||i.el.setAttribute("src",si),pn.prototype._removeTile.call(this,t)},_tileReady:function(t,i,e){if(this._map&&(!e||e.getAttribute("src")!==si))return
pn.prototype._tileReady.call(this,t,i,e)}}),fn=mn.extend({defaultWmsParams:{service:"WMS",request:"GetMap",layers:"",styles:"",format:"image/jpeg",transparent:!1,version:"1.1.1"},options:{crs:null,uppercase:!1},initialize:function(t,e){this._url=t;var
n=i({},this.defaultWmsParams);for(var o in e)o in
this.options||(n[o]=e[o]);var
s=(e=l(this,e)).detectRetina&&Yi?2:1,r=this.getTileSize();n.width=r.x*s,n.height=r.y*s,this.wmsParams=n},onAdd:function(t){this._crs=this.options.crs||t.options.crs,this._wmsVersion=parseFloat(this.wmsParams.version);var
i=this._wmsVersion>=1.3?"crs":"srs";this.wmsParams[i]=this._crs.code,mn.prototype.onAdd.call(this,t)},getTileUrl:function(t){var
i=this._tileCoordsToNwSe(t),e=this._crs,n=b(e.project(i[0]),e.project(i[1])),o=n.min,s=n.max,r=(this._wmsVersion>=1.3&&this._crs===Ue?[o.y,o.x,s.y,s.x]:[o.x,o.y,s.x,s.y]).join(","),a=mn.prototype.getTileUrl.call(this,t);return
a+c(this.wmsParams,a,this.options.uppercase)+(this.options.uppercase?"&BBOX=":"&bbox=")+r},setParams:function(t,e){return
i(this.wmsParams,t),e||this.redraw(),this}});mn.WMS=fn,Jt.wms=function(t,i){return
new fn(t,i)};var
gn=qe.extend({options:{padding:.1,tolerance:0},initialize:function(t){l(this,t),n(this),this._layers=this._layers||{}},onAdd:function(){this._container||(this._initContainer(),this._zoomAnimated&&Q(this._container,"leaflet-zoom-animated")),this.getPane().appendChild(this._container),this._update(),this.on("update",this._updatePaths,this)},onRemove:function(){this.off("update",this._updatePaths,this),this._destroyContainer()},getEvents:function(){var
t={viewreset:this._reset,zoom:this._onZoom,moveend:this._update,zoomend:this._onZoomEnd};return
this._zoomAnimated&&(t.zoomanim=this._onAnimZoom),t},_onAnimZoom:function(t){this._updateTransform(t.center,t.zoom)},_onZoom:function(){this._updateTransform(this._map.getCenter(),this._map.getZoom())},_updateTransform:function(t,i){var
e=this._map.getZoomScale(i,this._zoom),n=ht(this._container),o=this._map.getSize().multiplyBy(.5+this.options.padding),s=this._map.project(this._center,i),r=this._map.project(t,i).subtract(s),a=o.multiplyBy(-e).add(n).add(o).subtract(r);ji?rt(this._container,a,e):at(this._container,a)},_reset:function(){this._update(),this._updateTransform(this._center,this._zoom);for(var
t in this._layers)this._layers[t]._reset()},_onZoomEnd:function(){for(var t
in this._layers)this._layers[t]._project()},_updatePaths:function(){for(var
t in this._layers)this._layers[t]._update()},_update:function(){var
t=this.options.padding,i=this._map.getSize(),e=this._map.containerPointToLayerPoint(i.multiplyBy(-t)).round();this._bounds=new
P(e,e.add(i.multiplyBy(1+2*t)).round()),this._center=this._map.getCenter(),this._zoom=this._map.getZoom()}}),vn=gn.extend({getEvents:function(){var
t=gn.prototype.getEvents.call(this);return
t.viewprereset=this._onViewPreReset,t},_onViewPreReset:function(){this._postponeUpdatePaths=!0},onAdd:function(){gn.prototype.onAdd.call(this),this._draw()},_initContainer:function(){var
t=this._container=document.createElement("canvas");mt(t,"mousemove",o(this._onMouseMove,32,this),this),mt(t,"click
dblclick mousedown mouseup
contextmenu",this._onClick,this),mt(t,"mouseout",this._handleMouseOut,this),this._ctx=t.getContext("2d")},_destroyContainer:function(){g(this._redrawRequest),delete
this._ctx,K(this._container),ft(this._container),delete
this._container},_updatePaths:function(){if(!this._postponeUpdatePaths){this._redrawBounds=null;for(var
t in
this._layers)this._layers[t]._update();this._redraw()}},_update:function(){if(!this._map._animatingZoom||!this._bounds){this._drawnLayers={},gn.prototype._update.call(this);var
t=this._bounds,i=this._container,e=t.getSize(),n=Yi?2:1;at(i,t.min),i.width=n*e.x,i.height=n*e.y,i.style.width=e.x+"px",i.style.height=e.y+"px",Yi&&this._ctx.scale(2,2),this._ctx.translate(-t.min.x,-t.min.y),this.fire("update")}},_reset:function(){gn.prototype._reset.call(this),this._postponeUpdatePaths&&(this._postponeUpdatePaths=!1,this._updatePaths())},_initPath:function(t){this._updateDashArray(t),this._layers[n(t)]=t;var
i=t._order={layer:t,prev:this._drawLast,next:null};this._drawLast&&(this._drawLast.next=i),this._drawLast=i,this._drawFirst=this._drawFirst||this._drawLast},_addPath:function(t){this._requestRedraw(t)},_removePath:function(t){var
i=t._order,e=i.next,o=i.prev;e?e.prev=o:this._drawLast=o,o?o.next=e:this._drawFirst=e,delete
this._drawnLayers[t._leaflet_id],delete t._order,delete
this._layers[n(t)],this._requestRedraw(t)},_updatePath:function(t){this._extendRedrawBounds(t),t._project(),t._update(),this._requestRedraw(t)},_updateStyle:function(t){this._updateDashArray(t),this._requestRedraw(t)},_updateDashArray:function(t){if("string"==typeof
t.options.dashArray){var i,e=t.options.dashArray.split(/[,
]+/),n=[];for(i=0;i<e.length;i++)n.push(Number(e[i]));t.options._dashArray=n}else
t.options._dashArray=t.options.dashArray},_requestRedraw:function(t){this._map&&(this._extendRedrawBounds(t),this._redrawRequest=this._redrawRequest||f(this._redraw,this))},_extendRedrawBounds:function(t){if(t._pxBounds){var
i=(t.options.weight||0)+1;this._redrawBounds=this._redrawBounds||new
P,this._redrawBounds.extend(t._pxBounds.min.subtract([i,i])),this._redrawBounds.extend(t._pxBounds.max.add([i,i]))}},_redraw:function(){this._redrawRequest=null,this._redrawBounds&&(this._redrawBounds.min._floor(),this._redrawBounds.max._ceil()),this._clear(),this._draw(),this._redrawBounds=null},_clear:function(){var
t=this._redrawBounds;if(t){var
i=t.getSize();this._ctx.clearRect(t.min.x,t.min.y,i.x,i.y)}else
this._ctx.clearRect(0,0,this._container.width,this._container.height)},_draw:function(){var
t,i=this._redrawBounds;if(this._ctx.save(),i){var
e=i.getSize();this._ctx.beginPath(),this._ctx.rect(i.min.x,i.min.y,e.x,e.y),this._ctx.clip()}this._drawing=!0;for(var
n=this._drawFirst;n;n=n.next)t=n.layer,(!i||t._pxBounds&&t._pxBounds.intersects(i))&&t._updatePath();this._drawing=!1,this._ctx.restore()},_updatePoly:function(t,i){if(this._drawing){var
e,n,o,s,r=t._parts,a=r.length,h=this._ctx;if(a){for(this._drawnLayers[t._leaflet_id]=t,h.beginPath(),e=0;e<a;e++){for(n=0,o=r[e].length;n<o;n++)s=r[e][n],h[n?"lineTo":"moveTo"](s.x,s.y);i&&h.closePath()}this._fillStroke(h,t)}}},_updateCircle:function(t){if(this._drawing&&!t._empty()){var
i=t._point,e=this._ctx,n=Math.max(Math.round(t._radius),1),o=(Math.max(Math.round(t._radiusY),1)||n)/n;this._drawnLayers[t._leaflet_id]=t,1!==o&&(e.save(),e.scale(1,o)),e.beginPath(),e.arc(i.x,i.y/o,n,0,2*Math.PI,!1),1!==o&&e.restore(),this._fillStroke(e,t)}},_fillStroke:function(t,i){var
e=i.options;e.fill&&(t.globalAlpha=e.fillOpacity,t.fillStyle=e.fillColor||e.color,t.fill(e.fillRule||"evenodd")),e.stroke&&0!==e.weight&&(t.setLineDash&&t.setLineDash(i.options&&i.options._dashArray||[]),t.globalAlpha=e.opacity,t.lineWidth=e.weight,t.strokeStyle=e.color,t.lineCap=e.lineCap,t.lineJoin=e.lineJoin,t.stroke())},_onClick:function(t){for(var
i,e,n=this._map.mouseEventToLayerPoint(t),o=this._drawFirst;o;o=o.next)(i=o.layer).options.interactive&&i._containsPoint(n)&&!this._map._draggableMoved(i)&&(e=i);e&&(zt(t),this._fireEvent([e],t))},_onMouseMove:function(t){if(this._map&&!this._map.dragging.moving()&&!this._map._animatingZoom){var
i=this._map.mouseEventToLayerPoint(t);this._handleMouseHover(t,i)}},_handleMouseOut:function(t){var
i=this._hoveredLayer;i&&(tt(this._container,"leaflet-interactive"),this._fireEvent([i],t,"mouseout"),this._hoveredLayer=null)},_handleMouseHover:function(t,i){for(var
e,n,o=this._drawFirst;o;o=o.next)(e=o.layer).options.interactive&&e._containsPoint(i)&&(n=e);n!==this._hoveredLayer&&(this._handleMouseOut(t),n&&(Q(this._container,"leaflet-interactive"),this._fireEvent([n],t,"mouseover"),this._hoveredLayer=n)),this._hoveredLayer&&this._fireEvent([this._hoveredLayer],t)},_fireEvent:function(t,i,e){this._map._fireDOMEvent(i,e||i.type,t)},_bringToFront:function(t){var
i=t._order,e=i.next,n=i.prev;e&&(e.prev=n,n?n.next=e:e&&(this._drawFirst=e),i.prev=this._drawLast,this._drawLast.next=i,i.next=null,this._drawLast=i,this._requestRedraw(t))},_bringToBack:function(t){var
i=t._order,e=i.next,n=i.prev;n&&(n.next=e,e?e.prev=n:n&&(this._drawLast=n),i.prev=null,i.next=this._drawFirst,this._drawFirst.prev=i,this._drawFirst=i,this._requestRedraw(t))}}),yn=function(){try{return
document.namespaces.add("lvml","urn:schemas-microsoft-com:vml"),function(t){return
document.createElement("<lvml:"+t+'
class="lvml">')}}catch(t){return function(t){return
document.createElement("<"+t+'
xmlns="urn:schemas-microsoft.com:vml"
class="lvml">')}}}(),xn={_initContainer:function(){this._container=G("div","leaflet-vml-container")},_update:function(){this._map._animatingZoom||(gn.prototype._update.call(this),this.fire("update"))},_initPath:function(t){var
i=t._container=yn("shape");Q(i,"leaflet-vml-shape
"+(this.options.className||"")),i.coordsize="1
1",t._path=yn("path"),i.appendChild(t._path),this._updateStyle(t),this._layers[n(t)]=t},_addPath:function(t){var
i=t._container;this._container.appendChild(i),t.options.interactive&&t.addInteractiveTarget(i)},_removePath:function(t){var
i=t._container;K(i),t.removeInteractiveTarget(i),delete
this._layers[n(t)]},_updateStyle:function(t){var
i=t._stroke,e=t._fill,n=t.options,o=t._container;o.stroked=!!n.stroke,o.filled=!!n.fill,n.stroke?(i||(i=t._stroke=yn("stroke")),o.appendChild(i),i.weight=n.weight+"px",i.color=n.color,i.opacity=n.opacity,n.dashArray?i.dashStyle=oi(n.dashArray)?n.dashArray.join("
"):n.dashArray.replace(/( *, *)/g,"
"):i.dashStyle="",i.endcap=n.lineCap.replace("butt","flat"),i.joinstyle=n.lineJoin):i&&(o.removeChild(i),t._stroke=null),n.fill?(e||(e=t._fill=yn("fill")),o.appendChild(e),e.color=n.fillColor||n.color,e.opacity=n.fillOpacity):e&&(o.removeChild(e),t._fill=null)},_updateCircle:function(t){var
i=t._point.round(),e=Math.round(t._radius),n=Math.round(t._radiusY||e);this._setPath(t,t._empty()?"M0
0":"AL "+i.x+","+i.y+"
"+e+","+n+"
0,23592600")},_setPath:function(t,i){t._path.v=i},_bringToFront:function(t){X(t._container)},_bringToBack:function(t){J(t._container)}},wn=$i?yn:E,Pn=gn.extend({getEvents:function(){var
t=gn.prototype.getEvents.call(this);return
t.zoomstart=this._onZoomStart,t},_initContainer:function(){this._container=wn("svg"),this._container.setAttribute("pointer-events","none"),this._rootGroup=wn("g"),this._container.appendChild(this._rootGroup)},_destroyContainer:function(){K(this._container),ft(this._container),delete
this._container,delete this._rootGroup,delete
this._svgSize},_onZoomStart:function(){this._update()},_update:function(){if(!this._map._animatingZoom||!this._bounds){gn.prototype._update.call(this);var
t=this._bounds,i=t.getSize(),e=this._container;this._svgSize&&this._svgSize.equals(i)||(this._svgSize=i,e.setAttribute("width",i.x),e.setAttribute("height",i.y)),at(e,t.min),e.setAttribute("viewBox",[t.min.x,t.min.y,i.x,i.y].join("
")),this.fire("update")}},_initPath:function(t){var
i=t._path=wn("path");t.options.className&&Q(i,t.options.className),t.options.interactive&&Q(i,"leaflet-interactive"),this._updateStyle(t),this._layers[n(t)]=t},_addPath:function(t){this._rootGroup||this._initContainer(),this._rootGroup.appendChild(t._path),t.addInteractiveTarget(t._path)},_removePath:function(t){K(t._path),t.removeInteractiveTarget(t._path),delete
this._layers[n(t)]},_updatePath:function(t){t._project(),t._update()},_updateStyle:function(t){var
i=t._path,e=t.options;i&&(e.stroke?(i.setAttribute("stroke",e.color),i.setAttribute("stroke-opacity",e.opacity),i.setAttribute("stroke-width",e.weight),i.setAttribute("stroke-linecap",e.lineCap),i.setAttribute("stroke-linejoin",e.lineJoin),e.dashArray?i.setAttribute("stroke-dasharray",e.dashArray):i.removeAttribute("stroke-dasharray"),e.dashOffset?i.setAttribute("stroke-dashoffset",e.dashOffset):i.removeAttribute("stroke-dashoffset")):i.setAttribute("stroke","none"),e.fill?(i.setAttribute("fill",e.fillColor||e.color),i.setAttribute("fill-opacity",e.fillOpacity),i.setAttribute("fill-rule",e.fillRule||"evenodd")):i.setAttribute("fill","none"))},_updatePoly:function(t,i){this._setPath(t,k(t._parts,i))},_updateCircle:function(t){var
i=t._point,e=Math.max(Math.round(t._radius),1),n="a"+e+","+(Math.max(Math.round(t._radiusY),1)||e)+"
0 1,0 ",o=t._empty()?"M0
0":"M"+(i.x-e)+","+i.y+n+2*e+",0
"+n+2*-e+",0
";this._setPath(t,o)},_setPath:function(t,i){t._path.setAttribute("d",i)},_bringToFront:function(t){X(t._path)},_bringToBack:function(t){J(t._path)}});$i&&Pn.include(xn),be.include({getRenderer:function(t){var
i=t.options.renderer||this._getPaneRenderer(t.options.pane)||this.options.renderer||this._renderer;return
i||(i=this._renderer=this._createRenderer()),this.hasLayer(i)||this.addLayer(i),i},_getPaneRenderer:function(t){if("overlayPane"===t||void
0===t)return!1;var i=this._paneRenderers[t];return void
0===i&&(i=this._createRenderer({pane:t}),this._paneRenderers[t]=i),i},_createRenderer:function(t){return
this.options.preferCanvas&&$t(t)||Qt(t)}});var
Ln=on.extend({initialize:function(t,i){on.prototype.initialize.call(this,this._boundsToLatLngs(t),i)},setBounds:function(t){return
this.setLatLngs(this._boundsToLatLngs(t))},_boundsToLatLngs:function(t){return
t=z(t),[t.getSouthWest(),t.getNorthWest(),t.getNorthEast(),t.getSouthEast()]}});Pn.create=wn,Pn.pointsToPath=k,sn.geometryToLayer=Ft,sn.coordsToLatLng=Ut,sn.coordsToLatLngs=Vt,sn.latLngToCoords=qt,sn.latLngsToCoords=Gt,sn.getFeature=Kt,sn.asFeature=Yt,be.mergeOptions({boxZoom:!0});var
bn=Ee.extend({initialize:function(t){this._map=t,this._container=t._container,this._pane=t._panes.overlayPane,this._resetStateTimeout=0,t.on("unload",this._destroy,this)},addHooks:function(){mt(this._container,"mousedown",this._onMouseDown,this)},removeHooks:function(){ft(this._container,"mousedown",this._onMouseDown,this)},moved:function(){return
this._moved},_destroy:function(){K(this._pane),delete
this._pane},_resetState:function(){this._resetStateTimeout=0,this._moved=!1},_clearDeferredResetState:function(){0!==this._resetStateTimeout&&(clearTimeout(this._resetStateTimeout),this._resetStateTimeout=0)},_onMouseDown:function(t){if(!t.shiftKey||1!==t.which&&1!==t.button)return!1;this._clearDeferredResetState(),this._resetState(),fi(),ut(),this._startPoint=this._map.mouseEventToContainerPoint(t),mt(document,{contextmenu:Lt,mousemove:this._onMouseMove,mouseup:this._onMouseUp,keydown:this._onKeyDown},this)},_onMouseMove:function(t){this._moved||(this._moved=!0,this._box=G("div","leaflet-zoom-box",this._container),Q(this._container,"leaflet-crosshair"),this._map.fire("boxzoomstart")),this._point=this._map.mouseEventToContainerPoint(t);var
i=new
P(this._point,this._startPoint),e=i.getSize();at(this._box,i.min),this._box.style.width=e.x+"px",this._box.style.height=e.y+"px"},_finish:function(){this._moved&&(K(this._box),tt(this._container,"leaflet-crosshair")),gi(),lt(),ft(document,{contextmenu:Lt,mousemove:this._onMouseMove,mouseup:this._onMouseUp,keydown:this._onKeyDown},this)},_onMouseUp:function(t){if((1===t.which||1===t.button)&&(this._finish(),this._moved)){this._clearDeferredResetState(),this._resetStateTimeout=setTimeout(e(this._resetState,this),0);var
i=new
T(this._map.containerPointToLatLng(this._startPoint),this._map.containerPointToLatLng(this._point));this._map.fitBounds(i).fire("boxzoomend",{boxZoomBounds:i})}},_onKeyDown:function(t){27===t.keyCode&&this._finish()}});be.addInitHook("addHandler","boxZoom",bn),be.mergeOptions({doubleClickZoom:!0});var
Tn=Ee.extend({addHooks:function(){this._map.on("dblclick",this._onDoubleClick,this)},removeHooks:function(){this._map.off("dblclick",this._onDoubleClick,this)},_onDoubleClick:function(t){var
i=this._map,e=i.getZoom(),n=i.options.zoomDelta,o=t.originalEvent.shiftKey?e-n:e+n;"center"===i.options.doubleClickZoom?i.setZoom(o):i.setZoomAround(t.containerPoint,o)}});be.addInitHook("addHandler","doubleClickZoom",Tn),be.mergeOptions({dragging:!0,inertia:!Mi,inertiaDeceleration:3400,inertiaMaxSpeed:1/0,easeLinearity:.2,worldCopyJump:!1,maxBoundsViscosity:0});var
zn=Ee.extend({addHooks:function(){if(!this._draggable){var
t=this._map;this._draggable=new
Re(t._mapPane,t._container),this._draggable.on({dragstart:this._onDragStart,drag:this._onDrag,dragend:this._onDragEnd},this),this._draggable.on("predrag",this._onPreDragLimit,this),t.options.worldCopyJump&&(this._draggable.on("predrag",this._onPreDragWrap,this),t.on("zoomend",this._onZoomEnd,this),t.whenReady(this._onZoomEnd,this))}Q(this._map._container,"leaflet-grab
leaflet-touch-drag"),this._draggable.enable(),this._positions=[],this._times=[]},removeHooks:function(){tt(this._map._container,"leaflet-grab"),tt(this._map._container,"leaflet-touch-drag"),this._draggable.disable()},moved:function(){return
this._draggable&&this._draggable._moved},moving:function(){return
this._draggable&&this._draggable._moving},_onDragStart:function(){var
t=this._map;if(t._stop(),this._map.options.maxBounds&&this._map.options.maxBoundsViscosity){var
i=z(this._map.options.maxBounds);this._offsetLimit=b(this._map.latLngToContainerPoint(i.getNorthWest()).multiplyBy(-1),this._map.latLngToContainerPoint(i.getSouthEast()).multiplyBy(-1).add(this._map.getSize())),this._viscosity=Math.min(1,Math.max(0,this._map.options.maxBoundsViscosity))}else
this._offsetLimit=null;t.fire("movestart").fire("dragstart"),t.options.inertia&&(this._positions=[],this._times=[])},_onDrag:function(t){if(this._map.options.inertia){var
i=this._lastTime=+new
Date,e=this._lastPos=this._draggable._absPos||this._draggable._newPos;this._positions.push(e),this._times.push(i),this._prunePositions(i)}this._map.fire("move",t).fire("drag",t)},_prunePositions:function(t){for(;this._positions.length>1&&t-this._times[0]>50;)this._positions.shift(),this._times.shift()},_onZoomEnd:function(){var
t=this._map.getSize().divideBy(2),i=this._map.latLngToLayerPoint([0,0]);this._initialWorldOffset=i.subtract(t).x,this._worldWidth=this._map.getPixelWorldBounds().getSize().x},_viscousLimit:function(t,i){return
t-(t-i)*this._viscosity},_onPreDragLimit:function(){if(this._viscosity&&this._offsetLimit){var
t=this._draggable._newPos.subtract(this._draggable._startPos),i=this._offsetLimit;t.x<i.min.x&&(t.x=this._viscousLimit(t.x,i.min.x)),t.y<i.min.y&&(t.y=this._viscousLimit(t.y,i.min.y)),t.x>i.max.x&&(t.x=this._viscousLimit(t.x,i.max.x)),t.y>i.max.y&&(t.y=this._viscousLimit(t.y,i.max.y)),this._draggable._newPos=this._draggable._startPos.add(t)}},_onPreDragWrap:function(){var
t=this._worldWidth,i=Math.round(t/2),e=this._initialWorldOffset,n=this._draggable._newPos.x,o=(n-i+e)%t+i-e,s=(n+i+e)%t-i-e,r=Math.abs(o+e)<Math.abs(s+e)?o:s;this._draggable._absPos=this._draggable._newPos.clone(),this._draggable._newPos.x=r},_onDragEnd:function(t){var
i=this._map,e=i.options,n=!e.inertia||this._times.length<2;if(i.fire("dragend",t),n)i.fire("moveend");else{this._prunePositions(+new
Date);var
o=this._lastPos.subtract(this._positions[0]),s=(this._lastTime-this._times[0])/1e3,r=e.easeLinearity,a=o.multiplyBy(r/s),h=a.distanceTo([0,0]),u=Math.min(e.inertiaMaxSpeed,h),l=a.multiplyBy(u/h),c=u/(e.inertiaDeceleration*r),_=l.multiplyBy(-c/2).round();_.x||_.y?(_=i._limitOffset(_,i.options.maxBounds),f(function(){i.panBy(_,{duration:c,easeLinearity:r,noMoveStart:!0,animate:!0})})):i.fire("moveend")}}});be.addInitHook("addHandler","dragging",zn),be.mergeOptions({keyboard:!0,keyboardPanDelta:80});var
Mn=Ee.extend({keyCodes:{left:[37],right:[39],down:[40],up:[38],zoomIn:[187,107,61,171],zoomOut:[189,109,54,173]},initialize:function(t){this._map=t,this._setPanDelta(t.options.keyboardPanDelta),this._setZoomDelta(t.options.zoomDelta)},addHooks:function(){var
t=this._map._container;t.tabIndex<=0&&(t.tabIndex="0"),mt(t,{focus:this._onFocus,blur:this._onBlur,mousedown:this._onMouseDown},this),this._map.on({focus:this._addHooks,blur:this._removeHooks},this)},removeHooks:function(){this._removeHooks(),ft(this._map._container,{focus:this._onFocus,blur:this._onBlur,mousedown:this._onMouseDown},this),this._map.off({focus:this._addHooks,blur:this._removeHooks},this)},_onMouseDown:function(){if(!this._focused){var
t=document.body,i=document.documentElement,e=t.scrollTop||i.scrollTop,n=t.scrollLeft||i.scrollLeft;this._map._container.focus(),window.scrollTo(n,e)}},_onFocus:function(){this._focused=!0,this._map.fire("focus")},_onBlur:function(){this._focused=!1,this._map.fire("blur")},_setPanDelta:function(t){var
i,e,n=this._panKeys={},o=this.keyCodes;for(i=0,e=o.left.length;i<e;i++)n[o.left[i]]=[-1*t,0];for(i=0,e=o.right.length;i<e;i++)n[o.right[i]]=[t,0];for(i=0,e=o.down.length;i<e;i++)n[o.down[i]]=[0,t];for(i=0,e=o.up.length;i<e;i++)n[o.up[i]]=[0,-1*t]},_setZoomDelta:function(t){var
i,e,n=this._zoomKeys={},o=this.keyCodes;for(i=0,e=o.zoomIn.length;i<e;i++)n[o.zoomIn[i]]=t;for(i=0,e=o.zoomOut.length;i<e;i++)n[o.zoomOut[i]]=-t},_addHooks:function(){mt(document,"keydown",this._onKeyDown,this)},_removeHooks:function(){ft(document,"keydown",this._onKeyDown,this)},_onKeyDown:function(t){if(!(t.altKey||t.ctrlKey||t.metaKey)){var
i,e=t.keyCode,n=this._map;if(e in
this._panKeys)n._panAnim&&n._panAnim._inProgress||(i=this._panKeys[e],t.shiftKey&&(i=w(i).multiplyBy(3)),n.panBy(i),n.options.maxBounds&&n.panInsideBounds(n.options.maxBounds));else
if(e in
this._zoomKeys)n.setZoom(n.getZoom()+(t.shiftKey?3:1)*this._zoomKeys[e]);else{if(27!==e||!n._popup||!n._popup.options.closeOnEscapeKey)return;n.closePopup()}Lt(t)}}});be.addInitHook("addHandler","keyboard",Mn),be.mergeOptions({scrollWheelZoom:!0,wheelDebounceTime:40,wheelPxPerZoomLevel:60});var
Cn=Ee.extend({addHooks:function(){mt(this._map._container,"mousewheel",this._onWheelScroll,this),this._delta=0},removeHooks:function(){ft(this._map._container,"mousewheel",this._onWheelScroll,this)},_onWheelScroll:function(t){var
i=Tt(t),n=this._map.options.wheelDebounceTime;this._delta+=i,this._lastMousePos=this._map.mouseEventToContainerPoint(t),this._startTime||(this._startTime=+new
Date);var o=Math.max(n-(+new
Date-this._startTime),0);clearTimeout(this._timer),this._timer=setTimeout(e(this._performZoom,this),o),Lt(t)},_performZoom:function(){var
t=this._map,i=t.getZoom(),e=this._map.options.zoomSnap||0;t._stop();var
n=this._delta/(4*this._map.options.wheelPxPerZoomLevel),o=4*Math.log(2/(1+Math.exp(-Math.abs(n))))/Math.LN2,s=e?Math.ceil(o/e)*e:o,r=t._limitZoom(i+(this._delta>0?s:-s))-i;this._delta=0,this._startTime=null,r&&("center"===t.options.scrollWheelZoom?t.setZoom(i+r):t.setZoomAround(this._lastMousePos,i+r))}});be.addInitHook("addHandler","scrollWheelZoom",Cn),be.mergeOptions({tap:!0,tapTolerance:15});var
Sn=Ee.extend({addHooks:function(){mt(this._map._container,"touchstart",this._onDown,this)},removeHooks:function(){ft(this._map._container,"touchstart",this._onDown,this)},_onDown:function(t){if(t.touches){if(Pt(t),this._fireClick=!0,t.touches.length>1)return
this._fireClick=!1,void clearTimeout(this._holdTimeout);var
i=t.touches[0],n=i.target;this._startPos=this._newPos=new
x(i.clientX,i.clientY),n.tagName&&"a"===n.tagName.toLowerCase()&&Q(n,"leaflet-active"),this._holdTimeout=setTimeout(e(function(){this._isTapValid()&&(this._fireClick=!1,this._onUp(),this._simulateEvent("contextmenu",i))},this),1e3),this._simulateEvent("mousedown",i),mt(document,{touchmove:this._onMove,touchend:this._onUp},this)}},_onUp:function(t){if(clearTimeout(this._holdTimeout),ft(document,{touchmove:this._onMove,touchend:this._onUp},this),this._fireClick&&t&&t.changedTouches){var
i=t.changedTouches[0],e=i.target;e&&e.tagName&&"a"===e.tagName.toLowerCase()&&tt(e,"leaflet-active"),this._simulateEvent("mouseup",i),this._isTapValid()&&this._simulateEvent("click",i)}},_isTapValid:function(){return
this._newPos.distanceTo(this._startPos)<=this._map.options.tapTolerance},_onMove:function(t){var
i=t.touches[0];this._newPos=new
x(i.clientX,i.clientY),this._simulateEvent("mousemove",i)},_simulateEvent:function(t,i){var
e=document.createEvent("MouseEvents");e._simulated=!0,i.target._simulatedClick=!0,e.initMouseEvent(t,!0,!0,window,1,i.screenX,i.screenY,i.clientX,i.clientY,!1,!1,!1,!1,0,null),i.target.dispatchEvent(e)}});qi&&!Vi&&be.addInitHook("addHandler","tap",Sn),be.mergeOptions({touchZoom:qi&&!Mi,bounceAtZoomLimits:!0});var
Zn=Ee.extend({addHooks:function(){Q(this._map._container,"leaflet-touch-zoom"),mt(this._map._container,"touchstart",this._onTouchStart,this)},removeHooks:function(){tt(this._map._container,"leaflet-touch-zoom"),ft(this._map._container,"touchstart",this._onTouchStart,this)},_onTouchStart:function(t){var
i=this._map;if(t.touches&&2===t.touches.length&&!i._animatingZoom&&!this._zooming){var
e=i.mouseEventToContainerPoint(t.touches[0]),n=i.mouseEventToContainerPoint(t.touches[1]);this._centerPoint=i.getSize()._divideBy(2),this._startLatLng=i.containerPointToLatLng(this._centerPoint),"center"!==i.options.touchZoom&&(this._pinchStartLatLng=i.containerPointToLatLng(e.add(n)._divideBy(2))),this._startDist=e.distanceTo(n),this._startZoom=i.getZoom(),this._moved=!1,this._zooming=!0,i._stop(),mt(document,"touchmove",this._onTouchMove,this),mt(document,"touchend",this._onTouchEnd,this),Pt(t)}},_onTouchMove:function(t){if(t.touches&&2===t.touches.length&&this._zooming){var
i=this._map,n=i.mouseEventToContainerPoint(t.touches[0]),o=i.mouseEventToContainerPoint(t.touches[1]),s=n.distanceTo(o)/this._startDist;if(this._zoom=i.getScaleZoom(s,this._startZoom),!i.options.bounceAtZoomLimits&&(this._zoom<i.getMinZoom()&&s<1||this._zoom>i.getMaxZoom()&&s>1)&&(this._zoom=i._limitZoom(this._zoom)),"center"===i.options.touchZoom){if(this._center=this._startLatLng,1===s)return}else{var
r=n._add(o)._divideBy(2)._subtract(this._centerPoint);if(1===s&&0===r.x&&0===r.y)return;this._center=i.unproject(i.project(this._pinchStartLatLng,this._zoom).subtract(r),this._zoom)}this._moved||(i._moveStart(!0,!1),this._moved=!0),g(this._animRequest);var
a=e(i._move,i,this._center,this._zoom,{pinch:!0,round:!1});this._animRequest=f(a,this,!0),Pt(t)}},_onTouchEnd:function(){this._moved&&this._zooming?(this._zooming=!1,g(this._animRequest),ft(document,"touchmove",this._onTouchMove),ft(document,"touchend",this._onTouchEnd),this._map.options.zoomAnimation?this._map._animateZoom(this._center,this._map._limitZoom(this._zoom),!0,this._map.options.zoomSnap):this._map._resetView(this._center,this._map._limitZoom(this._zoom))):this._zooming=!1}});be.addInitHook("addHandler","touchZoom",Zn),be.BoxZoom=bn,be.DoubleClickZoom=Tn,be.Drag=zn,be.Keyboard=Mn,be.ScrollWheelZoom=Cn,be.Tap=Sn,be.TouchZoom=Zn,Object.freeze=ti,t.version="1.3.4+HEAD.0e566b2",t.Control=Te,t.control=ze,t.Browser=Qi,t.Evented=ci,t.Mixin=Ae,t.Util=ui,t.Class=v,t.Handler=Ee,t.extend=i,t.bind=e,t.stamp=n,t.setOptions=l,t.DomEvent=Pe,t.DomUtil=ve,t.PosAnimation=Le,t.Draggable=Re,t.LineUtil=Ne,t.PolyUtil=De,t.Point=x,t.point=w,t.Bounds=P,t.bounds=b,t.Transformation=S,t.transformation=Z,t.Projection=He,t.LatLng=M,t.latLng=C,t.LatLngBounds=T,t.latLngBounds=z,t.CRS=di,t.GeoJSON=sn,t.geoJSON=Xt,t.geoJson=an,t.Layer=qe,t.LayerGroup=Ge,t.layerGroup=function(t,i){return
new Ge(t,i)},t.FeatureGroup=Ke,t.featureGroup=function(t){return new
Ke(t)},t.ImageOverlay=hn,t.imageOverlay=function(t,i,e){return new
hn(t,i,e)},t.VideoOverlay=un,t.videoOverlay=function(t,i,e){return new
un(t,i,e)},t.DivOverlay=ln,t.Popup=cn,t.popup=function(t,i){return new
cn(t,i)},t.Tooltip=_n,t.tooltip=function(t,i){return new
_n(t,i)},t.Icon=Ye,t.icon=function(t){return new
Ye(t)},t.DivIcon=dn,t.divIcon=function(t){return new
dn(t)},t.Marker=$e,t.marker=function(t,i){return new
$e(t,i)},t.TileLayer=mn,t.tileLayer=Jt,t.GridLayer=pn,t.gridLayer=function(t){return
new
pn(t)},t.SVG=Pn,t.svg=Qt,t.Renderer=gn,t.Canvas=vn,t.canvas=$t,t.Path=Qe,t.CircleMarker=tn,t.circleMarker=function(t,i){return
new tn(t,i)},t.Circle=en,t.circle=function(t,i,e){return new
en(t,i,e)},t.Polyline=nn,t.polyline=function(t,i){return new
nn(t,i)},t.Polygon=on,t.polygon=function(t,i){return new
on(t,i)},t.Rectangle=Ln,t.rectangle=function(t,i){return new
Ln(t,i)},t.Map=be,t.map=function(t,i){return new be(t,i)};var
En=window.L;t.noConflict=function(){return window.L=En,this},window.L=t});
PK�{�[�TsV�V�js/otree.jsnu�[���/*
oTree : Obscurelighty Project ( http://www.obscurelighty.com/ )
Author: Jerome GLATIGNY <jerome@obscurelighty.com>
Copyright (C) 2010-2020 Jerome GLATIGNY
This file is part of Obscurelighty.
Obscurelighty 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.
Obscurelighty 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 Obscurelighty. If not, see
<http://www.gnu.org/licenses/>.
The open source license for Obscurelighty and its modules permits you to
use the
software at no charge under the condition that if you use in an
application you
redistribute, the complete source code for your application must be
available and
freely redistributable under reasonable conditions. If you do not want to
release the
source code for your application, you may purchase a proprietary license
from his author.
*/
/** oTree
* version: 0.9.10
* release date: 2017-03-09
*/
(function(){
window.oTrees = {};
/** oNode
* @param id The identifier number
* @param pid The parent identifier number
* @param state The node State
* 0 - final node
* 1 - directory node closed
* 2 - directory node open
* 3 - directory node dynamic (closed)
* 4 - empty directory node
* 5 - root final node
* @param name The displayed name
* @param value The internal value for the node
* @param url The link url (href)
* @param icon The overloaded icon
*/
var oNode = function(id, pid, state, name, value, url, icon, checked,
noselection) {
var t = this;
t.id = id;
t.pid = pid;
t.state = state;
t.name = name;
t.value = value;
t.url = url;
t.checked = checked || false;
t.noselection = noselection || 0;
t._isLast = -1;
t.children = [];
t.icon = icon || null;
};
oNode.prototype = {
/** Add a Child
*/
add: function(id) {
this.children[this.children.length] = id;
},
/** Remove a Child
*/
rem: function(id) {
var t=this,f=false;
for(var i = 0; i < t.children.length; i++) {
if(f == true)
t.children[i-1] = t.children[i];
else if(t.children[i] == id)
f = true;
}
if(f == true)
t.children.splice(t.children.length-1, 1);
}
};
window.oNode = oNode;
/** oTree
* @param id
* @param conf
* @param callbackFct
* @param data
* @param render
*/
var oTree = function(id, conf, callbackFct, data, render) {
if(window.oTrees[id])
window.oTrees[id].destroy();
var t = this;
if(!conf) conf = {};
t.config = {
rootImg: conf.rootImg ||
'/media/com_hikamarket/images/otree/',
useSelection: (conf.useSelection === undefined) || conf.useSelection,
checkbox: conf.checkbox || false,
tricheckbox: conf.tricheckbox || false,
showLoading: conf.showLoading || false,
loadingText: conf.loadingText || ''
};
t.icon = {
loading : 'loading.gif',
folder : 'folder.gif',
folderOpen : 'folderopen.gif',
node : 'page.gif',
line : 'line.gif',
join : 'join.gif',
joinBottom : 'joinbottom.gif',
plus : 'plus.gif',
plusBottom : 'plusbottom.gif',
minus : 'minus.gif',
minusBottom : 'minusbottom.gif',
option : 'option.gif'
};
t.lNodes = [];
t.tmp = {
trichecks: []
};
t.selectedNode = null;
t.selectedFound = false;
t.written = false;
t.lNodes[0] = new oNode(0,-1);
t.nbRemovedNodes = 0;
t.iconWidth = 18;
t.id = id;
t.callbackFct = callbackFct;
t.callbackSelection = null;
t.callbackCheck = null;
window.oTrees[id] = t;
if(data) t.load(data);
if(render) t.render(render);
};
oTree.prototype = {
/** Destroy an oTree instance
*/
destroy: function() {
var t = this;
window.oTrees[t.id] = null;
t.icon = null;
t.config = null;
t.lNodes = null;
t.callbackFct = null;
t.callbackSelection = null;
t.loadingNode = null;
t.nbRemovedNodes = 0;
e = document.getElementById(t.id + '_otree');
if(!e)
e = document.getElementById(t.id);
if(e)
e.innerHTML = '';
t.id = null;
},
/** Add a new Icon in the configuration
* @param name
* @param url
*/
addIcon: function(name, url) {
this.icon[name] = url;
},
/** Create a new Node
* @param pid
* @param state
* @param name
* @param value
* @param url
* @param icon
* @return id
*/
add: function(pid, state, name, value, url, icon, checked, noselection)
{
var t=this,id=0;
if(!t.lNodes[pid])
return -1;
if(t.nbRemovedNodes == 0) {
id = t.lNodes.length;
} else {
for(var i = t.lNodes.length; i >= 1; i--) {
if(t.lNodes[i] == null) {
id = i;
i = 0;
t.nbRemovedNodes--;
break;
}
}
}
t.lNodes[id] = new oNode(id, pid, state, name, value, url, icon,
checked, noselection);
t.lNodes[pid].add(id);
return id;
},
/** Load a serialized tree
* @param data
* @param pid
*/
load: function(data, pid) {
if(typeof(data) != "object") return;
if(typeof(pid) == "undefined") pid = 0;
var nId = 0, i, l = data.length;
for(var id = 0; id < l; id++) {
if(typeof(data[id]) == "object" && data[id]) {
i = data[id];
nId = this.add(pid, i.status, i.name, i.value, i.url, i.icon,
i.checked, i.noselection);
if(i.data) {
this.load(i.data, nId);
}
}
}
},
/** Create a new Node and insert it for a specific identifier
* @param id
* @param pid
* @param state
* @param name
* @param value
* @param url
* @param icon
*/
ins: function(id, pid, state, name, value, url, icon, checked,
noselection) {
if(!this.lNodes[id]) {
this.lNodes[id] = new oNode(id, pid, state, name, value, url, icon,
checked, noselection);
this.lNodes[pid].add(id);
}
},
/** Insert a Node
* @param node
*/
insertNode: function(node) {
this.lNodes[node.id] = node;
this.lNodes[node.pid].add(node.id);
},
/** Set a Node.
* like "insertNode" but does not create the link with the
parent.
* @param node
*/
setNode: function(node) {
this.lNodes[node.id] = node;
},
/** Move a Node
* @param node
* @param dest
*/
moveNode: function(node,dest) {
var t = this;
if(typeof(node) == "number") node = t.get(node);
if(typeof(dest) == "number") dest = t.get(dest);
var old = t.lNodes[node.pid];
if(old) {
old.rem(node.id);
dest.add(node.id);
node.pid = dest.id;
t.update(old);
t.update(dest);
}
},
/** Remove a Node
* @param node The node to destroy (Node Object or Node Id)
* @param update Call an update on his parent or not
* @param rec Do not pass this parameter which is used for recursivity
*/
rem: function(node,update,rec) {
var t=this;
if(typeof(node) == "number") node = t.get(node);
if(typeof(update) == "undefined") update = true;
var p = t.get(node.pid);
if(node && node.children.length > 0) {
var o;
for(var i = node.children.length - 1; i >= 0; i--) {
o = node.children[i];
t.rem(o, false, true);
t.lNodes[o] = null;
}
node.children = [];
}
if(!rec) {
var id = node.id;
if(p) p.rem(id);
t.lNodes[id] = null;
}
t.nbRemovedNodes++;
if(update && p)
t.update(p);
},
/** Update a Node
* This function will call a "render"
* @param node The node to update (Node Object or Node Id)
* @return boolean
*/
update: function(node) {
if(node) {
if(typeof(node) == "number") node = this.get(node);
return this.render(this.id + '_d' + node.id, node.id);
}
return this.render();
},
/** Render the tree or just a part of it
* @param dest The render target (HTML Object or name of its ID)
* @param start The Node Id for the render root
* @return boolean
*/
render: function(dest, start) {
var t = this, d = document, str = '', n;
if(typeof(start) == "number")
n = t.lNodes[start];
else
n = t.lNodes[0];
t.processLast();
t.tmp.trichecks = [];
if(t.written == true || dest) {
if(typeof(dest) == "boolean" || !dest) dest = t.id;
if(t.written == false) {
t.written = true;
t.id = dest;
}
str = t.rnodes(n);
var e = d.getElementById(dest + '_otree');
if(!e) e = d.getElementById(dest);
if(!e) return false;
e.innerHTML = str;
} else {
str = '<div id="' + t.id + '_otree"
class="oTree">' + t.rnodes(n) +
'</div>';
d.write(str);
t.written = true;
}
if(t.config.tricheckbox && t.tmp.trichecks.length > 0) {
var id, c;
for(var i = t.tmp.trichecks.length - 1; i >= 0; i--) {
id = t.tmp.trichecks[i];
c = d.getElementById(t.id+'_c'+id);
if(c)
c.indeterminate = true;
}
}
t.tmp.trichecks = [];
return true;
},
/** Internal function
*/
rnodes: function(pNode) {
var t=this,str = '';
if(!pNode)
return str;
for(var i = 0; i < pNode.children.length; i++) {
var n = pNode.children[i];
if(t.lNodes[n])
str += t.rnode(t.lNodes[n]);
}
return str;
},
/** Internal function
*/
rnode: function(node) {
var t=this,str = '<div class="oTreeNode">',
style = '', ret = '', toFind = node.pid, found = true;
if(toFind > 0) {
var white = 0;
while(found) {
found = false;
if(toFind > 0 && toFind < t.lNodes.length &&
t.lNodes[toFind]) {
if(t.lNodes[toFind]._isLast == -1)
t.lNodes[toFind]._isLast = t.isLast(t.lNodes[toFind])?1:0;
if(t.lNodes[toFind]._isLast == 1) {
white++;
if(white == 6) {
ret = '<div
class="e'+white+'"></div>' + ret;
white = 0;
}
} else {
if(white > 0)
ret = '<div
class="e'+white+'"></div>' + ret;
white = 0;
ret = '<img src="' + t.config.rootImg +
t.icon.line + '" alt=""/>' + ret;
}
found = true;
toFind = t.lNodes[toFind].pid;
}
}
if(white > 0)
ret = '<div
class="e'+white+'"></div>' + ret;
}
str += ret;
// Cursor
var img, last = (node._isLast == 1);
if(node.state == 0 || node.state == 4) {
img = t.icon.join;
if(last) img = t.icon.joinBottom;
str += '<img src="' + t.config.rootImg + img +
'" alt=""/>';
} else if(node.state == 1 || node.state == 3) {
img = t.icon.plus;
if(last) img = t.icon.plusBottom;
str += '<a href="#"
onclick="window.oTrees.' + t.id + '.s(' + node.id +
');return false;"><img
id="'+t.id+'_j'+node.id+'" src="' +
t.config.rootImg + img + '"
alt=""/></a>';
} else if(node.state == 2) {
img = t.icon.minus;
if(last) img = t.icon.minusBottom;
str += '<a href="#"
onclick="window.oTrees.' + t.id + '.s(' + node.id +
');return false;"><img
id="'+t.id+'_j'+node.id+'" src="' +
t.config.rootImg + img + '"
alt=""/></a>';
}
if(t.config.checkbox && !node.noselection) {
var attr = '', chkName = t.config.checkbox;
if(typeof(chkName) == "string") {
if(chkName == "-")
chkName = "";
else if(chkName.substring(-1) != ']')
chkName += '[]';
} else
chkName = t.id+'[]';
if(node.checked) {
if(t.config.tricheckbox && node.checked === 2)
t.tmp.trichecks[t.tmp.trichecks.length] = node.id;
else
attr = ' checked="checked"';
}
str += '<input type="checkbox"
id="'+t.id+'_c'+node.id+'"
onchange="window.oTrees.' + t.id + '.chk(' + node.id +
',this.checked);" name="' + chkName + '"
value="' + node.value + '"' + attr +
'/>';
}
// Icon
str += '<img id="' + t.id + '_i' + node.id +
'" alt="" src="' + t.config.rootImg;
var name = node.name;
if(t.config.useSelection && node.url)
name = '<a
id="'+t.id+'_s'+node.id+'"
class="node" href="' + node.url + '"
onclick="window.oTrees.' + t.id + '.sel(' + node.id +
');">' + node.name + '</a>';
else if(node.url)
name = '<a
id="'+t.id+'_s'+node.id+'"
class="node" href="' + node.url +
'">' + node.name + '</a>';
else if((t.config.checkbox || t.config.useSelection) &&
!node.noselection)
name = '<a
id="'+t.id+'_s'+node.id+'"
class="node" href="#"
onclick="window.oTrees.' + t.id + '.sel(' + node.id +
');return false;">' + node.name +
'</a>';
else
name = '<span class="node">' + node.name +
'</span>';
if(node.state == 0 || node.state == 5) {
if(node.icon == null)
str += t.icon.node + '"/>' + name;
else
str += t.icon[node.icon] + '"/>' + name;
} else if(node.state == 1 || node.state == 3 || node.state == 4) {
if(node.icon == null)
str += t.icon.folder + '"/>' + name;
else
str += t.icon[node.icon] + '"/>' + name;
style = 'style="display:none;"';
} else if(node.state == 2) {
if(node.icon == null)
str += t.icon.folderOpen + '"/>' + name;
else
str += t.icon[node.icon] + '"/>' + name;
}
str += '</div>';
if(node.state > 0)
str += '<div id="' + t.id + '_d' + node.id
+ '" class="clip" ' + style + '>' +
t.rnodes(node) + '</div>';
return str;
},
/** Switch Node
* Open or Close a Directory Node
* @param node The node to switch (Node Object or Node Id)
*/
s: function(node) {
if(typeof(node) == "number") node = this.get(node);
if(node.state == 2)
this.c(node);
else
this.o(node);
},
/** Open a Node
* @param node The node to open (Node Object or Node Id)
*/
o: function(node) {
var t = this;
if(typeof(node) == "number") node = t.get(node);
// Closed Or Dynamic
if(node && (node.state == 1 || node.state == 3)) {
e = document.getElementById(t.id + '_d' + node.id);
e.style.display = '';
// Dynamic
if(node.state == 3) {
node.children = [];
if(t.config.showLoading) {
if(!t.loadingNode) {
t.loadingNode = new
oNode(0,node.id,0,t.config.loadingText,null,null,'loading');
t.loadingNode._isLast = 1;
} else
t.loadingNode.pid = node.id;
e.innerHTML = t.rnode(t.loadingNode);
}
if(t.callbackFct)
t.callbackFct(this, node, e);
}
if(node.icon == null) {
e = document.getElementById(t.id + '_i' + node.id);
e.src = t.config.rootImg + t.icon.folderOpen;
}
e = document.getElementById(t.id + '_j' + node.id);
if(t.isLast(node))
e.src = t.config.rootImg + t.icon.minusBottom;
else
e.src = t.config.rootImg + t.icon.minus;
node.state = 2;
}
},
/** Close a Node
* @param node The node to close (Node Object or Node Id)
*/
c: function(node) {
if(typeof(node) == "number") node = this.get(node);
// Open
if(node && node.state == 2) {
var t=this,d=document;
e = d.getElementById(t.id + '_d' + node.id);
e.style.display = 'none';
if(node.icon == null) {
e = d.getElementById(t.id + '_i' + node.id);
e.src = t.config.rootImg + t.icon.folder;
}
e = d.getElementById(t.id + '_j' + node.id);
if(t.isLast(node))
e.src = t.config.rootImg + t.icon.plusBottom;
else
e.src = t.config.rootImg + t.icon.plus;
node.state = 1;
}
},
/** Open To
* @param node The node to open to... (Node Object or Node Id)
*/
oTo: function(node) {
if(typeof(node) == "number") node = this.get(node);
if(node) {
var t=this,toOpId = node.pid;
while(toOpId > 0 && toOpId < t.lNodes.length) {
this.o(t.lNodes[toOpId]);
toOpId = t.lNodes[toOpId].pid;
}
}
},
/** Make a Selection
* @param id The Node Id to select (could be a node object)
*/
sel: function(id) {
if(id === null) return;
if(typeof(id) != "number") id = id.id;
var t=this,d=document,cn = t.lNodes[id];
if(!cn) return;
if(!t.config.useSelection && !t.config.checkbox) return;
if(t.config.checkbox) {
t.chk(cn,-1);
}
if(!t.config.useSelection) return;
if(t.selectedNode != id) {
var e, previous = t.selectedNode;
if(t.selectedNode || t.selectedNode == 0) {
e = d.getElementById(t.id + '_s' + t.selectedNode);
if(e)
e.className = "node";
}
e = d.getElementById(t.id + '_s' + id);
if(e)
e.className = "nodeSel";
t.selectedNode = id;
if(t.callbackSelection)
t.callbackSelection(this, t.selectedNode, previous);
} else {
var e = d.getElementById(t.id + '_s' + id);
if(e)
e.className = "nodeSel";
}
},
/**
*
*/
chk: function(id, value, call, fromP) {
if(id === null) return;
if(typeof(id) == "object") id = id.id;
if(!this.config.checkbox) return;
var t=this,d=document,cn=t.lNodes[id];
if(!cn) return;
var oldState = cn.checked;
if(typeof(value) == "number" && value < 0) {
if(cn.checked == 2)
cn.checked = true;
else
cn.checked = !cn.checked;
} else
cn.checked = value;
var e = d.getElementById(t.id+'_c'+id);
if(e) {
e.checked = cn.checked;
if(!t.config.tricheckbox)
e.indeterminate = false;
if(t.config.tricheckbox && oldState != cn.checked) {
e.indeterminate = false;
if(value === 2) {
e.checked = false;
e.indeterminate = true;
cn.checked = 2;
} else {
// Check/uncheck all children
for(var i = cn.children.length - 1; i >= 0; i--) {
t.chk(cn.children[i], cn.checked, call, true);
}
}
if(fromP === undefined) {
// Check/uncheck parent if necessary
var p = t.lNodes[cn.pid], o = null, cpt = 0;
if(p) {
for(var i = p.children.length - 1; i >= 0; i--) {
o = t.lNodes[p.children[i]];
if(o && o.checked && o.checked === true) {
cpt++;
}
}
if(cpt == p.children.length || cpt == 0) {
t.chk(p, cn.checked, call);
} else {
t.chk(p, 2, call);
}
}
}
}
}
if((call === undefined || call === null || call) &&
t.callbackCheck)
t.callbackCheck(this, id, value);
},
/**
*
*/
chks: function(ids,call,useId) {
var t = this;
if(!t.config.checkbox) return;
if(useId === undefined) useId = true;
if(call === undefined) call = false;
if(typeof(ids) == "string") {
// Check all
if(ids == "*") {
for(var i = 0; i < t.lNodes.length; i++) {
if(t.lNodes[i] && !t.lNodes[i].checked)
t.chk(t.lNodes[i],true,call);
}
return;
}
ids = ids.split(",");
}
for(var i = 0; i < t.lNodes.length; i++) {
if(t.lNodes[i] && t.lNodes[i].checked)
t.chk(t.lNodes[i],false,call);
}
if(useId) {
for(var j = ids.length -1; j >= 0; j--) {
var v = parseInt(ids[j]);
t.chk(v,true,call);
}
} else {
for(var j = ids.length -1; j >= 0; j--) {
for(var i = 0; i < t.lNodes.length; i++) {
if(t.lNodes[i] && t.lNodes[i].value == ids[j]) {
t.chk(i,true,call);
break;
}
}
}
}
},
/**
*
*/
getChk: function() {
var t = this, ret = [];
if(!t.config.checkbox) return false;
for(var i = 0; i < t.lNodes.length; i++) {
if(t.lNodes[i] && t.lNodes[i].checked &&
t.lNodes[i].checked === true && t.lNodes[i].value)
ret.push(t.lNodes[i].value);
}
return ret;
},
/** Find a Node
* @param value The value to found
* @param mode The mode for node state
* [null] - all nodes
* 0 - Final nodes
* 1 - Directory nodes
* @return the first node object which matched
*/
find: function(value, mode) {
if(typeof(mode) == "undefined") mode = -1;
var t = this;
for(var i = 0; i < t.lNodes.length; i++) {
if(t.lNodes[i] && t.lNodes[i].value == value) {
if(mode == -1)
return t.lNodes[i];
if(mode == 0 && (t.lNodes[i].state == 0 || t.lNodes[i].state
== 5))
return t.lNodes[i];
if(mode == 1 && t.lNodes[i].state >= 1 &&
t.lNodes[i].state != 5)
return t.lNodes[i];
}
}
return null;
},
/** Empty a directory
* @param node The node to empty (Node Object or Node Id)
*/
emptyDirectory: function(node) {
if(typeof(node) == "number") node = this.get(node);
if(node.state == 1 || node.state == 2 || node.state == 3) {
var t = this, d = document,
e = d.getElementById(t.id + '_j' + node.id),
a = e.parentNode;
var src = t.config.rootImg + t.icon.join;
if(node._isLast == 1)
src = t.config.rootImg + t.icon.joinBottom;
a.parentNode.replaceChild(e, a);
e.src = src;
node.state = 4;
if(node.icon == null) {
e = d.getElementById(t.id + '_i' + node.id);
if(!e) return;
e.src = t.config.rootImg + t.icon.folder;
}
e = d.getElementById(t.id + '_d' + node.id);
if(!e) return;
e.style.display = 'none';
e.innerHTML = '';
if(node && node.children.length > 0) {
var o;
for(var i = node.children.length - 1; i >= 0; i--) {
o = node.children[i];
t.rem(o, false);
t.lNodes[o] = null;
}
}
node.children = [];
}
},
/** Get a node
* @param id The node id
* @return the node object
*/
get: function(id) {
if(id >= 0 && id < this.lNodes.length &&
this.lNodes[id]) {
try {
return this.lNodes[id];
} catch(e) {
return null;
}
}
return null;
},
/** Internal function
*/
isLast: function(node) {
try {
var pChildren = this.lNodes[node.pid].children;
return (pChildren[pChildren.length - 1] == node.id);
} catch(e) {}
return true;
},
/** Internal function
* currently unused. Deprecated?
*/
cleanLast: function() {
for(var i = this.lNodes.length - 1; i >= 0; i--)
this.lNodes[i]._isLast = -1;
},
/** Internal function
*/
processLast: function() {
var t=this,n;
for(var i = t.lNodes.length - 1; i >= 0; i--) {
if(t.lNodes[i] && t.lNodes[i].children.length > 0) {
n = t.lNodes[i].children[ t.lNodes[i].children.length - 1 ];
t.lNodes[n]._isLast = 1;
for(var j = t.lNodes[i].children.length - 2; j >= 0; j--) {
t.lNodes[ t.lNodes[i].children[ j ]]._isLast = 0;
}
}
}
},
/**
*
*/
deep: function(node, max) {
if(typeof(node) == "number") node = this.get(node);
if(node == null) return -1;
if(typeof(max) == "undefined") max = 100;
var ret = 0, toFind = node.pid;
if(toFind == -1)
return ret;
while(toFind > 0 && this.lNodes[toFind]) {
ret++;
toFind = this.lNodes[toFind].pid;
if(ret >= max)
return ret;
}
return ret;
},
/**
*
*/
search: function(text) {
var t=this,d=document,r=null,e=null,pid=0;
if(text) {
r = new RegExp(text,"i");
for(var i = 0; i < t.lNodes.length; i++) {
if(t.lNodes[i])
t.lNodes[i].search = -1;
}
for(var i = 0; i < t.lNodes.length; i++) {
if(t.lNodes[i]) {
if(r.test(t.lNodes[i].name)) {
if(t.lNodes[i].search <= 0) {
t.lNodes[i].search = 2;
pid = t.lNodes[i].pid;
while(pid > 0 && t.lNodes[pid] &&
t.lNodes[pid].search <= 0) {
t.lNodes[pid].search = 1;
pid = t.lNodes[pid].pid;
}
} else {
t.lNodes[i].search = 2;
}
} else {
if(t.lNodes[i].search < 0)
t.lNodes[i].search = 0;
}
}
}
}
for(var i = 0; i < t.lNodes.length; i++) {
if(t.lNodes[i]) {
e = d.getElementById(t.id + '_s' + t.lNodes[i].id);
if(!text) {
t.lNodes[i].search = null;
if(e) {
e.parentNode.style.display = '';
e.className = "node";
}
} else {
if(e) {
e.className = "node";
if(t.lNodes[i].search > 0) {
e.parentNode.style.display = '';
if(t.lNodes[i].search > 1)
e.className = "nodeSel";
} else
e.parentNode.style.display = 'none';
}
}
}
}
}
};
oTree.version = 20160301;
if(!window.oTree || window.oTree.version < oTree.version)
window.oTree = oTree;
})();
/** oList
* version: 0.1.3
* release date: 2016-03-01
*/
(function(){
window.oLists = [];
/** oTree
* @param id
* @param conf
* @param callbackFct
* @param data
* @param render
*/
var oList = function(id, conf, callbackFct, data, render) {
if(window.oLists[id])
window.oLists[id].destroy();
var t = this;
if(!conf) conf = {};
t.config = {
hideBlocked: conf.hideBlocked || false,
table: conf.table || false,
defaultColumn: conf.defaultColumn || false,
displayFormat: conf.displayFormat || false,
gradientLoad: conf.gradientLoad || false
};
t.written = false;
t.id = id;
t.callbackFct = callbackFct;
t.callbackSelection = null;
t.callbackScroll = null;
t.highlighted = null;
t._fct = {};
window.oLists[id] = t;
if(data) t.load(data);
if(render) t.render(render);
};
oList.prototype = {
/** Destroy an oTree instance
*/
destroy: function() {
var t = this, d = document;
window.oLists[t.id] = null;
t.config = null;
t.lData = [];
t.callbackFct = null;
t.callbackSelection = null;
t.callbackScroll = null;
t.highlighted = null;
t.deinitScroll();
t._fct = {};
e = d.getElementById(t.id + '_olist');
if(!e) e = d.getElementById(t.id);
if(e) e.innerHTML = '';
t.id = null;
},
/** Load a serialized list
* @param data
* @param pid
*/
load: function(data) {
if(typeof(data) != "object")
return false;
var t = this;
t.lData = [];
for(var d in data) {
if(data.hasOwnProperty(d))
t.lData[ t.lData.length ] = t.getData(d, data[d]);
}
t.sort();
t.highlighted = null;
return (t.lData.length > 0);
},
/**
*
*/
add: function(key, name) {
this.lData[ this.lData.length ] = this.getData(key, name);
},
/**
*
*/
getData: function(key, data) {
var t = this, o = {key: key};
if(!t.config.table) {
o.name = data;
return o;
}
for(var h in t.config.table) {
if(!t.config.table.hasOwnProperty(h))
continue;
o[h] = '';
if(data[h])
o[h] = data[h];
}
return o;
},
/**
*
*/
sort: function(byKey) {
var t = this;
if(!t.lData || t.lData.length == 0)
return false;
if(byKey) {
t.lData.sort(function(a,b){
var x = a.key.toLowerCase(), y = b.key.toLowerCase();
return x < y ? -1 : ((x > y) ? 1 : 0);
});
return true;
}
if(!t.config.table) {
t.lData.sort(function(a,b){
var x = a.name.toLowerCase(), y = b.name.toLowerCase();
return x < y ? -1 : ((x > y) ? 1 : 0);
});
return true;
}
return false;
},
/** Render the tree or just a part of it
* @param dest The render target (HTML Object or name of its ID)
* @param start The Node Id for the render root
* @return boolean
*/
render: function(dest) {
var t = this, d = document, str = '';
if(t.written == true || dest) {
if(typeof(dest) == "boolean" || !dest) dest = t.id;
if(t.written == false) {
t.written = true;
t.id = dest;
}
str = (!t.config.table) ? t.rlist() : t.rtable();
var e = d.getElementById(dest + '_olist');
if(!e) e = d.getElementById(dest);
if(!e) return false;
e.innerHTML = str;
} else {
str = '<div id="' + t.id + '_olist"
class="oList">' + ((!t.config.table) ? t.rlist() :
t.rtable()) + '</div>';
d.write(str);
t.written = true;
}
if(t.config.gradientLoad)
t.initScroll();
return true;
},
rlist: function() {
var t = this, l = t.lData.length, n = null, str =
'<ul>';
for(var i = 0; i < l; i++) {
n = t.lData[i];
if(n && !n.hidden && (!n.block ||
!t.config.hideBlocked)) {
if(t.highlighted === null || t.highlighted != i)
str += '<li>';
else
str += '<li class="oListSelected">';
if(n.block)
str += '<span>' + (n.display ? n.display : n.name) +
'</span></li>';
else
str += '<a href="#"
onclick="window.oLists.' + t.id + '.sel(' + i +
');return false;">' + (n.display ? n.display : n.name) +
'</a></li>';
}
}
if(l > 0 && t.config.gradientLoad)
str += '<li
class="oListLoadMore"><span></span></li>';
str += '<ul>';
return str;
},
rtable: function() {
var t = this, l = t.lData.length, n = null, str = '<table
class="oListTable"><thead><tr>', extraClass =
'';
for(var h in t.config.table) {
if(!t.config.table.hasOwnProperty(h))
continue;
str +=
'<th>'+t.config.table[h]+'</th>';
}
str += '</tr></thead><tbody>';
for(var i = 0; i < l; i++) {
n = t.lData[i];
if(n && !n.hidden && (!n.block ||
!t.config.hideBlocked)) {
extraClass = (t.highlighted === null || t.highlighted != i) ?
'' : ' oListSelected';
if(n.block)
str += '<tr class="oListBlocked">';
else
str += '<tr onclick="window.oLists.' + t.id +
'.sel(' + i + ');return false;"
class="oListLine'+extraClass+'">';
for(var h in t.config.table) {
if(!t.config.table.hasOwnProperty(h))
continue;
str += '<td>' + n[h] + '</td>';
}
str += '</tr>';
}
}
if(l > 0 && t.config.gradientLoad)
str += '<tr class="oListBlocked
oListLoadMore"><td
colspan="'+t.config.table.length+'"></td></tr>';
str += '</tbody></table>';
return str;
},
initScroll: function(fct) {
var t = this;
if(!t.config.gradientLoad || t._fct['scroll'])
return;
if(!t.callbackScroll && fct !== undefined)
t.callbackScroll = fct;
if(!t.callbackScroll)
return;
var d = document, el = d.getElementById(t.id + '_olist');
if(!el)
return;
t._lastScroll = 0;
t._fct['scroll'] = window.Oby.addEvent(el, 'scroll',
function(evt) {
if(el.scrollHeight > t._lastScroll && el.scrollTop >=
(el.scrollHeight - el.offsetHeight - 25)) {
if(t.callbackScroll)
t.callbackScroll(t);
t._lastScroll = el.scrollHeight;
}
});
},
deinitScroll: function() {
var t = this;
if(t.config && t.config.gradientLoad)
t.config.gradientLoad = false;
if(!t._fct['scroll'])
return;
t.callbackScroll = null;
var d = document, el = d.getElementById(t.id + '_list');
if(!el)
return;
window.Oby.removeEvent(el, t._fct['scroll']);
},
/** Get a node
* @param id The node id
* @return the node object
*/
get: function(id) {
if(id >= 0 && id < this.lData.length &&
this.lData[id]) {
try {
return this.lData[id];
} catch(e) { return null; }
}
return null;
},
/** Make a Selection
* @param id The Node Id to select (could be a node object)
*/
sel: function(id) {
if(id === null || id === undefined) return;
var t=this,d=document,cn=t.lData[id];
if(!cn) return;
if(t.config.table) {
if(t.config.displayFormat)
cn = window.oNamebox.format(cn, t.config.displayFormat);
else if(t.config.defaultColumn)
cn = cn[t.config.defaultColumn];
}
if(t.callbackSelection)
t.callbackSelection(this, id, cn);
},
/**
*
*/
block: function(value) {
var t = this, p = false, m = (typeof(value) == 'object'), l =
null;
if(m) l = (value.length-1);
for(var i = t.lData.length - 1; i >= 0; i--) {
if(!m) {
if(t.lData[i].key == value) {
t.lData[i].block = true;
p = true;
}
} else {
for(var j = l; j >= 0; j--) {
if(t.lData[i].key == value[j]) {
t.lData[i].block = true;
p = true;
j = -1;
}
}
}
}
if(p)
t.render();
},
/**
*
*/
unblock: function(value) {
var t = this, p = false;
for(var i = t.lData.length - 1; i >= 0; i--) {
if(value === true || t.lData[i].key == value) {
delete t.lData[i].block;
p = true;
}
}
if(p)
t.render();
},
/**
*
*/
find: function(text) {
var t=this;
text = text.toLowerCase();
for(var i = t.lData.length - 1; i >= 0; i--) {
if(t.lData[i].name.toLowerCase() == text)
return i;
}
return null;
},
/**
*
*/
search: function(text) {
var t=this,d=document,r=null,e=null,dataLng=0;
if(text) {
text = text.replace(/[\-\[\]\/\{\}\(\)\*\+\?\.\\\^\$\|]/g,
"\\$&");
r = new RegExp("(" + text + ")","i");
for(var i = t.lData.length - 1; i >= 0; i--) {
if(!t.lData[i])
continue;
if(!t.config.table) {
if(r.test(t.lData[i].name)) {
t.lData[i].hidden = false;
dataLng++;
t.lData[i].display = t.lData[i].name.replace(r,
'<em>$1</em>');
} else {
t.lData[i].hidden = true;
delete t.lData[i].display;
}
} else {
var test = false;
for(var v in t.lData[i]) {
if(v != 'key' && t.lData[i].hasOwnProperty(v)
&& typeof(t.lData[i][v]) == 'string')
test = r.test(t.lData[i][v]);
if(test)
break;
}
if(test) {
t.lData[i].hidden = false;
dataLng++;
} else {
t.lData[i].hidden = true;
delete t.lData[i].display;
}
}
}
} else {
for(var i = t.lData.length - 1; i >= 0; i--) {
if(t.lData[i]) {
delete t.lData[i].display;
delete t.lData[i].hidden;
}
}
dataLng = null;
}
t._dataLng = dataLng;
t.highlighted = null;
t.render();
},
highlightSet: function(id) {
var t=this;
if(t.highlighted === id)
return true;
if(id === null) {
t.highlighted = null;
return true;
}
if(!t.lData[id] || t.lData[id].hidden)
return false;
t.highlighted = id;
t.render();
// Force the ajax loading when we select the last element in the list
if(t.lData.length > 5 && id == (t.lData.length - 1)
&& t.config.gradientLoad)
window.oNameboxes[t.id].loadMore(t);
var d = document, container = d.getElementById(t.id +
'_olist'), el = null, e = null;
if(!container) e = d.getElementById(t.id);
if(!container)
return true;
el = container.firstChild;
if(t.config.table)
el = el.lastChild.firstChild;
for(var i = el.children.length - 1; i >= 0; i--) {
e = el.children[i];
if(e.className != 'oListSelected')
continue;
if(container.scrollTop > e.offsetTop)
container.scrollTop = e.offsetTop;
else if((container.scrollTop + container.clientHeight) <
(e.offsetTop + e.clientHeight))
container.scrollTop = e.offsetTop + e.clientHeight -
container.clientHeight;
}
return true;
},
highlightGet: function() {
return this.highlighted;
},
highlightMove: function(inc, cpt) {
var t=this,init=false,min=null;
if(t.highlighted === null) {
if(inc > 0)
t.highlighted = -1;
else
t.highlighted = t.lData.length;
init = true;
}
if(cpt !== undefined && cpt > 0) cpt--; else cpt = 0;
for(var i = t.highlighted + inc; i >= 0 && i <
t.lData.length; i += inc) {
if(!t.lData[i] || t.lData[i].hidden || t.lData[i].block)
continue;
if(cpt-- > 0) {
min = i;
continue;
}
return t.highlightSet(i);
}
if(min !== null)
return t.highlightSet(min);
if(init)
t.highlighted = null;
return false;
},
highlightNext: function(cpt) { return this.highlightMove(1,cpt); },
highlightPrevious: function(cpt) { return this.highlightMove(-1,cpt); },
};
oList.version = 20160301;
if(!window.oList || window.oList.version < oList.version)
window.oList = oList;
})();
/**
* oResize
* version: 0.0.1
* release date: 2018-01-15
*/
(function() {
var oResize = function(el, options) {
if(typeof(el) == 'string')
el = document.getElementById(el);
if(!el) return;
if(options === undefined &&
el.getAttribute('data-oresize')) {
try {
var params = JSON.parse( el.getAttribute('data-oresize') );
if(params) options = params;
}catch(e) {}
}
this.create(el, options);
};
/**
*
*/
oResize.init = function() {
if(!document.querySelectorAll)
return;
var d = document,
els = d.querySelectorAll('[data-oresize]');
if(!els || !els.length)
return;
for(var i = els.length - 1; i >= 0; i--) {
var el = els[i], opt = {};
try {
var params = JSON.parse( el.getAttribute('data-oresize') );
if(params)
opt = params;
}catch(e) {}
oResize.create(el, opt);
}
};
/**
*
*/
oResize.prototype = {
target: null,
options: null,
size: null,
storage: null,
/**
*
*/
create: function(el, options) {
var t = this, d = document;
t.options = options || {};
if(t.options.width === false && t.options.height === false)
return;
//
var r = d.createElement('div');
r.className = 'oresize';
r.style.position = 'absolute';
//
t.target = el;
el.appendChild(r);
t.sizer = r;
t.addEvent(r, 'mousedown', function(evt){ t.start(evt); });
//
//
var storage = el.getAttribute('data-oresize');
if(!storage || !localStorage) return;
t.storage = storage;
var size = localStorage.getItem('oresize.'+t.storage);
try { size = JSON.parse(size); } catch(e) {}
if(!size || (!size.h && !size.w))
return;
if(t.options.width !== false) {
size.w = Math.max(size.w, (t.options.width &&
t.options.width.min) ? t.options.width.min : 100);
if(t.options.width && t.options.width.max)
size.w = Math.min(size.w, t.options.width.max);
t.target.style.width = size.w + 'px';
}
if(t.options.height !== false) {
size.h = Math.max(size.h, (t.options.height &&
t.options.height.min) ? t.options.height.min : 100);
if(t.options.height && t.options.height.max)
size.h = Math.min(size.h, t.options.height.max);
t.target.style.height = size.h + 'px';
}
},
/**
*
*/
refresh: function() {
if(this.sizer.parentNode) return;
this.target.appendChild(this.sizer);
},
/**
*
*/
start: function(e) {
var t = this, d = document, w = window;
t.cancelEvent(e);
t.resizeEvt = t.addEvent(w, 'mousemove', function(evt){
t.resize(evt); });
t.stopEvt = t.addEvent(w, 'mouseup', function(evt){
t.stop(evt); });
},
/**
*
*/
stop: function(e) {
var t = this, d = document, w = window;
t.removeEvent(w, 'mousemove', t.resizeEvt);
t.removeEvent(w, 'mouseup', t.stopEvt);
},
/**
*
*/
resize: function(e) {
this.cancelEvent(e);
var t = this,
minW = (t.options.width && t.options.width.min) ?
t.options.width.min : 100,
minH = (t.options.height && t.options.height.min) ?
t.options.height.min : 100,
offset = t.getOffset(t.target),
w = Math.max((e.clientX - offset.left), minW),
h = Math.max((e.clientY - offset.top), minH);
size = {};
if(t.options.width !== false) {
if(t.options.width && t.options.width.max)
w = Math.min(w, t.options.width.max);
t.target.style.width = w + 'px';
size.w = w;
}
if(t.options.height !== false) {
if(t.options.height && t.options.height.max)
h = Math.min(h, t.options.height.max);
t.target.style.height = h + 'px';
size.h = h;
}
if(t.storage && size && (size.h || size.w)) {
localStorage.setItem('oresize.'+t.storage,
JSON.stringify(size));
}
},
/**
*
*/
addEvent: function(d,e,f) {
if( d.attachEvent )
d.attachEvent('on' + e, f);
else if (d.addEventListener)
d.addEventListener(e, f, false);
else
d['on' + e] = f;
return f;
},
removeEvent: function(d,e,f) {
try {
if( d.detachEvent )
d.detachEvent('on' + e, f);
else if( d.removeEventListener)
d.removeEventListener(e, f, false);
else
d['on' + e] = null;
} catch(e) {}
},
cancelEvent: function(e) {
e = e || window.event;
if( !e )
return false;
if(e.stopPropagation) e.stopPropagation();
else e.cancelBubble = true;
if( e.preventDefault ) e.preventDefault();
else e.returnValue = false;
return false;
},
/**
*
*/
getOffset: function(el, scroll) {
var rect = el.getBoundingClientRect(),
scrollLeft = window.pageXOffset ||
document.documentElement.scrollLeft,
scrollTop = window.pageYOffset || document.documentElement.scrollTop;
if(!scroll)
return { top: rect.top , left: rect.left };
return { top: rect.top + scrollTop, left: rect.left + scrollLeft };
}
};
oResize.version = 20180901;
if(!window.oResize || window.oResize.version < oResize.version)
window.oResize = oResize;
})();
/**
* oNamebox
* version: 0.1.3
* release date: 2016-03-01
*/
(function(){
window.oNameboxes = [];
/**
*
* @param {Object} id
* @param {Object} data
* @param {Object} conf
*/
var oNamebox = function(id, data, conf) {
var t = this;
t.id = id;
t.data = data;
t.cache = {};
conf = conf || {};
t._conf = conf;
t._fct = {};
t._ctrlKey = false;
t.config = {
add: conf.add || false,
add_url: conf.add_url || '',
default_text: conf.default_text || '',
default_value: conf.default_value || '',
img_dir: conf.img_dir || '',
onlyNode: conf.onlyNode || false,
map: conf.map || '',
min: conf.min || 3,
sort: conf.sort || false,
tree_url: conf.tree_url || '',
tree_key: conf.tree_key || 'NODEID',
url_keyword: conf.url_keyword || 'SEARCH',
url_pagination: conf.url_pagination || 'PAGE',
olist: conf.olist || {}
};
t.mode = conf.mode || 'list';
t.multiple = (conf.multiple === undefined || conf.multiple === true);
t.content = null;
t.url = conf.url || '';
t.cb = {};
t.init();
window.oNameboxes[id] = t;
};
/**
*
*/
oNamebox.deleteId = function(id) {
var d = document, el = id;
if(typeof(id) == "string") el = d.getElementById(id);
if(!el) return;
el.parentNode.removeChild(el);
};
oNamebox.cancelEvent = function(e) {
e = e || window.event;
if( !e )
return false;
if(e.stopPropagation) e.stopPropagation();
else e.cancelBubble = true;
if( e.preventDefault ) e.preventDefault();
else e.returnValue = false;
return false;
};
/**
*
*/
oNamebox.treeCbFct = function(t,url,keyword,tree,node,ev) {
var o = window.Oby;
o.xRequest(url.replace(keyword, node.value), null,
function(xhr,params) {
var json = o.evalJSON(xhr.responseText);
if(json.length == 0)
return tree.emptyDirectory(node);
var s = json.length, n;
tree.load(json, node.id);
tree.update(node);
if(tree.selectOnOpen) {
n = tree.find(tree.selectOnOpen);
if(n) tree.sel(n);
tree.selectOnOpen = null;
}
},
function(xhr, params) { tree.add(node.id, 0, "error");
tree.update(node); }
);
return false;
};
/**
*
*/
oNamebox.format = function(obj, format) {
var m = format.match(/{[_a-zA-Z0-9]+}/g);
if(!m)
return obj;
var ret = ''+format, r = null, v = '', k =
'';
for(var i = m.length - 1; i >= 0; i--) {
r = new RegExp(m[i], 'g');
k = m[i].replace(/{|}/g,'');
v = '';
if(obj[k])
v = obj[k];
ret = ret.replace(r, v);
}
return ret;
};
/**
*
*/
oNamebox.prototype = {
/**
*
*/
init: function() {
var t = this, d = document;
if(t.mode == 'list') {
t.container = d.getElementById(t.id+'_olist');
} else {
t.container = d.getElementById(t.id+'_otree');
}
if(window.oResize &&
t.container.parentNode.getAttribute('data-oresize')) {
t.container = t.container.parentNode;
//
t.resize = new oResize(t.container,
{width:false,height:{min:100,max:550}});
}
if(t.mode == 'list') {
// t.container = d.getElementById(t.id+'_olist');
t.content = new window.oList(t.id,t.config.olist,null,t.data,false);
t.content.callbackSelection = function(ol,id,value) {
var d = document, node = ol.get(id);
if(node.key && t.config.olist &&
t.config.olist.displayFormat)
t.set(value, node.key);
else if(node.key && node.name)
t.set(node.name, node.key);
else if(t.content.config.table && node.key)
t.set(value, node.key);
t.container.style.display = "none";
c = d.getElementById(t.id+"_text");
if(c) c.value = "";
ol.sel(null);
if(t._ctrlKey && c)
c.focus();
};
if(t.config.olist && t.config.olist.gradientLoad)
t.content.callbackScroll = function(el) { t.loadMore(el); };
} else {
// t.container = d.getElementById(t.id+'_otree');
var options = {rootImg:(t.config.img_dir+'otree/'),
showLoading:false};
t.content = new window.oTree(t.id, options, null, t.data, false);
t.content.addIcon("world","world.png");
if(t.config.tree_url) {
t.content.callbackFct = function(tree,node,ev) {
return window.oNamebox.treeCbFct(t.content, t.config.tree_url,
t.config.tree_key, tree, node, ev);
};
}
t.content.callbackSelection = function(tree,id) {
var d = document, node = tree.get(id);
if(!t.config.onlyNode || node.state == 0) {
if(node.value && node.name)
t.set(node.name, node.value);
} else if(node.state >= 1 && node.state <= 4) {
tree.s(node);
return;
}
t.container.style.display = "none";
c = d.getElementById(t.id+"_text");
if(c) c.value = "";
tree.sel(0);
if(t._ctrlKey && c)
c.focus();
};
}
t.content.render(true);
t.initKeyboard();
if(t.config.sort) {
if(!window.hkjQuery && !window.jQuery) return;
if(!window.hkjQuery) window.hkjQuery = window.jQuery.noConflict();
hkjQuery(document).ready(function($) {
$('#'+t.id).sortable({
cursor: "move", items: "div",
stop: function(event, ui) {
$("#"+t.id+"
.nametext").appendTo("#"+t.id);
$("#"+t.id+"hikaclear").appendTo("#"+t.id);
}
});
$("#"+t.id).disableSelection();
});
}
},
initKeyboard: function() {
var t = this, d = document, w = window, o = w.Oby, c = t.content;
t._fct['doc.keydown'] = o.addEvent(d, 'keydown',
function(evt) {
if(!evt) var evt = w.event;
if(evt.keyCode == 17) t._ctrlKey = true;
});
t._fct['doc.keyup'] = o.addEvent(d, 'keyup',
function(evt) {
if(!evt) var evt = w.event;
if(evt.keyCode == 17) t._ctrlKey = false;
});
var input_elem = d.getElementById(t.id + "_text");
if(t.mode != 'list' || !input_elem)
return;
t._fct['keypress'] = o.addEvent(input_elem,
'keypress', function(evt) {
if(!evt) var evt = w.event;
if(evt.keyCode == 13) o.cancelEvent(evt);
});
t._fct['keydown'] = o.addEvent(input_elem,
'keydown', function(evt) {
if(!evt) var evt = w.event;
if(evt.keyCode == 8 && t.multiple && (t._inputEmpty ===
undefined || t._inputEmpty === null))
t._inputEmpty = (this.value == '');
else if(evt.keyCode == 13)
t._inputEnter = true;
else if(evt.keyCode == 33 || evt.keyCode == 34)
o.cancelEvent(evt);
});
t._fct['keyup'] = o.addEvent(input_elem, 'keyup',
function(evt) {
if(!evt) var evt = w.event;
if(evt.keyCode == 13) {
// Enter
if(!t._inputEnter)
return;
delete t._inputEnter;
o.cancelEvent(evt);
var id = c.highlightGet(), node = null;
if(id == null && input_elem.value != '')
id = t.content.find(input_elem.value);
if(id === null && ((t.content._dataLng !== null &&
t.content._dataLng == 1) || t.content.lData.length == 1)) {
for(var i = 0; i < t.content.lData.length - 1; i++) {
if(!t.content.lData[i] || t.content.lData[i].block ||
t.content.lData[i].hidden)
continue;
id = i;
break;
}
}
if(id !== null)
node = c.get(id);
if(id !== null && node) {
if(!node.block && !node.hidden && node.key &&
node.name) {
t.set(node.name, node.key);
} else if(!node.block && !node.hidden &&
c.config.table && node.key) {
var value = node.value;
if(c.config.displayFormat)
value = w.oNamebox.format(node, c.config.displayFormat);
else if(t.config.defaultColumn)
value = node[c.config.defaultColumn];
t.set(value, node.key);
}
if(input_elem.value != '') {
input_elem.value = '';
t.content.search(null);
}
} else if(input_elem.value != '' &&
t.config.add_url) {
var add = d.getElementById(t.id + '_add');
if(add)
t.create(add.firstChild, true);
}
} else if(evt.keyCode == 40) {
// Down
c.highlightNext();
o.cancelEvent(evt);
} else if(evt.keyCode == 38) {
// Up
c.highlightPrevious();
o.cancelEvent(evt);
} else if(evt.keyCode == 34) {
// Page down
c.highlightNext(5);
o.cancelEvent(evt);
} else if(evt.keyCode == 33) {
// Page up
c.highlightPrevious(5);
o.cancelEvent(evt);
} else if(evt.keyCode == 8 && t.multiple) {
// backspace
if(!t._inputEmpty) {
t._inputEmpty = null;
return;
}
t._inputEmpty = null;
if(input_elem.value != '')
return;
// If multi, delete the last element
var values = t.get();
if(!values && !values.length)
return;
var v = values.pop(), cur = d.getElementById(t.id + "-" +
v.value);
if(cur && cur.firstChild)
t.unset(cur.firstChild, v.value);
o.cancelEvent(evt);
}
});
},
/**
*
*/
set: function(name, value) {
var t = this, d = document;
if(t.multiple) {
var blocks = {map: (t.config.map + "[]"), key: value, name:
name},
cur = d.getElementById(t.id + "-" + value);
if(t.config.map == '')
blocks['map'] = '';
if(!cur)
t.dup(t.id + "tpl", blocks, t.id + "-" + value);
if(t.mode == 'list')
t.content.block(value);
} else {
var v = d.getElementById(t.id+"_valuehidden"),
n = d.getElementById(t.id+"_valuetext"),
a = d.getElementById(t.id+'_add');
if(v) v.value = value;
if(n) n.innerHTML = name;
if(a) a.style.display = 'none';
}
t.cache.lastSearch = false;
if(t.modifiedData) {
t.loadData(false);
t.modifiedData = false;
}
t.fire('set', {el:t,name:name,value:value});
},
/**
*
*/
unset: function(el, value) {
var t = this, w = window;
w.oNamebox.deleteId(el.parentNode);
if(t.multiple && t.mode == 'list')
t.content.unblock(value);
t.fire('unset', {el:t,obj:el,value:value});
},
/**
*
*/
get: function() {
var t = this, d = document, ret = null;
if(t.multiple) {
ret = [];
var tplElem = d.getElementById(t.id + "tpl");
if(!tplElem)
return ret;
var container = tplElem.parentNode,
elems = container.getElementsByTagName('input');
for(var i = 0; i < elems.length; i++) {
if(elems[i].type.toLowerCase() != 'hidden' ||
elems[i].name.substring(0,1) == '{')
continue;
var txt = elems[i].nextSibling, c = '';
if(txt && txt.nodeType == 3) {
if(txt.textContent)
c = txt.textContent;
else if(txt.nodeValue)
c = txt.nodeValue;
else if(txt.data)
c = txt.data;
}
ret[ ret.length ] = {
'name': c,
'value': elems[i].value
};
}
} else {
ret = {'value':null,'name':null};
var v = d.getElementById(t.id+"_valuehidden"),
n = d.getElementById(t.id+"_valuetext");
if(v) ret.value = v.value;
if(n) ret.name = n.innerHTML;
}
return ret;
},
/**
*
*/
changeUrl: function(url, others) {
var t = this;
if(t.url == url)
return false;
t.url = url;
if(others !== undefined && others) {
if(others.tree)
t.config.tree_url = others.tree;
if(others.add)
t.config.add_url = others.add;
}
t.clear();
if(t.content && t.mode == 'list') {
t.content.load({});
window.Oby.xRequest(
t.url.replace(t.config.url_keyword, ''),
{},
function(xhr){
data = window.Oby.evalJSON(xhr.responseText);
if(data) {
t.content.load(data);
t.data = data;
}
},function(xhr){});
}
t.fire('changeUrl', {el:t,url:url,others:others});
},
/**
*
*/
destroy: function() {
var t = this, w = window, d = document,
input_elem = d.getElementById(t.id + "_text");
for(var f in t._fct) {
if(!t._fct.hasOwnProperty(f))
continue;
if(f.substring(0, 4) != 'doc.')
w.Oby.removeEvent(input_elem, t._fct[f]);
else
w.Oby.removeEvent(d, t._fct[f]);
}
if(t.content)
t.content.destroy();
delete t._fct;
delete t._conf;
delete t.data;
delete t.config;
delete t.cache;
},
/**
*
*/
search: function(el) {
var t = this, d = document, w = window,
s = d.getElementById(t.id+"_span");
if(typeof(el) == "string")
el = d.getElementById(el);
if(!el)
return false;
s.innerHTML = el.value;
el.style.width = s.offsetWidth + 30 + "px";
if(!t.content)
return false;
if(t.cache.lastSearch == el.value)
return false;
if(t.config.add) {
var add_el = d.getElementById(t.id+'_add');
if(add_el)
add_el.style.display = (el.value.length == 0) ? 'none' :
'';
}
if(!t.url) {
t.content.search(el.value);
} else {
if(el.value.length < t.config.min) {
if(t.modifiedData) {
t.loadData(false);
t.modifiedData = false;
}
t.content.search(el.value);
} else {
var url = t.url.replace(t.config.url_keyword, el.value);
if(t.config.url_pagination)
url.replace(t.config.url_pagination, 0);
w.Oby.xRequest(
url,
null,
function(xhr,params) {
t.modifiedData = true;
var p = w.Oby.evalJSON(xhr.responseText),
data = (p.data ? p.data : p);
t.loadData(data);
if(data && data.length)
t.content.config.gradientLoad = true;
},
function(xhr,params) { t.content.search(el.value); }
);
}
}
t.cache.lastSearch = el.value;
},
/**
*
*/
loadMore: function(el) {
if(!this.url) {
el.deinitScroll();
return false;
}
var t = this, d = document, w = window,
input = d.getElementById(t.id + "_text"),
url = t.url.replace(t.config.url_keyword, input.value);
if(t.config.url_pagination)
url = url.replace(t.config.url_pagination, t.content.lData.length);
w.Oby.xRequest(
url,
null,
function(xhr,params) {
var p = w.Oby.evalJSON(xhr.responseText),
data = ((p.data) ? p.data : p),
u = false, i = (input.value == '');
if(!data || data.length == 0) {
t.content.config.gradientLoad = false;
if(i) {
t.url = '';
t.content.render();
}
return;
}
for(var k in data) {
if(!data.hasOwnProperty(k))
continue;
if(i && !t.data[k]) {
t.data[k] = data[k];
u = true;
} else if(!i && !t.content.lData[k]) {
t.content.lData[k] = data[k];
u = true;
}
}
if(u && i) {
// Keep the highlight selection
var hl = t.content.highlightGet();
t.loadData(false);
t.content.highlightSet(hl);
}
if(u && !i)
t.content.render();
},
function(xhr,params) {}
);
},
/**
*
*/
loadData: function(data) {
var t = this;
d = data || t.data;
if(t.mode == 'list') {
t.content.load(d);
if(t.url)
t.content.config.gradientLoad = true;
t.content.render();
} else {
delete t.content.lNodes;
t.content.lNodes = [];
t.content.lNodes[0] = new window.oNode(0,-1);
t.content.load(d);
t.content.render();
}
},
/**
*
*/
focus: function(el) {
var d = document, w = window, t = this,
c = d.getElementById(t.id);
if(typeof(el) == "string")
el = d.getElementById(el);
if(el) el.focus();
if(t.content) t.content.search(el.value);
if(!t.container)
return false;
t.container.style.display = "";
t.fire('focus', {el: t, input: el});
var f = null;
f = function(evt) {
if (!evt) var evt = window.event;
var trg = (window.event) ? evt.srcElement : evt.target;
while(trg != null) {
if(trg == el || trg == t.container || trg == c)
return;
trg = trg.parentNode;
}
t.container.style.display = "none";
t.fire('blur', {el: t, input: el});
window.Oby.removeEvent(document, "mousedown", f);
};
window.Oby.addEvent(document, "mousedown", f);
return false;
},
/**
*
*/
clear: function() {
var d = document, t = this,
el = d.getElementById(t.id), e = null;
delete t.cache;
t.cache = {};
if(!el)
return false;
if(t.multiple) {
for(var i = el.children.length - 1; i >= 0; i--) {
e = el.children[i];
if(e.tagName.toLowerCase() == 'div' && e.className
== 'namebox' && e.style.display != 'none')
el.removeChild(e);
}
if(t.mode == 'list')
t.content.unblock(true);
} else
t.set(t.config.default_text, t.config.default_value);
},
/**
*
*/
clean: function(el, text) {
var t = this;
t.set(text, t.config.default_value);
window.Oby.cancelEvent();
},
/**
*
*/
create: function(el,conf) {
var t = this, d = document, w = window;
window.Oby.cancelEvent();
if(!t.config.add || !t.config.add_url)
return false;
var n = d.getElementById(t.id+"_text"),
l = d.getElementById(t.id+'_loading');
value = null;
if(!n || !n.value || n.value.length == 0)
return false;
var check = t.content.find(n.value, true);
if(check !== null) {
var node = t.content.get(check);
t.set(node.name, node.value);
n.value = '';
return;
}
if(conf && !confirm(encodeURIComponent(n.value) + '
?'))
return false;
value = 'value=' + encodeURIComponent(n.value);
n.value = '';
if(el) el.style.display = 'none';
if(l) l.style.display = '';
w.Oby.xRequest(t.config.add_url,{mode:'POST',data:value},function(xhr,params){
if(l) l.style.display = 'none';
if(el) el.style.display = '';
if(el) el.parentNode.style.display = 'none';
if(xhr.responseText) {
var data = w.Oby.evalJSON(xhr.responseText);
if(data && data.value && data.name) {
if(t.mode == 'list')
t.content.add(data.value, data.name);
t.set(data.name, data.value);
t.data[data.value] = data.name;
}
}
},function(xhr,params){
if(l) l.style.display = 'none';
if(el) el.style.display = '';
if(el) el.parentNode.style.display = 'none';
});
return false;
},
/**
*
* @param {Object} tplName
* @param {Object} htmlblocks
* @param {Object} id
* @param {Object} extraData
* @param {Object} appendTo
*/
dup: function(tplName, htmlblocks, id, extraData, appendTo) {
var d = document, tplElem = d.getElementById(tplName);
if(!tplElem) return;
var container = tplElem.parentNode;
elem = tplElem.cloneNode(true);
if(!appendTo) {
container.insertBefore(elem, tplElem);
} else {
if(typeof(appendTo) == "string")
appendTo = d.getElementById(appendTo);
appendTo.appendChild(elem);
}
elem.style.display = "";
elem.id = '';
if(id)
elem.id = id;
for(var k in htmlblocks) {
elem.innerHTML = elem.innerHTML.replace(new
RegExp("{"+k+"}","g"), htmlblocks[k]);
elem.innerHTML = elem.innerHTML.replace(new
RegExp("%7B"+k+"%7D","g"), htmlblocks[k]);
}
if(extraData) {
for(var k in extraData) {
elem.innerHTML = elem.innerHTML.replace(new
RegExp('{'+k+'}','g'), extraData[k]);
elem.innerHTML = elem.innerHTML.replace(new
RegExp('%7B'+k+'%7D','g'), extraData[k]);
}
}
},
fire: function(name, params) {
var t = this, ev;
if(t.cb[name] === undefined)
return false;
for(var e in t.cb[name]) {
if( e != '_id' ) {
ev = t.cb[name][e];
ev(params);
}
}
return true;
},
register: function(name, fct) {
var t = this;
if(t.cb[name] === undefined )
t.cb[name] = {'_id':0};
var id = t.cb[name]['_id'];
t.cb[name]['_id'] += 1;
t.cb[name][id] = fct;
return id;
},
unregister: function(name, id) {
if(t.cb[name] === undefined || t.cb[name][id] === undefined)
return false;
t.cb[name][id] = null;
return true;
},
};
oNamebox.version = 20180901;
if(!window.oNamebox || !window.oNamebox.version || window.oNamebox.version
< oNamebox.version)
window.oNamebox = oNamebox;
})();
PK�{�[���A� �
js/tooltip.jsnu�[���/**
* @package HikaMarket for Joomla!
* @version 3.1.1
* @author Obsidev S.A.R.L.
* @copyright (C) 2011-2020 OBSIDEV. All rights reserved.
* @license GNU/GPLv3 http://www.gnu.org/licenses/gpl-3.0.html
*/
!function ($) {
"use strict";
/* TOOLTIP PUBLIC CLASS DEFINITION
* =============================== */
var HKTooltip = function (element, options) {
this.init('hktooltip', element, options); };
HKTooltip.prototype = {
constructor: HKTooltip,
init: function (type, element, options) {
var t = this, eventIn, eventOut, triggers, trigger, i;
t.type = type;
t.$element = $(element);
t.options = t.getOptions(options);
t.enabled = true;
triggers = t.options.trigger.split(' ');
for(i = triggers.length; i--;) {
trigger = triggers[i];
if (trigger == 'click') {
t.$element.on('click.' + t.type, t.options.selector,
$.proxy(t.toggle, t));
} else if (trigger != 'manual') {
eventIn = trigger == 'hover' ? 'mouseenter' :
'focus';
eventOut = trigger == 'hover' ? 'mouseleave' :
'blur';
t.$element.on(eventIn + '.' + t.type, t.options.selector,
$.proxy(t.enter, t));
t.$element.on(eventOut + '.' + t.type, t.options.selector,
$.proxy(t.leave, t));
}
}
t.options.selector ? (t._options = $.extend({}, t.options, { trigger:
'manual', selector: '' })) : t.fixTitle();
},
getOptions: function (options) {
options = $.extend({}, $.fn[this.type].defaults, this.$element.data(),
options);
if (options.delay && typeof options.delay == 'number')
{
options.delay = { show: options.delay, hide: options.delay };
}
return options;
},
enter: function (e) {
var defaults = $.fn[this.type].defaults, options = {}, self;
this._options && $.each(this._options, function (key, value) {
if (defaults[key] != value) options[key] = value;
}, this);
self = $(e.currentTarget)[this.type](options).data(this.type);
if (!self.options.delay || !self.options.delay.show) return self.show();
clearTimeout(this.timeout);
self.hoverState = 'in';
this.timeout = setTimeout(function() {
if (self.hoverState == 'in') self.show();
}, self.options.delay.show);
},
leave: function (e) {
var self = $(e.currentTarget)[this.type](this._options).data(this.type);
if (this.timeout) clearTimeout(this.timeout);
if (!self.options.delay || !self.options.delay.hide) return self.hide();
self.hoverState = 'out';
this.timeout = setTimeout(function() {
if (self.hoverState == 'out') self.hide();
}, self.options.delay.hide);
},
show: function () {
var $tip, pos, actualWidth, actualHeight, placement, tp, e =
$.Event('show');
if (!this.hasContent() || !this.enabled)
return;
this.$element.trigger(e);
if (e.isDefaultPrevented()) return;
$tip = this.tip();
this.setContent();
if (this.options.animation) {
$tip.addClass('fade');
}
placement = typeof this.options.placement == 'function' ?
this.options.placement.call(this, $tip[0], this.$element[0]) :
this.options.placement;
$tip
.detach()
.css({ top: 0, left: 0, display: 'block' });
this.options.container ? $tip.appendTo(this.options.container) :
$tip.insertAfter(this.$element);
pos = this.getPosition();
actualWidth = $tip[0].offsetWidth;
actualHeight = $tip[0].offsetHeight;
switch (placement) {
case 'bottom':
tp = {top: pos.top + pos.height, left: pos.left + pos.width / 2 -
actualWidth / 2};
break;
case 'top':
tp = {top: pos.top - actualHeight, left: pos.left + pos.width / 2 -
actualWidth / 2};
break;
case 'left':
tp = {top: pos.top + pos.height / 2 - actualHeight / 2, left: pos.left
- actualWidth};
break;
case 'right':
tp = {top: pos.top + pos.height / 2 - actualHeight / 2, left: pos.left
+ pos.width};
break;
}
this.applyPlacement(tp, placement);
this.$element.trigger('shown');
},
applyPlacement: function(offset, placement){
var $tip = this.tip(), width = $tip[0].offsetWidth, height =
$tip[0].offsetHeight, actualWidth, actualHeight, delta, replace;
$tip
.offset(offset)
.addClass(placement)
.addClass('in');
actualWidth = $tip[0].offsetWidth;
actualHeight = $tip[0].offsetHeight;
if (placement == 'top' && actualHeight != height) {
offset.top = offset.top + height - actualHeight;
replace = true;
}
if (placement == 'bottom' || placement == 'top') {
delta = 0;
if (offset.left < 0){
delta = offset.left * -2;
offset.left = 0;
$tip.offset(offset);
actualWidth = $tip[0].offsetWidth;
actualHeight = $tip[0].offsetHeight;
}
this.replaceArrow(delta - width + actualWidth, actualWidth,
'left');
} else {
this.replaceArrow(actualHeight - height, actualHeight,
'top');
}
if (replace) $tip.offset(offset);
},
replaceArrow: function(delta, dimension, position){
this.arrow().css(position, delta ? (50 * (1 - delta / dimension) +
"%") : '');
},
setContent: function () {
var $tip = this.tip(), title = this.getTitle();
$tip.find('.hk-tooltip-inner')[this.options.html ?
'html' : 'text'](title);
$tip.removeClass('fade in top bottom left right');
},
hide: function () {
// var that = this, $tip = this.tip(), e = $.Event('hide');
var that = this, $tip = this.tip(), e = $.Event('hideme');
this.$element.trigger(e);
if (e.isDefaultPrevented()) return
$tip.removeClass('in');
function removeWithAnimation() {
var timeout = setTimeout(function () {
$tip.off($.support.transition.end).detach();
}, 500);
$tip.one($.support.transition.end, function () {
clearTimeout(timeout);
$tip.detach();
});
}
$.support.transition && this.$tip.hasClass('fade') ?
removeWithAnimation() :
$tip.detach();
this.$element.trigger('hidden');
return this;
},
fixTitle: function () {
var $e = this.$element;
if ($e.attr('title') ||
typeof($e.attr('data-original-title')) != 'string') {
$e.attr('data-original-title', $e.attr('title') ||
'').attr('title', '');
}
},
hasContent: function () { return this.getTitle(); },
getPosition: function () {
var el = this.$element[0];
return $.extend({}, (typeof el.getBoundingClientRect ==
'function') ? el.getBoundingClientRect() : {
width: el.offsetWidth
, height: el.offsetHeight
}, this.$element.offset());
},
getTitle: function () {
var title, $e = this.$element, o = this.options;
title = $e.attr('data-original-title') || (typeof o.title ==
'function' ? o.title.call($e[0]) : o.title);
return title;
},
tip: function () { return this.$tip = this.$tip ||
$(this.options.template); },
arrow: function() { return this.$arrow = this.$arrow ||
this.tip().find(".hk-tooltip-arrow"); },
validate: function () {
if (!this.$element[0].parentNode) {
this.hide();
this.$element = null;
this.options = null;
}
},
enable: function () { this.enabled = true; },
disable: function () { this.enabled = false; },
toggleEnabled: function () { this.enabled = !this.enabled; },
toggle: function (e) {
var self = e ?
$(e.currentTarget)[this.type](this._options).data(this.type) : this;
self.tip().hasClass('in') ? self.hide() : self.show();
},
destroy: function () {
this.hide().$element.off('.' +
this.type).removeData(this.type);
}
};
/* TOOLTIP PLUGIN DEFINITION
* ========================= */
var old = $.fn.hktooltip;
$.fn.hktooltip = function ( option ) {
return this.each(function () {
var $this = $(this), data = $this.data('hktooltip'), options =
typeof option == 'object' && option;
if (!data) $this.data('hktooltip', (data = new HKTooltip(this,
options)));
if (typeof option == 'string') data[option]();
});
};
$.fn.hktooltip.Constructor = HKTooltip;
$.fn.hktooltip.defaults = {
animation: true,
placement: 'top',
selector: false,
template: '<div class="hk-tooltip"><div
class="hk-tooltip-arrow"></div><div
class="hk-tooltip-inner"></div></div>',
trigger: 'hover focus',
title: '',
delay: 0,
html: true,
container: false
};
/* TOOLTIP NO CONFLICT
* =================== */
$.fn.hktooltip.noConflict = function () {
$.fn.hktooltip = old;
return this;
};
}(window.jQuery);
PK�{�[wtW�mail/index.htmlnu�[���<html><body></body></html>PK�{�[]¤�b
b 'mail/order_status_notification.html.phpnu�[���<?php
/**
* @package HikaMarket for Joomla!
* @version 3.1.1
* @author Obsidev S.A.R.L.
* @copyright (C) 2011-2020 OBSIDEV. All rights reserved.
* @license GNU/GPLv3 http://www.gnu.org/licenses/gpl-3.0.html
*/
defined('_JEXEC') or die('Restricted access');
?><style type="text/css">
body.hikashop_mail { background-color:#ffffff; color:#575757; }
.ReadMsgBody{width:100%;}
.ExternalClass{width:100%;}
div, p, a, li, td {-webkit-text-size-adjust:none;}
@media (min-width:600px){
#hikamarket_mail {width:600px !important;margin:auto !important;}
.pict img {max-width:500px !important;height:auto !important;}
}
@media (max-width:330px){
#hikamarket_mail {width:300px !important; margin:auto !important;}
table[class=w600], td[class=w600], table[class=w598], td[class=w598],
table[class=w500], td[class=w500], img[class="w600"]{width:100%
!important;}
td[class="w49"] { width: 10px !important;}
.pict img {max-width:278px; height:auto !important;}
}
@media (min-width:331px) and (max-width:480px){
#hikamarket_mail {width:450px !important; margin:auto !important;}
table[class=w600], td[class=w600], table[class=w598], td[class=w598],
table[class=w500], td[class=w500], img[class="w600"]{width:100%
!important;}
td[class="w49"] { width: 20px !important;}
.pict img {max-width:408px; height:auto !important;}
}
h1{color:#1c8faf;font-size:16px;font-weight:bold;border-bottom:1px solid
#ddd; padding-bottom:10px;}
h2{color:#89a9c1;font-size:14px;font-weight:bold;margin-top:20px;margin-bottom:5px;border-bottom:1px
solid #d6d6d6;padding-bottom:4px;}
a:visited{cursor:pointer;color:#2d9cbb;text-decoration:none;border:none;}
</style>
<div id="hikamarket_mail" style="font-family:Arial,
Helvetica,sans-serif;font-size:12px;line-height:18px;width:100%;background-color:#ffffff;padding-bottom:20px;color:#5b5b5b;">
<div class="hikashop_online" style="font-family:Arial,
Helvetica,sans-serif;font-size:11px;line-height:18px;color:#6a5c6b;text-decoration:none;margin:10px;text-align:center;">
<a
style="cursor:pointer;color:#2d9cbb;text-decoration:none;border:none;"
href="{VAR:URL}">
<span class="hikashop_online"
style="color:#6a5c6b;text-decoration:none;font-size:11px;margin-top:10px;margin-bottom:10px;text-align:center;">
{TXT:MAIL_HEADER}
</span>
</a>
</div>
<table class="w600" style="font-family:Arial, Helvetica,
sans-serif;font-size:12px;line-height:18px;margin:auto;background-color:#ebebeb;"
border="0" cellspacing="0" cellpadding="0"
width="600" align="center">
<tr style="line-height: 0px;">
<td class="w600" style="line-height:0px"
width="600" valign="bottom">
<img class="w600"
src="{VAR:LIVE_SITE}media/com_hikamarket/images/mail/header.png"
border="0" alt="" />
</td>
</tr>
<tr>
<td class="w600" style="" width="600"
align="center">
<table class="w600" border="0"
cellspacing="0" cellpadding="0" width="600"
style="margin:0px;font-family: Arial, Helvetica,
sans-serif;font-size:12px;line-height:18px;">
<tr>
<td class="w20" width="20"></td>
<td class="w560 pict" style="text-align:left;
color:#575757" width="560">
<div id="title" style="font-family: Arial,
Helvetica, sans-serif;font-size:12px;line-height:18px;">
<img
src="{VAR:LIVE_SITE}media/com_hikashop/images/icons/icon-48-order.png"
border="0" alt=""
style="float:left;margin-right:4px;"/>
<h1 style="color:#1c8faf
!important;font-size:16px;font-weight:bold; border-bottom:1px solid #ddd;
padding-bottom:10px">
{TXT:ORDER_TITLE}
</h1>
<h2 style="color:#1c8faf
!important;font-size:12px;font-weight:bold; padding-bottom:10px">
{TXT:ORDER_CHANGED}
</h2>
</div>
</td>
<td class="w20" width="20"></td>
</tr>
<tr>
<td class="w20" width="20"></td>
<td style="border:1px solid
#adadad;background-color:#ffffff;">
<div class="w550" width="550"
id="content" style="font-family: Arial, Helvetica,
sans-serif;font-size:12px;line-height:18px;margin-left:5px;margin-right:5px;">
<p>
<h3 style="color:#393939 !important; font-size:14px;
font-weight:normal;
font-weight:bold;margin-bottom:0px;padding:0px;">{TXT:HI_VENDOR}</h3>
{TXT:SALE_BEGIN_MESSAGE}
</p>
<!--{IF:acl.address}-->
<h1 style="color:#1c8faf
!important;font-size:16px;font-weight:bold;border-bottom:1px solid
#ddd;padding-top:10px;padding-bottom:10px;">
{TXT:SALE_CUSTOMER}
</h1>
<table class="w550" border="0"
cellspacing="0" cellpadding="0" width="550"
style="margin-top:10px;font-family: Arial, Helvetica,
sans-serif;font-size:12px;line-height:18px;">
<tr>
<!--{IF:acl.billingaddress}-->
<td style="color:#1c8faf
!important;font-size:12px;font-weight:bold;">{TXT:BILLING_ADDRESS}</td>
<!--{ENDIF:acl.billingaddress}-->
<!--{IF:acl.shippingaddress}-->
<td style="color:#1c8faf
!important;font-size:12px;font-weight:bold;">{TXT:SHIPPING_ADDRESS}</td>
<!--{ENDIF:acl.shippingaddress}-->
</tr>
<tr>
<!--{IF:acl.billingaddress}-->
<td>{VAR:BILLING_ADDRESS}</td>
<!--{ENDIF:acl.billingaddress}-->
<!--{IF:acl.shippingaddress}-->
<td>{VAR:SHIPPING_ADDRESS}</td>
<!--{ENDIF:acl.shippingaddress}-->
</tr>
</table>
<!--{ENDIF:acl.address}-->
<h1 style="color:#1c8faf
!important;font-size:16px;font-weight:bold;border-bottom:1px solid
#ddd;padding-top:10px;padding-bottom:10px;">
{TXT:SUMMARY_OF_YOUR_SALE}
</h1>
<table class="w550" border="0"
cellspacing="0" cellpadding="0" width="550"
style="margin-top:10px;margin-bottom:10px;font-family: Arial,
Helvetica, sans-serif;font-size:12px;line-height:18px;">
<tr>
<td style="border-bottom:1px solid
#ddd;padding-bottom:3px;text-align:left;color:#1c8faf
!important;font-size:12px;font-weight:bold;">{TXT:PRODUCT_NAME}</td>
{TXT:CUSTOMFIELD_NAME}
<td style="border-bottom:1px solid
#ddd;padding-bottom:3px;text-align:right;color:#1c8faf
!important;font-size:12px;font-weight:bold;">{TXT:PRODUCT_PRICE}</td>
<td style="border-bottom:1px solid
#ddd;padding-bottom:3px;text-align:right;color:#1c8faf
!important;font-size:12px;font-weight:bold;">{TXT:PRODUCT_QUANTITY}</td>
<td style="border-bottom:1px solid
#ddd;padding-bottom:3px;text-align:right;color:#1c8faf
!important;font-size:12px;font-weight:bold;">{TXT:PRODUCT_TOTAL}</td>
</tr>
<!--{START:PRODUCT_LINE}-->
<tr>
<td style="border-bottom:1px solid
#ddd;padding-bottom:3px;">
{LINEVAR:PRODUCT_IMG}
{LINEVAR:PRODUCT_NAME}<!--{IF:ORDER_PRODUCT_CODE}-->
{LINEVAR:PRODUCT_CODE}<!--{ENDIF:ORDER_PRODUCT_CODE}-->
</td>
{LINEVAR:CUSTOMFIELD_VALUE}
<td style="border-bottom:1px solid
#ddd;padding-bottom:3px;text-align:right">{LINEVAR:PRODUCT_PRICE}</td>
<td style="border-bottom:1px solid
#ddd;padding-bottom:3px;text-align:right">{LINEVAR:PRODUCT_QUANTIY}</td>
<td style="border-bottom:1px solid
#ddd;padding-bottom:3px;text-align:right">{LINEVAR:PRODUCT_TOTAL}</td>
</tr>
<!--{END:PRODUCT_LINE}-->
<!--{START:ORDER_FOOTER}-->
<tr>
<td colspan="{TXT:FOOTER_COLSPAN}"
style="text-align:right;color:#1c8faf
!important;font-size:12px;font-weight:bold;">{LINEVAR:NAME}</td>
<td style="text-align:right">{LINEVAR:VALUE}</td>
</tr>
<!--{END:ORDER_FOOTER}-->
</table>
<!--{IF:PAYMENT}-->
<p>
<span style="color:#1c8faf
!important;font-size:12px;font-weight:bold;">{TXT:PAYMENT_METHOD}
:</span> {VAR:PAYMENT}
</p>
<!--{ENDIF:PAYMENT}-->
<!--{IF:SHIPPING}-->
<p>
<span style="color:#1c8faf
!important;font-size:12px;font-weight:bold;">{TXT:HIKASHOP_SHIPPING_METHOD}
:</span> {VAR:SHIPPING}
</p>
<!--{ENDIF:SHIPPING}-->
<!--{IF:ORDER_SUMMARY}-->
<h1 style="color:#1c8faf
!important;font-size:16px;font-weight:bold;border-bottom:1px solid
#ddd;padding-top:10px;padding-bottom:10px;">
{TXT:ADDITIONAL_INFORMATION}
</h1>
<p style="border-bottom:1px solid
#ddd;padding-bottom:10px;">
{VAR:ORDER_SUMMARY}
</p>
<!--{ENDIF:ORDER_SUMMARY}-->
<p>
{TXT:SALE_END_MESSAGE}
</p>
</div>
</td>
<td class="w20" width="20"></td>
</tr>
</table>
</td>
</tr>
<tr style="line-height: 0px;">
<td class="w600" style="line-height:0px"
width="600" valign="top">
<img class="w600"
src="{VAR:LIVE_SITE}/media/com_hikamarket/images/mail/footer.png"
border="0" alt="--" />
</td>
</tr>
</table>
</div>
PK�{�[]�},M,M*mail/order_status_notification.preload.phpnu�[���<?php
/**
* @package HikaMarket for Joomla!
* @version 3.1.1
* @author Obsidev S.A.R.L.
* @copyright (C) 2011-2020 OBSIDEV. All rights reserved.
* @license GNU/GPLv3 http://www.gnu.org/licenses/gpl-3.0.html
*/
defined('_JEXEC') or die('Restricted access');
?><?php
$app = JFactory::getApplication();
$config = hikamarket::config();
$shopConfig = hikamarket::config(false);
$orderClass = hikamarket::get('shop.class.order');
$imageHelper = hikamarket::get('shop.helper.image');
$productClass = hikamarket::get('shop.class.product');
$fieldsClass = hikamarket::get('shop.class.field');
global $Itemid;
$url_itemid = '';
if(!empty($Itemid))
$url_itemid = '&Itemid=' . $Itemid;
$customer = $data->customer;
if(!isset($data->order))
$data->order = new stdClass();
$fs =
array('order_number','order_discount_tax','order_shipping_tax','order_payment_tax','order_full_price','order_shipping_price','order_payment_price','order_discount_price','order_currency_id','order_status');
foreach($fs as $f) {
if(isset($data->$f) && !isset($data->order->$f))
$data->order->$f = $data->$f;
if(isset($data->old->$f) && !isset($data->order->$f))
$data->order->$f = $data->old->$f;
}
if($app->isAdmin()) {
$view = 'shop.order';
$order_url =
HIKASHOP_LIVE.'index.php?option=com_hikamarket&ctrl=order&task=show&cid='
. (int)$data->order_id;
} else {
$view = 'shop.address';
$order_url =
hikamarket::completeLink('order&task=show&cid=' .
(int)$data->order_id);
}
$order_number = isset($data->order->order_number) ?
$data->order->order_number :
@$data->order->old->order_number;
$url = '<a href="' . $order_url . '">'
. $order_number . '</a>';
$data->order->order_url = $order_url;
$data->cart = $orderClass->loadFullOrder($data->order_id, true,
false);
$data->cart->coupon = new stdClass();
if(hikashop_level(2)) {
$null = null;
$itemFields =
$fieldsClass->getFields('display:mail_status_notif=1',
$data->cart->products, 'item');
}
$price = new stdClass();
$tax = $data->cart->order_subtotal -
$data->cart->order_subtotal_no_vat +
$data->order->order_discount_tax +
$data->order->order_shipping_tax +
$data->order->order_payment_tax;
$price->price_value = $data->order->order_full_price - $tax;
$price->price_value_with_tax = $data->order->order_full_price;
$data->cart->full_total = new stdClass;
$data->cart->full_total->prices = array($price);
$data->cart->coupon->discount_value =&
$data->order->order_discount_price;
$colspan = 4;
$vendor_name = $data->vendor->vendor_name;
$customer_name = @$data->customer->name;
if(empty($customer_name))
$customer_name =
@$data->cart->billing_address->address_firstname;
$vendor_access = hikamarket::getAclVendor($data->vendor);
$acl = array(
'notify' => hikamarket::aclTest('order/notify',
$vendor_access),
'billingaddress' =>
hikamarket::aclTest('order/show/billingaddress',
$vendor_access),
'shippingaddress' =>
hikamarket::aclTest('order/show/shippingaddress',
$vendor_access),
'customfields' =>
hikamarket::aclTest('order/show/customfields', $vendor_access),
);
$vars = array(
'LIVE_SITE' => HIKASHOP_LIVE,
'URL' => $order_url,
'ORDER_PRODUCT_CODE' =>
(bool)$shopConfig->get('show_code', false),
'order' => $data->cart,
'billing_address' => @$data->cart->billing_address,
'shipping_address' => @$data->cart->shipping_address,
'vendor' => $data->vendor,
'customer' => @$data->customer,
'acl.address' => !$acl['notify'] ||
$acl['billingaddress'] || $acl['shippingaddress'],
'acl.billingaddress' => !$acl['notify'] ||
$acl['billingaddress'],
'acl.shippingaddress' => !$acl['notify'] ||
$acl['shippingaddress'],
);
$texts = array(
'BILLING_ADDRESS' =>
JText::_('HIKASHOP_BILLING_ADDRESS'),
'SHIPPING_ADDRESS' =>
JText::_('HIKASHOP_SHIPPING_ADDRESS'),
'SUMMARY_OF_YOUR_SALE' =>
JText::_('SUMMARY_OF_YOUR_SALE'),
'MAIL_HEADER' => JText::_('HIKASHOP_MAIL_HEADER'),
'PRODUCT_NAME' => JText::_('CART_PRODUCT_NAME'),
'PRODUCT_CODE' => JText::_('CART_PRODUCT_CODE'),
'PRODUCT_PRICE' =>
JText::_('CART_PRODUCT_UNIT_PRICE'),
'PRODUCT_QUANTITY' =>
JText::_('CART_PRODUCT_QUANTITY'),
'PRODUCT_TOTAL' => JText::_('HIKASHOP_TOTAL'),
'ADDITIONAL_INFORMATION' =>
JText::_('ADDITIONAL_INFORMATION'),
'ORDER_TITLE' => JText::_('YOUR_SALE'),
'HI_VENDOR' => JText::sprintf('HI_VENDOR',
$vendor_name),
'ORDER_CHANGED' =>
JText::sprintf('ORDER_STATUS_CHANGED_TO', $url,
$data->mail_status),
'SALE_BEGIN_MESSAGE' =>
JText::sprintf('MAIL_SALE_BEGIN_MESSAGE', $order_number,
$customer_name, HIKASHOP_LIVE),
'SALE_END_MESSAGE' =>
JText::sprintf('MAIL_SALE_END_MESSAGE', HIKASHOP_LIVE) .
'<br/>' . JText::sprintf('BEST_REGARDS_VENDOR',
$vendor_name),
'CUSTOMFIELD_NAME' => '',
'FOOTER_COLSPAN' => 3,
);
if(!empty($data->usermsg->usermsg))
$texts['ORDER_CHANGED'] = $data->usermsg->usermsg;
$templates = array();
$products_ids = array();
foreach($data->cart->products as $item) {
$products_ids[] = $item->product_id;
}
$productClass->getProducts($products_ids);
$cartProducts = array();
$cartFooters = array();
if(!empty($data->cart->products)) {
$fields = null;
if(hikashop_level(1) && $acl['customfields']) {
$null = null;
$fields =
$fieldsClass->getFields('display:mail_status_notif=1', $null,
'product');
if(!empty($fields)){
$product_customfields = array();
$usefulFields = array();
foreach($fields as $field) {
$namekey = $field->field_namekey;
foreach($productClass->all_products as $product) {
if(!empty($product->$namekey)) {
$usefulFields[] = $field;
break;
}
}
}
$fields = $usefulFields;
}
if(!empty($fields)) {
foreach($fields as $field) {
$texts['FOOTER_COLSPAN']++;
$texts['CUSTOMFIELD_NAME'] .= '<td
style="border-bottom:1px solid
#ddd;padding-bottom:3px;text-align:left;color:#1c8faf
!important;font-size:12px;font-weight:bold;">'.$fieldsClass->getFieldName($field).'</td>';
}
}
}
$group = $shopConfig->get('group_options', 0);
$subtotal = 0;
foreach($data->cart->products as $item) {
if($group && $item->order_product_option_parent_id)
continue;
$product = @$productClass->all_products[$item->product_id];
$cartProduct = array(
'PRODUCT_CODE' => $item->order_product_code,
'PRODUCT_QUANTIY' => $item->order_product_quantity,
'PRODUCT_IMG' => '',
'item' => $item,
'product' => $product,
);
if(!empty($item->images[0]->file_path)) {
$img = $imageHelper->getThumbnail($item->images[0]->file_path,
array(50, 50), array('forcesize' => true, 'scale'
=> 'outside'));
if($img->success) {
$image = str_replace('../', HIKASHOP_LIVE, $img->url);
$cartProduct['PRODUCT_IMG'] = '<img
src="'.$image.'" alt=""
style="float:left;margin-top:3px;margin-bottom:3px;margin-right:6px;max-height:50px;max-width:50px;"/>';
}
}
$t = '<p>' . $item->order_product_name;
if($group) {
$display_item_price = false;
foreach($data->cart->products as $j => $optionElement) {
if($optionElement->order_product_option_parent_id !=
$item->order_product_id) continue;
if($optionElement->order_product_price > 0)
$display_item_price = true;
}
if($display_item_price) {
if($shopConfig->get('price_with_tax'))
$t .= '
'.$currencyHelper->format($item->order_product_price +
$item->order_product_tax, $data->order->order_currency_id);
else
$t .= '
'.$currencyHelper->format($item->order_product_price,
$data->order->order_currency_id);
}
}
$t .= '</p>';
if(!empty($itemFields)) {
foreach($itemFields as $field) {
$namekey = $field->field_namekey;
if(!isset($item->$namekey) || !strlen($item->$namekey))
continue;
$t .= '<p>' . $fieldsClass->getFieldName($field) .
': ' . $fieldsClass->show($field, $item->$namekey,
'user_email') . '</p>';
}
}
$cartProduct['CUSTOMFIELD_VALUE'] = '';
if(!empty($fields) && hikashop_level(1)){
foreach($fields as $field){
$namekey = $field->field_namekey;
$productData = @$productClass->all_products[$item->product_id];
$cartProduct['CUSTOMFIELD_VALUE'] .= '<td
style="border-bottom:1px solid
#ddd;padding-bottom:3px;text-align:right">'.(empty($productData->$namekey)?'':$fieldsClass->show($field,$productData->$namekey)).'</td>';
}
}
if($group) {
foreach($data->cart->products as $j => $optionElement) {
if($optionElement->order_product_option_parent_id !=
$item->order_product_id) continue;
$item->order_product_price
+=$optionElement->order_product_price;
$item->order_product_tax +=$optionElement->order_product_tax;
$item->order_product_total_price+=$optionElement->order_product_total_price;
$item->order_product_total_price_no_vat+=$optionElement->order_product_total_price_no_vat;
$t .= '<p
class="hikashop_order_option_name">' .
$optionElement->order_product_name;
if($optionElement->order_product_price > 0) {
if($shopConfig->get('price_with_tax'))
$t .= ' ( +
'.$currencyHelper->format($optionElement->order_product_price +
$optionElement->order_product_tax,$data->order->order_currency_id).'
)';
else
$t .= ' ( +
'.$currencyHelper->format($optionElement->order_product_price,$data->order->order_currency_id).'
)';
}
$t .= '</p>';
}
}
$cartProduct['PRODUCT_NAME'] = $t;
$t = '';
$statusDownload =
explode(',',$shopConfig->get('order_status_for_download','confirmed,shipped'));
if(!empty($item->files) &&
in_array($data->order->order_status, $statusDownload)) {
}
$cartProduct['PRODUCT_DOWNLOAD'] = $t;
if($shopConfig->get('price_with_tax')) {
$unit_price =
$currencyHelper->format($item->order_product_price+$item->order_product_tax,
$data->order->order_currency_id);
$total_price =
$currencyHelper->format($item->order_product_total_price,
$data->order->order_currency_id);
$subtotal += $item->order_product_total_price;
} else {
$unit_price = $currencyHelper->format($item->order_product_price,
$data->order->order_currency_id);
$total_price =
$currencyHelper->format($item->order_product_total_price_no_vat,
$data->order->order_currency_id);
$subtotal += $item->order_product_total_price_no_vat;
}
$cartProduct['PRODUCT_PRICE'] = $unit_price;
$cartProduct['PRODUCT_TOTAL'] = $total_price;
$cartProducts[] = $cartProduct;
}
$templates['PRODUCT_LINE'] = $cartProducts;
if(bccomp($data->order->order_discount_price,0,5) ||
bccomp($data->order->order_shipping_price,0,5) ||
bccomp($data->order->order_payment_price,0,5) ||
($data->cart->full_total->prices[0]->price_value!=$data->cart->full_total->prices[0]->price_value_with_tax)
|| !empty($data->cart->additional)) {
$cartFooters[] = array(
'NAME' => JText::_('SUBTOTAL'),
'VALUE' =>
$currencyHelper->format($subtotal,$data->order->order_currency_id)
);
}
if(bccomp($data->order->order_discount_price,0,5)) {
if($shopConfig->get('price_with_tax'))
$t = $currencyHelper->format($data->order->order_discount_price
* -1, $data->order->order_currency_id);
else
$t =
$currencyHelper->format(($data->order->order_discount_price -
@$data->order->order_discount_tax) * -1,
$data->order->order_currency_id);
$cartFooters[] = array(
'NAME' => JText::_('HIKASHOP_COUPON'),
'VALUE' => $t
);
}
if(bccomp($data->order->order_shipping_price,0,5)) {
if($shopConfig->get('price_with_tax'))
$t =
$currencyHelper->format($data->order->order_shipping_price,
$data->order->order_currency_id);
else
$t = $currencyHelper->format($data->order->order_shipping_price
- @$data->order->order_shipping_tax,
$data->order->order_currency_id);
$cartFooters[] = array(
'NAME' => JText::_('HIKASHOP_SHIPPING'),
'VALUE' => $t
);
}
if(bccomp($data->order->order_payment_price,0,5)) {
if($shopConfig->get('price_with_tax'))
$t = $currencyHelper->format($data->cart->order_payment_price,
$data->cart->order_currency_id);
else
$t = $currencyHelper->format($data->cart->order_payment_price -
@$data->cart->order_payment_tax,
$data->cart->order_currency_id);
$cartFooters[] = array(
'NAME' => JText::_('HIKASHOP_PAYMENT'),
'VALUE' => $t
);
}
if(!empty($data->cart->additional)) {
$exclude_additionnal = explode(',',
$shopConfig->get('order_additional_hide', ''));
foreach($data->cart->additional as $additional) {
if(in_array($additional->order_product_name, $exclude_additionnal))
continue;
if(!empty($additional->order_product_price) ||
empty($additionaltionnal->order_product_options)) {
if($shopConfig->get('price_with_tax'))
$t = $currencyHelper->format($additional->order_product_price +
@$additional->order_product_tax,
$data->order->order_currency_id);
else
$t = $currencyHelper->format($additional->order_product_price,
$data->order->order_currency_id);
} else {
$t = $additional->order_product_options;
}
$cartFooters[] = array(
'NAME' => JText::_($additional->order_product_name),
'VALUE' => $t
);
}
}
if($data->cart->full_total->prices[0]->price_value !=
$data->cart->full_total->prices[0]->price_value_with_tax) {
if($shopConfig->get('detailed_tax_display') &&
!empty($data->cart->order_tax_info)) {
foreach($data->cart->order_tax_info as $tax) {
$cartFooters[] = array(
'NAME' => $tax->tax_namekey,
'VALUE' =>
$currencyHelper->format($tax->tax_amount,
$data->order->order_currency_id)
);
}
} else {
$cartFooters[] = array(
'NAME' => JText::_('ORDER_TOTAL_WITHOUT_VAT'),
'VALUE' =>
$currencyHelper->format($data->cart->full_total->prices[0]->price_value,
$data->order->order_currency_id)
);
}
$cartFooters[] = array(
'NAME' => JText::_('ORDER_TOTAL_WITH_VAT'),
'VALUE' =>
$currencyHelper->format($data->cart->full_total->prices[0]->price_value_with_tax,
$data->order->order_currency_id)
);
} else {
$cartFooters[] = array(
'NAME' =>
JText::_('HIKAM_CUSTOMER_FINAL_TOTAL'),
'VALUE' =>
$currencyHelper->format($data->cart->full_total->prices[0]->price_value_with_tax,
$data->order->order_currency_id)
);
}
$vendor_price =
(float)hikamarket::toFloat($data->cart->order_vendor_price);
if($vendor_price < 0)
$vendor_price +=
$data->cart->full_total->prices[0]->price_value_with_tax;
if($vendor_price != 0) {
$cartFooters[] = array(
'NAME' => JText::_('HIKAM_VENDOR_FINAL_TOTAL'),
'VALUE' => $currencyHelper->format($vendor_price,
$data->order->order_currency_id)
);
}
$templates['ORDER_FOOTER'] = $cartFooters;
}
if(!empty($data->cart->order_payment_method)) {
if(!is_numeric($data->cart->order_payment_id)) {
$vars['PAYMENT'] =
$data->cart->order_payment_method.'
'.$data->cart->order_payment_id;
} else {
$paymentClass = hikamarket::get('shop.class.payment');
$payment = $paymentClass->get($data->cart->order_payment_id);
if(!empty($payment))
$vars['PAYMENT'] = $payment->payment_name;
unset($paymentClass);
}
}
if(!empty($data->cart->order_shipping_id)) {
$shippingClass = hikamarket::get('shop.class.shipping');
if(!empty($data->cart->order_shipping_method)) {
if(!is_numeric($data->cart->order_shipping_id)) {
$shipping_name =
$shippingClass->getShippingName($data->cart->order_shipping_method,
$data->cart->order_shipping_id);
$vars['SHIPPING'] = $shipping_name;
$vars['SHIPPING_TXT'] = $vars['SHIPPING'];
} else {
$shipping =
$shippingClass->get($data->cart->order_shipping_id);
$vars['SHIPPING'] = $shipping->shipping_name;
$vars['SHIPPING_TXT'] = $vars['SHIPPING'];
}
} else {
$shippings_data = array();
$shipping_ids = explode(';',
$data->cart->order_shipping_id);
$shippingClass = hikamarket::get('shop.class.shipping');
foreach($shipping_ids as $key) {
$shipping_data = '';
list($k, $w) = explode('@', $key);
$shipping_id = $k;
if(isset($data->cart->shippings[$shipping_id])) {
$shipping = $data->cart->shippings[$shipping_id];
$shipping_data = $shipping->shipping_name;
} else {
foreach($data->cart->products as $order_product) {
if($order_product->order_product_shipping_id == $key) {
if(!is_numeric($order_product->order_product_shipping_id)) {
$shipping_name =
$shippingClass->getShippingName($order_product->order_product_shipping_method,
$shipping_id);
$shipping_data = $shipping_name;
} else {
$shipping_method_data = $shippingClass->get($shipping_id);
$shipping_data = $shipping_method_data->shipping_name;
}
break;
}
}
if(empty($shipping_data))
$shipping_data = '[ ' . $key . ' ]';
}
if(isset($data->cart->order_shipping_params->prices[$key])) {
$price_params =
$data->cart->order_shipping_params->prices[$key];
if($shopConfig->get('price_with_tax'))
$shipping_data .= ' (' .
$currencyHelper->format($price_params->price_with_tax,
$data->cart->order_currency_id) . ')';
else
$shipping_data .= ' (' .
$currencyHelper->format($price_params->price_with_tax -
@$price_params->tax, $data->cart->order_currency_id) .
')';
}
$shippings_data[] = $shipping_data;
}
if(!empty($shippings_data)) {
$vars['SHIPPING'] =
'<ul><li>'.implode('</li><li>',
$shippings_data).'</li></ul>';
$vars['SHIPPING_TXT'] = ' - ' . implode("\r\n -
", $shippings_data);
}
}
unset($shippingClass);
} else {
$vars['SHIPPING'] = '';
}
ob_start();
$sep = '';
if(hikashop_level(2)) {
$fields =
$fieldsClass->getFields('display:mail_status_notif=1',$data,'order','');
foreach($fields as $fieldName => $oneExtraField) {
if(isset($data->$fieldName) &&
!isset($data->cart->$fieldName))
$data->cart->$fieldName = $data->$fieldName;
if(empty($data->cart->$fieldName))
continue;
echo $sep .
$fieldsClass->trans($oneExtraField->field_realname).' :
'.$fieldsClass->show($oneExtraField,
$data->cart->$fieldName,'user_email');
$sep = '<br />';
}
}
JPluginHelper::importPlugin('hikashop');
JFactory::getApplication()->triggerEvent('onAfterOrderProductsListingDisplay',
array(&$data->cart, 'email_notification_html'));
$content = ob_get_clean();
$vars['ORDER_SUMMARY'] = $content;
$vars['BILLING_ADDRESS'] = '';
$vars['SHIPPING_ADDRESS'] = '';
$params = null;
$js = '';
$template = trim(hikamarket::getLayout($view, 'address_template',
$params, $js));
if(!empty($data->cart->billing_address) &&
!empty($data->cart->fields)) {
$billing = $template;
foreach($data->cart->fields as $field) {
$fieldname = $field->field_namekey;
if(!empty($data->cart->billing_address->$fieldname))
$billing = str_replace('{' . $fieldname . '}',
$fieldsClass->show($field,
$data->cart->billing_address->$fieldname, 'user_email'),
$billing);
}
$vars['BILLING_ADDRESS'] =
str_replace(array("\r\n","\r","\n"),'<br/>',preg_replace('#{(?:(?!}).)*}#i','',$billing));
}
if(!empty($data->cart->override_shipping_address)) {
$vars['SHIPPING_ADDRESS'] =
$data->cart->override_shipping_address;
} elseif(!empty($data->cart->order_shipping_id) &&
!empty($data->cart->shipping_address)) {
$shipping = $template;
foreach($data->cart->fields as $field) {
$fieldname = $field->field_namekey;
if(!empty($data->cart->shipping_address->$fieldname))
$shipping = str_replace('{' . $fieldname . '}',
$fieldsClass->show($field,
$data->cart->shipping_address->$fieldname,
'user_email'), $shipping);
}
$vars['SHIPPING_ADDRESS'] = str_replace(array("\r\n",
"\r", "\n"), '<br/>',
preg_replace('#{(?:(?!}).)*}#i', '', $shipping));
} else {
$vars['SHIPPING_ADDRESS'] = $vars['BILLING_ADDRESS'];
}
PK�{�[��t t *mail/order_status_notification.preview.phpnu�[���<?php
/**
* @package HikaMarket for Joomla!
* @version 3.1.1
* @author Obsidev S.A.R.L.
* @copyright (C) 2011-2020 OBSIDEV. All rights reserved.
* @license GNU/GPLv3 http://www.gnu.org/licenses/gpl-3.0.html
*/
defined('_JEXEC') or die('Restricted access');
?><?php
class market_order_status_notificationPreviewMaker {
public $displaySubmitButton = false;
public $type = 'order';
public function prepareMail($data = null) {
if(empty($data))
return $this->getDefaultData();
$orderClass = hikashop_get('class.order');
$order = $orderClass->loadFullOrder((int)$data);
if(empty($order->mail_status))
$order->mail_status =
hikamarket::orderStatus(@$order->order_status);
else
$order->mail_status =
hikamarket::orderStatus($order->mail_status);
if(isset($order->hikamarket->vendor)) {
$order->vendor = $order->hikamarket->vendor;
} else {
$vendorClass = hikamarket::get('class.vendor');
$vendor_id = max(1, (int)$order->order_vendor_id);
$order->vendor = $vendorClass->get($vendor_id);
}
$mailClass = hikamarket::get('class.mail');
$mail = $mailClass->load('order_status_notification',
$order);
$mail->hikamarket = true;
if(empty($mail->subject))
$mail->subject =
'MARKET_ORDER_STATUS_NOTIFICATION_SUBJECT';
$mail->dst_email = $order->vendor->vendor_email;
$mail->dst_name = $order->vendor->vendor_name;
return $mail;
}
public function getDefaultData() {
}
public function getSelector($data) {
$nameboxType = hikashop_get('type.namebox');
$html = $nameboxType->display(
'data',
(int)$data,
hikashopNameboxType::NAMEBOX_SINGLE,
'order',
array(
'delete' => false,
'default_text' =>
'<em>'.JText::_('HIKA_NONE').'</em>',
'returnOnEmpty' => false,
)
);
if(!$html){
hikashop_display(JText::_('PLEASE_FIRST_CREATE_AN_ORDER'),
'info');
return;
}
if(empty($data)) {
echo
hikashop_display(Jtext::_('PLEASE_SELECT_AN_ORDER_FOR_THE_PREVIEW'));
}
?>
<dl class="hika_options">
<dt><?php echo JText::_('HIKASHOP_ORDER');
?></dt>
<dd><?php echo $html; ?></dd>
</dl>
<script type="text/javascript">
window.Oby.ready(function() {
var w = window;
if(!w.oNameboxes['data'])
return;
w.oNameboxes['data'].register('set', function(e) {
hikashop.submitform('preview','adminForm');
});
});
</script>
<?php
}
}
PK�{�[�ŊVGGmail/product_approval.html.phpnu�[���<?php
/**
* @package HikaMarket for Joomla!
* @version 3.1.1
* @author Obsidev S.A.R.L.
* @copyright (C) 2011-2020 OBSIDEV. All rights reserved.
* @license GNU/GPLv3 http://www.gnu.org/licenses/gpl-3.0.html
*/
defined('_JEXEC') or die('Restricted access');
?><style type="text/css">
body.hikashop_mail { background-color:#ffffff; color:#575757; }
.ReadMsgBody{width:100%;}
.ExternalClass{width:100%;}
div, p, a, li, td {-webkit-text-size-adjust:none;}
@media (min-width:600px){
#hikamarket_mail {width:600px !important;margin:auto !important;}
.pict img {max-width:500px !important;height:auto !important;}
}
@media (max-width:330px){
#hikamarket_mail{width:300px !important; margin:auto !important;}
table[class=w600], td[class=w600], table[class=w598], td[class=w598],
table[class=w500], td[class=w500], img[class="w600"]{width:100%
!important;}
td[class="w49"] { width: 10px !important;}
.pict img {max-width:278px; height:auto !important;}
}
@media (min-width:331px) and (max-width:480px){
#hikamarket_mail{width:450px !important; margin:auto !important;}
table[class=w600], td[class=w600], table[class=w598], td[class=w598],
table[class=w500], td[class=w500], img[class="w600"]{width:100%
!important;}
td[class="w49"] { width: 20px !important;}
.pict img {max-width:408px; height:auto !important;}
}
h1{color:#1c8faf;font-size:16px;font-weight:bold;border-bottom:1px solid
#ddd; padding-bottom:10px;}
h2{color:#89a9c1;font-size:14px;font-weight:bold;margin-top:20px;margin-bottom:5px;border-bottom:1px
solid #d6d6d6;padding-bottom:4px;}
a:visited{cursor:pointer;color:#2d9cbb;text-decoration:none;border:none;}
</style>
<div id="hikamarket_mail" style="font-family:Arial,
Helvetica,sans-serif;font-size:12px;line-height:18px;width:100%;background-color:#ffffff;padding-bottom:20px;color:#5b5b5b;">
<div class="hikashop_online" style="font-family:Arial,
Helvetica,sans-serif;font-size:11px;line-height:18px;color:#6a5c6b;text-decoration:none;margin:10px;text-align:center;">
<a
style="cursor:pointer;color:#2d9cbb;text-decoration:none;border:none;"
href="{VAR:URL}">
<span class="hikashop_online"
style="color:#6a5c6b;text-decoration:none;font-size:11px;margin-top:10px;margin-bottom:10px;text-align:center;">
{TXT:HIKASHOP_MAIL_HEADER}
</span>
</a>
</div>
<table class="w600" style="font-family:Arial, Helvetica,
sans-serif;font-size:12px;line-height:18px;margin:auto;background-color:#ebebeb;"
border="0" cellspacing="0" cellpadding="0"
width="600" align="center">
<tr style="line-height: 0px;">
<td class="w600" style="line-height:0px"
width="600" valign="bottom">
<img class="w600"
src="{VAR:LIVE_SITE}media/com_hikamarket/images/mail/header.png"
border="0" alt="" />
</td>
</tr>
<tr>
<td class="w600" style="" width="600"
align="center">
<table class="w600" border="0"
cellspacing="0" cellpadding="0" width="600"
style="margin:0px;font-family: Arial, Helvetica,
sans-serif;font-size:12px;line-height:18px;">
<tr>
<td class="w20" width="20"></td>
<td class="w560 pict" style="text-align:left;
color:#575757" width="560">
<div id="title" style="font-family: Arial,
Helvetica, sans-serif;font-size:12px;line-height:18px;">
<img
src="{VAR:LIVE_SITE}/media/com_hikashop/images/icons/icon-48-product.png"
border="0" alt=""
style="float:left;margin-right:4px;"/>
<h1 style="color:#1c8faf
!important;font-size:16px;font-weight:bold; border-bottom:1px solid #ddd;
padding-bottom:10px">
{TXT:MAIL_TITLE}
</h1>
</div>
</td>
<td class="w20" width="20"></td>
</tr>
<tr>
<td class="w20" width="20"></td>
<td style="border:1px solid
#adadad;background-color:#ffffff;">
<div class="w550" width="550"
id="content" style="font-family: Arial, Helvetica,
sans-serif;font-size:12px;line-height:18px;margin-left:5px;margin-right:5px;">
<p>
<h3 style="color:#393939 !important; font-size:14px;
font-weight:normal;
font-weight:bold;margin-bottom:0px;padding:0px;">{TXT:HI_VENDOR}</h3>
{TXT:PRODUCT_APPROVAL_BEGIN_MESSAGE}
</p>
<!--{IF:product}-->
<p>
<strong>{TXT:PRODUCT}</strong>: <a
href="{VAR:PRODUCT_URL}">{VAR:product.product_name}</a>
</p>
<!--{ENDIF:product}-->
<!--{IF:products}-->
<ul>
<!--{START:products}-->
<li><a
href="{LINEVAR:url}">{LINEVAR:product_name}</a></li>
<!--{END:products}-->
</ul>
<!--{ENDIF:products}-->
<!--{IF:message}-->
<h4>{TXT:APPROVAL_ADDITIONAL_MESSAGE}</h4>
<p>
{VAR:message}
</p>
<!--{ENDIF:message}-->
</div>
</td>
<td class="w20" width="20"></td>
</tr>
</table>
</td>
</tr>
<tr style="line-height: 0px;">
<td class="w600" style="line-height:0px"
width="600" valign="top">
<img class="w600"
src="{VAR:LIVE_SITE}/media/com_hikamarket/images/mail/footer.png"
border="0" alt="--" />
</td>
</tr>
</table>
</div>
PK�{�[�$�Ĭ�!mail/product_approval.preload.phpnu�[���<?php
/**
* @package HikaMarket for Joomla!
* @version 3.1.1
* @author Obsidev S.A.R.L.
* @copyright (C) 2011-2020 OBSIDEV. All rights reserved.
* @license GNU/GPLv3 http://www.gnu.org/licenses/gpl-3.0.html
*/
defined('_JEXEC') or die('Restricted access');
?><?php
$vendor_name = $data->vendor->vendor_name;
$vars = array(
'LIVE_SITE' => HIKASHOP_LIVE,
'PRODUCT_URL' => @$product_url,
'vendor' => $data->vendor,
'message' => !empty($data->message) ?
nl2br($data->message) : '',
);
if(isset($data->product)) {
$vars['product'] = $data->product;
$vars['PRODUCT_URL'] =
hikashop_frontendLink('index.php?option=com_hikashop&ctrl=product&task=show&cid='.(int)$data->product->product_id);
}
if(isset($data->products)) {
foreach($data->products as &$p) {
$p->url =
hikashop_frontendLink('index.php?option=com_hikashop&ctrl=product&task=show&cid='.(int)$p->product_id);
}
$vars['products'] = true;
$templates['products'] = $data->products;
}
$texts = array(
'MAIL_TITLE' =>
JText::_('HIKAM_EMAIL_PRODUCT_APPROVAL'),
'MAIL_HEADER' =>
JText::_('HIKAMARKET_MAIL_HEADER'),
'HI_VENDOR' => JText::sprintf('HI_VENDOR',
$vendor_name),
);
PK�{�[r�;{9 9 !mail/product_approval.preview.phpnu�[���<?php
/**
* @package HikaMarket for Joomla!
* @version 3.1.1
* @author Obsidev S.A.R.L.
* @copyright (C) 2011-2020 OBSIDEV. All rights reserved.
* @license GNU/GPLv3 http://www.gnu.org/licenses/gpl-3.0.html
*/
defined('_JEXEC') or die('Restricted access');
?><?php
class market_product_approvalPreviewMaker {
public $displaySubmitButton = true;
public $type = 'product';
public function prepareMail($data = null) {
if(empty($data))
return $this->getDefaultData();
$producClass = hikashop_get('class.product');
$vendorClass = hikamarket::get('class.vendor');
$params = new stdClass();
$params->product =
$producClass->get((int)$data['product']);
$params->vendor = $vendorClass->get(
(int)$params->product->product_vendor_id );
$params->message = $data['message'];
$mailClass = hikamarket::get('class.mail');
$mail = $mailClass->load('product_approval', $params);
$mail->hikamarket = true;
if(empty($mail->subject))
$mail->subject = 'MARKET_PRODUCT_APPROVAL_SUBJECT';
return $mail;
}
public function getDefaultData() {
return array(
'product' => 0,
'message' => '',
);
}
public function getSelector($data) {
$nameboxType = hikashop_get('type.namebox');
$html = $nameboxType->display(
'data[product]',
(int)$data['product'],
hikashopNameboxType::NAMEBOX_SINGLE,
'product',
array(
'delete' => false,
'default_text' =>
'<em>'.JText::_('HIKA_NONE').'</em>',
'returnOnEmpty' => false,
)
);
if(!$html) {
hikashop_display(JText::_('PLEASE_FIRST_CREATE_A_PRODUCT'),
'info');
return;
}
if(empty($data)) {
echo
hikashop_display(Jtext::_('PLEASE_SELECT_A_PRODUCT_FOR_THE_PREVIEW'));
}
?>
<dl class="hika_options">
<dt><?php echo JText::_('HIKA_PRODUCT_NAME');
?></dt>
<dd><?php echo $html; ?></dd>
</dl>
<dl class="hika_options">
<dt><?php echo JText::_('MESSAGE'); ?></dt>
<dd><textarea name="data[message]"
style="width:90%;"><?php echo
htmlentities(@$data['message']);
?></textarea></dd>
</dl>
<script type="text/javascript">
window.Oby.ready(function() {
var w = window;
if(!w.oNameboxes['data_product'])
return;
w.oNameboxes['data_product'].register('set',
function(e) {
hikashop.submitform('preview','adminForm');
});
});
</script>
<?php
}
}
PK�{�[��E hhmail/product_creation.html.phpnu�[���<?php
/**
* @package HikaMarket for Joomla!
* @version 3.1.1
* @author Obsidev S.A.R.L.
* @copyright (C) 2011-2020 OBSIDEV. All rights reserved.
* @license GNU/GPLv3 http://www.gnu.org/licenses/gpl-3.0.html
*/
defined('_JEXEC') or die('Restricted access');
?><style type="text/css">
body.hikashop_mail { background-color:#ffffff; color:#575757; }
.ReadMsgBody{width:100%;}
.ExternalClass{width:100%;}
div, p, a, li, td {-webkit-text-size-adjust:none;}
@media (min-width:600px){
#hikamarket_mail {width:600px !important;margin:auto !important;}
.pict img {max-width:500px !important;height:auto !important;}
}
@media (max-width:330px){
#hikamarket_mail{width:300px !important; margin:auto !important;}
table[class=w600], td[class=w600], table[class=w598], td[class=w598],
table[class=w500], td[class=w500], img[class="w600"]{width:100%
!important;}
td[class="w49"] { width: 10px !important;}
.pict img {max-width:278px; height:auto !important;}
}
@media (min-width:331px) and (max-width:480px){
#hikamarket_mail{width:450px !important; margin:auto !important;}
table[class=w600], td[class=w600], table[class=w598], td[class=w598],
table[class=w500], td[class=w500], img[class="w600"]{width:100%
!important;}
td[class="w49"] { width: 20px !important;}
.pict img {max-width:408px; height:auto !important;}
}
h1{color:#1c8faf;font-size:16px;font-weight:bold;border-bottom:1px solid
#ddd; padding-bottom:10px;}
h2{color:#89a9c1;font-size:14px;font-weight:bold;margin-top:20px;margin-bottom:5px;border-bottom:1px
solid #d6d6d6;padding-bottom:4px;}
a:visited{cursor:pointer;color:#2d9cbb;text-decoration:none;border:none;}
</style>
<div id="hikamarket_mail" style="font-family:Arial,
Helvetica,sans-serif;font-size:12px;line-height:18px;width:100%;background-color:#ffffff;padding-bottom:20px;color:#5b5b5b;">
<div class="hikashop_online" style="font-family:Arial,
Helvetica,sans-serif;font-size:11px;line-height:18px;color:#6a5c6b;text-decoration:none;margin:10px;text-align:center;">
<a
style="cursor:pointer;color:#2d9cbb;text-decoration:none;border:none;"
href="{VAR:URL}">
<span class="hikashop_online"
style="color:#6a5c6b;text-decoration:none;font-size:11px;margin-top:10px;margin-bottom:10px;text-align:center;">
{TXT:HIKASHOP_MAIL_HEADER}
</span>
</a>
</div>
<table class="w600" style="font-family:Arial, Helvetica,
sans-serif;font-size:12px;line-height:18px;margin:auto;background-color:#ebebeb;"
border="0" cellspacing="0" cellpadding="0"
width="600" align="center">
<tr style="line-height: 0px;">
<td class="w600" style="line-height:0px"
width="600" valign="bottom">
<img class="w600"
src="{VAR:LIVE_SITE}media/com_hikashop/images/mail/header_black.png"
border="0" alt="" />
</td>
</tr>
<tr>
<td class="w600" style="" width="600"
align="center">
<table class="w600" border="0"
cellspacing="0" cellpadding="0" width="600"
style="margin:0px;font-family: Arial, Helvetica,
sans-serif;font-size:12px;line-height:18px;">
<tr>
<td class="w20" width="20"></td>
<td class="w560 pict" style="text-align:left;
color:#575757" width="560">
<div id="title" style="font-family: Arial,
Helvetica, sans-serif;font-size:12px;line-height:18px;">
<img
src="{VAR:LIVE_SITE}/media/com_hikashop/images/icons/icon-48-product.png"
border="0" alt=""
style="float:left;margin-right:4px;"/>
<h1 style="color:#1c8faf
!important;font-size:16px;font-weight:bold; border-bottom:1px solid #ddd;
padding-bottom:10px">
{TXT:MAIL_TITLE}
</h1>
</div>
</td>
<td class="w20" width="20"></td>
</tr>
<tr>
<td class="w20" width="20"></td>
<td style="border:1px solid
#adadad;background-color:#ffffff;">
<div class="w550" width="550"
id="content" style="font-family: Arial, Helvetica,
sans-serif;font-size:12px;line-height:18px;margin-left:5px;margin-right:5px;">
<p>
<h3 style="color:#393939 !important; font-size:14px;
font-weight:normal;
font-weight:bold;margin-bottom:0px;padding:0px;">{TXT:HI_ADMIN}</h3>
{TXT:PRODUCT_CREATION_BEGIN_MESSAGE}
</p>
<p>
<strong>{TXT:VENDOR}</strong>: <a
href="{VAR:VENDOR_URL}">{VAR:vendor.vendor_name}</a>
</p>
<p>
<strong>{TXT:PRODUCT}</strong>: <a
href="{VAR:PRODUCT_URL}">{VAR:product.product_name}</a>
</p>
</div>
</td>
<td class="w20" width="20"></td>
</tr>
</table>
</td>
</tr>
<tr style="line-height: 0px;">
<td class="w600" style="line-height:0px"
width="600" valign="top">
<img class="w600"
src="{VAR:LIVE_SITE}/media/com_hikashop/images/mail/footer_black.png"
border="0" alt="--" />
</td>
</tr>
</table>
</div>
PK�{�[�++!mail/product_creation.preload.phpnu�[���<?php
/**
* @package HikaMarket for Joomla!
* @version 3.1.1
* @author Obsidev S.A.R.L.
* @copyright (C) 2011-2020 OBSIDEV. All rights reserved.
* @license GNU/GPLv3 http://www.gnu.org/licenses/gpl-3.0.html
*/
defined('_JEXEC') or die('Restricted access');
?><?php
$vars = array(
'LIVE_SITE' => HIKASHOP_LIVE,
'PRODUCT_URL' =>
HIKASHOP_LIVE.'administrator/index.php?option=com_hikashop&ctrl=product&task=edit&cid='.$data->product->product_id,
'VENDOR_URL'=>
HIKASHOP_LIVE.'administrator/index.php?option=com_hikamarket&ctrl=vendor&task=edit&cid='.$data->vendor->vendor_id,
'product' => $data->product,
'vendor' => $data->vendor
);
$texts = array(
'MAIL_TITLE' =>
JText::_('HIKAM_EMAIL_PRODUCT_CREATION'),
'MAIL_HEADER' =>
JText::_('HIKAMARKET_MAIL_HEADER'),
);
PK�{�[�{��!mail/product_creation.preview.phpnu�[���<?php
/**
* @package HikaMarket for Joomla!
* @version 3.1.1
* @author Obsidev S.A.R.L.
* @copyright (C) 2011-2020 OBSIDEV. All rights reserved.
* @license GNU/GPLv3 http://www.gnu.org/licenses/gpl-3.0.html
*/
defined('_JEXEC') or die('Restricted access');
?><?php
class market_product_creationPreviewMaker {
public $displaySubmitButton = false;
public $type = 'product';
public function prepareMail($data = null) {
if(empty($data))
return $this->getDefaultData();
$producClass = hikashop_get('class.product');
$vendorClass = hikamarket::get('class.vendor');
$params = new stdClass();
$params->product = $producClass->get((int)$data);
$params->vendor = $vendorClass->get(
(int)$params->product->product_vendor_id );
$mailClass = hikamarket::get('class.mail');
$mail = $mailClass->load('product_creation', $params);
$mail->hikamarket = true;
if(empty($mail->subject))
$mail->subject = 'MARKET_PRODUCT_CREATION_SUBJECT';
return $mail;
}
public function getDefaultData() {
}
public function getSelector($data) {
$nameboxType = hikashop_get('type.namebox');
$html = $nameboxType->display(
'data',
(int)$data,
hikashopNameboxType::NAMEBOX_SINGLE,
'product',
array(
'delete' => false,
'default_text' =>
'<em>'.JText::_('HIKA_NONE').'</em>',
'returnOnEmpty' => false,
)
);
if(!$html) {
hikashop_display(JText::_('PLEASE_FIRST_CREATE_A_PRODUCT'),
'info');
return;
}
if(empty($data)) {
echo
hikashop_display(Jtext::_('PLEASE_SELECT_A_PRODUCT_FOR_THE_PREVIEW'));
}
?>
<dl class="hika_options">
<dt><?php echo JText::_('HIKA_PRODUCT_NAME');
?></dt>
<dd><?php echo $html; ?></dd>
</dl>
<script type="text/javascript">
window.Oby.ready(function() {
var w = window;
if(!w.oNameboxes['data'])
return;
w.oNameboxes['data'].register('set', function(e) {
hikashop.submitform('preview','adminForm');
});
});
</script>
<?php
}
}
PK�{�[�a��AAmail/product_decline.html.phpnu�[���<?php
/**
* @package HikaMarket for Joomla!
* @version 3.1.1
* @author Obsidev S.A.R.L.
* @copyright (C) 2011-2020 OBSIDEV. All rights reserved.
* @license GNU/GPLv3 http://www.gnu.org/licenses/gpl-3.0.html
*/
defined('_JEXEC') or die('Restricted access');
?><style type="text/css">
body.hikashop_mail { background-color:#ffffff; color:#575757; }
.ReadMsgBody{width:100%;}
.ExternalClass{width:100%;}
div, p, a, li, td {-webkit-text-size-adjust:none;}
@media (min-width:600px){
#hikamarket_mail {width:600px !important;margin:auto !important;}
.pict img {max-width:500px !important;height:auto !important;}
}
@media (max-width:330px){
#hikamarket_mail{width:300px !important; margin:auto !important;}
table[class=w600], td[class=w600], table[class=w598], td[class=w598],
table[class=w500], td[class=w500], img[class="w600"]{width:100%
!important;}
td[class="w49"] { width: 10px !important;}
.pict img {max-width:278px; height:auto !important;}
}
@media (min-width:331px) and (max-width:480px){
#hikamarket_mail{width:450px !important; margin:auto !important;}
table[class=w600], td[class=w600], table[class=w598], td[class=w598],
table[class=w500], td[class=w500], img[class="w600"]{width:100%
!important;}
td[class="w49"] { width: 20px !important;}
.pict img {max-width:408px; height:auto !important;}
}
h1{color:#1c8faf;font-size:16px;font-weight:bold;border-bottom:1px solid
#ddd; padding-bottom:10px;}
h2{color:#89a9c1;font-size:14px;font-weight:bold;margin-top:20px;margin-bottom:5px;border-bottom:1px
solid #d6d6d6;padding-bottom:4px;}
a:visited{cursor:pointer;color:#2d9cbb;text-decoration:none;border:none;}
</style>
<div id="hikamarket_mail" style="font-family:Arial,
Helvetica,sans-serif;font-size:12px;line-height:18px;width:100%;background-color:#ffffff;padding-bottom:20px;color:#5b5b5b;">
<div class="hikashop_online" style="font-family:Arial,
Helvetica,sans-serif;font-size:11px;line-height:18px;color:#6a5c6b;text-decoration:none;margin:10px;text-align:center;">
<a
style="cursor:pointer;color:#2d9cbb;text-decoration:none;border:none;"
href="{VAR:URL}">
<span class="hikashop_online"
style="color:#6a5c6b;text-decoration:none;font-size:11px;margin-top:10px;margin-bottom:10px;text-align:center;">
{TXT:HIKASHOP_MAIL_HEADER}
</span>
</a>
</div>
<table class="w600" style="font-family:Arial, Helvetica,
sans-serif;font-size:12px;line-height:18px;margin:auto;background-color:#ebebeb;"
border="0" cellspacing="0" cellpadding="0"
width="600" align="center">
<tr style="line-height: 0px;">
<td class="w600" style="line-height:0px"
width="600" valign="bottom">
<img class="w600"
src="{VAR:LIVE_SITE}media/com_hikamarket/images/mail/header.png"
border="0" alt="" />
</td>
</tr>
<tr>
<td class="w600" style="" width="600"
align="center">
<table class="w600" border="0"
cellspacing="0" cellpadding="0" width="600"
style="margin:0px;font-family: Arial, Helvetica,
sans-serif;font-size:12px;line-height:18px;">
<tr>
<td class="w20" width="20"></td>
<td class="w560 pict" style="text-align:left;
color:#575757" width="560">
<div id="title" style="font-family: Arial,
Helvetica, sans-serif;font-size:12px;line-height:18px;">
<img
src="{VAR:LIVE_SITE}/media/com_hikashop/images/icons/icon-48-product.png"
border="0" alt=""
style="float:left;margin-right:4px;"/>
<h1 style="color:#1c8faf
!important;font-size:16px;font-weight:bold; border-bottom:1px solid #ddd;
padding-bottom:10px">
{TXT:MAIL_TITLE}
</h1>
</div>
</td>
<td class="w20" width="20"></td>
</tr>
<tr>
<td class="w20" width="20"></td>
<td style="border:1px solid
#adadad;background-color:#ffffff;">
<div class="w550" width="550"
id="content" style="font-family: Arial, Helvetica,
sans-serif;font-size:12px;line-height:18px;margin-left:5px;margin-right:5px;">
<p>
<h3 style="color:#393939 !important; font-size:14px;
font-weight:normal;
font-weight:bold;margin-bottom:0px;padding:0px;">{TXT:HI_VENDOR}</h3>
{TXT:PRODUCT_DECLINE_BEGIN_MESSAGE}
</p>
<!--{IF:product}-->
<p>
<strong>{TXT:PRODUCT}</strong>: <a
href="{VAR:PRODUCT_URL}">{VAR:product.product_name}</a>
</p>
<!--{ENDIF:product}-->
<!--{IF:products}-->
<ul>
<!--{START:products}-->
<li><a
href="{LINEVAR:url}">{LINEVAR:product_name}</a></li>
<!--{END:products}-->
</ul>
<!--{ENDIF:products}-->
<!--{IF:message}-->
<h4>{TXT:PRODUCT_DECLINE_REASON}</h4>
<p>
{VAR:message}
</p>
<!--{ENDIF:message}-->
</div>
</td>
<td class="w20" width="20"></td>
</tr>
</table>
</td>
</tr>
<tr style="line-height: 0px;">
<td class="w600" style="line-height:0px"
width="600" valign="top">
<img class="w600"
src="{VAR:LIVE_SITE}/media/com_hikamarket/images/mail/footer.png"
border="0" alt="--" />
</td>
</tr>
</table>
</div>
PK�{�[�WJ
mail/product_decline.preload.phpnu�[���<?php
/**
* @package HikaMarket for Joomla!
* @version 3.1.1
* @author Obsidev S.A.R.L.
* @copyright (C) 2011-2020 OBSIDEV. All rights reserved.
* @license GNU/GPLv3 http://www.gnu.org/licenses/gpl-3.0.html
*/
defined('_JEXEC') or die('Restricted access');
?><?php
$vendor_name = $data->vendor->vendor_name;
$vars = array(
'LIVE_SITE' => HIKASHOP_LIVE,
'PRODUCT_URL' => '',
'vendor' => $data->vendor,
'message' => !empty($data->message) ?
nl2br($data->message) : '',
);
if(isset($data->product)) {
$vars['product'] = $data->product;
$vars['PRODUCT_URL'] =
hikashop_frontendLink('index.php?option=com_hikashop&ctrl=product&task=show&cid='.(int)$data->product->product_id);
}
if(isset($data->products)) {
foreach($data->products as &$p) {
$p->url =
hikashop_frontendLink('index.php?option=com_hikashop&ctrl=product&task=show&cid='.(int)$p->product_id);
}
$vars['products'] = $data->products;
}
$texts = array(
'MAIL_TITLE' =>
JText::_('HIKAM_EMAIL_PRODUCT_DECLINE'),
'MAIL_HEADER' =>
JText::_('HIKAMARKET_MAIL_HEADER'),
'HI_VENDOR' => JText::sprintf('HI_VENDOR',
$vendor_name),
);
PK�{�[�"��6 6
mail/product_decline.preview.phpnu�[���<?php
/**
* @package HikaMarket for Joomla!
* @version 3.1.1
* @author Obsidev S.A.R.L.
* @copyright (C) 2011-2020 OBSIDEV. All rights reserved.
* @license GNU/GPLv3 http://www.gnu.org/licenses/gpl-3.0.html
*/
defined('_JEXEC') or die('Restricted access');
?><?php
class market_product_declinePreviewMaker {
public $displaySubmitButton = true;
public $type = 'product';
public function prepareMail($data = null) {
if(empty($data))
return $this->getDefaultData();
$producClass = hikashop_get('class.product');
$vendorClass = hikamarket::get('class.vendor');
$params = new stdClass();
$params->product =
$producClass->get((int)$data['product']);
$params->vendor = $vendorClass->get(
(int)$params->product->product_vendor_id );
$params->message = $data['message'];
$mailClass = hikamarket::get('class.mail');
$mail = $mailClass->load('product_decline', $params);
$mail->hikamarket = true;
if(empty($mail->subject))
$mail->subject = 'MARKET_PRODUCT_DECLINE_SUBJECT';
return $mail;
}
public function getDefaultData() {
return array(
'product' => 0,
'message' => '',
);
}
public function getSelector($data) {
$nameboxType = hikashop_get('type.namebox');
$html = $nameboxType->display(
'data[product]',
(int)$data['product'],
hikashopNameboxType::NAMEBOX_SINGLE,
'product',
array(
'delete' => false,
'default_text' =>
'<em>'.JText::_('HIKA_NONE').'</em>',
'returnOnEmpty' => false,
)
);
if(!$html) {
hikashop_display(JText::_('PLEASE_FIRST_CREATE_A_PRODUCT'),
'info');
return;
}
if(empty($data)) {
echo
hikashop_display(Jtext::_('PLEASE_SELECT_A_PRODUCT_FOR_THE_PREVIEW'));
}
?>
<dl class="hika_options">
<dt><?php echo JText::_('HIKA_PRODUCT_NAME');
?></dt>
<dd><?php echo $html; ?></dd>
</dl>
<dl class="hika_options">
<dt><?php echo JText::_('MESSAGE'); ?></dt>
<dd><textarea name="data[message]"
style="width:90%;"><?php echo
htmlentities(@$data['message']);
?></textarea></dd>
</dl>
<script type="text/javascript">
window.Oby.ready(function() {
var w = window;
if(!w.oNameboxes['data_product'])
return;
w.oNameboxes['data_product'].register('set',
function(e) {
hikashop.submitform('preview','adminForm');
});
});
</script>
<?php
}
}
PK�{�[>��"qq"mail/product_modification.html.phpnu�[���<?php
/**
* @package HikaMarket for Joomla!
* @version 3.1.1
* @author Obsidev S.A.R.L.
* @copyright (C) 2011-2020 OBSIDEV. All rights reserved.
* @license GNU/GPLv3 http://www.gnu.org/licenses/gpl-3.0.html
*/
defined('_JEXEC') or die('Restricted access');
?><style type="text/css">
body.hikashop_mail { background-color:#ffffff; color:#575757; }
.ReadMsgBody{width:100%;}
.ExternalClass{width:100%;}
div, p, a, li, td {-webkit-text-size-adjust:none;}
@media (min-width:600px){
#hikamarket_mail {width:600px !important;margin:auto !important;}
.pict img {max-width:500px !important;height:auto !important;}
}
@media (max-width:330px){
#hikamarket_mail{width:300px !important; margin:auto !important;}
table[class=w600], td[class=w600], table[class=w598], td[class=w598],
table[class=w500], td[class=w500], img[class="w600"]{width:100%
!important;}
td[class="w49"] { width: 10px !important;}
.pict img {max-width:278px; height:auto !important;}
}
@media (min-width:331px) and (max-width:480px){
#hikamarket_mail{width:450px !important; margin:auto !important;}
table[class=w600], td[class=w600], table[class=w598], td[class=w598],
table[class=w500], td[class=w500], img[class="w600"]{width:100%
!important;}
td[class="w49"] { width: 20px !important;}
.pict img {max-width:408px; height:auto !important;}
}
h1{color:#1c8faf;font-size:16px;font-weight:bold;border-bottom:1px solid
#ddd; padding-bottom:10px;}
h2{color:#89a9c1;font-size:14px;font-weight:bold;margin-top:20px;margin-bottom:5px;border-bottom:1px
solid #d6d6d6;padding-bottom:4px;}
a:visited{cursor:pointer;color:#2d9cbb;text-decoration:none;border:none;}
</style>
<div id="hikamarket_mail" style="font-family:Arial,
Helvetica,sans-serif;font-size:12px;line-height:18px;width:100%;background-color:#ffffff;padding-bottom:20px;color:#5b5b5b;">
<div class="hikashop_online" style="font-family:Arial,
Helvetica,sans-serif;font-size:11px;line-height:18px;color:#6a5c6b;text-decoration:none;margin:10px;text-align:center;">
<a
style="cursor:pointer;color:#2d9cbb;text-decoration:none;border:none;"
href="{VAR:URL}">
<span class="hikashop_online"
style="color:#6a5c6b;text-decoration:none;font-size:11px;margin-top:10px;margin-bottom:10px;text-align:center;">
{TXT:HIKASHOP_MAIL_HEADER}
</span>
</a>
</div>
<table class="w600" style="font-family:Arial, Helvetica,
sans-serif;font-size:12px;line-height:18px;margin:auto;background-color:#ebebeb;"
border="0" cellspacing="0" cellpadding="0"
width="600" align="center">
<tr style="line-height: 0px;">
<td class="w600" style="line-height:0px"
width="600" valign="bottom">
<img class="w600"
src="{VAR:LIVE_SITE}media/com_hikashop/images/mail/header_black.png"
border="0" alt="" />
</td>
</tr>
<tr>
<td class="w600" style="" width="600"
align="center">
<table class="w600" border="0"
cellspacing="0" cellpadding="0" width="600"
style="margin:0px;font-family: Arial, Helvetica,
sans-serif;font-size:12px;line-height:18px;">
<tr>
<td class="w20" width="20"></td>
<td class="w560 pict" style="text-align:left;
color:#575757" width="560">
<div id="title" style="font-family: Arial,
Helvetica, sans-serif;font-size:12px;line-height:18px;">
<img
src="{VAR:LIVE_SITE}/media/com_hikashop/images/icons/icon-48-product.png"
border="0" alt=""
style="float:left;margin-right:4px;"/>
<h1 style="color:#1c8faf
!important;font-size:16px;font-weight:bold; border-bottom:1px solid #ddd;
padding-bottom:10px">
{TXT:MAIL_TITLE}
</h1>
</div>
</td>
<td class="w20" width="20"></td>
</tr>
<tr>
<td class="w20" width="20"></td>
<td style="border:1px solid
#adadad;background-color:#ffffff;">
<div class="w550" width="550"
id="content" style="font-family: Arial, Helvetica,
sans-serif;font-size:12px;line-height:18px;margin-left:5px;margin-right:5px;">
<p>
<h3 style="color:#393939 !important; font-size:14px;
font-weight:normal;
font-weight:bold;margin-bottom:0px;padding:0px;">{TXT:HI_ADMIN}</h3>
{TXT:PRODUCT_MODIFICATION_BEGIN_MESSAGE}
</p>
<p>
<strong>{TXT:HIKA_VENDOR}</strong>: <a
href="{VAR:VENDOR_URL}">{VAR:vendor.vendor_name}</a>
</p>
<p>
<strong>{TXT:PRODUCT}</strong>: <a
href="{VAR:PRODUCT_URL}">{VAR:product.product_name}</a>
</p>
</div>
</td>
<td class="w20" width="20"></td>
</tr>
</table>
</td>
</tr>
<tr style="line-height: 0px;">
<td class="w600" style="line-height:0px"
width="600" valign="top">
<img class="w600"
src="{VAR:LIVE_SITE}/media/com_hikashop/images/mail/footer_black.png"
border="0" alt="--" />
</td>
</tr>
</table>
</div>
PK�{�[`p�9II%mail/product_modification.preload.phpnu�[���<?php
/**
* @package HikaMarket for Joomla!
* @version 3.1.1
* @author Obsidev S.A.R.L.
* @copyright (C) 2011-2020 OBSIDEV. All rights reserved.
* @license GNU/GPLv3 http://www.gnu.org/licenses/gpl-3.0.html
*/
defined('_JEXEC') or die('Restricted access');
?><?php
$vars = array(
'LIVE_SITE' => HIKASHOP_LIVE,
'PRODUCT_URL' =>
HIKASHOP_LIVE.'administrator/index.php?option=com_hikashop&ctrl=product&task=edit&cid='.$data->product->product_id,
'VENDOR_URL'=>
HIKASHOP_LIVE.'administrator/index.php?option=com_hikamarket&ctrl=vendor&task=edit&cid='.$data->vendor->vendor_id,
'product' => $data->product,
'vendor' => $data->vendor
);
if(empty($data->product->product_name)) {
$productClass = hikamarket::get('shop.class.product');
$vars['product'] =
$productClass->get($data->product->product_id);
}
if(empty($data->product->product_name))
$data->product->product_name =
'<em>'.JText::_('NO_NAME').'</em>';
$texts = array(
'MAIL_TITLE' =>
JText::_('HIKAM_EMAIL_PRODUCT_MODIFICATION'),
'MAIL_HEADER' =>
JText::_('HIKAMARKET_MAIL_HEADER'),
);
PK�{�[�n�OO%mail/product_modification.preview.phpnu�[���<?php
/**
* @package HikaMarket for Joomla!
* @version 3.1.1
* @author Obsidev S.A.R.L.
* @copyright (C) 2011-2020 OBSIDEV. All rights reserved.
* @license GNU/GPLv3 http://www.gnu.org/licenses/gpl-3.0.html
*/
defined('_JEXEC') or die('Restricted access');
?><?php
class market_product_modificationPreviewMaker {
public $displaySubmitButton = false;
public $type = 'product';
public function prepareMail($data = null) {
if(empty($data))
return $this->getDefaultData();
$producClass = hikashop_get('class.product');
$vendorClass = hikamarket::get('class.vendor');
$params = new stdClass();
$params->product = $producClass->get((int)$data);
$params->vendor = $vendorClass->get(
(int)$params->product->product_vendor_id );
$mailClass = hikamarket::get('class.mail');
$mail = $mailClass->load('product_modification', $params);
$mail->hikamarket = true;
if(empty($mail->subject))
$mail->subject = 'MARKET_PRODUCT_MODIFICATION_SUBJECT';
$mail->dst_email = $params->vendor->vendor_email;
$mail->dst_name = $params->vendor->vendor_name;
return $mail;
}
public function getDefaultData() {
}
public function getSelector($data) {
$nameboxType = hikashop_get('type.namebox');
$html = $nameboxType->display(
'data',
(int)$data,
hikashopNameboxType::NAMEBOX_SINGLE,
'product',
array(
'delete' => false,
'default_text' =>
'<em>'.JText::_('HIKA_NONE').'</em>',
'returnOnEmpty' => false,
)
);
if(!$html) {
hikashop_display(JText::_('PLEASE_FIRST_CREATE_A_PRODUCT'),
'info');
return;
}
if(empty($data)) {
echo
hikashop_display(Jtext::_('PLEASE_SELECT_A_PRODUCT_FOR_THE_PREVIEW'));
}
?>
<dl class="hika_options">
<dt><?php echo JText::_('HIKASHOP_PRODUCT');
?></dt>
<dd><?php echo $html; ?></dd>
</dl>
<script type="text/javascript">
window.Oby.ready(function() {
var w = window;
if(!w.oNameboxes['data'])
return;
w.oNameboxes['data'].register('set', function(e) {
hikashop.submitform('preview','adminForm');
});
});
</script>
<?php
}
}
PK�{�[wtW�mail/template/index.htmlnu�[���<html><body></body></html>PK�{�[��
}
}
mail/template/vendor.html.phpnu�[���<?php
/**
* @package HikaMarket for Joomla!
* @version 3.1.1
* @author Obsidev S.A.R.L.
* @copyright (C) 2011-2020 OBSIDEV. All rights reserved.
* @license GNU/GPLv3 http://www.gnu.org/licenses/gpl-3.0.html
*/
defined('_JEXEC') or die('Restricted access');
?><style type="text/css">
body.hikashop_mail { background-color:#ffffff; color:#575757; }
.ReadMsgBody{width:100%;}
.ExternalClass{width:100%;}
div, p, a, li, td {-webkit-text-size-adjust:none;}
@media (min-width:600px){
#hikashop_mail {width:600px !important;margin:auto !important;}
.pict img {max-width:500px !important;height:auto !important;}
}
@media (max-width:330px){
#hikashop_mail{width:300px !important; margin:auto !important;}
table[class=w600], td[class=w600], table[class=w598], td[class=w598],
table[class=w500], td[class=w500], img[class="w600"]{width:100%
!important;}
td[class="w49"] { width: 10px !important;}
.pict img {max-width:278px; height:auto !important;}
}
@media (min-width:331px) and (max-width:480px){
#hikashop_mail{width:450px !important; margin:auto !important;}
table[class=w600], td[class=w600], table[class=w598], td[class=w598],
table[class=w500], td[class=w500], img[class="w600"]{width:100%
!important;}
td[class="w49"] { width: 20px !important;}
.pict img {max-width:408px; height:auto !important;}
}
h1{color:#1c8faf;font-size:16px;font-weight:bold;border-bottom:1px solid
#ddd; padding-bottom:10px;}
h2{color:#89a9c1;font-size:14px;font-weight:bold;margin-top:20px;margin-bottom:5px;border-bottom:1px
solid #d6d6d6;padding-bottom:4px;}
a:visited{cursor:pointer;color:#2d9cbb;text-decoration:none;border:none;}
{VAR:TPL_CSS}
</style>
<div id="hikashop_mail" style="font-family:Arial,
Helvetica,sans-serif;font-size:12px;line-height:18px;width:100%;background-color:#ffffff;padding-bottom:20px;color:#5b5b5b;">
<table class="w600" style="font-family:Arial, Helvetica,
sans-serif;font-size:12px;line-height:18px;margin:auto;background-color:#ebebeb;"
border="0" cellspacing="0" cellpadding="0"
width="600" align="center">
<tr style="line-height: 0px;">
<td class="w600" style="line-height:0px"
width="600" valign="bottom">
<img class="w600"
src="{VAR:LIVE_SITE}media/com_hikamarket/images/mail/header.png"
border="0" alt="" />
</td>
</tr>
<tr>
<td class="w600" style="" width="600"
align="center">
{VAR:TPL_CONTENT}
</td>
</tr>
<tr style="line-height: 0px;">
<td class="w600" style="line-height:0px"
width="600" valign="top">
<img class="w600"
src="{VAR:LIVE_SITE}/media/com_hikamarket/images/mail/footer.png"
border="0" alt="--" />
</td>
</tr>
</table>
</div>
PK�{�[f���WW%mail/user_order_notification.html.phpnu�[���<?php
/**
* @package HikaMarket for Joomla!
* @version 3.1.1
* @author Obsidev S.A.R.L.
* @copyright (C) 2011-2020 OBSIDEV. All rights reserved.
* @license GNU/GPLv3 http://www.gnu.org/licenses/gpl-3.0.html
*/
defined('_JEXEC') or die('Restricted access');
?><table class="w600" border="0"
cellspacing="0" cellpadding="0" width="600"
style="margin:0px;font-family: Arial, Helvetica,
sans-serif;font-size:12px;line-height:18px;">
<tr>
<td class="w20" width="20"></td>
<td class="w560 pict" style="text-align:left;
color:#575757" width="560">
<div id="title" style="font-family: Arial, Helvetica,
sans-serif;font-size:12px;line-height:18px;">
<img
src="{VAR:LIVE_SITE}/media/com_hikashop/images/icons/icon-48-order.png"
border="0" alt=""
style="float:left;margin-right:4px;"/>
<h1 style="color:#1c8faf
!important;font-size:16px;font-weight:bold; border-bottom:1px solid #ddd;
padding-bottom:10px">
{TXT:ORDER_TITLE}
</h1>
<h2 style="color:#1c8faf
!important;font-size:12px;font-weight:bold; padding-bottom:10px">
{TXT:ORDER_CHANGED}
</h2>
</div>
</td>
<td class="w20" width="20"></td>
</tr>
<tr>
<td class="w20" width="20"></td>
<td style="border:1px solid
#adadad;background-color:#ffffff;">
<div class="w550" width="550"
id="content" style="font-family: Arial, Helvetica,
sans-serif;font-size:12px;line-height:18px;margin-left:5px;margin-right:5px;">
<p>
<h3 style="color:#393939 !important; font-size:14px;
font-weight:normal;
font-weight:bold;margin-bottom:0px;padding:0px;">{TXT:HI_CUSTOMER}</h3>
{TXT:ORDER_BEGIN_MESSAGE}
</p>
<table class="w550" border="0"
cellspacing="0" cellpadding="0" width="550"
style="margin-top:10px;font-family: Arial, Helvetica,
sans-serif;font-size:12px;line-height:18px;">
<tr>
<!--{IF:BILLING_ADDRESS}--><td style="color:#1c8faf
!important;font-size:12px;font-weight:bold;">{TXT:BILLING_ADDRESS}</td><!--{ENDIF:BILLING_ADDRESS}-->
<!--{IF:SHIPPING}--><!--{IF:SHIPPING_ADDRESS}--><td
style="color:#1c8faf
!important;font-size:12px;font-weight:bold;">{TXT:SHIPPING_ADDRESS}</td><!--{ENDIF:SHIPPING_ADDRESS}--><!--{ENDIF:SHIPPING}-->
</tr>
<tr>
<!--{IF:BILLING_ADDRESS}--><td>{VAR:BILLING_ADDRESS}</td><!--{ENDIF:BILLING_ADDRESS}-->
<!--{IF:SHIPPING}--><!--{IF:SHIPPING_ADDRESS}--><td>{VAR:SHIPPING_ADDRESS}</td><!--{ENDIF:SHIPPING_ADDRESS}--><!--{ENDIF:SHIPPING}-->
</tr>
</table>
<!--{IF:SHOW_ORDER_CONTENT}-->
<h1 style="color:#1c8faf
!important;font-size:16px;font-weight:bold;border-bottom:1px solid
#ddd;padding-top:10px;padding-bottom:10px;">
{TXT:SUMMARY_OF_YOUR_ORDER}
</h1>
<!--{START:VENDOR_LINE}-->
<!--{IF:VENDOR_CONTENT}-->{VAR:VENDOR_CONTENT}<!--{ENDIF:VENDOR_CONTENT}-->
<table class="w550" border="0"
cellspacing="0" cellpadding="0" width="550"
style="margin-top:10px;margin-bottom:10px;font-family: Arial,
Helvetica, sans-serif;font-size:12px;line-height:18px;">
<tr>
<td style="border-bottom:1px solid
#ddd;padding-bottom:3px;text-align:left;color:#1c8faf
!important;font-size:12px;font-weight:bold;">{TXT:PRODUCT_NAME}</td>
{TXT:CUSTOMFIELD_NAME}
<td style="border-bottom:1px solid
#ddd;padding-bottom:3px;text-align:right;color:#1c8faf
!important;font-size:12px;font-weight:bold;">{TXT:PRODUCT_PRICE}</td>
<td style="border-bottom:1px solid
#ddd;padding-bottom:3px;text-align:right;color:#1c8faf
!important;font-size:12px;font-weight:bold;">{TXT:PRODUCT_QUANTITY}</td>
<td style="border-bottom:1px solid
#ddd;padding-bottom:3px;text-align:right;color:#1c8faf
!important;font-size:12px;font-weight:bold;">{TXT:PRODUCT_TOTAL}</td>
</tr>
<!--{START:PRODUCT_LINE}-->
<tr>
<td style="border-bottom:1px solid
#ddd;padding-bottom:3px;">
{LINEVAR:PRODUCT_IMG}
{LINEVAR:PRODUCT_NAME}<!--{IF:ORDER_PRODUCT_CODE}-->
{LINEVAR:PRODUCT_CODE}<!--{ENDIF:ORDER_PRODUCT_CODE}-->
{LINEVAR:PRODUCT_DOWNLOAD}
{LINEVAR:PRODUCT_DETAILS}
</td>
{LINEVAR:CUSTOMFIELD_VALUE}
<td style="border-bottom:1px solid
#ddd;padding-bottom:3px;text-align:right">{LINEVAR:PRODUCT_PRICE}</td>
<td style="border-bottom:1px solid
#ddd;padding-bottom:3px;text-align:right">{LINEVAR:PRODUCT_QUANTITY}</td>
<td style="border-bottom:1px solid
#ddd;padding-bottom:3px;text-align:right">{LINEVAR:PRODUCT_TOTAL}</td>
</tr>
<!--{END:PRODUCT_LINE}-->
<!--{START:ORDER_FOOTER}-->
<tr>
<td colspan="{TXT:FOOTER_COLSPAN}"
style="text-align:right;color:#1c8faf
!important;font-size:12px;font-weight:bold;">{LINEVAR:NAME}</td>
<td style="text-align:right">{LINEVAR:VALUE}</td>
</tr>
<!--{END:ORDER_FOOTER}-->
</table>
<!--{END:VENDOR_LINE}-->
<!--{ENDIF:SHOW_ORDER_CONTENT}-->
<!--{IF:PAYMENT}-->
<p>
<span style="color:#1c8faf
!important;font-size:12px;font-weight:bold;">{TXT:PAYMENT_METHOD}
:</span> {VAR:PAYMENT}
</p>
<!--{ENDIF:PAYMENT}-->
<!--{IF:SHIPPING}-->
<p>
<span style="color:#1c8faf
!important;font-size:12px;font-weight:bold;">{TXT:HIKASHOP_SHIPPING_METHOD}
:</span> {VAR:SHIPPING}
</p>
<!--{ENDIF:SHIPPING}-->
<!--{IF:ORDER_SUMMARY}-->
<h1 style="color:#1c8faf
!important;font-size:16px;font-weight:bold;border-bottom:1px solid
#ddd;padding-top:10px;padding-bottom:10px;">
{TXT:ADDITIONAL_INFORMATION}
</h1>
<p style="border-bottom:1px solid
#ddd;padding-bottom:10px;">
{VAR:ORDER_SUMMARY}
</p>
<!--{ENDIF:ORDER_SUMMARY}-->
<p>
{TXT:ORDER_END_MESSAGE}
</p>
</div>
</td>
<td class="w20" width="20"></td>
</tr>
</table>
PK�{�[�'U�
S
S(mail/user_order_notification.preload.phpnu�[���<?php
/**
* @package HikaMarket for Joomla!
* @version 3.1.1
* @author Obsidev S.A.R.L.
* @copyright (C) 2011-2020 OBSIDEV. All rights reserved.
* @license GNU/GPLv3 http://www.gnu.org/licenses/gpl-3.0.html
*/
defined('_JEXEC') or die('Restricted access');
?><?php
$app = JFactory::getApplication();
$config = hikashop_config();
$orderClass = hikashop_get('class.order');
$imageHelper = hikashop_get('helper.image');
$productClass = hikashop_get('class.product');
$fieldsClass = hikashop_get('class.field');
global $Itemid;
$url_itemid = (!empty($Itemid)) ? '&Itemid=' . $Itemid :
'';
if(isset($data->url_itemid))
$url_itemid = (!empty($data->url_itemid) ?
'&Itemid=':'') . $data->url_itemid;
$order_url = $data->order_url;
$mail_status = $data->mail_status;
$customer = $data->customer;
if(!isset($data->order))
$data->order = new stdClass();
$fs =
array('order_number','order_discount_tax','order_shipping_tax','order_payment_tax','order_full_price','order_shipping_price','order_payment_price','order_discount_price','order_currency_id','order_status');
foreach($fs as $f) {
if(isset($data->$f) && !isset($data->order->$f))
$data->order->$f = $data->$f;
}
$data->order->order_url = $order_url;
$data->cart = $orderClass->loadFullOrder($data->order_id, true,
false);
if(hikashop_level(2)) {
$itemFields =
$fieldsClass->getFields('display:mail_status_notif=1',
$data->cart->products, 'item');
}
$url = $data->order_number = $data->cart->order_number;
$url = '<a href="'.$order_url.'">'.
$url.'</a>';
$data->cart->coupon = new stdClass();
$price = new stdClass();
$tax = $data->cart->order_subtotal -
$data->cart->order_subtotal_no_vat -
$data->cart->order_discount_tax +
$data->cart->order_shipping_tax +
$data->cart->order_payment_tax;
$price->price_value = max(0, $data->cart->order_full_price -
$tax);
$price->price_value_with_tax = $data->cart->order_full_price;
$data->cart->full_total = new stdClass;
$data->cart->full_total->prices = array($price);
$data->cart->coupon->discount_value =&
$data->cart->order_discount_price;
if($app->isAdmin()) {
$view = 'order';
} else {
$view = 'address';
}
$colspan = 4;
$customer_name = @$customer->name;
if(empty($customer_name))
$customer_name =
@$data->cart->billing_address->address_firstname.'
'.@$data->cart->billing_address->address_lastname;
$data->mail_params_config = array(
'begin_msg' => array('textarea',
'HIKAM_MAIL_BEGIN_MESSAGE', ''),
'billing_address' => array('boolean',
'HIKAM_MAIL_DISP_BILLING_ADDR', 1),
'shipping_address' => array('boolean',
'HIKAM_MAIL_DISP_SHIPPING_ADDR', 1),
'products' => array('boolean',
'HIKAM_MAIL_DISP_PRODUCTS', 1),
'payment_method' => array('boolean',
'HIKAM_MAIL_DISP_PAYMENT', 1),
'shipping_method' => array('boolean',
'HIKAM_MAIL_DISP_SHIPPING', 1),
'fields' => array('boolean',
'HIKAM_MAIL_DISP_FIELDS', 1),
'end_msg' => array('textarea',
'HIKAM_MAIL_END_MESSAGE', ''),
);
if(empty($data->mail_params))
$data->mail_params = array();
foreach($data->mail_params_config as $k => $v) {
if(!isset($data->mail_params[$k]))
$data->mail_params[$k] = $v[2];
}
$vars = array(
'LIVE_SITE' => HIKASHOP_LIVE,
'URL' => $order_url,
'ORDER_PRODUCT_CODE' =>
(bool)$config->get('show_code', false),
'order' => $data->cart,
'user' => $customer,
'billing_address' => @$data->cart->billing_address,
'shipping_address' => @$data->cart->shipping_address,
'TPL_HEADER' => (bool)@$customer->user_cms_id,
'TPL_HEADER_URL' => $order_url,
'SHOW_ORDER_CONTENT' => true,
);
$texts = array(
'BILLING_ADDRESS' =>
JText::_('HIKASHOP_BILLING_ADDRESS'),
'SHIPPING_ADDRESS' =>
JText::_('HIKASHOP_SHIPPING_ADDRESS'),
'SUMMARY_OF_YOUR_ORDER' =>
JText::_('SUMMARY_OF_YOUR_ORDER'),
'MAIL_HEADER' => JText::_('HIKASHOP_MAIL_HEADER'),
'TPL_HEADER_TEXT' =>
JText::_('HIKASHOP_MAIL_HEADER'),
'USER_ACCOUNT' => (bool)@$customer->user_cms_id,
'PRODUCT_NAME' => JText::_('CART_PRODUCT_NAME'),
'PRODUCT_CODE' => JText::_('CART_PRODUCT_CODE'),
'PRODUCT_PRICE' =>
JText::_('CART_PRODUCT_UNIT_PRICE'),
'PRODUCT_QUANTITY' =>
JText::_('CART_PRODUCT_QUANTITY'),
'PRODUCT_TOTAL' => JText::_('HIKASHOP_TOTAL'),
'ADDITIONAL_INFORMATION' =>
JText::_('ADDITIONAL_INFORMATION'),
'ORDER_TITLE' => JText::_('YOUR_ORDER'),
'HI_CUSTOMER' => JText::sprintf('HI_CUSTOMER',
$customer_name),
'ORDER_CHANGED' =>
JText::sprintf('ORDER_STATUS_CHANGED_TO', $url,
$data->mail_status),
'ORDER_BEGIN_MESSAGE' =>
JText::sprintf('THANK_YOU_FOR_YOUR_ORDER_BEGIN', HIKASHOP_LIVE),
'ORDER_END_MESSAGE' =>
JText::sprintf('THANK_YOU_FOR_YOUR_ORDER', HIKASHOP_LIVE) .
'<br/>' .
JText::sprintf('BEST_REGARDS_CUSTOMER',$mail->from_name),
);
if(!empty($data->usermsg->usermsg)) {
$texts['ORDER_CHANGED'] = $data->usermsg->usermsg;
}
if(empty($data->mail_params['products']))
$vars['SHOW_ORDER_CONTENT'] = false;
if(!empty($data->mail_params['begin_msg']))
$texts['ORDER_BEGIN_MESSAGE'] =
nl2br($data->mail_params['begin_msg']);
if(!empty($data->mail_params['end_msg']))
$texts['ORDER_END_MESSAGE'] =
nl2br($data->mail_params['end_msg']);
$templates = array();
$products_ids = array();
foreach($data->cart->products as $item) { $products_ids[] =
$item->product_id; }
$productClass->getProducts($products_ids);
$cartProducts = array();
$cartFooters = array();
if(!empty($data->cart->products) &&
!empty($data->mail_params['products'])) {
$null = null;
$fields = null;
$texts['CUSTOMFIELD_NAME'] = '';
$texts['FOOTER_COLSPAN'] = 3;
if(hikashop_level(1)){
$fields =
$fieldsClass->getFields('display:mail_status_notif=1',$null,'product');
if(!empty($fields)){
$product_customfields = array();
$usefulFields = array();
foreach($fields as $field){
$namekey = $field->field_namekey;
foreach($productClass->all_products as $product){
if(!empty($product->$namekey)){
$usefulFields[] = $field;
break;
}
}
}
$fields = $usefulFields;
}
if(!empty($fields)){
foreach($fields as $field){
$texts['FOOTER_COLSPAN']++;
$texts['CUSTOMFIELD_NAME'].='<td
style="border-bottom:1px solid
#ddd;padding-bottom:3px;text-align:left;color:#1c8faf
!important;font-size:12px;font-weight:bold;">'.$fieldsClass->getFieldName($field).'</td>';
}
}
}
$group = $config->get('group_options',0);
$subtotal = 0;
foreach($data->cart->products as $item) {
if($group && $item->order_product_option_parent_id)
continue;
$product = @$productClass->all_products[$item->product_id];
$cartProduct = array(
'PRODUCT_CODE' => $item->order_product_code,
'PRODUCT_QUANTITY' => $item->order_product_quantity,
'PRODUCT_IMG' => '',
'item' => $item,
'product' => $product,
);
if(!empty($item->images[0]->file_path) &&
$config->get('thumbnail', 1) != 0) {
$img = $imageHelper->getThumbnail($item->images[0]->file_path,
array(50, 50), array('forcesize' => true, 'scale'
=> 'outside'));
if($img->success) {
if(substr($img->url, 0, 3) == '../')
$image = str_replace('../', HIKASHOP_LIVE, $img->url);
else
$image = substr(HIKASHOP_LIVE, 0, strpos(HIKASHOP_LIVE, '/',
9)) . $img->url;
$attributes = '';
if($img->external)
$attributes = '
width="'.$img->req_width.'"
height="'.$img->req_height.'"';
$cartProduct['PRODUCT_IMG'] = '<img
src="'.$image.'" alt=""
style="float:left;margin-top:3px;margin-bottom:3px;margin-right:6px;"'.$attributes.'/>';
}
}
$t = '<p>' . $item->order_product_name;
if($group){
$display_item_price=false;
foreach($data->cart->products as $j => $optionElement){
if($optionElement->order_product_option_parent_id !=
$item->order_product_id) continue;
if($optionElement->order_product_price>0){
$display_item_price = true;
}
}
if($display_item_price){
if($config->get('price_with_tax')){
$t .= '
'.$currencyHelper->format($item->order_product_price+$item->order_product_tax,$data->cart->order_currency_id);
}else{
$t .= '
'.$currencyHelper->format($item->order_product_price,$data->cart->order_currency_id);
}
}
}
$t .= '</p>';
if(!empty($itemFields)){
foreach($itemFields as $field){
$namekey = $field->field_namekey;
if(!isset($item->$namekey) || (empty($item->$namekey) &&
!strlen($item->$namekey))) continue;
$t .=
'<p>'.$fieldsClass->getFieldName($field).':
'.$fieldsClass->show($field,$item->$namekey,'user_email').'</p>';
}
}
$cartProduct['CUSTOMFIELD_VALUE'] = '';
if(!empty($fields) && hikashop_level(1)){
foreach($fields as $field){
$namekey = $field->field_namekey;
$productData = @$productClass->all_products[$item->product_id];
$cartProduct['CUSTOMFIELD_VALUE'] .= '<td
style="border-bottom:1px solid
#ddd;padding-bottom:3px;text-align:right">'.(empty($productData->$namekey)?'':$fieldsClass->show($field,$productData->$namekey)).'</td>';
}
}
if($group){
foreach($data->cart->products as $j => $optionElement){
if($optionElement->order_product_option_parent_id !=
$item->order_product_id) continue;
$item->order_product_price
+=$optionElement->order_product_price;
$item->order_product_tax +=$optionElement->order_product_tax;
$item->order_product_total_price+=$optionElement->order_product_total_price;
$item->order_product_total_price_no_vat+=$optionElement->order_product_total_price_no_vat;
$t .= '<p
class="hikashop_order_option_name">' .
$optionElement->order_product_name;
if($optionElement->order_product_price>0){
if($config->get('price_with_tax')){
$t .= ' ( +
'.$currencyHelper->format($optionElement->order_product_price+$optionElement->order_product_tax,$data->cart->order_currency_id).'
)';
}else{
$t .= ' ( +
'.$currencyHelper->format($optionElement->order_product_price,$data->cart->order_currency_id).'
)';
}
}
$t .= '</p>';
}
}
$cartProduct['PRODUCT_NAME'] = $t;
$t = '';
$statusDownload =
explode(',',$config->get('order_status_for_download','confirmed,shipped'));
if(!empty($item->files) &&
in_array($data->order->order_status,$statusDownload)){
$t .= '<p>';
foreach($item->files as $file){
$fileName = empty($file->file_name) ? $file->file_path :
$file->file_name;
$file_pos = empty($file->file_pos) ? '' :
('&file_pos=' . $file->file_pos);
if(empty($customer->user_cms_id))
$file_pos .= '&order_token=' .
$data->cart->order_token;
$oid = $data->order_id;
if(!empty($data->cart->order_parent_id))
$oid = $data->cart->order_parent_id;
$t .= '<a
href="'.hikashop_frontendLink('index.php?option=com_hikashop&ctrl=order&task=download&file_id='.$file->file_id.'&order_id='.$oid.$file_pos.$url_itemid).'">'.$fileName.'</a><br/>';
}
$t .= '</p>';
}
$cartProduct['PRODUCT_DOWNLOAD'] = $t;
if($config->get('price_with_tax')){
$unit_price =
$currencyHelper->format($item->order_product_price+$item->order_product_tax,$data->cart->order_currency_id);
$total_price =
$currencyHelper->format($item->order_product_total_price,$data->cart->order_currency_id);
$subtotal += $item->order_product_total_price;
}else{
$unit_price =
$currencyHelper->format($item->order_product_price,$data->cart->order_currency_id);
$total_price =
$currencyHelper->format($item->order_product_total_price_no_vat,$data->cart->order_currency_id);
$subtotal += $item->order_product_total_price_no_vat;
}
$cartProduct['PRODUCT_PRICE'] = $unit_price;
$cartProduct['PRODUCT_TOTAL'] = $total_price;
$cartProducts[] = $cartProduct;
}
$templates['PRODUCT_LINE'] = $cartProducts;
if(bccomp($data->cart->order_discount_price,0,5) != 0 ||
bccomp($data->cart->order_shipping_price,0,5) != 0 ||
bccomp($data->cart->order_payment_price,0,5) != 0 ||
($data->cart->full_total->prices[0]->price_value!=$data->cart->full_total->prices[0]->price_value_with_tax)
|| !empty($data->cart->additional)){
$cartFooters[] = array(
'NAME' => JText::_('SUBTOTAL'),
'VALUE' =>
$currencyHelper->format($subtotal,$data->cart->order_currency_id)
);
}
if(bccomp($data->cart->order_discount_price,0,5) != 0) {
if($config->get('price_with_tax')) {
$t =
$currencyHelper->format($data->cart->order_discount_price*-1,$data->cart->order_currency_id);
}else{
$t =
$currencyHelper->format(($data->cart->order_discount_price-@$data->cart->order_discount_tax)*-1,$data->cart->order_currency_id);
}
$cartFooters[] = array(
'NAME' => JText::_('HIKASHOP_COUPON'),
'VALUE' => $t
);
}
if(bccomp($data->cart->order_shipping_price,0,5) != 0){
if($config->get('price_with_tax')) {
$t =
$currencyHelper->format($data->cart->order_shipping_price,$data->cart->order_currency_id);
}else{
$t =
$currencyHelper->format($data->cart->order_shipping_price-@$data->cart->order_shipping_tax,$data->cart->order_currency_id);
}
$cartFooters[] = array(
'NAME' => JText::_('HIKASHOP_SHIPPING'),
'VALUE' => $t
);
}
if(bccomp($data->cart->order_payment_price,0,5) != 0){
if($config->get('price_with_tax')) {
$t = $currencyHelper->format($data->cart->order_payment_price,
$data->cart->order_currency_id);
} else {
$t = $currencyHelper->format($data->cart->order_payment_price -
@$data->cart->order_payment_tax,
$data->cart->order_currency_id);
}
$cartFooters[] = array(
'NAME' => JText::_('HIKASHOP_PAYMENT'),
'VALUE' => $t
);
}
if(!empty($data->cart->additional)) {
$exclude_additionnal = explode(',',
$config->get('order_additional_hide', ''));
foreach($data->cart->additional as $additional) {
if(in_array($additional->order_product_name, $exclude_additionnal))
continue;
if( (!empty($additional->order_product_price) &&
($additional->order_product_price > 0) ) ||
empty($additional->order_product_options)) {
if($config->get('price_with_tax')){
$t = $currencyHelper->format($additional->order_product_price +
@$additional->order_product_tax, $data->cart->order_currency_id);
}else{
$t = $currencyHelper->format($additional->order_product_price,
$data->cart->order_currency_id);
}
} else {
$t = $additional->order_product_options;
}
$cartFooters[] = array(
'NAME' => JText::_($additional->order_product_name),
'VALUE' => $t
);
}
}
if($data->cart->full_total->prices[0]->price_value!=$data->cart->full_total->prices[0]->price_value_with_tax)
{
if($config->get('detailed_tax_display') &&
!empty($data->cart->order_tax_info)) {
foreach($data->cart->order_tax_info as $tax) {
$cartFooters[] = array(
'NAME' => $tax->tax_namekey,
'VALUE' =>
$currencyHelper->format($tax->tax_amount,$data->cart->order_currency_id)
);
}
} else {
$cartFooters[] = array(
'NAME' => JText::_('ORDER_TOTAL_WITHOUT_VAT'),
'VALUE' =>
$currencyHelper->format($data->cart->full_total->prices[0]->price_value,$data->cart->order_currency_id)
);
}
$cartFooters[] = array(
'NAME' => JText::_('ORDER_TOTAL_WITH_VAT'),
'VALUE' =>
$currencyHelper->format($data->cart->full_total->prices[0]->price_value_with_tax,$data->cart->order_currency_id)
);
} else {
$cartFooters[] = array(
'NAME' => JText::_('HIKASHOP_TOTAL'),
'VALUE' =>
$currencyHelper->format($data->cart->full_total->prices[0]->price_value_with_tax,$data->cart->order_currency_id)
);
}
$templates['ORDER_FOOTER'] = $cartFooters;
}
if(!empty($data->cart->order_payment_method) &&
!empty($data->mail_params['payment'])) {
if(!is_numeric($data->cart->order_payment_id)){
$vars['PAYMENT'] =
$data->cart->order_payment_method.'
'.$data->cart->order_payment_id;
} else {
$paymentClass = hikashop_get('class.payment');
$payment = $paymentClass->get($data->cart->order_payment_id);
$vars['PAYMENT'] = $payment->payment_name;
unset($paymentClass);
}
}
if(!empty($data->cart->order_shipping_id) &&
!empty($data->mail_params['shipping'])) {
$shippingClass = hikashop_get('class.shipping');
if(!empty($data->cart->order_shipping_method)) {
if(!is_numeric($data->cart->order_shipping_id)){
$shipping_name =
$shippingClass->getShippingName($data->cart->order_shipping_method,
$data->cart->order_shipping_id);
$vars['SHIPPING'] = $shipping_name;
$vars['SHIPPING_TXT'] = $vars['SHIPPING'];
}else{
$shipping =
$shippingClass->get($data->cart->order_shipping_id);
$vars['SHIPPING'] = $shipping->shipping_name;
$vars['SHIPPING_TXT'] = $vars['SHIPPING'];
}
} else {
$shippings_data = array();
$shipping_ids = explode(';',
$data->cart->order_shipping_id);
$shippingClass = hikashop_get('class.shipping');
foreach($shipping_ids as $key) {
$shipping_data = '';
list($k, $w) = explode('@', $key);
$shipping_id = $k;
if(isset($data->cart->shippings[$shipping_id])) {
$shipping = $data->cart->shippings[$shipping_id];
$shipping_data = $shipping->shipping_name;
} else {
foreach($data->cart->products as $order_product) {
if($order_product->order_product_shipping_id == $key) {
if(!is_numeric($order_product->order_product_shipping_id)){
$shipping_name =
$shippingClass->getShippingName($order_product->order_product_shipping_method,
$shipping_id);
$shipping_data = $shipping_name;
}else{
$shipping_method_data = $shippingClass->get($shipping_id);
$shipping_data = $shipping_method_data->shipping_name;
}
break;
}
}
if(empty($shipping_data))
$shipping_data = '[ ' . $key . ' ]';
}
if(isset($data->cart->order_shipping_params->prices[$key])) {
$price_params =
$data->cart->order_shipping_params->prices[$key];
if($config->get('price_with_tax')){
$shipping_data .= ' (' .
$currencyHelper->format($price_params->price_with_tax,
$data->cart->order_currency_id) . ')';
}else{
$shipping_data .= ' (' .
$currencyHelper->format($price_params->price_with_tax -
@$price_params->tax, $data->cart->order_currency_id) .
')';
}
}
$shippings_data[] = $shipping_data;
}
if(!empty($shippings_data)) {
$vars['SHIPPING'] =
'<ul><li>'.implode('</li><li>',
$shippings_data).'</li></ul>';
$vars['SHIPPING_TXT'] = ' - ' . implode("\r\n -
", $shippings_data);
}
}
unset($shippingClass);
} else {
$vars['SHIPPING'] = '';
}
ob_start();
$sep = '';
if(hikashop_level(2) &&
!empty($data->mail_params['fields'])) {
$fields =
$fieldsClass->getFields('display:mail_status_notif=1',$data->cart,'order','');
foreach($fields as $fieldName => $oneExtraField) {
if(isset($data->$fieldName) &&
!isset($data->cart->$fieldName))
$data->cart->$fieldName = $data->$fieldName;
if($oneExtraField->field_type != 'customtext' &&
empty($data->cart->$fieldName))
continue;
echo $sep .
$fieldsClass->trans($oneExtraField->field_realname).' :
'.$fieldsClass->show($oneExtraField,
@$data->cart->$fieldName,'user_email');
$sep = '<br />';
}
}
JPluginHelper::importPlugin('hikashop');
$app = JFactory::getApplication();
$app->triggerEvent('onAfterOrderProductsListingDisplay',
array(&$data->cart, 'email_notification_html'));
$content = ob_get_clean();
$vars['ORDER_SUMMARY'] = trim($content);
$unpaid_statuses = explode(',',
$config->get('order_unpaid_statuses', 'created'));
if(in_array($data->order_status, $unpaid_statuses) &&
!empty($data->cart->order_payment_method) &&
$data->cart->order_type == 'sale') {
ob_start();
if($data->cart->order_full_price > 0 && hikashop_level(1)
&& $config->get('allow_payment_button',1)) {
echo '<p>' .
JText::_('ORDER_VALID_AFTER_PAYMENT') . '</p>';
$pay_url =
'index.php?option=com_hikashop&ctrl=order&task=pay&order_id='.$data->order_id.$url_itemid;
if(empty($customer->user_cms_id) &&
!empty($data->cart->order_token)) {
$pay_url .=
'&order_token='.urlencode($data->cart->order_token);
}
$pay_url = hikashop_frontendLink($pay_url);
if($config->get('force_ssl',0) &&
strpos('https://',$pay_url) === false) {
$pay_url =
str_replace('http://','https://',$pay_url);
}
echo '<p><a href="'. $pay_url
.'">'.JText::_('PAY_NOW') .
'</a></p>';
}
$content = ob_get_clean();
$vars['ORDER_SUMMARY'] .= $content;
}
$vars['BILLING_ADDRESS'] = '';
$vars['SHIPPING_ADDRESS'] = '';
$addressClass = hikashop_get('class.address');
if(!empty($data->cart->billing_address) &&
!empty($data->cart->fields) &&
!empty($data->mail_params['billing_address'])) {
$vars['BILLING_ADDRESS'] =
$addressClass->displayAddress($data->cart->fields,$data->cart->billing_address,$view);
}
if(!empty($data->mail_params['shipping_address'])) {
if(!empty($data->cart->override_shipping_address)) {
$vars['SHIPPING_ADDRESS'] =
$data->cart->override_shipping_address;
} elseif(!empty($data->cart->order_shipping_id) &&
!empty($data->cart->shipping_address) &&
!empty($data->cart->fields)) {
$vars['SHIPPING_ADDRESS'] =
$addressClass->displayAddress($data->cart->fields,$data->cart->shipping_address,$view);
} else {
$vars['SHIPPING_ADDRESS'] =
$vars['BILLING_ADDRESS'];
}
}
PK�{�[��||(mail/user_order_notification.preview.phpnu�[���<?php
/**
* @package HikaMarket for Joomla!
* @version 3.1.1
* @author Obsidev S.A.R.L.
* @copyright (C) 2011-2020 OBSIDEV. All rights reserved.
* @license GNU/GPLv3 http://www.gnu.org/licenses/gpl-3.0.html
*/
defined('_JEXEC') or die('Restricted access');
?><?php
class user_order_notificationPreviewMaker {
public $displaySubmitButton = true;
public $type = 'order';
public function prepareMail($data = null) {
if(empty($data))
return $this->getDefaultData();
$orderClass = hikashop_get('class.order');
$order = $orderClass->loadNotification((int)$data,
'market.user_order_notification');
return $order->mail;
}
public function getDefaultData() {
}
public function getSelector($data) {
$nameboxType = hikashop_get('type.namebox');
$html = $nameboxType->display(
'data',
(int)$data,
hikashopNameboxType::NAMEBOX_SINGLE,
'order',
array(
'delete' => false,
'default_text' =>
'<em>'.JText::_('HIKA_NONE').'</em>',
'returnOnEmpty' => false,
)
);
if(!$html){
hikashop_display(JText::_('PLEASE_FIRST_CREATE_AN_ORDER'),
'info');
return;
}
if(empty($data)) {
echo
hikashop_display(Jtext::_('PLEASE_SELECT_AN_ORDER_FOR_THE_PREVIEW'));
}
?>
<dl class="hika_options">
<dt><?php
echo JText::_('HIKASHOP_ORDER');
?></dt>
<dd><?php
echo $html;
?></dd>
</dl>
<script type="text/javascript">
window.Oby.ready(function() {
var w = window;
if(!w.oNameboxes['data'])
return;
w.oNameboxes['data'].register('set', function(e) {
hikashop.submitform('preview','adminForm');
});
});
</script>
<?php
}
}
PK�{�[�h�>qq%mail/user_order_notification.text.phpnu�[���<?php
/**
* @package HikaMarket for Joomla!
* @version 3.1.1
* @author Obsidev S.A.R.L.
* @copyright (C) 2011-2020 OBSIDEV. All rights reserved.
* @license GNU/GPLv3 http://www.gnu.org/licenses/gpl-3.0.html
*/
defined('_JEXEC') or die('Restricted access');
?><?php
echo JText::sprintf('HI_CUSTOMER',
@$data->customer->name)."\n"."\n";
$url = $data->order_number;
$config =& hikashop_config();
if($config->get('simplified_registration', 0) != 2) {
$url .= "\n".'( '.$data->order_url.'
)'."\n";
}
if(!empty($data->usermsg->usermsg)) {
echo $data->usermsg->usermsg;
} else {
echo JText::sprintf('ORDER_STATUS_CHANGED_TO', $url,
$data->mail_status);
}
echo "\n"."\n" .
JText::sprintf('THANK_YOU_FOR_YOUR_ORDER', HIKASHOP_LIVE) .
"\n"."\n" .
str_replace('<br/>', "\n",
JText::sprintf('BEST_REGARDS_CUSTOMER', $mail->from_name));
PK�{�[?1��'mail/vendor_admin_registration.html.phpnu�[���<?php
/**
* @package HikaMarket for Joomla!
* @version 3.1.1
* @author Obsidev S.A.R.L.
* @copyright (C) 2011-2020 OBSIDEV. All rights reserved.
* @license GNU/GPLv3 http://www.gnu.org/licenses/gpl-3.0.html
*/
defined('_JEXEC') or die('Restricted access');
?><style type="text/css">
body.hikashop_mail { background-color:#ffffff; color:#575757; }
.ReadMsgBody{width:100%;}
.ExternalClass{width:100%;}
div, p, a, li, td {-webkit-text-size-adjust:none;}
@media (min-width:600px){
#hikamarket_mail {width:600px !important;margin:auto !important;}
.pict img {max-width:500px !important;height:auto !important;}
}
@media (max-width:330px){
#hikamarket_mail{width:300px !important; margin:auto !important;}
table[class=w600], td[class=w600], table[class=w598], td[class=w598],
table[class=w500], td[class=w500], img[class="w600"]{width:100%
!important;}
td[class="w49"] { width: 10px !important;}
.pict img {max-width:278px; height:auto !important;}
}
@media (min-width:331px) and (max-width:480px){
#hikamarket_mail{width:450px !important; margin:auto !important;}
table[class=w600], td[class=w600], table[class=w598], td[class=w598],
table[class=w500], td[class=w500], img[class="w600"]{width:100%
!important;}
td[class="w49"] { width: 20px !important;}
.pict img {max-width:408px; height:auto !important;}
}
h1{color:#1c8faf;font-size:16px;font-weight:bold;border-bottom:1px solid
#ddd; padding-bottom:10px;}
h2{color:#89a9c1;font-size:14px;font-weight:bold;margin-top:20px;margin-bottom:5px;border-bottom:1px
solid #d6d6d6;padding-bottom:4px;}
a:visited{cursor:pointer;color:#2d9cbb;text-decoration:none;border:none;}
</style>
<div id="hikamarket_mail" style="font-family:Arial,
Helvetica,sans-serif;font-size:12px;line-height:18px;width:100%;background-color:#ffffff;padding-bottom:20px;color:#5b5b5b;">
<div class="hikashop_online" style="font-family:Arial,
Helvetica,sans-serif;font-size:11px;line-height:18px;color:#6a5c6b;text-decoration:none;margin:10px;text-align:center;">
<a
style="cursor:pointer;color:#2d9cbb;text-decoration:none;border:none;"
href="{VAR:URL}">
<span class="hikashop_online"
style="color:#6a5c6b;text-decoration:none;font-size:11px;margin-top:10px;margin-bottom:10px;text-align:center;">
{TXT:HIKASHOP_MAIL_HEADER}
</span>
</a>
</div>
<table class="w600" style="font-family:Arial, Helvetica,
sans-serif;font-size:12px;line-height:18px;margin:auto;background-color:#ebebeb;"
border="0" cellspacing="0" cellpadding="0"
width="600" align="center">
<tr style="line-height: 0px;">
<td class="w600" style="line-height:0px"
width="600" valign="bottom">
<img class="w600"
src="{VAR:LIVE_SITE}media/com_hikashop/images/mail/header_black.png"
border="0" alt="" />
</td>
</tr>
<tr>
<td class="w600" style="" width="600"
align="center">
<table class="w600" border="0"
cellspacing="0" cellpadding="0" width="600"
style="margin:0px;font-family: Arial, Helvetica,
sans-serif;font-size:12px;line-height:18px;">
<tr>
<td class="w20" width="20"></td>
<td class="w560 pict" style="text-align:left;
color:#575757" width="560">
<div id="title" style="font-family: Arial,
Helvetica, sans-serif;font-size:12px;line-height:18px;">
<img
src="{VAR:LIVE_SITE}/media/com_hikashop/images/icons/icon-48-product.png"
border="0" alt=""
style="float:left;margin-right:4px;"/>
<h1 style="color:#1c8faf
!important;font-size:16px;font-weight:bold; border-bottom:1px solid #ddd;
padding-bottom:10px">
{TXT:MAIL_TITLE}
</h1>
</div>
</td>
<td class="w20" width="20"></td>
</tr>
<tr>
<td class="w20" width="20"></td>
<td style="border:1px solid
#adadad;background-color:#ffffff;">
<div class="w550" width="550"
id="content" style="font-family: Arial, Helvetica,
sans-serif;font-size:12px;line-height:18px;margin-left:5px;margin-right:5px;">
<p>
<h3 style="color:#393939 !important; font-size:14px;
font-weight:normal;
font-weight:bold;margin-bottom:0px;padding:0px;">{TXT:HI_ADMIN}</h3>
{TXT:VENDOR_CREATION_BEGIN_MESSAGE}
</p>
<p>
<strong>{TXT:HIKA_VENDOR}</strong>: <a
href="{VAR:VENDOR_URL}">{VAR:vendor_name}</a>
</p>
</div>
</td>
<td class="w20" width="20"></td>
</tr>
</table>
</td>
</tr>
<tr style="line-height: 0px;">
<td class="w600" style="line-height:0px"
width="600" valign="top">
<img class="w600"
src="{VAR:LIVE_SITE}/media/com_hikashop/images/mail/footer_black.png"
border="0" alt="--" />
</td>
</tr>
</table>
</div>
PK�{�[��͕��*mail/vendor_admin_registration.preload.phpnu�[���<?php
/**
* @package HikaMarket for Joomla!
* @version 3.1.1
* @author Obsidev S.A.R.L.
* @copyright (C) 2011-2020 OBSIDEV. All rights reserved.
* @license GNU/GPLv3 http://www.gnu.org/licenses/gpl-3.0.html
*/
defined('_JEXEC') or die('Restricted access');
?><?php
$vars = array(
'LIVE_SITE' => HIKASHOP_LIVE,
'VENDOR_URL'=>
HIKASHOP_LIVE.'administrator/index.php?option=com_hikamarket&ctrl=vendor&task=edit&cid='.$data->vendor->vendor_id,
'vendor' => $data->vendor,
'user' => $data->user,
'vendor_name' => $data->vendor_name,
);
$texts = array(
'MAIL_TITLE' =>
JText::_('VENDOR_REGISTRATION_EMAIL_SUBJECT'),
'MAIL_HEADER' =>
JText::_('HIKAMARKET_MAIL_HEADER'),
);
PK�{�[��:�44*mail/vendor_admin_registration.preview.phpnu�[���<?php
/**
* @package HikaMarket for Joomla!
* @version 3.1.1
* @author Obsidev S.A.R.L.
* @copyright (C) 2011-2020 OBSIDEV. All rights reserved.
* @license GNU/GPLv3 http://www.gnu.org/licenses/gpl-3.0.html
*/
defined('_JEXEC') or die('Restricted access');
?><?php
class market_vendor_admin_registrationPreviewMaker {
public $displaySubmitButton = false;
public $type = 'registration';
public function prepareMail($data = null) {
if(empty($data))
return $this->getDefaultData();
if(empty($data['vendor']))
$data['vendor'] = 1;
$userClass = hikashop_get('class.user');
$vendorClass = hikamarket::get('class.vendor');
$params = new stdClass();
$params->user = $userClass->get((int)$data['user']);
$params->vendor =
$vendorClass->get((int)$data['vendor']);
$params->vendor_name = $params->vendor->vendor_name;
$mailClass = hikamarket::get('class.mail');
$mail = $mailClass->load('vendor_admin_registration',
$params);
$mail->hikamarket = true;
if(empty($mail->subject))
$mail->subject =
'MARKET_VENDOR_ADMIN_REGISTRATION_SUBJECT';
return $mail;
}
public function getDefaultData() {
}
public function getSelector($data) {
$nameboxType = hikashop_get('type.namebox');
$marketNameboxType = hikamarket::get('type.namebox');
$html_user = $nameboxType->display(
'data[user]',
(int)$data['user'],
hikashopNameboxType::NAMEBOX_SINGLE,
'user',
array(
'delete' => false,
'default_text' =>
'<em>'.JText::_('HIKA_NONE').'</em>',
'returnOnEmpty' => false,
)
);
if(!$html_user) {
hikashop_display(JText::_('PLEASE_FIRST_CREATE_A_PRODUCT'),
'info');
return;
}
$html_vendor = $marketNameboxType->display(
'data[vendor]',
(int)$data['vendor'],
hikashopNameboxType::NAMEBOX_SINGLE,
'vendor',
array(
'delete' => false,
'default_text' =>
'<em>'.JText::_('HIKA_NONE').'</em>',
'returnOnEmpty' => false,
)
);
if(empty($html_user)) {
echo
hikashop_display(Jtext::_('PLEASE_SELECT_A_USER_FOR_THE_PREVIEW'));
}
if(empty($html_vendor)) {
echo
hikashop_display(Jtext::_('PLEASE_SELECT_A_VENDOR_FOR_THE_PREVIEW'));
}
?>
<dl class="hika_options">
<dt><?php echo JText::_('HIKA_USER'); ?></dt>
<dd><?php echo $html_user; ?></dd>
</dl>
<dl class="hika_options">
<dt><?php echo JText::_('HIKAMARKET_VENDOR');
?></dt>
<dd><?php echo $html_vendor; ?></dd>
</dl>
<script type="text/javascript">
window.Oby.ready(function() {
var w = window;
if(!w.oNameboxes['data_user'])
return;
w.oNameboxes['data_user'].register('set', function(e)
{
hikashop.submitform('preview','adminForm');
});
w.oNameboxes['data_vendor'].register('set',
function(e) {
hikashop.submitform('preview','adminForm');
});
});
</script>
<?php
}
}
PK�{�[c�)SMM)mail/vendor_payment_notification.html.phpnu�[���<?php
/**
* @package HikaMarket for Joomla!
* @version 3.1.1
* @author Obsidev S.A.R.L.
* @copyright (C) 2011-2020 OBSIDEV. All rights reserved.
* @license GNU/GPLv3 http://www.gnu.org/licenses/gpl-3.0.html
*/
defined('_JEXEC') or die('Restricted access');
?><style type="text/css">
body.hikashop_mail { background-color:#ffffff; color:#575757; }
.ReadMsgBody{width:100%;}
.ExternalClass{width:100%;}
div, p, a, li, td {-webkit-text-size-adjust:none;}
@media (min-width:600px){
#hikamarket_mail {width:600px !important;margin:auto !important;}
.pict img {max-width:500px !important;height:auto !important;}
}
@media (max-width:330px){
#hikamarket_mail {width:300px !important; margin:auto !important;}
table[class=w600], td[class=w600], table[class=w598], td[class=w598],
table[class=w500], td[class=w500], img[class="w600"]{width:100%
!important;}
td[class="w49"] { width: 10px !important;}
.pict img {max-width:278px; height:auto !important;}
}
@media (min-width:331px) and (max-width:480px){
#hikamarket_mail {width:450px !important; margin:auto !important;}
table[class=w600], td[class=w600], table[class=w598], td[class=w598],
table[class=w500], td[class=w500], img[class="w600"]{width:100%
!important;}
td[class="w49"] { width: 20px !important;}
.pict img {max-width:408px; height:auto !important;}
}
h1{color:#1c8faf;font-size:16px;font-weight:bold;border-bottom:1px solid
#ddd; padding-bottom:10px;}
h2{color:#89a9c1;font-size:14px;font-weight:bold;margin-top:20px;margin-bottom:5px;border-bottom:1px
solid #d6d6d6;padding-bottom:4px;}
a:visited{cursor:pointer;color:#2d9cbb;text-decoration:none;border:none;}
</style>
<div id="hikamarket_mail" style="font-family:Arial,
Helvetica,sans-serif;font-size:12px;line-height:18px;width:100%;background-color:#ffffff;padding-bottom:20px;color:#5b5b5b;">
<div class="hikashop_online" style="font-family:Arial,
Helvetica,sans-serif;font-size:11px;line-height:18px;color:#6a5c6b;text-decoration:none;margin:10px;text-align:center;">
<a
style="cursor:pointer;color:#2d9cbb;text-decoration:none;border:none;"
href="{VAR:URL}">
<span class="hikashop_online"
style="color:#6a5c6b;text-decoration:none;font-size:11px;margin-top:10px;margin-bottom:10px;text-align:center;">
{TXT:MAIL_HEADER}
</span>
</a>
</div>
<table class="w600" style="font-family:Arial, Helvetica,
sans-serif;font-size:12px;line-height:18px;margin:auto;background-color:#ebebeb;"
border="0" cellspacing="0" cellpadding="0"
width="600" align="center">
<tr style="line-height: 0px;">
<td class="w600" style="line-height:0px"
width="600" valign="bottom">
<img class="w600"
src="{VAR:LIVE_SITE}media/com_hikamarket/images/mail/header.png"
border="0" alt="" />
</td>
</tr>
<tr>
<td class="w600" style="" width="600"
align="center">
<table class="w600" border="0"
cellspacing="0" cellpadding="0" width="600"
style="margin:0px;font-family: Arial, Helvetica,
sans-serif;font-size:12px;line-height:18px;">
<tr>
<td class="w20" width="20"></td>
<td class="w560 pict" style="text-align:left;
color:#575757" width="560">
<div id="title" style="font-family: Arial,
Helvetica, sans-serif;font-size:12px;line-height:18px;">
<img
src="{VAR:LIVE_SITE}media/com_hikashop/images/icons/icon-48-order.png"
border="0" alt=""
style="float:left;margin-right:4px;"/>
<h1 style="color:#1c8faf
!important;font-size:16px;font-weight:bold; border-bottom:1px solid #ddd;
padding-bottom:10px">
{TXT:MAIL_TITLE}
</h1>
<h2 style="color:#1c8faf
!important;font-size:12px;font-weight:bold; padding-bottom:10px">
{TXT:YOU_HAVE_BEEN_PAID}
</h2>
</div>
</td>
<td class="w20" width="20"></td>
</tr>
<tr>
<td class="w20" width="20"></td>
<td style="border:1px solid
#adadad;background-color:#ffffff;">
<div class="w550" width="550"
id="content" style="font-family: Arial, Helvetica,
sans-serif;font-size:12px;line-height:18px;margin-left:5px;margin-right:5px;">
<p>
<h3 style="color:#393939 !important; font-size:14px;
font-weight:normal;
font-weight:bold;margin-bottom:0px;padding:0px;">{TXT:HI_VENDOR}</h3>
{TXT:SALE_BEGIN_MESSAGE}
</p>
<h1 style="color:#1c8faf
!important;font-size:16px;font-weight:bold;border-bottom:1px solid
#ddd;padding-top:10px;padding-bottom:10px;">
{TXT:SALE_CUSTOMER}
</h1>
<table class="w550" border="0"
cellspacing="0" cellpadding="0" width="550"
style="margin-top:10px;font-family: Arial, Helvetica,
sans-serif;font-size:12px;line-height:18px;">
<tr>
<td style="color:#1c8faf
!important;font-size:12px;font-weight:bold;">{TXT:BILLING_ADDRESS}</td>
</tr>
<tr>
<td>{VAR:BILLING_ADDRESS}</td>
</tr>
</table>
<h1 style="color:#1c8faf
!important;font-size:16px;font-weight:bold;border-bottom:1px solid
#ddd;padding-top:10px;padding-bottom:10px;">
{TXT:SUMMARY_OF_YOUR_SALE}
</h1>
<table class="w550" border="0"
cellspacing="0" cellpadding="0" width="550"
style="margin-top:10px;margin-bottom:10px;font-family: Arial,
Helvetica, sans-serif;font-size:12px;line-height:18px;">
<tr>
<td style="border-bottom:1px solid
#ddd;padding-bottom:3px;text-align:left;color:#1c8faf
!important;font-size:12px;font-weight:bold;">{TXT:PRODUCT_NAME}</td>
<td style="border-bottom:1px solid
#ddd;padding-bottom:3px;text-align:right;color:#1c8faf
!important;font-size:12px;font-weight:bold;">{TXT:PRODUCT_PRICE}</td>
<td style="border-bottom:1px solid
#ddd;padding-bottom:3px;text-align:right;color:#1c8faf
!important;font-size:12px;font-weight:bold;">{TXT:PRODUCT_QUANTITY}</td>
<td style="border-bottom:1px solid
#ddd;padding-bottom:3px;text-align:right;color:#1c8faf
!important;font-size:12px;font-weight:bold;">{TXT:PRODUCT_TOTAL}</td>
</tr>
<!--{START:PRODUCT_LINE}-->
<tr>
<td style="border-bottom:1px solid
#ddd;padding-bottom:3px;">
{LINEVAR:PRODUCT_IMG}
{LINEVAR:PRODUCT_NAME}<!--{IF:ORDER_PRODUCT_CODE}-->
{LINEVAR:PRODUCT_CODE}<!--{ENDIF:ORDER_PRODUCT_CODE}-->
</td>
<td style="border-bottom:1px solid
#ddd;padding-bottom:3px;text-align:right">{LINEVAR:PRODUCT_PRICE}</td>
<td style="border-bottom:1px solid
#ddd;padding-bottom:3px;text-align:right">{LINEVAR:PRODUCT_QUANTIY}</td>
<td style="border-bottom:1px solid
#ddd;padding-bottom:3px;text-align:right">{LINEVAR:PRODUCT_TOTAL}</td>
</tr>
<!--{END:PRODUCT_LINE}-->
<!--{START:ORDER_FOOTER}-->
<tr>
<td colspan="3" style="text-align:right;color:#1c8faf
!important;font-size:12px;font-weight:bold;">{LINEVAR:NAME}</td>
<td style="text-align:right">{LINEVAR:VALUE}</td>
</tr>
<!--{END:ORDER_FOOTER}-->
</table>
<!--{IF:PAYMENT}-->
<p>
<span style="color:#1c8faf
!important;font-size:12px;font-weight:bold;">{TXT:PAYMENT_METHOD}
:</span> {VAR:PAYMENT}
</p>
<!--{ENDIF:PAYMENT}-->
<!--{IF:SHIPPING}-->
<p>
<span style="color:#1c8faf
!important;font-size:12px;font-weight:bold;">{TXT:HIKASHOP_SHIPPING_METHOD}
:</span> {VAR:SHIPPING}
</p>
<!--{ENDIF:SHIPPING}-->
<!--{IF:ORDER_SUMMARY}-->
<h1 style="color:#1c8faf
!important;font-size:16px;font-weight:bold;border-bottom:1px solid
#ddd;padding-top:10px;padding-bottom:10px;">
{TXT:ADDITIONAL_INFORMATION}
</h1>
<p style="border-bottom:1px solid
#ddd;padding-bottom:10px;">
{VAR:ORDER_SUMMARY}
</p>
<!--{ENDIF:ORDER_SUMMARY}-->
<p>
{TXT:SALE_END_MESSAGE}
</p>
</div>
</td>
<td class="w20" width="20"></td>
</tr>
</table>
</td>
</tr>
<tr style="line-height: 0px;">
<td class="w600" style="line-height:0px"
width="600" valign="top">
<img class="w600"
src="{VAR:LIVE_SITE}/media/com_hikamarket/images/mail/footer.png"
border="0" alt="--" />
</td>
</tr>
</table>
</div>
PK�{�[J��Q5Q5,mail/vendor_payment_notification.preload.phpnu�[���<?php
/**
* @package HikaMarket for Joomla!
* @version 3.1.1
* @author Obsidev S.A.R.L.
* @copyright (C) 2011-2020 OBSIDEV. All rights reserved.
* @license GNU/GPLv3 http://www.gnu.org/licenses/gpl-3.0.html
*/
defined('_JEXEC') or die('Restricted access');
?><?php
$app = JFactory::getApplication();
$config = hikamarket::config();
$shopConfig = hikamarket::config(false);
$orderClass = hikamarket::get('shop.class.order');
$imageHelper = hikamarket::get('shop.helper.image');
$productClass = hikamarket::get('shop.class.product');
$fieldsClass = hikamarket::get('shop.class.field');
global $Itemid;
$url_itemid = '';
if(!empty($Itemid))
$url_itemid = '&Itemid=' . $Itemid;
$customer = $data->order->customer;
if($app->isAdmin()) {
$view = 'shop.order';
$order_url =
HIKASHOP_LIVE.'index.php?option=com_hikamarket&ctrl=order&task=show&cid='
. (int)$data->order_id;
} else {
$view = 'shop.address';
$order_url =
hikamarket::completeLink('order&task=show&cid=' .
(int)$data->order_id);
}
$order_number = isset($data->order->order_number) ?
$data->order->order_number :
@$data->order->old->order_number;
$url = '<a href="' . $order_url . '">'
. $order_number . '</a>';
$data->order->order_url = $order_url;
$data->cart = $orderClass->loadFullOrder($data->order_id, true,
false);
$data->cart->coupon = new stdClass();
$itemFields = null;
$price = new stdClass();
$tax = $data->cart->order_subtotal -
$data->cart->order_subtotal_no_vat +
$data->order->order_discount_tax +
$data->order->order_shipping_tax +
$data->order->order_payment_tax;
$price->price_value = $data->order->order_full_price - $tax;
$price->price_value_with_tax = $data->order->order_full_price;
$data->cart->full_total = new stdClass;
$data->cart->full_total->prices = array($price);
$data->cart->coupon->discount_value =&
$data->order->order_discount_price;
$vendor_name = $data->vendor->vendor_name;
$customer_name = @$data->customer->name;
if(empty($customer_name))
$customer_name =
@$data->cart->billing_address->address_firstname;
$vendor_access = hikamarket::getAclVendor($data->vendor);
$acl = array(
'notify' => hikamarket::aclTest('order/notify',
$vendor_access),
'billingaddress' =>
hikamarket::aclTest('order/show/billingaddress',
$vendor_access),
'shippingaddress' =>
hikamarket::aclTest('order/show/shippingaddress',
$vendor_access),
'customfields' =>
hikamarket::aclTest('order/show/customfields', $vendor_access),
);
$vars = array(
'LIVE_SITE' => HIKASHOP_LIVE,
'URL' => $order_url,
'ORDER_PRODUCT_CODE' =>
(bool)$shopConfig->get('show_product_code', false),
'order' => $data->cart,
'billing_addr' => @$data->cart->billing_address,
'vendor' => $data->vendor,
'customer' => @$data->customer,
'PAYMENT' => '',
'BILLING_ADDRESS' => '',
'ORDER_SUMMARY' => '',
);
$texts = array(
'BILLING_ADDRESS' =>
JText::_('HIKASHOP_BILLING_ADDRESS'),
'SHIPPING_ADDRESS' =>
JText::_('HIKASHOP_SHIPPING_ADDRESS'),
'SUMMARY_OF_YOUR_SALE' =>
JText::_('SUMMARY_OF_YOUR_SALE'),
'MAIL_HEADER' => JText::_('HIKASHOP_MAIL_HEADER'),
'PRODUCT_NAME' => JText::_('CART_PRODUCT_NAME'),
'PRODUCT_CODE' => JText::_('CART_PRODUCT_CODE'),
'PRODUCT_PRICE' =>
JText::_('CART_PRODUCT_UNIT_PRICE'),
'PRODUCT_QUANTITY' =>
JText::_('CART_PRODUCT_QUANTITY'),
'PRODUCT_TOTAL' => JText::_('HIKASHOP_TOTAL'),
'ADDITIONAL_INFORMATION' =>
JText::_('ADDITIONAL_INFORMATION'),
'MAIL_TITLE' => JText::_('YOUR_PAYMENT'),
'HI_VENDOR' => JText::sprintf('HI_VENDOR',
$vendor_name),
'YOU_HAVE_BEEN_PAID' =>
JText::_('YOU_HAVE_BEEN_PAID'),
'ORDER_CHANGED' =>
JText::sprintf('ORDER_STATUS_CHANGED_TO', $url,
$data->mail_status),
'SALE_BEGIN_MESSAGE' =>
JText::sprintf('MAIL_SALE_BEGIN_MESSAGE', $order_number,
$customer_name, HIKASHOP_LIVE),
'SALE_END_MESSAGE' =>
JText::sprintf('MAIL_SALE_END_MESSAGE', HIKASHOP_LIVE) .
'<br/>' . JText::sprintf('BEST_REGARDS_VENDOR',
$vendor_name),
);
if(!empty($data->usermsg->usermsg))
$texts['ORDER_CHANGED'] = $data->usermsg->usermsg;
$templates = array();
$products_ids = array();
foreach($data->cart->products as $item) {
$products_ids[] = $item->product_id;
}
$productClass->getProducts($products_ids);
$cartProducts = array();
$cartFooters = array();
{
$group = $shopConfig->get('group_options',0);
$subtotal = 0;
foreach($data->cart->products as $item) {
if($group && $item->order_product_option_parent_id)
continue;
$product = @$productClass->products[$item->product_id];
$cartProduct = array(
'PRODUCT_CODE' => $item->order_product_code,
'PRODUCT_QUANTIY' => $item->order_product_quantity,
'PRODUCT_IMG' => '',
'item' => $item,
'product' => $product,
);
if(!empty($item->images[0]->file_path)) {
$img = $imageHelper->getThumbnail($item->images[0]->file_path,
array(50, 50), array('forcesize' => true, 'scale'
=> 'outside'));
if($img->success) {
$image = str_replace('../', HIKASHOP_LIVE, $img->url);
$cartProduct['PRODUCT_IMG'] = '<img
src="'.$image.'" alt=""
style="float:left;margin-top:3px;margin-bottom:3px;margin-right:6px;max-height:50px;max-width:50px;"/>';
}
}
$t = '<p>' . $item->order_product_name;
if($group) {
$display_item_price = false;
foreach($data->cart->products as $j => $optionElement) {
if($optionElement->order_product_option_parent_id !=
$item->order_product_id) continue;
if($optionElement->order_product_price > 0)
$display_item_price = true;
}
if($display_item_price) {
if($shopConfig->get('price_with_tax'))
$t .= '
'.$currencyHelper->format($item->order_product_price +
$item->order_product_tax, $data->order->order_currency_id);
else
$t .= '
'.$currencyHelper->format($item->order_product_price,
$data->order->order_currency_id);
}
}
$t .= '</p>';
if(!empty($itemFields)) {
foreach($itemFields as $field) {
$namekey = $field->field_namekey;
if(!isset($item->$namekey) || !strlen($item->$namekey))
continue;
$t .= '<p>' . $fieldsClass->getFieldName($field) .
': ' . $fieldsClass->show($field, $item->$namekey,
'user_email') . '</p>';
}
}
if($group) {
foreach($data->cart->products as $j => $optionElement) {
if($optionElement->order_product_option_parent_id !=
$item->order_product_id) continue;
$item->order_product_price
+=$optionElement->order_product_price;
$item->order_product_tax +=$optionElement->order_product_tax;
$item->order_product_total_price+=$optionElement->order_product_total_price;
$item->order_product_total_price_no_vat+=$optionElement->order_product_total_price_no_vat;
$t .= '<p
class="hikashop_order_option_name">' .
$optionElement->order_product_name;
if($optionElement->order_product_price > 0) {
if($shopConfig->get('price_with_tax'))
$t .= ' ( +
'.$currencyHelper->format($optionElement->order_product_price +
$optionElement->order_product_tax,$data->order->order_currency_id).'
)';
else
$t .= ' ( +
'.$currencyHelper->format($optionElement->order_product_price,$data->order->order_currency_id).'
)';
}
$t .= '</p>';
}
}
$cartProduct['PRODUCT_NAME'] = $t;
$cartProduct['PRODUCT_DOWNLOAD'] = '';
if($shopConfig->get('price_with_tax')) {
$unit_price =
$currencyHelper->format($item->order_product_price+$item->order_product_tax,
$data->order->order_currency_id);
$total_price =
$currencyHelper->format($item->order_product_total_price,
$data->order->order_currency_id);
$subtotal += $item->order_product_total_price;
} else {
$unit_price = $currencyHelper->format($item->order_product_price,
$data->order->order_currency_id);
$total_price =
$currencyHelper->format($item->order_product_total_price_no_vat,
$data->order->order_currency_id);
$subtotal += $item->order_product_total_price_no_vat;
}
$cartProduct['PRODUCT_PRICE'] = $unit_price;
$cartProduct['PRODUCT_TOTAL'] = $total_price;
$cartProducts[] = $cartProduct;
}
$templates['PRODUCT_LINE'] = $cartProducts;
if(bccomp($data->order->order_discount_price,0,5) ||
bccomp($data->order->order_shipping_price,0,5) ||
bccomp($data->order->order_payment_price,0,5) ||
($data->cart->full_total->prices[0]->price_value!=$data->cart->full_total->prices[0]->price_value_with_tax)
|| !empty($data->cart->additional)) {
$cartFooters[] = array(
'NAME' => JText::_('SUBTOTAL'),
'VALUE' =>
$currencyHelper->format($subtotal,$data->order->order_currency_id)
);
}
if(bccomp($data->order->order_discount_price,0,5)) {
if($shopConfig->get('price_with_tax'))
$t = $currencyHelper->format($data->order->order_discount_price
* -1, $data->order->order_currency_id);
else
$t =
$currencyHelper->format(($data->order->order_discount_price -
@$data->order->order_discount_tax) * -1,
$data->order->order_currency_id);
$cartFooters[] = array(
'NAME' => JText::_('HIKASHOP_COUPON'),
'VALUE' => $t
);
}
if(bccomp($data->order->order_shipping_price,0,5)) {
if($shopConfig->get('price_with_tax'))
$t =
$currencyHelper->format($data->order->order_shipping_price,
$data->order->order_currency_id);
else
$t = $currencyHelper->format($data->order->order_shipping_price
- @$data->order->order_shipping_tax,
$data->order->order_currency_id);
$cartFooters[] = array(
'NAME' => JText::_('HIKASHOP_SHIPPING'),
'VALUE' => $t
);
}
if(bccomp($data->order->order_payment_price,0,5)) {
if($shopConfig->get('price_with_tax'))
$t = $currencyHelper->format($data->cart->order_payment_price,
$data->cart->order_currency_id);
else
$t = $currencyHelper->format($data->cart->order_payment_price -
@$data->cart->order_payment_tax,
$data->cart->order_currency_id);
$cartFooters[] = array(
'NAME' => JText::_('HIKASHOP_PAYMENT'),
'VALUE' => $t
);
}
if(!empty($data->cart->additional)) {
$exclude_additionnal = explode(',',
$shopConfig->get('order_additional_hide', ''));
foreach($data->cart->additional as $additional) {
if(in_array($additional->order_product_name, $exclude_additionnal))
continue;
if(!empty($additional->order_product_price) ||
empty($additionaltionnal->order_product_options)) {
if($shopConfig->get('price_with_tax'))
$t = $currencyHelper->format($additional->order_product_price +
@$additional->order_product_tax,
$data->order->order_currency_id);
else
$t = $currencyHelper->format($additional->order_product_price,
$data->order->order_currency_id);
} else {
$t = $additional->order_product_options;
}
$cartFooters[] = array(
'NAME' => JText::_($additional->order_product_name),
'VALUE' => $t
);
}
}
if($data->cart->full_total->prices[0]->price_value !=
$data->cart->full_total->prices[0]->price_value_with_tax) {
if($shopConfig->get('detailed_tax_display') &&
!empty($data->cart->order_tax_info)) {
foreach($data->cart->order_tax_info as $tax) {
$cartFooters[] = array(
'NAME' => $tax->tax_namekey,
'VALUE' =>
$currencyHelper->format($tax->tax_amount,
$data->order->order_currency_id)
);
}
} else {
$cartFooters[] = array(
'NAME' => JText::_('ORDER_TOTAL_WITHOUT_VAT'),
'VALUE' =>
$currencyHelper->format($data->cart->full_total->prices[0]->price_value,
$data->order->order_currency_id)
);
}
$cartFooters[] = array(
'NAME' => JText::_('ORDER_TOTAL_WITH_VAT'),
'VALUE' =>
$currencyHelper->format($data->cart->full_total->prices[0]->price_value_with_tax,
$data->order->order_currency_id)
);
} else {
$cartFooters[] = array(
'NAME' =>
JText::_('HIKAM_CUSTOMER_FINAL_TOTAL'),
'VALUE' =>
$currencyHelper->format($data->cart->full_total->prices[0]->price_value_with_tax,
$data->order->order_currency_id)
);
}
$vendor_price =
(float)hikamarket::toFloat($data->cart->order_vendor_price);
if($vendor_price < 0)
$vendor_price +=
$data->cart->full_total->prices[0]->price_value_with_tax;
if($vendor_price != 0) {
$cartFooters[] = array(
'NAME' => JText::_('HIKAM_VENDOR_FINAL_TOTAL'),
'VALUE' => $currencyHelper->format($vendor_price,
$data->order->order_currency_id)
);
}
$templates['ORDER_FOOTER'] = $cartFooters;
}
if(!empty($data->cart->order_payment_method)) {
if(!is_numeric($data->cart->order_payment_id)) {
$vars['PAYMENT'] =
$data->cart->order_payment_method.'
'.$data->cart->order_payment_id;
} else {
$paymentClass = hikamarket::get('shop.class.payment');
$payment = $paymentClass->get($data->cart->order_payment_id);
if(!empty($payment))
$vars['PAYMENT'] = $payment->payment_name;
unset($paymentClass);
}
}
ob_start();
JPluginHelper::importPlugin('hikashop');
JFactory::getApplication()->triggerEvent('onAfterOrderProductsListingDisplay',
array(&$data->cart,
'email_vendor_payment_notification_html'));
$content = ob_get_clean();
$vars['ORDER_SUMMARY'] = $content;
$vars['BILLING_ADDRESS'] = '';
$params = null;
$js = '';
$template = trim(hikamarket::getLayout($view, 'address_template',
$params, $js));
if(!empty($data->cart->billing_address) &&
!empty($data->cart->fields)) {
$billing = $template;
foreach($data->cart->fields as $field) {
$fieldname = $field->field_namekey;
if(!empty($data->cart->billing_address->$fieldname))
$billing = str_replace('{' . $fieldname . '}',
$fieldsClass->show($field,
$data->cart->billing_address->$fieldname, 'user_email'),
$billing);
}
$vars['BILLING_ADDRESS'] =
str_replace(array("\r\n","\r","\n"),'<br/>',preg_replace('#{(?:(?!}).)*}#i','',$billing));
}
PK�{�[�a�vv$mail/vendor_payment_request.html.phpnu�[���<?php
/**
* @package HikaMarket for Joomla!
* @version 3.1.1
* @author Obsidev S.A.R.L.
* @copyright (C) 2011-2020 OBSIDEV. All rights reserved.
* @license GNU/GPLv3 http://www.gnu.org/licenses/gpl-3.0.html
*/
defined('_JEXEC') or die('Restricted access');
?><style type="text/css">
body.hikashop_mail { background-color:#ffffff; color:#575757; }
.ReadMsgBody{width:100%;}
.ExternalClass{width:100%;}
div, p, a, li, td {-webkit-text-size-adjust:none;}
@media (min-width:600px){
#hikamarket_mail {width:600px !important;margin:auto !important;}
.pict img {max-width:500px !important;height:auto !important;}
}
@media (max-width:330px){
#hikamarket_mail{width:300px !important; margin:auto !important;}
table[class=w600], td[class=w600], table[class=w598], td[class=w598],
table[class=w500], td[class=w500], img[class="w600"]{width:100%
!important;}
td[class="w49"] { width: 10px !important;}
.pict img {max-width:278px; height:auto !important;}
}
@media (min-width:331px) and (max-width:480px){
#hikamarket_mail{width:450px !important; margin:auto !important;}
table[class=w600], td[class=w600], table[class=w598], td[class=w598],
table[class=w500], td[class=w500], img[class="w600"]{width:100%
!important;}
td[class="w49"] { width: 20px !important;}
.pict img {max-width:408px; height:auto !important;}
}
h1{color:#1c8faf;font-size:16px;font-weight:bold;border-bottom:1px solid
#ddd; padding-bottom:10px;}
h2{color:#89a9c1;font-size:14px;font-weight:bold;margin-top:20px;margin-bottom:5px;border-bottom:1px
solid #d6d6d6;padding-bottom:4px;}
a:visited{cursor:pointer;color:#2d9cbb;text-decoration:none;border:none;}
</style>
<div id="hikamarket_mail" style="font-family:Arial,
Helvetica,sans-serif;font-size:12px;line-height:18px;width:100%;background-color:#ffffff;padding-bottom:20px;color:#5b5b5b;">
<div class="hikashop_online" style="font-family:Arial,
Helvetica,sans-serif;font-size:11px;line-height:18px;color:#6a5c6b;text-decoration:none;margin:10px;text-align:center;">
<a
style="cursor:pointer;color:#2d9cbb;text-decoration:none;border:none;"
href="{VAR:URL}">
<span class="hikashop_online"
style="color:#6a5c6b;text-decoration:none;font-size:11px;margin-top:10px;margin-bottom:10px;text-align:center;">
{TXT:HIKASHOP_MAIL_HEADER}
</span>
</a>
</div>
<table class="w600" style="font-family:Arial, Helvetica,
sans-serif;font-size:12px;line-height:18px;margin:auto;background-color:#ebebeb;"
border="0" cellspacing="0" cellpadding="0"
width="600" align="center">
<tr style="line-height: 0px;">
<td class="w600" style="line-height:0px"
width="600" valign="bottom">
<img class="w600"
src="{VAR:LIVE_SITE}media/com_hikashop/images/mail/header_black.png"
border="0" alt="" />
</td>
</tr>
<tr>
<td class="w600" style="" width="600"
align="center">
<table class="w600" border="0"
cellspacing="0" cellpadding="0" width="600"
style="margin:0px;font-family: Arial, Helvetica,
sans-serif;font-size:12px;line-height:18px;">
<tr>
<td class="w20" width="20"></td>
<td class="w560 pict" style="text-align:left;
color:#575757" width="560">
<div id="title" style="font-family: Arial,
Helvetica, sans-serif;font-size:12px;line-height:18px;">
<img
src="{VAR:LIVE_SITE}/media/com_hikashop/images/icons/icon-48-payment.png"
border="0" alt=""
style="float:left;margin-right:4px;"/>
<h1 style="color:#1c8faf
!important;font-size:16px;font-weight:bold; border-bottom:1px solid #ddd;
padding-bottom:10px">
{TXT:MAIL_TITLE}
</h1>
</div>
</td>
<td class="w20" width="20"></td>
</tr>
<tr>
<td class="w20" width="20"></td>
<td style="border:1px solid
#adadad;background-color:#ffffff;">
<div class="w550" width="550"
id="content" style="font-family: Arial, Helvetica,
sans-serif;font-size:12px;line-height:18px;margin-left:5px;margin-right:5px;">
<p>
<h3 style="color:#393939 !important; font-size:14px;
font-weight:normal;
font-weight:bold;margin-bottom:0px;padding:0px;">{TXT:HI_ADMIN}</h3>
{TXT:VENDOR_PAYMENT_REQUEST_BEGIN_MESSAGE}
</p>
<p>
<strong>{TXT:HIKA_VENDOR}</strong>: <a
href="{VAR:VENDOR_URL}">{VAR:vendor.vendor_name}</a>
</p>
<table class="w550" border="0"
cellspacing="0" cellpadding="0" width="550"
style="margin-top:10px;margin-bottom:10px;font-family: Arial,
Helvetica, sans-serif;font-size:12px;line-height:18px;">
<tr>
<td style="border-bottom:1px solid
#ddd;padding-bottom:3px;text-align:left;color:#1c8faf
!important;font-size:12px;font-weight:bold;">{TXT:ORDER_STATUS}</td>
<td style="border-bottom:1px solid
#ddd;padding-bottom:3px;text-align:right;color:#1c8faf
!important;font-size:12px;font-weight:bold;">{TXT:HIKAM_STATS_TOTAL_ORDERS}</td>
<td style="border-bottom:1px solid
#ddd;padding-bottom:3px;text-align:right;color:#1c8faf
!important;font-size:12px;font-weight:bold;">{TXT:HIKASHOP_TOTAL}</td>
</tr>
<!--{START:REQUEST_LINE}-->
<tr>
<td style="border-bottom:1px solid
#ddd;padding-bottom:3px;">{LINEVAR:NAME}</td>
<td style="border-bottom:1px solid
#ddd;padding-bottom:3px;text-align:right">{LINEVAR:COUNT}</td>
<td style="border-bottom:1px solid
#ddd;padding-bottom:3px;text-align:right">{LINEVAR:TOTAL}</td>
</tr>
<!--{END:REQUEST_LINE}-->
<!--{START:REQUEST_FOOTER}-->
<tr>
<td colspan="2" style="text-align:right;color:#1c8faf
!important;font-size:12px;font-weight:bold;">{LINEVAR:COUNT}</td>
<td style="text-align:right;color:#1c8faf
!important;font-size:12px;font-weight:bold;">{LINEVAR:TOTAL}</td>
</tr>
<!--{END:REQUEST_FOOTER}-->
</table>
</div>
</td>
<td class="w20" width="20"></td>
</tr>
</table>
</td>
</tr>
<tr style="line-height: 0px;">
<td class="w600" style="line-height:0px"
width="600" valign="top">
<img class="w600"
src="{VAR:LIVE_SITE}/media/com_hikashop/images/mail/footer_black.png"
border="0" alt="--" />
</td>
</tr>
</table>
</div>
PK�{�[����'mail/vendor_payment_request.preload.phpnu�[���<?php
/**
* @package HikaMarket for Joomla!
* @version 3.1.1
* @author Obsidev S.A.R.L.
* @copyright (C) 2011-2020 OBSIDEV. All rights reserved.
* @license GNU/GPLv3 http://www.gnu.org/licenses/gpl-3.0.html
*/
defined('_JEXEC') or die('Restricted access');
?><?php
$vars = array(
'LIVE_SITE' => HIKASHOP_LIVE,
'VENDOR_URL'=>
HIKASHOP_LIVE.'administrator/index.php?option=com_hikamarket&ctrl=vendor&task=edit&cid='.$data->vendor->vendor_id,
'vendor' => $data->vendor,
'user' => $data->user
);
$texts = array(
'MAIL_TITLE' =>
JText::_('VENDOR_PAYMENT_REQUEST_EMAIL_SUBJECT'),
'MAIL_HEADER' =>
JText::_('HIKAMARKET_MAIL_HEADER'),
);
$currencyClass = hikamarket::get('shop.class.currency');
$vendorClass = hikamarket::get('class.vendor');
$stats = $vendorClass->getUnpaidOrders($data->vendor);
$total = new stdClass();
$total->count = 0;
$total->value = 0;
$total->currency = (int)$data->vendor->vendor_currency_id;
if(empty($total->currency))
$total->currency = hikashop_getCurrency();
$templates['REQUEST_LINE'] = array();
foreach($stats as $d) {
$total->count += (int)$d->count;
if($data->vendor->vendor_currency_id == $d->currency)
$total->value += hikamarket::toFloat( (int)$d->value );
else
$total->value +=
$currencyClass->convertUniquePrice((float)hikamarket::toFloat($d->value),
(int)$d->currency, (int)$data->vendor->vendor_currency_id);
$templates['REQUEST_LINE'][] = array(
'NAME' => hikamarket::orderStatus($d->status),
'COUNT' => (int)$d->count,
'TOTAL' => $currencyClass->format($d->value,
$d->currency)
);
}
$templates['REQUEST_FOOTER'] = array(
array(
'COUNT' => $total->count,
'TOTAL' => $currencyClass->format($total->value,
$total->currency)
)
);
PK�{�[|��,,'mail/vendor_payment_request.preview.phpnu�[���<?php
/**
* @package HikaMarket for Joomla!
* @version 3.1.1
* @author Obsidev S.A.R.L.
* @copyright (C) 2011-2020 OBSIDEV. All rights reserved.
* @license GNU/GPLv3 http://www.gnu.org/licenses/gpl-3.0.html
*/
defined('_JEXEC') or die('Restricted access');
?><?php
class market_vendor_payment_requestPreviewMaker {
public $displaySubmitButton = false;
public $type = 'market';
public function prepareMail($data = null) {
if(empty($data))
return $this->getDefaultData();
if(empty($data['vendor']))
$data['vendor'] = 1;
$userClass = hikashop_get('class.user');
$vendorClass = hikamarket::get('class.vendor');
$params = new stdClass();
$params->user = $userClass->get((int)$data['user']);
$params->vendor =
$vendorClass->get((int)$data['vendor']);
$params->vendor_name = $params->vendor->vendor_name;
$mailClass = hikamarket::get('class.mail');
$mail = $mailClass->load('vendor_admin_registration',
$params);
$mail->hikamarket = true;
if(empty($mail->subject))
$mail->subject = 'MARKET_VENDOR_PAYMENT_REQUEST_SUBJECT';
return $mail;
}
public function getDefaultData() {
}
public function getSelector($data) {
$nameboxType = hikashop_get('type.namebox');
$marketNameboxType = hikamarket::get('type.namebox');
$html_user = $nameboxType->display(
'data[user]',
(int)$data['user'],
hikashopNameboxType::NAMEBOX_SINGLE,
'user',
array(
'delete' => false,
'default_text' =>
'<em>'.JText::_('HIKA_NONE').'</em>',
'returnOnEmpty' => false,
)
);
if(!$html_user) {
hikashop_display(JText::_('PLEASE_FIRST_CREATE_A_PRODUCT'),
'info');
return;
}
$html_vendor = $marketNameboxType->display(
'data[vendor]',
(int)$data['vendor'],
hikashopNameboxType::NAMEBOX_SINGLE,
'vendor',
array(
'delete' => false,
'default_text' =>
'<em>'.JText::_('HIKA_NONE').'</em>',
'returnOnEmpty' => false,
)
);
if(empty($html_user)) {
echo
hikashop_display(Jtext::_('PLEASE_SELECT_A_PRODUCT_FOR_THE_PREVIEW'));
}
if(empty($html_vendor)) {
echo
hikashop_display(Jtext::_('PLEASE_SELECT_A_PRODUCT_FOR_THE_PREVIEW'));
}
?>
<dl class="hika_options">
<dt><?php echo JText::_('HIKA_USER'); ?></dt>
<dd><?php echo $html_user; ?></dd>
</dl>
<dl class="hika_options">
<dt><?php echo JText::_('HIKAMARKET_VENDOR');
?></dt>
<dd><?php echo $html_vendor; ?></dd>
</dl>
<script type="text/javascript">
window.Oby.ready(function() {
var w = window;
if(!w.oNameboxes['data_user'])
return;
w.oNameboxes['data_user'].register('set', function(e)
{
hikashop.submitform('preview','adminForm');
});
w.oNameboxes['data_vendor'].register('set',
function(e) {
hikashop.submitform('preview','adminForm');
});
});
</script>
<?php
}
}
PK�{�[�����!mail/vendor_registration.html.phpnu�[���<?php
/**
* @package HikaMarket for Joomla!
* @version 3.1.1
* @author Obsidev S.A.R.L.
* @copyright (C) 2011-2020 OBSIDEV. All rights reserved.
* @license GNU/GPLv3 http://www.gnu.org/licenses/gpl-3.0.html
*/
defined('_JEXEC') or die('Restricted access');
?><style type="text/css">
body.hikashop_mail { background-color:#ffffff; color:#575757; }
.ReadMsgBody{width:100%;}
.ExternalClass{width:100%;}
div, p, a, li, td {-webkit-text-size-adjust:none;}
@media (min-width:600px){
#hikamarket_mail {width:600px !important;margin:auto !important;}
.pict img {max-width:500px !important;height:auto !important;}
}
@media (max-width:330px){
#hikamarket_mail {width:300px !important; margin:auto !important;}
table[class=w600], td[class=w600], table[class=w598], td[class=w598],
table[class=w500], td[class=w500], img[class="w600"]{width:100%
!important;}
td[class="w49"] { width: 10px !important;}
.pict img {max-width:278px; height:auto !important;}
}
@media (min-width:331px) and (max-width:480px){
#hikamarket_mail{width:450px !important; margin:auto !important;}
table[class=w600], td[class=w600], table[class=w598], td[class=w598],
table[class=w500], td[class=w500], img[class="w600"]{width:100%
!important;}
td[class="w49"] { width: 20px !important;}
.pict img {max-width:408px; height:auto !important;}
}
h1{color:#1c8faf;font-size:16px;font-weight:bold;border-bottom:1px solid
#ddd; padding-bottom:10px;}
h2{color:#89a9c1;font-size:14px;font-weight:bold;margin-top:20px;margin-bottom:5px;border-bottom:1px
solid #d6d6d6;padding-bottom:4px;}
a:visited{cursor:pointer;color:#2d9cbb;text-decoration:none;border:none;}
</style>
<div id="hikamarket_mail" style="font-family:Arial,
Helvetica,sans-serif;font-size:12px;line-height:18px;width:100%;background-color:#ffffff;padding-bottom:20px;color:#5b5b5b;">
<div class="hikashop_online" style="font-family:Arial,
Helvetica,sans-serif;font-size:11px;line-height:18px;color:#6a5c6b;text-decoration:none;margin:10px;text-align:center;">
<a
style="cursor:pointer;color:#2d9cbb;text-decoration:none;border:none;"
href="{VAR:URL}">
<span class="hikashop_online"
style="color:#6a5c6b;text-decoration:none;font-size:11px;margin-top:10px;margin-bottom:10px;text-align:center;">
{TXT:MAIL_HEADER}
</span>
</a>
</div>
<table class="w600" style="font-family:Arial, Helvetica,
sans-serif;font-size:12px;line-height:18px;margin:auto;background-color:#ebebeb;"
border="0" cellspacing="0" cellpadding="0"
width="600" align="center">
<tr style="line-height: 0px;">
<td class="w600" style="line-height:0px"
width="600" valign="bottom">
<img class="w600"
src="{VAR:LIVE_SITE}media/com_hikamarket/images/mail/header.png"
border="0" alt="" />
</td>
</tr>
<tr>
<td class="w600" style="" width="600"
align="center">
<table class="w600" border="0"
cellspacing="0" cellpadding="0" width="600"
style="margin:0px;font-family: Arial, Helvetica,
sans-serif;font-size:12px;line-height:18px;">
<tr>
<td class="w20" width="20"></td>
<td class="w560 pict" style="text-align:left;
color:#575757" width="560">
<div id="title" style="font-family: Arial,
Helvetica, sans-serif;font-size:12px;line-height:18px;">
<img
src="{VAR:LIVE_SITE}media/com_hikashop/images/icons/icon-48-user.png"
border="0" alt=""
style="float:left;margin-right:4px;"/>
<h1 style="color:#1c8faf
!important;font-size:16px;font-weight:bold; border-bottom:1px solid #ddd;
padding-bottom:10px">
{TXT:VENDOR_REGISTRATION}
</h1>
</div>
</td>
<td class="w20" width="20"></td>
</tr>
<tr>
<td class="w20" width="20"></td>
<td style="border:1px solid
#adadad;background-color:#ffffff;">
<div class="w550" width="550"
id="content" style="font-family: Arial, Helvetica,
sans-serif;font-size:12px;line-height:18px;margin-left:5px;margin-right:5px;">
<p>
<h3 style="color:#393939 !important; font-size:14px;
font-weight:normal;
font-weight:bold;margin-bottom:0px;padding:0px;">{TXT:HI_VENDOR}</h3>
{TXT:VENDOR_REGISTRATION_BEGIN_MESSAGE}
</p>
</div>
</td>
<td class="w20" width="20"></td>
</tr>
</table>
</td>
</tr>
<tr style="line-height: 0px;">
<td class="w600" style="line-height:0px"
width="600" valign="top">
<img class="w600"
src="{VAR:LIVE_SITE}media/com_hikamarket/images/mail/footer.png"
border="0" alt="--" />
</td>
</tr>
</table>
</div>
PK�{�[����$mail/vendor_registration.preload.phpnu�[���<?php
/**
* @package HikaMarket for Joomla!
* @version 3.1.1
* @author Obsidev S.A.R.L.
* @copyright (C) 2011-2020 OBSIDEV. All rights reserved.
* @license GNU/GPLv3 http://www.gnu.org/licenses/gpl-3.0.html
*/
defined('_JEXEC') or die('Restricted access');
?><?php
$vars = array(
'LIVE_SITE' => HIKASHOP_LIVE,
'vendor_name' => @$data->vendor_name,
'URL' => HIKASHOP_LIVE,
'vendor' => @$data->vendor,
'user' => @$data->user
);
$texts = array(
'MAIL_TITLE' =>
JText::_('HIKAM_EMAIL_VENDOR_REGISTRATION'),
'HI_VENDOR' => JText::sprintf('HI_VENDOR',
@$data->name),
'MAIL_HEADER' =>
JText::_('HIKAMARKET_MAIL_HEADER')
);
$msg = JText::_('VENDOR_REGISTRATION_BEGIN_MESSAGE');
if(strpos($msg, '%s') !== false) {
$texts['VENDOR_REGISTRATION_BEGIN_MESSAGE'] =
JText::sprintf('VENDOR_REGISTRATION_BEGIN_MESSAGE',
HIKASHOP_LIVE, $data->name, $data->vendor->vendor_id);
}
PK�{�[�Ɗ�JJ$mail/vendor_registration.preview.phpnu�[���<?php
/**
* @package HikaMarket for Joomla!
* @version 3.1.1
* @author Obsidev S.A.R.L.
* @copyright (C) 2011-2020 OBSIDEV. All rights reserved.
* @license GNU/GPLv3 http://www.gnu.org/licenses/gpl-3.0.html
*/
defined('_JEXEC') or die('Restricted access');
?><?php
class market_vendor_registrationPreviewMaker {
public $displaySubmitButton = false;
public $type = 'registration';
public function prepareMail($data = null) {
if(empty($data))
return $this->getDefaultData();
if(empty($data['vendor']))
$data['vendor'] = 1;
$userClass = hikashop_get('class.user');
$vendorClass = hikamarket::get('class.vendor');
$params = new stdClass();
$params->user = $userClass->get((int)$data['user']);
$params->vendor =
$vendorClass->get((int)$data['vendor']);
$params->vendor_name = $params->vendor->vendor_name;
$params->name = $params->user->name;
$mailClass = hikamarket::get('class.mail');
$mail = $mailClass->load('vendor_registration', $params);
$mail->hikamarket = true;
if(empty($mail->subject))
$mail->subject = 'MARKET_VENDOR_REGISTRATION_SUBJECT';
return $mail;
}
public function getDefaultData() {
}
public function getSelector($data) {
$nameboxType = hikashop_get('type.namebox');
$marketNameboxType = hikamarket::get('type.namebox');
$html_user = $nameboxType->display(
'data[user]',
(int)$data['user'],
hikashopNameboxType::NAMEBOX_SINGLE,
'user',
array(
'delete' => false,
'default_text' =>
'<em>'.JText::_('HIKA_NONE').'</em>',
'returnOnEmpty' => false,
)
);
if(!$html_user) {
hikashop_display(JText::_('PLEASE_FIRST_CREATE_A_PRODUCT'),
'info');
return;
}
$html_vendor = $marketNameboxType->display(
'data[vendor]',
(int)$data['vendor'],
hikashopNameboxType::NAMEBOX_SINGLE,
'vendor',
array(
'delete' => false,
'default_text' =>
'<em>'.JText::_('HIKA_NONE').'</em>',
'returnOnEmpty' => false,
)
);
if(empty($html_user)) {
echo
hikashop_display(Jtext::_('PLEASE_SELECT_A_USER_FOR_THE_PREVIEW'));
}
if(empty($html_vendor)) {
echo
hikashop_display(Jtext::_('PLEASE_SELECT_A_VENDOR_FOR_THE_PREVIEW'));
}
?>
<dl class="hika_options">
<dt><?php echo JText::_('HIKA_USER'); ?></dt>
<dd><?php echo $html_user; ?></dd>
</dl>
<dl class="hika_options">
<dt><?php echo JText::_('HIKAMARKET_VENDOR');
?></dt>
<dd><?php echo $html_vendor; ?></dd>
</dl>
<script type="text/javascript">
window.Oby.ready(function() {
var w = window;
if(!w.oNameboxes['data_user'])
return;
w.oNameboxes['data_user'].register('set', function(e)
{
hikashop.submitform('preview','adminForm');
});
w.oNameboxes['data_vendor'].register('set',
function(e) {
hikashop.submitform('preview','adminForm');
});
});
</script>
<?php
}
}
PK�[eXţ=/=/controllers/category.phpnu�[���<?php
/**
* @package HikaMarket for Joomla!
* @version 3.1.1
* @author Obsidev S.A.R.L.
* @copyright (C) 2011-2020 OBSIDEV. All rights reserved.
* @license GNU/GPLv3 http://www.gnu.org/licenses/gpl-3.0.html
*/
defined('_JEXEC') or die('Restricted access');
?><?php
class categoryMarketController extends hikamarketController {
protected $rights = array(
'display' =>
array('show','listing','upload','image','edit_translation','galleryimage','gettree','findlist'),
'add' => array('add'),
'edit' =>
array('edit','addimage','toggle',
'galleryselect'),
'modify' => array('apply', 'save',
'save_translation', 'saveorder',
'save2new'),
'delete' => array('delete')
);
protected $ordering = array(
'type' => 'category',
'pkey' => 'category_id',
'table' => 'category',
'groupMap' => 'category_parent_id',
'orderingMap' => 'category_ordering',
'groupVal' => 0
);
protected $type = 'category';
protected $config = null;
public function __construct($config = array(), $skip = false) {
parent::__construct($config, $skip);
if(!$skip)
$this->registerDefaultTask('listing');
$this->config = hikamarket::config();
}
public function listing() {
if(!hikamarket::loginVendor())
return false;
if(!$this->config->get('frontend_edition',0))
return false;
if(!hikamarket::acl('category/listing'))
return hikamarket::deny('vendor',
JText::sprintf('HIKAM_ACTION_DENY',
JText::_('HIKAM_ACT_CATEGORY_LISTING')));
hikaInput::get()->set('layout', 'listing');
return parent::display();
}
public function saveorder(){
if( !hikamarket::loginVendor() )
return false;
if( !$this->config->get('frontend_edition',0) )
return false;
if( !hikamarket::acl('category/edit') )
return hikamarket::deny('category',
JText::sprintf('HIKAM_ACTION_DENY',
JText::_('HIKAM_ACT_CATEGORY_EDIT')));
$category_id = hikamarket::getCID('category_id');
if(!hikamarket::isVendorCategory($category_id))
return hikamarket::deny('category',
JText::_('HIKAM_PAGE_DENY'));
$this->ordering['groupVal'] = $category_id;
return parent::saveorder();
}
public function authorize($task) {
if($task == 'toggle' || $task == 'delete') {
$completeTask = hikaInput::get()->getCmd('task');
if(strrpos($completeTask, '-') !== false) {
$category_id = (int)substr($completeTask, strrpos($completeTask,
'-') + 1);
} else {
$category_id = hikaInput::get()->getInt('category_id');
if(empty($category_id))
$category_id = hikaInput::get()->getInt('value');
}
if(!hikamarket::loginVendor())
return false;
if(!$this->config->get('frontend_edition',0))
return false;
if(!JSession::checkToken('request'))
return false;
if($task == 'toggle' &&
!hikamarket::acl('category/edit/published'))
return false;
if($task == 'delete' &&
!hikamarket::acl('category/delete'))
return false;
if(!hikamarket::isVendorCategory($category_id))
return false;
return true;
}
return parent::authorize($task);
}
public function show() {
$this->edit();
}
public function save2new() {
$this->store(true);
return $this->add();
}
public function edit() {
if( !hikamarket::loginVendor() )
return false;
if( !$this->config->get('frontend_edition',0) )
return false;
if( !hikamarket::acl('category/edit') )
return hikamarket::deny('category',
JText::sprintf('HIKAM_ACTION_DENY',
JText::_('HIKAM_ACT_CATEGORY_EDIT')));
$category_id = hikamarket::getCID('category_id');
if(!hikamarket::isVendorCategory($category_id))
return hikamarket::deny('category',
JText::_('HIKAM_PAGE_DENY'));
hikaInput::get()->set('layout', 'form');
return parent::display();
}
public function add() {
if( !hikamarket::loginVendor() )
return false;
if( !$this->config->get('frontend_edition',0) )
return false;
if( !hikamarket::acl('category/add') )
return hikamarket::deny('category',
JText::sprintf('HIKAM_ACTION_DENY',
JText::_('HIKAM_ACT_CATEGORY_EDIT')));
hikaInput::get()->set('layout', 'form');
return parent::display();
}
public function edit_translation() {
if( !hikamarket::loginVendor() )
return false;
if( !$this->config->get('frontend_edition',0) )
return false;
if( !hikamarket::acl('category/edit/translations') )
return hikamarket::deny('category',
JText::sprintf('HIKAM_ACTION_DENY',
JText::_('HIKAM_ACT_CATEGORY_EDIT')));
$category_id = hikamarket::getCID('category_id');
if(!hikamarket::isVendorProduct($category_id))
return hikamarket::deny('category',
JText::_('HIKAM_PAGE_DENY'));
hikaInput::get()->set('layout',
'edit_translation');
return parent::display();
}
public function save_translation() {
if( !hikamarket::loginVendor() )
return false;
if( !$this->config->get('frontend_edition',0) )
return false;
if( !hikamarket::acl('category/edit/translations') )
return hikamarket::deny('category',
JText::sprintf('HIKAM_ACTION_DENY',
JText::_('HIKAM_ACT_CATEGORY_EDIT')));
$category_id = hikamarket::getCID('category_id');
if(!hikamarket::isVendorCategory($category_id))
return hikamarket::deny('category',
JText::_('HIKAM_PAGE_DENY'));
$category = null;
$categoryClass = hikamarket::get('class.category');
$category = $categoryClass->getRaw($category_id);
if(!empty($category->category_id)) {
$translationHelper =
hikamarket::get('shop.helper.translation');
$translationHelper->getTranslations($product);
$translationHelper->handleTranslations('category',
$category->category_id, $category);
}
$js =
'window.hikashop.ready(function(){window.parent.hikamarket.submitBox();});';
$doc = JFactory::getDocument();
$doc->addScriptDeclaration($js);
}
public function delete() {
if( !$this->config->get('frontend_edition', 0)) {
$this->raiseForbidden();
return false;
}
if( !hikamarket::loginVendor() )
return false;
$completeTask = hikaInput::get()->getCmd('task');
if(strrpos($completeTask, '-') !== false) {
$category_id = (int)substr($completeTask, strrpos($completeTask,
'-') + 1);
} else {
$category_id = hikaInput::get()->getInt('category_id');
}
if(empty($category_id))
return false;
if(!hikamarket::acl('category/delete') ||
!hikamarket::isVendorCategory($category_id))
return false;
$categoryClass = hikamarket::get('shop.class.category');
$ret = $categoryClass->delete($category_id);
$app = JFactory::getApplication();
if(!empty($ret) && $ret > 0) {
$app->enqueueMessage(JText::sprintf('SUCC_DELETE_ELEMENTS',
1), 'message');
}
$app->redirect(hikamarket::completeLink('category&task=listing',
false, true));
}
public function store($new = false) {
if(!hikamarket::loginVendor())
return false;
if( !$this->config->get('frontend_edition',0) )
return false;
if( !hikamarket::acl('category/edit') )
return hikamarket::deny('category',
JText::sprintf('HIKAM_ACTION_DENY',
JText::_('HIKAM_ACT_CATEGORY_EDIT')));
$categoryClass = hikamarket::get('class.category');
if( $categoryClass === null )
return false;
$status = $categoryClass->frontSaveForm();
if($status) {
hikaInput::get()->set('cid', $status);
if($new)
hikaInput::get()->set('cid', 0);
hikaInput::get()->set('fail', null);
}
return $status;
}
public function getUploadSetting($upload_key, $caller = '') {
if( !hikamarket::loginVendor() )
return false;
if( !hikamarket::acl('category/edit') )
return false;
$category_id = hikaInput::get()->getInt('category_id', 0);
if(empty($upload_key) || (!empty($category_id) &&
!hikamarket::isVendorCategory($category_id)))
return false;
$upload_value = null;
$upload_keys = array(
'category_image' => array(
'type' => 'image',
'view' => 'form_image_entry'
)
);
if(empty($upload_keys[$upload_key]))
return false;
$upload_value = $upload_keys[$upload_key];
$shopConfig = hikamarket::config(false);
$vendor_id = hikamarket::loadVendor(false, false);
$options = array();
if($upload_value['type'] == 'image')
$options['upload_dir'] =
$shopConfig->get('uploadfolder');
else
$options['upload_dir'] =
$shopConfig->get('uploadsecurefolder');
if($vendor_id > 1)
$options['sub_folder'] = 'vendor'.$vendor_id.DS;
return array(
'limit' => 1,
'type' => $upload_value['type'],
'layout' => 'categorymarket',
'view' => $upload_value['view'],
'options' => $options,
'extra' => array(
'category_id' => $category_id
)
);
}
public function manageUpload($upload_key, &$ret, $uploadConfig,
$caller = '') {
if(empty($ret))
return;
$config = hikamarket::config();
$vendor_id = hikamarket::loadVendor(false, false);
$category_id =
(int)$uploadConfig['extra']['category_id'];
if(!empty($category_id) &&
!hikamarket::isVendorCategory($category_id))
return;
$file_type = 'category';
if(!empty($uploadConfig['extra']['file_type']))
$file_type = $uploadConfig['extra']['file_type'];
$sub_folder = '';
if(!empty($uploadConfig['options']['sub_folder']))
$sub_folder = str_replace('\\', '/',
$uploadConfig['options']['sub_folder']);
if($caller == 'upload' || $caller == 'addimage') {
$file = new stdClass();
$file->file_description = '';
$file->file_name = $ret->name;
$file->file_type = $file_type;
$file->file_ref_id = $category_id;
$file->file_path = $sub_folder . $ret->name;
if(strpos($file->file_name, '.') !== false) {
$file->file_name = substr($file->file_name, 0,
strrpos($file->file_name, '.'));
}
$fileClass = hikamarket::get('shop.class.file');
$status = $fileClass->save($file, $file_type);
$ret->file_id = $status;
$ret->params->file_id = $status;
return;
}
if($caller == 'galleryselect') {
$file = new stdClass();
$file->file_type = 'category';
$file->file_ref_id = $category_id;
$file->file_path = $sub_folder . $ret->name;
$fileClass = hikamarket::get('shop.class.file');
$status = $fileClass->save($file);
$ret->file_id = $status;
$ret->params->file_id = $status;
return;
}
}
public function getTree() {
hikamarket::headerNoCache();
hikamarket::cleanBuffers();
if(!hikamarket::loginVendor() ||
!$this->config->get('frontend_edition',0)) {
echo '[]';
exit;
}
$category_id = hikaInput::get()->getInt('category_id', 0);
$displayFormat =
hikaInput::get()->getString('displayFormat', '');
$search = hikaInput::get()->getString('search', null);
$nameboxType = hikamarket::get('type.namebox');
$options = array(
'start' => $category_id,
'displayFormat' => $displayFormat
);
if(!hikamarket::isVendorCategory($category_id, null, true)) {
echo '[]';
exit;
}
$ret = $nameboxType->getValues($search, 'category',
$options);
if(!empty($ret)) {
echo json_encode($ret);
exit;
}
echo '[]';
exit;
}
public function findList() {
hikamarket::headerNoCache();
hikamarket::cleanBuffers();
if(!hikamarket::loginVendor() ||
!$this->config->get('frontend_edition',0)) {
echo '[]';
exit;
}
$search = hikaInput::get()->getString('search',
'');
$start = hikaInput::get()->getInt('start', 0);
$type = hikaInput::get()->getString('category_type',
'');
$displayFormat =
hikaInput::get()->getString('displayFormat', '');
$types = array(
'manufacturer' => 'brand',
'order_status' => 'order_status'
);
if(!isset($types[$type])) {
echo '[]';
exit;
}
$type = $types[$type];
$options = array();
if(!empty($displayFormat))
$options['displayFormat'] = $displayFormat;
if($start > 0)
$options['page'] = $start;
$nameboxType = hikamarket::get('type.namebox');
$elements = $nameboxType->getValues($search, $type, $options);
echo json_encode($elements);
exit;
}
}
PK�[���"�"controllers/characteristic.phpnu�[���<?php
/**
* @package HikaMarket for Joomla!
* @version 3.1.1
* @author Obsidev S.A.R.L.
* @copyright (C) 2011-2020 OBSIDEV. All rights reserved.
* @license GNU/GPLv3 http://www.gnu.org/licenses/gpl-3.0.html
*/
defined('_JEXEC') or die('Restricted access');
?><?php
class characteristicMarketController extends hikamarketController {
protected $rights = array(
'display' =>
array('show','listing','findlist'),
'add' => array('add'),
'edit' => array('edit',),
'modify' =>
array('apply','save','addcharacteristic'),
'delete' => array('delete')
);
protected $ordering = array(
'type' => 'characteristic',
'pkey' => 'characteristic_id',
'table' => 'characteristic',
'groupMap' => 'characteristic_parent_id',
'orderingMap' => 'characteristic_ordering',
'groupVal' => 0
);
protected $type = 'characteristic';
protected $config = null;
public function __construct($config = array(), $skip = false) {
parent::__construct($config, $skip);
if(!$skip)
$this->registerDefaultTask('listing');
$this->config = hikamarket::config();
}
public function listing() {
if(!hikamarket::loginVendor())
return false;
if(!$this->config->get('frontend_edition',0))
return false;
if(!hikamarket::acl('characteristic/listing'))
return hikamarket::deny('vendor',
JText::sprintf('HIKAM_ACTION_DENY',
JText::_('HIKAM_ACT_CHARACTERISTIC_LISTING')));
hikaInput::get()->set('layout', 'listing');
return parent::display();
}
public function show() {
if(!hikamarket::loginVendor())
return false;
if(!$this->config->get('frontend_edition',0))
return false;
if(!hikamarket::acl('characteristic/show'))
return hikamarket::deny('vendor',
JText::sprintf('HIKAM_ACTION_DENY',
JText::_('HIKAM_ACT_CHARACTERISTIC_SHOWING')));
$vendor_id = hikamarket::loadVendor(false);
$characteristic_id = hikamarket::getCID('characteristic_id');
$characteristic = null;
if($characteristic_id > 0) {
$characteristicClass =
hikamarket::get('class.characteristic');
$characteristic = $characteristicClass->get($characteristic_id);
}
if(!empty($characteristic_id) && (empty($characteristic) ||
($characteristic->characteristic_vendor_id > 0 &&
$characteristic->characteristic_vendor_id != $vendor_id)))
return hikamarket::deny('characteristic',
JText::sprintf('HIKAM_ACTION_ERROR',
JText::_('HIKAM_WRONG_DATA')));
return parent::show();
}
public function edit() {
return $this->show();
}
public function add() {
return $this->show();
}
public function store() {
if(!hikamarket::loginVendor())
return false;
if( !$this->config->get('frontend_edition',0) )
return false;
$characteristic_id = hikamarket::getCID('characteristic_id');
if(!empty($characteristic_id) &&
!hikamarket::acl('characteristic/edit') )
return hikamarket::deny('characteristic',
JText::sprintf('HIKAM_ACTION_DENY',
JText::_('HIKAM_ACT_CHARACTERISTIC_EDIT')));
if(empty($characteristic_id) &&
!hikamarket::acl('characteristic/add') )
return hikamarket::deny('characteristic',
JText::sprintf('HIKAM_ACTION_DENY',
JText::_('HIKAM_ACT_CHARACTERISTIC_ADD')));
JSession::checkToken() || die('Invalid Token');
$tmpl = hikaInput::get()->getCmd('tmpl', '');
$characteristicClass =
hikamarket::get('class.characteristic');
if($characteristicClass === null)
return false;
$status = $characteristicClass->frontSaveForm();
if($tmpl == 'json') {
if(!empty($status))
echo '{id:' . $status . '}';
else
echo '{err:"failed"}';
exit;
}
$app = JFactory::getApplication();
if($status) {
$app->enqueueMessage(JText::_('HIKASHOP_SUCC_SAVED'),
'success');
hikaInput::get()->set('cid', $status);
hikaInput::get()->set('fail', null);
} else {
$app->enqueueMessage(JText::_('ERROR_SAVING'),
'error');
if(!empty($characteristicClass->errors)) {
foreach($characteristicClass->errors as $err) {
$app->enqueueMessage($err, 'error');
}
}
}
return $status;
}
public function addCharacteristic() {
if(!hikamarket::loginVendor())
return false;
if(!$this->config->get('frontend_edition',0))
return false;
JSession::checkToken('request') || die('Invalid
Token');
$tmpl = hikaInput::get()->getCmd('tmpl', '');
$characteristic_parent_id =
hikaInput::get()->getInt('characteristic_parent_id', 0);
$characteristic_type =
hikaInput::get()->getCmd('characteristic_type',
'');
$value = hikaInput::get()->getString('value',
'');
if(empty($value))
return hikamarket::deny('vendor',
JText::sprintf('HIKAM_ACTION_ERROR',
JText::_('HIKAM_WRONG_DATA')));
$value = trim($value);
$vendor_id = hikamarket::loadVendor(false);
if($vendor_id == 1)
$vendor_id = 0;
$ret = false;
if($characteristic_type == 'value') {
if(!hikamarket::acl('characteristic/values/add'))
return hikamarket::deny('vendor',
JText::sprintf('HIKAM_ACTION_DENY',
JText::_('HIKAM_ACT_CHARACTERISTIC_ADD')));
if($characteristic_parent_id <= 0 ||
(!hikamarket::isVendorCharacteristic($characteristic_parent_id) &&
!hikamarket::isVendorCharacteristic($characteristic_parent_id, 0, 0)))
return hikamarket::deny('vendor',
JText::sprintf('HIKAM_ACTION_ERROR',
JText::_('HIKAM_WRONG_DATA')));
$characteristicClass =
hikamarket::get('class.characteristic');
$characteristic_vendor_id = $vendor_id;
if($characteristic_vendor_id == 0 &&
hikamarket::acl('characteristic/values/edit/vendor'))
$characteristic_vendor_id =
(int)hikaInput::get()->getInt('characteristic_vendor_id', 0);
if($characteristicClass->findValue($value, $characteristic_parent_id,
$characteristic_vendor_id) > 0)
return hikamarket::deny('vendor',
JText::sprintf('HIKAM_ACTION_ERROR',
JText::_('HIKAM_WRONG_DATA')));
$element = new stdClass();
$element->characteristic_parent_id = $characteristic_parent_id;
$element->characteristic_value = $value;
$element->characteristic_vendor_id = $characteristic_vendor_id;
$ret = $characteristicClass->save($element);
} else {
if(!hikamarket::acl('characteristic/add'))
return hikamarket::deny('vendor',
JText::sprintf('HIKAM_ACTION_DENY',
JText::_('HIKAM_ACT_CHARACTERISTIC_ADD')));
$characteristicClass =
hikamarket::get('class.characteristic');
$characteristic_vendor_id = $vendor_id;
if($characteristic_vendor_id == 0 &&
hikamarket::acl('characteristic/edit/vendor'))
$characteristic_vendor_id =
(int)hikaInput::get()->getInt('characteristic_vendor_id', 0);
if($characteristicClass->findValue($value, 0,
$characteristic_vendor_id) > 0)
return hikamarket::deny('vendor',
JText::sprintf('HIKAM_ACTION_ERROR',
JText::_('HIKAM_WRONG_DATA')));
$element = new stdClass();
$element->characteristic_parent_id = 0;
$element->characteristic_value = $value;
$element->characteristic_alias = strtolower($value);
$element->characteristic_vendor_id = $characteristic_vendor_id;
$ret = $characteristicClass->save($element);
}
if($tmpl == 'json') {
while(ob_get_level())
@ob_end_clean();
if(!empty($ret)) {
$data = array(
'value' => $ret,
'name' => $value
);
if($vendor_id == 0) {
$data['vendor_id'] = $element->characteristic_vendor_id;
if($element->characteristic_vendor_id > 0) {
$vendorClass = hikamarket::get('class.vendor');
$vendor =
$vendorClass->get($element->characteristic_vendor_id);
$data['vendor'] = $vendor->vendor_name;
}
}
echo json_encode($data);
} else
echo '{err:"failed"}';
exit;
}
hikaInput::get()->set('layout', 'listing');
return parent::display();
}
public function findList() {
if(!hikamarket::loginVendor())
return false;
if(!$this->config->get('frontend_edition',0))
return false;
$search = hikaInput::get()->getString('search',
'');
$type = hikaInput::get()->getString('characteristic_type',
'');
$characteristic_parent_id =
hikaInput::get()->getInt('characteristic_parent_id', 0);
$options = array(
'vendor' => hikamarket::loadVendor(false)
);
if($type == 'value') {
if($characteristic_parent_id <= 0 ||
(!hikamarket::isVendorCharacteristic($characteristic_parent_id) &&
!hikamarket::isVendorCharacteristic($characteristic_parent_id,0,0)))
return hikamarket::deny('vendor',
JText::sprintf('HIKAM_ACTION_ERROR',
JText::_('HIKAM_WRONG_DATA')), 'error',
'json');
$type = 'characteristic_value';
$options['url_params'] = array('ID' =>
$characteristic_parent_id);
} else
$type = 'characteristic';
$nameboxType = hikamarket::get('type.namebox');
$elements = $nameboxType->getValues($search, $type, $options);
while(ob_get_level())
@ob_end_clean();
echo json_encode($elements);
exit;
}
}
PK�[>��?��controllers/discount.phpnu�[���<?php
/**
* @package HikaMarket for Joomla!
* @version 3.1.1
* @author Obsidev S.A.R.L.
* @copyright (C) 2011-2020 OBSIDEV. All rights reserved.
* @license GNU/GPLv3 http://www.gnu.org/licenses/gpl-3.0.html
*/
defined('_JEXEC') or die('Restricted access');
?><?php
class discountMarketController extends hikamarketController {
protected $rights = array(
'display' => array('show', 'listing'),
'add' => array('add'),
'edit' => array('edit'),
'modify' => array('apply', 'save',
'toggle'),
'delete' => array('delete')
);
public function __construct($config = array(), $skip = false) {
parent::__construct($config, $skip);
if(!$skip)
$this->registerDefaultTask('listing');
$this->config = hikamarket::config();
}
public function listing() {
if(!hikamarket::loginVendor())
return false;
if(!$this->config->get('frontend_edition',0))
return false;
if(!hikamarket::acl('discount/listing'))
return hikamarket::deny('vendor',
JText::sprintf('HIKAM_ACTION_DENY',
JText::_('HIKAM_ACT_DISCOUNT_LISTING')));
hikaInput::get()->set('layout', 'listing');
return parent::display();
}
public function add() {
if( !hikamarket::loginVendor() )
return false;
if( !$this->config->get('frontend_edition',0) )
return false;
$redirection = 'discount';
if(!hikamarket::acl('discount/listing'))
$redirection = 'vendor';
if( !hikamarket::acl('discount/add') ) {
return hikamarket::deny($redirection,
JText::sprintf('HIKAM_ACTION_DENY',
JText::_('HIKAM_ACT_DISCOUNT_ADD')));
}
hikaInput::get()->set('layout', 'show');
return parent::display();
}
public function edit() {
if( !hikamarket::loginVendor() )
return false;
if( !$this->config->get('frontend_edition',0) )
return false;
$redirection = 'discount';
if(!hikamarket::acl('discount/listing'))
$redirection = 'vendor';
if( !hikamarket::acl('discount/edit') ) {
return hikamarket::deny($redirection,
JText::sprintf('HIKAM_ACTION_DENY',
JText::_('HIKAM_ACT_DISCOUNT_EDIT')));
}
$discount_id = hikamarket::getCID('discount_id');
if(!hikamarket::isVendorDiscount($discount_id))
return hikamarket::deny($redirection,
JText::_('HIKAM_PAGE_DENY'));
hikaInput::get()->set('layout', 'show');
return parent::display();
}
public function store() {
if(!hikamarket::loginVendor())
return false;
if( !$this->config->get('frontend_edition',0) )
return false;
$redirection = 'discount';
if(!hikamarket::acl('discount/listing'))
$redirection = 'vendor';
if( !hikamarket::acl('discount/edit') )
return hikamarket::deny($redirection,
JText::sprintf('HIKAM_ACTION_DENY',
JText::_('HIKAM_ACT_DISCOUNT_EDIT')));
$discountClass = hikamarket::get('class.discount');
if( $discountClass === null )
return false;
$status = $discountClass->frontSaveForm();
if($status) {
hikaInput::get()->set('cid', $status);
hikaInput::get()->set('fail', null);
}
return $status;
}
public function delete() {
if( !$this->config->get('frontend_edition', 0)) {
throw new JAccessExceptionNotallowed(JText::_('Access
Forbidden'), 403);
return false;
}
if( !hikamarket::loginVendor() )
return false;
$completeTask = hikaInput::get()->getCmd('task');
if(strrpos($completeTask, '-') !== false) {
$discount_id = (int)substr($completeTask, strrpos($completeTask,
'-') + 1);
} else {
$discount_id = hikaInput::get()->getInt('discount_id');
}
if(empty($discount_id))
return false;
if(!hikamarket::acl('discount/delete') ||
!hikamarket::isVendorDiscount($discount_id))
return false;
$discountClass = hikamarket::get('shop.class.discount');
$ret = $discountClass->delete($discount_id);
$app = JFactory::getApplication();
if(!empty($ret) && $ret > 0) {
$app->enqueueMessage(JText::sprintf('SUCC_DELETE_ELEMENTS',
1), 'message');
}
$app->redirect(hikamarket::completeLink('discount&task=listing',
false, true));
}
public function authorize($task) {
if($task == 'toggle' || $task == 'delete') {
$completeTask = hikaInput::get()->getCmd('task');
$discount_id = (int)substr($completeTask, strrpos($completeTask,
'-') + 1);
if(!hikamarket::loginVendor())
return false;
if(!$this->config->get('frontend_edition',0))
return false;
if(!JSession::checkToken('request'))
return false;
if($task == 'toggle' &&
!hikamarket::acl('discount/edit/published'))
return false;
if($task == 'delete' &&
!hikamarket::acl('discount/delete'))
return false;
if(!hikamarket::isVendorDiscount($discount_id))
return false;
return true;
}
return parent::authorize($task);
}
}
PK�[wtW�controllers/index.htmlnu�[���<html><body></body></html>PK�[mbT�V�Vcontrollers/order.phpnu�[���<?php
/**
* @package HikaMarket for Joomla!
* @version 3.1.1
* @author Obsidev S.A.R.L.
* @copyright (C) 2011-2020 OBSIDEV. All rights reserved.
* @license GNU/GPLv3 http://www.gnu.org/licenses/gpl-3.0.html
*/
defined('_JEXEC') or die('Restricted access');
?><?php
class orderMarketController extends hikamarketController {
protected $rights = array(
'display' =>
array('listing','show','invoice','mail','previewmail','status','history','showblock','request','create','payments'),
'add' => array('add'),
'edit' => array('edit',
'edit_additional', 'product_add',
'product_delete', 'customer_set', 'export',
'product_data'),
'modify' =>
array('apply','save','customer_save','sendmail','submitblock'),
'delete' => array(),
);
protected $subtasks = array(
'customer',
'billing_address',
'shipping_address',
'products',
'additional',
'general',
'history'
);
protected $popupSubtasks = array(
'additional',
'products'
);
protected $config = null;
public function __construct($config = array(), $skip = false) {
parent::__construct($config, $skip);
if(!$skip)
$this->registerDefaultTask('listing');
$this->config = hikamarket::config();
}
protected function checks($order_id = null) {
if( !hikamarket::loginVendor() )
return false;
if( !$this->config->get('frontend_edition', 0) )
return false;
if($order_id !== null && !hikamarket::isVendorOrder($order_id))
return false;
return true;
}
public function listing() {
if(!$this->checks())
return false;
if(!hikamarket::acl('order/listing'))
return hikamarket::deny('vendor',
JText::sprintf('HIKAM_ACTION_DENY',
JText::_('HIKAM_ACT_ORDER_LISTING')));
hikaInput::get()->set('layout', 'listing');
return parent::display();
}
public function payments() {
if(!$this->checks())
return false;
if(!hikamarket::acl('order/payments'))
return hikamarket::deny('vendor',
JText::sprintf('HIKAM_ACTION_DENY',
JText::_('HIKAM_ACT_PAYMENTS_LISTING')));
hikaInput::get()->set('layout', 'payments');
return parent::display();
}
public function save() {
$status = $this->store();
$tmpl = hikaInput::get()->getVar('tmpl', '');
if($tmpl == 'component' &&
hikaInput::get()->getInt('closepopup', 0)) {
if(empty($status)) {
return '';
}
$orderClass = hikamarket::get('class.order');
if(is_int($status)) {
$order = $orderClass->getRaw((int)$status);
} else {
$order = $status;
}
$events = $orderClass->getEvents();
$extra_js = array();
if(!empty($events)) {
foreach($events as $k => $v) {
$extra_js[] =
'window.parent.Oby.fireAjax("'.$k.'",
'.json_encode($v).');';
}
}
ob_end_clean();
echo '<html><body>'.
'<script
type="text/javascript">'."\r\n".
'window.parent.hikamarket.submitBox('.json_encode(array(
'order_status' => $order->order_status,
'name' =>
hikamarket::orderStatus($order->order_status)
)).');'."\r\n" . implode("\r\n",
$extra_js) .
'</script>'."\r\n".
'</body></html>';
exit;
}
if($tmpl == 'component')
return $this->show();
return $this->listing();
}
public function add() {
if(!$this->checks())
return false;
if( !hikamarket::acl('order/add') )
return hikamarket::deny('order',
JText::sprintf('HIKAM_ACTION_DENY',
JText::_('HIKAM_ACT_ORDER_EDIT')));
$app = JFactory::getApplication();
$formData = hikaInput::get()->get('data', array(),
'array');
if(empty($formData['order']) ||
empty($formData['order']['order_user_id'])) {
$app->redirect(
hikamarket::completeLink('order&task=create') );
return;
}
$orderClass = hikamarket::get('class.order');
$order = $orderClass->saveCreateForm();
if(!empty($order)) {
$app->redirect(
hikamarket::completeLink('order&task=show&cid=' .
$order->order_id ) );
} else {
$app->enqueueMessage(JText::_('HIKAM_ERR_ORDER_CREATION'),
'error');
$app->redirect(
hikamarket::completeLink('order&task=create') );
}
}
public function store() {
$order_id = hikamarket::getCID('order_id');
if(!$this->checks($order_id))
return false;
$orderClass = hikamarket::get('class.order');
if( $orderClass === null )
return false;
$task = hikaInput::get()->getVar('subtask', null);
if($task !== null) {
if(!in_array($task, $this->subtasks))
return false;
if(!hikamarket::acl('order/edit/'.$task))
return hikamarket::deny('order',
JText::sprintf('HIKAM_ACTION_DENY',
JText::_('HIKAM_ACT_ORDER_EDIT')));
$status = $orderClass->frontSaveFormLegacy($task);
if($status) {
hikaInput::get()->set('cid', $status);
hikaInput::get()->set('fail', null);
}
return $status;
}
if(!hikamarket::acl('order/edit'))
return hikamarket::deny('order',
JText::sprintf('HIKAM_ACTION_DENY',
JText::_('HIKAM_ACT_ORDER_EDIT')));
$status = $orderClass->frontSaveForm();
return $status;
}
public function show() {
$order_id = hikamarket::getCID('order_id');
if(!$this->checks($order_id))
return false;
$task = hikaInput::get()->getVar('subtask', '');
if(!empty($task) && !in_array($task, $this->subtasks))
return false;
if(!hikamarket::acl('order/show'))
return hikamarket::deny('order',
JText::sprintf('HIKAM_ACTION_DENY',
JText::_('HIKAM_ACT_ORDER_SHOW')));
$vendor_id = hikamarket::loadVendor(false);
hikaInput::get()->set('layout', 'show');
if($vendor_id > 1 &&
$this->config->get('order_vendor_edition_legacy', 0))
hikaInput::get()->set('layout', 'show_vendor');
else if(!empty($task))
hikaInput::get()->set('layout', 'show_'.$task);
$tmpl = hikaInput::get()->getVar('tmpl', '');
if($tmpl == 'component') {
ob_end_clean();
parent::display();
exit;
}
return parent::display();
}
public function create() {
if(!$this->checks())
return false;
if(!hikamarket::acl('order/add'))
return hikamarket::deny('order',
JText::sprintf('HIKAM_ACTION_DENY',
JText::_('HIKAM_ACT_ORDER_SHOW')));
$vendor_id = hikamarket::loadVendor(false);
if($vendor_id > 1 &&
!$this->config->get('vendor_edit_order', 0))
return hikamarket::deny('order',
JText::sprintf('HIKAM_ACTION_DENY',
JText::_('HIKAM_ACT_ORDER_SHOW')));
hikaInput::get()->set('layout', 'create');
return parent::display();
}
public function status() {
$order_id = hikamarket::getCID('order_id');
if(!$this->checks($order_id))
return false;
if(!hikamarket::acl('order/edit/general'))
return hikamarket::deny('order',
JText::sprintf('HIKAM_ACTION_DENY',
JText::_('HIKAM_ACT_ORDER_MAIL')));
hikaInput::get()->set('layout', 'status');
return parent::display();
}
public function invoice() {
$order_id = hikamarket::getCID('order_id');
if(!$this->checks($order_id))
return false;
if(!hikamarket::acl('order/show'))
return hikamarket::deny('order',
JText::sprintf('HIKAM_ACTION_DENY',
JText::_('HIKAM_ACT_ORDER_SHOW')));
hikaInput::get()->set('layout', 'invoice');
return parent::display();
}
public function export() {
if(!$this->checks())
return false;
if(!hikamarket::acl('order/export'))
return hikamarket::deny('order',
JText::sprintf('HIKAM_ACTION_DENY',
JText::_('HIKAM_ACT_ORDER_EXPORT')));
hikaInput::get()->set('layout', 'export_show');
$formData = hikaInput::get()->get('data', array(),
'array');
if(!empty($formData)) {
if(!JSession::checkToken()) {
$app = JFactory::getApplication();
$app->enqueueMessage(JText::_('INVALID_TOKEN'),
'error');
} else {
hikaInput::get()->set('layout', 'export');
}
}
return parent::display();
}
public function history() {
$order_id = hikaInput::get()->getInt('order_id', 0);
if(!$this->checks($order_id))
return false;
if(!hikamarket::acl('order/show/historydata'))
return false;
hikaInput::get()->set('layout', 'history');
return parent::display();
}
public function showblock() {
hikamarket::headerNoCache();
$order_id = hikamarket::getCID('order_id');
if(empty($order_id) || !$this->checks($order_id))
return false;
$tmpl = hikaInput::get()->getCmd('tmpl', '');
hikaInput::get()->set('layout', 'showblock');
if($tmpl == 'component' || $tmpl == 'ajax') {
ob_end_clean();
parent::display();
exit;
}
return $this->display();
}
public function submitblock() {
JSession::checkToken('request') || jexit('Invalid
Token');
$tmpl = hikaInput::get()->getCmd('tmpl', '');
$order_id = hikamarket::getCID('order_id', 0);
if(empty($order_id) || !$this->checks($order_id))
return false;
$orderClass = hikamarket::get('class.order');
if( $orderClass === null )
return false;
$updateOrder = $orderClass->frontSaveForm();
if($updateOrder === false) {
ob_end_clean();
echo '0';
if($tmpl == 'component' || $tmpl == 'ajax')
exit;
return false;
}
$block = hikaInput::get()->getCmd('block', '');
if(in_array($block, array('delete_product'))) {
ob_end_clean();
echo '1';
exit;
}
if($block == 'product' && $tmpl == 'ajax') {
$pid = hikaInput::get()->getInt('pid', 0);
if($pid === 0 && count($updateOrder->product) == 1) {
$p = reset($updateOrder->product);
$pid = (int)$p->order_product_id;
hikaInput::get()->set('pid', $pid);
}
}
hikaInput::get()->set('blocksubmitted', 1);
return $this->showblock();
}
public function product_data() {
JSession::checkToken('request') || jexit('Invalid
Token');
$order_id = hikamarket::getCID('order_id');
if(empty($order_id) || !$this->checks($order_id) ||
!hikamarket::acl('order/edit/products'))
return false;
$shopConfig = hikamarket::config(false);
$productClass = hikamarket::get('class.product');
$orderClass = hikamarket::get('class.order');
$addressClass = hikamarket::get('shop.class.address');
$zoneClass = hikamarket::get('shop.class.zone');
$product_id = hikaInput::get()->getInt('product', 0);
$qty = hikaInput::get()->getInt('qty', 0);
$order_product_id = 0;
$data = array();
if($qty <= 0)
$qty = 1;
$order = $orderClass->getRaw($order_id);
if($shopConfig->get('tax_zone_type', 'shipping')
== 'billing')
$order_address =
$addressClass->get((int)$order->order_billing_address_id);
else
$order_address =
$addressClass->get((int)$order->order_shipping_address_id);
$address_base = !empty($order_address->address_state) ?
$order_address->address_state : $order_address->address_country;
$zone = $zoneClass->get($address_base);
$product = $productClass->getProduct($product_id, array(
'price' => array(
'currency' => (int)$order->order_currency_id,
'qty' => (int)$qty,
'user' => (int)$order->order_user_id,
'zone' => (int)$zone->zone_id
)
));
if(empty($product)) {
ob_end_clean();
echo json_encode($data);
exit;
}
$p = end($product->prices);
$data = array(
'name' => $product->product_name,
'code' => $product->product_code,
'tax' => isset($p->taxes[0]) ?
$p->taxes[0]->tax_namekey : '',
'price' => isset($p->price_value_with_tax) ?
$p->price_value_with_tax : $p->price_value
);
$vendor_id = hikamarket::loadVendor(false);
if($vendor_id > 1 && !empty($product->product_vendor_id)
&& (int)$product->product_vendor_id != $vendor_id) {
ob_end_clean();
echo '{}';
exit;
}
if($vendor_id <= 1 && !empty($product->product_vendor_id))
{
$vendorClass = hikamarket::get('class.vendor');
$vendorObj = $vendorClass->get((int)$product->product_vendor_id);
if(!empty($vendorObj)) {
$data['vendor'] = array(
'id' => (int)$vendorObj->vendor_id,
'name' => $vendorObj->vendor_name
);
$product->product_vendor_id = $vendorObj->vendor_id;
} else
$product->product_vendor_id = null;
}
if(!empty($product->product_vendor_id)) {
$p->price_value = (float)hikamarket::toFloat($p->price_value);
$p->price_value_with_tax =
(float)hikamarket::toFloat($p->price_value_with_tax);
$vendor_ids = array((int)$product->product_vendor_id =>
(int)$product->product_vendor_id);
$products = array(
0 => array(
'_id' => 0,
'id' => (int)$product->product_id,
'vendor' => (int)$product->product_vendor_id,
'fee' => array(),
'qty' => (int)$qty,
'price' => $p->price_value,
'price_tax' => $p->price_value_with_tax -
$p->price_value
)
);
$config = hikamarket::config();
if($config->get('calculate_vendor_price_with_tax', false))
$full_price = (float)($products[0]['price'] +
$products[0]['price_tax']) * (int)$products[0]['qty'];
else
$full_price = (float)$products[0]['price'] *
(int)$products[0]['qty'];
$feeClass = hikamarket::get('class.fee');
$allFees = $feeClass->getProducts($products, $vendor_ids);
$orderProduct = new stdClass();
$orderProduct->order_product_quantity = (int)$qty;
$orderProduct->order_product_price =
isset($p->price_value_with_tax) ? $p->price_value_with_tax :
$p->price_value;
if($config->get('calculate_vendor_price_with_tax', false))
$orderProduct->order_product_vendor_price =
$p->price_value_with_tax;
else
$orderProduct->order_product_vendor_price = $p->price_value;
$product_fee = $orderClass->getProductFee($orderProduct,
$products[0]['fee'], $full_price, $order->order_full_price,
$products[0]['qty']);
$data['vendorprice'] = $product_fee['vendor'];
}
ob_end_clean();
echo json_encode($data);
exit;
}
public function request() {
if(!$this->checks())
return false;
if(!hikamarket::acl('order/request'))
return hikamarket::deny('vendor',
JText::sprintf('HIKAM_ACTION_DENY',
JText::_('HIKAM_ACT_ORDER_REQUEST')));
$formData = hikaInput::get()->get('data', array(),
'array');
if(!empty($formData)) {
$app = JFactory::getApplication();
if(!JSession::checkToken()) {
$app->enqueueMessage(JText::_('INVALID_TOKEN'),
'error');
} else {
$vendor = hikamarket::loadVendor(true);
$mailClass = hikamarket::get('class.mail');
$infos = new stdClass;
$infos->vendor = hikamarket::loadVendor(true);
$infos->user = hikamarket::loadUser(true);
$mail = $mailClass->load('vendor_payment_request',
$infos);
if(!empty($mail) && $mail->published) {
$shopConfig = hikamarket::config(false);
if(!empty($mail->subject))
$mail->subject = JText::sprintf($mail->subject,
HIKASHOP_LIVE);
$mail->from_email = $shopConfig->get('from_email');
$mail->from_name = $shopConfig->get('from_name');
if(!empty($infos->email))
$mail->dst_email = $infos->email;
else
$mail->dst_email = $shopConfig->get('from_email');
if(!empty($infos->name))
$mail->dst_name = $infos->name;
else
$mail->dst_name = $shopConfig->get('from_name');
if(!empty($mail->dst_email))
$mail_sent = $mailClass->sendMail($mail);
}
if($mail_sent) {
$app->enqueueMessage(JText::_('HIKAM_REQUEST_SENT'));
} else {
$app->enqueueMessage(JText::_('MAIL_ERROR'),
'error');
}
}
}
hikaInput::get()->set('layout', 'request');
return parent::display();
}
public function mail() {
$order_id = hikamarket::getCID('order_id');
if(empty($order_id) || !$this->checks($order_id))
return false;
if(!hikamarket::acl('order/edit/mail'))
return hikamarket::deny('order',
JText::sprintf('HIKAM_ACTION_DENY',
JText::_('HIKAM_ACT_ORDER_MAIL')));
hikaInput::get()->set('layout', 'mail');
return parent::display();
}
public function previewmail() {
$order_id = hikamarket::getCID('order_id');
if(empty($order_id) || !$this->checks($order_id))
return false;
if(!hikamarket::acl('order/edit/mail'))
return hikamarket::deny('order',
JText::sprintf('HIKAM_ACTION_DENY',
JText::_('HIKAM_ACT_ORDER_MAIL')));
hikamarket::cleanBuffers();
hikaInput::get()->set('layout', 'previewmail');
parent::display();
exit;
}
public function sendmail() {
$order_id = hikamarket::getCID('order_id');
if(empty($order_id) || !$this->checks($order_id))
return false;
if(!hikamarket::acl('order/edit/mail'))
return hikamarket::deny('order',
JText::sprintf('HIKAM_ACTION_DENY',
JText::_('HIKAM_ACT_ORDER_MAIL')));
$orderClass = hikamarket::get('shop.class.order');
$formData = hikaInput::get()->get('data', array(),
'array');
$params = array();
if(!empty($formData['mail']['params'])) {
foreach($formData['mail']['params'] as $k => $v)
{
if(is_numeric($v))
$v = (int)$v;
if(is_string($v))
$v = strip_tags($v);
$params[$k] = $v;
}
}
$order = $orderClass->get($order_id);
$order->url_itemid = '';
$orderClass->loadOrderNotification($order,
'market.user_order_notification', $params);
$vendor = hikamarket::loadVendor(true);
$user = hikamarket::loadUser(true);
if($vendor->vendor_id > 1 &&
!empty($vendor->vendor_email)) {
$order->mail->from_email = $vendor->vendor_email;
$order->mail->from_name = $vendor->vendor_name;
}
if(!empty($formData['mail']['subject'])) {
$subject =
trim(strip_tags($formData['mail']['subject']));
if(!empty($subject))
$order->mail->subject = $subject;
}
$order->mail->dst_email = $order->customer->user_email;
if(!empty($order->customer->name))
$order->mail->dst_name = $order->customer->name;
if((int)$formData['mail']['dst_email'] == 1) {
$order->mail->dst_email = $user->user_email; //
$vendor->vendor_email;
$order->mail->dst_name = $user->name; //
$vendor->vendor_name;
}
$mailClass = hikamarket::get('shop.class.mail');
$mailClass->sendMail($order->mail);
if(!$mailClass->mail_success) {
hikaInput::get()->set('layout', 'mail');
return parent::display();
}
hikamarket::headerNoCache();
echo '<html><head><script
type="text/javascript">window.parent.hikamarket.submitBox();</script></head><body></body></html>';
exit;
}
private function show_products() {
$tmpl = hikaInput::get()->getVar('tmpl', '');
if($tmpl == 'component') {
hikaInput::get()->set('layout',
'show_products');
ob_end_clean();
parent::display();
exit;
}
hikaInput::get()->set('layout', 'show');
return parent::display();
}
public function edit() {
$order_id = hikamarket::getCID('order_id');
if(!$this->checks($order_id))
return false;
$task = hikaInput::get()->getVar('subtask', '');
if(!in_array($task, $this->subtasks)) {
$tmpl = hikaInput::get()->getVar('tmpl', '');
if($tmpl == 'component') {
exit;
}
return false;
}
if(!hikamarket::acl('order/edit/'.$task))
return hikamarket::deny('order',
JText::sprintf('HIKAM_ACTION_DENY',
JText::_('HIKAM_ACT_ORDER_EDIT')));
hikaInput::get()->set('layout', 'show_'.$task);
if(!in_array($task , $this->popupSubtasks)) {
$tmpl = hikaInput::get()->getVar('tmpl', '');
if($tmpl == 'component') {
ob_end_clean();
parent::display();
exit;
}
} else {
hikaInput::get()->set('layout', 'edit_'.$task);
}
return parent::display();
}
public function customer_save() {
if(!$this->checks())
return false;
if(!hikamarket::acl('order/edit/customer'))
return hikamarket::deny('order',
JText::sprintf('HIKAM_ACTION_DENY',
JText::_('HIKAM_ACT_ORDER_EDIT')));
$prderClass = hikamarket::get('class.order');
if( $prderClass === null )
return false;
$status = $prderClass->frontSaveFormLegacy('customer');
if($status) {
hikaInput::get()->set('cid', $status);
hikaInput::get()->set('fail', null);
}
$tmpl = hikaInput::get()->getVar('tmpl', '');
if($tmpl == 'component') {
ob_end_clean();
hikaInput::get()->set('layout', 'customer_set');
return parent::display();
}
return $this->show();
}
public function customer_set() {
$order_id = hikaInput::get()->getInt('order_id', 0);
if(!$this->checks($order_id))
return false;
if(!hikamarket::acl('order/edit/customer'))
return hikamarket::deny('order',
JText::sprintf('HIKAM_ACTION_DENY',
JText::_('HIKAM_ACT_ORDER_EDIT')));
hikaInput::get()->set('layout', 'customer_set');
return parent::display();
}
public function product_add() {
if(!$this->checks())
return false;
if(!hikamarket::acl('order/edit/products'))
return hikamarket::deny('order',
JText::sprintf('HIKAM_ACTION_DENY',
JText::_('HIKAM_ACT_ORDER_EDIT')));
$formData = hikaInput::get()->get('data', array(),
'array');
$product_quantity = -1;
if(isset($formData['order']) &&
isset($formData['order']['product']['order_product_quantity']))
$product_quantity =
(int)$formData['order']['product']['order_product_quantity'];
if($product_quantity >= 0) {
if(!JSession::checkToken())
return false;
$orderClass = hikamarket::get('class.order');
if( $orderClass === null )
return false;
$status = $orderClass->saveForm('product');
if($status) {
hikaInput::get()->set('cid', $status);
hikaInput::get()->set('fail', null);
}
} else {
hikaInput::get()->set('layout',
'edit_products');
return parent::display();
}
return $this->show_products();
}
public function product_delete() {
if(!$this->checks())
return false;
if(!hikamarket::acl('order/edit/products'))
return hikamarket::deny('order',
JText::sprintf('HIKAM_ACTION_DENY',
JText::_('HIKAM_ACT_ORDER_EDIT')));
$orderClass = hikamarket::get('class.order');
if( $orderClass === null )
return false;
$status =
$orderClass->frontSaveFormLegacy('product_delete');
if($status) {
hikaInput::get()->set('cid', $status);
hikaInput::get()->set('fail', null);
}
$tmpl = hikaInput::get()->getVar('tmpl', '');
if($tmpl == 'component')
return $this->show_products();
return $this->show();
}
}
PK�[�=HNXXcontrollers/payment.phpnu�[���<?php
/**
* @package HikaMarket for Joomla!
* @version 3.1.1
* @author Obsidev S.A.R.L.
* @copyright (C) 2011-2020 OBSIDEV. All rights reserved.
* @license GNU/GPLv3 http://www.gnu.org/licenses/gpl-3.0.html
*/
defined('_JEXEC') or die('Restricted access');
?><?php
class paymentMarketController extends hikamarketController {
protected $rights = array(
'display' => array(),
'add' => array(),
'edit' => array('toggle'),
'modify' => array(),
'delete' => array('delete')
);
protected $type = 'payment';
protected $config = null;
public function __construct($config = array(), $skip = false) {
parent::__construct($config, $skip);
$this->config = hikamarket::config();
}
public function authorize($task) {
if(!in_array($task, array('toggle', 'delete')))
return parent::authorize($task);
$completeTask = hikaInput::get()->getCmd('task',
'');
$value = hikaInput::get()->getCmd('value', '');
if(strrpos($completeTask, '-') !== false)
$plugin_id = (int)substr($completeTask, strrpos($completeTask,
'-') + 1);
else
$plugin_id = (int)substr($value, 0, strpos($value, '-'));
if(!hikamarket::loginVendor())
return false;
if(!$this->config->get('frontend_edition',0))
return false;
if(!JSession::checkToken('request'))
return false;
if($task == 'toggle' &&
!hikamarket::acl('paymentplugin/edit/published'))
return false;
if($task == 'delete' &&
!hikamarket::acl('paymentplugin/delete'))
return false;
if(!hikamarket::isVendorPlugin($plugin_id, 'payment'))
return false;
return true;
}
}
PK�[��� Q#Q#controllers/plugin.phpnu�[���<?php
/**
* @package HikaMarket for Joomla!
* @version 3.1.1
* @author Obsidev S.A.R.L.
* @copyright (C) 2011-2020 OBSIDEV. All rights reserved.
* @license GNU/GPLv3 http://www.gnu.org/licenses/gpl-3.0.html
*/
defined('_JEXEC') or die('Restricted access');
?><?php
class pluginMarketController extends hikamarketController {
protected $rights = array(
'display' => array('show', 'listing'),
'add' => array('add'),
'edit' => array('edit', 'toggle',),
'modify' => array('apply', 'save'), // ,
'saveorder'
'delete' => array('delete')
);
protected $ordering = array(
'type' => 'plugin',
'pkey' => 'plugin_id',
'table' => 'shop.plugin',
'groupMap' => 'plugin_type',
'orderingMap' => 'plugin_ordering',
'groupVal' => 0
);
protected $type = 'plugin';
protected $config = null;
public function __construct($config = array(), $skip = false) {
parent::__construct($config, $skip);
if(!$skip)
$this->registerDefaultTask('listing');
$this->config = hikamarket::config();
}
public function listing() {
if(!hikamarket::loginVendor())
return false;
if(!$this->config->get('frontend_edition',0))
return false;
$plugin_type = hikaInput::get()->getCmd('plugin_type',
'payment');
if(!in_array($plugin_type,
array('payment','shipping', 'generic')))
return hikamarket::deny('vendor',
JText::sprintf('HIKAM_ACTION_DENY',
JText::_('HIKAM_ACT_PLUGIN_LISTING')));
if(!hikamarket::acl($plugin_type.'plugin/listing'))
return hikamarket::deny('vendor',
JText::sprintf('HIKAM_ACTION_DENY',
JText::_('HIKAM_ACT_PLUGIN_LISTING')));
$vendor_id = hikamarket::loadVendor(false);
if($vendor_id === null || ((int)$vendor_id > 1 &&
(int)$this->config->get('plugin_vendor_config', 0) == 0))
return hikamarket::deny('vendor',
JText::_('HIKAM_PAGE_DENY'));
hikaInput::get()->set('layout', 'listing');
return parent::display();
}
public function saveorder(){
if( !hikamarket::loginVendor() )
return false;
if( !$this->config->get('frontend_edition',0) )
return false;
$plugin_type = hikaInput::get()->getCmd('plugin_type',
'');
if(!in_array($plugin_type,
array('payment','shipping', 'generic')))
return hikamarket::deny('vendor',
JText::sprintf('HIKAM_ACTION_DENY',
JText::_('HIKAM_ACT_PLUGIN_EDIT')));
if( !hikamarket::acl($plugin_type.'plugin/edit') )
return hikamarket::deny('plugin',
JText::sprintf('HIKAM_ACTION_DENY',
JText::_('HIKAM_ACT_PLUGIN_EDIT')));
$vendor_id = hikamarket::loadVendor(false);
if($vendor_id === null || ((int)$vendor_id > 1 &&
(int)$this->config->get('plugin_vendor_config', 0) == 0))
return
hikamarket::deny('plugin&plugin_type='.$plugin_type,
JText::_('HIKAM_PAGE_DENY'));
$plugin_id = hikamarket::getCID('plugin_id');
if(!hikamarket::isVendorPlugin($plugin_id, $plugin_type))
return
hikamarket::deny('plugin&plugin_type='.$plugin_type,
JText::_('HIKAM_PAGE_DENY'));
$this->ordering['groupVal'] = $plugin_id;
return parent::saveorder();
}
public function authorize($task) {
if($task == 'toggle' || $task == 'delete') {
$completeTask = hikaInput::get()->getCmd('task');
if(strrpos($completeTask, '-') !== false) {
$plugin_id = (int)substr($completeTask, strrpos($completeTask,
'-') + 1);
} else {
$plugin_id = hikaInput::get()->getInt('plugin_id');
if(empty($plugin_id))
$plugin_id = hikaInput::get()->getInt('value');
}
$plugin_type = hikaInput::get()->getCmd('plugin_type',
'');
if(!in_array($plugin_type,
array('payment','shipping', 'generic')))
return false;
if(!hikamarket::loginVendor())
return false;
if(!$this->config->get('frontend_edition',0))
return false;
if(!JSession::checkToken('request'))
return false;
if($task == 'toggle' &&
!hikamarket::acl($plugin_type.'plugin/edit/published'))
return false;
if($task == 'delete' &&
!hikamarket::acl($plugin_type.'plugin/delete'))
return false;
if($plugin_type == 'generic' &&
!hikamarket::isVendorPlugin($plugin_id, 'plugin'))
return false;
if($plugin_type != 'generic' &&
!hikamarket::isVendorPlugin($plugin_id, $plugin_type))
return false;
return true;
}
return parent::authorize($task);
}
public function show() {
$this->edit();
}
public function edit() {
if( !hikamarket::loginVendor() )
return false;
if( !$this->config->get('frontend_edition',0) )
return false;
$plugin_type = hikaInput::get()->getCmd('plugin_type',
'');
if(!in_array($plugin_type,
array('payment','shipping', 'generic')))
return hikamarket::deny('vendor',
JText::sprintf('HIKAM_ACTION_DENY',
JText::_('HIKAM_ACT_PLUGIN_EDIT')));
if( !hikamarket::acl($plugin_type.'plugin/edit') )
return hikamarket::deny('plugin',
JText::sprintf('HIKAM_ACTION_DENY',
JText::_('HIKAM_ACT_PLUGIN_EDIT')));
$plugin_id = hikamarket::getCID('plugin_id');
if(!empty($plugin_id) && !hikamarket::isVendorPlugin($plugin_id,
$plugin_type))
return
hikamarket::deny('plugin&plugin_type='.$plugin_type,
JText::_('HIKAM_PAGE_DENY'));
if(empty($plugin_id)) {
if( !hikamarket::acl($plugin_type.'plugin/add') )
return hikamarket::deny('plugin',
JText::sprintf('HIKAM_ACTION_DENY',
JText::_('HIKAM_ACT_PLUGIN_EDIT')));
$vendor_id = hikamarket::loadVendor(false);
if($vendor_id === null || ((int)$vendor_id > 1 &&
(int)$this->config->get('plugin_vendor_config', 0) == 0))
return
hikamarket::deny('plugin&plugin_type='.$plugin_type,
JText::_('HIKAM_PAGE_DENY'));
}
hikaInput::get()->set('layout', 'form');
return parent::display();
}
public function add() {
if( !hikamarket::loginVendor() )
return false;
if( !$this->config->get('frontend_edition',0) )
return false;
$plugin_type = hikaInput::get()->getCmd('plugin_type',
'');
if(!in_array($plugin_type,
array('payment','shipping', 'generic')))
return hikamarket::deny('vendor',
JText::sprintf('HIKAM_ACTION_DENY',
JText::_('HIKAM_ACT_PLUGIN_EDIT')));
if( !hikamarket::acl($plugin_type.'plugin/add') )
return hikamarket::deny('plugin',
JText::sprintf('HIKAM_ACTION_DENY',
JText::_('HIKAM_ACT_PLUGIN_EDIT')));
$vendor_id = hikamarket::loadVendor(false);
if($vendor_id === null || ((int)$vendor_id > 1 &&
(int)$this->config->get('plugin_vendor_config', 0) == 0))
return
hikamarket::deny('plugin&plugin_type='.$plugin_type,
JText::_('HIKAM_PAGE_DENY'));
hikaInput::get()->set('layout', 'add');
return parent::display();
}
public function delete() {
if( !$this->config->get('frontend_edition', 0)) {
$this->raiseForbidden();
return false;
}
if( !hikamarket::loginVendor() )
return false;
$plugin_type = hikaInput::get()->getCmd('plugin_type',
'');
$completeTask = hikaInput::get()->getCmd('task');
if(strrpos($completeTask, '-') !== false) {
$plugin_id = (int)substr($completeTask, strrpos($completeTask,
'-') + 1);
} else {
$plugin_id = hikaInput::get()->getInt('plugin_id');
}
if(empty($plugin_id))
return false;
if(!hikamarket::acl($plugin_type.'plugin/delete'))
return false;
if($plugin_type == 'generic' &&
!hikamarket::isVendorPlugin($plugin_id, 'plugin'))
return false;
if($plugin_type != 'generic' &&
!hikamarket::isVendorPlugin($plugin_id, $plugin_type))
return false;
if($plugin_type == 'generic') {
$pluginClass = hikamarket::get('shop.class.plugin');
$ret = $pluginClass->delete($plugin_id);
} else {
$pluginClass = hikamarket::get('shop.class.'.$plugin_type);
$ret = $pluginClass->delete($plugin_id);
}
$app = JFactory::getApplication();
if(!empty($ret) && $ret > 0) {
$app->enqueueMessage(JText::sprintf('SUCC_DELETE_ELEMENTS',
1), 'message');
}
$app->redirect(hikamarket::completeLink('plugin&task=listing&plugin_type='.$plugin_type,
false, true));
}
public function store() {
if(!hikamarket::loginVendor())
return false;
if( !$this->config->get('frontend_edition',0) )
return false;
$plugin_type = hikaInput::get()->getCmd('plugin_type',
'payment');
if(!in_array($plugin_type,
array('payment','shipping', 'generic')))
return hikamarket::deny('vendor',
JText::sprintf('HIKAM_ACTION_DENY',
JText::_('HIKAM_ACT_PLUGIN_EDIT')));
if( !hikamarket::acl($plugin_type.'plugin/edit') )
return hikamarket::deny('plugin',
JText::sprintf('HIKAM_ACTION_DENY',
JText::_('HIKAM_ACT_PLUGIN_EDIT')));
$vendor_id = hikamarket::loadVendor(false);
if($vendor_id === null || ((int)$vendor_id > 1 &&
(int)$this->config->get('plugin_vendor_config', 0) == 0))
return
hikamarket::deny('plugin&plugin_type='.$plugin_type,
JText::_('HIKAM_PAGE_DENY'));
$pluginClass = hikamarket::get('class.plugin');
if( $pluginClass === null )
return false;
$status = $pluginClass->frontSaveForm();
if($status) {
hikaInput::get()->set('cid', $status);
hikaInput::get()->set('fail', null);
}
return $status;
}
}
PK�[)�hq�q�controllers/product.phpnu�[���<?php
/**
* @package HikaMarket for Joomla!
* @version 3.1.1
* @author Obsidev S.A.R.L.
* @copyright (C) 2011-2020 OBSIDEV. All rights reserved.
* @license GNU/GPLv3 http://www.gnu.org/licenses/gpl-3.0.html
*/
defined('_JEXEC') or die('Restricted access');
?><?php
class productMarketController extends hikamarketController {
protected $rights = array(
'display' => array(
'listing',
'getprice', 'editprice', 'gettree',
'findtree',
'upload', 'image', 'file',
'file_entry', 'galleryimage',
'edit_translation', 'cartlink',
'waitingapproval',
),
'add' => array('add'),
'edit' => array('edit', 'variant',
'variants', 'characteristic', 'addimage',
'addfile', 'galleryselect', 'approve',
'saveorder'),
'modify' => array('apply', 'save',
'save_translation', 'copy', 'toggle'),
'delete' => array('delete')
);
protected $type = 'product';
protected $config = null;
protected $ordering = array(
'type' => 'product',
'pkey' => 'product_id',
'table' => 'product_category',
'groupMap' => 'category_id',
'orderingMap' => 'ordering',
'groupVal' => 0
);
public function __construct($config = array(), $skip = false) {
parent::__construct($config, $skip);
if(!$skip)
$this->registerDefaultTask('listing');
$this->config = hikamarket::config();
}
protected function raiseForbidden() {
throw new JAccessExceptionNotallowed(JText::_('Access
Forbidden'), 403);
}
public function authorize($task) {
if($task == 'toggle' || $task == 'delete') {
$completeTask = hikaInput::get()->getCmd('task');
if(strrpos($completeTask, '-') !== false) {
$product_id = (int)substr($completeTask, strrpos($completeTask,
'-') + 1);
} else {
$product_id = hikaInput::get()->getInt('product_id');
if(empty($product_id))
$product_id = hikaInput::get()->getInt('value');
}
if(empty($product_id))
return false;
if(!hikamarket::loginVendor())
return false;
if(!$this->config->get('frontend_edition',0))
return false;
if(!JSession::checkToken('request'))
return false;
if($task == 'toggle' &&
!hikamarket::acl('product/edit/published'))
return false;
if($task == 'delete' &&
!hikamarket::acl('product/delete'))
return false;
if(!hikamarket::isVendorProduct($product_id))
return false;
return true;
}
return parent::authorize($task);
}
public function listing() {
if( !$this->config->get('frontend_edition',0) ) {
$this->raiseForbidden();
return false;
}
if(!hikamarket::loginVendor())
return false;
if(!hikamarket::acl('product/listing'))
return hikamarket::deny('vendor',
JText::sprintf('HIKAM_ACTION_DENY',
JText::_('HIKAM_ACT_PRODUCT_LISTING')));
hikaInput::get()->set('layout', 'listing');
return parent::display();
}
public function save() {
if(!$this->store())
return $this->edit();
$subtask = hikaInput::get()->getCmd('subtask',
'');
if($subtask == 'variant')
return $this->variant();
$app = JFactory::getApplication();
$product_id = hikaInput::get()->getInt('cid');
$cancel_action = hikaInput::get()->getCmd('cancel_action');
if(!empty($cancel_action) && !empty($product_id)) {
switch($cancel_action) {
case 'product':
$app->redirect(
hikamarket::completeLink('shop.product&task=show&cid='.$product_id,
false, true) );
break;
case 'url':
$cancel_url =
urldecode(hikaInput::get()->getString('cancel_url',
''));
if(!empty($cancel_url) &&
!hikamarket::disallowUrlRedirect($cancel_url))
$app->redirect( base64_decode($cancel_url) );
break;
}
}
$app->redirect(
hikamarket::completeLink('product&task=listing', false, true)
);
return false;
}
public function edit() {
if( !$this->config->get('frontend_edition',0) ) {
$this->raiseForbidden();
return false;
}
if( !hikamarket::loginVendor() )
return false;
if( !hikamarket::acl('product/edit') )
return hikamarket::deny('product',
JText::sprintf('HIKAM_ACTION_DENY',
JText::_('HIKAM_ACT_PRODUCT_EDIT')));
$product_id = hikamarket::getCID('product_id');
if(!hikamarket::isVendorProduct($product_id)) {
if(hikaInput::get()->getCmd('duplicate', 0) == 0)
return hikamarket::deny('product',
JText::_('HIKAM_PAGE_DENY'));
$productClass = hikamarket::get('class.product');
$product = $productClass->get($product_id);
if(empty($product) || (int)$product->product_vendor_id > 0)
return hikamarket::deny('product',
JText::_('HIKAM_PAGE_DENY'));
$query = 'SELECT c.characteristic_id FROM ' .
hikamarket::table('shop.variant') . ' AS v '.
' INNER JOIN ' .
hikamarket::table('shop.characteristic') . ' AS c ON
v.variant_characteristic_id = c.characteristic_id '.
' WHERE c.characteristic_parent_id = 0 AND c.characteristic_alias
= \'vendor\' AND v.variant_product_id = ' .
(int)$product_id.' '.
' ORDER BY v.ordering ASC';
$db = JFactory::getDBO();
$db->setQuery($query);
$characteristic_id = (int)$db->loadResult();
if(empty($characteristic_id))
return hikamarket::deny('product',
JText::_('HIKAM_PAGE_DENY'));
$product_duplication = new stdClass();
$product_duplication->product_id = $product_id;
$product_duplication->characteristic_id = $characteristic_id;
hikaInput::get()->set('product_duplication',
$product_duplication);
}
hikaInput::get()->set('layout', 'form');
return parent::display();
}
public function variant() {
if( !$this->config->get('frontend_edition',0) ) {
$this->raiseForbidden();
return false;
}
if( !hikamarket::loginVendor() )
return false;
if( !hikamarket::acl('product/edit/variants') ||
!hikamarket::acl('product/variant') )
return hikamarket::deny('product',
JText::sprintf('HIKAM_ACTION_DENY',
JText::_('HIKAM_ACT_PRODUCT_EDIT')));
$product_id = hikamarket::getCID('variant_id');
if(!hikamarket::isVendorProduct($product_id))
return hikamarket::deny('product',
JText::_('HIKAM_PAGE_DENY'));
hikaInput::get()->set('layout', 'variant');
if(hikaInput::get()->getCmd('tmpl', '') ==
'component') {
ob_end_clean();
parent::display();
exit;
}
return parent::display();
}
public function variants() {
if( !$this->config->get('frontend_edition',0) ) {
$this->raiseForbidden();
return false;
}
if( !hikamarket::loginVendor() )
return false;
if( !hikamarket::acl('product/edit/variants'))
return hikamarket::deny('product',
JText::sprintf('HIKAM_ACTION_DENY',
JText::_('HIKAM_ACT_PRODUCT_EDIT')));
$product_id = hikaInput::get()->getInt('product_id', 0);
if(!hikamarket::isVendorProduct($product_id))
return hikamarket::deny('product',
JText::_('HIKAM_PAGE_DENY'));
hikaInput::get()->set('layout', 'form_variants');
$subtask = hikaInput::get()->getCmd('subtask',
'');
if(!empty($subtask)) {
switch($subtask) {
case 'setdefault':
$variant_id = hikaInput::get()->getInt('variant_id');
$productClass = hikamarket::get('class.product');
$ret = $productClass->setDefaultVariant($product_id, $variant_id);
break;
case 'add':
case 'duplicate':
JSession::checkToken('request') || die('Invalid
Token');
hikaInput::get()->set('layout',
'form_variants_add');
break;
case 'delete';
JSession::checkToken('request') || die('Invalid
Token');
$cid = hikaInput::get()->get('cid', array(),
'array');
if(empty($cid)) {
ob_end_clean();
echo '0';
exit;
}
$productClass = hikamarket::get('class.product');
$ret = $productClass->deleteVariants($product_id, $cid);
ob_end_clean();
if($ret !== false)
echo $ret;
else
echo '0';
exit;
case 'populate':
JSession::checkToken('request') || die('Invalid
Token');
hikaInput::get()->set('layout',
'form_variants_add');
$productClass = hikamarket::get('class.product');
$data = hikaInput::get()->get('data', array(),
'array');
if(isset($data['variant_duplicate'])) {
$cid = hikaInput::get()->get('cid', array(),
'array');
hikamarket::toInteger($cid);
$ret = $productClass->duplicateVariant($product_id, $cid, $data);
} else
$ret = $productClass->populateVariant($product_id, $data);
if($ret !== false) {
ob_end_clean();
echo $ret;
exit;
}
break;
}
}
if(hikaInput::get()->getCmd('tmpl', '') ==
'component') {
ob_end_clean();
parent::display();
exit;
}
return parent::display();
}
public function characteristic() {
if( !$this->config->get('frontend_edition',0) ) {
$this->raiseForbidden();
return false;
}
if( !hikamarket::loginVendor() )
return false;
if( !hikamarket::acl('product/edit/variants'))
return hikamarket::deny('product',
JText::sprintf('HIKAM_ACTION_DENY',
JText::_('HIKAM_ACT_PRODUCT_EDIT')));
$product_id = hikamarket::getCID('product_id');
if(!hikamarket::isVendorProduct($product_id))
return hikamarket::deny('product',
JText::_('HIKAM_PAGE_DENY'));
$subtask = hikaInput::get()->getCmd('subtask',
'');
if(empty($subtask)) {
}
$productClass = hikamarket::get('class.product');
switch($subtask) {
case 'add':
JSession::checkToken() || die('Invalid Token');
$vendor_id = hikamarket::loadVendor(false);
$characteristic_id =
hikaInput::get()->getInt('characteristic_id', 0);
$characteristic_value_id =
hikaInput::get()->getInt('characteristic_value_id', 0);
$ret = $productClass->addCharacteristic($product_id,
$characteristic_id, $characteristic_value_id, $vendor_id);
ob_end_clean();
if($ret === false)
echo '-1';
else
echo (int)$ret;
exit;
case 'remove':
JSession::checkToken() || die('Invalid Token');
$characteristic_id =
hikaInput::get()->getInt('characteristic_id', 0);
$ret = $productClass->removeCharacteristic($product_id,
$characteristic_id);
ob_end_clean();
if($ret === false)
echo '-1';
else
echo (int)$ret;
exit;
}
exit;
}
public function add() {
if( !$this->config->get('frontend_edition',0) ) {
$this->raiseForbidden();
return false;
}
if( !hikamarket::loginVendor() )
return false;
if( !hikamarket::acl('product/add') )
return hikamarket::deny('product',
JText::sprintf('HIKAM_ACTION_DENY',
JText::_('HIKAM_ACT_PRODUCT_EDIT')));
$vendorClass = hikamarket::get('class.vendor');
$vendor = hikamarket::loadVendor(true, false);
$vendorCompleted = $vendorClass->checkVendorCompletion($vendor,
false);
if($vendorCompleted !== true)
return hikamarket::deny('vendor&task=form',
JText::_('VENDOR_UNCOMPLETED'));
$limitation = $vendorClass->checkProductLimitation($vendor, false);
if($limitation !== true) {
if($limitation > 1)
return hikamarket::deny('product',
JText::sprintf('VENDOR_PRODUCT_LIMITATION_X_REACHED',
$limitation));
return hikamarket::deny('product',
JText::_('VENDOR_PRODUCT_LIMITATION_REACHED'));
}
hikaInput::get()->set('layout', 'form');
return parent::display();
}
public function copy() {
if( !$this->config->get('frontend_edition',0) ) {
$this->raiseForbidden();
return false;
}
if( !hikamarket::loginVendor() )
return false;
$vendor = hikamarket::loadVendor(true, false);
if( ($vendor->vendor_id != 0 && $vendor->vendor_id != 1) ||
!hikamarket::acl('product/add') )
return hikamarket::deny('product',
JText::sprintf('HIKAM_ACTION_DENY',
JText::_('HIKAM_ACT_PRODUCT_COPY')));
$product_id = hikamarket::getCID('product_id');
if(!hikamarket::isVendorProduct($product_id))
return hikamarket::deny('product',
JText::_('HIKAM_PAGE_DENY'));
$vendorClass = hikamarket::get('class.vendor');
$limitation = $vendorClass->checkProductLimitation($vendor, false);
if($limitation !== true) {
if($limitation > 1)
return hikamarket::deny('product',
JText::sprintf('VENDOR_PRODUCT_LIMITATION_X_REACHED',
$limitation));
return hikamarket::deny('product',
JText::_('VENDOR_PRODUCT_LIMITATION_REACHED'));
}
$app = JFactory::getApplication();
$importHelper = hikamarket::get('shop.helper.import');
if(!$importHelper->copyProduct($product_id)) {
$app->enqueueMessage(JText::_('PRODUCT_SAVE_UNKNOWN_ERROR'),
'error');
} else {
$app->enqueueMessage(JText::_('HIKAM_SUCC_SAVED'));
}
$return_url = hikaInput::get()->getString('return_url',
'');
if(!empty($return_url)) {
try{
$return_url = urldecode(base64_decode($return_url));
}catch(Exception $e) {
$return_url = '';
}
}
if(!empty($return_url))
$app->redirect($return_url);
$app->redirect(hikamarket::completeLink('product&task=listing',
false, true));
}
public function delete() {
if( !$this->config->get('frontend_edition', 0)) {
$this->raiseForbidden();
return false;
}
if( !hikamarket::loginVendor() )
return false;
$completeTask = hikaInput::get()->getCmd('task');
if(strrpos($completeTask, '-') !== false) {
$product_id = (int)substr($completeTask, strrpos($completeTask,
'-') + 1);
} else {
$product_id = hikaInput::get()->getInt('product_id');
}
if(empty($product_id))
return false;
if(!hikamarket::acl('product/delete') ||
!hikamarket::isVendorProduct($product_id))
return false;
$productClass = hikamarket::get('shop.class.product');
$shopConfig = hikamarket::config(false);
if($shopConfig->get('use_trash', 0)) {
$ret = $productClass->trash($product_id);
} else {
$ret = $productClass->delete($product_id);
}
$app = JFactory::getApplication();
if(!empty($ret) && $ret > 0) {
$app->enqueueMessage(JText::sprintf('SUCC_DELETE_ELEMENTS',
1), 'message');
}
$app->redirect(hikamarket::completeLink('product&task=listing',
false, true));
}
public function saveorder() {
if( !$this->config->get('frontend_edition',0) ) {
$this->raiseForbidden();
return false;
}
if( !hikamarket::loginVendor() )
return false;
$vendor_id = hikamarket::loadVendor(false);
if( $vendor_id > 1 )
return false;
if( !hikamarket::acl('product/sort') )
return hikamarket::deny('product',
JText::sprintf('HIKAM_ACTION_DENY',
JText::_('HIKAM_ACT_PRODUCT_SORT')));
$category_explorer =
$this->config->get('show_category_explorer', 1);
if(!$category_explorer)
return false;
$app = JFactory::getApplication();
$cid = hikamarket::getCID();
if(empty($cid) || $cid == 1)
$cid =
(int)$app->getUserState(HIKAMARKET_COMPONENT.'.product.listing_cid');
if(empty($cid))
$cid = 1;
$this->ordering['groupVal'] = $cid;
parent::saveorder();
$app = JFactory::getApplication();
$app->redirect(hikamarket::completeLink('product&task=listing',
false, true));
}
public function approve() {
if( !$this->config->get('frontend_edition',0) ) {
$this->raiseForbidden();
return false;
}
if( !hikamarket::loginVendor() )
return false;
$vendor_id = hikamarket::loadVendor(false);
if( $vendor_id > 1 ||
!$this->config->get('product_approval',0) )
return false;
if( !hikamarket::acl('product/approve') )
return hikamarket::deny('product',
JText::sprintf('HIKAM_ACTION_DENY',
JText::_('HIKAM_ACT_PRODUCT_APPROVE')));
$product_id = hikamarket::getCID('product_id');
if(!hikamarket::isVendorProduct($product_id))
return hikamarket::deny('product',
JText::_('HIKAM_PAGE_DENY'));
$productClass = hikamarket::get('class.product');
$status = $productClass->approve($product_id);
if($status) {
$app = JFactory::getApplication();
$app->enqueueMessage(JText::_('HIKAMARKET_PRODUCT_APPROVED'));
}
hikaInput::get()->set('layout', 'form');
return parent::display();
}
public function waitingapproval() {
if( !$this->config->get('frontend_edition',0) ) {
$this->raiseForbidden();
return false;
}
if( !hikamarket::loginVendor() )
return false;
if( !$this->config->get('product_approval',0) )
return false;
if( !hikamarket::acl('product/approve') )
return hikamarket::deny('product',
JText::sprintf('HIKAM_ACTION_DENY',
JText::_('HIKAM_ACT_PRODUCT_APPROVE')));
hikaInput::get()->set('layout',
'waitingapproval');
return parent::display();
}
public function edit_translation() {
if( !$this->config->get('frontend_edition',0) ) {
$this->raiseForbidden();
return false;
}
if( !hikamarket::loginVendor() )
return false;
if( !hikamarket::acl('product/edit/translations') )
return hikamarket::deny('product',
JText::sprintf('HIKAM_ACTION_DENY',
JText::_('HIKAM_ACT_PRODUCT_EDIT')));
$product_id = hikamarket::getCID('product_id');
if(!hikamarket::isVendorProduct($product_id))
return hikamarket::deny('product',
JText::_('HIKAM_PAGE_DENY'));
hikaInput::get()->set('layout',
'edit_translation');
return parent::display();
}
public function save_translation() {
if( !$this->config->get('frontend_edition',0) ) {
$this->raiseForbidden();
return false;
}
if( !hikamarket::loginVendor() )
return false;
if( !hikamarket::acl('product/edit/translations') )
return hikamarket::deny('product',
JText::sprintf('HIKAM_ACTION_DENY',
JText::_('HIKAM_ACT_PRODUCT_EDIT')));
$product_id = hikamarket::getCID('product_id');
if(!hikamarket::isVendorProduct($product_id))
return hikamarket::deny('product',
JText::_('HIKAM_PAGE_DENY'));
$product = null;
$productClass = hikamarket::get('class.product');
$product = $productClass->getRaw($product_id);
if(!empty($product->product_id))
$productClass->handleTranslation($product);
$js =
'window.hikashop.ready(function(){window.parent.hikamarket.submitBox();});';
$doc = JFactory::getDocument();
$doc->addScriptDeclaration($js);
}
public function store() {
if( !$this->config->get('frontend_edition',0) ) {
$this->raiseForbidden();
return false;
}
if(!hikamarket::loginVendor())
return false;
if( !hikamarket::acl('product/edit') )
return hikamarket::deny('product',
JText::sprintf('HIKAM_ACTION_DENY',
JText::_('HIKAM_ACT_PRODUCT_EDIT')));
$productClass = hikamarket::get('class.product');
if($productClass === null)
return false;
$subtask = hikaInput::get()->getCmd('subtask',
'');
if($subtask == 'variant') {
$status = $productClass->frontSaveVariantForm();
} else {
$status = $productClass->frontSaveForm();
}
if($status) {
hikaInput::get()->set('cid', $status);
hikaInput::get()->set('fail', null);
}
return $status;
}
public function image() {
if( !$this->config->get('frontend_edition',0) ) {
$this->raiseForbidden();
return false;
}
if( !hikamarket::loginVendor() )
return false;
if( !hikamarket::acl('product/edit') )
return hikamarket::deny('product',
JText::sprintf('HIKAM_ACTION_DENY',
JText::_('HIKAM_ACT_PRODUCT_EDIT')));
$product_id = hikaInput::get()->getInt('pid', 0);
if(!hikamarket::isVendorProduct($product_id))
return hikamarket::deny('product',
JText::_('HIKAM_PAGE_DENY'));
hikaInput::get()->set('layout', 'image');
return parent::display();
}
public function file() {
if( !$this->config->get('frontend_edition',0) ) {
$this->raiseForbidden();
return false;
}
if( !hikamarket::loginVendor() )
return false;
if( !hikamarket::acl('product/edit') )
return hikamarket::deny('product',
JText::sprintf('HIKAM_ACTION_DENY',
JText::_('HIKAM_ACT_PRODUCT_EDIT')));
$product_id = hikaInput::get()->getInt('pid', 0);
if(!hikamarket::isVendorProduct($product_id))
return hikamarket::deny('product',
JText::_('HIKAM_PAGE_DENY'));
hikaInput::get()->set('layout', 'file');
return parent::display();
}
public function file_entry() {
if( !$this->config->get('frontend_edition',0) ) {
$this->raiseForbidden();
return false;
}
if( !hikamarket::loginVendor() )
return false;
if( !hikamarket::acl('product/edit') )
return hikamarket::deny('product',
JText::sprintf('HIKAM_ACTION_DENY',
JText::_('HIKAM_ACT_PRODUCT_EDIT')));
$product_id = hikaInput::get()->getInt('pid', 0);
if(!hikamarket::isVendorProduct($product_id))
return hikamarket::deny('product',
JText::_('HIKAM_PAGE_DENY'));
hikaInput::get()->set('layout',
'form_file_entry');
ob_end_clean();
parent::display();
exit;
}
public function cartlink() {
if( !$this->config->get('frontend_edition',0) ) {
$this->raiseForbidden();
return false;
}
if( !hikamarket::loginVendor() )
return false;
if( !hikamarket::acl('product/edit') )
return hikamarket::deny('product',
JText::sprintf('HIKAM_ACTION_DENY',
JText::_('HIKAM_ACT_PRODUCT_EDIT')));
$product_id = hikaInput::get()->getInt('pid', 0);
if(!hikamarket::isVendorProduct($product_id))
return hikamarket::deny('product',
JText::_('HIKAM_PAGE_DENY'));
echo '
<textarea style="width:100%"
rows="4">'.HIKASHOP_LIVE.'index.php?option='.HIKASHOP_COMPONENT.'&ctrl=product&task=updatecart&quantity=1&checkout=1&product_id='.$product_id.'</textarea><br/>
<textarea style="width:100%" rows="5"><a
class="hikashop_html_add_to_cart_link"
href="'.HIKASHOP_LIVE.'index.php?option='.HIKASHOP_COMPONENT.'&ctrl=product&task=updatecart&quantity=1&checkout=1&product_id='.$product_id.'">'.JText::_('ADD_TO_CART').'</a></textarea>
';
}
public function getUploadSetting($upload_key, $caller = '') {
if( !hikamarket::loginVendor() )
return false;
if( !hikamarket::acl('product/edit') )
return false;
$product_id = hikaInput::get()->getInt('product_id', 0);
if(empty($upload_key) || (!empty($product_id) &&
!hikamarket::isVendorProduct($product_id)))
return false;
$upload_value = null;
$upload_keys = array(
'product_image' => array(
'type' => 'image',
'view' => 'form_image_entry',
'file_type' => 'product',
),
'product_file' => array(
'type' => 'file',
'view' => 'form_file_entry',
'file_type' => 'file'
),
);
if(empty($upload_keys[$upload_key]))
return false;
$upload_value = $upload_keys[$upload_key];
$shopConfig = hikamarket::config(false);
$vendor_id = hikamarket::loadVendor(false, false);
$options = array();
if($upload_value['type'] == 'image') {
$options['upload_dir'] =
$shopConfig->get('uploadfolder');
$options['processing'] = 'resize';
} else
$options['upload_dir'] =
$shopConfig->get('uploadsecurefolder');
if($vendor_id > 1)
$options['sub_folder'] = 'vendor'.$vendor_id.DS;
$options['max_file_size'] = null;
$product_type = hikaInput::get()->getCmd('product_type',
'product');
if(!in_array($product_type,
array('product','variant')))
$product_type = 'product';
return array(
'limit' => 1,
'type' => $upload_value['type'],
'layout' => 'productmarket',
'view' => $upload_value['view'],
'options' => $options,
'extra' => array(
'product_id' => $product_id,
'file_type' => $upload_value['file_type'],
'product_type' => $product_type
)
);
}
public function manageUpload($upload_key, &$ret, $uploadConfig,
$caller = '') {
if(empty($ret))
return;
$config = hikamarket::config();
$vendor_id = hikamarket::loadVendor(false, false);
$product_id =
(int)$uploadConfig['extra']['product_id'];
if(!empty($product_id) &&
!hikamarket::isVendorProduct($product_id))
return;
$file_type = 'product';
if(!empty($uploadConfig['extra']['file_type']))
$file_type = $uploadConfig['extra']['file_type'];
$sub_folder = '';
if(!empty($uploadConfig['options']['sub_folder']))
$sub_folder = str_replace('\\', '/',
$uploadConfig['options']['sub_folder']);
if($file_type == 'product')
$ret->params->product_type =
hikaInput::get()->getCmd('product_type',
'product');
if($caller == 'upload' || $caller == 'addimage') {
$file = new stdClass();
$file->file_description = '';
$file->file_name = $ret->name;
$file->file_type = $file_type;
$file->file_ref_id = $product_id;
$file->file_path = $sub_folder.$ret->name;
if($file_type != 'product') {
$file->file_free_download =
$config->get('upload_file_free_download', false);
$file->file_limit = 0;
}
if(strpos($file->file_name, '.') !== false) {
$file->file_name = substr($file->file_name, 0,
strrpos($file->file_name, '.'));
}
$fileClass = hikamarket::get('shop.class.file');
$status = $fileClass->save($file, $file_type);
$ret->file_id = $status;
$ret->params->file_id = $status;
if($file_type != 'product') {
$ret->params->file_free_download = $file->file_free_download;
$ret->params->file_limit = $file->file_limit;
$ret->params->file_size =
@filesize($uploadConfig['upload_dir'] .
@$uploadConfig['options']['sub_folder'] .
$file->file_name);
}
return;
}
if($caller == 'galleryselect') {
$file = new stdClass();
$file->file_type = 'product';
$file->file_ref_id = $product_id;
$file->file_path = $sub_folder.$ret->name;
$fileClass = hikamarket::get('shop.class.file');
$status = $fileClass->save($file);
$ret->file_id = $status;
$ret->params->file_id = $status;
return;
}
}
public function addimage() {
if( !$this->config->get('frontend_edition',0) ) {
$this->raiseForbidden();
return false;
}
if( !hikamarket::loginVendor() )
return false;
if( !hikamarket::acl('product/edit') )
return hikamarket::deny('product',
JText::sprintf('HIKAM_ACTION_DENY',
JText::_('HIKAM_ACT_PRODUCT_EDIT')));
$ret = $this->saveFile('image');
if($ret)
hikaInput::get()->set('layout', 'addimage');
else
hikaInput::get()->set('layout', 'image');
return parent::display();
}
public function addfile() {
if( !$this->config->get('frontend_edition',0) ) {
$this->raiseForbidden();
return false;
}
if( !hikamarket::loginVendor() )
return false;
if( !hikamarket::acl('product/edit') )
return hikamarket::deny('product',
JText::sprintf('HIKAM_ACTION_DENY',
JText::_('HIKAM_ACT_PRODUCT_EDIT')));
$ret = $this->saveFile('file');
if($ret)
hikaInput::get()->set('layout', 'addfile');
else
hikaInput::get()->set('layout', 'file');
return parent::display();
}
private function saveFile($type) {
$app = JFactory::getApplication();
$fileClass = hikamarket::get('shop.class.file');
$formData = hikaInput::get()->get('data', array(),
'array');
if(!in_array($type, array('file', 'image')))
return false;
$file = new stdClass();
$file->file_id = hikamarket::getCID('file_id');
$file->file_type = (($type == 'file') ? 'file' :
'product');
$fields = array(
'image' => array('file_id',
'file_name', 'file_description',
'file_ref_id'),
'file' => array('file_id', 'file_name',
'file_description', 'file_ref_id',
'file_free_download', 'file_limit')
);
$formData = hikaInput::get()->get('data', array(),
'array');
foreach($formData['file'] as $column => $value) {
if(!in_array($column, $fields[$type]))
continue;
hikamarket::secureField($column);
$file->$column = strip_tags($value);
}
if(!empty($file->file_id)) {
$file->old = $fileClass->get( (int)$file->file_id );
if(empty($file->file_ref_id) || !isset($file->file_ref_id))
$file->file_ref_id = (int)$file->old->file_ref_id;
if((int)$file->old->file_ref_id != $file->file_ref_id ||
$file->old->file_type != $file->file_type) {
$app->enqueueMessage('Invalid data', 'error');
return false;
}
}
$product_id = (int)$file->file_ref_id;
if(!hikamarket::isVendorProduct($product_id))
return false;
$filemode = 'upload';
if(!empty($formData['filemode']))
$filemode = $formData['filemode'];
$vendor_path = '';
$vendor_id = hikamarket::loadVendor(false, false);
if($vendor_id > 1) {
$vendor_path = 'vendor' . $vendor_id;
}
if(!empty($file->file_id))
$filemode = null;
switch($filemode) {
case 'upload':
if(empty($file->file_id)) {
$ids = $fileClass->storeFiles($file->file_type,
$file->file_ref_id, 'files', $vendor_path);
if(is_array($ids) && !empty($ids)) {
$file->file_id = array_shift($ids);
if(isset($file->file_path))
unset($file->file_path);
} else {
return false;
}
}
break;
case 'path':
default:
if(isset($formData['filepath']))
$file->file_path = trim($formData['filepath']);
if(isset($formData['file']['file_path']))
$file->file_path =
trim($formData['file']['file_path']);
break;
}
if(isset($file->file_path)) {
if(strpos($file->file_path, '..') !== false) {
$app->enqueueMessage('Invalid data', 'error');
return false;
}
if($vendor_id > 1) {
if(preg_match('#^([a-z]):[\/\\\]{1}#i',
$file->file_path))
$file->file_path = '';
$file->file_path = ltrim($file->file_path, '/\\');
$firstChar = substr($file->file_path, 0, 1);
if(!in_array($firstChar, array('#', '@'))
&& substr($file->file_path, 0, strlen($vendor_path)) !=
$vendor_path)
$file->file_path = $vendor_path . '/' .
$file->file_path;
}
$shopConfig = hikamarket::config(false);
$firstChar = substr($file->file_path, 0, 1);
$isVirtual = in_array($firstChar, array('#', '@'));
$isLink = (substr($file->file_path, 0, 7) == 'http://' ||
substr($file->file_path, 0, 8) == 'https://');
if(!$isLink && !$isVirtual) {
if($vendor_id > 1 && strpos($file->file_path,
':') !== false) {
$app->enqueueMessage('File does not exists',
'error');
return false;
}
if($firstChar == '/' || preg_match('#:[\/\\\]{1}#',
$file->file_path)) {
$clean_filename = JPath::clean($file->file_path);
if(!JFile::exists($clean_filename)) {
$app->enqueueMessage('Invalid data',
'error');
return false;
}
$secure_path = $shopConfig->get('uploadsecurefolder');
if((JPATH_ROOT != '') && strpos($clean_filename,
JPath::clean(JPATH_ROOT)) !== 0 && strpos($clean_filename,
JPath::clean($secure_path)) !== 0) {
$app->enqueueMessage('Invalid data',
'error');
return false;
}
} else {
$secure_path = $shopConfig->get('uploadsecurefolder');
$clean_filename = JPath::clean($secure_path . '/' .
$file->file_path);
if(!JFile::exists($clean_filename) && (JPATH_ROOT ==
'' || !JFile::exists(JPATH_ROOT . DS . $clean_filename))) {
$app->enqueueMessage('File does not exists',
'error');
return false;
}
}
}
}
if(isset($file->file_ref_id) && empty($file->file_ref_id))
{
unset($file->file_ref_id);
}
if(isset($file->file_limit)) {
$limit = (int)$file->file_limit;
if($limit == 0 && $file->file_limit !== 0 &&
$file->file_limit != '0') {
$file->file_limit = -1;
} else {
$file->file_limit = $limit;
}
}
JPluginHelper::importPlugin('hikamarket');
JPluginHelper::importPlugin('hikashop');
$do = true;
$app->triggerEvent('onHikaBeforeFileSave', array(&$file,
&$do));
if(!$do)
return false;
if(empty($file->file_id) && (empty($file->file_path) ||
empty($file->file_ref_id))) {
$app->enqueueMessage('Invalid data', 'error');
return false;
}
if(empty($file->file_id) && $file->file_type ==
'file' && empty($file->file_name)) {
$app->enqueueMessage('Please provide a file name',
'error');
return false;
}
if(isset($file->file_path) && empty($file->file_path))
unset($file->file_path);
if(isset($file->file_name) && empty($file->file_name)
&& $file->file_type == 'file')
unset($file->file_path);
$status = $fileClass->save($file);
if(empty($file->file_id) && $status) {
$file->file_id = $status;
}
if(!empty($file->file_id))
hikaInput::get()->set('cid', $file->file_id);
$app->triggerEvent('onHikaAfterFileSave',
array(&$file));
return $status;
}
public function editprice() {
$product_id = hikaInput::get()->getInt('product_id', 0);
$variant_product_id =
hikaInput::get()->getInt('variant_product_id', 0);
while(ob_get_level())
@ob_end_clean();
if(!hikamarket::loginVendor() ||
!$this->config->get('frontend_edition', 0)) {
header('HTTP/1.1 403 Forbidden');
exit;
}
if(empty($variant_product_id) &&
(!hikamarket::acl('product/edit/price') ||
!hikamarket::isVendorProduct($product_id))) {
echo '';
exit;
}
if(!empty($variant_product_id) &&
(!hikamarket::acl('product/variant/price') ||
!hikamarket::isVendorProduct($variant_product_id))) {
echo '';
exit;
}
hikaInput::get()->set('layout',
'form_price_entry');
parent::display();
exit;
}
public function getPrice() {
if(!hikamarket::loginVendor() ||
!$this->config->get('frontend_edition', 0)) {
header('HTTP/1.1 403 Forbidden');
exit;
}
$price = hikaInput::get()->getString('price');
$price = hikamarket::toFloat($price);
$tax_id = hikaInput::get()->getInt('tax_id', 0);
$product_id = hikaInput::get()->getInt('product_id', 0);
$conversion = hikaInput::get()->getInt('conversion');
$currencyClass = hikamarket::get('shop.class.currency');
if($tax_id < 0 && $product_id > 0) {
$productClass = hikamarket::get('shop.class.product');
$product = $productClass->get($product_id);
if($product)
$tax_id = $product->product_tax_id;
}
while(ob_get_level())
@ob_end_clean();
$shopConfig = hikamarket::config(false);
$main_tax_zone = explode(',',
$shopConfig->get('main_tax_zone',1346) );
if(count($main_tax_zone) && !empty($tax_id) &&
!empty($price) && !empty($main_tax_zone)) {
if($conversion) {
echo $currencyClass->getUntaxedPrice($price,
array_shift($main_tax_zone), $tax_id, 5);
} else {
echo $currencyClass->getTaxedPrice($price,
array_shift($main_tax_zone), $tax_id, 5);
}
} else {
echo $price;
}
exit;
}
public function getTree() {
while(ob_get_level())
@ob_end_clean();
if(!hikamarket::loginVendor() ||
!$this->config->get('frontend_edition',0)) {
echo '[]';
exit;
}
$config = hikamarket::config();
$category_id = hikaInput::get()->getInt('category_id', 0);
$displayFormat =
hikaInput::get()->getString('displayFormat', '');
$allvendors = hikaInput::get()->getInt('allvendors', 0);
$variants = hikaInput::get()->getInt('variants', 0);
$search = hikaInput::get()->getString('search', null);
$vendor_chroot_category =
(int)$config->get('vendor_chroot_category', 0);
if(empty($category_id) && !empty($vendor_chroot_category)
&& $vendor_chroot_category == 1) {
$vendor_id = hikamarket::loadVendor();
$vendorClass = hikamarket::get('class.vendor');
$category_id = $vendorClass->getRootCategory($vendor_id);
}
if(empty($category_id) && !empty($vendor_chroot_category))
$category_id = (int)$config->get('vendor_root_category',
0);
if(!hikamarket::isVendorCategory($category_id, null, true)) {
echo '[]';
exit;
}
$nameboxType = hikamarket::get('type.namebox');
$options = array(
'start' => $category_id,
'displayFormat' => $displayFormat,
'allvendors' => $allvendors,
'variants' => $variants
);
$ret = $nameboxType->getValues($search, 'product',
$options);
if(!empty($ret)) {
echo json_encode($ret);
exit;
}
echo '[]';
exit;
}
public function findTree() { return $this->getTree(); }
public function upload() {
if( !hikamarket::loginVendor() ||
!$this->config->get('frontend_edition',0) ) {
header('HTTP/1.1 403 Forbidden');
exit;
}
JSession::checkToken() || die('Invalid Token');
$config = hikamarket::config();
$shopConfig = hikamarket::config(false);
$product_id = hikaInput::get()->getInt('product_id', 0);
$file_type = hikaInput::get()->getString('file_type',
'product');
if($file_type == 'product') {
if(!hikamarket::acl('product/edit/images/upload')) {
header('HTTP/1.1 403 Forbidden');
return hikamarket::deny('product',
JText::sprintf('HIKAM_ACTION_DENY',
JText::_('HIKAM_ACT_PRODUCT_EDIT')));
}
} else {
if(!hikamarket::acl('product/edit/files/upload')) {
header('HTTP/1.1 403 Forbidden');
return hikamarket::deny('product',
JText::sprintf('HIKAM_ACTION_DENY',
JText::_('HIKAM_ACT_PRODUCT_EDIT')));
}
}
if($file_type == 'product') {
$options = array(
'upload_dir' =>
$shopConfig->get('uploadfolder'),
'upload_url' => '',
'type' => $file_type
);
} else {
$options = array(
'upload_dir' =>
$shopConfig->get('uploadsecurefolder'),
'upload_url' => '',
'type' => $file_type
);
}
$options['upload_url'] =
ltrim(JPath::clean(html_entity_decode($options['upload_dir'])),DS);
$options['upload_url'] =
str_replace(DS,'/',rtrim($options['upload_url'],DS).DS);
$app = JFactory::getApplication();
if($app->isAdmin()) {
$options['upload_url'] =
'../'.$options['upload_url'];
} else {
$options['upload_url'] =
rtrim(JURI::base(true),'/').'/'.$options['upload_url'];
}
$options['upload_dir'] =
rtrim(JPath::clean(html_entity_decode($options['upload_dir'])),
DS.' ').DS;
if(!preg_match('#^([A-Z]:)?/.*#',$options['upload_dir']))
{
if(substr($options['upload_dir'], 0, 1) != '/' ||
!is_dir($options['upload_dir'])) {
$options['upload_dir'] =
JPath::clean(HIKASHOP_ROOT.DS.trim($options['upload_dir'],
DS.' ').DS);
}
}
$vendor_id = hikamarket::loadVendor(false, false);
if($vendor_id > 0) {
$options['upload_dir'] .= 'vendor'.$vendor_id.DS;
$options['upload_url'] .=
'vendor'.$vendor_id.'/';
}
$uploadHelper = hikamarket::get('helper.upload');
$ret = $uploadHelper->process($options);
if($ret !== false && empty($ret->error)) {
$helperImage = null;
$fileType = 'file';
if($file_type == 'product') {
$fileType = 'image';
$helperImage = hikamarket::get('shop.helper.image');
}
foreach($ret as &$r) {
if(!empty($r->error))
continue;
$file = new stdClass();
$file->file_description = '';
$file->file_name = $r->name;
$file->file_type = $file_type;
$file->file_ref_id = $product_id;
$file->file_path = $r->name;
if($file_type != 'product')
$file->file_free_download =
$config->get('upload_file_free_download', false);
if($vendor_id > 0)
$file->file_path =
'vendor'.$vendor_id.'/'.$r->name; // Not
"DS" here
if(strpos($file->file_name, '.') !== false) {
$file->file_name = substr($file->file_name, 0,
strrpos($file->file_name, '.'));
}
$fileClass = hikamarket::get('shop.class.file');
$status = $fileClass->save($file);
if(empty($file->file_id)) {
$file->file_id = $status;
}
$r->file_id = $status;
$r->html = '';
$js = '';
if($status) {
if($file_type == 'product') {
$helperImage->resizeImage($file->file_path, 'image',
null, null);
$helperImage->display($file->file_path, false, '',
'', '', 100, 100);
$r->thumbnail_url = $helperImage->uploadFolder_url_thumb;
$params = new stdClass();
$params->product_id = $product_id;
$params->file_id = $status;
$params->file_path = $file->file_path;
$params->file_name = $file->file_name;
$params->product_type =
hikaInput::get()->getCmd('product_type',
'product');
$r->html = hikamarket::getLayout('productmarket',
'form_image_entry', $params, $js);
} else {
$params = new stdClass();
$params->product_id = $product_id;
$params->file_id = $status;
$params->file_name = $file->file_name;
$params->file_path = $file->file_path;
$params->file_free_download = $file->file_free_download;
$params->file_limit = -1;
$params->file_size = @filesize($options['upload_dir'] .
$file->file_name);
$r->html = hikamarket::getLayout('productmarket',
'form_file_entry', $params, $js);
}
}
unset($r->path);
unset($r);
}
}
while(ob_get_level())
@ob_end_clean();
echo json_encode($ret);
exit;
}
}
PK�[�'a]]controllers/shipping.phpnu�[���<?php
/**
* @package HikaMarket for Joomla!
* @version 3.1.1
* @author Obsidev S.A.R.L.
* @copyright (C) 2011-2020 OBSIDEV. All rights reserved.
* @license GNU/GPLv3 http://www.gnu.org/licenses/gpl-3.0.html
*/
defined('_JEXEC') or die('Restricted access');
?><?php
class shippingMarketController extends hikamarketController {
protected $rights = array(
'display' => array(),
'add' => array(),
'edit' => array('toggle'),
'modify' => array(),
'delete' => array('delete')
);
protected $type = 'shipping';
protected $config = null;
public function __construct($config = array(), $skip = false) {
parent::__construct($config, $skip);
$this->config = hikamarket::config();
}
public function authorize($task) {
if(!in_array($task, array('toggle', 'delete')))
return parent::authorize($task);
$completeTask = hikaInput::get()->getCmd('task',
'');
$value = hikaInput::get()->getCmd('value', '');
if(strrpos($completeTask, '-') !== false)
$plugin_id = (int)substr($completeTask, strrpos($completeTask,
'-') + 1);
else
$plugin_id = (int)substr($value, 0, strpos($value, '-'));
if(!hikamarket::loginVendor())
return false;
if(!$this->config->get('frontend_edition',0))
return false;
if(!JSession::checkToken('request'))
return false;
if($task == 'toggle' &&
!hikamarket::acl('shippingplugin/edit/published'))
return false;
if($task == 'delete' &&
!hikamarket::acl('shippingplugin/delete'))
return false;
if(!hikamarket::isVendorPlugin($plugin_id, 'shipping'))
return false;
return true;
}
}
PK�[ �C��controllers/toggle.phpnu�[���<?php
/**
* @package HikaMarket for Joomla!
* @version 3.1.1
* @author Obsidev S.A.R.L.
* @copyright (C) 2011-2020 OBSIDEV. All rights reserved.
* @license GNU/GPLv3 http://www.gnu.org/licenses/gpl-3.0.html
*/
defined('_JEXEC') or die('Restricted access');
?><?php
class toggleMarketController extends hikashopBridgeController {
public function __construct($config = array()) {
parent::__construct($config);
$this->registerDefaultTask('toggle');
if(!headers_sent()) {
header('Cache-Control: no-store, no-cache, must-revalidate');
header('Cache-Control: post-check=0, pre-check=0', false);
header('Pragma: no-cache');
}
}
public function authorize($task) {
return true;
}
public function toggle() {
$completeTask = hikaInput::get()->getCmd('task');
$task = substr($completeTask, 0, strrpos($completeTask, '-'));
$elementPkey = substr($completeTask, strrpos($completeTask,
'-') + 1);
$value = hikaInput::get()->getCmd('value', '');
$controllerName = hikaInput::get()->getWord('table',
'');
while(ob_get_level())
@ob_end_clean();
if(empty($controllerName)) {
echo 'No controller';
exit;
}
$controller = hikamarket::get('controller.'.$controllerName);
if(empty($controller)) {
echo 'No controller';
exit;
}
if(!$controller->authorize('toggle')) {
echo 'Forbidden task';
exit;
}
$class = hikamarket::get('class.'.$controllerName);
$id = false;
if(method_exists($class, 'toggleId'))
$id = $class->toggleId($task, $elementPkey);
if($id === false || empty($id)) {
echo 'Forbidden';
exit;
}
$obj = new stdClass();
$obj->$task = $value;
$obj->$id = $elementPkey;
$ret = $value;
if(!$class->save($obj)) {
$table = false;
if(method_exists($class,'getTable')) {
$table = $class->getTable();
if(substr($table,0,1) != '#')
$table = hikamarket::table($table);
}
if(empty($table)) {
$table = hikamarket::table($controllerName);
}
$db = JFactory::getDBO();
$db->setQuery('SELECT '.$task.' FROM
'.$table.' WHERE '.$id.' =
'.$db->Quote($elementPkey), 0, 1);
$ret = $db->loadResult();
}
$tmpl = hikaInput::get()->getString('tmpl', '');
if($tmpl == 'raw') {
echo '1';
exit;
}
$toggleClass = hikamarket::get('helper.toggle');
$extra = hikaInput::get()->get('extra', array(),
'array');
if(!empty($extra)) {
foreach($extra as $key => $val) {
$extra[$key] = urldecode($val);
}
}
echo
$toggleClass->toggle(hikaInput::get()->getCmd('task',
''), $ret, $controllerName, $extra);
exit;
}
public function delete() {
while(ob_get_level())
@ob_end_clean();
$value2 = '';
if(strpos(hikaInput::get()->getCmd('value'), '-')
!== false)
list($value1, $value2) = explode('-',
hikaInput::get()->getCmd('value'));
else
$value1 = hikaInput::get()->getCmd('value');
$table = hikaInput::get()->getWord('table', '');
$controller = hikamarket::get('controller.'.$table);
if(empty($controller)) {
echo 'No controller';
exit;
}
if(!$controller->authorize('delete')) {
echo 'Forbidden';
exit;
}
$destClass = hikamarket::get('class.'.$table);
$deleteToggle = $destClass->toggleDelete($value1, $value2);
if(empty($deleteToggle)) {
echo 'Forbidden';
exit;
}
if($deleteToggle === true) {
echo '1';
exit;
}
$key2 = '';
$v = reset($deleteToggle);
if(is_array($v) && count($v) > 1)
list($key1, $key2) = reset($deleteToggle);
else
$key1 = reset($deleteToggle);
$table = key($deleteToggle);
if(empty($key1) || empty($value1) || (!empty($key2) &&
empty($value2)) ) {
echo 'No value';
exit;
}
$db = JFactory::getDBO();
$query = 'DELETE FROM '.hikamarket::table($table).' WHERE
'.$key1.' = '.$db->Quote($value1);
if(!empty($key2))
$query .= ' AND '.$key2.' =
'.$db->Quote($value2);
$db->setQuery($query);
$db->execute();
echo '1';
exit;
}
}
PK�[���L8L8controllers/upload.phpnu�[���<?php
/**
* @package HikaMarket for Joomla!
* @version 3.1.1
* @author Obsidev S.A.R.L.
* @copyright (C) 2011-2020 OBSIDEV. All rights reserved.
* @license GNU/GPLv3 http://www.gnu.org/licenses/gpl-3.0.html
*/
defined('_JEXEC') or die('Restricted access');
?><?php
class uploadMarketController extends hikamarketController {
protected $rights = array(
'display' =>
array('upload','image','galleryimage'),
'add' => array(),
'edit' =>
array('addimage','galleryselect'),
'modify' => array('upload'),
'delete' => array()
);
protected $controller = null;
public function __construct($config = array()) {
parent::__construct($config);
$this->registerDefaultTask('galleryimage');
$this->config = hikamarket::config();
$controllerName = hikaInput::get()->getCmd('uploader',
'');
if(substr($controllerName, 0, 11) == 'plg.market.')
$controllerName = substr($controllerName, 11);
if(!empty($controllerName)) {
$this->controller =
hikamarket::get('controller.'.$controllerName);
if(!method_exists($this->controller, 'getUploadSetting'))
$this->controller = null;
}
}
public function image() {
if(!hikamarket::loginVendor())
return false;
if(!$this->config->get('frontend_edition',0))
return false;
$upload_key = hikaInput::get()->getString('field',
'');
if(empty($this->controller))
return false;
$uploadConfig = $this->controller->getUploadSetting($upload_key);
if($uploadConfig === false)
return false;
if(!empty($uploadConfig['type']) &&
$uploadConfig['type'] != 'image')
return false;
hikaInput::get()->set('layout', 'sendfile');
hikaInput::get()->set('uploadConfig', $uploadConfig);
return parent::display();
}
public function galleryimage() {
if(!hikamarket::loginVendor())
return false;
if(!$this->config->get('frontend_edition',0))
return false;
$upload_key = hikaInput::get()->getString('field',
'');
if(empty($this->controller))
return false;
$uploadConfig = $this->controller->getUploadSetting($upload_key);
if($uploadConfig === false)
return false;
if(!empty($uploadConfig['type']) &&
$uploadConfig['type'] != 'image')
return false;
hikaInput::get()->set('layout', 'galleryimage');
hikaInput::get()->set('uploadConfig', $uploadConfig);
return parent::display();
}
public function addImage() {
if(!hikamarket::loginVendor())
return false;
if(!$this->config->get('frontend_edition',0))
return false;
$upload_key = hikaInput::get()->getString('field',
'');
if(empty($this->controller))
return false;
$uploadConfig = $this->controller->getUploadSetting($upload_key);
if($uploadConfig === false)
return false;
if(!empty($uploadConfig['type']) &&
$uploadConfig['type'] != 'image')
return false;
$layout = 'uploadmarket';
if(!empty($uploadConfig['layout']))
$layout = $uploadConfig['layout'];
$viewName = '';
if(!empty($uploadConfig['view']))
$viewName = $uploadConfig['view'];
$type = 'image';
if(!empty($uploadConfig['type']))
$type = $uploadConfig['type'];
if(empty($viewName))
$viewName = ($type == 'image') ? 'image_entry' :
'file_entry';
$extra_data = array();
if(!empty($uploadConfig['extra']))
$extra_data = $uploadConfig['extra'];
if(empty($extra_data['field']))
$extra_data['field'] = $upload_key;
$options = array();
if(!empty($uploadConfig['options']))
$options = $uploadConfig['options'];
$this->processUploadOption($options, $type);
if(empty($options) || empty($options['upload_dir']))
return false;
$uploadHelper = hikamarket::get('helper.upload');
$ret = $uploadHelper->processFallback($options);
$output = '[]';
if($ret !== false && empty($ret->error)) {
$helperImage = null;
if($type == 'image') {
$helperImage = hikamarket::get('shop.helper.image');
}
$out = array();
foreach($ret as &$r) {
if(!empty($r->error))
continue;
$file = new stdClass();
$file->file_description = '';
$file->file_name = $r->name;
$file->file_type = $type;
$file->file_path = $options['sub_folder'].$r->name;
$file->file_url =
$options['upload_url'].$options['sub_folder'];
foreach($extra_data as $k => $v) {
$file->$k = $v;
}
if(strpos($file->file_name, '.') !== false) {
$file->file_name = substr($file->file_name, 0,
strrpos($file->file_name, '.'));
}
$r->html = '';
$js = '';
if(!empty($options['processing']) &&
$options['processing'] == 'custom' &&
method_exists($this->controller, 'processUploadFile'))
$this->controller->processUploadFile($upload_key, $file,
$uploadConfig, 'addimage');
if($type == 'image') {
if(!empty($options['processing']) &&
$options['processing'] == 'resize') {
$helperImage->resizeImage($file->file_path, 'image',
null, null);
}
$img = $helperImage->getThumbnail($file->file_path, array(100,
100), array('default' => true));
$r->thumbnail_url = $img->url;
$params = new stdClass();
$params->file_path = $file->file_path;
$params->file_name = $file->file_name;
$params->file_url = $file->file_url;
} else {
$params = new stdClass();
$params->file_name = $file->file_name;
$params->file_path = $file->file_path;
$params->file_url = $file->file_url;
$params->file_limit = -1;
$params->file_size = @filesize($options['upload_dir'] .
$options['sub_folder'] . $file->file_name);
}
foreach($extra_data as $k => $v) {
$params->$k = $v;
}
$r->params = $params;
$this->controller->manageUpload($upload_key, $r, $uploadConfig,
'addimage');
if(empty($r->html))
$r->html = hikamarket::getLayout($layout, $viewName, $params,
$js);
$out[] = $r->html;
unset($r->path);
unset($r->params);
unset($r);
}
if(!empty($out))
$output = json_encode($out);
unset($out);
unset($ret);
}
$js =
'window.hikashop.ready(function(){window.parent.hikashop.submitBox({images:'.$output.'});});';
$doc = JFactory::getDocument();
$doc->addScriptDeclaration($js);
return true;
}
public function galleryselect() {
if(!hikamarket::loginVendor())
return false;
if(!$this->config->get('frontend_edition',0))
return false;
$upload_key = hikaInput::get()->getString('field',
'');
if(empty($this->controller))
return false;
$uploadConfig = $this->controller->getUploadSetting($upload_key,
'galleryselect');
if($uploadConfig === false)
return false;
if(!empty($uploadConfig['type']) &&
$uploadConfig['type'] != 'image')
return false;
$layout = 'uploadmarket';
if(!empty($uploadConfig['layout']))
$layout = $uploadConfig['layout'];
$viewName = '';
if(!empty($uploadConfig['view']))
$viewName = $uploadConfig['view'];
$type = 'image';
if(!empty($uploadConfig['type']))
$type = $uploadConfig['type'];
if(empty($viewName))
$viewName = ($type == 'image') ? 'image_entry' :
'file_entry';
$options = array();
if(!empty($uploadConfig['options']))
$options = $uploadConfig['options'];
$extra_data = array();
if(!empty($uploadConfig['extra']))
$extra_data = $uploadConfig['extra'];
if(empty($extra_data['field']))
$extra_data['field'] = $upload_key;
$this->processUploadOption($options, $type);
if(empty($options) || empty($options['upload_dir']))
return false;
$filesData = hikaInput::get()->get('files', array(),
'array');
$output = '[]';
if(!empty($filesData)) {
$helperImage = hikamarket::get('shop.helper.image');
$ret = array();
$out = array();
foreach($filesData as $filename) {
$r = new stdClass();
$r->name = $filename;
$r->url = str_replace('//', '/',
$options['upload_url'].$options['sub_folder'].rawurlencode($filename));
$r->path = str_replace('//', '/',
$options['upload_dir'].$options['sub_folder'].$filename);
$r->type = $type;
$r->size = filesize($r->path);
$params = new stdClass();
$params->file_path = str_replace('//', '/',
$options['sub_folder'].$filename);
$params->file_name = $filename;
$params->file_url = $r->url;
foreach($extra_data as $k => $v) {
$params->$k = $v;
}
$r->params = $params;
$this->controller->manageUpload($upload_key, $r, $uploadConfig,
'galleryselect');
if(empty($r->html))
$r->html = hikamarket::getLayout($layout, $viewName, $r->params,
$js);
unset($r->params);
$ret[] = $r;
$out[] = $r->html;
unset($r);
}
if(!empty($out))
$output = json_encode($out);
unset($out);
unset($ret);
}
$js =
'window.hikashop.ready(function(){window.parent.hikashop.submitBox({images:'.$output.'});});';
$doc = JFactory::getDocument();
$doc->addScriptDeclaration($js);
return true;
}
public function upload() {
if(!hikamarket::loginVendor())
return false;
if(!$this->config->get('frontend_edition',0))
return false;
JSession::checkToken() || die('Invalid Token');
while(ob_get_level())
@ob_end_clean();
$config = hikamarket::config();
$upload_key = hikaInput::get()->getString('field',
'');
if(empty($this->controller))
exit;
$uploadConfig = $this->controller->getUploadSetting($upload_key,
'upload');
if($uploadConfig === false) {
header('HTTP/1.1 403 Forbidden');
exit;
}
$layout = 'uploadmarket';
if(!empty($uploadConfig['layout']))
$layout = $uploadConfig['layout'];
$viewName = '';
if(!empty($uploadConfig['view']))
$viewName = $uploadConfig['view'];
$type = 'image';
if(!empty($uploadConfig['type']))
$type = $uploadConfig['type'];
$options = array();
if(!empty($uploadConfig['options']))
$options = $uploadConfig['options'];
$extra_data = array();
if(!empty($uploadConfig['extra']))
$extra_data = $uploadConfig['extra'];
if(empty($extra_data['field']))
$extra_data['field'] = $upload_key;
if(empty($viewName))
$viewName = ($type == 'image') ? 'image_entry' :
'file_entry';
$this->processUploadOption($options, $type);
if(empty($options) || empty($options['upload_dir']))
return false;
$max_width = (int)$config->get('max_image_size_width', 0);
$max_height = (int)$config->get('max_image_size_height',
0);
$uploadHelper = hikamarket::get('helper.upload');
$ret = $uploadHelper->process($options);
if($ret === false || !empty($ret->error) || !empty($ret->partial))
{
if($ret !== false) {
unset($ret->path);
unset($ret->params);
}
echo json_encode($ret);
exit;
}
$helperImage = null;
if($type == 'image') {
$helperImage = hikamarket::get('shop.helper.image');
}
$file = new stdClass();
$file->file_description = '';
$file->file_name = $ret->name;
$file->file_type = $type;
$file->file_path = $options['sub_folder'].$ret->name;
$file->file_url =
$options['upload_url'].$options['sub_folder'];
foreach($extra_data as $k => $v) {
$file->$k = $v;
}
if(strpos($file->file_name, '.') !== false) {
$file->file_name = substr($file->file_name, 0,
strrpos($file->file_name, '.'));
}
$ret->file = $file;
$ret->html = '';
$js = '';
if(!empty($options['processing']) &&
$options['processing'] == 'custom' &&
method_exists($this->controller, 'processUploadFile'))
$this->controller->processUploadFile($upload_key, $file,
$uploadConfig, 'upload');
if($type == 'image') {
if($max_height > 0 || $max_width > 0) {
}
if(!empty($options['processing']) &&
$options['processing'] == 'resize') {
$helperImage->resizeImage($file->file_path, 'image',
null, null);
}
$img = $helperImage->getThumbnail($file->file_path, array(100,
100), array('default' => true));
$ret->thumbnail_url = $img->url;
$params = new stdClass();
$params->file_path = $file->file_path;
$params->file_name = $file->file_name;
$params->file_url = $file->file_url;
} else {
$params = new stdClass();
$params->file_name = $file->file_name;
$params->file_path = $file->file_path;
$params->file_url = $file->file_url;
$params->file_limit = -1;
$params->file_size = @filesize($options['upload_dir'] .
$options['sub_folder'] . $file->file_name);
}
foreach($extra_data as $k => $v) {
$params->$k = $v;
}
$ret->params = $params;
$this->controller->manageUpload($upload_key, $ret, $uploadConfig,
'upload');
if(empty($ret->html))
$ret->html = hikamarket::getLayout($layout, $viewName,
$ret->params, $js);
unset($ret->path);
unset($ret->params);
echo json_encode($ret);
exit;
}
private function processUploadOption(&$options, $type =
'image') {
$shopConfig = hikamarket::config(false);
if($type == 'image') {
if(empty($options['upload_dir']))
$options['upload_dir'] =
$shopConfig->get('uploadfolder');
if(empty($options['type']))
$options['type'] = 'image';
} else {
if(empty($options['upload_dir']))
$options['upload_dir'] =
$shopConfig->get('uploadsecurefolder');
if(empty($options['type']))
$options['type'] = 'file';
}
if(empty($options) || empty($options['upload_dir']))
return false;
if(empty($options['sub_folder']))
$options['sub_folder'] = '';
else
$options['sub_folder'] =
str_replace(DS,'/',rtrim($options['sub_folder'],
DS).DS);
$options['upload_url'] =
ltrim(JPath::clean(html_entity_decode($options['upload_dir'])),DS);
$options['upload_url'] =
str_replace(DS,'/',rtrim($options['upload_url'],DS).DS);
$app = JFactory::getApplication();
if($app->isAdmin()) {
$options['upload_url'] =
'../'.$options['upload_url'];
} else {
$options['upload_url'] =
rtrim(JURI::base(true),'/').'/'.$options['upload_url'];
}
$options['upload_dir'] =
rtrim(JPath::clean(html_entity_decode($options['upload_dir'])),
DS.' ').DS;
if(!preg_match('#^([A-Z]:)?/.*#',$options['upload_dir'])
&& (substr($options['upload_dir'], 0, 1) != '/'
|| !is_dir($options['upload_dir']))) {
$options['upload_dir'] =
JPath::clean(HIKASHOP_ROOT.DS.trim($options['upload_dir'],
DS.' ').DS);
}
return true;
}
}
PK�[�X&qqcontrollers/user.phpnu�[���<?php
/**
* @package HikaMarket for Joomla!
* @version 3.1.1
* @author Obsidev S.A.R.L.
* @copyright (C) 2011-2020 OBSIDEV. All rights reserved.
* @license GNU/GPLv3 http://www.gnu.org/licenses/gpl-3.0.html
*/
defined('_JEXEC') or die('Restricted access');
?><?php
class userMarketController extends hikamarketController {
protected $rights = array(
'display' =>
array('listing','state','show','address','getaddresslist','getvalues'),
'add' => array(),
'edit' => array(),
'modify' => array('apply','save'),
'delete' => array()
);
protected $type = 'user';
protected $config = null;
public function __construct($config = array(), $skip = false) {
parent::__construct($config, $skip);
if(!$skip)
$this->registerDefaultTask('listing');
$this->config = hikamarket::config();
}
public function edit() {
return $this->show();
}
public function show() {
if(!hikamarket::loginVendor())
return false;
if(!$this->config->get('frontend_edition',0))
return false;
$customer_id = hikamarket::getCID();
$vendor_id = hikamarket::loadVendor(false, false);
if($vendor_id > 1 &&
!hikamarket::isVendorCustomer($customer_id))
return false;
if(!hikamarket::acl('user/show'))
return false;
hikaInput::get()->set('layout', 'show');
return parent::display();
}
public function address() {
if(!hikamarket::loginVendor())
return false;
if(!$this->config->get('frontend_edition',0))
return false;
$vendor_id = hikamarket::loadVendor(false, false);
if($vendor_id > 1)
return false;
if(!hikamarket::acl('user/edit/address'))
return false;
hikaInput::get()->set('layout', 'address');
$tmpl = hikaInput::get()->getCmd('tmpl', '');
$subtask = hikaInput::get()->getCmd('subtask',
'');
if($subtask == 'edit')
hikaInput::get()->set('edition', true);
if($subtask == 'listing') {
$user_id = hikaInput::get()->getInt('user_id');
if(empty($user_id))
return false;
hikaInput::get()->set('layout', 'show_address');
}
if($subtask == 'save') {
JSession::checkToken('request') || die('Invalid
Token');
$user_id = hikaInput::get()->getInt('user_id');
if($user_id > 0) {
$addressClass = hikamarket::get('class.address');
$result = $addressClass->frontSaveForm($user_id,
'display:vendor_user_edit=1');
}
if(empty($result)) {
hikaInput::get()->set('edition', true);
} else {
hikaInput::get()->set('previous_cid',
$result->previous_id);
hikaInput::get()->set('cid', $result->id);
}
}
if($subtask == 'delete') {
JSession::checkToken('request') || die('Invalid
Token');
$address_id = hikamarket::getCID('address_id');
$user_id = hikaInput::get()->getInt('user_id');
$addressClass = hikamarket::get('class.address');
$addr = $addressClass->get($address_id);
if(!empty($addr) && $addr->address_user_id == $user_id) {
$ret = $addressClass->delete($addr);
if($tmpl == 'component') {
ob_end_clean();
if(!empty($ret))
echo '1';
else
echo '0';
exit;
}
if(in_array($tmpl, array('ajax', 'raw'))) {
hikaInput::get()->set('layout',
'show_address');
hikaInput::get()->set('hidemainmenu', 1);
ob_end_clean();
parent::display();
exit;
}
$app = JFactory::getApplication();
if($ret)
$app->enqueueMessage(JText::_('ADDRESS_DELETED_WITH_SUCCESS'));
else
$app->enqueueMessage(JText::_('ADDRESS_NOT_DELETED'),
'error');
$app->redirect(
hikamarket::completeLink('user&task=show&cid=' .
$user_id) );
}
return false;
}
if(in_array($tmpl, array('component', 'ajax',
'raw'))) {
hikaInput::get()->set('hidemainmenu', 1);
ob_end_clean();
parent::display();
exit;
}
return parent::display();
}
public function listing() {
if(!hikamarket::loginVendor())
return false;
if(!$this->config->get('frontend_edition',0))
return false;
if(!hikamarket::acl('user/listing'))
return false;
hikaInput::get()->set('layout', 'listing');
return parent::display();
}
public function store() {
if(!hikamarket::loginVendor())
return false;
if(!$this->config->get('frontend_edition',0))
return false;
$vendor_id = hikamarket::loadVendor(false, false);
if($vendor_id > 1)
return false;
$redirection = 'user';
if(!hikamarket::acl('user/listing'))
$redirection = 'vendor';
if( !hikamarket::acl('user/edit') )
return hikamarket::deny($redirection,
JText::sprintf('HIKAM_ACTION_DENY',
JText::_('HIKAM_ACT_USER_EDIT')));
$userClass = hikamarket::get('class.user');
if( $userClass === null )
return false;
$status = $userClass->frontSaveForm();
if($status) {
hikaInput::get()->set('cid', $status);
hikaInput::get()->set('fail', null);
}
return $status;
}
public function state() {
if(!hikamarket::loginVendor())
return false;
if(!$this->config->get('frontend_edition',0))
return false;
hikaInput::get()->set('layout', 'state');
return parent::display();
}
public function getAddressList() {
while(ob_get_level())
@ob_end_clean();
if(!hikamarket::loginVendor() ||
!$this->config->get('frontend_edition',0)) {
echo '[]';
exit;
}
$user_id = hikaInput::get()->getInt('user_id', 0);
$address_type = hikaInput::get()->getCmd('address_type',
'');
$displayFormat =
hikaInput::get()->getString('displayFormat',
'{address_mini_format}');
$search = hikaInput::get()->getString('search', null);
if(!hikamarket::isVendorCustomer($user_id, null, true)) {
echo '[]';
exit;
}
$nameboxType = hikamarket::get('type.namebox');
$options = array(
'url_params' => array(
'USER_ID' => $user_id,
'ADDR_TYPE' => $address_type,
),
'displayFormat' => $displayFormat
);
$ret = $nameboxType->getValues($search, 'address',
$options);
if(!empty($ret)) {
echo json_encode($ret);
exit;
}
echo '[]';
exit;
}
public function getValues() {
if(!hikamarket::loginVendor() ||
!$this->config->get('frontend_edition',0) ||
!hikamarket::acl('user/listing')) {
echo '[]';
exit;
}
$displayFormat =
hikaInput::get()->getString('displayFormat', '');
$search = hikaInput::get()->getString('search', null);
$start = hikaInput::get()->getInt('start', 0);
$nameboxType = hikamarket::get('type.namebox');
$options = array(
'displayFormat' => $displayFormat,
'start' => $start
);
$ret = $nameboxType->getValues($search, 'user', $options);
if(!empty($ret)) {
echo json_encode($ret);
exit;
}
echo '[]';
exit;
}
}
PK�[�#&~�I�Icontrollers/vendor.phpnu�[���<?php
/**
* @package HikaMarket for Joomla!
* @version 3.1.1
* @author Obsidev S.A.R.L.
* @copyright (C) 2011-2020 OBSIDEV. All rights reserved.
* @license GNU/GPLv3 http://www.gnu.org/licenses/gpl-3.0.html
*/
defined('_JEXEC') or die('Restricted access');
?><?php
class vendorMarketController extends hikamarketController {
protected $rights = array(
'display' => array(
'cpanel', 'show', 'registration',
'form', 'terms', 'activate',
'reports'
,'listing', 'selection', 'useselection',
'getvalues', 'vendorpaynotify'
),
'add' => array('adduser','register'),
'edit' => array('save',
'switchvendor'),
'modify' => array(),
'delete' => array()
);
public function __construct($config = array(), $skip = false) {
parent::__construct($config, $skip);
if(!$skip)
$this->registerDefaultTask('cpanel');
}
public function show() {
$shopConfig = hikamarket::config(false);
if($shopConfig->get('store_offline')) {
$app = JFactory::getApplication();
$app->enqueueMessage(JText::_('SHOP_IN_MAINTENANCE'));
return false;
}
$cid = hikamarket::getCID('vendor_id');
if(empty($cid)) {
$app = JFactory::getApplication();
$menus = $app->getMenu();
$menu = $menus->getActive();
if(empty($menu) && !empty($Itemid)) {
$menus->setActive($Itemid);
$menu = $menus->getItem($Itemid);
}
if(is_object($menu)) {
$market_params = new HikaParameter($menu->params);
$cid = $market_params->get('vendor_id');
$cid = is_array($cid) ? (int)$cid[0] : (int)$cid;
hikaInput::get()->set('vendor_id', $cid);
hikaInput::get()->set('cid', $cid);
}
}
if(empty($cid)) {
$vendor_id = hikamarket::loadVendor(false);
if(!empty($vendor_id)) {
hikaInput::get()->set('vendor_id', $vendor_id);
hikaInput::get()->set('cid', $vendor_id);
}
}
hikaInput::get()->set('layout', 'show');
return $this->display();
}
public function cpanel() {
$config = hikamarket::config();
if( !$config->get('frontend_edition', 0) ) {
header($_SERVER['SERVER_PROTOCOL'] . ' 403
Forbidden', true, 403);
$app = JFactory::getApplication();
$app->enqueueMessage(JText::_('Access Forbidden'),
'error');
return false;
}
if( !hikamarket::loginVendor() )
return false;
hikaInput::get()->set('layout', 'cpanel');
return parent::display();
}
public function terms() {
$shopConfig = hikamarket::config(false);
if($shopConfig->get('store_offline')) {
$app = JFactory::getApplication();
$app->enqueueMessage(JText::_('SHOP_IN_MAINTENANCE'));
return false;
}
hikaInput::get()->set('layout', 'terms');
return parent::display();
}
public function save() {
$this->store();
return $this->form();
}
public function store() {
$config = hikamarket::config();
if( !$config->get('frontend_edition', 0) ) {
header($_SERVER['SERVER_PROTOCOL'] . ' 403
Forbidden', true, 403);
$app = JFactory::getApplication();
$app->enqueueMessage(JText::_('Access Forbidden'),
'error');
return false;
}
$app = JFactory::getApplication();
JSession::checkToken() || die('Invalid Token');
$vendorClass = hikamarket::get('class.vendor');
$status = $vendorClass->frontSaveForm();
if($status) {
$app->enqueueMessage(JText::_('HIKAM_SUCC_SAVED'),
'message');
hikaInput::get()->set('cid', $status);
hikaInput::get()->set('fail', null);
} else {
$app->enqueueMessage(JText::_('ERROR_SAVING'),
'error');
if(!empty($vendorClass->errors)) {
foreach($vendorClass->errors as $err) {
$app->enqueueMessage($err, 'error');
}
}
}
return $status;
}
public function form() {
$app = JFactory::getApplication();
$config = hikamarket::config();
if(!$config->get('frontend_edition', 0))
return false;
$registration = false;
$user = hikamarket::loadUser(true);
$vendor = hikamarket::loadVendor(false);
$registration = $config->get('allow_registration', 1);
if(empty($vendor) && !$registration) {
$app->redirect('index.php');
return false;
}
if(empty($user)) {
jimport('joomla.application.component.helper');
$usersConfig = JComponentHelper::getParams('com_users');
if($usersConfig->get('allowUserRegistration') ==
'0') {
$app->enqueueMessage(JText::_('PLEASE_LOGIN_FIRST'));
global $Itemid;
$url = '';
if(!empty($Itemid)) { $url = '&Itemid=' . $Itemid; }
$url = 'index.php?option=com_users&view=login' . $url;
$app->redirect(JRoute::_($url .
'&return='.urlencode(base64_encode(hikamarket::currentUrl())),
false));
}
}
if(!empty($vendor) && !hikamarket::acl('vendor/edit'))
return hikamarket::deny('vendor',
JText::sprintf('HIKAM_ACTION_DENY',
JText::_('HIKAM_ACT_VENDOR_EDIT')));
hikaInput::get()->set('layout', 'form');
return parent::display();
}
public function registration() {
return $this->form();
}
public function register() {
$app = JFactory::getApplication();
$config = hikamarket::config();
$allow_registration = $config->get('allow_registration',
1);
if(!$allow_registration || !$config->get('frontend_edition',
0)) {
$app->redirect('index.php');
return false;
}
$vendor = hikamarket::loadVendor(true);
if($vendor != null) {
$app->enqueueMessage(JText::_('HIKAM_ERR_REGISTER_ALREADY_VENDOR'));
$app->redirect(hikamarket::completeLink('vendor', false,
true));
return false;
}
JSession::checkToken() || die('Invalid Token');
$vendorClass = hikamarket::get('class.vendor');
$user = hikamarket::loadUser(true);
$create_user = empty($user);
$status = $vendorClass->register($user);
if($status) {
$app->enqueueMessage(JText::sprintf('THANK_YOU_FOR_REGISTERING',HIKASHOP_LIVE));
if($create_user) {
$usersConfig = JComponentHelper::getParams('com_users');
if((int)$usersConfig->get('useractivation') > 0)
$app->enqueueMessage(JText::_('HIKA_REG_COMPLETE_ACTIVATE'));
}
hikaInput::get()->set('layout',
'after_register');
return parent::display();
}
hikaInput::get()->set('layout', 'registration');
return $this->form();
return parent::display();
}
public function activate() {
$app = JFactory::getApplication();
$db = JFactory::getDBO();
$juser = JFactory::getUser();
$usersConfig = JComponentHelper::getParams('com_users');
$userActivation = $usersConfig->get('useractivation');
$allowUserRegistration =
$usersConfig->get('allowUserRegistration');
if($juser->get('id')) {
$app->redirect(hikamarket::completeLink('vendor',false,true));
return false;
}
unset($juser);
if($allowUserRegistration == '0' || $userActivation ==
'0') {
header($_SERVER['SERVER_PROTOCOL'] . ' 403
Forbidden', true, 403);
$app = JFactory::getApplication();
$app->enqueueMessage(JText::_('Access Forbidden'),
'error');
return false;
}
$lang = JFactory::getLanguage();
$lang->load('com_user', JPATH_SITE);
jimport('joomla.user.helper');
$activation =
hikamarket::getEscaped(hikaInput::get()->getAlnum('activation',
''));
if(empty($activation)) {
$app->enqueueMessage(JText::_('HIKA_REG_ACTIVATE_NOT_FOUND'));
$app->redirect('index.php');
return false;
}
if(HIKASHOP_J30) {
JModelLegacy::addIncludePath(HIKASHOP_ROOT.DS.'components'.DS.'com_users'.DS.'models');
} else {
JModel::addIncludePath(HIKASHOP_ROOT.DS.'components'.DS.'com_users'.DS.'models');
}
$model = $this->getModel('Registration',
'UsersModel', array(), true);
$language = JFactory::getLanguage();
$language->load('com_users', JPATH_SITE,
$language->getTag(), true);
$result = false;
if($model)
$result = $model->activate($activation);
if(!$result) {
$app->enqueueMessage(JText::_('HIKA_REG_ACTIVATE_NOT_FOUND'));
$app->redirect('index.php');
return false;
}
$app->enqueueMessage(JText::_('HIKA_REG_ACTIVATE_COMPLETE'));
$id = hikaInput::get()->getInt('id', 0);
$userClass = hikamarket::get('shop.class.user');
$user = $userClass->get($id);
if($id &&
file_exists(JPATH_ROOT.DS.'components'.DS.'com_comprofiler'.DS.'comprofiler.php')
&& (int)$userActivation < 2) {
$userClass->addAndConfirmUserInCB($user);
}
$infos = hikaInput::get()->getString('infos',
'');
global $Itemid;
$url = '';
if(!empty($Itemid))
$url = '&Itemid='.$Itemid;
if(!empty($infos) && function_exists('json_decode')) {
$infos = json_decode(base64_decode($infos), true);
JPluginHelper::importPlugin('user');
if($userActivation < 2 && is_array($infos) &&
!empty($infos['passwd']) &&
!empty($infos['username'])) {
$options = array(
'remember' => false,
'return' => false
);
$credentials = array(
'username' => $infos['username'],
'password' => $infos['passwd']
);
$error = $app->login($credentials, $options);
$juser = JFactory::getUser();
if(JError::isError($error) || $juser->guest) {
$app->redirect('index.php');
return false;
}
$user_id = $userClass->getID($juser->get('id'));
if(!empty($user_id)) {
$app->setUserState(HIKASHOP_COMPONENT.'.user_id',
$user_id);
}
} elseif($userActivation >= 2) {
$app->enqueueMessage(JText::_('HIKA_ADMIN_CONFIRM_ACTIVATION'));
}
}
$app->redirect(hikamarket::completeLink('vendor',false,true));
return false;
}
public function adduser() {
$app = JFactory::getApplication();
$db = JFactory::getDBO();
$config = hikamarket::config();
$vendor = hikamarket::loadVendor(true);
if(!$config->get('frontend_edition', 0))
return false;
while(ob_get_level())
@ob_end_clean();
if($vendor == null) {
echo JText::_('PLEASE_LOGIN_FIRST');
exit;
}
if(!hikamarket::acl('vendor/edit')) {
echo JText::sprintf('HIKAM_ACTION_DENY',
JText::_('HIKAM_ACT_VENDOR_EDIT'));
exit;
}
$email = hikaInput::get()->getString('email',
'');
if(empty($email)) {
echo JText::_('HIKAM_INVALID_USER');
exit;
}
$query = 'SELECT hu.*, ju.* FROM
'.hikamarket::table('shop.user').' AS hu '.
' INNER JOIN
'.hikamarket::table('joomla.users').' AS ju ON
hu.user_cms_id = ju.id '.
' WHERE hu.user_vendor_id = 0 AND ju.block = 0 AND hu.user_email =
' . $db->Quote($email);
$db->setQuery($query);
$user = $db->loadObject();
if(!empty($user)) {
$ret = new stdClass();
$ret->user_id = (int)$user->user_id;
$ret->user_email = $user->user_email;
$ret->user_vendor_id = $user->user_vendor_id;
$ret->user_vendor_access = $user->user_vendor_access;
$ret->name = $user->name;
$ret->username = $user->username;
echo json_encode($ret);
} else {
echo JText::_('HIKAM_INVALID_USER');
}
exit;
}
public function reports() {
while(ob_get_level())
@ob_end_clean();
$vendor_id = hikamarket::loadVendor(false);
$config = hikamarket::config();
if(empty($vendor_id) || !$config->get('frontend_edition',0)
|| !hikamarket::acl('vendor/statistics')) {
echo '{}';
exit;
}
$statName = hikaInput::get()->getCmd('chart',
'');
$statValue = hikaInput::get()->getString('value',
'');
if(empty($statName) || empty($statValue)) {
echo '{}';
exit;
}
$statisticsClass = hikamarket::get('class.statistics');
$ret = $statisticsClass->getAjaxData($vendor_id, $statName,
$statValue);
if($ret === false) {
echo '{}';
exit;
}
echo $ret;
exit;
}
public function switchvendor() {
JSession::checkToken() || die('Invalid Token');
if(!hikamarket::loginVendor())
return false;
$config = hikamarket::config();
if(!$config->get('frontend_edition',0))
return false;
$vendor_id = hikamarket::getCID('vendor_id');
if($config->get('user_multiple_vendor', 0) &&
!empty($vendor_id)) {
$vendorClass = hikamarket::get('class.vendor');
$vendorClass->switchVendor($vendor_id);
}
global $Itemid;
$url = !empty($Itemid) ? '&Itemid=' . $Itemid :
'';
$app = JFactory::getApplication();
$app->redirect(hikamarket::completeLink('vendor'.$url,
false, true));
}
public function selection() {
if(!hikamarket::loginVendor())
return false;
$config = hikamarket::config();
if(!$config->get('frontend_edition',0))
return false;
$vendor_id = hikamarket::loadVendor(false);
if($vendor_id > 1)
return false;
hikaInput::get()->set('layout', 'selection');
return parent::display();
}
public function useselection() {
if(!hikamarket::loginVendor())
return false;
$config = hikamarket::config();
if(!$config->get('frontend_edition',0))
return false;
$vendor_id = hikamarket::loadVendor(false);
if($vendor_id > 1)
return false;
hikaInput::get()->set('layout', 'useselection');
return parent::display();
}
public function vendorpaynotify() {
while(ob_get_level())
@ob_end_clean();
$mode = hikaInput::get()->getString('mode', null);
if(empty($mode))
$mode = @$_GET['mode'];
if(empty($mode))
exit;
$order_id = (int)@$_GET['order_id'];
$orderClass = hikamarket::get('class.order');
$order = $orderClass->getRaw($order_id);
if($order->order_type != 'vendorpayment')
exit;
switch($mode) {
case 'paypal':
$raw_data = isset($HTTP_RAW_POST_DATA) ? $HTTP_RAW_POST_DATA :
file_get_contents('php://input');
$ipndata = $this->processIPNdata($raw_data);
$ipnConfirm =
$this->sendIPNconfirm('https://www.paypal.com/webscr',
$raw_data . '&cmd=_notify-validate');
$verified = preg_match('#VERIFIED#i', $ipnConfirm);
$completed = preg_match('#Completed#i',
$ipndata['payment_status']);
if($verified && $completed) {
$shopConfig = hikamarket::config(false);
$confirmed_status =
$shopConfig->get('order_confirmed_status',
'confirmed');
$update_order = new stdClass();
$update_order->order_id = (int)$order_id;
$update_order->order_status = $confirmed_status;
$update_order->history = new stdClass();
$update_order->history->history_reason =
JText::_('AUTOMATIC_PAYMENT_NOTIFICATION');
$update_order->history->history_notified = true;
}
break;
}
exit;
}
private function processIPNdata($data = '') {
if(empty($data))
return array();
$ret = array();
$elements = explode('&', $data);
foreach($elements as $element) {
list($k, $v) = explode('=', $element, 2);
$k = urldecode($k);
$v = urldecode($v);
preg_match('/(\w+)(?:\[(\d+)\])?(?:\.(\w+))?/', $k, $parts);
switch(count($parts)) {
case 4:
if(!isset($ret[ $parts[1] ])) $ret[ $parts[1] ] = array();
if(!isset($ret[ $parts[1] ][ $parts[2] ])) $ret[ $parts[1] ][
$parts[2] ] = array();
$ret[ $parts[1] ][ $parts[2] ][ $parts[3] ] = $v;
break;
case 3:
if(!isset($ret[$parts[1]])) $ret[ $parts[1] ] = array();
$ret[ $parts[1] ][ $parts[2] ] = $v;
break;
default:
$ret[$k] = $v;
break;
}
}
return $ret;
}
private function sendIPNconfirm($notif_url, $data = '') {
$url = parse_url($notif_url);
if(!isset($url['query'])) $url['query'] =
'';
if(!isset($url['port'])) {
if(!empty($url['scheme']) &&
in_array($url['scheme'], array('https',
'ssl'))) $url['port'] = 443;
else $url['port'] = 80;
}
if(!empty($url['scheme']) &&
in_array($url['scheme'], array('https',
'ssl'))) $url['host_socket'] = 'ssl://' .
$url['host'];
else $url['host_socket'] = $url['host'];
$fp = fsockopen($url['host_socket'], $url['port'],
$errno, $errstr, 30);
if(!$fp) return false;
$uri = $url['path'] . ($url['query'] != ''
? '?' . $url['query'] : '');
$header = 'POST '.$uri.' HTTP/1.1'."\r\n".
'User-Agent: PHP/'.phpversion()."\r\n".
'Referer: '.hikashop_currentURL()."\r\n".
'Server:
'.$_SERVER['SERVER_SOFTWARE']."\r\n".
'Host: '.$url['host']."\r\n".
'Content-Type:
application/x-www-form-urlencoded'."\r\n".
'Content-Length: '.strlen($data)."\r\n".
'Accept: */'.'*'."\r\n".
'Connection: close'."\r\n\r\n";
fwrite($fp, $header . $data);
$response = '';
while(!feof($fp)) {
$response .= fgets($fp, 1024);
}
fclose ($fp);
return substr($response, strpos($response, "\r\n\r\n") +
strlen("\r\n\r\n"));
}
public function getUploadSetting($upload_key, $caller = '') {
if(!hikamarket::loginVendor())
return false;
$config = hikamarket::config();
if(!$config->get('frontend_edition',0))
return false;
$shopConfig = hikamarket::config(false);
$vendor_id = hikamarket::loadVendor(false);
if(empty($upload_key))
return false;
if(!empty($vendor_id) &&
!hikamarket::acl('vendor/edit/image'))
return false;
$upload_value = null;
$upload_keys = array(
'vendor_image' => array(
'type' => 'image',
'field' => 'data[vendor][vendor_image]'
)
);
if(empty($upload_keys[$upload_key]))
return false;
$upload_value = $upload_keys[$upload_key];
$options = array();
$options['upload_dir'] =
$shopConfig->get('uploadfolder');
if($vendor_id > 1)
$options['sub_folder'] =
'vendor'.(int)$vendor_id.DS;
if(empty($vendor_id))
$options['sub_folder'] = 'vendor_register'.DS;
return array(
'limit' => 1,
'type' => $upload_value['type'],
'options' => $options,
'extra' => array(
'vendor_id' => $vendor_id,
'field_name' => $upload_value['field']
)
);
}
public function manageUpload($upload_key, &$ret, $uploadConfig,
$caller = '') {
$config = hikamarket::config();
if(!$config->get('frontend_edition',0) || empty($ret) ||
empty($ret->name))
return;
$vendor_id = hikamarket::loadVendor(false);
if(empty($vendor_id) || !hikamarket::acl('vendor/edit/image'))
return;
$vendorClass = hikamarket::get('class.vendor');
$vendor = new stdClass();
$vendor->vendor_id = $vendor_id;
$vendor->vendor_image =
@$uploadConfig['options']['sub_folder'].$ret->name;
$vendorClass->save($vendor);
}
public function getValues() {
if(!hikamarket::loginVendor())
return false;
$config = hikamarket::config();
if(!$config->get('frontend_edition', 0))
return false;
while(ob_get_level())
@ob_end_clean();
$vendor_id = hikamarket::loadVendor(false);
if($vendor_id > 1) {
echo '{}';
exit;
}
$displayFormat =
hikaInput::get()->getString('displayFormat', '');
$search = hikaInput::get()->getString('search', null);
$nameboxType = hikamarket::get('type.namebox');
$options = array(
'displayFormat' => $displayFormat
);
$ret = $nameboxType->getValues($search, 'vendor',
$options);
if(!empty($ret)) {
echo json_encode($ret);
exit;
}
echo '[]';
exit;
}
}
PK�[^Ƭ00controllers/warehouse.phpnu�[���<?php
/**
* @package HikaMarket for Joomla!
* @version 3.1.1
* @author Obsidev S.A.R.L.
* @copyright (C) 2011-2020 OBSIDEV. All rights reserved.
* @license GNU/GPLv3 http://www.gnu.org/licenses/gpl-3.0.html
*/
defined('_JEXEC') or die('Restricted access');
?><?php
class warhouseMarketController extends hikamarketController {
protected $rights = array(
'display' => array('findvalue'),
'add' => array(),
'edit' => array(),
'modify' => array(),
'delete' => array()
);
protected $type = 'warehouse';
protected $config = null;
public function __construct($config = array(), $skip = false) {
parent::__construct($config, $skip);
$this->config = hikamarket::config();
}
function findValue() {
while(ob_get_level())
@ob_end_clean();
if(!hikamarket::loginVendor() ||
!$this->config->get('frontend_edition',0)) {
echo '[]';
exit;
}
$displayFormat =
hikaInput::get()->getString('displayFormat', '');
$search = hikaInput::get()->getString('search', null);
$nameboxType = hikamarket::get('type.namebox');
$options = array(
'displayFormat' => $displayFormat
);
$ret = $nameboxType->getValues($search, $this->type, $options);
if(!empty($ret)) {
echo json_encode($ret);
exit;
}
echo '[]';
exit;
}
}
PK�[�P�5��controllers/zone.phpnu�[���<?php
/**
* @package HikaMarket for Joomla!
* @version 3.1.1
* @author Obsidev S.A.R.L.
* @copyright (C) 2011-2020 OBSIDEV. All rights reserved.
* @license GNU/GPLv3 http://www.gnu.org/licenses/gpl-3.0.html
*/
defined('_JEXEC') or die('Restricted access');
?><?php
class zoneMarketController extends hikamarketController {
protected $rights = array(
'display' => array('gettree'),
'add' => array(),
'edit' => array(),
'modify' => array(),
'delete' => array()
);
protected $type = 'zone';
protected $config = null;
public function __construct($config = array(), $skip = false) {
parent::__construct($config, $skip);
$this->config = hikamarket::config();
}
public function getTree() {
while(ob_get_level())
@ob_end_clean();
if(!hikamarket::loginVendor() ||
!$this->config->get('frontend_edition',0)) {
echo '[]';
exit;
}
$zone_key = hikaInput::get()->getString('zone_key', null);
$displayFormat =
hikaInput::get()->getString('displayFormat', '');
$search = hikaInput::get()->getString('search', null);
$nameboxType = hikamarket::get('type.namebox');
$options = array(
'zone_key' => $zone_key,
'displayFormat' => $displayFormat
);
$ret = $nameboxType->getValues($search, 'zone', $options);
if(!empty($ret)) {
echo json_encode($ret);
exit;
}
echo '[]';
exit;
}
}
PK�[n�t��fields/hikamarketmenu.phpnu�[���<?php
/**
* @package HikaMarket for Joomla!
* @version 3.1.1
* @author Obsidev S.A.R.L.
* @copyright (C) 2011-2020 OBSIDEV. All rights reserved.
* @license GNU/GPLv3 http://www.gnu.org/licenses/gpl-3.0.html
*/
defined('_JEXEC') or die('Restricted access');
?><?php
class JFormFieldHikamarketmenu extends JFormField {
protected $type = 'hikamarketmenu';
protected function getInput() {
if(!defined('DS'))
define('DS', DIRECTORY_SEPARATOR);
if(!defined('HIKAMARKET_COMPONENT') &&
!include_once(rtrim(JPATH_ADMINISTRATOR,DS).DS.'components'.DS.'com_hikamarket'.DS.'helpers'.DS.'helper.php'))
return 'This menu can not work without the HikaMarket
Component';
$config = hikamarket::config();
if(!hikamarket::isAllowed($config->get('acl_modules_manage',
'all')))
return 'Access to the HikaMarket options of the menu is
restricted';
$id = hikaInput::get()->getInt('id');
if(empty($this->multiple) || !HIKASHOP_J30) {
if(empty($id))
return JText::_('HIKAMARKET_OPTIONS_EDIT');
$text = '<a
title="'.JText::_('HIKAMARKET_OPTIONS').'"
href="'.JRoute::_('index.php?option=com_hikamarket&ctrl=menus&fromjoomla=1&task=edit&cid[]='.$id).'">'.JText::_('HIKAMARKET_OPTIONS').'</a>';
return $text;
}
$empty = '';
$js = '';
$params = new HikaParameter($empty);
$params->set('id', $this->id);
$params->set('cid', $id);
$params->set('name', $this->name);
$params->set('value', $this->value);
$params->set('type',
$this->getAttribute('content'));
$params->set('menu',
$this->getAttribute('menu'));
$content = hikamarket::getLayout('menusmarket',
'options', $params, $js);
return
'</div></div>'.$content.'<div><div>';
}
}
PK�[�����fields/hikamarketmodule.phpnu�[���<?php
/**
* @package HikaMarket for Joomla!
* @version 3.1.1
* @author Obsidev S.A.R.L.
* @copyright (C) 2011-2020 OBSIDEV. All rights reserved.
* @license GNU/GPLv3 http://www.gnu.org/licenses/gpl-3.0.html
*/
defined('_JEXEC') or die('Restricted access');
?><?php
class JFormFieldHikamarketmodule extends JFormField {
protected $type = 'hikamarketmodule';
protected function getInput() {
if(!defined('DS'))
define('DS', DIRECTORY_SEPARATOR);
if(!defined('HIKAMARKET_COMPONENT') &&
!include_once(rtrim(JPATH_ADMINISTRATOR,DS).DS.'components'.DS.'com_hikamarket'.DS.'helpers'.DS.'helper.php'))
return 'This module can not work without the HikaMarket
Component';
$config = hikamarket::config();
if(!hikamarket::isAllowed($config->get('acl_modules_manage',
'all')))
return 'Access to the HikaMarket options of the modules is
restricted';
$id = hikaInput::get()->getInt('id');
if(empty($this->multiple) || !HIKASHOP_J30) {
if(empty($id))
return JText::_('HIKAMARKET_OPTIONS_EDIT');
$text = '<a
title="'.JText::_('HIKASHOP_OPTIONS').'"
href="'.JRoute::_('index.php?option=com_hikamarket&ctrl=modules&fromjoomla=1&task=edit&cid[]='.$id).'"
>'.JText::_('HIKAMARKET_OPTIONS').'</a>';
return $text;
}
$empty = '';
$js = '';
$params = new HikaParameter($empty);
$params->set('id', $this->id);
$params->set('cid', $id);
$params->set('name', $this->name);
$params->set('value', $this->value);
$params->set('type',
$this->getAttribute('content'));
$params->set('menu',
$this->getAttribute('menu'));
$content = hikamarket::getLayout('modulesmarket',
'options', $params, $js);
return
'</div></div>'.$content.'<div><div>';
}
}
PK�[;ji�UUfields/hikamnamebox.phpnu�[���<?php
/**
* @package HikaMarket for Joomla!
* @version 3.1.1
* @author Obsidev S.A.R.L.
* @copyright (C) 2011-2020 OBSIDEV. All rights reserved.
* @license GNU/GPLv3 http://www.gnu.org/licenses/gpl-3.0.html
*/
defined('_JEXEC') or die('Restricted access');
?><?php
class JFormFieldHikamnamebox extends JFormField {
protected $type = 'hikamnamebox';
protected function getInput() {
if(!defined('DS'))
define('DS', DIRECTORY_SEPARATOR);
if(!defined('HIKAMARKET_COMPONENT') &&
!include_once(rtrim(JPATH_ADMINISTRATOR,DS).DS.'components'.DS.'com_hikamarket'.DS.'helpers'.DS.'helper.php'))
return 'This module can not work without the HikaMarket
Component';
$nameboxType = hikamarket::get('type.namebox');
$namebox_type = 'vendor';
if(isset($this->element['namebox_type']))
$namebox_type = (string)$this->element['namebox_type'];
$namebox_mode = hikamarketNameboxType::NAMEBOX_SINGLE;
if($this->multiple) {
$namebox_mode = hikamarketNameboxType::NAMEBOX_MULTIPLE;
if(!is_array($this->value))
$this->value = explode(',', $this->value);
}
$text = $nameboxType->display(
$this->name,
$this->value,
$namebox_mode,
$namebox_type,
array(
'delete' => true,
'default_text' =>
'<em>'.JText::_('HIKA_NONE').'</em>'
)
);
return $text;
}
}
PK�[wtW�fields/index.htmlnu�[���<html><body></body></html>PK�[��Z���fields/selectoptions.phpnu�[���<?php
/**
* @package HikaMarket for Joomla!
* @version 3.1.1
* @author Obsidev S.A.R.L.
* @copyright (C) 2011-2020 OBSIDEV. All rights reserved.
* @license GNU/GPLv3 http://www.gnu.org/licenses/gpl-3.0.html
*/
defined('_JEXEC') or die('Restricted access');
?><?php
class JFormFieldSelectoptions extends JFormField {
protected $type = 'selectoptions';
protected function getInput() {
if(!defined('DS'))
define('DS', DIRECTORY_SEPARATOR);
if(!class_exists('hikamarket') &&
!include_once(rtrim(JPATH_ADMINISTRATOR,DS).DS.'components'.DS.'com_hikamarket'.DS.'helpers'.DS.'helper.php'))
return 'This menu options cannot be displayed without the
HikaMarket Component';
$shopConfig = hikamarket::config(false);
if(!hikamarket::isAllowed($shopConfig->get('acl_menus_manage',
'all')))
return 'Access to the HikaMarket options of the menus is
restricted';
$id = hikaInput::get()->getInt('id');
if(!empty($id)) {
$text = '<a
title="'.JText::_('HIKAMARKET_OPTIONS').'"
href="'.JRoute::_('index.php?option=com_hikamarket&ctrl=menus&fromjoomla=1&task=edit&cid[]='.$id).'">'.JText::_('HIKAMARKET_OPTIONS').'</a>';
} else {
$text = JText::_('HIKAMARKET_OPTIONS_EDIT');
}
return $text;
}
}
PK�[���ԩ�fields/vendorsearchfields.phpnu�[���<?php
/**
* @package HikaMarket for Joomla!
* @version 3.1.1
* @author Obsidev S.A.R.L.
* @copyright (C) 2011-2020 OBSIDEV. All rights reserved.
* @license GNU/GPLv3 http://www.gnu.org/licenses/gpl-3.0.html
*/
defined('_JEXEC') or die('Restricted access');
?><?php
class JFormFieldVendorsearchfields extends JFormField
{
public $type = 'help';
public function getInput() {
JHTML::_('behavior.modal','a.modal');
$link =
'index.php?option=com_hikamarket&tmpl=component&ctrl=vendor&task=searchfields&values='.$this->value.'&control=';
$text = '<input class="inputbox" id="fields"
name="'.$this->name.'" type="text"
size="20"
value="'.$this->value.'">';
$text .= '<a class="modal" id="linkfields"
title="Fields" href="'.$link.'"
rel="{handler: \'iframe\', size: {x: 650, y:
375}}"><button class="btn" onclick="return
false">Select</button></a>';
return $text;
}
}
PK�[W�U�
�
hikamarket.phpnu�[���<?php
/**
* @package HikaMarket for Joomla!
* @version 3.1.1
* @author Obsidev S.A.R.L.
* @copyright (C) 2011-2020 OBSIDEV. All rights reserved.
* @license GNU/GPLv3 http://www.gnu.org/licenses/gpl-3.0.html
*/
defined('_JEXEC') or die('Restricted access');
?><?php
jimport('joomla.application.component.controller');
jimport('joomla.application.component.view');
if(!defined('DS'))
define('DS', DIRECTORY_SEPARATOR);
include_once(rtrim(JPATH_ADMINISTRATOR,DS).DS.'components'.DS.'com_hikamarket'.DS.'helpers'.DS.'helper.php');
hikaInput::get()->set('hikamarket_front_end_main', 1);
global $Itemid;
if(empty($Itemid)) {
$urlItemid = hikaInput::get()->getInt('Itemid');
if($urlItemid)
$Itemid = $urlItemid;
}
$view = hikaInput::get()->getCmd('view');
if(!empty($view) && strlen($view) > 6 && substr($view,
-6) == 'market')
$view = substr($view, 0, -6);
if(!empty($view) && !hikaInput::get()->getCmd('ctrl'))
{
hikaInput::get()->set('ctrl', $view);
$layout = hikaInput::get()->getCmd('layout');
if(!empty($layout)) {
hikaInput::get()->set('task', $layout);
}
} else {
$ctrl = hikaInput::get()->getCmd('ctrl');
if(!empty($ctrl) && substr($ctrl, -6) == 'market')
hikaInput::get()->set('ctrl', substr($ctrl, 0, -6));
}
if(HIKASHOP_J30) {
$token = hikamarket::getFormToken();
$isToken = hikaInput::get()->getString($token, '');
if(!empty($isToken) && !JSession::checkToken('request'))
{
$app = JFactory::getApplication();
$app->input->request->set($token, 1);
}
}
$session = JFactory::getSession();
if(is_null($session->get('registry'))) {
jimport('joomla.registry.registry');
$session->set('registry', new
JRegistry('session'));
}
$taskGroup = hikaInput::get()->getCmd('ctrl',
'vendor');
$className = ucfirst($taskGroup).'MarketController';
$overrideClassName =
ucfirst($taskGroup).'MarketControllerOverride';
if(class_exists($overrideClassName)) {
$className = $overrideClassName;
}
elseif(file_exists(HIKAMARKET_CONTROLLER.$taskGroup.'.override.php'))
{
include_once(HIKAMARKET_CONTROLLER.$taskGroup.'.override.php');
}
if(!class_exists($className) &&
(!file_exists(HIKAMARKET_CONTROLLER.$taskGroup.'.php') ||
!include_once(HIKAMARKET_CONTROLLER.$taskGroup.'.php'))) {
if(!hikamarket::getPluginController($taskGroup)) {
throw new Exception('Page not found : '.$taskGroup, 404);
return;
}
}
$classGroup = new $className();
hikaInput::get()->set('view', $classGroup->getName());
$classGroup->execute(hikaInput::get()->getCmd('task'));
$classGroup->redirect();
if(hikaInput::get()->getString('tmpl') !==
'component') {
echo hikamarket::footer();
}
hikaInput::get()->set('hikamarket_front_end_main',0);
PK�[���g��
router.phpnu�[���<?php
/**
* @package HikaMarket for Joomla!
* @version 3.1.1
* @author Obsidev S.A.R.L.
* @copyright (C) 2011-2020 OBSIDEV. All rights reserved.
* @license GNU/GPLv3 http://www.gnu.org/licenses/gpl-3.0.html
*/
defined('_JEXEC') or die('Restricted access');
?><?php
function hikamarketBuildRoute(&$query) {
$segments = array();
if(!defined('DS'))
define('DS', DIRECTORY_SEPARATOR);
$config = null;
$shopConfig = null;
if(defined('HIKAMARKET_COMPONENT') ||
include_once(rtrim(JPATH_ADMINISTRATOR,DS).DS.'components'.DS.'com_hikamarket'.DS.'helpers'.DS.'helper.php'))
{
$config = hikamarket::config();
$shopConfig = hikamarket::config(false);
}
$controller = null;
if(isset($query['ctrl'])) {
if(substr($query['ctrl'], -6) == 'market')
$query['ctrl'] = substr($query['ctrl'], 0, -6);
$segments[] = $query['ctrl'];
$controller = $query['ctrl'];
unset( $query['ctrl'] );
if (isset($query['task']) &&
strpos($query['task'], '-') === false) {
$segments[] = $query['task'];
unset($query['task']);
}
} elseif(isset($query['view'])) {
if(substr($query['view'], -6) == 'market')
$query['view'] = substr($query['view'], 0, -6);
$segments[] = $query['view'];
$controller = $query['view'];
unset($query['view']);
if(isset($query['layout'])) {
$segments[] = $query['layout'];
unset($query['layout']);
}
}
if(count($segments) == 2 && $segments[0] == 'vendor'
&& $segments[1] == 'show' &&
isset($query['Itemid']) &&
$shopConfig->get('sef_remove_id',0)) {
$segments = array();
}
if(isset($query['cid']) &&
isset($query['name'])) {
if($controller == 'vendor' && !empty($shopConfig)
&& $shopConfig->get('sef_remove_id',0) &&
!empty($query['name'])) {
$segments[] = $query['name'];
} else {
if(is_numeric($query['name'])) {
$query['name'] = $query['name'] . '-';
}
$segments[] = $query['cid'] . ':' .
$query['name'];
}
unset($query['cid']);
unset($query['name']);
}
if(!empty($query)) {
foreach($query as $name => $value) {
if(!in_array($name, array('option', 'Itemid',
'start', 'format', 'limitstart',
'lang'))) {
$segments[] = $name . ':' . $value;
unset($query[$name]);
}
}
}
return $segments;
}
function hikamarketParseRoute($segments) {
$vars = array();
if(!empty($segments)) {
if(!defined('DS'))
define('DS', DIRECTORY_SEPARATOR);
$config = null;
$shopConfig = null;
if(defined('HIKAMARKET_COMPONENT') ||
include_once(rtrim(JPATH_ADMINISTRATOR,DS).DS.'components'.DS.'com_hikamarket'.DS.'helpers'.DS.'helper.php')){
$config = hikamarket::config();
$shopConfig = hikamarket::config(false);
}
if(count($segments) == 1 &&
$shopConfig->get('sef_remove_id',0)) {
$vars['ctrl'] = 'vendor';
$vars['task'] = 'show';
if(hikmarket_retrieve_url_id($vars, $segments[0]))
return $vars;
unset($vars['ctrl']);
unset($vars['task']);
}
$i = 0;
foreach($segments as $name) {
if(isset($vars['ctrl']) &&
isset($vars['task']) &&
$shopConfig->get('sef_remove_id',0) &&
hikmarket_retrieve_url_id($vars, $name))
continue;
if(strpos($name, ':')) {
list($arg, $val) = explode(':',$name);
if(is_numeric($arg) && !is_numeric($val)) {
$vars['cid'] = $arg;
$vars['name'] = $val;
} else if(is_numeric($arg))
$vars['Itemid'] = $arg;
else
$vars[$arg] = $val;
} else {
$i++;
if($i == 1)
$vars['ctrl'] = $name;
elseif($i == 2)
$vars['task'] = $name;
}
}
}
return $vars;
}
function hikmarket_retrieve_url_id(&$vars, $name) {
if(@$vars['ctrl'] !== 'vendor' &&
@$vars['task'] !== 'show')
return false;
if(!empty($vars['cid']))
return false;
$db = JFactory::getDBO();
$shopConfig = hikamarket::config(false);
if($shopConfig->get('alias_auto_fill', 1)) {
$db->setQuery('SELECT vendor_id FROM ' .
hikamarket::table('vendor').' WHERE vendor_alias =
'.$db->Quote(str_replace(':','-',$name)));
$retrieved_id = $db->loadResult();
if($retrieved_id) {
$vars['cid'] = $retrieved_id;
$vars['name'] = $name;
return true;
}
}
$name_regex = '^ *' . str_replace(array('-',
':'), '.+', $name) . ' *$';
$db->setQuery('SELECT * FROM ' .
hikamarket::table('vendor') . ' WHERE vendor_alias REGEXP
' . $db->Quote($name_regex) . ' OR vendor_name REGEXP ' .
$db->Quote($name_regex));
$retrieved = $db->loadObject();
if($retrieved) {
$vars['cid'] = $retrieved->vendor_id;
$vars['name'] = $name;
if($shopConfig->get('alias_auto_fill', 1) &&
empty($retrieved->vendor_alias)) {
$retrieved->alias = $retrieved->vendor_name;
if(!$shopConfig->get('unicodeslugs')) {
$lang = JFactory::getLanguage();
$retrieved->alias = $lang->transliterate($retrieved->alias);
}
$app = JFactory::getApplication();
if(method_exists($app,'stringURLSafe'))
$retrieved->alias = $app->stringURLSafe($retrieved->alias);
else
$retrieved->alias =
JFilterOutput::stringURLSafe($retrieved->alias);
$vendorClass = hikamarket::get('class.vendor');
$element = new stdClass();
$element->vendor_id = $retrieved->vendor_id;
$element->vendor_alias = $retrieved->alias;
$vendorClass->save($element);
}
return true;
}
return false;
}
PK�[���IIsef_ext.phpnu�[���<?php
/**
* @package HikaMarket for Joomla!
* @version 3.1.1
* @author Obsidev S.A.R.L.
* @copyright (C) 2011-2020 OBSIDEV. All rights reserved.
* @license GNU/GPLv3 http://www.gnu.org/licenses/gpl-3.0.html
*/
defined('_JEXEC') or die('Restricted access');
?><?php
class sef_hikamarket {
public function create($string) {
$string = str_replace('&', '&',
preg_replace('#(index\.php\??)#i', '', $string));
$query = array();
$allValues = explode('&',$string);
foreach($allValues as $oneValue) {
list($var,$val) = explode('=', $oneValue);
$query[$var] = $val;
}
$segments = array();
if(!defined('DS'))
define('DS', DIRECTORY_SEPARATOR);
if(class_exists('hikamarket') ||
include_once(rtrim(JPATH_ADMINISTRATOR,DS).DS.'components'.DS.'com_hikamarket'.DS.'helpers'.DS.'helper.php'))
{
$shopConfig = hikamarket::config(false);
if($shopConfig->get('activate_sef',1)) {
}
}
if (isset($query['ctrl'])) {
$segments[] = $query['ctrl'];
unset($query['ctrl']);
if(isset($query['task'])) {
$segments[] = $query['task'];
unset($query['task']);
}
} elseif(isset($query['view'])) {
$segments[] = $query['view'];
unset($query['view']);
if(isset($query['layout'])){
$segments[] = $query['layout'];
unset($query['layout']);
}
}
if(isset($query['cid']) &&
isset($query['name'])) {
if(is_numeric($query['name'])) {
$query['name'] = $query['name'] . '-';
}
$segments[] = $query['cid'] . ':' .
$query['name'];
unset($query['cid']);
unset($query['name']);
}
unset($query['option']);
if(isset($query['Itemid']))
unset($query['Itemid']);
if(!empty($query)) {
foreach($query as $name => $value){
$segments[] = $name . ':' . $value;
}
}
return implode('/', $segments);
}
}
PK�[wtW�views/categorymarket/index.htmlnu�[���<html><body></body></html>PK�[\�'J.views/categorymarket/tmpl/edit_translation.phpnu�[���<?php
/**
* @package HikaMarket for Joomla!
* @version 3.1.1
* @author Obsidev S.A.R.L.
* @copyright (C) 2011-2020 OBSIDEV. All rights reserved.
* @license GNU/GPLv3 http://www.gnu.org/licenses/gpl-3.0.html
*/
defined('_JEXEC') or die('Restricted access');
?><form action="<?php echo
hikamarket::completeLink('category'); ?>"
name="hikamarket_translation_form"
id="hikamarket_translation_form" method="post"
enctype="multipart/form-data">
<?php
if(!empty($this->category->translations)) {
foreach($this->category->translations as $language_id =>
$translation) {
?>
<table class="hikam_blocks">
<tr>
<td class="hikam_block_r">
<dl class="hikam_options">
<?php if(hikamarket::acl('category/edit/name')) { ?>
<dt
class="hikamarket_category_name"><label><?php echo
JText::_('HIKA_NAME'); ?></label></dt>
<dd class="hikamarket_category_name"><input
type="text" name="translation[category_name][<?php echo
$language_id; ?>]" value="<?php echo
@$translation->category_name->value; ?>"/></dd>
<?php } else { ?>
<dt
class="hikamarket_category_name"><label><?php echo
JText::_('HIKA_NAME'); ?></label></dt>
<dd class="hikamarket_category_name"><?php echo
@$this->category->category_name; ?></dd>
<?php }
if(hikamarket::acl('category/edit/metadescription')) { ?>
<dt
class="hikamarket_category_metadescription"><label><?php
echo JText::_('CATEGORY_META_DESCRIPTION');
?></label></dt>
<dd
class="hikamarket_category_metadescription"><textarea
id="hikamarket_category_metadescription_textarea"
cols="35" rows="2"
name="translation[category_meta_description][<?php echo
$language_id; ?>]"><?php echo
$this->escape(@$translation->category_meta_description->value);
?></textarea></dd>
<?php
}
if(hikamarket::acl('category/edit/keywords')) { ?>
<dt
class="hikamarket_category_keywords"><label><?php
echo JText::_('CATEGORY_KEYWORDS');
?></label></dt>
<dd class="hikamarket_category_keywords"><textarea
id="hikamarket_category_keywords_textarea" cols="35"
rows="2" name="translation[category_keywords][<?php echo
$language_id; ?>]"><?php echo
$this->escape(@$translation->category_keywords->value);
?></textarea></dd>
<?php
}
if(hikamarket::acl('category/edit/pagetitle')) { ?>
<dt
class="hikamarket_category_pagetitle"><label><?php
echo JText::_('PAGE_TITLE'); ?></label></dt>
<dd class="hikamarket_category_pagetitle"><input
type="text" size="45"
name="translation[category_page_title][<?php echo $language_id;
?>]" value="<?php echo
$this->escape(@$translation->category_page_title->value);
?>" /></dd>
<?php
}
if(hikamarket::acl('category/edit/alias')) { ?>
<dt
class="hikamarket_category_alias"><label><?php echo
JText::_('HIKA_ALIAS'); ?></label></dt>
<dd class="hikamarket_category_alias"><input
type="text" size="45"
name="translation[category_alias][<?php echo $language_id;
?>]" value="<?php echo
$this->escape(@$translation->category_alias->value); ?>"
/></dd>
<?php
}
if(hikamarket::acl('category/edit/description') &&
$this->config->get('front_small_editor')) { ?>
<dt
class="hikamarket_category_description"><label><?php
echo JText::_('PRODUCT_DESCRIPTION');
?></label></dt>
<dd class="hikamarket_category_description"><div
class="hikam_options_nl"></div><?php
$this->editor->name =
'translation_category_description_' . $language_id;
$this->editor->content =
@$translation->category_description->value;
echo $this->editor->display();
?><div style="clear:both"></div></dd>
<?php } ?>
</dl>
</td>
</tr>
<?php if(hikamarket::acl('category/edit/description')
&& !$this->config->get('front_small_editor')) {
?>
<tr>
<td><?php
$this->editor->name =
'translation_category_description_' . $language_id;
$this->editor->content =
@$translation->category_description->value;
echo $this->editor->display();
?><div style="clear:both"></div></td>
</tr>
<?php } ?>
</table>
<?php
}
}
?>
<input type="hidden" name="cid[]"
value="<?php echo @$this->category->category_id; ?>"
/>
<input type="hidden" name="option"
value="<?php echo HIKAMARKET_COMPONENT; ?>" />
<input type="hidden" name="task" value=""
/>
<input type="hidden" name="ctrl"
value="category" />
<?php echo JHTML::_( 'form.token' ); ?>
</form>
PK�[PDB���"views/categorymarket/tmpl/form.phpnu�[���<?php
/**
* @package HikaMarket for Joomla!
* @version 3.1.1
* @author Obsidev S.A.R.L.
* @copyright (C) 2011-2020 OBSIDEV. All rights reserved.
* @license GNU/GPLv3 http://www.gnu.org/licenses/gpl-3.0.html
*/
defined('_JEXEC') or die('Restricted access');
?><script type="text/javascript">
window.categoryMgr = {};
window.categoryMgr.cpt = {};
</script>
<form action="<?php echo
hikamarket::completeLink('category');?>"
method="post" name="hikamarket_form"
id="hikamarket_categories_form"
enctype="multipart/form-data">
<table class="hikam_blocks">
<tr>
<td class="hikam_block_l hikam_block_x150">
<?php
if(hikamarket::acl('category/edit/images')) {
echo $this->loadTemplate('image');
}
?>
</td>
<td class="hikam_block_r">
<dl class="hikam_options">
<?php if(hikamarket::acl('category/edit/name')) { ?>
<dt
class="hikamarket_category_name"><label><?php echo
JText::_('HIKA_NAME'); ?></label></dt>
<dd class="hikamarket_category_name"><input
type="text" name="data[category][category_name]"
value="<?php echo @$this->category->category_name;
?>"/></dd>
<?php } else { ?>
<dt
class="hikamarket_category_name"><label><?php echo
JText::_('HIKA_NAME'); ?></label></dt>
<dd class="hikamarket_category_name"><?php echo
@$this->category->category_name; ?></dd>
<?php }
if(hikamarket::acl('category/edit/parent') &&
empty($this->isVendorRoot)) { ?>
<dt
class="hikamarket_category_parent"><label><?php echo
JText::_('CATEGORY_PARENT'); ?></label></dt>
<dd class="hikamarket_category_parent"><?php
echo
$this->categoryType->displaySingle('data[category][category_parent_id]',
@$this->category->category_parent_id, '',
$this->rootCategory);
?></dd>
<?php }
if(hikamarket::acl('category/edit/published') &&
empty($this->isVendorRoot)) { ?>
<dt
class="hikamarket_category_published"><label><?php
echo JText::_('HIKA_PUBLISHED'); ?></label></dt>
<dd class="hikamarket_category_published"><?php
echo
$this->radioType->booleanlist('data[category][category_published]',
'', @$this->category->category_published);
?></dd>
<?php }
if(hikamarket::acl('category/edit/customfields')) {
if(!empty($this->fields)) {
?>
</dl>
<?php
foreach($this->fields as $fieldName => $oneExtraField) {
?>
<dl id="hikashop_category_<?php echo $fieldName; ?>"
class="hikam_options">
<dt class="hikamarket_category_<?php echo $fieldName;
?>"><?php echo
$this->fieldsClass->getFieldName($oneExtraField); ?></dt>
<dd class="hikamarket_category_<?php echo $fieldName;
?>"><?php
$onWhat = 'onchange';
if($oneExtraField->field_type == 'radio')
$onWhat = 'onclick';
echo $this->fieldsClass->display($oneExtraField,
$this->category->$fieldName,
'data[category]['.$fieldName.']', false, '
'.$onWhat.'="hikashopToggleFields(this.value,\''.$fieldName.'\',\'category\',0);"');
?></dd>
</dl>
<?php
}
?>
<dl class="hikam_options">
<?php
}
}
?>
</dl>
</td>
</tr>
<?php
if(hikamarket::acl('category/edit/description')) {
if(!$this->config->get('front_small_editor')) { ?>
<tr class="hikamarket_category_description">
<td colspan="2">
<label
class="hikamarket_category_description_label"><?php echo
JText::_('HIKA_DESCRIPTION'); ?></label>
<?php echo $this->editor->display();?>
<div style="clear:both"></div>
</td>
</tr>
<?php } else { ?>
<tr>
<td colspan="2">
<dl class="hikam_options">
<dt
class="hikamarket_category_description"><label><?php
echo JText::_('HIKA_DESCRIPTION');
?></label></dt>
<dd class="hikamarket_category_description"><?php
echo $this->editor->display();?><div
style="clear:both"></div></dd>
</dl>
</td>
</tr>
<?php }
}
?>
<tr>
<td colspan="2">
<dl class="hikam_options">
<?php
if(hikamarket::acl('category/edit/metadescription')) { ?>
<dt
class="hikamarket_category_metadescription"><label><?php
echo JText::_('CATEGORY_META_DESCRIPTION');
?></label></dt>
<dd
class="hikamarket_category_metadescription"><textarea
id="hikamarket_category_metadescription_textarea"
cols="35" rows="2"
name="data[category][category_meta_description]"><?php echo
$this->escape(@$this->category->category_meta_description);
?></textarea></dd>
<?php
}
if(hikamarket::acl('category/edit/keywords')) { ?>
<dt
class="hikamarket_category_keywords"><label><?php
echo JText::_('CATEGORY_KEYWORDS');
?></label></dt>
<dd class="hikamarket_category_keywords"><textarea
id="hikamarket_category_keywords_textarea" cols="35"
rows="2"
name="data[category][category_keywords]"><?php echo
$this->escape(@$this->category->category_keywords);
?></textarea></dd>
<?php
}
if(hikamarket::acl('category/edit/pagetitle')) { ?>
<dt
class="hikamarket_category_pagetitle"><label><?php
echo JText::_('PAGE_TITLE'); ?></label></dt>
<dd class="hikamarket_category_pagetitle"><input
type="text" size="45"
name="data[category][category_page_title]" value="<?php
echo $this->escape(@$this->category->category_page_title);
?>" /></dd>
<?php
}
if(hikamarket::acl('category/edit/alias')) { ?>
<dt
class="hikamarket_category_alias"><label><?php echo
JText::_('HIKA_ALIAS'); ?></label></dt>
<dd class="hikamarket_category_alias"><input
type="text" size="45"
name="data[category][category_alias]" value="<?php echo
$this->escape(@$this->category->category_alias); ?>"
/></dd>
<?php
}
if(hikamarket::acl('category/edit/translations')) {
if(!empty($this->category->translations) &&
!empty($this->category->category_id)) {
?> <dt
class="hikamarket_product_translations"><label><?php
echo JText::_('HIKA_TRANSLATIONS');
?></label></dt>
<dd class="hikamarket_product_translations"><?php
foreach($this->category->translations as $language_id =>
$translation){
$lngName = $this->translationHelper->getFlag($language_id);
echo '<div
class="hikamarket_multilang_button">' .
$this->popup->display(
$lngName, $lngName,
hikamarket::completeLink('category&task=edit_translation&category_id='
.
@$this->category->category_id.'&language_id='.$language_id,
true),
'hikamarket_category_translation_'.$language_id,
760, 480, '', '', 'link'
).
'</div>';
}
?></dd>
<?php
}
}
if(hikamarket::acl('category/edit/acl') &&
hikashop_level(2)) { ?>
<dt
class="hikamarket_category_acl"><label><?php echo
JText::_('ACCESS_LEVEL'); ?></label></dt>
<dd class="hikamarket_category_acl"><?php
$category_access = 'all';
if(isset($this->category->category_access))
$category_access = $this->category->category_access;
echo
$this->joomlaAcl->display('data[category][category_access]',
$category_access, true, true);
?></dd>
<?php }
?>
</dl>
</td>
</tr>
</table>
<input type="hidden" name="cancel_action"
value="<?php echo @$this->cancel_action; ?>"/>
<input type="hidden" name="cid[]"
value="<?php echo @$this->category->category_id;
?>"/>
<input type="hidden" name="option"
value="<?php echo HIKAMARKET_COMPONENT; ?>"/>
<input type="hidden" name="task"
value=""/>
<input type="hidden" name="ctrl"
value="category"/>
<?php echo JHTML::_('form.token'); ?>
</form>
PK�[(x����(views/categorymarket/tmpl/form_image.phpnu�[���<?php
/**
* @package HikaMarket for Joomla!
* @version 3.1.1
* @author Obsidev S.A.R.L.
* @copyright (C) 2011-2020 OBSIDEV. All rights reserved.
* @license GNU/GPLv3 http://www.gnu.org/licenses/gpl-3.0.html
*/
defined('_JEXEC') or die('Restricted access');
?><?php
$upload = hikamarket::acl('category/edit/images/upload');
$ajax = false;
if(!empty($this->upload_ajax))
$ajax = true;
$options = array(
'classes' => array(
'mainDiv' => 'hikamarket_main_image_div',
'contentClass' => 'hikamarket_category_image',
'btn_add' => 'hikam_add_btn',
'btn_upload' => 'hikam_upload_btn'
),
'upload' => $upload,
'upload_base_url' =>
'index.php?option=com_hikamarket&ctrl=upload',
'gallery' => $upload,
'text' => ($upload ?
JText::_('HIKAM_CATEGORY_IMAGE_EMPTY_UPLOAD') :
JText::_('HIKAM_CATEGORY_IMAGE_EMPTY')),
'uploader' => array('category',
'category_image'),
'vars' => array(
'category_id' => $this->category->category_id,
'file_type' => 'category'
),
'ajax' => $ajax
);
$content = '';
if(!empty($this->category->file_id) &&
!empty($this->category->file_path)) {
$this->params = new stdClass();
$this->params->file_id = $this->category->file_id;
$this->params->file_path = $this->category->file_path;
$this->params->file_ref_id = $this->category->file_ref_id;
$content = $this->loadTemplate('image_entry');
}
echo
$this->uploaderType->displayImageSingle('hikamarket_category_image',
$content, $options);
PK�[{�^...views/categorymarket/tmpl/form_image_entry.phpnu�[���<?php
/**
* @package HikaMarket for Joomla!
* @version 3.1.1
* @author Obsidev S.A.R.L.
* @copyright (C) 2011-2020 OBSIDEV. All rights reserved.
* @license GNU/GPLv3 http://www.gnu.org/licenses/gpl-3.0.html
*/
defined('_JEXEC') or die('Restricted access');
?><?php $image =
$this->imageHelper->getThumbnail(@$this->params->file_path,
array(100, 100), array('default' => true)); ?>
<div>
<a href="#delete" class="deleteImg"
onclick="return
window.hkUploaderList['hikamarket_category_image'].delImage(this);"><i
class="fas fa-trash-alt"></i></a>
<div class="hikamarket_image">
<img src="<?php echo $image->url; ?>"
alt="<?php echo $image->filename; ?>"/>
</div><input type="hidden"
name="data[category][category_image]" value="<?php echo
@$this->params->file_id;?>"/>
</div>
PK�[��ɷ))*views/categorymarket/tmpl/galleryimage.phpnu�[���<?php
/**
* @package HikaMarket for Joomla!
* @version 3.1.1
* @author Obsidev S.A.R.L.
* @copyright (C) 2011-2020 OBSIDEV. All rights reserved.
* @license GNU/GPLv3 http://www.gnu.org/licenses/gpl-3.0.html
*/
defined('_JEXEC') or die('Restricted access');
?><fieldset>
<div class="toolbar" id="toolbar"
style="float: right;">
<button class="hikabtn" type="button"
onclick="window.hikamarket.submitform('galleryselect','adminForm');"><i
class="far fa-save"></i> <?php echo
JText::_('OK'); ?></button>
</div>
</fieldset>
<form action="<?php echo
hikamarket::completeLink('category&task=galleryimage', true);
?>" method="post" name="adminForm"
id="adminForm" enctype="multipart/form-data">
<table width="100%" height="100%"
class="adminlist" style="width:100%;height:100%;">
<thead>
<tr>
<th></th>
<th>
<?php echo JText::_('FILTER');?>:
<input type="text" name="search"
value="<?php echo
$this->escape($this->pageInfo->search);?>"
class="text_area"
onchange="document.adminForm.submit();" />
<button class="hikabtn"
onclick="document.adminForm.limitstart.value=0;this.form.submit();"><i
class="fas fa-search"></i></button>
<button class="hikabtn"
onclick="document.adminForm.limitstart.value=0;document.getElementById('search').value='';this.form.submit();"><i
class="fas fa-times"></i></button>
</th>
</tr>
</thead>
<tfoot>
<tr>
<td></td>
<td>
<?php echo $this->pagination->getListFooter(); ?>
<?php echo $this->pagination->getResultsCounter(); ?>
</td>
</tr>
</tfoot>
<tr>
<td width="130px" height="100%"
style="width:130px;vertical-align:top;">
<div style="width:130px;height:100%;overflow:auto;">
<?php
echo $this->treeContent;
?>
<script type="text/javascript">
hikashopGallery.callbackSelection = function(tree,id) {
var d = document, node = tree.get(id);
if( node.value && node.name ) {
var url = "<?php echo
hikamarket::completeLink('product&task=galleryimage&id='.hikaInput::get()->getInt('id').'&cid='.@$this->cid.'&product_id='.hikaInput::get()->getInt('product_id').'&folder={FOLDER}',
true, true) ;?>";
document.location = url.replace('{FOLDER}',
node.value.replace('/', '|'));
}
}
</script>
</div>
</td>
<td>
<ul id="hikaGallery">
<?php
if(!empty($this->dirContent)) {
foreach($this->dirContent as $k => $content) {
$chk_uid = 'hikaGalleryChk_' . $k . '_' . uniqid();
?>
<li class="hikaGalleryItem">
<a class="hikaGalleryPhoto" href="#"
onclick="return window.hikagallery.select(this, '<?php echo
$chk_uid; ?>');">
<img src="<?php echo $content->thumbnail->url;
?>" alt="<?php echo $content->filename;
?>"/>
<span style="display:none;"
class="hikaGalleryChk"><input type="checkbox"
id="<?php echo $chk_uid ;?>" name="files[]"
value="<?php echo $content->path; ?>"/></span>
<div class="hikaGalleryCommand">
<span class="photo_name"><?php echo
$content->filename; ?></span>
<span><?php echo $content->width . 'x' .
$content->height; ?></span>
<span style="float:right"><?php echo
$content->size; ?></span>
</div>
</a>
</li>
<?php
}
}
?>
</ul>
</td>
</tr>
</table>
<script type="text/javascript">
window.hikagallery = {};
window.hikagallery.select = function(el, id) {
var d = document, w = window, o = w.Oby, chk = d.getElementById(id);
if(chk) {
if(chk.checked) {
o.removeClass(el.parentNode, 'selected');
} else {
o.addClass(el.parentNode, 'selected');
}
chk.checked = !chk.checked;
}
return false;
}
</script>
<div class="clr"></div>
<input type="hidden" name="category_id"
value="<?php echo
hikaInput::get()->getInt('category_id'); ?>" />
<input type="hidden" name="pid"
value="<?php echo hikaInput::get()->getInt('pid');
?>" />
<input type="hidden" name="option"
value="<?php echo HIKAMARKET_COMPONENT; ?>" />
<input type="hidden" name="tmpl"
value="component" />
<input type="hidden" name="task"
value="galleryimage" />
<input type="hidden" name="ctrl"
value="category" />
<?php echo JHTML::_('form.token'); ?>
</form>
PK�[�3M� � #views/categorymarket/tmpl/image.phpnu�[���<?php
/**
* @package HikaMarket for Joomla!
* @version 3.1.1
* @author Obsidev S.A.R.L.
* @copyright (C) 2011-2020 OBSIDEV. All rights reserved.
* @license GNU/GPLv3 http://www.gnu.org/licenses/gpl-3.0.html
*/
defined('_JEXEC') or die('Restricted access');
?><fieldset>
<div class="toolbar" id="toolbar"
style="float: right;">
<button class="hikabtn" type="button"
onclick="hikamarket.submitform('addimage','hikamarket_form');"><i
class="far fa-save"></i> <?php echo
JText::_('OK'); ?></button>
</div>
</fieldset>
<form action="<?php echo
hikamarket::completeLink('category&task=image'); ?>"
method="post" name="hikamarket_form"
id="hikamarket_form" enctype="multipart/form-data">
<table width="100%">
<tr>
<td class="key">
<label for="file_name"><?php echo
JText::_('HIKA_NAME'); ?></label>
</td>
<td>
<input type="text" name="data[file][file_name]"
value="<?php echo
$this->escape(@$this->element->file_name); ?>"/>
</td>
</tr>
<tr>
<?php
if(empty($this->element->file_path)){
if(hikamarket::acl('category/edit/images/upload')) {
?>
<td class="key">
<label for="files"><?php echo
JText::_('HIKA_IMAGE'); ?></label>
</td>
<td>
<input type="file" name="files[]"
size="30" />
<?php echo
JText::sprintf('MAX_UPLOAD',(hikashop_bytes(ini_get('upload_max_filesize'))
> hikashop_bytes(ini_get('post_max_size'))) ?
ini_get('post_max_size') :
ini_get('upload_max_filesize')); ?>
</td>
<?php
}
}else{
?>
<td class="key">
<label for="files"><?php echo
JText::_('HIKA_IMAGE'); ?></label>
</td>
<td><?php
$image =
$this->imageHelper->getThumbnail($this->element->file_path,array(100,
100),array('default' => true));
?><img src="<?php echo $image->url; ?>"
alt="<?php echo $image->filename; ?>"/></td>
<?php
}
?>
</tr>
</table>
<div class="clr"></div>
<input type="hidden" name="data[file][file_type]"
value="category" />
<input type="hidden" name="data[file][file_ref_id]"
value="<?php echo $this->category_id; ?>" />
<input type="hidden" name="cid[]"
value="<?php echo @$this->cid; ?>" />
<input type="hidden" name="option"
value="<?php echo HIKAMARKET_COMPONENT; ?>" />
<input type="hidden" name="tmpl"
value="component" />
<input type="hidden" name="task"
value="addimage" />
<input type="hidden" name="ctrl"
value="product" />
<?php echo JHTML::_( 'form.token' ); ?>
</form>
PK�[wtW�$views/categorymarket/tmpl/index.htmlnu�[���<html><body></body></html>PK�[��`6`6%views/categorymarket/tmpl/listing.phpnu�[���<?php
/**
* @package HikaMarket for Joomla!
* @version 3.1.1
* @author Obsidev S.A.R.L.
* @copyright (C) 2011-2020 OBSIDEV. All rights reserved.
* @license GNU/GPLv3 http://www.gnu.org/licenses/gpl-3.0.html
*/
defined('_JEXEC') or die('Restricted access');
?><div class="">
<form action="<?php echo
hikamarket::completeLink('category&task=listing&cid='.$this->cid);
?>" method="post" name="adminForm"
id="adminForm">
<div class="hk-row-fluid">
<div class="hkc-md-12 hikam_search_zone">
<?php
echo $this->loadHkLayout('search', array(
'id' => 'hikamarket_category_listing_search',
));
?>
<div class="hikam_sort_zone"><?php
echo JHTML::_('select.genericlist', $this->ordering_values,
'filter_fullorder',
'onchange="this.form.submit();"', 'value',
'text', $this->full_ordering);
?></div>
</div>
</div>
<div class="hk-row-fluid">
<div class="hkc-md-12">
<div class="expand-filters"
style="width:auto;">
<?php
echo $this->childdisplayType->display('filter_type',
$this->pageInfo->selectedType, false);
?>
</div>
<div style="clear:both"></div>
</div>
</div>
<?php
if(!empty($this->breadcrumb)) {
?>
<div class="hikam_breadcrumb_explorer">
<div class="hikam_breadcrumb"
onclick="window.Oby.toggleClass(this.parentNode,
'explorer_open');">
<?php
foreach($this->breadcrumb as $i => $breadcrumb) {
if($i > 0)
echo '<span
class="breadcrumb_sep">/</span>';
echo '<span class="breadcrumb_el">';
if($breadcrumb->category_id != $this->cid) {
echo '<a
href="'.hikamarket::completeLink('category&task=listing&cid='.$breadcrumb->category_id).'">'.JText::_($breadcrumb->category_name).'</a>';
} else {
echo JText::_($breadcrumb->category_name);
}
echo '</span>';
}
?>
<span class="breadcrumb_expand_icon"><i
class="fas fa-folder-open"></i></span>
</div>
<div class="hikam_category_explorer"><?php
echo
$this->shopCategoryType->displayTree('hikam_categories',
$this->rootCategory, null, true, true, $this->cid,
hikamarket::completeLink('category&task=getTree', false,
true));
?></div>
<script type="text/javascript">
window.hikashop.ready(function(){
var otreeCategories = window.oTrees['hikam_categories'];
otreeCategories.sel(otreeCategories.find(<?php echo $this->cid;
?>));
otreeCategories.callbackSelection = function(tree,id) {
var d = document, node = tree.get(id);
if(node.value && node.name) {
var u = "<?php echo
hikamarket::completeLink('category&task=listing&cid=HIKACID',
false, false, true); ?>";
window.location = u.replace('HIKACID', node.value);
}
};
});
</script>
</div>
<?php
}
$publish_content = '<i class="fas
fa-check"></i> ' .
JText::_('HIKA_PUBLISHED');
$unpublish_content = '<i class="fas
fa-times"></i> ' .
JText::_('HIKA_UNPUBLISHED');
?>
<div id="hikam_product_main_listing">
<?php
if(!empty($this->categories)) {
foreach($this->categories as $category) {
$url = ($this->manage) ?
hikamarket::completeLink('category&task=edit&cid='.(int)$category->category_id)
: null;
$browse_url =
hikamarket::completeLink('category&task=listing&cid='.(int)$category->category_id);
$extra_classes = '';
?>
<div class="hk-card hk-card-default hk-card-category<?php echo
$extra_classes; ?>" data-hkm-category="<?php echo
(int)$category->category_id; ?>">
<div class="hk-card-header">
<div class="hk-row-fluid">
<a class="hkc-sm-6 hkm_category_name" href="<?php
echo $url; ?>"><?php
echo $category->category_name;
?></a>
<a class="hkc-sm-6 hkm_category_children"
href="<?php echo $browse_url; ?>"><?php
if(empty($category->children))
echo '<i class="far fa-folder"></i>'
. JText::_('HIKAM_NO_CHILD_CATEGORY');
else if($category->children == 1)
echo '<i class="fas
fa-folder-open"></i>' .
JText::sprintf('HIKAM_X_CHILD_CATEGORY',
$category->children);
else
echo '<i class="fas
fa-folder-open"></i>' .
JText::sprintf('HIKAM_X_CHILD_CATEGORIES',
$category->children);
?></a>
</div>
</div>
<div class="hk-card-body">
<div class="hk-row-fluid">
<div class="hkc-sm-2 hkm_category_image">
<a href="<?php echo $url; ?>"><?php
$thumb =
$this->imageHelper->getThumbnail(@$category->file_path,
array(50,50), array('default' => 1, 'forcesize'
=> 1));
if(!empty($thumb->path) && empty($thumb->external))
echo '<img src="'.
$this->imageHelper->uploadFolder_url . str_replace('\\',
'/', $thumb->path).'" class=""
alt=""/>';
else if(!empty($thumb->path) && !empty($thumb->url))
echo '<img src="'. $thumb->url.'"
class="" alt="" width="50"
height="50"/>';
?></a>
</div>
<div class="hkc-sm-5 hkm_category_details">
<div class="hkm_category_stats">
<i class="fas fa-cubes"></i> <?php
if(empty($category->products))
echo JText::_('HIKAM_NO_PRODUCTS');
else if($category->products == 1)
echo JText::sprintf('HIKAM_X_PRODUCT',
$category->products);
else
echo JText::sprintf('HIKAM_X_PRODUCTS',
$category->products);
?>
</div>
<?php
if($this->category_action_sort) {
if($this->category_action_publish) {
?>
<div class="hkm_category_publish">
<a class="hikabtn hikabtn-mini hikabtn-<?php echo
($category->category_published) ? 'success' :
'danger'; ?> hkm_publish_button"
data-toggle-state="<?php echo $category->category_published ? 1
: 0; ?>" data-toggle-id="<?php echo
$category->category_id; ?>" onclick="return
window.localPage.toggleCategory(this);"><?php
echo ($category->category_published) ? $publish_content :
$unpublish_content;
?></a>
</div>
<?php
} else {
?>
<div class="hkm_category_publish">
<span class="hkm_publish_state hk-label hk-label-<?php
echo ($category->category_published) ? 'green' :
'red'; ?>"><?php echo
($category->category_published) ? $publish_content : $unpublish_content;
?></span>
</div>
<?php
}
}
if(!empty($this->fields)) {
$fields = array();
foreach($this->fields as $fieldName => $oneExtraField) {
$r = $this->fieldsClass->show($oneExtraField,
$category->$fieldName);
if(empty($r))
continue;
$fields[] = '<dt
class="hkm_category_field_'.$fieldName.'">'.$this->fieldsClass->trans($oneExtraField->field_realname).'</dt><dd
class="hkm_category_field_'.$fieldName.'">'.$r.'</dd>';
}
if(!empty($fields)) {
?>
<dl class="hikam_options
hkm_category_fields"><?php
echo implode("\r\n", $fields);
unset($fields);
?></dl>
<?php
}
}
?>
</div>
<?php
if($this->category_action_sort) {
?>
<div class="hkc-sm-3 hkm_category_order">
<div class="hk-input-group">
<div class="hk-input-group-prepend">
<a class="hikabtn" href="#up"
data-ordering="-1" data-ordering-id="<?php echo
(int)$category->category_id; ?>" onclick="return
window.localPage.orderingCategory(this);"><i class="fas
fa-arrow-up"></i></a>
</div>
<input type="text" class="hk-form-control
hkm_order_value" size="3" name="order[<?php echo
$category->category_id; ?>]" value="<?php echo
(int)@$category->category_ordering; ?>" />
<div class="hk-input-group-append">
<a class="hikabtn" href="#down"
data-ordering="1" data-ordering-id="<?php echo
(int)$category->category_id; ?>" onclick="return
window.localPage.orderingCategory(this);"><i class="fas
fa-arrow-down"></i></a>
</div>
</div>
</div>
<?php
} else {
?>
<div class="hkc-sm-3 hkm_category_publish">
<?php
if($this->category_action_publish) {
?>
<a class="hikabtn hikabtn-<?php echo
($category->category_published) ? 'success' :
'danger'; ?> hkm_publish_button"
data-toggle-state="<?php echo $category->category_published ? 1
: 0; ?>" data-toggle-id="<?php echo
$category->category_id; ?>" onclick="return
window.localPage.toggleCategory(this);"><?php
echo ($category->category_published) ? $publish_content :
$unpublish_content;
?></a>
<?php
} else {
?>
<span class="hkm_publish_state hk-label hk-label-<?php echo
($category->category_published) ? 'green' : 'red';
?>"><?php echo ($category->category_published) ?
$publish_content : $unpublish_content; ?></span>
<?php
}
?>
</div>
<?php
}
?>
<div class="hkc-sm-2 hkm_category_actions"><?php
$data = array(
'browse' => array(
'name' => '<i class="fas
fa-folder-open"></i> ' .
JText::_('HIKA_BROWSE_CATEGORY', true),
'link' => $browse_url
)
);
if($this->manage) {
$data['details'] = array(
'name' => '<i class="fas
fa-search"></i> ' . JText::_('HIKA_DETAILS',
true),
'link' => $url
);
}
if($this->category_action_delete &&
hikamarket::isVendorCategory($category->category_id)) {
$data[] = '-';
$data['delete'] = array(
'name' => '<i class="fas
fa-trash"></i> ' . JText::_('HIKA_DELETE',
true),
'link' => '#delete',
'click' => 'return
window.localPage.deleteCategory('.(int)$category->category_id.',
\''.urlencode(strip_tags($category->category_name)).'\');'
);
}
if(!empty($data)) {
echo $this->dropdownHelper->display(
JText::_('HIKA_ACTIONS'),
$data,
array('type' => '', 'class' =>
'hikabtn-primary', 'right' => true, 'up'
=> false)
);
}
?></div>
</div>
</div>
</div>
<?php
}
?>
<div class="hikamarket_pagination">
<?php echo $this->pagination->getListFooter(); ?>
<?php echo $this->pagination->getResultsCounter(); ?>
</div>
<?php
} else {
?>
<div class="hk-well hikam_no_categories">
<p><?php echo
JText::_('HIKAM_EMPTY_CATEGORY_LISTING'); ?></p>
</div>
<?php
}
?>
</div>
<input type="hidden" name="Itemid"
value="<?php echo $this->Itemid; ?>" />
<input type="hidden" name="cid"
value="<?php echo $this->cid; ?>" />
<input type="hidden" name="option"
value="<?php echo HIKAMARKET_COMPONENT; ?>" />
<input type="hidden" name="task"
value="listing" />
<input type="hidden" name="ctrl"
value="<?php echo hikaInput::get()->getCmd('ctrl');
?>" />
<?php echo JHTML::_( 'form.token' ); ?>
</form>
<?php if($this->category_action_publish) { ?>
<script type="text/javascript">
if(!window.localPage) window.localPage = {};
window.localPage.toggleCategory = function(el) {
var w=window, d=document, o=w.Oby,
state = el.getAttribute('data-toggle-state'),
id = el.getAttribute('data-toggle-id');
if(!id) return false;
var url="<?php echo
hikamarket::completeLink('toggle','ajax',true);?>",
v = (state == 0) ? 1 : 0,
data=o.encodeFormData({"task":"category_published-"+id,"value":v,"table":"category","<?php
echo hikamarket::getFormToken(); ?>":1});
el.disabled = true;
if(state == 1) el.innerHTML = "<i class=\"fas fa-spinner
fa-pulse\"></i> <?php echo
JText::_('HIKA_UNPUBLISHING', true); ?>";
else el.innerHTML = "<i class=\"fas fa-spinner
fa-pulse\"></i> <?php echo
JText::_('HIKA_PUBLISHING', true); ?>";
el.classList.remove("hikabtn-success",
"hikabtn-danger");
o.xRequest(url,{mode:"POST",data:data},function(x,p){
if(x.responseText && x.responseText == '1')
state = v;
el.disabled = false;
el.setAttribute('data-toggle-state', v);
if(state == 1) el.innerHTML = "<i class=\"fas
fa-check\"></i> <?php echo
JText::_('HIKA_PUBLISHED', true); ?>";
else el.innerHTML = "<i class=\"fas
fa-times\"></i> <?php echo
JText::_('HIKA_UNPUBLISHED', true); ?>";
el.classList.add( state ? "hikabtn-success" :
"hikabtn-danger" );
});
};
</script>
<?php } ?>
<?php if($this->category_action_sort) { ?>
<script type="text/javascript">
if(!window.localPage) window.localPage = {};
window.localPage.orderingCategory = function(el) {
var id = el.getAttribute('data-ordering-id'),
direction = el.getAttribute('data-ordering') ==
'-1';
if(!id) return false;
var block =
document.querySelector('[data-hkm-category="'+id+'"]');
if(!block) return false;
var input =
block.querySelector('input[name="order['+id+']"]');
if(!input) return false;
<?php if($this->pageInfo->filter->order->value ==
'category.category_ordering') { ?>
var switchBlock = (direction) ? block.previousElementSibling :
block.nextElementSibling;
if(!switchBlock) return false;
var switchId = switchBlock.getAttribute('data-hkm-category'),
switchInput =
switchBlock.querySelector('input[name="order['+switchId+']"]');
if(direction)
block.parentNode.insertBefore(block, switchBlock);
else
switchBlock.parentNode.insertBefore(switchBlock, block);
var i = input.value;
input.value = switchInput.value;
switchInput.value = i;
<?php } else { ?>
var value = parseInt(input.value);
if(isNaN(value)) value = 1;
value += (direction ? -1 : 1);
if(value < 1) value = 1;
input.value = value;
<?php } ?>
return false;
};
</script>
<?php } ?>
<?php if($this->category_action_delete) { ?>
<script type="text/javascript">
if(!window.localPage) window.localPage = {};
window.localPage.deleteCategory = function(id, name) {
var confirmMsg = "<?php echo
JText::_('CONFIRM_DELETE_CATEGORY_X'); ?>";
if(!confirm(confirmMsg.replace('{CATEGORY}', decodeURI(name))))
return false;
var f = document.forms['hikamarket_delete_category_form'];
if(!f) return false;
f.category_id.value = id;
f.submit();
return false;
};
</script>
<form action="<?php echo
hikamarket::completeLink('category&task=delete'); ?>"
method="post" name="hikamarket_delete_category_form"
id="hikamarket_delete_category_form">
<input type="hidden" name="option"
value="<?php echo HIKAMARKET_COMPONENT; ?>" />
<input type="hidden" name="task"
value="delete" />
<input type="hidden" name="ctrl"
value="<?php echo hikaInput::get()->getCmd('ctrl');
?>" />
<input type="hidden" name="Itemid"
value="<?php echo $this->Itemid; ?>" />
<input type="hidden" name="category_id"
value="0" />
<?php echo JHTML::_('form.token'); ?>
</form>
<?php } ?>
</div>
PK�[��!k��%views/categorymarket/tmpl/listing.xmlnu�[���<?xml
version="1.0" encoding="utf-8"?>
<metadata>
<state>
<name>Vendor Category listing</name>
<params addpath="/components/com_hikamarket/params">
</params>
</state>
<layout
title="COM_HIKAMARKET_CATEGORYMARKET_LISTING_DEFAULT_TITLE">
<message></message>
</layout>
<fields name="params"
addfieldpath="/components/com_hikamarket/fields">
<fieldset name="basic" label="HikaMarket
Options">
</fieldset>
</fields>
</metadata>PK�[>� �`�`"views/categorymarket/view.html.phpnu�[���<?php
/**
* @package HikaMarket for Joomla!
* @version 3.1.1
* @author Obsidev S.A.R.L.
* @copyright (C) 2011-2020 OBSIDEV. All rights reserved.
* @license GNU/GPLv3 http://www.gnu.org/licenses/gpl-3.0.html
*/
defined('_JEXEC') or die('Restricted access');
?><?php
class categorymarketViewcategorymarket extends HikamarketView {
protected $ctrl = 'category';
protected $icon = 'category';
public function display($tpl = null, $params = array()) {
$this->params =& $params;
$fct = $this->getLayout();
if(method_exists($this, $fct)) {
if($this->$fct() === false)
return;
}
parent::display($tpl);
}
public function listing() {
$app = JFactory::getApplication();
$db = JFactory::getDBO();
$config = hikamarket::config();
$this->assignRef('config', $config);
$shopConfig = hikamarket::config(false);
$singleSelection = hikaInput::get()->getInt('single', 0);
$confirm = hikaInput::get()->getInt('confirm', 1);
$defaultId = hikaInput::get()->getInt('default', 0);
$type = hikaInput::get()->getString('type',
'product,vendor,manufacturer');
$getRoot = true;
$this->paramBase =
HIKAMARKET_COMPONENT.'.'.$this->getName().'.listing';
$cid = hikamarket::getCID();
if(empty($cid))
$cid = 1;
$this->assignRef('cid', $cid);
$this->loadRef(array(
'imageHelper' => 'shop.helper.image',
'toggleClass' => 'helper.toggle',
'childdisplayType' => 'shop.type.childdisplay',
'shopCategoryType' => 'type.shop_category',
'dropdownHelper' => 'shop.helper.dropdown',
));
$vendor = hikamarket::loadVendor(true, false);
$this->assignRef('vendor', $vendor);
$vendorClass = hikamarket::get('class.vendor');
$rootCategory = $vendorClass->getRootCategory($vendor);
if(empty($rootCategory))
$rootCategory = 1;
$this->assignRef('rootCategory', $rootCategory);
$this->manage = hikamarket::acl('category/edit');
$category_parent_id = 0;
$query = 'SELECT category_id, category_left, category_right,
category_depth, category_parent_id FROM
'.hikamarket::table('shop.category').' WHERE
category_id IN
('.(int)$cid.','.(int)$rootCategory.')';
$db->setQuery($query);
$categories = $db->loadObjectList('category_id');
if(!isset($categories[$rootCategory]))
return hikamarket::deny('vendor',
JText::sprintf('HIKAM_ACTION_DENY',
JText::_('HIKAM_ERR_ROOTCATEGORY_NOT_EXIST')));
if(!isset($categories[$cid]) || (
$categories[$cid]->category_left <
$categories[$rootCategory]->category_left
||
$categories[$cid]->category_left >
$categories[$rootCategory]->category_right
)
) {
$cid = $rootCategory;
}
if($cid != $rootCategory)
$category_parent_id = $categories[$cid]->category_parent_id;
$query = 'SELECT cats.category_id, cats.category_depth,
cats.category_name, cats.category_parent_id '.
' FROM '.hikamarket::table('shop.category').'
AS cats INNER JOIN
'.hikamarket::table('shop.category').' AS basecat ON
cats.category_left <= basecat.category_left AND cats.category_right
>= basecat.category_right '.
' WHERE basecat.category_id = '.(int)$cid.' AND
cats.category_depth >=
'.$categories[$rootCategory]->category_depth.' ORDER BY
category_depth';
$db->setQuery($query);
$breadcrumb = $db->loadObjectList();
$this->assignRef('breadcrumb', $breadcrumb);
global $Itemid;
$url_itemid = '';
if(!empty($Itemid))
$url_itemid = '&Itemid='.$Itemid;
$this->assignRef('Itemid', $Itemid);
$cfg = array(
'table' => 'shop.category',
'main_key' => 'category_id',
'order_sql_value' => 'category.category_id'
);
$default_sort_value =
trim($config->get('category_listing_default_sort_value',
$cfg['order_sql_value']));
if(empty($default_sort_value))
$default_sort_value = $cfg['order_sql_value'];
$default_sort_dir =
trim($config->get('category_listing_default_sort_dir',
'asc'));
if(empty($default_sort_dir) || !in_array($default_sort_dir,
array('asc', 'desc')))
$default_sort_dir = 'asc';
$pageInfo = $this->getPageInfo($default_sort_value,
$default_sort_dir);
$filters = array();
$pageInfo->selectedType =
$app->getUserStateFromRequest($this->paramBase.'.filter_type',
'filter_type', 0, 'int');
$pageInfo->filter->order = new stdClass();
$pageInfo->filter->order->value =
$app->getUserStateFromRequest($this->paramBase.'.filter_order',
'filter_order', $cfg['order_sql_value'],
'cmd');
$pageInfo->filter->order->dir =
$app->getUserStateFromRequest($this->paramBase.'.filter_order_Dir',
'filter_order_Dir', 'asc', 'word');
$pageInfo->limit = new stdClass();
$pageInfo->limit->value =
$app->getUserStateFromRequest($this->paramBase.'.list_limit',
'limit', $app->getCfg('list_limit'), 'int'
);
if(empty($pageInfo->limit->value))
$pageInfo->limit->value = 500;
if(hikaInput::get()->getString('search') !=
$app->getUserState($this->paramBase.'.search')) {
$app->setUserState($this->paramBase.'.limitstart',0);
$pageInfo->limit->start = 0;
} else {
$pageInfo->limit->start =
$app->getUserStateFromRequest($this->paramBase.'.limitstart',
'limitstart', 0, 'int');
}
$pageInfo->search =
HikaStringHelper::strtolower($app->getUserStateFromRequest($this->paramBase.'.search',
'search', '', 'string'));
$this->assignRef('pageInfo', $pageInfo);
$filters = array();
$searchMap = array(
'category.category_name',
'category.category_id'
);
$filters[] = 'category.category_left >
'.$categories[$cid]->category_left.' AND
category.category_right < '.$categories[$cid]->category_right;
if(!$pageInfo->selectedType) {
$filters[] = 'category.category_depth =
'.($categories[$cid]->category_depth + 1);
}
if(!empty($type)) {
$type = explode(',', $type);
if($getRoot && !in_array('root', $type))
$type[] = 'root';
$types = array();
foreach($type as $t) {
$types[] = $db->Quote($t);
}
$filters[] = 'category.category_type IN
('.implode(',',$types).')';
}
$fieldsClass = hikamarket::get('shop.class.field');
$parent_cat_ids = array();
foreach($breadcrumb as $catElem) {
$parent_cat_ids[] = $catElem->category_id;
}
$field_categories = array('originals' => array($cid),
'parents' => $parent_cat_ids);
$fields =
$fieldsClass->getData('display:vendor_category_listing=1',
'category', false, $field_categories);
$this->assignRef('fields', $fields);
$this->assignRef('fieldsClass', $fieldsClass);
foreach($fields as $fieldName => $oneExtraField) {
$searchMap[] = 'category.' . $fieldName;
}
if(!empty($pageInfo->search)) {
$searchVal = '\'%' .
$db->escape(HikaStringHelper::strtolower($pageInfo->search), true) .
'%\'';
$filters[] = '(' . implode(' LIKE
'.$searchVal.' OR ',$searchMap).' LIKE
'.$searchVal . ')';
}
$order_by = ' ORDER BY category.category_left ASC';
if(!empty($pageInfo->filter->order->value)) {
$order_by = ' ORDER BY
'.$pageInfo->filter->order->value.'
'.$pageInfo->filter->order->dir;
}
$query = ' FROM
'.hikamarket::table('shop.category').' AS category
WHERE ' . implode(' AND ', $filters);
$db->setQuery('SELECT category.*'.$query.$order_by,
$pageInfo->limit->start, $pageInfo->limit->value);
$elements = $db->loadObjectList('category_id');
if(!is_numeric($defaultId)) {
$categoryClass = hikamarket::get('shop.class.category');
$categoryClass->getMainElement($defaultId);
}
$db->setQuery('SELECT COUNT(*) '.$query);
$pageInfo->elements = new stdClass();
$pageInfo->elements->total = $db->loadResult();
$pageInfo->elements->page = count($elements);
if(!empty($elements)) {
$ids = array();
foreach($elements as $element) {
$ids[] = $element->category_id;
}
$db->setQuery('SELECT * FROM
'.hikamarket::table('shop.file').' WHERE
file_type=\'category\' AND file_ref_id IN
('.implode(',',$ids).')');
$images = $db->loadObjectList();
} else {
$images = array();
}
foreach($elements as &$element) {
$element->file_path = '';
foreach($images as $image) {
if($image->file_ref_id == $element->category_id) {
$element->file_path = $image->file_path;
break;
}
}
if(empty($element->value)){
$val = str_replace(array('
',','),'_',strtoupper($element->category_name));
$element->value = JText::_($val);
if($val == $element->value) {
$element->value = $element->category_name;
}
}
$element->category_name = $element->value;
if($element->category_namekey == 'root') {
if(empty($defaultId)) {
$defaultId = $element->category_id;
}
$element->category_parent_id = -1;
}
unset($element);
}
$this->assignRef('categories', $elements);
$this->assignRef('elements', $elements); // Legacy
$this->assignRef('singleSelection', $singleSelection);
$this->assignRef('confirm', $confirm);
if(!empty($elements)) {
$category_ids = array_keys($elements);
$query = 'SELECT category_parent_id, COUNT(*) as `children` FROM
'.hikamarket::table('shop.category').' WHERE
category_parent_id IN ('.implode(',', $category_ids).')
GROUP BY category_parent_id';
$db->setQuery($query);
$stats = $db->loadObjectList('category_parent_id');
foreach($elements as $k => &$category) {
$category->children = 0;
if(!isset($stats[$k]))
continue;
$category->children = (int)$stats[$k]->children;
}
unset($category);
$query = 'SELECT category_id, COUNT(product_id) as `products` FROM
'.hikamarket::table('shop.product_category').' WHERE
category_id IN ('.implode(',', $category_ids).') GROUP
BY category_id';
$db->setQuery($query);
$stats = $db->loadObjectList('category_id');
foreach($elements as $k => &$category) {
$category->products = 0;
if(!isset($stats[$k]))
continue;
$category->products = (int)$stats[$k]->products;
}
unset($category);
}
$fieldsClass->handleZoneListing($fields, $elements);
$display_edit_root = false;
if($rootCategory > 1) {
$categoryClass = hikamarket::get('shop.class.category');
$cat = $categoryClass->get($rootCategory);
$display_edit_root = ($cat->category_type == 'vendor'
&& $cat->category_namekey == 'vendor_' .
$vendor->vendor_id);
}
$sorting_possible = false;
if($pageInfo->selectedType == 0) {
$sorting_possible = true;
} else if($category_explorer && isset($categories[$cid])) {
}
$this->category_explorer =
$this->config->get('show_category_explorer', 1);
$this->category_action_publish =
hikamarket::acl('category/edit/published');
$this->category_action_delete =
hikamarket::acl('category/delete');
$this->category_action_sort = ($vendor->vendor_id == 0 ||
$vendor->vendor_id == 1) &&
hikamarket::acl('category/sort') &&
$this->category_explorer && $sorting_possible;
$text_asc = JText::_('ASCENDING');
$text_desc = JText::_('DESCENDING');
$ordering_values = array(
'category.category_ordering' =>
JText::_('SORT_ORDERING'),
'category.category_id' => JText::_('SORT_ID'),
'category.category_name' =>
JText::_('SORT_NAME'),
);
$this->ordering_values = array();
foreach($ordering_values as $k => $v) {
if($k == 'category.category_ordering' &&
!$this->category_action_sort)
continue;
$this->ordering_values[$k.' asc'] = $v . ' '
.$text_asc;
$this->ordering_values[$k.' desc'] = $v . ' '
.$text_desc;
}
$this->full_ordering =
$this->pageInfo->filter->order->value . ' ' .
strtolower($this->pageInfo->filter->order->dir);
$this->toolbar = array(
'back' => array(
'icon' => 'back',
'fa' => 'fa-arrow-circle-left',
'name' => JText::_('HIKA_BACK'),
'url' => hikamarket::completeLink('vendor')
),
'up' => array(
'icon' => 'parent-category',
'fa' => 'fa-folder-open',
'name' => JText::_('CATEGORY_PARENT'),
'url' =>
hikamarket::completeLink('category&task=listing&cid=' .
$category_parent_id),
'display' => ($category_parent_id > 0)
),
'ordering' => array(
'icon' => 'ordering',
'fa' => 'fa-sort-amount-down',
'name' => JText::_('HIKA_SAVE_ORDER'),
'url' => '#',
'linkattribs' => 'onclick="return
hikamarket.submitform(\'saveorder\',\'adminForm\')"',
'pos' => 'right',
'display' => $this->category_action_sort
),
'edit_main' => array(
'icon' => 'category',
'fa' => 'fa-folder',
'name' => JText::_('HIKAM_EDIT_MAIN_CATEGORY'),
'url' =>
hikamarket::completeLink('category&task=edit&cid='.$rootCategory),
'pos' => 'right',
'acl' => hikamarket::acl('category/edit'),
'display' => $display_edit_root
),
'new' => array(
'icon' => 'new',
'fa' => 'fa-plus-circle',
'name' => JText::_('HIKA_NEW'),
'url' =>
hikamarket::completeLink('category&task=add&category_parent_id='.$cid),
'pos' => 'right',
'acl' => hikamarket::acl('category/add')
)
);
if($pageInfo->limit->value == 500)
$pageInfo->limit->value = 100;
$pagination = hikamarket::get('shop.helper.pagination',
$pageInfo->elements->total, $pageInfo->limit->start,
$pageInfo->limit->value);
$this->assignRef('pagination', $pagination);
$doOrdering = !$pageInfo->selectedType;
$this->assignRef('doOrdering', $doOrdering);
if($doOrdering) {
$ordering = new stdClass();
$ordering->ordering = false;
$ordering->orderUp = 'orderup';
$ordering->orderDown = 'orderdown';
$ordering->reverse = false;
if($pageInfo->filter->order->value ==
'category.category_ordering') {
$ordering->ordering = true;
if($pageInfo->filter->order->dir == 'desc') {
$ordering->orderUp = 'orderdown';
$ordering->orderDown = 'orderup';
$ordering->reverse = true;
}
}
$this->assignRef('ordering', $ordering);
}
}
public function form() {
$app = JFactory::getApplication();
$db = JFactory::getDBO();
$ctrl = '';
$this->paramBase =
HIKAMARKET_COMPONENT.'.'.$this->getName().'.edit';
$vendor = hikamarket::loadVendor(true, false);
$this->assignRef('vendor', $vendor);
$config = hikamarket::config();
$this->assignRef('config', $config);
$shopConfig = hikamarket::config(false);
$this->assignRef('shopConfig', $shopConfig);
$this->loadRef(array(
'toggleClass' => 'helper.toggle',
'popup' => 'shop.helper.popup',
'radioType' => 'shop.type.radio',
));
$category_id = hikamarket::getCID('product_id');
$categoryClass = hikamarket::get('class.category');
$vendorClass = hikamarket::get('class.vendor');
$category = new stdClass();
$category->category_description = '';
$category->category_id = $category_id;
$category->category_parent_id = 0;
$category_parent_id =
hikaInput::get()->getInt('category_parent_id', 0);
if($category_parent_id > 0)
$category->category_parent_id = $category_parent_id;
if(!empty($category_id)) {
$category = $categoryClass->getRaw($category_id, true);
$translationHelper =
hikamarket::get('shop.helper.translation');
if($translationHelper && $translationHelper->isMulti()) {
$translationHelper->load('hikashop_category',
@$category->category_id, $category);
$this->assignRef('translationHelper',
$translationHelper);
}
}
$editor = hikamarket::get('shop.helper.editor');
$editor->setEditor($config->get('editor',
''));
$editor->name = 'category_description';
$editor->content = $category->category_description;
$editor->height = 200;
if($config->get('editor_disable_buttons', 0))
$editor->options = false;
$this->assignRef('editor', $editor);
$this->assignRef('category', $category);
$categoryType = hikamarket::get('type.shop_category');
$this->assignRef('categoryType', $categoryType);
if(hikashop_level(2)) {
$joomlaAcl = hikamarket::get('type.joomla_acl');
$this->assignRef('joomlaAcl', $joomlaAcl);
}
$imageHelper = hikamarket::get('shop.helper.image');
$this->assignRef('imageHelper',$imageHelper);
$uploaderType = hikamarket::get('shop.type.uploader');
$this->assignRef('uploaderType',$uploaderType);
$rootCategory = $vendorClass->getRootCategory($vendor);
$this->assignRef('rootCategory', $rootCategory);
$isVendorRoot = ($vendor->vendor_id > 1 &&
!empty($rootCategory) && (int)$rootCategory ==
(int)@$category->category_id);
$this->assignRef('isVendorRoot', $isVendorRoot);
$fieldsClass = hikamarket::get('shop.class.field');
$fields =
$fieldsClass->getFields('display:vendor_category_edit=1',
$category, 'category', 'field&task=state');
foreach($fields as $fieldName => $extraField) {
if(empty($extraField->field_display) ||
strpos($extraField->field_display, ';vendor_category_edit=1;')
=== false) {
unset($fields[$fieldName]);
}
}
$null = array();
$fieldsClass->addJS($null, $null, $null);
$fieldsClass->jsToggle($fields, $category, 0);
$this->assignRef('fieldsClass', $fieldsClass);
$this->assignRef('fields', $fields);
$this->toolbar = array(
'cancel' => array(
'url' =>
hikamarket::completeLink('category&task=listing&cid=' .
$category->category_parent_id),
'icon' => 'back',
'fa' => 'fa-arrow-circle-left',
'name' => JText::_('HIKA_BACK')
),
'save2new' => array(
'url' => '#save_and_new',
'linkattribs' => 'onclick="return
window.hikamarket.submitform(\'save2new\',\'hikamarket_categories_form\');"',
'icon' => 'save',
'fa' => 'fa-save',
'name' => JText::_('HIKA_SAVE_NEW'),
'pos' => 'right'
),
'sep01' => array(
'sep' => true, 'pos' => 'right',
'display' => 1
),
'apply' => array(
'url' => '#apply',
'linkattribs' => 'onclick="return
window.hikamarket.submitform(\'apply\',\'hikamarket_categories_form\');"',
'icon' => 'apply',
'fa' => 'fa-check-circle',
'name' => JText::_('HIKA_APPLY'),
'pos' => 'right'
),
'save' => array(
'url' => '#save',
'linkattribs' => 'onclick="return
window.hikamarket.submitform(\'save\',\'hikamarket_categories_form\');"',
'icon' => 'save',
'fa' => 'fa-save',
'name' => JText::_('HIKA_SAVE'), 'pos'
=> 'right'
)
);
$cancel_action = hikaInput::get()->getCmd('cancel_action',
'');
if(!empty($cancel_action)) {
switch($cancel_action) {
case 'category':
if(!empty($product->product_id))
$this->toolbar['cancel']['url'] =
hikamarket::completeLink('shop.category&task=listing&cid='.$category->category_id);
break;
}
}
}
public function edit_translation() {
$language_id = hikaInput::get()->getInt('language_id', 0);
$this->assignRef('language_id', $language_id);
$category_id = hikamarket::getCID('category_id');
$config = hikamarket::config();
$this->assignRef('config', $config);
$shopConfig = hikamarket::config(false);
$this->assignRef('shopConfig', $shopConfig);
$categoryClass = hikamarket::get('class.category');
$category = $categoryClass->getRaw($category_id);
$translationHelper =
hikamarket::get('shop.helper.translation');
if($translationHelper && $translationHelper->isMulti()) {
$translationHelper->load('hikashop_category',
@$category->category_id, $category, $language_id);
$this->assignRef('translationHelper', $translationHelper);
}
$editor = hikamarket::get('shop.helper.editor');
$editor->setEditor($config->get('editor',
''));
$editor->content = @$category->category_description;
$editor->height = 300;
if($config->get('editor_disable_buttons', 0))
$editor->options = false;
$this->assignRef('editor', $editor);
$toggle = hikamarket::get('helper.toggle');
$this->assignRef('toggle', $toggle);
$this->assignRef('category', $category);
$this->toolbar = array(
array(
'url' => '#save',
'linkattribs' => 'onclick="return
window.hikamarket.submitform(\'save_translation\',\'hikamarket_translation_form\');"',
'icon' => 'save',
'fa' => 'fa-save',
'name' => JText::_('HIKA_SAVE'), 'pos'
=> 'right'
)
);
}
public function image() {
$file_id = (int)hikamarket::getCID();
$this->assignRef('cid', $file_id);
$config = hikamarket::config();
$this->assignRef('config', $config);
$element = null;
if(!empty($file_id)){
$fileClass = hikamarket::get('shop.class.file');
$element = $fileClass->get($file_id);
}
$this->assignRef('element', $element);
$category_id = hikaInput::get()->getInt('pid', 0);
$this->assignRef('category_id', $category_id);
$imageHelper = hikamarket::get('shop.helper.image');
$this->assignRef('imageHelper', $imageHelper);
$editor = hikamarket::get('shop.helper.editor');
$editor->setEditor($config->get('editor',
''));
$editor->name = 'file_description';
$editor->content = @$element->file_description;
$editor->height = 200;
if($config->get('editor_disable_buttons', 0))
$editor->options = false;
$this->assignRef('editor', $editor);
}
public function galleryimage() {
hikamarket::loadJslib('otree');
$app = JFactory::getApplication();
$config = hikamarket::config();
$this->assignRef('config', $config);
$shopConfig = hikamarket::config(false);
$this->assignRef('shopConfig', $shopConfig);
$this->paramBase =
HIKAMARKET_COMPONENT.'.'.$this->getName().'.gallery';
$vendor = hikamarket::loadVendor(true);
$uploadFolder =
ltrim(JPath::clean(html_entity_decode($shopConfig->get('uploadfolder'))),DS);
$uploadFolder = rtrim($uploadFolder,DS).DS;
$basePath = JPATH_ROOT.DS.$uploadFolder.DS;
if($vendor->vendor_id > 1) {
$basePath .= 'vendor' . $vendor->vendor_id . DS;
}
$pageInfo = new stdClass();
$pageInfo->limit = new stdClass();
$pageInfo->limit->value = $app->getUserStateFromRequest(
$this->paramBase.'.list_limit', 'limit', 20,
'int' );
$pageInfo->limit->start = $app->getUserStateFromRequest(
$this->paramBase.'.limitstart', 'limitstart', 0,
'int' );
$pageInfo->search = $app->getUserStateFromRequest(
$this->paramBase.'.search', 'search', '',
'string');
$this->assignRef('pageInfo', $pageInfo);
jimport('joomla.filesystem.folder');
if(!JFolder::exists($basePath))
JFolder::create($basePath);
$galleryHelper = hikamarket::get('shop.helper.gallery');
$galleryHelper->setRoot($basePath);
$this->assignRef('galleryHelper', $galleryHelper);
$folder = str_replace('|', '/',
hikaInput::get()->getString('folder', ''));
$destFolder = rtrim($folder, '/\\');
if(!$galleryHelper->validatePath($destFolder))
$destFolder = '';
if(!empty($destFolder)) $destFolder .= '/';
$this->assignRef('destFolder', $destFolder);
$galleryOptions = array(
'filter' => '.*' .
str_replace(array('.','?','*','$','^'),
array('\.','\?','\*','$','\^'),
$pageInfo->search) . '.*',
'offset' => $pageInfo->limit->start,
'length' => $pageInfo->limit->value
);
$this->assignRef('galleryOptions', $galleryOptions);
$treeContent = $galleryHelper->getTreeList(null, $destFolder);
$this->assignRef('treeContent', $treeContent);
$dirContent = $galleryHelper->getDirContent($destFolder,
$galleryOptions);
$this->assignRef('dirContent', $dirContent);
jimport('joomla.html.pagination');
$pagination = new JPagination( $galleryHelper->filecount,
$pageInfo->limit->start, $pageInfo->limit->value );
$this->assignRef('pagination', $pagination);
}
public function form_image_entry() {
$imageHelper = hikamarket::get('shop.helper.image');
$this->assignRef('imageHelper', $imageHelper);
}
public function addimage() {
$files_id = hikaInput::get()->get('cid', array(),
'array');
$category_id = hikaInput::get()->getInt('category_id', 0);
$output = '[]';
if(!empty($files_id)) {
hikamarket::toInteger($files_id);
$query = 'SELECT * FROM
'.hikamarket::table('shop.file').' WHERE file_id IN
('.implode(',',$files_id).')';
$db = JFactory::getDBO();
$db->setQuery($query);
$files = $db->loadObjectList();
$helperImage = hikamarket::get('shop.helper.image');
$ret = array();
foreach($files as $file) {
$params = new stdClass();
$params->category_id = $category_id;
$params->file_id = $file->file_id;
$params->file_path = $file->file_path;
$params->file_name = $file->file_name;
$ret[] = hikamarket::getLayout('categorymarket',
'form_image_entry', $params, $js);
}
if(!empty($ret)) {
$output = json_encode($ret);
}
}
$js =
'window.hikashop.ready(function(){window.parent.hikashop.submitBox({images:'.$output.'});});';
$doc = JFactory::getDocument();
$doc->addScriptDeclaration($js);
return false;
}
}
PK�[wtW�%views/characteristicmarket/index.htmlnu�[���<html><body></body></html>PK�[wtW�*views/characteristicmarket/tmpl/index.htmlnu�[���<html><body></body></html>PK�[��w�BB+views/characteristicmarket/tmpl/listing.phpnu�[���<?php
/**
* @package HikaMarket for Joomla!
* @version 3.1.1
* @author Obsidev S.A.R.L.
* @copyright (C) 2011-2020 OBSIDEV. All rights reserved.
* @license GNU/GPLv3 http://www.gnu.org/licenses/gpl-3.0.html
*/
defined('_JEXEC') or die('Restricted access');
?><div>
<form action="<?php echo
hikamarket::completeLink('characteristic&task=listing');
?>" method="post" id="adminForm"
name="adminForm">
<div class="hk-row-fluid">
<div class="hkc-md-12"><?php
echo $this->loadHkLayout('search', array(
'id' =>
'hikamarket_characteristic_listing_search',
));
?></div>
</div>
<div class="hk-row-fluid">
<div class="hkc-md-12">
<div class="expand-filters"
style="width:auto;">
<?php
if(!empty($this->vendorType))
echo $this->vendorType->display('filter_vendors',
@$this->pageInfo->filter->vendors);
?>
</div>
<div style="clear:both"></div>
</div>
</div>
<table class="hikam_listing hikam_table"
style="width:100%">
<thead>
<tr>
<th class="hikamarket_characteristic_name_title
title"><?php
echo JHTML::_('grid.sort', JText::_('HIKA_NAME'),
'characteristic.characteristic_value',
$this->pageInfo->filter->order->dir,
$this->pageInfo->filter->order->value);
?></th>
<th class="hikamarket_characteristic_alias_title
title"><?php
echo JHTML::_('grid.sort', JText::_('HIKA_ALIAS'),
'characteristic.characteristic_alias',
$this->pageInfo->filter->order->dir,
$this->pageInfo->filter->order->value);
?></th>
<?php if($this->show_vendor) { ?>
<th class="hikamarket_characteristic_brnfot_title
title"><?php
echo JText::_('HIKA_VENDOR');
?></th>
<?php } ?>
<th class="hikamarket_characteristic_valuecounter_title title
titlenum"><?php
echo JText::_('HIKAM_NB_OF_VALUES');
?></th>
<th class="hikamarket_characteristic_usedcounter_title title
titlenum"><?php
echo JText::_('HIKAM_NB_OF_USED');
?></th>
<?php if($this->characteristic_actions) { ?>
<th class="hikamarket_characteristic_actions_title title
titlenum"><?php
echo JText::_('HIKA_ACTIONS');
?></th>
<?php } ?>
<th class="hikamarket_characteristic_id_title title
titlenum">
<?php echo JHTML::_('grid.sort', JText::_( 'ID'
), 'characteristic.characteristic_id',
$this->pageInfo->filter->order->dir,
$this->pageInfo->filter->order->value ); ?>
</th>
</tr>
</thead>
<?php if(!isset($this->embbed)) {
$columns = 5;
if($this->characteristic_actions)
$columns++;
if($this->show_vendor)
$columns++;
?>
<tfoot>
<tr>
<td colspan="<?php echo $columns; ?>">
<?php echo $this->pagination->getListFooter(); ?>
<?php echo $this->pagination->getResultsCounter(); ?>
</td>
</tr>
</tfoot>
<?php } ?>
<tbody>
<?php
$k = 0;
$i = 0;
foreach($this->characteristics as $characteristic) {
$rowId =
'market_characteristic_'.$characteristic->characteristic_id;
if($this->manage)
$url =
hikamarket::completeLink('characteristic&task=show&cid='.$characteristic->characteristic_id);
?>
<tr class="row<?php echo $k; ?>" id="<?php
echo $rowId; ?>">
<td
class="hikamarket_characteristic_name_value"><?php
if(!empty($url)) echo '<a
href="'.$url.'"><i class="fas
fa-pencil-alt"
style="margin-right:4px;"></i>';
echo $this->escape($characteristic->characteristic_value);
if(!empty($url)) echo '</a>';
?></td>
<td
class="hikamarket_characteristic_alias_value"><?php
if(!empty($url)) echo '<a
href="'.$url.'">';
echo $this->escape($characteristic->characteristic_alias);
if(!empty($url)) echo '</a>';
?></td>
<?php if($this->show_vendor) { ?>
<td
class="hikamarket_characteristic_vendor_value"><?php
if(empty($characteristic->characteristic_vendor_id))
echo
'<em>'.JText::_('HIKA_NONE').'</em>';
else
echo $characteristic->vendor;
?></td>
<?php } ?>
<td
class="hikamarket_characteristic_valuecounter_value"><?php
echo (int)$characteristic->counter;
?></td>
<td
class="hikamarket_characteristic_usedcounter_value"><?php
echo (int)$characteristic->used;
?></td>
<?php if($this->characteristic_actions) { ?>
<td
class="hikamarket_characteristic_actions_value"><?php
if($this->characteristic_action_delete &&
($this->vendor->vendor_id <= 1 || $this->vendor->vendor_id
== $characteristic->characteristic_vendor_id) &&
empty($characteristic->used))
echo $this->toggleClass->delete($rowId,
(int)$characteristic->characteristic_id, 'characteristic',
true);
else
echo '-';
?></td>
<?php } ?>
<td class="hikamarket_characteristic_id_value"><?php
echo $characteristic->characteristic_id; ?></td>
</tr>
<?php
$i++;
$k = 1 - $k;
}
?>
</tbody>
</table>
<input type="hidden" name="Itemid"
value="<?php echo $this->Itemid; ?>" />
<input type="hidden" name="option"
value="<?php echo HIKAMARKET_COMPONENT; ?>" />
<input type="hidden" name="task"
value="listing" />
<input type="hidden" name="ctrl"
value="<?php echo hikaInput::get()->getCmd('ctrl');
?>" />
<input type="hidden" name="boxchecked"
value="0" />
<input type="hidden" name="filter_order"
value="<?php echo
$this->pageInfo->filter->order->value; ?>" />
<input type="hidden" name="filter_order_Dir"
value="<?php echo $this->pageInfo->filter->order->dir;
?>" />
<?php echo JHTML::_( 'form.token' ); ?>
</form>
</div>
PK�[�=W��+views/characteristicmarket/tmpl/listing.xmlnu�[���<?xml
version="1.0" encoding="utf-8"?>
<metadata>
<state>
<name>Vendor Characteristic listing</name>
<params addpath="/components/com_hikamarket/params">
<param name="options" type="selectoptions"
default="module" label="options"
description="HikaMarket options" />
</params>
</state>
<layout
title="COM_HIKAMARKET_CHARACTERISTICMARKET_LISTING_DEFAULT_TITLE">
<message></message>
</layout>
<fields name="params"
addfieldpath="/components/com_hikamarket/fields">
<fieldset name="basic" label="HikaMarket
Options">
<field id="options" name="options"
type="selectoptions" label="options"
description="HikaMarket options" />
</fieldset>
</fields>
</metadata>PK�[IK_�>�>(views/characteristicmarket/tmpl/show.phpnu�[���<?php
/**
* @package HikaMarket for Joomla!
* @version 3.1.1
* @author Obsidev S.A.R.L.
* @copyright (C) 2011-2020 OBSIDEV. All rights reserved.
* @license GNU/GPLv3 http://www.gnu.org/licenses/gpl-3.0.html
*/
defined('_JEXEC') or die('Restricted access');
?><script type="text/javascript">
window.characteristicMgr = {};
window.characteristicMgr.cpt = {};
</script>
<form action="<?php echo
hikamarket::completeLink('characteristic');?>"
method="post" name="adminForm"
id="adminForm">
<dl class="hikam_options large">
<dt
class="hikamarket_characteristic_name"><label><?php
echo JText::_('HIKA_NAME'); ?></label></dt>
<dd class="hikamarket_characteristic_name">
<?php if(hikamarket::acl('characteristic/edit/value')
&& $this->editable_characteristic) { ?>
<input type="text" size="45"
name="data[characteristic][characteristic_value]"
value="<?php echo
$this->escape(@$this->characteristic->characteristic_value);
?>" />
<?php } else { ?>
<span><?php echo
$this->escape(@$this->characteristic->characteristic_value);
?></span>
<?php } ?>
</dd>
<?php if(hikamarket::acl('characteristic/edit/alias')
&& $this->editable_characteristic) { ?>
<dt
class="hikamarket_characteristic_alias"><label><?php
echo JText::_('HIKA_ALIAS'); ?></label></dt>
<dd class="hikamarket_characteristic_alias"><input
type="text" size="45"
name="data[characteristic][characteristic_alias]"
value="<?php echo
$this->escape(@$this->characteristic->characteristic_alias);
?>" /></dd>
<?php } ?>
<?php if($this->vendor->vendor_id <= 1 &&
hikamarket::acl('characteristic/edit/vendor')) { ?>
<dt
class="hikamarket_characteristic_vendor"><label><?php
echo JText::_('HIKA_VENDOR'); ?></label></dt>
<dd class="hikamarket_characteristic_vendor"><?php
echo $this->nameboxType->display(
'data[characteristic][characteristic_vendor_id]',
@$this->characteristic->characteristic_vendor_id,
hikamarketNameboxType::NAMEBOX_SINGLE,
'vendor',
array(
'delete' => true,
'default_text' =>
'<em>'.JText::_('HIKA_NONE').'</em>'
)
);
?></dd>
<?php } ?>
<?php if(hikamarket::acl('characteristic/edit/display')
&&
in_array($this->shopConfig->get('characteristic_display'),
array('dropdown','radio'))) { ?>
<dt
class="hikamarket_characteristic_display"><label><?php
echo JText::_('CHARACTERISTIC_DISPLAY_MODE');
?></label></dt>
<dd class="hikamarket_characteristic_display"><?php
echo
$this->characteristicdisplayType->display('data[characteristic][characteristic_display_method]',
@$this->characteristic->characteristic_display_method,
'characteristic');
?></dd>
<?php } ?>
<?php if(!empty($this->characteristic->characteristic_id)) {
?>
<dt
class="hikamarket_characteristic_counter"><label><?php
echo JText::_('HIKAM_NB_OF_USED');
?></label></dt>
<dd class="hikamarket_characteristic_counter"><?php
if(empty($this->used_counter))
echo '<span class="order-label
order-label-created">';
else
echo '<span class="order-label
order-label-confirmed">';
echo (int)$this->used_counter;
echo '</span>';
?></dd>
<?php } ?>
</dl>
<h2><?php echo JText::_('CHARACTERISTIC_VALUES');
?></h2>
<?php
if(!empty($this->characteristic->characteristic_id)) {
if(!HIKASHOP_RESPONSIVE) {
?> <table class="hikam_filter">
<tr>
<td width="100%">
<?php echo JText::_('FILTER'); ?>:
<input type="text" name="search"
id="hikamarket_characteristic_listing_search"
value="<?php echo
$this->escape($this->pageInfo->search);?>"
class=""/>
<button class="hikabtn"
onclick="this.form.submit();"><i class="fas
fa-search"></i></button>
<button class="hikabtn"
onclick="document.getElementById('hikamarket_characteristic_listing_search').value='';this.form.submit();"><i
class="fas fa-times"></i></button>
</td>
<td nowrap="nowrap">
<?php } else {?>
<div class="row-fluid">
<div class="span8">
<div class="input-prepend input-append">
<span class="add-on"><i
class="icon-filter"></i></span>
<input type="text" name="search"
id="hikamarket_characteristic_listing_search"
value="<?php echo
$this->escape($this->pageInfo->search);?>"
class=""/>
<button class="hikabtn"
onclick="this.form.submit();"><i
class="icon-search"></i></button>
<button class="hikabtn"
onclick="document.getElementById('hikamarket_characteristic_listing_search').value='';this.form.submit();"><i
class="icon-remove"></i></button>
</div>
</div>
<div class="span4">
<div class="expand-filters"
style="width:auto;float:right">
<?php }
if(!empty($this->vendorType) && $this->show_vendor
&& ($this->vendor->vendor_id == 0 ||
$this->vendor->vendor_id == 1))
echo $this->vendorType->display('filter_vendors',
@$this->pageInfo->filter->vendors);
if(!HIKASHOP_RESPONSIVE) { ?>
</td>
</tr>
</table>
<?php } else {?>
</div>
<div style="clear:both"></div>
</div>
</div>
<?php
}
}
if(hikamarket::acl('characteristic/values/edit')) {
?>
<div>
<button onclick="return
window.characteristicMgr.addValue(this);" class="hikabtn
hikabtn-success"><i class="fas fa-plus"></i>
<?php echo JText::_('HIKAM_ADD_VALUE'); ;?></button>
</div>
<?php
if(!empty($this->characteristic->characteristic_id)) {
//(int)$this->characteristic->characteristic_id > 0) {
?>
<div id="market_characteristic_add_value"
style="display:none;">
<dl>
<dt><?php echo JText::_('HIKA_NAME');
?></dt>
<dd><input type="text" size="30"
style="min-width:60%" name=""
id="market_characteristic_add_value_input"
value=""/></dd>
<?php if($this->show_vendor && $this->vendor->vendor_id
<= 1) { ?>
<dt><?php echo JText::_('HIKA_VENDOR');
?></dt>
<dd><?php
echo $this->nameboxType->display(
'',
0,
hikamarketNameboxType::NAMEBOX_SINGLE,
'vendor',
array(
'delete' => true,
'id' =>
'market_characteristic_add_value_vendor',
'default_text' =>
'<em>'.JText::_('HIKA_NONE').'</em>'
)
);
?></dd>
<?php } ?>
</dl>
<div style="float:right">
<button onclick="return
window.characteristicMgr.createValue();" class="hikabtn
hikabtn-success"><i class="fas fa-check"></i>
<?php echo JText::_('HIKA_SAVE'); ;?></button>
</div>
<button onclick="return
window.characteristicMgr.cancelAddValue();" class="hikabtn
hikabtn-danger"><i class="far
fa-times-circle"></i> <?php echo
JText::_('HIKA_CANCEL'); ;?></button>
<div style="clear:both"></div>
</div>
<?php
}
}
echo $this->loadTemplate('listing');
if(hikamarket::acl('characteristic/values/edit') ||
hikamarket::acl('characteristic/values/add')) {
?>
<div id="market_characteristic_value_edit_tpl"
style="display:none;">
<div class="hk-input-group">
<input type="text" size="30"
class="hk-form-control" style="min-width:60%"
name="{NAME}" id="{INPUT_ID}"
value="{VALUE}"/>
<div class="hk-input-group-append">
<a href="#save" class="hikabtn"
onclick="return
window.characteristicMgr.saveValue(this,{ID});"><i
class="fas fa-check"></i> <span
class="hikam_btn_text"><?php echo
JText::_('HIKA_SAVE'); ?></span></a>
<a href="#cancel" class="hikabtn"
onclick="return
window.characteristicMgr.cancelValue(this,{ID});"><i
class="fas fa-times-circle"></i> <span
class="hikam_btn_text"><?php echo
JText::_('HIKA_CANCEL'); ?></span></a>
</div>
</div>
</div>
<?php if($this->show_vendor && $this->vendor->vendor_id
<= 1) { ?>
<div id="market_characteristic_vendor_edit_tpl"
style="display:none;"><?php
echo $this->nameboxType->display(
'{VENDOR_INPUT}',
0,
hikamarketNameboxType::NAMEBOX_SINGLE,
'vendor',
array(
'delete' => true,
'default_text' => JText::_('HIKA_NONE')
)
);
?></div>
<?php } ?>
<script type="text/javascript">
window.characteristicMgr.edit = function(el, id) {
var d = document, tpl =
d.getElementById('market_characteristic_value_edit_tpl'),
e = d.getElementById('market_characteristic_value_' + id);
if(!tpl || !e) return false;
var ev = e.childNodes[0], ee = e.childNodes[1], value = '', html
= '';
ev.style.display = 'none';
for(var n in ev.childNodes[0].childNodes) {
if(ev.childNodes[0].childNodes[n] &&
typeof(ev.childNodes[0].childNodes[n]) == 'object') {
n = ev.childNodes[0].childNodes[n];
if(n.tagName.toLowerCase() == 'span' && n.className ==
'value')
value = n.innerHTML;
}
}
var htmlblocks = {
'{ID}': id,
'{INPUT_ID}':
'market_characteristic_value_input_'+id,
'{NAME}':
'data[characteristic_value]['+id+'][value]',
'{VALUE}': value
};
html = tpl.innerHTML;
for(var k in htmlblocks) {
if(htmlblocks.hasOwnProperty(k))
html = html.replace(new RegExp(k,"g"), htmlblocks[k]);
}
ee.innerHTML = html;
<?php if($this->show_vendor && $this->vendor->vendor_id
<= 1) { ?>
tpl =
d.getElementById('market_characteristic_vendor_edit_tpl');
e = d.getElementById('market_characteristic_vendor_' + id);
if(!tpl || !e) return false;
ev = e.childNodes[0]; ee = e.childNodes[1];
var name = ''; value = 0;
if(e.getAttribute('data-vendor_id')) {
value = parseInt(e.getAttribute('data-vendor_id'));
if(value !== NaN && value > 0) {
name = ev.innerHTML;
} else
value = 0;
}
ev.style.display = 'none';
htmlblocks = {
'id="{VENDOR_INPUT}':
'id="data_vendor_value_'+id,
'\'{VENDOR_INPUT}':
'\'data_vendor_value_'+id,
'{VENDOR_INPUT}':
'data[characteristic_value]['+id+'][vendor]'
};
html = tpl.innerHTML;
for(var k in htmlblocks) {
if(htmlblocks.hasOwnProperty(k))
html = html.replace(new RegExp(k,"g"), htmlblocks[k]);
}
ee.innerHTML = html;
new window.oNamebox(
'data_vendor_value_' + id,
window.oNameboxes['{VENDOR_INPUT}'].data,
window.oNameboxes['{VENDOR_INPUT}']._conf
);
if(value > 0)
window.oNameboxes['data_vendor_value_' + id].set(name, value);
<?php } ?>
return false;
};
window.characteristicMgr.cancelValue = function(el, id) {
var d = document, e =
d.getElementById('market_characteristic_value_' + id);
if(!e) return false;
var ev = e.childNodes[0], ee = e.childNodes[1];
ee.innerHTML = '';
ev.style.display = '';
<?php if($this->show_vendor) { ?>
e = d.getElementById('market_characteristic_vendor_' + id);
if(!e) return false;
if(window.oNameboxes &&
window.oNameboxes['data_vendor_value_' + id])
window.oNameboxes['data_vendor_value_' + id].destroy();
ev = e.childNodes[0]; ee = e.childNodes[1];
if(ee) ee.innerHTML = '';
if(ev) ev.style.display = '';
<?php } ?>
return false;
};
<?php if(!empty($this->characteristic->characteristic_id)) {
?>
window.characteristicMgr.saveValue = function(el, id) {
var d = document, w = window, o = w.Oby, data = null,
e = d.getElementById('market_characteristic_value_' + id),
url = '<?php echo
hikamarket::completeLink('characteristic&task=apply&characteristic_parent_id='.$this->characteristic->characteristic_id.'&characteristic_id={ID}&tmpl=json',
false, false, true); ?>';
if(!e) return false;
data = o.getFormData(e) + '&<?php echo
hikamarket::getFormToken(); ?>=1';
o.xRequest(url.replace('{ID}', id), {mode:'POST',
data:data}, function(x){
var data = o.evalJSON(x.responseText);
if(data && !data.err && data.id && data.id >
0) {
e = d.getElementById('market_characteristic_value_' + id);
var ev = e.childNodes[0], n = null,
input = d.getElementById('market_characteristic_value_input_'
+ id);
for(var n in ev.childNodes[0].childNodes) {
if(ev.childNodes[0].childNodes[n] &&
typeof(ev.childNodes[0].childNodes[n]) == 'object') {
n = ev.childNodes[0].childNodes[n];
if(n.tagName.toLowerCase() == 'span' && n.className
== 'value')
n.innerHTML = input.value; //
.replace(/</g,'<');
}
}
<?php if($this->show_vendor && $this->vendor->vendor_id
<= 1) { ?>
e = d.getElementById('market_characteristic_vendor_' + id);
if(!e) return;
ev = e.childNodes[0];
input =
d.getElementById('data_vendor_value_'+id+'_valuehidden');
if(input && input.value != '0' && input.value
!= '') {
var vendor_id = parseInt(input.value);
if(vendor_id !== NaN) {
input =
d.getElementById('data_vendor_value_'+id+'_valuetext');
e.setAttribute('data-vendor_id', vendor_id);
ev.innerHTML = input.innerHTML;
//.replace(/</g,'<');
}
}
<?php } ?>
}
w.characteristicMgr.cancelValue(el,id);
}, function(x){
});
return false;
};
window.characteristicMgr.addValue = function(el) {
var e =
document.getElementById('market_characteristic_add_value');
if(e) e.style.display = '';
return false;
};
window.characteristicMgr.createValue = function(el) {
var d = document, w = window, o = w.Oby,
url = '<?php echo
hikamarket::completeLink('characteristic&task=addCharacteristic&characteristic_parent_id='
. $this->characteristic->characteristic_id .
'&characteristic_type=value&tmpl=json', false, false,
true); ?>',
data = '<?php echo hikamarket::getFormToken(); ?>=1',
el =
d.getElementById('market_characteristic_add_value_input');
if(!el.value || el.value.length == 0)
return false;
data += '&value=' + encodeURI(el.value);
<?php if($this->show_vendor && $this->vendor->vendor_id
<= 1) { ?>
el =
d.getElementById('market_characteristic_add_value_vendor_valuehidden');
if(el && el.value && el.value.length > 0)
data += '&characteristic_vendor_id=' +
encodeURI(el.value);
<?php } ?>
o.xRequest(url, {mode:'POST',data:data}, function(xhr,params) {
var data = o.evalJSON(xhr.responseText);
if(data === false || data === null) return;
if(data.err) return;
var blocks = {
'ID': data.value,
'VALUE': data.name,
'VENDOR_ID': 0,
'VENDOR': ''
};
if(data.vendor_id) blocks['VENDOR_ID'] = data.vendor_id;
if(data.vendor) blocks['VENDOR'] = data.vendor;
w.hikashop.dup('market_characteristic_tpl', blocks,
'market_characteristic_' + data.value);
var tpl = d.getElementById('market_characteristic_tpl');
if(tpl) tpl.className = (tpl.className == 'row0') ?
'row1' : 'row0';
w.characteristicMgr.cancelAddValue(el);
});
return false;
};
window.characteristicMgr.cancelAddValue = function(el) {
var e =
document.getElementById('market_characteristic_add_value');
if(e) e.style.display = 'none';
return false;
};
<?php } else { ?>
window.characteristicMgr.addValue = function(el) {
var d = document, w = window, tpl = null, uuid = Date.now(),
blocks = {UUID: uuid, VENDOR:''};
<?php if($this->show_vendor && $this->vendor->vendor_id
<= 1) { ?>
tpl =
d.getElementById('market_characteristic_vendor_edit_tpl');
if(tpl) {
var html = tpl.innerHTML;
html = html.replace(new RegExp('id="{VENDOR_INPUT}',
'g'), 'id="data_vendor_value_'+uuid);
html = html.replace(new RegExp('\'{VENDOR_INPUT}',
'g'), '\'data_vendor_value_'+uuid);
html = html.replace(new RegExp('{VENDOR_INPUT}',
'g'), 'data[values][vendor][]');
blocks['VENDOR'] = html;
}
<?php } ?>
w.hikashop.dup('market_characteristic_tpl', blocks,
'market_characteristic_'+uuid);
<?php if($this->show_vendor && $this->vendor->vendor_id
<= 1) { ?>
new window.oNamebox(
'data_vendor_value_' + uuid,
window.oNameboxes['{VENDOR_INPUT}'].data,
window.oNameboxes['{VENDOR_INPUT}']._conf
);
<?php } ?>
tpl = d.getElementById('market_characteristic_tpl');
if(tpl) tpl.className = (tpl.className == 'row0') ?
'row1' : 'row0';
return false;
};
<?php } ?>
</script>
<?php
} // End ACL characteristic_values_edit || characteristic_values_add
?>
<input type="hidden" name="cid"
value="<?php echo @$this->characteristic->characteristic_id;
?>"/>
<input type="hidden" name="option"
value="<?php echo HIKAMARKET_COMPONENT; ?>"/>
<input type="hidden" name="task"
value="show"/>
<input type="hidden" name="ctrl"
value="characteristic"/>
<input type="hidden" name="filter_order"
value="<?php echo
$this->pageInfo->filter->order->value; ?>" />
<input type="hidden" name="filter_order_Dir"
value="<?php echo $this->pageInfo->filter->order->dir;
?>" />
<?php echo JHTML::_('form.token'); ?>
</form>
PK�[�%�M��0views/characteristicmarket/tmpl/show_listing.phpnu�[���<?php
/**
* @package HikaMarket for Joomla!
* @version 3.1.1
* @author Obsidev S.A.R.L.
* @copyright (C) 2011-2020 OBSIDEV. All rights reserved.
* @license GNU/GPLv3 http://www.gnu.org/licenses/gpl-3.0.html
*/
defined('_JEXEC') or die('Restricted access');
?><table class="hikam_listing <?php echo
(HIKASHOP_RESPONSIVE)?'table table-striped
table-hover':'hikam_table'; ?>"
style="width:100%">
<thead>
<tr>
<th class="hikamarket_characteristic_name_title
title"><?php
echo JHTML::_('grid.sort', JText::_('HIKA_NAME'),
'characteristic.characteristic_value',
$this->pageInfo->filter->order->dir,
$this->pageInfo->filter->order->value);
if($this->show_vendor)
echo ' / ' . JText::_('HIKA_VENDOR');
?></th>
<?php if($this->characteristic_ordering) { ?>
<th class="hikamarket_characteristic_ordering_title title
titlenum"><?php
echo JHTML::_('grid.sort', JText::_('ORDERING'),
'characteristic.characteristic_ordering',
$this->pageInfo->filter->order->dir,
$this->pageInfo->filter->order->value );
?></th>
<?php } ?>
<th class="hikamarket_characteristic_usedcounter_title title
titlenum"><?php
echo JText::_('HIKAM_NB_OF_USED');
?></th>
<?php if($this->characteristic_actions) { ?>
<th class="hikamarket_characteristic_actions_title title
titlenum"><?php
echo JText::_('HIKA_ACTIONS');
?></th>
<?php } ?>
<th class="hikamarket_characteristic_id_title title
titlenum"><?php
echo JHTML::_('grid.sort', JText::_('ID'),
'characteristic.characteristic_id',
$this->pageInfo->filter->order->dir,
$this->pageInfo->filter->order->value );
?></th>
</tr>
</thead>
<?php ?>
<tbody>
<?php
$k = 0;
$i = 0;
foreach($this->characteristic->values as $characteristic) {
$rowId =
'market_characteristic_'.$characteristic->characteristic_id;
$editable = ($this->vendor->vendor_id <= 1 ||
$characteristic->characteristic_vendor_id ==
$this->vendor->vendor_id);
?>
<tr class="row<?php echo $k; ?>" id="<?php
echo $rowId; ?>">
<td class="hikamarket_characteristic_name_value"
id="market_characteristic_value_<?php echo
(int)$characteristic->characteristic_id;
?>"><div><?php
if($this->acl_edit_value && $editable) echo '<a
href="#edit" onclick="return
window.characteristicMgr.edit(this,
'.(int)$characteristic->characteristic_id.');"><i
class="fas fa-pencil-alt"
style="margin-right:4px;"></i>';
echo '<span
class="value">'.$characteristic->characteristic_value.'</span>';
if($this->acl_edit_value && $editable) echo
'</a>';
?></div><div></div><?php
if($this->show_vendor) {
?><div data-vendor_id="<?php echo
(int)$characteristic->characteristic_vendor_id;?>"
id="market_characteristic_vendor_<?php echo
(int)$characteristic->characteristic_id;
?>"><div><?php
if(!empty($characteristic->characteristic_vendor_id))
echo @$characteristic->vendor;
?></div><div></div></div><?php
}
?></td>
<?php if($this->characteristic_ordering) { ?>
<td class="hikamarket_characteristic_ordering_value
order">
<?php if($editable) { ?>
<input type="text" size="3"
name="data[values][ordering][]"
id="characteristic_ordering[<?php echo
(int)$characteristic->characteristic_id;?>]"
value="<?php echo
(int)$characteristic->characteristic_ordering;?>"/>
<?php } else { ?>
<span><?php echo
(int)$characteristic->characteristic_ordering; ?></span>
<?php } ?>
</td>
<?php } ?>
<td
class="hikamarket_characteristic_usedcounter_value"><?php
echo (int)@$characteristic->used;
?></td>
<?php if($this->characteristic_actions) { ?>
<td
class="hikamarket_characteristic_actions_value"><?php
if($this->characteristic_action_delete && $editable
&& (int)@$characteristic->used == 0 &&
($this->vendor->vendor_id <= 1 || $this->vendor->vendor_id
== (int)$characteristic->characteristic_vendor_id))
echo $this->toggleClass->delete($rowId,
(int)$characteristic->characteristic_id . '-' .
(int)$this->characteristic->characteristic_id,
'characteristic', true);
else
echo '-';
?></td>
<?php } ?>
<td class="hikamarket_characteristic_id_value">
<?php echo (int)$characteristic->characteristic_id; ?>
<?php if($editable) { ?>
<input type="hidden" name="data[values][id][]"
value="<?php echo
(int)$characteristic->characteristic_id;?>"/>
<?php } ?>
</td>
</tr>
<?php
$i++;
$k = 1 - $k;
}
if(!empty($this->characteristic->characteristic_id)) { //
(int)$this->characteristic->characteristic_id > 0) {
?>
<tr class="row<?php echo $k; ?>"
id="market_characteristic_tpl"
style="display:none;">
<td class="hikamarket_characteristic_name_value"
id="market_characteristic_value_{ID}"><div><?php
if($this->acl_edit_value) echo '<a href="#edit"
onclick="return window.characteristicMgr.edit(this,
{ID});"><i class="fas fa-pencil-alt"
style="margin-right:4px;"></i>';
echo '<span
class="value">{VALUE}</span>';
if($this->acl_edit_value) echo '</a>';
?></div><div></div>
<?php if($this->show_vendor) { ?>
<div data-vendor_id="{VENDOR_ID}"
id="market_characteristic_vendor_{ID}"><div>{VENDOR}</div><div></div></div>
<?php } ?>
</td>
<?php if($this->characteristic_ordering) { ?>
<td class="hikamarket_characteristic_ordering_value
order">
<input type="text" size="3"
name="data[values][ordering][]"
id="characteristic_ordering[{ID}]" value="0"/>
</td>
<?php } ?>
<td
class="hikamarket_characteristic_usedcounter_value">0</td>
<?php if($this->characteristic_actions) { ?>
<td
class="hikamarket_characteristic_actions_value"><?php
if($this->characteristic_action_delete)
echo
$this->toggleClass->delete('market_characteristic_{ID}',
'{ID}', 'characteristic', true);
?></td>
<?php } ?>
<td class="hikamarket_characteristic_id_value">
{ID}
<input type="hidden" name="data[values][id][]"
value="{ID}"/>
</td>
</tr>
<?php
} else {
?>
<tr class="row<?php echo $k; ?>"
id="market_characteristic_tpl"
style="display:none;">
<td class="hikamarket_characteristic_name_value">
<div>
<input type="text" size="30"
style="min-width:60%" name="data[values][value][]"
value=""/>
</div>
<?php if($this->show_vendor) { ?>
<div>{VENDOR}</div>
<?php } ?>
</td>
<?php if($this->characteristic_ordering) { ?>
<td class="hikamarket_characteristic_ordering_value
order">
<input type="text" size="3"
name="data[values][ordering][]" value="0"/>
</td>
<?php } ?>
<td
class="hikamarket_characteristic_usedcounter_value">0</td>
<?php if($this->characteristic_actions) { ?>
<td
class="hikamarket_characteristic_actions_value"><?php
if($this->characteristic_action_delete)
echo '<a href="javascript:void(0);"
onclick="window.hikashop.deleteRow(\'market_characteristic_{UUID}\');
return false;"><i class="far
fa-trash"></i></a>';
else
echo '-';
?></td>
<?php } ?>
<td class="hikamarket_characteristic_id_value">
-
<input type="hidden" name="data[values][id][]"
value="0"/>
</td>
</tr>
<?php
}
?>
</tbody>
</table>
PK�[�(��33(views/characteristicmarket/view.html.phpnu�[���<?php
/**
* @package HikaMarket for Joomla!
* @version 3.1.1
* @author Obsidev S.A.R.L.
* @copyright (C) 2011-2020 OBSIDEV. All rights reserved.
* @license GNU/GPLv3 http://www.gnu.org/licenses/gpl-3.0.html
*/
defined('_JEXEC') or die('Restricted access');
?><?php
class characteristicmarketViewcharacteristicmarket extends hikamarketView
{
protected $ctrl = 'characteristic';
protected $icon = 'characteristic';
protected $triggerView = true;
public function display($tpl = null, $params = array()) {
$this->params =& $params;
$fct = $this->getLayout();
if(method_exists($this, $fct)) {
if($this->$fct() === false)
return;
}
parent::display($tpl);
}
public function listing($tpl = null) {
$app = JFactory::getApplication();
$db = JFactory::getDBO();
$ctrl = '';
$this->paramBase =
HIKAMARKET_COMPONENT.'.'.$this->getName().'.listing';
$vendor = hikamarket::loadVendor(true, false);
$this->assignRef('vendor', $vendor);
$config = hikamarket::config();
$this->assignRef('config', $config);
$toggleClass = hikamarket::get('helper.toggle');
$this->assignRef('toggleClass', $toggleClass);
$manage = hikamarket::acl('characteristic/edit') ||
hikamarket::acl('characteristic/show');
$this->assignRef('manage', $manage);
$show_vendor = hikamarket::level(1);
$this->assignRef('show_vendor', $show_vendor);
$characteristic_action_delete =
hikamarket::acl('characteristic/delete');
$characteristic_actions = $characteristic_action_delete;
$this->assignRef('characteristic_action_delete',
$characteristic_action_delete);
$this->assignRef('characteristic_actions',
$characteristic_actions);
global $Itemid;
$url_itemid = '';
if(!empty($Itemid))
$url_itemid = '&Itemid='.$Itemid;
$this->assignRef('Itemid', $Itemid);
$cfg = array(
'table' => 'shop.characteristic',
'main_key' => 'characteristic_id',
'order_sql_value' =>
'characteristic.characteristic_id'
);
$pageInfo = $this->getPageInfo($cfg['order_sql_value']);
$pageInfo->filter->vendors =
$app->getUserStateFromRequest($this->paramBase.'.filter_vendors',
'filter_vendors', -1, 'int');
$filters = array(
'characteristic.characteristic_parent_id = 0'
);
$searchMap = array(
'characteristic.characteristic_value',
'characteristic.characteristic_alias',
'characteristic.characteristic_id'
);
$order = '';
if($vendor->vendor_id > 1) {
$filters[] = 'characteristic.characteristic_vendor_id IN (0, '
. (int)$vendor->vendor_id.')';
} else {
$vendorType = hikamarket::get('type.filter_vendor');
$this->assignRef('vendorType', $vendorType);
if($pageInfo->filter->vendors >= 0) {
if($pageInfo->filter->vendors > 1)
$filters[] = 'characteristic.characteristic_vendor_id =
'.(int)$pageInfo->filter->vendors;
else
$filters[] = 'characteristic.characteristic_vendor_id <=
1';
}
}
$this->processFilters($filters, $order, $searchMap);
$query = 'FROM
'.hikamarket::table($cfg['table']).' AS characteristic
'.$filters.$order;
$db->setQuery('SELECT * '.$query,
(int)$pageInfo->limit->start, (int)$pageInfo->limit->value);
$rows = $db->loadObjectList();
$this->assignRef('characteristics', $rows);
$db->setQuery('SELECT COUNT(*) '.$query);
$pageInfo->elements = new stdClass();
$pageInfo->elements->total = $db->loadResult();
$pageInfo->elements->page = count($rows);
if(!empty($rows)) {
$characteristic_ids = array();
$vendor_ids = array();
foreach($rows as $row) {
$characteristic_ids[] = (int)$row->characteristic_id;
$vendor_ids[ (int)$row->characteristic_vendor_id ] =
(int)$row->characteristic_vendor_id;
}
$vendors = array();
if(!empty($vendor_ids)) {
$query = 'SELECT vendor_id, vendor_name FROM ' .
hikamarket::table('vendor') . ' WHERE vendor_id IN
('.implode(',', $vendor_ids).')';
$db->setQuery($query);
$vendors = $db->loadObjectList('vendor_id');
}
$filters = array(
'characteristic_parent_id IN ('.implode(',',
$characteristic_ids).')'
);
if($vendor->vendor_id > 1) {
$filters[] = 'characteristic_vendor_id IN (0, ' .
(int)$vendor->vendor_id.')';
}
$query = 'SELECT characteristic_parent_id, COUNT(*) as counter FROM
' . hikamarket::table('shop.characteristic') .
' WHERE '.implode(' AND ', $filters).' GROUP
BY characteristic_parent_id';
$db->setQuery($query);
$value_counter =
$db->loadObjectList('characteristic_parent_id');
$vendor_filter = '';
$vendor_join = '';
if($vendor->vendor_id > 1) {
$vendor_filter = ' AND p.product_vendor_id = ' .
(int)$vendor->vendor_id;
$vendor_join = ' INNER JOIN ' .
hikamarket::table('shop.product') . ' AS p ON
v.variant_product_id = p.product_id ';
}
$query = 'SELECT v.variant_characteristic_id,
COUNT(v.variant_product_id) as counter '.
' FROM ' . hikamarket::table('shop.variant') .
' AS v ' . $vendor_join .
' WHERE variant_characteristic_id IN
('.implode(',', $characteristic_ids).')' .
$vendor_filter .
' GROUP BY variant_characteristic_id';
$db->setQuery($query);
$used_counter =
$db->loadObjectList('variant_characteristic_id');
foreach($rows as &$row) {
$i = (int)$row->characteristic_id;
$row->vendor = '';
if((int)$row->characteristic_vendor_id > 0 &&
isset($vendors[(int)$row->characteristic_vendor_id]))
$row->vendor =
$vendors[(int)$row->characteristic_vendor_id]->vendor_name;
$row->counter = 0;
$row->used = 0;
if(isset($value_counter[$i]))
$row->counter = (int)$value_counter[$i]->counter;
if(isset($used_counter[$i]))
$row->used = (int)$used_counter[$i]->counter;
}
unset($row);
}
$this->toolbar = array(
array(
'icon' => 'back',
'fa' => 'fa-arrow-circle-left',
'name' => JText::_('HIKA_BACK'), 'url'
=> hikamarket::completeLink('vendor')),
array(
'icon' => 'new',
'fa' => 'fa-plus-circle',
'name' => JText::_('HIKA_NEW'),
'url' =>
hikamarket::completeLink('characteristic&task=add'),
'pos' => 'right',
'display' =>
hikamarket::acl('characteristic/add')
)
);
$this->getPagination();
}
public function show() {
$app = JFactory::getApplication();
$db = JFactory::getDBO();
$ctrl = '';
$this->paramBase =
HIKAMARKET_COMPONENT.'.'.$this->getName().'.edit';
JHTML::_('behavior.tooltip');
$vendor = hikamarket::loadVendor(true, false);
$this->assignRef('vendor', $vendor);
$config = hikamarket::config();
$this->assignRef('config', $config);
$shopConfig = hikamarket::config(false);
$this->assignRef('shopConfig', $shopConfig);
$show_vendor = hikamarket::level(1);
$this->assignRef('show_vendor', $show_vendor);
$this->loadRef(array(
'characteristicClass' => 'class.characteristic',
'toggleClass' => 'helper.toggle',
'nameboxType' => 'type.namebox',
'characteristicdisplayType' =>
'shop.type.characteristicdisplay'
));
$cid = hikamarket::getCID('characteristic_id');
$characteristic = $this->characteristicClass->get($cid);
$this->assignRef('characteristic', $characteristic);
$characteristic_action_delete =
hikamarket::acl('characteristic/values/delete');
$this->assignRef('characteristic_action_delete',
$characteristic_action_delete);
$characteristic_actions = $characteristic_action_delete;
$this->assignRef('characteristic_actions',
$characteristic_actions);
$characteristic_ordering =
hikamarket::acl('characteristic/values/ordering');
$this->assignRef('characteristic_ordering',
$characteristic_ordering);
$acl_edit_value =
hikamarket::acl('characteristic/values/edit');
$this->assignRef('acl_edit_value', $acl_edit_value);
$multi_language = false;
$this->assignRef('multi_language', $multi_language);
$editable_characteristic = true;
$editable_characteristic = (empty($characteristic) ||
$vendor->vendor_id <= 1 ||
$characteristic->characteristic_vendor_id == $vendor->vendor_id);
$this->assignRef('editable_characteristic',
$editable_characteristic);
$used_counter = 0;
if(!empty($characteristic)) {
$vendor_filter = '';
$vendor_join = '';
if($vendor->vendor_id > 1) {
$vendor_filter = ' AND p.product_vendor_id = ' .
(int)$vendor->vendor_id;
$vendor_join = ' INNER JOIN ' .
hikamarket::table('shop.product') . ' AS p ON
v.variant_product_id = p.product_id ';
}
$query = 'SELECT COUNT(v.variant_product_id) as counter '.
' FROM ' . hikamarket::table('shop.variant') .
' AS v ' . $vendor_join .
' WHERE variant_characteristic_id = ' . (int)$cid .
$vendor_filter .
' GROUP BY variant_characteristic_id';
$db->setQuery($query);
$used_counter = $db->loadResult('counter');
} else
$characteristic = new stdClass();
$this->assignRef('used_counter', $used_counter);
$rows = array();
$pageInfo =
$this->getPageInfo('characteristic.characteristic_id');
$pageInfo->limit->start = 0;
$pageInfo->limit->value = 500;
$pageInfo->filter->vendors =
$app->getUserStateFromRequest($this->paramBase.'.filter_vendors',
'filter_vendors', -1, 'int');
$filters = array(
'characteristic.characteristic_parent_id = ' . (int)$cid
);
$searchMap = array(
'characteristic.characteristic_value',
'characteristic.characteristic_alias',
'characteristic.characteristic_id'
);
$order = '';
if((int)$cid > 0) {
if($vendor->vendor_id > 1) {
$filters[] = 'characteristic.characteristic_vendor_id IN (0,
' . (int)$vendor->vendor_id . ')';
} else {
$vendorType = hikamarket::get('type.filter_vendor');
$this->assignRef('vendorType', $vendorType);
if($pageInfo->filter->vendors >= 0) {
if($pageInfo->filter->vendors > 1)
$filters[] = 'characteristic.characteristic_vendor_id =
'.(int)$pageInfo->filter->vendors;
else
$filters[] = 'characteristic.characteristic_vendor_id <=
1';
}
}
$this->processFilters($filters, $order, $searchMap);
$query = 'FROM
'.hikamarket::table('shop.characteristic').' AS
characteristic '.$filters.$order;
$db->setQuery('SELECT * '.$query,
(int)$pageInfo->limit->start, (int)$pageInfo->limit->value);
$rows = $db->loadObjectList();
$db->setQuery('SELECT COUNT(*) '.$query);
$pageInfo->elements = new stdClass();
$pageInfo->elements->total = $db->loadResult();
$pageInfo->elements->page = count($rows);
}
$characteristic->values = $rows;
if(!empty($rows)) {
$characteristic_ids = array();
$vendor_ids = array();
foreach($rows as $row) {
$characteristic_ids[] = (int)$row->characteristic_id;
$vendor_ids[ (int)$row->characteristic_vendor_id ] =
(int)$row->characteristic_vendor_id;
}
$vendors = array();
if(!empty($vendor_ids)) {
$query = 'SELECT vendor_id, vendor_name FROM ' .
hikamarket::table('vendor') . ' WHERE vendor_id IN
('.implode(',', $vendor_ids).')';
$db->setQuery($query);
$vendors = $db->loadObjectList('vendor_id');
}
$vendor_filter = '';
if($vendor->vendor_id > 1)
$vendor_filter = ' AND p.product_vendor_id = ' .
(int)$vendor->vendor_id;
$query = 'SELECT v.variant_characteristic_id,
COUNT(v.variant_product_id) as counter '.
' FROM ' . hikamarket::table('shop.variant') .
' AS v INNER JOIN ' . hikamarket::table('shop.product')
. ' AS p ON v.variant_product_id = p.product_id '.
' WHERE variant_characteristic_id IN
('.implode(',', $characteristic_ids).') AND
p.product_type = ' . $db->Quote('variant') .
$vendor_filter .
' GROUP BY variant_characteristic_id';
$db->setQuery($query);
$used_counter =
$db->loadObjectList('variant_characteristic_id');
foreach($rows as &$row) {
$i = (int)$row->characteristic_id;
$row->vendor = '';
if(isset($vendors[$row->characteristic_vendor_id]))
$row->vendor =
$vendors[$row->characteristic_vendor_id]->vendor_name;
$row->used = 0;
if(isset($used_counter[$i]))
$row->used = (int)$used_counter[$i]->counter;
}
unset($row);
}
$this->toolbar = array(
'back' => array(
'icon' => 'back',
'fa' => 'fa-arrow-circle-left',
'name' => JText::_('HIKA_BACK'),
'url' =>
hikamarket::completeLink('characteristic')
),
'apply' => array(
'url' => '#apply',
'fa' => 'fa-check-circle',
'linkattribs' => 'onclick="return
window.hikamarket.submitform(\'apply\',\'adminForm\');"',
'icon' => 'apply',
'name' => JText::_('HIKA_APPLY'),
'pos' => 'right',
'display' =>
hikamarket::acl('characteristic/edit')
),
'save' => array(
'url' => '#save',
'fa' => 'fa-save',
'linkattribs' => 'onclick="return
window.hikamarket.submitform(\'save\',\'adminForm\');"',
'icon' => 'save',
'name' => JText::_('HIKA_SAVE'), 'pos'
=> 'right',
'display' =>
hikamarket::acl('characteristic/edit')
)
);
}
}
PK�[wtW�views/checkoutmarket/index.htmlnu�[���<html><body></body></html>PK�[wtW�$views/checkoutmarket/tmpl/index.htmlnu�[���<html><body></body></html>PK�[��^� � #views/checkoutmarket/tmpl/terms.phpnu�[���<?php
/**
* @package HikaMarket for Joomla!
* @version 3.1.1
* @author Obsidev S.A.R.L.
* @copyright (C) 2011-2020 OBSIDEV. All rights reserved.
* @license GNU/GPLv3 http://www.gnu.org/licenses/gpl-3.0.html
*/
defined('_JEXEC') or die('Restricted access');
?><div id="hikashop_checkout_terms"
class="hikashop_checkout_terms">
<label>
<input class="hikashop_checkout_terms_checkbox"
id="hikashop_checkout_terms_checkbox" type="checkbox"
name="hikashop_checkout_terms" value="1" <?php
if(!empty($this->terms['shop'])) { echo '
checked="checked"'; } ?> />
<?php
$text = JText::_('PLEASE_ACCEPT_TERMS');
$link = '';
$width = (int)@$this->params->options['popup_width'];
if(empty($width))
$width = 450;
$height = (int)@$this->params->options['popup_height'];
if(empty($height))
$height = 480;
$terms_article =
(int)@$this->params->options['article_id'];
if(empty($terms_article))
$terms_article =
(int)$this->shopConfig->get('checkout_terms', 0);
if(!empty($this->terms_content[1]->vendor_terms)) {
$link =
hikamarket::completeLink('vendor&task=terms&cid=1',
true);
} else if(!empty($terms_article)) {
if(isset($this->step))
$link =
hikamarket::completeLink('vendor&task=terms&cid=0&step='.$this->step.'&pos='.$this->module_position,
true);
else
$link =
hikamarket::completeLink('vendor&task=terms&cid=0',
true);
}
if(!empty($link)) {
echo $this->popupHelper->display(
$text,
'HIKASHOP_CHECKOUT_TERMS',
$link,
'shop_terms_and_cond',
$width, $height, '', '', 'link'
);
} else {
echo $text;
}
?>
</label>
<?php
foreach($this->vendors as $vendor) {
if(!empty($this->terms_content[$vendor]->vendor_terms)) {
?>
<br/><label>
<input class="hikashop_checkout_terms_checkbox"
id="hikamarket_checkout_terms_checkbox_<?php echo $vendor;
?>" type="checkbox"
name="hikamarket_checkout_terms[<?php echo $vendor; ?>]"
value="1" <?php
if(!empty($this->terms['market'][$vendor])) { echo '
checked="checked"'; } ?> />
<?php
echo $this->popupHelper->display(
JText::sprintf('PLEASE_ACCEPT_TERMS_FOR_VENDOR',
$this->terms_content[$vendor]->vendor_name),
'HIKASHOP_CHECKOUT_TERMS',
hikamarket::completeLink('vendor&task=terms&cid=' .
$vendor, true),
'shop_terms_and_cond_'.$vendor,
$width, $height, '', '', 'link'
);
?>
</label>
<?php
}
}
?>
<input type="hidden" value="1"
name="hikamarket_checkout_terms_block"/>
</div>
PK�[�r����"views/checkoutmarket/view.html.phpnu�[���<?php
/**
* @package HikaMarket for Joomla!
* @version 3.1.1
* @author Obsidev S.A.R.L.
* @copyright (C) 2011-2020 OBSIDEV. All rights reserved.
* @license GNU/GPLv3 http://www.gnu.org/licenses/gpl-3.0.html
*/
defined('_JEXEC') or die('Restricted access');
?><?php
class checkoutmarketViewcheckoutmarket extends hikamarketView {
protected $ctrl = 'checkout';
protected $icon = 'checkout';
public function display($tpl = null, $params = array()) {
$this->params =& $params;
$fct = $this->getLayout();
if(method_exists($this, $fct)) {
if($this->$fct() === false)
return;
}
parent::display($tpl);
}
public function terms() {
$app = JFactory::getApplication();
$shop_terms =
$app->getUserState(HIKASHOP_COMPONENT.'.checkout_terms');
$market_terms =
$app->getUserState(HIKAMARKET_COMPONENT.'.checkout_terms');
$config = hikamarket::config();
$this->assignRef('config', $config);
$shopConfig = hikamarket::config(false);
$this->assignRef('shopConfig', $shopConfig);
$popupHelper = hikamarket::get('shop.helper.popup');
$this->assignRef('popupHelper', $popupHelper);
if(!class_exists('hikashopCheckoutHelper')) {
$cart = $this->params->view->initCart();
} else {
$checkoutHelper = hikashopCheckoutHelper::get();
$cart = $checkoutHelper->getCart();
$this->step = $this->params->view->step;
$this->module_position = $this->params->pos;
}
$vendors = array();
foreach($cart->products as $product) {
$vendor_id = (int)$product->product_vendor_id;
$vendors[$vendor_id] = $vendor_id;
}
if(!isset($vendors[1]))
$vendors[1] = 1;
$db = JFactory::getDBO();
$query = 'SELECT vendor_id, vendor_name, vendor_terms FROM
'.hikamarket::table('vendor').' WHERE vendor_published
= 1 AND vendor_id IN ('.implode(',',
$vendors).')';
$db->setQuery($query);
$terms_content = $db->loadObjectList('vendor_id');
$this->assignRef('terms_content', $terms_content);
if(isset($vendors[0])) unset($vendors[0]);
if(isset($vendors[1])) unset($vendors[1]);
$this->assignRef('vendors', $vendors);
$terms = array(
'shop' => $shop_terms,
'market' => $market_terms
);
$this->assignRef('terms', $terms);
}
}
PK�[wtW�views/discountmarket/index.htmlnu�[���<html><body></body></html>PK�[���!views/discountmarket/tmpl/add.xmlnu�[���<?xml
version="1.0" encoding="utf-8"?>
<metadata>
<state>
<name>Vendor discount creation</name>
<params addpath="/components/com_hikamarket/params">
<param name="options" type="selectoptions"
default="module" label="options"
description="HikaMarket options" />
</params>
</state>
<layout
title="COM_HIKAMARKET_DISCOUNTMARKET_ADD_DEFAULT_TITLE">
<message></message>
</layout>
<fields name="params"
addfieldpath="/components/com_hikamarket/fields">
<fieldset name="basic" label="HikaMarket
Options">
<field id="options" name="options"
type="selectoptions" label="options"
description="HikaMarket options" />
</fieldset>
</fields>
</metadata>PK�[wtW�$views/discountmarket/tmpl/index.htmlnu�[���<html><body></body></html>PK�[
*��/�/%views/discountmarket/tmpl/listing.phpnu�[���<?php
/**
* @package HikaMarket for Joomla!
* @version 3.1.1
* @author Obsidev S.A.R.L.
* @copyright (C) 2011-2020 OBSIDEV. All rights reserved.
* @license GNU/GPLv3 http://www.gnu.org/licenses/gpl-3.0.html
*/
defined('_JEXEC') or die('Restricted access');
?><div id="hikamarket_discount_listing">
<form action="<?php echo
hikamarket::completeLink('discount&task=listing');
?>" method="post" id="adminForm"
name="adminForm">
<div class="hk-row-fluid">
<div class="hkc-md-12">
<?php
echo $this->loadHkLayout('search', array(
'id' => 'hikamarket_discount_listing_search',
));
?>
<div class="hikam_sort_zone"><?php
if(!empty($this->ordering_values))
echo JHTML::_('select.genericlist',
$this->ordering_values, 'filter_fullorder',
'onchange="this.form.submit();"', 'value',
'text', $this->full_ordering);
?></div>
</div>
</div>
<div class="hk-row-fluid">
<div class="hkc-md-12">
<div class="expand-filters"
style="width:auto;">
<?php
$discount_types = array(
'' => JText::_('HIKA_ALL_DISCOUNTS'),
'discount' => JText::_('DISCOUNTS'),
'coupon' => JText::_('COUPONS'),
);
echo JHTML::_('select.genericlist', $discount_types,
'filter_type', 'data-search-reset=""
onchange="this.form.submit();"', 'value',
'text', $this->pageInfo->filter->type);
$status_types = array(
-1 => JText::_('HIKA_ALL_STATUSES'),
1 => JText::_('HIKA_PUBLISHED'),
0 => JText::_('HIKA_UNPUBLISHED'),
);
echo JHTML::_('select.genericlist', $status_types,
'filter_published', 'data-search-reset="-1"
onchange="this.form.submit();"', 'value',
'text', $this->pageInfo->filter->published);
if(!empty($this->vendorType))
echo $this->vendorType->display('filter_vendors',
@$this->pageInfo->filter->vendors);
?>
</div>
<div style="clear:both"></div>
</div>
</div>
<div id="hikam_discount_main_listing">
<?php
hikamarket::loadJslib('tooltip');
$this->loadRef(array('dropdownHelper' =>
'shop.helper.dropdown'));
$now = time();
$publish_content = '<i class="fas fa-check"></i>
' . JText::_('HIKA_PUBLISHED');
$unpublish_content = '<i class="fas
fa-times"></i> ' .
JText::_('HIKA_UNPUBLISHED');
foreach($this->discounts as $discount) {
$url = ($this->manage) ?
hikamarket::completeLink('discount&task=show&cid='.$discount->discount_id)
: null;
$extra_classes = '';
if(!empty($discount->discount_code)) {
$discount_name = $discount->discount_code;
} else {
$discount_name = '<em>' . JText::_('HIKA_NONE')
. '</em>';
if(isset($discount->discount_flat_amount) &&
$discount->discount_flat_amount > 0) {
$discount_name = '<em>' .
$this->currencyClass->displayPrices(array($discount),'discount_flat_amount','discount_currency_id')
. '</em>';
} elseif(isset($discount->discount_percent_amount) &&
$discount->discount_percent_amount > 0) {
$discount_name = '<em>' .
$discount->discount_percent_amount. '%</em>';
}
}
?>
<div class="hk-card hk-card-default hk-card-discount<?php echo
$extra_classes; ?>" data-hkm-discount="<?php echo
(int)$discount->discount_id; ?>">
<div class="hk-card-header">
<a class="hk-row-fluid" href="<?php echo $url;
?>">
<div class="hkc-sm-6 hkm_discount_name"><?php
if($discount->discount_type == 'coupon') {
echo '<i class="fas fa-receipt"></i> ';
} else {
echo '<i class="fas fa-percent"></i> ';
}
echo $discount_name;
?></div>
<div class="hkc-sm-6 hkm_discount_value"
style="text-align:right"><?php
if(isset($discount->discount_flat_amount) &&
$discount->discount_flat_amount > 0) {
echo
$this->currencyClass->displayPrices(array($discount),'discount_flat_amount','discount_currency_id');
} elseif(isset($discount->discount_percent_amount) &&
$discount->discount_percent_amount > 0) {
echo $discount->discount_percent_amount. '%';
} else {
echo JText::_('NO_DISCOUNT');
}
?></div>
</a>
</div>
<div class="hk-card-body">
<div class="hk-row-fluid">
<div class="hkc-sm-7 hkm_discount_restrictions">
<div class="hkm_discount_quota">
<?php
if(empty($discount->discount_quota))
echo '<i class="fas fa-infinity
hk-icon-green"></i> <strong>' .
JText::_('DISCOUNT_QUOTA').'</strong>
'.JText::_('UNLIMITED');
else
echo '<span
class="hk-label">'.$discount->discount_used_times.'
/ '.$discount->discount_quota. '</span>
<strong>' .
JText::_('DISCOUNT_QUOTA').'</strong>
'.JText::sprintf('X_LEFT', $discount->discount_quota -
$discount->discount_used_times);
?>
</div>
<?php
if(!empty($discount->discount_start)) {
if(!empty($discount->discount_end) &&
((int)$discount->discount_start <= $now) &&
((int)$discount->discount_start < $now))
$discount_enabled = 'far fa-calendar-alt';
else
$discount_enabled = ((int)$discount->discount_start <= $now) ?
'far fa-calendar-check hk-icon-green' : 'far
fa-calendar-times hk-icon-orange';
?>
<div class="hkm_discount_start">
<i class="<?php echo $discount_enabled;
?>"></i> <strong><?php echo
JText::_('DISCOUNT_START_DATE'); ?></strong>
<span><?php echo
hikamarket::getDate($discount->discount_start, '%Y-%m-%d
%H:%M'); ?></span>
</div>
<?php
}
?>
<?php
if(!empty($discount->discount_end)) {
if(!empty($discount->discount_start) &&
((int)$discount->discount_start > $now))
$discount_enabled = 'far fa-calendar-alt';
else
$discount_enabled = ((int)$discount->discount_end > $now) ?
'far fa-calendar-check hk-icon-green' : 'far
fa-calendar-times hk-icon-red';
?>
<div class="hkm_discount_start">
<i class="<?php echo $discount_enabled;
?>"></i> <strong><?php echo
JText::_('DISCOUNT_END_DATE'); ?></strong>
<span><?php echo
hikamarket::getDate($discount->discount_end, '%Y-%m-%d
%H:%M'); ?></span>
</div>
<?php
}
?>
<?php
if(hikashop_level(1)) {
if(!empty($discount->discount_minimum_order) &&
hikamarket::toFloat($discount->discount_minimum_order) != 0)
echo '<div class="hkm_discount_minorder"><i
class="far fa-money-bill-alt hk-icon-blue"></i>
<strong>'.JText::_('MINIMUM_ORDER_VALUE') .
'</strong> <span>' .
$this->currencyClass->displayPrices(array($discount),
'discount_minimum_order',
'discount_currency_id').'</span></div>';
if(!empty($discount->product_name))
echo '<div class="hkm_discount_onproduct"><i
class="fas fa-cubes hk-icon-blue"></i>
<strong>'.JText::_('PRODUCT') . '</strong>
<span>' . $discount->product_name .
'<span></div>';
if(!empty($discount->category_name)) {
echo '<div class="hkm_discount_oncategory"><i
class="fas fa-folder hk-icon-blue"></i>
<strong>'.JText::_('CATEGORY') . '</strong>
<span>' .
$discount->category_name .
(($discount->discount_category_childs) ? (' <em>' .
JText::_('INCLUDING_SUB_CATEGORIES') . '</em>') :
''). '</span></div>';
}
if(!empty($discount->discount_user_id) && hikashop_level(2))
echo '<div class="hkm_discount_onuser"><i
class="fas fa-user hk-icon-blue"></i>
<span>'.JText::_('HIKA_COUPON_TARGET_USERS').'</span></div>';
// 'For specific users'
if(!empty($discount->zone_name_english))
echo '<div class="hkm_discount_onzone"><i
class="fas fa-map-marker-alt hk-icon-blue"></i>
<strong>'.JText::_('ZONE') . '</strong>
<span>' . $discount->zone_name_english .
'</span></div>';
if($discount->discount_type == 'coupon') {
if(!empty($discount->discount_coupon_product_only))
echo '<div
class="hkm_discount_percentproduct"><i class="far
fa-money-bill-alt hk-icon-blue"></i>
<span>'.JText::_('HIKA_COUPON_PRODUCT_ONLY').'</span></div>';
// 'Percentage for product only'
}
}
?>
</div>
<div class="hkc-sm-3">
<?php
if($this->discount_action_publish) {
?>
<a class="hikabtn hikabtn-<?php echo
($discount->discount_published) ? 'success' :
'danger'; ?> hkm_publish_button"
data-toggle-state="<?php echo $discount->discount_published ? 1
: 0; ?>" data-toggle-id="<?php echo
$discount->discount_id; ?>" onclick="return
window.localPage.toggleDiscount(this);"><?php
echo ($discount->discount_published) ? $publish_content :
$unpublish_content;
?></a>
<?php
} else {
?>
<span class="hkm_publish_state hk-label hk-label-<?php echo
($discount->discount_published) ? 'green' : 'red';
?>"><?php echo ($discount->discount_published) ?
$publish_content : $unpublish_content; ?></span>
<?php
}
?>
</div>
<div class="hkc-sm-2">
<?php
$data = array(
'details' => array(
'name' => '<i class="fas
fa-search"></i> ' . JText::_('HIKA_DETAILS',
true),
'link' => $url
)
);
if($this->discount_action_delete) {
$data['delete'] = array(
'name' => '<i class="fas
fa-trash"></i> ' . JText::_('HIKA_DELETE',
true),
'link' => '#delete',
'click' => 'return
window.localPage.deleteDiscount('.(int)$discount->discount_id.',
\''.urlencode(strip_tags($discount_name)).'\');'
);
}
if(!empty($data)) {
echo $this->dropdownHelper->display(
JText::_('HIKA_ACTIONS'),
$data,
array('type' => '', 'class' =>
'hikabtn-primary', 'right' => true, 'up'
=> false)
);
}
?>
</div>
</div>
</div>
</div>
<?php
}
?>
<div class="hikashop_discounts_footer">
<div class="hikamarket_pagination">
<?php echo $this->pagination->getListFooter(); ?>
<?php echo $this->pagination->getResultsCounter(); ?>
</div>
</div>
</div>
<input type="hidden" name="Itemid"
value="<?php echo $this->Itemid; ?>" />
<input type="hidden" name="option"
value="<?php echo HIKAMARKET_COMPONENT; ?>" />
<input type="hidden" name="task"
value="listing" />
<input type="hidden" name="ctrl"
value="<?php echo hikaInput::get()->getCmd('ctrl');
?>" />
<input type="hidden" name="boxchecked"
value="0" />
<?php echo JHTML::_( 'form.token' ); ?>
</form>
</div>
<?php if($this->discount_action_publish) { ?>
<script type="text/javascript">
if(!window.localPage) window.localPage = {};
window.localPage.toggleDiscount = function(el) {
var w=window, d=document, o=w.Oby,
state = el.getAttribute('data-toggle-state'),
id = el.getAttribute('data-toggle-id');
if(!id) return false;
var url="<?php echo
hikamarket::completeLink('toggle','ajax',true);
?>",
v = (state == 0) ? 1 : 0,
data=o.encodeFormData({"task":"discount_published-"+id,"value":v,"table":"discount","<?php
echo hikamarket::getFormToken(); ?>":1});
el.disabled = true;
if(state == 1) el.innerHTML = "<i class=\"fas fa-spinner
fa-pulse\"></i> <?php echo
JText::_('HIKA_UNPUBLISHING', true); ?>";
else el.innerHTML = "<i class=\"fas fa-spinner
fa-pulse\"></i> <?php echo
JText::_('HIKA_PUBLISHING', true); ?>";
el.classList.remove("hikabtn-success",
"hikabtn-danger");
o.xRequest(url,{mode:"POST",data:data},function(x,p){
if(x.responseText && x.responseText == '1')
state = v;
el.disabled = false;
el.setAttribute('data-toggle-state', v);
if(state == 1) el.innerHTML = "<i class=\"fas
fa-check\"></i> <?php echo
JText::_('HIKA_PUBLISHED', true); ?>";
else el.innerHTML = "<i class=\"fas
fa-times\"></i> <?php echo
JText::_('HIKA_UNPUBLISHED', true); ?>";
el.classList.add( state ? "hikabtn-success" :
"hikabtn-danger" );
});
};
</script>
<?php } ?>
<?php if($this->discount_action_delete) { ?>
<script type="text/javascript">
if(!window.localPage) window.localPage = {};
window.localPage.deleteDiscount = function(id, name) {
var confirmMsg = "<?php echo
JText::_('CONFIRM_DELETE_DISCOUNT_X'); ?>";
if(!confirm(confirmMsg.replace('{DISCOUNT}', decodeURI(name))))
return false;
var f = document.forms['hikamarket_delete_discount_form'];
if(!f) return false;
f.discount_id.value = id;
f.submit();
return false;
};
</script>
<form action="<?php echo
hikamarket::completeLink('discount&task=delete'); ?>"
method="post" name="hikamarket_delete_discount_form"
id="hikamarket_delete_discount_form">
<input type="hidden" name="option"
value="<?php echo HIKAMARKET_COMPONENT; ?>" />
<input type="hidden" name="task"
value="delete" />
<input type="hidden" name="ctrl"
value="<?php echo hikaInput::get()->getCmd('ctrl');
?>" />
<input type="hidden" name="Itemid"
value="<?php echo $this->Itemid; ?>" />
<input type="hidden" name="discount_id"
value="0" />
<?php echo JHTML::_('form.token'); ?>
</form>
<?php }
PK�[�\�2��%views/discountmarket/tmpl/listing.xmlnu�[���<?xml
version="1.0" encoding="utf-8"?>
<metadata>
<state>
<name>Vendor discount listing</name>
<params addpath="/components/com_hikamarket/params">
<param name="options" type="selectoptions"
default="module" label="options"
description="HikaMarket options" />
</params>
</state>
<layout
title="COM_HIKAMARKET_DISCOUNTMARKET_LISTING_DEFAULT_TITLE">
<message></message>
</layout>
<fields name="params"
addfieldpath="/components/com_hikamarket/fields">
<fieldset name="basic" label="HikaMarket
Options">
<field id="options" name="options"
type="selectoptions" label="options"
description="HikaMarket options" />
</fieldset>
</fields>
</metadata>PK�[emYl�>�>"views/discountmarket/tmpl/show.phpnu�[���<?php
/**
* @package HikaMarket for Joomla!
* @version 3.1.1
* @author Obsidev S.A.R.L.
* @copyright (C) 2011-2020 OBSIDEV. All rights reserved.
* @license GNU/GPLv3 http://www.gnu.org/licenses/gpl-3.0.html
*/
defined('_JEXEC') or die('Restricted access');
?><script type="text/javascript">
window.discountMgr = {};
window.discountMgr.cpt = {};
</script>
<form action="<?php echo
hikamarket::completeLink('discount');?>"
method="post" name="hikamarket_form"
id="hikamarket_discount_form">
<dl class="hikam_options large">
<?php
if(hikamarket::acl('discount/edit/code')) { ?>
<dt
class="hikamarket_discount_code"><label><?php echo
JText::_('DISCOUNT_CODE'); ?></label></dt>
<dd class="hikamarket_discount_code"><input
type="text" size="45"
name="data[discount][discount_code]" value="<?php echo
$this->escape(@$this->discount->discount_code); ?>"
/></dd>
<?php }
if(hikamarket::acl('discount/edit/type')) { ?>
<dt
class="hikamarket_discount_type"><label><?php echo
JText::_('DISCOUNT_TYPE'); ?></label></dt>
<dd class="hikamarket_discount_type">
<?php
$options = array(
JHTML::_('select.option', 'coupon',
JText::_('COUPONS')),
JHTML::_('select.option', 'discount',
JText::_('DISCOUNTS')),
);
echo JHTML::_('select.genericlist', $options,
'data[discount][discount_type]',
'onchange="hikashopToggleDiscount(this.value);"',
'value', 'text',
@$this->discount->discount_type);
?>
<script type="text/javascript">
function hikashopToggleDiscount(value) {
var els = document.querySelectorAll("[data-discount-display]");
for(var i = els.length - 1; i >= 0; i--) { els[i].style.display =
(els[i].getAttribute("data-discount-display") == value) ?
"" : "none"; }
}
window.hikashop.ready(function(){ hikashopToggleDiscount('<?php
echo !empty($this->discount->discount_type) ?
$this->escape($this->discount->discount_type) :
'coupon'; ?>'); });
</script>
</dd>
<?php }
if(hikamarket::acl('discount/edit/flatamount')) { ?>
<dt
class="hikamarket_discount_flatamount"><label><?php
echo JText::_('DISCOUNT_FLAT_AMOUNT');
?></label></dt>
<dd class="hikamarket_discount_flatamount">
<input type="text" size="30"
name="data[discount][discount_flat_amount]" value="<?php
echo $this->escape(@$this->discount->discount_flat_amount);
?>" />
<?php echo
$this->currencyType->display('data[discount][discount_currency_id]',
@$this->discount->discount_currency_id); ?>
</dd>
<?php }
if(hikamarket::acl('discount/edit/percentamount')) { ?>
<dt
class="hikamarket_discount_percentamount"><label><?php
echo JText::_('DISCOUNT_PERCENT_AMOUNT');
?></label></dt>
<dd class="hikamarket_discount_percentamount"><input
type="text" size="30"
name="data[discount][discount_percent_amount]"
value="<?php echo
$this->escape(@$this->discount->discount_percent_amount);
?>" /></dd>
<?php }
if(hikamarket::acl('discount/edit/taxcategory')) { ?>
<dt data-discount-display="coupon"
class="hikamarket_discount_tax"><label><?php echo
JText::_('AUTOMATIC_TAXES'); ?></label></dt>
<dd data-discount-display="coupon"
class="hikamarket_discount_tax">
<?php echo
$this->radioType->booleanlist('data[discount][discount_tax]',
'onchange="hikashopToggleTax(this.value);"',
@$this->discount->discount_tax); ?>
<script type="text/javascript">
function hikashopToggleTax(value) {
var els = document.querySelectorAll("[data-tax-display]");
for(var i = els.length - 1; i >= 0; i--) { els[i].style.display =
(els[i].getAttribute("data-tax-display") == value) ?
"none" : ""; }
}
window.hikashop.ready(function(){ hikashopToggleTax('<?php echo
(int)@$this->discount->discount_tax; ?>'); });
</script>
</dd>
<dt data-discount-display="coupon"
data-tax-display="1"
class="hikamarket_discount_taxcategory"><label><?php
echo JText::_('TAXATION_CATEGORY');
?></label></dt>
<dd data-discount-display="coupon"
data-tax-display="1"
class="hikamarket_discount_taxcategory"><?php echo
$this->categoryType->display('data[discount][discount_tax_id]',
@$this->discount->discount_tax_id, 'tax');
?></dd>
<?php }
if(hikamarket::acl('discount/edit/usedtimes')) { ?>
<dt
class="hikamarket_discount_usedtimes"><label><?php
echo JText::_('DISCOUNT_USED_TIMES');
?></label></dt>
<dd class="hikamarket_discount_usedtimes"><input
type="text" size="30"
name="data[discount][discount_used_times]" value="<?php
echo $this->escape(@$this->discount->discount_used_times);
?>" /></dd>
<?php }
if(hikamarket::acl('discount/edit/published')) { ?>
<dt
class="hikamarket_discount_publish"><label><?php echo
JText::_('HIKA_PUBLISHED'); ?></label></dt>
<dd class="hikamarket_discount_publish"><?php
echo
$this->radioType->booleanlist('data[discount][discount_published]',
'', @$this->discount->discount_published);
?></dd>
<?php }
if(hikamarket::acl('discount/edit/dates')) { ?>
<dt
class="hikamarket_discount_dates"><label><?php echo
JText::_('HIKA_DATES'); ?></label></dt>
<dd class="hikamarket_discount_dates"><?php
echo JHTML::_('calendar',
hikamarket::getDate((@$this->discount->discount_start?@$this->discount->discount_start:''),'%Y-%m-%d
%H:%M'),
'data[discount][discount_start]','discount_start','%Y-%m-%d
%H:%M',array('size' => '20'));
echo ' <span class="calendar-separator">' .
JText::_('HIKA_RANGE_TO') . '</span> ';
echo JHTML::_('calendar',
hikamarket::getDate((@$this->discount->discount_end?@$this->discount->discount_end:''),'%Y-%m-%d
%H:%M'),
'data[discount][discount_end]','discount_end','%Y-%m-%d
%H:%M',array('size' => '20'));
?></dd>
<?php }
if(hikashop_level(1)) {
if(hikamarket::acl('discount/edit/minorder')) { ?>
<dt data-discount-display="coupon"
class="hikamarket_discount_minorder"><label><?php
echo JText::_('MINIMUM_ORDER_VALUE');
?></label></dt>
<dd data-discount-display="coupon"
class="hikamarket_discount_minorder"><input
type="text" size="30"
name="data[discount][discount_minimum_order]"
value="<?php echo
$this->escape(@$this->discount->discount_minimum_order);
?>" /></dd>
<?php }
if(hikamarket::acl('discount/edit/minproducts')) { ?>
<dt data-discount-display="coupon"
class="hikamarket_discount_minproducts"><label><?php
echo JText::_('MINIMUM_NUMBER_OF_PRODUCTS');
?></label></dt>
<dd data-discount-display="coupon"
class="hikamarket_discount_minproducts"><input
type="text" size="30"
name="data[discount][discount_minimum_products]"
value="<?php echo
$this->escape(@$this->discount->discount_minimum_products);
?>" /></dd>
<?php }
if(hikamarket::acl('discount/edit/quota')) { ?>
<dt
class="hikamarket_discount_quota"><label><?php echo
JText::_('DISCOUNT_QUOTA'); ?></label></dt>
<dd class="hikamarket_discount_quota"><input
type="text" size="30"
name="data[discount][discount_quota]" value="<?php echo
$this->escape(@$this->discount->discount_quota); ?>"
/></dd>
<?php }
if(hikamarket::acl('discount/edit/peruser')) { ?>
<dt data-discount-display="coupon"
class="hikamarket_discount_peruser"><label><?php echo
JText::_('DISCOUNT_QUOTA_PER_USER');
?></label></dt>
<dd data-discount-display="coupon"
class="hikamarket_discount_peruser"><input
type="text" size="30"
name="data[discount][discount_quota_per_user]"
value="<?php echo
$this->escape(@$this->discount->discount_quota_per_user);
?>" /></dd>
<?php }
if(hikamarket::acl('discount/edit/product')) { ?>
<dt
class="hikamarket_discount_product"><label><?php echo
JText::_('PRODUCT'); ?></label></dt>
<dd class="hikamarket_discount_product"><?php
$product_id = null;
if(!empty($this->discount->discount_product_id))
$product_id = explode(',',
trim($this->discount->discount_product_id, ','));
echo $this->nameboxType->display(
'data[discount][discount_product_id]',
$product_id,
hikamarketNameboxType::NAMEBOX_MULTIPLE,
'product',
array(
'delete' => true,
'root' => $this->rootCategory,
'default_text' =>
'<em>'.JText::_('HIKA_NONE').'</em>',
'variants' => 2,
'url_params' => array('VARIANTS' => 2)
)
);
?></dd>
<?php }
if(hikamarket::acl('discount/edit/category')) { ?>
<dt
class="hikamarket_discount_category"><label><?php
echo JText::_('CATEGORY'); ?></label></dt>
<dd class="hikamarket_discount_category"><?php
$category_id = null;
if(!empty($this->discount->discount_category_id))
$category_id = explode(',',
trim($this->discount->discount_category_id, ','));
echo $this->nameboxType->display(
'data[discount][discount_category_id]',
$category_id,
hikamarketNameboxType::NAMEBOX_MULTIPLE,
'category',
array(
'delete' => true,
'root' => $this->rootCategory,
'default_text' =>
'<em>'.JText::_('HIKA_NONE').'</em>',
)
);
?></dd>
<?php }
if(hikamarket::acl('discount/edit/categorychild')) { ?>
<dt
class="hikamarket_discount_categorychild"><label><?php
echo JText::_('INCLUDING_SUB_CATEGORIES');
?></label></dt>
<dd class="hikamarket_discount_categorychild"><?php
echo
$this->radioType->booleanlist('data[discount][discount_category_childs]'
, '', @$this->discount->discount_category_childs);
?></dd>
<?php }
if(hikamarket::acl('discount/edit/zone')) { ?>
<dt
class="hikamarket_discount_zone"><label><?php echo
JText::_('ZONE'); ?></label></dt>
<dd class="hikamarket_discount_zone"><?php
$zone_id = null;
if(!empty($this->discount->discount_zone_id))
$zone_id = explode(',',
trim($this->discount->discount_zone_id, ','));
echo $this->nameboxType->display(
'data[discount][discount_zone_id]',
$zone_id,
hikamarketNameboxType::NAMEBOX_MULTIPLE,
'zone',
array(
'delete' => true,
'default_text' =>
'<em>'.JText::_('HIKA_NONE').'</em>',
)
);
?></dd>
<?php }
if(hikashop_level(2) &&
hikamarket::acl('discount/edit/user')) { ?>
<dt
class="hikamarket_discount_user"><label><?php echo
JText::_('USERS'); ?></label></dt>
<dd class="hikamarket_discount_user"><?php
$discount_user_id = null;
if(!empty($this->discount->discount_user_id))
$discount_user_id = explode(',',
trim($this->discount->discount_user_id, ','));
echo $this->nameboxType->display(
'data[discount][discount_user_id]',
$discount_user_id,
hikamarketNameboxType::NAMEBOX_MULTIPLE,
'user',
array(
'delete' => true,
'default_text' =>
'<em>'.JText::_('HIKA_NONE').'</em>',
)
);
?></dd>
<?php }
if($this->vendor->vendor_id == 1 && hikamarket::level(1)
&& hikamarket::acl('discount/edit/targetvendor')) {
?>
<dt
class="hikamarket_discount_targetvendor"><label><?php
echo JText::_('DISCOUNT_TARGET_VENDOR');
?></label></dt>
<dd class="hikamarket_discount_targetvendor"><?php
$discount_vendor_id =
(int)@$this->discount->discount_target_vendor;
if($discount_vendor_id > 1) {
$vendorClass = hikamarket::get('class.vendor');
$discountVendor = $vendorClass->get($discount_vendor_id);
$discount_vendor_name = $discount_vendor_id . ' - ' .
$discountVendor->vendor_name;
} else {
$discount_vendor_id = -1;
$discount_vendor_name = JText::_('HIKAM_SELECT_VENDOR');
}
$values = array(
JHTML::_('select.option', '0',
JText::_('HIKASHOP_NO')),
JHTML::_('select.option', '1',
JText::_('HIKASHOP_YES')),
JHTML::_('select.option', $discount_vendor_id,
$discount_vendor_name)
);
echo $this->radioType->radiolist($values,
'data[discount][discount_target_vendor]',
'onchange="window.discountMgr.setVendor(this,
false);"', 'value', 'text',
@$this->discount->discount_target_vendor);
$popup = hikamarket::get('shop.helper.popup');
echo $this->popup->display(
'', //$popupLinkData,
'EDIT',
hikamarket::completeLink('vendor&task=selection&single=1',
true),
'market_discount_set_vendor',
760, 480, 'onclick="return
window.discountMgr.changeVendor(this);"', '',
'link'
);
?>
<script type="text/javascript">
window.discountMgr.current_vendor = <?php echo $discount_vendor_id;
?>;
window.discountMgr.setVendor = function(el, c) {
var v = 0;
if(el.value) v = parseInt(el.value);
if(v == -1 || (c && v > 1 && v ==
window.discountMgr.current_vendor && el.checked)) {
var p = document.getElementById("market_discount_set_vendor");
window.discountMgr.changeVendor(p);
}
if(c)
window.discountMgr.current_vendor = v;
}
window.discountMgr.changeVendor = function(el) {
window.hikamarket.submitFct = function(data) {
var d = document, w = window, o = w.Oby,
el =
d.getElementById("data[discount][discount_target_vendor]-1"),
lbl =
d.getElementById("data[discount][discount_target_vendor]-1-lbl");
if(!data.id && data[0]) data = data[0];
if(!el) el =
d.getElementById("data_discount_discount_target_vendor-1");
if(el) el.value = data.id;
if(el && !el.checked) el.checked = "checked";
if(!lbl) { lbl = el; while(lbl && lbl.nodeName.toLowerCase() !=
"label") { lbl = lbl.nextSibling; } }
if(lbl) lbl.innerHTML = data.id + " - " + data.vendor_name;
};
window.hikamarket.openBox(el,null,(el.getAttribute("rel") ==
null));
return false;
}
</script>
<?php
}
if(hikamarket::acl('discount/edit/autoload')) { ?>
<dt data-discount-display="coupon"
class="hikamarket_discount_autoload"><label><?php
echo JText::_('COUPON_AUTO_LOAD');
?></label></dt>
<dd data-discount-display="coupon"
class="hikamarket_discount_autoload"><?php echo
$this->radioType->booleanlist('data[discount][discount_auto_load]'
, '', @$this->discount->discount_auto_load);
?></dd>
<?php }
if(hikamarket::acl('discount/edit/percenttoproduct')) { ?>
<dt data-discount-display="coupon"
class="hikamarket_discount_percenttoproduct"><label><?php
echo JText::_('COUPON_APPLIES_TO_PRODUCT_ONLY');
?></label></dt>
<dd data-discount-display="coupon"
class="hikamarket_discount_percenttoproduct"><?php echo
$this->radioType->booleanlist('data[discount][discount_coupon_product_only]'
, '', @$this->discount->discount_coupon_product_only);
?></dd>
<?php }
if(hikamarket::acl('discount/edit/nodoubling')) { ?>
<dt data-discount-display="coupon"
class="hikamarket_discount_nodoubling"><label><?php
echo JText::_('COUPON_HANDLING_OF_DISCOUNTED_PRODUCTS');
?></label></dt>
<dd data-discount-display="coupon"
class="hikamarket_discount_nodoubling"><?php
$options = array(
JHTML::_('select.option', 0,
JText::_('STANDARD_BEHAVIOR')),
JHTML::_('select.option', 1,
JText::_('IGNORE_DISCOUNTED_PRODUCTS')),
JHTML::_('select.option', 2,
JText::_('OVERRIDE_DISCOUNTED_PRODUCTS'))
);
echo JHTML::_('hikaselect.genericlist', $options,
'data[discount][discount_coupon_nodoubling]', '',
'value', 'text',
@$this->discount->discount_coupon_nodoubling);
?></dd>
<?php }
}
JPluginHelper::importPlugin('hikashop');
$html = array();
JFactory::getApplication()->triggerEvent('onDiscountFrontBlocksDisplay',
array(&$this->discount, &$html));
if(!empty($html))
echo implode("\r\n", $html);
if(hikashop_level(2) &&
hikamarket::acl('discount/edit/acl')) {
?>
<dt class="hikamarket_discount_acl"><label><?php
echo JText::_('ACCESS_LEVEL'); ?></label></dt>
<dd class="hikamarket_discount_acl"><?php
$discount_access = 'all';
if(isset($this->discount->discount_access))
$discount_access = $this->discount->discount_access;
echo
$this->joomlaAcl->display('data[discount][discount_access]',
$discount_access, true, true);
?></dd>
<?php
}
?>
</dl>
<input type="hidden" name="cancel_action"
value="<?php echo @$this->cancel_action; ?>"/>
<input type="hidden" name="cid"
value="<?php echo @$this->discount->discount_id;
?>"/>
<input type="hidden" name="option"
value="<?php echo HIKAMARKET_COMPONENT; ?>"/>
<input type="hidden" name="task"
value="show"/>
<input type="hidden" name="ctrl"
value="discount"/>
<?php echo JHTML::_('form.token'); ?>
</form>
<script type="text/javascript">
window.hikashop.ready(function(){
window.hikamarket.dlTitle('hikamarket_discount_form'); });
</script>
PK�[R�%�+�+"views/discountmarket/view.html.phpnu�[���<?php
/**
* @package HikaMarket for Joomla!
* @version 3.1.1
* @author Obsidev S.A.R.L.
* @copyright (C) 2011-2020 OBSIDEV. All rights reserved.
* @license GNU/GPLv3 http://www.gnu.org/licenses/gpl-3.0.html
*/
defined('_JEXEC') or die('Restricted access');
?><?php
class discountmarketViewdiscountmarket extends hikamarketView {
protected $ctrl = 'discount';
protected $icon = 'discount';
public function display($tpl = null, $params = array()) {
$this->params =& $params;
$fct = $this->getLayout();
if(method_exists($this, $fct)) {
if($this->$fct() === false)
return;
}
parent::display($tpl);
}
public function listing($tpl = null) {
$app = JFactory::getApplication();
$db = JFactory::getDBO();
$ctrl = '';
$this->paramBase =
HIKAMARKET_COMPONENT.'.'.$this->getName().'.listing';
$vendor = hikamarket::loadVendor(true, false);
$this->assignRef('vendor', $vendor);
$config = hikamarket::config();
$this->assignRef('config', $config);
$toggleClass = hikamarket::get('helper.toggle');
$this->assignRef('toggleClass', $toggleClass);
$currencyClass = hikamarket::get('shop.class.currency');
$this->assignRef('currencyClass', $currencyClass);
$manage = hikamarket::acl('discount/edit') ||
hikamarket::acl('discount/show');
$this->assignRef('manage', $manage);
$discount_action_publish =
hikamarket::acl('discount/edit/published');
$discount_action_delete = hikamarket::acl('discount/delete');
$discount_actions = $discount_action_publish || $discount_action_delete;
$this->assignRef('discount_action_publish',
$discount_action_publish);
$this->assignRef('discount_action_delete',
$discount_action_delete);
$this->assignRef('discount_actions', $discount_actions);
global $Itemid;
$url_itemid = '';
if(!empty($Itemid))
$url_itemid = '&Itemid='.$Itemid;
$this->assignRef('Itemid', $Itemid);
$cfg = array(
'table' => 'shop.discount',
'main_key' => 'discount_id',
'order_sql_value' => 'discount.discount_id'
);
$default_sort_dir = 'asc';
$listing_filters = array(
'vendors' => -1,
'published' => -1,
'type' => '',
);
$pageInfo = $this->getPageInfo($cfg['order_sql_value'],
$default_sort_dir, $listing_filters);
$filters = array();
$searchMap = array(
'discount.discount_code',
'discount.discount_id'
);
$order = '';
if($vendor->vendor_id > 1) {
$filters[] = 'discount.discount_target_vendor = ' .
(int)$vendor->vendor_id;
} else {
$vendorType = hikamarket::get('type.filter_vendor');
$this->assignRef('vendorType', $vendorType);
if($pageInfo->filter->vendors >= 0) {
if($pageInfo->filter->vendors > 1)
$filters[] = 'discount.discount_target_vendor =
'.(int)$pageInfo->filter->vendors;
else
$filters[] = 'discount.discount_target_vendor <= 1';
}
}
if(!empty($pageInfo->filter->type) &&
in_array($pageInfo->filter->type, array('discount',
'coupon'))) {
$filters['discount_type'] = 'discount.discount_type =
' . $db->Quote($pageInfo->filter->type);
}
if($pageInfo->filter->published >= 0) {
$filters['published'] = 'discount.discount_published =
' . ($pageInfo->filter->published ? '1' :
'0');
}
$this->processFilters($filters, $order, $searchMap);
$query = 'FROM
'.hikamarket::table($cfg['table']).' AS discount
'.$filters.$order;
$db->setQuery('SELECT * '.$query,
(int)$pageInfo->limit->start, (int)$pageInfo->limit->value);
$rows = $db->loadObjectList();
$this->assignRef('discounts', $rows);
$db->setQuery('SELECT COUNT(*) '.$query);
$pageInfo->elements = new stdClass();
$pageInfo->elements->total = $db->loadResult();
$pageInfo->elements->page = count($rows);
if($pageInfo->elements->page) {
$productIds = array();
$categoryIds = array();
$zoneNamekeys = array();
foreach($rows as $row) {
if(!empty($row->discount_product_id)) {
if(strpos($row->discount_product_id, ',') === false)
$productIds[] = (int)$row->discount_product_id;
else
$productIds = array_merge($productIds, explode(',',
trim($row->discount_product_id, ',')));
}
if(!empty($row->discount_category_id)) {
if(strpos($row->discount_category_id, ',') === false)
$categoryIds[] = (int)$row->discount_category_id;
else
$categoryIds = array_merge($categoryIds, explode(',',
trim($row->discount_category_id, ',')));
}
if(!empty($row->discount_zone_id)) {
if(strpos($row->discount_zone_id, ',') === false)
$zoneNamekeys[] = $row->discount_zone_id;
else
$zoneNamekeys = explode(',',
trim($row->discount_zone_id, ','));
}
}
if(!empty($productIds)) {
hikamarket::toInteger($productIds);
$query = 'SELECT * FROM
'.hikamarket::table('shop.product').' WHERE product_id
IN ('.implode(',',$productIds).')';
$db->setQuery($query);
$products = $db->loadObjectList();
foreach($rows as &$row) {
if(empty($row->discount_product_id))
continue;
$pid = explode(',', trim($row->discount_product_id,
','));
$row->product_name = array();
foreach($products as $product) {
if(in_array($product->product_id, $pid))
$row->product_name[] = $product->product_name;
}
if(!empty($row->product_name)) {
$row->product_name = implode(', ',
$row->product_name);
} else
$row->product_name = JText::_('PRODUCT_NOT_FOUND');
}
unset($row);
}
if(!empty($categoryIds)) {
hikamarket::toInteger($categoryIds);
$query = 'SELECT * FROM
'.hikamarket::table('shop.category').' WHERE
category_id IN ('.implode(',',$categoryIds).')';
$db->setQuery($query);
$categories = $db->loadObjectList();
foreach($rows as &$row){
if(empty($row->discount_category_id))
continue;
$pid = explode(',', trim($row->discount_category_id,
','));
$row->category_name = array();
foreach($categories as $category) {
if(in_array($category->category_id, $pid))
$row->category_name[] = $category->category_name;
}
if(!empty($row->category_name)) {
$row->category_name = implode(', ',
$row->category_name);
} else
$row->category_name = JText::_('CATEGORY_NOT_FOUND');
}
unset($row);
}
if(!empty($zoneNamekeys)) {
foreach($zoneNamekeys as &$zoneNamekey) {
$zoneNamekey = $db->Quote($zoneNamekey);
}
unset($zoneNamekey);
$query = 'SELECT * FROM
'.hikamarket::table('shop.zone').' WHERE zone_namekey
IN ('.implode(',',$zoneNamekeys).')';
$db->setQuery($query);
$zones = $db->loadObjectList();
foreach($rows as &$row){
if(empty($row->discount_zone_id))
continue;
$pid = explode(',', trim($row->discount_zone_id,
','));
$row->zone_name_english = array();
foreach($zones as $zone) {
if(in_array($zone->zone_namekey, $pid))
$row->zone_name_english[] = $zone->zone_name_english;
}
if(!empty($row->zone_name_english)) {
$row->zone_name_english = implode(', ',
$row->zone_name_english);
} else
$row->zone_name_english = JText::_('ZONE_NOT_FOUND');
}
unset($row);
}
}
$text_asc = JText::_('ASCENDING');
$text_desc = JText::_('DESCENDING');
$ordering_values = array(
'discount.discount_id' => JText::_('SORT_ID'),
'discount.discount_code' =>
JText::_('SORT_NAME'),
'discount.discount_type' =>
JText::_('SORT_TYPE'),
'discount.discount_start' =>
JText::_('SORT_START_DATE'),
'discount.discount_end' =>
JText::_('SORT_END_DATE'),
);
$this->ordering_values = array();
foreach($ordering_values as $k => $v) {
$this->ordering_values[$k.' asc'] = $v . ' '
.$text_asc;
$this->ordering_values[$k.' desc'] = $v . ' '
.$text_desc;
}
$this->full_ordering =
$this->pageInfo->filter->order->value . ' ' .
strtolower($this->pageInfo->filter->order->dir);
$this->toolbar = array(
array(
'icon' => 'back',
'fa' => 'fa-arrow-circle-left',
'name' => JText::_('HIKA_BACK'), 'url'
=> hikamarket::completeLink('vendor')
),
array(
'icon' => 'new',
'fa' => 'fa-plus-circle',
'name' => JText::_('HIKA_NEW'),
'url' =>
hikamarket::completeLink('discount&task=add'),
'pos' => 'right',
'display' => hikamarket::acl('discount/add')
)
);
$this->getPagination();
}
public function show() {
$app = JFactory::getApplication();
$db = JFactory::getDBO();
$ctrl = '';
$this->paramBase =
HIKAMARKET_COMPONENT.'.'.$this->getName().'.edit';
hikamarket::loadJslib('tooltip');
$vendor = hikamarket::loadVendor(true, false);
$this->assignRef('vendor', $vendor);
$config = hikamarket::config();
$this->assignRef('config', $config);
$shopConfig = hikamarket::config(false);
$this->assignRef('shopConfig', $shopConfig);
$toggleClass = hikamarket::get('helper.toggle');
$this->assignRef('toggleClass', $toggleClass);
$popup = hikamarket::get('shop.helper.popup');
$this->assignRef('popup', $popup);
$discount_id = hikamarket::getCID('discount_id');
$this->loadRef(array(
'discountClass' => 'shop.class.discount',
'productClass' => 'shop.class.product',
'categoryClass' => 'shop.class.category',
'currencyClass' => 'shop.class.currency',
'vendorClass' => 'class.vendor',
'categoryType' => 'type.shop_category',
'nameboxType' => 'type.namebox',
'currencyType' => 'shop.type.currency',
'radioType' => 'shop.type.radio',
));
$main_currency = $shopConfig->get('main_currency',1);
$this->assignRef('main_currency_id', $main_currency);
$discount = $this->discountClass->get($discount_id);
$this->assignRef('discount', $discount);
if(hikashop_level(1)) {
$rootCategory = $this->vendorClass->getRootCategory($vendor);
$this->assignRef('rootCategory', $rootCategory);
$this->loadRef(array(
'categoryType' => 'type.shop_category',
'productsType' => 'type.products'
));
}
if(hikashop_level(2)) {
hikamarket::loadJslib('otree');
$joomlaAcl = hikamarket::get('type.joomla_acl');
$this->assignRef('joomlaAcl', $joomlaAcl);
}
$this->toolbar = array(
'back' => array(
'icon' => 'back',
'fa' => 'fa-arrow-circle-left',
'name' => JText::_('HIKA_BACK'),
'url' => hikamarket::completeLink('discount')
),
'apply' => array(
'url' => '#apply',
'fa' => 'fa-check-circle',
'linkattribs' => 'onclick="return
window.hikamarket.submitform(\'apply\',\'hikamarket_discount_form\');"',
'icon' => 'apply',
'name' => JText::_('HIKA_APPLY'),
'pos' => 'right',
'display' => hikamarket::acl('discount/edit')
),
'save' => array(
'url' => '#save',
'fa' => 'fa-save',
'linkattribs' => 'onclick="return
window.hikamarket.submitform(\'save\',\'hikamarket_discount_form\');"',
'icon' => 'save',
'name' => JText::_('HIKA_SAVE'), 'pos'
=> 'right',
'display' => hikamarket::acl('discount/edit')
)
);
}
}
PK�[wtW�views/index.htmlnu�[���<html><body></body></html>PK�[wtW�views/layouts/index.htmlnu�[���<html><body></body></html>PK�[wtW�views/layouts/tmpl/index.htmlnu�[���<html><body></body></html>PK�[�xN##views/layouts/tmpl/search.phpnu�[���<?php
/**
* @package HikaMarket for Joomla!
* @version 3.1.1
* @author Obsidev S.A.R.L.
* @copyright (C) 2011-2020 OBSIDEV. All rights reserved.
* @license GNU/GPLv3 http://www.gnu.org/licenses/gpl-3.0.html
*/
defined('_JEXEC') or die('Restricted access');
?><?php
$value = $this->params->get('value',
$this->pageInfo->search);
$map = $this->params->get('map', 'search');
$id = $this->params->get('id', $map);
$filter_btn = $this->params->get('filter_btn',
'');
?>
<div class="hikamarket_search_block">
<div class="hk-input-group">
<input type="text" name="<?php echo $map
;?>" id="<?php echo $id; ?>" value="<?php
echo $this->escape($value); ?>"
class="hk-form-control" placeholder="<?php echo
JText::_('HIKA_SEARCH'); ?>"/>
<div class="hk-input-group-append">
<button class="hikabtn"
onclick="hikamarket.searchSubmit(this);"><i class="fas
fa-search"></i></button>
<button class="hikabtn"
onclick="hikamarket.searchReset(this);"><i class="fas
fa-times"></i></button>
</div>
</div>
<?php if(!empty($filter_btn)) { ?>
<button class="hikabtn hikam_toggle" onclick="return
hikamarket.searchFilters(this, '<?php echo
$this->escape($filter_btn); ?>');"><i class="fas
fa-filter"></i> <?php echo
JText::_('HIKAM_TOGGLE_FILTERS'); ?></button>
<?php } ?>
</div>
PK�[wtW�views/ordermarket/index.htmlnu�[���<html><body></body></html>PK�['*6���!views/ordermarket/tmpl/create.phpnu�[���<?php
/**
* @package HikaMarket for Joomla!
* @version 3.1.1
* @author Obsidev S.A.R.L.
* @copyright (C) 2011-2020 OBSIDEV. All rights reserved.
* @license GNU/GPLv3 http://www.gnu.org/licenses/gpl-3.0.html
*/
defined('_JEXEC') or die('Restricted access');
?><form action="<?php echo
hikamarket::completeLink('order');?>"
method="post" name="hikamarket_form"
id="hikamarket_order_create_form">
<dl class="hikam_options">
<dt
class="hikamarket_order_customer"><label><?php echo
JText::_('CUSTOMER'); ?></label></dt>
<dd class="hikamarket_order_customer"><?php
echo $this->nameboxType->display(
'data[order][order_user_id]',
'',
hikamarketNameboxType::NAMEBOX_SINGLE,
'user',
array(
'customer' => true,
'delete' => true,
'default_text' =>
'<em>'.JText::_('HIKA_NONE').'</em>',
'id' =>
'hikamarket_order_create_customer_namebox'
)
);
?></dd>
<dt
class="hikamarket_order_currency"><label><?php echo
JText::_('CURRENCY'); ?></label></dt>
<dd class="hikamarket_order_currency"><?php
echo
$this->currencyType->display('data[order][order_currency_id]',
$this->main_currency);
?></dd>
</dl>
<input type="hidden" name="option"
value="<?php echo HIKAMARKET_COMPONENT; ?>" />
<input type="hidden" name="task"
value="create" />
<input type="hidden" name="ctrl"
value="<?php echo hikaInput::get()->getCmd('ctrl');
?>" />
<?php echo JHTML::_('form.token'); ?>
</form>
PK�[�P����'views/ordermarket/tmpl/customer_set.phpnu�[���<?php
/**
* @package HikaMarket for Joomla!
* @version 3.1.1
* @author Obsidev S.A.R.L.
* @copyright (C) 2011-2020 OBSIDEV. All rights reserved.
* @license GNU/GPLv3 http://www.gnu.org/licenses/gpl-3.0.html
*/
defined('_JEXEC') or die('Restricted access');
?><form action="<?php echo
hikamarket::completeLink('order&task=customer_save')
;?>" method="post" name="hikamarket_form"
id="hikamarket_form">
<div class="hikam_confirm">
<?php echo JText::_('HIKA_CONFIRM_USER')?><br/>
<table class="hikam_options">
<tbody>
<tr>
<td class="key"><label><?php echo
JText::_('HIKA_NAME'); ?></label></td>
<td id="hikamarket_order_customer_name"><?php echo
$this->rows->name; ?></td>
</tr>
<tr>
<td class="key"><label><?php echo
JText::_('HIKA_EMAIL'); ?></label></td>
<td id="hikamarket_order_customer_email"><?php echo
$this->rows->email; ?></td>
</tr>
<tr>
<td class="key"><label><?php echo
JText::_('ID'); ?></label></td>
<td id="hikamarket_order_customer_id"><?php echo
$this->rows->user_id; ?></td>
</tr>
<?php if(hikamarket::acl('order/edit/billingaddress')) {
?>
<tr>
<td class="key"><label><?php echo
JText::_('SET_USER_ADDRESS'); ?></label></td>
<td><?php echo JHTML::_('hikaselect.booleanlist',
'set_user_address', '', 0); ?></td>
</tr>
<?php } ?>
<?php if(hikamarket::acl('order/edit/history')) { ?>
<tr>
<td class="key"><label><?php echo
JText::_('HISTORY'); ?></label></td>
<td>
<span><input
onchange="window.orderMgr.orderadditional_history_changed(this);"
type="checkbox"
id="hikamarket_history_orderadditional_store"
name="data[history][store_data]"
value="1"/><label
for="hikamarket_history_orderadditional_store"
style="display:inline-block"><?php echo
JText::_('SET_HISTORY_MESSAGE');?></label></span><br/>
<textarea id="hikamarket_history_orderadditional_msg"
name="data[history][history_data]"
style="display:none;"></textarea>
</td>
</tr>
<?php } ?>
</tbody>
</table>
<input type="hidden"
name="data[order][order_user_id]" value="<?php echo
$this->rows->user_id; ?>"/>
<input type="hidden" name="cid"
value="<?php echo $this->order_id; ?>"/>
<input type="hidden" name="order_id"
value="<?php echo $this->order_id; ?>"/>
<input type="hidden" name="option"
value="<?php echo HIKAMARKET_COMPONENT; ?>" />
<input type="hidden" name="task"
value="customer_save" />
<input type="hidden" name="finalstep"
value="1" />
<input type="hidden" name="single"
value="1" />
<input type="hidden" name="ctrl"
value="order" />
<input type="hidden" name="tmpl"
value="component" />
<?php echo JHTML::_('form.token'); ?>
<div class="hikam_confirm_btn">
<button onclick="hikamarket.submitform('customer_save',
'hikamarket_form');" class="hikabtn
hikabtn-success"><i class="fas fa-check"></i>
<span><?php echo Jtext::_('HIKA_OK');
?></span></button>
</div>
</div>
<script type="text/javascript">
if(!window.orderMgr)
window.orderMgr = {};
window.orderMgr.orderadditional_history_changed = function(el) {
var fields = ['hikamarket_history_orderadditional_msg'],
displayValue = '';
if(!el.checked) displayValue = 'none';
window.hikamarket.setArrayDisplay(fields, displayValue);
}
</script>
</form>
PK�[�4��t*t**views/ordermarket/tmpl/edit_additional.phpnu�[���<?php
/**
* @package HikaMarket for Joomla!
* @version 3.1.1
* @author Obsidev S.A.R.L.
* @copyright (C) 2011-2020 OBSIDEV. All rights reserved.
* @license GNU/GPLv3 http://www.gnu.org/licenses/gpl-3.0.html
*/
defined('_JEXEC') or die('Restricted access');
?><form action="<?php echo
hikamarket::completeLink('order&task=save&subtask=additional&tmpl=component');
?>" name="hikamarket_order_additional_form"
id="hikamarket_order_additional_form" method="post"
enctype="multipart/form-data">
<dl class="hikam_options">
<dt
class="hikamarket_order_additional_subtotal"><label><?php
echo JText::_('SUBTOTAL'); ?></label></dt>
<dd
class="hikamarket_order_additional_subtotal"><span><?php
echo
$this->currencyHelper->format($this->order->order_subtotal,$this->order->order_currency_id);
?></span></dd>
<?php if(isset($this->edit) && $this->edit === true
&& hikamarket::acl('order/edit/coupon')) { ?>
<dt
class="hikamarket_order_additional_coupon"><label><?php
echo JText::_('HIKASHOP_COUPON'); ?></label></dt>
<dd class="hikamarket_order_additional_coupon">
<input type="text"
name="data[order][order_discount_code]" value="<?php echo
$this->escape(@$this->order->order_discount_code); ?>"
/><br/>
<input type="text"
name="data[order][order_discount_price]" value="<?php
echo @$this->order->order_discount_price; ?>"
/><br/>
<input type="text"
name="data[order][order_discount_tax]" value="<?php echo
@$this->order->order_discount_tax; ?>" />
<?php echo $this->ratesType->display(
"data[order][order_discount_tax_namekey]" ,
@$this->order->order_discount_tax_namekey ); ?>
</dd>
<?php } else { ?>
<dt
class="hikamarket_order_additional_coupon"><label><?php
echo JText::_('HIKASHOP_COUPON'); ?></label></dt>
<dd
class="hikamarket_order_additional_coupon"><span><?php
echo
$this->currencyHelper->format($this->order->order_discount_price*-1.0,$this->order->order_currency_id);
?> <?php echo $this->order->order_discount_code;
?></span></dd>
<?php }
if(isset($this->edit) && $this->edit === true &&
hikamarket::acl('order/edit/shipping')) { ?>
<dt
class="hikamarket_order_additional_shipping"><label><?php
echo JText::_('SHIPPING'); ?></label></dt>
<dd class="hikamarket_order_additional_shipping">
<?php if(strpos($this->order->order_shipping_id, ';')
=== false) { ?>
<?php echo
$this->shippingPlugins->display('data[order][shipping]',$this->order->order_shipping_method,$this->order->order_shipping_id);
?><br/>
<?php } ?>
<input type="text"
name="data[order][order_shipping_price]" value="<?php
echo $this->order->order_shipping_price; ?>"
/><br/>
<input type="text"
name="data[order][order_shipping_tax]" value="<?php echo
@$this->order->order_shipping_tax; ?>" />
<?php echo $this->ratesType->display(
"data[order][order_shipping_tax_namekey]" ,
@$this->order->order_shipping_tax_namekey ); ?><br/>
<?php
if(strpos($this->order->order_shipping_id, ';') !==
false) {
?>
<table class="hikam_table table table-striped">
<thead>
<tr>
<th><?php echo JText::_('WAREHOUSE');
?></th>
<th><?php echo
JText::_('HIKASHOP_SHIPPING_METHOD'); ?></th>
<th><?php echo JText::_('PRICE');
?></th>
<th><?php echo JText::_('SHIPPING_TAX');
?></th>
</tr>
</thead>
<tbody>
<?php
$warehouses = array(
JHTML::_('select.option', 0,
JText::_('HIKA_NONE'))
);
$shipping_ids = explode(';',
$this->order->order_shipping_id);
foreach($shipping_ids as $shipping_key) {
$shipping_warehouse = 0;
if(strpos($shipping_key, '@') !== false)
list($shipping_id, $shipping_warehouse) = explode('@',
$shipping_key, 2);
else
$shipping_id = (int)$shipping_key;
$warehouses[] = JHTML::_('select.option',
$shipping_warehouse, $shipping_warehouse);
$shipping_method = '';
foreach($this->order->shippings as $s) {
if((int)$s->shipping_id == $shipping_id) {
$shipping_method = $s->shipping_type;
break;
}
}
$k = $shipping_id.'_'.$shipping_warehouse;
$prices =
@$this->order->order_shipping_params->prices[$shipping_key];
?>
<tr>
<td><?php echo $shipping_warehouse; ?></td>
<td><?php echo
$this->shippingPlugins->display('data[order][shipping]['.$shipping_warehouse.']',
$shipping_method,$shipping_id, true, '
style="max-width:160px;"'); ?></td>
<td><input type="text"
name="data[order][order_shipping_prices][<?php echo
$shipping_warehouse; ?>]" value="<?php echo
@$prices->price_with_tax; ?>" /></td>
<td><input type="text"
name="data[order][order_shipping_taxs][<?php echo
$shipping_warehouse; ?>]" value="<?php echo
@$prices->tax; ?>" /></td>
</tr>
<?php
}
?> </tbody>
</table>
<table class="hikam_table table table-striped">
<thead>
<tr>
<th><?php echo JText::_('PRODUCT');
?></th>
<th><?php echo JText::_('WAREHOUSE');
?></th>
</tr>
</thead>
<tbody>
<?php
foreach($this->order->products as $k => $product) {
$map =
'data[order][warehouses]['.$product->order_product_id.']';
$value = 0;
if(strpos($product->order_product_shipping_id, '@') !==
false)
$value = substr($product->order_product_shipping_id,
strpos($product->order_product_shipping_id, '@')+1);
?>
<tr>
<td><?php echo $product->order_product_name;
?></td>
<td><?php echo JHTML::_('select.genericlist',
$warehouses, $map, 'class="inputbox"',
'value', 'text', $value); ?></td>
</tr>
<?php
}
?>
</tbody>
</table>
<?php
} ?>
</dd>
<?php } else { ?>
<dt
class="hikamarket_order_additional_shipping"><label><?php
echo JText::_('SHIPPING'); ?></label></dt>
<dd
class="hikamarket_order_additional_shipping"><span><?php
echo
$this->currencyHelper->format($this->order->order_shipping_price,
$this->order->order_currency_id); ?> - <?php
if(empty($this->order->order_shipping_method))
echo
'<em>'.JText::_('NONE').'</em>';
else
echo $this->order->order_shipping_method;
?></span></dd>
<?php }
if(isset($this->edit) && $this->edit === true &&
hikamarket::acl('order/edit/payment')) { ?>
<dt
class="hikamarket_order_additional_payment"><label><?php
echo JText::_('HIKASHOP_PAYMENT');
?></label></dt>
<dd class="hikamarket_order_additional_payment">
<?php echo
$this->paymentPlugins->display('data[order][payment]',$this->order->order_payment_method,$this->order->order_payment_id);
?><br/>
<input type="text"
name="data[order][order_payment_price]" value="<?php echo
$this->order->order_payment_price; ?>" /><br/>
<input type="text"
name="data[order][order_payment_tax]" value="<?php echo
@$this->order->order_payment_tax; ?>" />
<?php echo $this->ratesType->display(
"data[order][order_payment_tax_namekey]" ,
@$this->order->order_payment_tax_namekey); ?>
</dd>
<?php } else { ?>
<dt
class="hikamarket_order_additional_payment_fee"><label><?php
echo JText::_('HIKASHOP_PAYMENT');
?></label></dt>
<dd
class="hikamarket_order_additional_payment_fee"><span><?php
echo
$this->currencyHelper->format($this->order->order_payment_price,
$this->order->order_currency_id); ?> - <?php
if(empty($this->order->order_payment_method))
echo
'<em>'.JText::_('NONE').'</em>';
else
echo $this->order->order_payment_method;
?></span></dd>
<?php }
if(!empty($this->order->additional)) {
foreach($this->order->additional as $additional) {
?>
<dt
class="hikamarket_order_additional_additional"><label><?php
echo JText::_($additional->order_product_name);
?></label></dt>
<dd
class="hikamarket_order_additional_additional"><span><?php
if(!empty($additional->order_product_price)) {
$additional->order_product_price =
(float)$additional->order_product_price;
}
if(!empty($additional->order_product_price) ||
empty($additional->order_product_options)) {
echo
$this->currencyHelper->format($additional->order_product_price,
$this->order->order_currency_id);
} else {
echo $additional->order_product_options;
}
?></span></dd>
<?php
}
}
?>
<dt
class="hikamarket_order_additional_total"><label><?php
echo JText::_('HIKASHOP_TOTAL'); ?></label></dt>
<dd
class="hikamarket_order_additional_total"><span><?php
echo
$this->currencyHelper->format($this->order->order_full_price,$this->order->order_currency_id);
?></span></dd>
<?php
if(!empty($this->fields['order'])) {
$editCustomFields = false;
if(isset($this->edit) && $this->edit === true &&
hikamarket::acl('order/edit/customfields')) {
$editCustomFields = true;
}
foreach($this->fields['order'] as $fieldName =>
$oneExtraField) {
?>
<dt class="hikamarket_order_additional_customfield
hikamarket_order_additional_customfield_<?php echo $fieldName;
?>"><?php echo
$this->fieldsClass->getFieldName($oneExtraField);?></dt>
<dd class="hikamarket_order_additional_customfield
hikamarket_order_additional_customfield_<?php echo $fieldName;
?>"><span><?php
if($editCustomFields) {
echo $this->fieldsClass->display($oneExtraField,
@$this->order->$fieldName,
'data[orderfields]['.$fieldName.']');
} else {
echo $this->fieldsClass->show($oneExtraField,
@$this->order->$fieldName);
}
?></span></dd>
<?php
}
}
if(hikamarket::acl('order/edit/history')) {
?>
<dt
class="hikamarket_orderadditional_history"><label><?php
echo JText::_('HISTORY'); ?></label></dt>
<dd class="hikamarket_orderadditional_history">
<span><input
onchange="window.orderMgr.orderadditional_history_changed(this);"
type="checkbox"
id="hikamarket_history_orderadditional_store"
name="data[history][store_data]"
value="1"/><label
for="hikamarket_history_orderadditional_store"
style="display:inline-block"><?php echo
JText::_('SET_HISTORY_MESSAGE');?></label></span><br/>
<textarea id="hikamarket_history_orderadditional_msg"
name="data[history][msg]"
style="display:none;"></textarea>
</dd>
<script type="text/javascript">
if(!window.orderMgr)
window.orderMgr = {};
window.orderMgr.orderadditional_history_changed = function(el) {
var fields = ['hikamarket_history_orderadditional_msg'],
displayValue = '';
if(!el.checked) displayValue = 'none';
window.hikamarket.setArrayDisplay(fields, displayValue);
}
</script>
<?php
}
?>
</dl>
<input type="hidden" name="data[additional]"
value="1" />
<input type="hidden" name="data[customfields]"
value="1" />
<input type="hidden" name="cid[]"
value="<?php echo @$this->order->order_id; ?>" />
<input type="hidden" name="option"
value="<?php echo HIKAMARKET_COMPONENT; ?>" />
<input type="hidden" name="task"
value="save" />
<input type="hidden" name="subtask"
value="additional" />
<input type="hidden" name="tmpl"
value="component" />
<input type="hidden" name="ctrl"
value="order" />
<?php echo JHTML::_( 'form.token' ); ?>
</form>
PK�[�!!(views/ordermarket/tmpl/edit_products.phpnu�[���<?php
/**
* @package HikaMarket for Joomla!
* @version 3.1.1
* @author Obsidev S.A.R.L.
* @copyright (C) 2011-2020 OBSIDEV. All rights reserved.
* @license GNU/GPLv3 http://www.gnu.org/licenses/gpl-3.0.html
*/
defined('_JEXEC') or die('Restricted access');
?><form action="<?php echo
hikamarket::completeLink('order&task=save&subtask=product&tmpl=component');
?>" name="hikamarket_order_product_form"
id="hikamarket_order_product_form" method="post"
enctype="multipart/form-data">
<dl class="hikam_options">
<dt
class="hikamarket_order_product_id"><label><?php echo
JText::_('PRODUCT'); ?></label></dt>
<dd class="hikamarket_order_product_id"><?php echo
(int)@$this->orderProduct->product_id; ?> - <?php echo
@$this->originalProduct->product_name; ?></dd>
<dt
class="hikamarket_order_product_name"><label><?php
echo JText::_('HIKA_NAME'); ?></label></dt>
<dd class="hikamarket_order_product_name">
<input type="text"
name="data[order][product][order_product_name]"
value="<?php echo
$this->escape(@$this->orderProduct->order_product_name);
?>" />
</dd>
<dt
class="hikamarket_order_product_code"><label><?php
echo JText::_('PRODUCT_CODE'); ?></label></dt>
<dd class="hikamarket_order_product_code">
<input type="text"
name="data[order][product][order_product_code]"
value="<?php echo
$this->escape(@$this->orderProduct->order_product_code);
?>" />
</dd>
<dt
class="hikamarket_order_product_price"><label><?php
echo JText::_('UNIT_PRICE'); ?></label></dt>
<dd class="hikamarket_order_product_price">
<input type="text"
name="data[order][product][order_product_price]"
value="<?php echo @$this->orderProduct->order_product_price;
?>" />
</dd>
<dt
class="hikamarket_order_product_vat"><label><?php
echo JText::_('VAT'); ?></label></dt>
<dd class="hikamarket_order_product_vat">
<input type="text"
name="data[order][product][order_product_tax]"
value="<?php echo @$this->orderProduct->order_product_tax;
?>" />
<?php echo $this->ratesType->display(
"data[order][product][tax_namekey]" ,
@$this->orderProduct->order_product_tax_info[0]->tax_namekey );
?>
</dd>
<dt
class="hikamarket_order_product_quantity"><label><?php
echo JText::_('PRODUCT_QUANTITY');
?></label></dt>
<dd class="hikamarket_order_product_quantity">
<input type="text"
name="data[order][product][order_product_quantity]"
value="<?php echo
@$this->orderProduct->order_product_quantity; ?>" />
</dd>
<?php
if(!empty($this->fields['item'])) {
$editCustomFields = false;
$editCustomFields = true;
foreach($this->fields['item'] as $fieldName =>
$oneExtraField) {
?>
<dt class="hikamarket_order_product_customfield
hikamarket_order_product_customfield_<?php echo $fieldName;
?>"><?php echo
$this->fieldsClass->getFieldName($oneExtraField);?></dt>
<dd class="hikamarket_order_product_customfield
hikamarket_order_product_customfield_<?php echo $fieldName;
?>"><span><?php
if($editCustomFields) {
echo $this->fieldsClass->display($oneExtraField,
@$this->orderProduct->$fieldName,
'data[order][product]['.$fieldName.']',false,'',true);
} else {
echo $this->fieldsClass->show($oneExtraField,
@$this->orderProduct->$fieldName);
}
?></span></dd>
<?php
}
}
if(hikamarket::level(1) && $this->vendor->vendor_id <= 1
&& hikamarket::acl('order/edit/vendor') &&
!empty($this->orderProduct->vendor_data)) {
?>
<dt
class="hikamarket_orderproduct_vendor"><label><?php
echo JText::_('HIKA_VENDOR'); ?></label></dt>
<dd class="hikamarket_orderproduct_vendor"><?php
if(!empty($this->orderProduct->vendor_data->order_vendor_id))
{
echo $this->orderProduct->vendor_data->order_vendor_id;
echo ' - ';
if(isset($this->orderProduct->vendor_data->vendor_name))
echo $this->orderProduct->vendor_data->vendor_name;
else
echo $this->orderProduct->vendor->vendor_name;
} else
echo '-';
?><input type="hidden"
name="data[market][product][order_product_vendor_id]"
value="<?php echo
@$this->orderProduct->vendor_data->order_vendor_id;
?>"/></dd>
<dt
class="hikamarket_orderproduct_vendorprice"><label><?php
echo JText::_('HIKAM_VENDOR_UNIT_PRICE');
?></label></dt>
<dd class="hikamarket_orderproduct_vendorprice">
<input type="text"
name="data[order][product][order_product_vendor_price]"
value="<?php echo
@$this->orderProduct->vendor_data->order_product_vendor_price;
?>"/>
</dd>
<?php
}
if(hikamarket::acl('order/edit/history')) {
?>
<dt
class="hikamarket_orderproduct_history"><label><?php
echo JText::_('HISTORY'); ?></label></dt>
<dd class="hikamarket_orderproduct_history">
<span><input
onchange="window.orderMgr.orderproduct_history_changed(this);"
type="checkbox"
id="hikamarket_history_orderproduct_store"
name="data[history][store_data]"
value="1"/><label
for="hikamarket_history_orderproduct_store"
style="display:inline-block"><?php echo
JText::_('SET_HISTORY_MESSAGE');?></label></span><br/>
<textarea id="hikamarket_history_orderproduct_msg"
name="data[history][msg]"
style="display:none;"></textarea>
</dd>
<script type="text/javascript">
if(!window.orderMgr)
window.orderMgr = {};
window.orderMgr.orderproduct_history_changed = function(el) {
var fields = ['hikamarket_history_orderproduct_msg'],
displayValue = '';
if(!el.checked) displayValue = 'none';
window.hikamarket.setArrayDisplay(fields, displayValue);
}
</script>
<?php
}
?>
</dl>
<input type="hidden"
name="data[order][history][history_type]"
value="modification" />
<input type="hidden"
name="data[order][product][order_product_id]"
value="<?php echo
@$this->orderProduct->order_product_id;?>" />
<input type="hidden"
name="data[order][product][product_id]" value="<?php echo
@$this->orderProduct->product_id;?>" />
<input type="hidden"
name="data[order][product][order_id]" value="<?php echo
@$this->orderProduct->order_id;?>" />
<input type="hidden" name="data[products]"
value="1" />
<input type="hidden" name="cid[]"
value="<?php echo @$this->orderProduct->order_id; ?>"
/>
<input type="hidden" name="option"
value="<?php echo HIKAMARKET_COMPONENT; ?>" />
<input type="hidden" name="task"
value="save" />
<input type="hidden" name="subtask"
value="products" />
<input type="hidden" name="tmpl"
value="component" />
<input type="hidden" name="ctrl"
value="order" />
<?php echo JHTML::_( 'form.token' ); ?>
</form>
PK�[;�L]AA!views/ordermarket/tmpl/export.phpnu�[���<?php
/**
* @package HikaMarket for Joomla!
* @version 3.1.1
* @author Obsidev S.A.R.L.
* @copyright (C) 2011-2020 OBSIDEV. All rights reserved.
* @license GNU/GPLv3 http://www.gnu.org/licenses/gpl-3.0.html
*/
defined('_JEXEC') or die('Restricted access');
?><?php
while(ob_get_level() > 1)
ob_end_clean();
$separator = $this->shopConfig->get('csv_separator',
';');
$force_text = $this->shopConfig->get('csv_force_text',
false);
$decimal_separator =
$this->shopConfig->get('csv_decimal_separator','.');
$this->export->init($this->export_format,
'order_export', $separator, true, $decimal_separator,
$force_text);
if(!empty($this->orders)){
$maxProd = 0;
$productFields = null;
foreach($this->orders as $order){
$nbProd = count($order->products);
if($maxProd < $nbProd){
$maxProd = $nbProd;
if(empty($productFields)){
$productFields =
array_keys(get_object_vars(reset($order->products)));
}
}
}
if($maxProd && !empty($productFields)) {
$first = array();
$o = reset($this->orders);
foreach($o as $key => $val) {
if(is_array($val))
continue;
$first[] = $key;
}
$o = null;
for($i=1;$i<=$maxProd;$i++){
foreach($productFields as $field){
$first[] = 'item'.$i.'_'.$field;
}
}
} else {
$first = array_keys(get_object_vars(reset($this->orders)));
}
$this->export->writeLine($first);
foreach($this->orders as $row){
if(!empty($row->user_created)) $row->user_created =
hikashop_getDate($row->user_created,'%Y-%m-%d %H:%M:%S');
if(!empty($row->order_created)) $row->order_created =
hikashop_getDate($row->order_created,'%Y-%m-%d %H:%M:%S');
if(!empty($row->order_modified)) $row->order_modified =
hikashop_getDate($row->order_modified,'%Y-%m-%d %H:%M:%S');
if($maxProd && !empty($productFields)){
for($i=1;$i<=$maxProd;$i++){
$prod =& $row->products[$i-1];
foreach($productFields as $field){
$n = 'item_'.$i.'_'.$field;
$row->$n = @$prod->$field;
}
}
}
$this->export->writeLine($row);
}
}
$this->export->send();
exit;
PK�[=�s_
_
&views/ordermarket/tmpl/export_show.phpnu�[���<?php
/**
* @package HikaMarket for Joomla!
* @version 3.1.1
* @author Obsidev S.A.R.L.
* @copyright (C) 2011-2020 OBSIDEV. All rights reserved.
* @license GNU/GPLv3 http://www.gnu.org/licenses/gpl-3.0.html
*/
defined('_JEXEC') or die('Restricted access');
?><form action="<?php echo
hikamarket::completeLink('order'); ?>"
method="post" id="hikamarket_order_export_form"
name="hikamarket_order_export_form">
<dl class="hikam_options">
<dt
class="hikamarket_order_export_search"><label><?php
echo JText::_('FILTER'); ?></label></dt>
<dd class="hikamarket_order_export_search">
<?php if(!HIKASHOP_RESPONSIVE) { ?>
<input type="text" name="search"
id="hikamarket_order_listing_search" value="<?php echo
$this->escape($this->pageInfo->search);?>"
class=""/>
<?php } else { ?>
<div class="input-prepend input-append">
<span class="add-on"><i
class="icon-filter"></i></span>
<input type="text" name="search"
id="hikamarket_order_listing_search" value="<?php echo
$this->escape($this->pageInfo->search);?>"
class=""/>
</div>
<?php } ?>
</dd>
<dt
class="hikamarket_order_export_status"><label><?php
echo JText::_('ORDER_STATUS'); ?></label></dt>
<dd class="hikamarket_order_export_status"><?php
echo $this->orderStatusType->display('filter_status',
$this->pageInfo->filter->filter_status, '', true);
?></dd>
<dt
class="hikamarket_order_export_payment"><label><?php
echo JText::_('HIKASHOP_PAYMENT_METHOD');
?></label></dt>
<dd class="hikamarket_order_export_payment"><?php
echo $this->paymentType->display('filter_payment',
$this->pageInfo->filter->filter_payment, false);
?></dd>
<dt
class="hikamarket_order_export_startdate"><label><?php
echo JText::_('START_DATE'); ?></label></dt>
<dd class="hikamarket_order_export_startdate"><?php
echo JHTML::_('calendar',
hikamarket::getDate((!empty($this->pageInfo->filter->filter_startdate)?$this->pageInfo->filter->filter_startdate:''),'%Y-%m-%d
%H:%M'),
'filter_startdate','start_date','%Y-%m-%d
%H:%M',array('size' => '20'));
?></dd>
<dt
class="hikamarket_order_export_enddate"><label><?php
echo JText::_('END_DATE'); ?></label></dt>
<dd class="hikamarket_order_export_enddate"><?php
echo JHTML::_('calendar',
hikamarket::getDate((!empty($this->pageInfo->filter->filter_enddate)?$this->pageInfo->filter->filter_enddate:''),'%Y-%m-%d
%H:%M'),
'filter_enddate','end_date','%Y-%m-%d
%H:%M',array('size' => '20'));
?></dd>
<dt
class="hikamarket_order_export_format"><label><?php
echo JText::_('EXPORT_FORMAT'); ?></label></dt>
<dd class="hikamarket_order_export_format"><?php
$values = array(
JHTML::_('select.option', 'csv',
JText::_('HIKAM_EXPORT_CSV')),
JHTML::_('select.option', 'xls',
JText::_('HIKAM_EXPORT_XLS'))
);
echo JHTML::_('hikaselect.radiolist', $values,
'data[export][format]', '', 'value',
'text', 'csv');
?></dd>
</dl>
<input type="hidden" name="Itemid"
value="<?php echo $this->Itemid; ?>" />
<input type="hidden" name="option"
value="<?php echo HIKAMARKET_COMPONENT; ?>" />
<input type="hidden" name="task"
value="export" />
<input type="hidden" name="ctrl"
value="<?php echo hikaInput::get()->getCmd('ctrl');
?>" />
<?php echo JHTML::_( 'form.token' ); ?>
</form>
<script type="text/javascript">
window.hikashop.ready(function(){
window.hikamarket.dlTitle('hikamarket_order_export_form'); });
</script>
PK�[�F�zD#D#"views/ordermarket/tmpl/history.phpnu�[���<?php
/**
* @package HikaMarket for Joomla!
* @version 3.1.1
* @author Obsidev S.A.R.L.
* @copyright (C) 2011-2020 OBSIDEV. All rights reserved.
* @license GNU/GPLv3 http://www.gnu.org/licenses/gpl-3.0.html
*/
defined('_JEXEC') or die('Restricted access');
?><?php
if(empty($this->history))
return;
?>
<div class="hikamarket_order">
<dl class="hikam_options">
<dt
class="hikamarket_order_history_type"><label><?php
echo JText::_('HIKA_TYPE'); ?></label></dt>
<dd
class="hikamarket_order_history_type"><span><?php
if(!empty($this->history->history_type))
echo $this->escape($this->history->history_type);
else
echo '<em>' . JText::_('HIKA_NONE') .
'</em>';
?></span></dd>
<dt
class="hikamarket_order_history_date"><label><?php
echo JText::_('DATE'); ?></label></dt>
<dd
class="hikamarket_order_history_date"><span><?php
echo hikamarket::getDate($this->history->history_created,
'%Y-%m-%d %H:%M');
?></span></dd>
<dt
class="hikamarket_order_history_user"><label><?php
echo JText::_('HIKA_USER'); ?></label></dt>
<dd
class="hikamarket_order_history_user"><span><?php
echo $this->escape($this->history->user->name) . '
(' . $this->escape($this->history->user->user_email) .
')';
?></span></dd>
<dt
class="hikamarket_order_history_status"><label><?php
echo JText::_('ORDER_STATUS'); ?></label></dt>
<dd
class="hikamarket_order_history_status"><span><?php
echo hikamarket::orderStatus($this->history->history_new_status);
?></span></dd>
<?php if(!empty($this->history->history_reason)) { ?>
<dt
class="hikamarket_order_history_reason"><label><?php
echo JText::_('REASON'); ?></label></dt>
<dd
class="hikamarket_order_history_reason"><span><?php
echo $this->escape($this->history->history_reason);
?></span></dd>
<?php } ?>
<?php if(!empty($this->history->history_ip)) { ?>
<dt
class="hikamarket_order_history_ip"><label><?php echo
JText::_('IP'); ?></label></dt>
<dd
class="hikamarket_order_history_ip"><span><?php
echo $this->escape($this->history->history_ip);
?></span></dd>
<?php } ?>
<?php if(!empty($this->history->history_data) &&
is_string($this->history->history_data)) { ?>
<dt
class="hikamarket_order_history_data"><label><?php
echo JText::_('DATA'); ?></label></dt>
<dd
class="hikamarket_order_history_data"><span><?php
echo $this->escape($this->history->history_data);
?></span></dd>
<?php } ?>
</dl>
<?php if(!empty($this->history->history_data) &&
!is_string($this->history->history_data)) { ?>
<div class="hikamarket_order_history_data"><?php
if(isset($this->history->history_data['customer'])) {
$data = $this->history->history_data['customer'];
$userClass = hikamarket::get('shop.class.user');
$old_customer = $new_customer = null;
if(!empty($data['old']))
$old_customer = $userClass->get( (int)$data['old'] );
if(!empty($data['new']))
$new_customer = $userClass->get( (int)$data['new'] );
?>
<h3><?php echo JText::_('HIKAM_HISTORY_CUSTOMER');
?></h3>
<h4><?php echo JText::_('HIKAM_HISTORY_OLD');
?></h4>
<dl class="hikam_options">
<dt class="history_data_customer_name"><?php echo
JText::_('HIKA_NAME'); ?></dt>
<dd class="history_data_customer_name"><?php
if(empty($old_customer))
echo JText::_('HIKAM_USER_DOES_NOT_EXIST_ANYMORE');
elseif(!empty($old_customer->name))
echo $old_customer->name;
else
echo '<em>' . JText::_('HIKA_NONE') .
'</em>';
?></dd>
<?php if(!empty($old_customer)) { ?>
<dt
class="history_data_customer_email"><label><?php echo
JText::_('HIKA_EMAIL');?></label></dt>
<dd class="history_data_customer_email"><?php echo
$this->escape(@$new_customer->user_email); ?></dd>
<?php } ?>
</dl>
<h4><?php echo JText::_('HIKAM_HISTORY_NEW');
?></h4>
<dl class="hikam_options">
<dt class="history_data_customer_name"><?php echo
JText::_('HIKA_NAME'); ?></dt>
<dd class="history_data_customer_name"><?php
if(empty($new_customer))
echo JText::_('HIKAM_USER_DOES_NOT_EXIST_ANYMORE');
elseif(!empty($new_customer->name))
echo $new_customer->name;
else
echo '<em>' . JText::_('HIKA_NONE') .
'</em>';
?></dd>
<?php if(!empty($new_customer)) { ?>
<dt
class="history_data_customer_email"><label><?php echo
JText::_('HIKA_EMAIL');?></label></dt>
<dd class="history_data_customer_email"><?php echo
$this->escape(@$new_customer->user_email); ?></dd>
<?php } ?>
</dl>
<?php
}
if(isset($this->history->history_data['coupon'])) {
$data = $this->history->history_data['coupon'];
?>
<h3><?php echo JText::_('HIKAM_HISTORY_COUPON');
?></h3>
<h4><?php echo JText::_('HIKAM_HISTORY_OLD');
?></h4>
<dl class="hikam_options">
<?php if(isset($data['old']['code'])) { ?>
<dt
class="history_data_coupon_code"><label><?php echo
JText::_('COUPON_CODE');?></label></dt>
<dd class="history_data_coupon_code"><?php echo
$this->escape($data['old']['code']);
?></dd>
<?php } ?>
<?php if(isset($data['old']['value'])) { ?>
<dt
class="history_data_coupon_value"><label><?php echo
JText::_('COUPON_VALUE');?></label></dt>
<dd class="history_data_coupon_value"><?php
echo
(float)hikamarket::toFloat($data['old']['value']);
?></dd>
<?php } ?>
<?php if(isset($data['old']['tax'])) { ?>
<dt class="history_data_coupon_tax"><label><?php
echo JText::_('COUPON_TAX');?></label></dt>
<dd class="history_data_coupon_tax"><?php
echo
(float)hikamarket::toFloat($data['old']['tax']);
?></dd>
<?php } ?>
<?php if(isset($data['old']['tax_namekey'])) {
?>
<dt
class="history_data_coupon_taxnamekey"><label><?php
echo JText::_('COUPON_TAX');?></label></dt>
<dd class="history_data_coupon_taxnamekey"><?php echo
$this->escape($data['old']['tax_namekey']);
?></dd>
<?php } ?>
</dl>
<h4><?php echo JText::_('HIKAM_HISTORY_NEW');
?></h4>
<dl class="hikam_options">
<?php if(isset($data['new']['code'])) { ?>
<dt
class="history_data_coupon_code"><label><?php echo
JText::_('COUPON_CODE');?></label></dt>
<dd class="history_data_coupon_code"><?php echo
$this->escape($data['new']['code']);
?></dd>
<?php } ?>
<?php if(isset($data['new']['value'])) { ?>
<dt
class="history_data_coupon_value"><label><?php echo
JText::_('COUPON_VALUE');?></label></dt>
<dd class="history_data_coupon_value"><?php
echo
(float)hikamarket::toFloat($data['new']['value']);
?></dd>
<?php } ?>
<?php if(isset($data['new']['tax'])) { ?>
<dt class="history_data_coupon_tax"><label><?php
echo JText::_('COUPON_TAX');?></label></dt>
<dd class="history_data_coupon_tax"><?php
echo
(float)hikamarket::toFloat($data['new']['tax']);
?></dd>
<?php } ?>
<?php if(isset($data['new']['tax_namekey'])) {
?>
<dt
class="history_data_coupon_taxnamekey"><label><?php
echo JText::_('COUPON_TAX');?></label></dt>
<dd class="history_data_coupon_taxnamekey"><?php echo
$this->escape($data['new']['tax_namekey']);
?></dd>
<?php } ?>
</dl>
<?php
}
if(isset($this->history->history_data['shipping'])) {
$data = $this->history->history_data['shipping'];
}
if(isset($this->history->history_data['payment'])) {
$data = $this->history->history_data['payment'];
}
if(isset($this->history->history_data['fields'])) {
$data = $this->history->history_data['fields'];
}
if(isset($this->history->history_data['billing_address']))
{
$data = $this->history->history_data['billing_address'];
}
if(isset($this->history->history_data['shipping_address']))
{
$data =
$this->history->history_data['shipping_address'];
}
if(isset($this->history->history_data['product'])) {
$data = $this->history->history_data['product'];
}
if(isset($this->history->history_data['product_delete']))
{
$data = $this->history->history_data['product_delete'];
?>
<h3><?php echo
JText::_('HIKAM_HISTORY_PRODUCT_DELETE'); ?></h3>
<dl class="hikam_options">
<dt
class="history_data_productdelete_id"><label><?php
echo JText::_('ID');?></label></dt>
<dd class="history_data_productdelete_id"><?php echo
(int)$data['product']['id']; ?></dd>
<dt
class="history_data_productdelete_name"><label><?php
echo JText::_('PRODUCT_NAME');?></label></dt>
<dd class="history_data_productdelete_name"><?php echo
$this->escape($data['product']['name']);
?></dd>
<dt
class="history_data_productdelete_code"><label><?php
echo JText::_('PRODUCT_CODE');?></label></dt>
<dd class="history_data_productdelete_code"><?php echo
$this->escape($data['product']['code']);
?></dd>
<dt
class="history_data_productdelete_qty"><label><?php
echo JText::_('PRODUCT_QUANTITY');?></label></dt>
<dd class="history_data_productdelete_qty"><?php echo
(int)$data['product']['qty']; ?></dd>
<dt
class="history_data_productdelete_price"><label><?php
echo JText::_('PRICE');?></label></dt>
<dd class="history_data_productdelete_price"><?php
echo
(float)hikamarket::toFloat($data['product']['price']);
?></dd>
</dl>
<?php
}
?></div>
<?php } ?>
</div>
PK�[wtW�!views/ordermarket/tmpl/index.htmlnu�[���<html><body></body></html>PK�[��&�;;"views/ordermarket/tmpl/invoice.phpnu�[���<?php
/**
* @package HikaMarket for Joomla!
* @version 3.1.1
* @author Obsidev S.A.R.L.
* @copyright (C) 2011-2020 OBSIDEV. All rights reserved.
* @license GNU/GPLv3 http://www.gnu.org/licenses/gpl-3.0.html
*/
defined('_JEXEC') or die('Restricted access');
?><div id="hikamarket_invoice_main_div">
<div id="print" style="float:right">
<a href="#"
onclick="document.getElementById('print').style.visibility='hidden';window.focus();window.print();return
false;">
<img src="<?php echo HIKASHOP_IMAGES;
?>print.png"/>
</a>
</div>
<br/>
<table width="100%">
<tr>
<td>
<h1 style="text-align:center"><?php
if($this->invoice_type=='full') {
echo JText::_('INVOICE');
} else {
echo JText::_('SHIPPING_INVOICE');
}
?></h1>
</td>
</tr>
<tr>
<td>
<div style="float:right;width:100px;padding-top:20px">
<?php
$date = (!empty($this->element->order_invoice_created)) ?
$this->element->order_invoice_created :
@$this->element->order_created;
echo JText::_('DATE') . ': ' .
hikamarket::getDate($date, '%d %B %Y ');
?>
<br/>
<?php echo JText::_('INVOICE') . ': ' .
@$this->element->order_invoice_number; ?>
</div>
<p><?php
if($this->vendor->vendor_id == 0 || $this->vendor->vendor_id ==
1) {
echo $this->store_address;
} else {
$params = null; $js = null;
$html = hikamarket::getLayout('shop.address',
'address_template', $params, $js);
foreach($this->extraFields['vendor'] as $field) {
$fieldname = $field->field_namekey;
$html = str_replace('{' . str_replace('vendor_',
'', $fieldname) . '}',
$this->fieldsClass->show($field, $this->vendor->$fieldname),
$html);
}
echo
str_replace("\n","<br/>\n",trim(str_replace("\n\n","\n",preg_replace('#{(?:(?!}).)*}#i','',$html)),"\n"));
}
?></p>
</td>
</tr>
<tr>
<td>
<table width="100%">
<tr>
<?php if($this->invoice_type=='full' &&
!empty($this->element->billing_address)){ ?>
<td>
<fieldset class="adminform"
id="htmlfieldset_billing">
<legend style="background-color: #FFFFFF;"><?php
echo JText::_('HIKASHOP_BILLING_ADDRESS'); ?></legend>
<?php
$params = null; $js = null;
$html = hikamarket::getLayout('shop.address',
'address_template', $params, $js);
foreach($this->element->fields as $field) {
$fieldname = $field->field_namekey;
$html = str_replace('{'.$fieldname.'}',
$this->fieldsClass->show($field,
$this->element->billing_address->$fieldname), $html);
}
echo
str_replace("\n","<br/>\n",trim(str_replace("\n\n","\n",preg_replace('#{(?:(?!}).)*}#i','',$html)),"\n"));
?>
</fieldset>
</td>
<?php } ?>
<td>
<?php if(!empty($this->element->order_shipping_id) &&
!empty($this->element->shipping_address)) { ?>
<fieldset class="adminform"
id="htmlfieldset_shipping">
<legend style="background-color: #FFFFFF;"><?php
echo JText::_('HIKASHOP_SHIPPING_ADDRESS'); ?></legend>
<?php
if(empty($this->element->override_shipping_address)) {
$params = null; $js = null;
$html = hikamarket::getLayout('shop.address',
'address_template', $params, $js);
foreach($this->element->fields as $field){
$fieldname = $field->field_namekey;
$html = str_replace('{'.$fieldname.'}',
$this->fieldsClass->show($field,
$this->element->shipping_address->$fieldname), $html);
}
echo str_replace("\n", "<br/>\n",
trim(str_replace("\n\n", "\n",
preg_replace('#{(?:(?!}).)*}#i', '',
$html)),"\n"));
} else {
echo $this->element->override_shipping_address;
}
?>
</fieldset>
<?php } ?>
</td>
</tr>
</table>
</td>
</tr>
<tr>
<td>
<fieldset class="adminform"
id="htmlfieldset_products">
<legend style="background-color: #FFFFFF;"><?php
echo JText::_('PRODUCT_LIST'); ?></legend>
<table class="adminlist table table-striped"
cellpadding="1" width="100%">
<thead>
<tr>
<th class="title" width="60%">
<?php echo JText::_('PRODUCT'); ?>
</th>
<?php if ($this->shopConfig->get('show_code')) { ?>
<th class="title" ><?php echo
JText::_('CART_PRODUCT_CODE'); ?></th>
<?php } ?>
<?php if($this->invoice_type == 'full') { ?>
<th class="title">
<?php echo JText::_('UNIT_PRICE'); ?>
</th>
<?php } ?>
<th class="title titletoggle">
<?php echo JText::_('PRODUCT_QUANTITY'); ?>
</th>
<?php if($this->invoice_type == 'full') { ?>
<th class="title titletoggle">
<?php echo JText::_('PRICE'); ?>
</th>
<?php } ?>
</tr>
</thead>
<tbody>
<?php
$k = 0;
$group = $this->shopConfig->get('group_options', 0);
foreach($this->order->products as $product) {
if($group && $product->order_product_option_parent_id)
continue;
?>
<tr class="row<?php echo $k;?>">
<td>
<?php echo $product->order_product_name.'
'.$product->order_product_code; ?>
<p
class="hikashop_order_product_custom_item_fields">
<?php
if($group) {
$display_item_price = false;
foreach($this->order->products as $j => $optionElement) {
if($optionElement->order_product_option_parent_id !=
$product->order_product_id)
continue;
if($optionElement->order_product_price > 0) {
$display_item_price = true;
}
}
if($display_item_price) {
if($this->shopConfig->get('price_with_tax')) {
echo '
'.$this->currencyHelper->format($product->order_product_price+$product->order_product_tax,$this->order->order_currency_id);
} else {
echo '
'.$this->currencyHelper->format($product->order_product_price,$this->order->order_currency_id);
}
}
}
if(hikashop_level(2) &&
!empty($this->fields['item'])) {
foreach($this->fields['item'] as $field) {
$namekey = $field->field_namekey;
if(empty($product->$namekey))
continue;
echo '<p
class="hikashop_order_item_'.$namekey.'">'.$this->fieldsClass->getFieldName($field).':
'.$this->fieldsClass->show($field,$product->$namekey).'</p>';
}
}
if($group) {
foreach($this->order->products as $j => $optionElement) {
if($optionElement->order_product_option_parent_id !=
$product->order_product_id) continue;
$product->order_product_price
+=$optionElement->order_product_price;
$product->order_product_tax +=$optionElement->order_product_tax;
$product->order_product_total_price+=$optionElement->order_product_total_price;
$product->order_product_total_price_no_vat+=$optionElement->order_product_total_price_no_vat;
?>
<p class="hikashop_order_option_name">
<?php
echo $optionElement->order_product_name;
if($optionElement->order_product_price > 0) {
if($this->shopConfig->get('price_with_tax')) {
echo ' ( +
'.$this->currencyHelper->format($optionElement->order_product_price+$optionElement->order_product_tax,$this->order->order_currency_id).'
)';
} else {
echo ' ( +
'.$this->currencyHelper->format($optionElement->order_product_price,$this->order->order_currency_id).'
)';
}
}
?>
</p>
<?php
}
}
?>
</p>
</td>
<?php if ($this->shopConfig->get('show_code')) { ?>
<td><p
class="hikashop_product_code_invoice"><?php echo
$product->order_product_code; ?></p></td>
<?php } ?>
<?php if($this->invoice_type == 'full') {?>
<td>
<?php
if($this->shopConfig->get('price_with_tax')) {
echo
$this->currencyHelper->format($product->order_product_price+$product->order_product_tax,$this->order->order_currency_id);
} else {
echo
$this->currencyHelper->format($product->order_product_price,$this->order->order_currency_id);
}
?>
</td>
<?php } ?>
<td align="center"><?php echo
$product->order_product_quantity;?></td>
<?php if($this->invoice_type == 'full') { ?>
<td>
<?php
if($this->shopConfig->get('price_with_tax')) {
echo
$this->currencyHelper->format($product->order_product_total_price,$this->order->order_currency_id);
} else {
echo
$this->currencyHelper->format($product->order_product_total_price_no_vat,$this->order->order_currency_id);
}
?>
</td>
<?php } ?>
</tr>
<?php
$k = 1 - $k;
}
?>
<?php if($this->invoice_type == 'full') { ?>
<tr>
<td style="border-top:2px solid #B8B8B8;"
colspan="2"></td>
<td style="border-top:2px solid #B8B8B8;"
class="key">
<label><?php echo JText::_('SUBTOTAL');
?></label>
</td>
<td style="border-top:2px solid #B8B8B8;">
<?php
if($this->shopConfig->get('price_with_tax')) {
echo
$this->currencyHelper->format($this->order->order_subtotal,$this->order->order_currency_id);
} else {
echo
$this->currencyHelper->format($this->order->order_subtotal_no_vat,$this->order->order_currency_id);
}
?>
</td>
</tr>
<?php
$taxes = $this->order->order_subtotal -
$this->order->order_subtotal_no_vat +
$this->order->order_shipping_tax -
$this->order->order_discount_tax -
$this->order->order_payment_tax;
if($taxes != 0) {
if($this->shopConfig->get('detailed_tax_display')
&& !empty($this->order->order_tax_info)) {
foreach($this->order->order_tax_info as $tax) {
?>
<tr>
<td colspan="2">
</td>
<td class="hikashop_order_tax_title key">
<label><?php
echo $tax->tax_namekey;
?></label>
</td>
<td class="hikashop_order_tax_value"><?php
echo $this->currencyHelper->format($tax->tax_amount,
$this->order->order_currency_id);
?></td>
</tr>
<?php
}
} else {
?>
<tr>
<td colspan="2">
</td>
<td class="hikashop_order_tax_title key">
<label><?php
echo JText::_('VAT');
?></label>
</td>
<td class="hikashop_order_tax_value"><?php
echo $this->currencyHelper->format($taxes,
$this->order->order_currency_id);
?></td>
</tr>
<?php
}
}
if($this->order->order_discount_price != 0) {
?>
<tr>
<td colspan="2">
</td>
<td class="key">
<label><?php
echo JText::_('HIKASHOP_COUPON');
?></label>
</td>
<td>
<?php
if($this->shopConfig->get('price_with_tax')) {
echo
$this->currencyHelper->format($this->order->order_discount_price
* -1.0, $this->order->order_currency_id);
} else {
echo
$this->currencyHelper->format(($this->order->order_discount_price
- @$this->order->order_discount_tax) * -1.0,
$this->order->order_currency_id);
}
?>
</td>
</tr>
<?php }
if(!empty($this->order->additional)) {
$exclude_additionnal = explode(',',
$this->shopConfig->get('order_additional_hide',
''));
foreach($this->order->additional as $additional) {
if(in_array($additional->order_product_name, $exclude_additionnal))
continue;
?>
<tr>
<td colspan="2">
</td>
<td class="hikashop_order_additionall_title key">
<label><?php
echo JText::_($additional->order_product_name);
?></label>
</td>
<td><?php
if(!empty($additional->order_product_price)) {
$additional->order_product_price =
(float)$additional->order_product_price;
}
if(!empty($additional->order_product_price) ||
empty($additional->order_product_options)) {
echo
$this->currencyHelper->format($additional->order_product_price,
$this->order->order_currency_id);
} else {
echo $additional->order_product_options;
}
?></td>
</tr>
<?php
}
}
if($this->order->order_shipping_price != 0) {
?>
<tr>
<td colspan="2">
</td>
<td class="key">
<label><?php echo JText::_( 'SHIPPING' );
?></label>
</td>
<td>
<?php
if($this->shopConfig->get('price_with_tax')) {
echo
$this->currencyHelper->format($this->order->order_shipping_price,
$this->order->order_currency_id);
} else {
echo
$this->currencyHelper->format($this->order->order_shipping_price
- @$this->order->order_shipping_tax,
$this->order->order_currency_id);
}
?>
</td>
</tr>
<?php
}
if($this->order->order_payment_price != 0 ||
($this->shopConfig->get('price_with_tax') &&
$this->order->order_payment_tax != 0)) {
?>
<tr>
<td colspan="2">
</td>
<td class="key">
<label><?php echo JText::_( 'HIKASHOP_PAYMENT'
); ?></label>
</td>
<td><?php
if($this->shopConfig->get('price_with_tax')) {
echo
$this->currencyHelper->format($this->order->order_payment_price,
$this->order->order_currency_id);
} else {
echo
$this->currencyHelper->format($this->order->order_payment_price
- @$this->order->order_payment_tax,
$this->order->order_currency_id);
}
?></td>
</tr>
<?php } ?>
<tr>
<td colspan="2">
</td>
<td class="key">
<label><?php echo JText::_( 'HIKASHOP_TOTAL' );
?></label>
</td>
<td><?php echo
$this->currencyHelper->format($this->order->order_full_price,
$this->order->order_currency_id); ?></td>
</tr>
<?php } ?>
</tbody>
</table>
</fieldset>
</td>
</tr>
<?php
JPluginHelper::importPlugin('hikashop');
JPluginHelper::importPlugin('hikamarket');
JFactory::getApplication()->triggerEvent('onAfterOrderProductsListingDisplay',
array(&$this->order, 'order_frontvendor_invoice'));
if($this->invoice_type == 'full') {
if(!empty($this->fields['order']) &&
hikashop_level(2)) {
?>
<tr>
<td>
<fieldset
class="hikashop_order_custom_fields_fieldset">
<legend><?php echo
JText::_('ADDITIONAL_INFORMATION'); ?></legend>
<table class="hikashop_order_custom_fields_table
adminlist" cellpadding="1" width="100%">
<?php foreach($this->fields['order'] as $fieldName =>
$oneExtraField) { ?>
<tr class="hikashop_order_custom_field_<?php echo
$fieldName;?>_line">
<td class="key"><?php echo
$this->fieldsClass->getFieldName($oneExtraField);?></td>
<td><?php echo
$this->fieldsClass->show($oneExtraField,
@$this->order->$fieldName); ?></td>
</tr>
<?php } ?>
</table>
</fieldset>
</td>
</tr>
<?php } ?>
<tr>
<td>
<?php
if(!empty($this->shipping)) {
echo JText::_('HIKASHOP_SHIPPING_METHOD').' : ';
if(is_string($this->order->order_shipping_method))
echo
$this->shipping->getName($this->order->order_shipping_method,
$this->order->order_shipping_id);
else
echo implode(', ',
$this->order->order_shipping_method);
echo '<br/>';
}
if(!empty($this->payment)) {
echo JText::_('HIKASHOP_PAYMENT_METHOD').' :
'.$this->payment->getName($this->order->order_payment_method,
$this->order->order_payment_id);
}
?>
</td>
</tr>
<?php } ?>
<tr>
<td>
</td>
</tr>
</table>
</div>
<div style="page-break-after:always"></div>
PK�[~�㏦$�$"views/ordermarket/tmpl/listing.phpnu�[���<?php
/**
* @package HikaMarket for Joomla!
* @version 3.1.1
* @author Obsidev S.A.R.L.
* @copyright (C) 2011-2020 OBSIDEV. All rights reserved.
* @license GNU/GPLv3 http://www.gnu.org/licenses/gpl-3.0.html
*/
defined('_JEXEC') or die('Restricted access');
?><div id="hikam_product_listing">
<form action="<?php echo
hikamarket::completeLink('order&task=listing'); ?>"
method="post" id="adminForm"
name="adminForm">
<div class="hk-row-fluid">
<div class="hkc-md-12">
<?php
echo $this->loadHkLayout('search', array(
'id' => 'hikamarket_order_listing_search'
));
?>
<div class="hikam_sort_zone"><?php
if(!empty($this->ordering_values))
echo JHTML::_('select.genericlist',
$this->ordering_values, 'filter_fullorder',
'onchange="this.form.submit();"', 'value',
'text', $this->full_ordering);
?></div>
</div>
<div class="hkc-md-12">
<div class="expand-filters">
<?php
echo $this->orderStatusType->display('filter_status',
$this->pageInfo->filter->filter_status, '
onchange="document.adminForm.submit();"', true);
if(!empty($this->pageInfo->filter->filter_user)) {
$userClass = hikamarket::get('shop.class.user');
$user_filter =
$userClass->get($this->pageInfo->filter->filter_user);
?>
<input type="hidden" name="filter_user"
value="<?php echo
(int)$this->pageInfo->filter->filter_user; ?>"
id="hikamarket_order_listing_filter_user" />
<button class="hikabtn" onclick="var el =
document.getElementById('hikamarket_order_listing_filter_user');
if(el) el.value = ''; document.adminForm.submit(); return
false;"><?php echo $user_filter->user_email; ?> <i
class="far fa-trash-alt"></i></button>
<?php
}
foreach($this->extrafilters as $name => $filterObj) {
echo $filterObj->displayFilter($name, $this->pageInfo->filter);
}
?>
</div>
<div style="clear:both"></div>
</div>
</div>
<?php
if(!empty($this->order_stats)) {
?><table class="order_statistics hikam_table
hikam_bordered" style="width:100%">
<tr>
<?php
$width = floor(100 / (count($this->order_stats)+1));
$total_orders = 0;
foreach($this->order_stats as $status => $obj) {
if(empty($status))
continue;
$total = (int)$obj->total;
$total_orders += $total;
$class = ($this->pageInfo->filter->filter_status == $status) ?
'order_statistics_active' : '';
?> <td style="width:<?php echo $width;?>%"
class="<?php echo $class; ?>">
<a href="<?php echo
hikamarket::completeLink('order&task=listing&filter_status='.$status);
?>">
<span class="value"><?php echo $total;
?></span>
<span class="order-label order-label-<?php echo
preg_replace('#[^a-z_0-9]#i', '_', str_replace('
','_',$status)); ?>"><?php
echo hikamarket::orderStatus($status);
?></span>
</a>
</td>
<?php
}
?>
<td style="width:<?php echo $width;?>%">
<a href="<?php echo
hikamarket::completeLink('order&task=listing&filter_status=');
?>">
<span class="value"><?php echo $total_orders;
?></span>
<span class="order-label order-label-all"><?php echo
JText::_('HIKAM_STAT_ALL'); ?></span>
</a>
</td>
</tr>
</table>
<?php
}
?>
<div id="hikam_order_main_listing">
<?php
$manage = hikamarket::acl('order/show');
$extra_classes = '';
foreach($this->orders as $order) {
$url = ($manage) ?
hikamarket::completeLink('order&task=show&cid='.$order->order_id)
: null;
?>
<div class="hk-card hk-card-default hk-card-vendor-order<?php
echo $extra_classes; ?>" data-hkm-order="<?php echo
(int)$order->order_id; ?>">
<div class="hk-card-header">
<?php if(!empty($url)) { ?>
<a class="hk-row-fluid" href="<?php echo $url;
?>">
<?php } else { ?>
<div class="hk-row-fluid">
<?php } ?>
<div class="hkc-sm-6 hkm_order_date">
<i class="fa fa-clock"></i>
<?php echo hikashop_getDate((int)$order->order_created,
'%Y-%m-%d %H:%M'); ?>
</div>
<div class="hkc-sm-6 hkm_order_price">
<i class="fa fa-credit-card"></i>
<?php echo
$this->currencyHelper->format($order->order_full_price,
$order->order_currency_id); ?>
</div>
<?php if(!empty($url)) { ?>
</a>
<?php } else { ?>
</div>
<?php } ?>
</div>
<div class="hk-card-body">
<div class="hk-row-fluid">
<div class="hkc-sm-4 hkm_order_number">
<?php
if(!empty($url)) {
?><a href="<?php echo $url; ?>"><?php
}
?><i class="far fa-file-alt"
style="margin-right:4px;"></i><span
class="hika_order_number_value"><?php echo
$order->order_number; ?></span><?php
if(!empty($url)) {
?></a><?php
}
?>
<?php if(!empty($order->order_invoice_number)) { ?>
<span class="hkm_order_number_invoice_separator"> -
</span>
<span class="hkm_invoice_number_value"><?php echo
$order->order_invoice_number; ?></span>
<?php } ?>
<?php if(hikamarket::acl('order/show/customer')) { ?>
<div class="hkm_order_customer">
<i class="fas fa-user"></i> <?php echo
$this->escape($order->user_email); ?>
</div>
<?php } ?>
</div>
<div class="hkc-sm-2 hkm_order_status">
<span class="order-label order-label-<?php echo
preg_replace('#[^a-z_0-9]#i', '_', str_replace('
','_',$order->order_status)); ?>"><?php
echo hikamarket::orderStatus($order->order_status);
?></span>
</div>
<div class="hkc-sm-3 hkm_order_billing">
<?php
if(hikamarket::acl('order/show/billingaddress') &&
!empty($order->order_billing_address_id)) {
$full_address =
$this->addressClass->maxiFormat($this->addresses[(int)$order->order_billing_address_id],
$this->address_fields, true);
$country =
$this->addressClass->miniFormat($this->addresses[(int)$order->order_billing_address_id],
$this->address_fields, '{address_city}, {address_state_code_3}
{address_country_code_3}');
echo hikamarket::tooltip($full_address,
JText::_('HIKASHOP_BILLING_ADDRESS'), '', $country,
'', 0);
if(!empty($order->order_payment_method))
echo '<br/>';
}
if(!empty($order->order_payment_method)) {
$payment_price =
$this->currencyHelper->format($order->order_payment_price,
$order->order_currency_id);
if(!empty($this->payments[$order->order_payment_id]))
$payment_name =
$this->payments[$order->order_payment_id]->payment_name;
else
$payment_name = $order->order_payment_method;
echo '<span class="hk-label hk-label-blue">' .
hikamarket::tooltip($payment_price, '', '',
$payment_name, '', 0) .
'</span>';
}
?>
</div>
<div class="hkc-sm-3 hkm_order_shipping">
<?php
if(hikamarket::acl('order/show/shippingaddress') &&
!empty($order->order_shipping_address_id) &&
!empty($order->order_shipping_id)) {
$full_address =
$this->addressClass->maxiFormat($this->addresses[(int)$order->order_shipping_address_id],
$this->address_fields, true);
$country =
$this->addressClass->miniFormat($this->addresses[(int)$order->order_shipping_address_id],
$this->address_fields, '{address_city}, {address_state_code_3}
{address_country_code_3}');
echo hikamarket::tooltip($full_address,
JText::_('HIKASHOP_SHIPPING_ADDRESS'), '', $country,
'', 0);
if(!empty($order->shipping_name))
echo '<br/>';
}
if(!empty($order->shipping_name)) {
if($this->shopConfig->get('price_with_tax'))
$shipping_price =
$this->currencyHelper->format($order->order_shipping_price,
$order->order_currency_id);
else
$shipping_price =
$this->currencyHelper->format($order->order_shipping_price -
@$order->order_shipping_tax, $order->order_currency_id);
echo '<span class="hk-label hk-label-blue">';
if(is_string($order->shipping_name)) {
echo hikamarket::tooltip($shipping_price, '', '',
$order->shipping_name, '', 0);
} else
echo hikamarket::tooltip('- '.implode('<br/>-
',$order->shipping_name),
JText::_('SHIPPING_PRICE').': '.$shipping_price,
'',
'<em>'.JText::_('HIKAM_SEVERAL_SHIPPING').'
»</em>', '', 0);
echo '</span>';
}
?>
</div>
<?php
if(!empty($this->fields)) {
?>
<div class="hkc-sm-12 hkm_order_fields">
<?php
$field_cpt = 0;
foreach($this->fields as $field) {
$namekey = $field->field_namekey;
if($field->field_type == 'customtext' ||
empty($order->$namekey))
continue;
if(empty($field_cpt))
echo '<dl>';
$field_cpt++;
echo
'<dt>'.$this->fieldClass->trans($field->field_realname)
. '</dt>'.
'<dd>'.$this->fieldClass->show($field,
$order->$namekey).'</dd>';
}
if($field_cpt > 0)
echo '</dl>';
?>
</div>
<?php
}
?>
</div>
</div>
</div>
<?php
}
?>
<div class="hikamarket_orders_footer">
<div class="hikamarket_pagination">
<?php $this->pagination->form = '_bottom'; echo
$this->pagination->getListFooter(); ?>
<?php echo $this->pagination->getResultsCounter(); ?>
</div>
</div>
</div>
<input type="hidden" name="Itemid"
value="<?php echo $this->Itemid; ?>" />
<input type="hidden" name="option"
value="<?php echo HIKAMARKET_COMPONENT; ?>" />
<input type="hidden" name="task"
value="listing" />
<input type="hidden" name="ctrl"
value="<?php echo hikaInput::get()->getCmd('ctrl');
?>" />
<input type="hidden" name="boxchecked"
value="0" />
<input type="hidden" name="filter_order"
value="<?php echo
$this->pageInfo->filter->order->value; ?>" />
<input type="hidden" name="filter_order_Dir"
value="<?php echo $this->pageInfo->filter->order->dir;
?>" />
<?php echo JHTML::_( 'form.token' ); ?>
</form>
</div>
PK�[F� ���"views/ordermarket/tmpl/listing.xmlnu�[���<?xml
version="1.0" encoding="utf-8"?>
<metadata>
<state>
<name>Vendor order listing</name>
<params addpath="/components/com_hikamarket/params">
<param name="options" type="selectoptions"
default="module" label="options"
description="HikaMarket options" />
</params>
</state>
<layout
title="COM_HIKAMARKET_ORDERMARKET_LISTING_DEFAULT_TITLE">
<message></message>
</layout>
<fields name="params"
addfieldpath="/components/com_hikamarket/fields">
<fieldset name="basic" label="HikaMarket
Options">
<field id="options" name="options"
type="selectoptions" label="options"
description="HikaMarket options" />
</fieldset>
</fields>
</metadata>PK�[@/�views/ordermarket/tmpl/mail.phpnu�[���<?php
/**
* @package HikaMarket for Joomla!
* @version 3.1.1
* @author Obsidev S.A.R.L.
* @copyright (C) 2011-2020 OBSIDEV. All rights reserved.
* @license GNU/GPLv3 http://www.gnu.org/licenses/gpl-3.0.html
*/
defined('_JEXEC') or die('Restricted access');
?><form action="<?php echo
hikamarket::completeLink('order', true); ?>"
method="post" name="hikamarket_mail_form"
id="hikamarket_mail_form">
<div id="hikamarket_email_preview_settings">
<dl class="hikam_options large">
<dt><label for="data[mail][dst_email]"><?php echo
JText::_('TO_ADDRESS'); ?></label></dt>
<dd><?php
$values = array(
0 => JText::_('CUSTOMER'),
1 => JText::_('HIKA_VENDOR'),
);
echo JHTML::_('select.genericlist', $values,
'data[mail][dst_email]', '', 'value',
'text', 0);
?></dd>
<dt><label for="data[mail][subject]"><?php echo
JText::_('EMAIL_SUBJECT'); ?></label></dt>
<dd>
<input type="text" name="data[mail][subject]"
size="80" style="width:90%" value="<?php echo
$this->escape($this->element->mail->subject); ?>"
/>
</dd>
<?php
foreach($this->element->mail_params_config as $k => $v) {
?>
<dt><label for="data[mail][params][<?php echo $k;
?>]"><?php echo JText::_($v[1]);
?></label></dt>
<dd><?php
switch($v[0]) {
case 'textarea':
$placeholder = !empty($v[3]) ? JText::_($v[3], true) :
JText::_('HIKA_INHERIT', true);
echo '<textarea
name="data[mail][params]['.$k.']"
style="width:90%;height:6em;"
placeholder="'.$placeholder.'"
onblur="window.localPage.refreshMail()">'.@$this->element->mail_params[$k].'</textarea>';
break;
case 'boolean':
echo
$this->radioType->booleanlist('data[mail][params]['.$k.']',
'onchange="window.localPage.refreshMail()"',
@$this->element->mail_params[$k]);
break;
}
?></dd>
<?php
}
?>
</dl>
</div>
<input type="hidden" name="option"
value="<?php echo HIKAMARKET_COMPONENT; ?>" />
<input type="hidden" name="order_id"
value="<?php echo (int)$this->element->order_id; ?>"
/>
<input type="hidden" name="task"
value="mail" />
<input type="hidden" name="ctrl"
value="order" />
<?php echo JHTML::_( 'form.token' ); ?>
</form>
<script>
if(!window.localPage) window.localPage = {};
window.localPage.refreshMail = function() {
var w = window, d = document, o = w.Oby, el =
d.getElementById('hikamarket_mail_preview'),
data = o.getFormData('hikamarket_email_preview_settings',
true);
o.addClass(el, "hikamarket_ajax_loading");
o.xRequest("<?php echo
hikamarket::completeLink('order&task=previewmail&order_id='.(int)$this->element->order_id);
?>",
{mode:'POST',data:data,update:'hikamarket_mail_preview'},
function(xhr){
o.removeClass(el, "hikamarket_ajax_loading");
});
};
</script>
<h4><?php echo JText::_('PREVIEW_EMAIL');
?></h4>
<div id="hikamarket_mail_preview"
class="hikamarket_mail_preview">
<?php
$this->setLayout('previewmail');
echo $this->loadTemplate();
?>
</div>
PK�[����#views/ordermarket/tmpl/payments.phpnu�[���<?php
/**
* @package HikaMarket for Joomla!
* @version 3.1.1
* @author Obsidev S.A.R.L.
* @copyright (C) 2011-2020 OBSIDEV. All rights reserved.
* @license GNU/GPLv3 http://www.gnu.org/licenses/gpl-3.0.html
*/
defined('_JEXEC') or die('Restricted access');
?><div id="hikam_product_listing">
<form action="<?php echo
hikamarket::completeLink('order&task=payments'); ?>"
method="post" id="adminForm"
name="adminForm">
<div class="hk-row-fluid">
<div class="hkc-md-12">
<?php
echo $this->loadHkLayout('search', array(
'id' => 'hikamarket_order_listing_search'
));
?>
<div class="hikam_sort_zone"><?php
if(!empty($this->ordering_values))
echo JHTML::_('select.genericlist',
$this->ordering_values, 'filter_fullorder',
'onchange="this.form.submit();"', 'value',
'text', $this->full_ordering);
?></div>
</div>
<div class="hkc-md-12">
<div class="expand-filters">
<?php
echo $this->orderStatusType->display('filter_status',
$this->pageInfo->filter->filter_status, '
onchange="document.adminForm.submit();"', true);
foreach($this->extrafilters as $name => $filterObj) {
echo $filterObj->displayFilter($name, $this->pageInfo->filter);
}
?>
</div>
<div style="clear:both"></div>
</div>
</div>
<div id="hikam_payments_main_listing">
<?php
$manage = false; // hikamarket::acl('order/show');
$extra_classes = '';
foreach($this->orders as $order) {
$url = ($manage) ?
hikamarket::completeLink('order&task=show&cid='.$order->order_id)
: null;
?>
<div class="hk-card hk-card-default hk-card-vendor-order<?php
echo $extra_classes; ?>" data-hkm-order="<?php echo
(int)$order->order_id; ?>">
<div class="hk-card-header">
<?php if(!empty($url)) { ?>
<a class="hk-row-fluid" href="<?php echo $url;
?>">
<?php } else { ?>
<div class="hk-row-fluid">
<?php } ?>
<div class="hkc-sm-6 hkm_order_date">
<i class="fa fa-clock"></i>
<?php echo hikashop_getDate((int)$order->order_created,
'%Y-%m-%d %H:%M'); ?>
</div>
<div class="hkc-sm-6 hkm_order_price">
<i class="fa fa-credit-card"></i>
<?php echo
$this->currencyHelper->format($order->order_full_price,
$order->order_currency_id); ?>
</div>
<?php if(!empty($url)) { ?>
</a>
<?php } else { ?>
</div>
<?php } ?>
</div>
<div class="hk-card-body">
<div class="hk-row-fluid">
<div class="hkc-sm-4 hkm_order_number">
<?php
if(!empty($url)) {
?><a href="<?php echo $url; ?>"><?php
}
?><i class="far fa-file-alt"
style="margin-right:4px;"></i><span
class="hika_order_number_value"><?php echo
$order->order_number; ?></span><?php
if(!empty($url)) {
?></a><?php
}
?>
<?php if(!empty($order->order_invoice_number)) { ?>
<span class="hkm_order_number_invoice_separator"> -
</span>
<span class="hkm_invoice_number_value"><?php echo
$order->order_invoice_number; ?></span>
<?php } ?>
</div>
<div class="hkc-sm-2 hkm_order_status">
<span class="order-label order-label-<?php echo
preg_replace('#[^a-z_0-9]#i', '_', str_replace('
','_',$order->order_status)); ?>"><?php
echo hikamarket::orderStatus($order->order_status);
?></span>
</div>
<div class="hkc-sm-6 hkm_payment_details"><?php
echo JText::sprintf('PAYMENT_X_TRANSACTIONS',
(int)$order->counter);
?></div>
</div>
</div>
</div>
<?php
}
?>
<div class="hikamarket_orders_footer">
<div class="hikamarket_pagination">
<?php $this->pagination->form = '_bottom'; echo
$this->pagination->getListFooter(); ?>
<?php echo $this->pagination->getResultsCounter(); ?>
</div>
</div>
</div>
<input type="hidden" name="Itemid"
value="<?php echo $this->Itemid; ?>" />
<input type="hidden" name="option"
value="<?php echo HIKAMARKET_COMPONENT; ?>" />
<input type="hidden" name="task"
value="payments" />
<input type="hidden" name="ctrl"
value="<?php echo hikaInput::get()->getCmd('ctrl');
?>" />
<input type="hidden" name="boxchecked"
value="0" />
<input type="hidden" name="filter_order"
value="<?php echo
$this->pageInfo->filter->order->value; ?>" />
<input type="hidden" name="filter_order_Dir"
value="<?php echo $this->pageInfo->filter->order->dir;
?>" />
<?php echo JHTML::_( 'form.token' ); ?>
</form>
</div>
PK�[��o�))&views/ordermarket/tmpl/previewmail.phpnu�[���<?php
/**
* @package HikaMarket for Joomla!
* @version 3.1.1
* @author Obsidev S.A.R.L.
* @copyright (C) 2011-2020 OBSIDEV. All rights reserved.
* @license GNU/GPLv3 http://www.gnu.org/licenses/gpl-3.0.html
*/
defined('_JEXEC') or die('Restricted access');
?> <div
class="hikamarket_ajax_loading_elem"></div>
<div class="hikamarket_ajax_loading_spinner"></div>
<?php
$pattern = '/(src=")(?!https?:\/\/)/i';
$replacement = '$1';
echo preg_replace($pattern, $replacement.HIKASHOP_LIVE,
@$this->element->mail->body);
PK�[�=����"views/ordermarket/tmpl/request.phpnu�[���<?php
/**
* @package HikaMarket for Joomla!
* @version 3.1.1
* @author Obsidev S.A.R.L.
* @copyright (C) 2011-2020 OBSIDEV. All rights reserved.
* @license GNU/GPLv3 http://www.gnu.org/licenses/gpl-3.0.html
*/
defined('_JEXEC') or die('Restricted access');
?><form action="<?php echo
hikamarket::completeLink('order'); ?>"
method="post" id="hikamarket_order_request_form"
name="hikamarket_order_request_form">
<?php
if(count($this->data) <= 1) {
?>
<dl class="hikam_options">
<dt><?php echo JText::_('HIKAM_STATS_TOTAL_ORDERS');
?></dt>
<dd><?php echo $this->total->count; ?></dd>
<dt><?php echo JText::_('HIKASHOP_TOTAL');
?></dt>
<dd><?php echo
$this->currencyHelper->format($this->total->value,
$this->total->currency); ?></dd>
</dl>
<?php
} else {
?>
<table class="hikam_listing <?php echo
(HIKASHOP_RESPONSIVE)?'table table-striped table-hover
table-bordered':'hikam_table'; ?>"
style="width:100%">
<thead>
<tr>
<th><?php echo JText::_('HIKAM_STATS_TOTAL_ORDERS');
?></th>
<th><?php echo JText::_('HIKASHOP_TOTAL');
?></th>
</tr>
</thead>
<tfoot>
<tr>
<td><?php echo $this->total->count; ?></td>
<td><?php echo
$this->currencyHelper->format($this->total->value,
$this->total->currency); ?></td>
</tr>
</tfoot>
<tbody>
<?php
foreach($this->data as $data) {
?>
<tr>
<td><?php echo (int)$data->count; ?></td>
<td><?php echo
$this->currencyHelper->format($data->value, $data->currency);
?></td>
</tr>
<?php
}
?>
</tbody>
</table>
<?php
}
?>
<input type="hidden" name="Itemid"
value="<?php echo $this->Itemid; ?>" />
<input type="hidden" name="option"
value="<?php echo HIKAMARKET_COMPONENT; ?>" />
<input type="hidden" name="task" value=""
/>
<input type="hidden" name="data[request]"
value="1" />
<input type="hidden" name="ctrl"
value="<?php echo hikaInput::get()->getCmd('ctrl');
?>" />
<?php
if($this->total->value != 0)
echo JHTML::_( 'form.token' );
?>
</form>
PK�[[]�ZKKviews/ordermarket/tmpl/show.phpnu�[���<?php
/**
* @package HikaMarket for Joomla!
* @version 3.1.1
* @author Obsidev S.A.R.L.
* @copyright (C) 2011-2020 OBSIDEV. All rights reserved.
* @license GNU/GPLv3 http://www.gnu.org/licenses/gpl-3.0.html
*/
defined('_JEXEC') or die('Restricted access');
?><script type="text/javascript">
<!--
if(!window.orderMgr)
window.orderMgr = {};
window.orderMgr.customer_id = <?php echo
(int)$this->order->order_user_id; ?>;
window.orderMgr.showEl = function(el, sel) {
window.hikamarket.submitFct = function(data) {
window.hikamarket.closeBox(); };
var href = el.getAttribute('data-popup-href');
if(!href) href = el.getAttribute('href');
window.hikamarket.openBox(sel, href);
return false;
};
window.orderMgr.toggleDisplay = function(el) {
var d = document, block =
el.getAttribute('data-toggle-display'), e =
d.getElementById(block);
if(!e) return false;
e.style.display = (e.style.display == 'none') ? '' :
'none';
el.blur();
return false;
};
window.orderMgr.refreshBlock = function(type, edit, prefix) {
var d = document, w = window, o = w.Oby, el = null;
if(prefix !== undefined) el =
d.getElementById("hikamarket_order_" + prefix + "_" +
type);
if(edit && !el) el =
d.getElementById("hikamarket_order_edit_" + type);
if(!el) el = d.getElementById("hikamarket_order_block_" +
type);
if(!el) return false;
o.addClass(el, "hikamarket_ajax_loading");
var url = '<?php echo
hikamarket::completeLink('order&task=showblock&block=HIKATYPE&cid='.(int)$this->order->order_id.'&tmpl=ajax',
false, false, true); ?>'.replace("HIKATYPE", (edit ?
'edit_' : '') + type);
o.xRequest(url, {update: el}, function(x,p) {
o.removeClass(el, "hikamarket_ajax_loading");
});
return false;
};
window.orderMgr.submitBlock = function(type, opt, cb, prefix) {
var url = null, formData = '', d = document, w = window, o =
w.Oby, el = null;
if(prefix !== undefined) el =
d.getElementById("hikamarket_order_" + prefix + "_" +
type);
if(!el) el = d.getElementById("hikamarket_order_edit_" + type);
if(!el) el = d.getElementById("hikamarket_order_block_" +
type);
if(!el) return false;
if(!opt || opt.data === undefined || !opt.data) {
formData = o.getFormData(el);
} else if(opt.data) {
formData = o.encodeFormData(opt.data);
}
o.addClass(el, "hikamarket_ajax_loading");
url = '<?php echo
hikamarket::completeLink('order&task=submitblock&block=HIKATYPE&cid='.(int)$this->order->order_id.'&'.hikamarket::getFormToken().'=1&tmpl=ajax',
false, false, true); ?>'.replace("HIKATYPE", type);
var params = {mode:"POST", data:formData};
if(opt && opt.update) {
params.update = (opt.update === true) ? el : opt.update;
}
o.xRequest(url, params, function(x,p) {
o.removeClass(el, "hikamarket_ajax_loading");
if(cb) cb(x,p);
});
return false;
};
window.orderMgr.updateTaxValueFields = function(key) {
var d = document, rate = 0.0, v = 0.0,
el = d.getElementById(key+'_value'),
s = d.getElementById(key+'tax_namekey');
if(!s) s = d.getElementById(key+'_tax_namekey');
if(!s) return;
rate = s.options[ s.selectedIndex ];
if(!rate) return;
try {
rate = parseFloat(rate.getAttribute('data-rate'));
} catch(e) { return; }
try {
v = parseFloat( Oby.trim(el.value) );
if(isNaN(v)) v = 0.0;
} catch(e) { v = 0.0; }
var n = v - (v / (1 + rate));
s = d.getElementById(key+'_tax');
if(s) s.value = parseFloat(n.toFixed(5));
s = d.getElementById(key+'_value_tax');
if(s) s.innerHTML = parseFloat(n.toFixed(5));
n = (v / (1 + rate));
s = d.getElementById(key+'_value_price');
if(s) s.innerHTML = parseFloat(n.toFixed(5));
};
window.orderMgr.editOrderStatus = function(el) {
window.hikamarket.submitFct = function(data) {
var orderstatus =
document.getElementById('hikamarket_order_status');
if(orderstatus) {
orderstatus.innerHTML = data.name;
orderstatus.className = 'order-label order-label-' +
data.order_status.replace(/[^a-z_0-9]/i, '_');
}
window.hikamarket.closeBox();
};
var href = el.getAttribute('href');
if(href == '' || href == null || href == '#')
href = null;
window.hikamarket.openBox('hikamarket_order_status_popup',
href);
return false;
};
//-->
</script>
<div class="hikamarket_order">
<h2 style="display:inline-block"><?php
echo JText::sprintf('HIKAM_ORDER',
$this->order->order_number);
?></h2>
<span id="hikamarket_order_status"
style="margin-left:7px;font-size:1.2em;line-height:1.3em;"
class="order-label order-label-<?php echo
preg_replace('#[^a-z_0-9]#i', '_', str_replace('
','_',$this->order->order_status));
?>"><?php echo
hikamarket::orderStatus($this->order->order_status);
?></span>
<!-- GENERAL -->
<?php
echo $this->loadTemplate('block_general');
?>
<!-- ADDITIONAL -->
<h3 style="display:inline-block"><?php echo
JText::_('ORDER_DETAILS')?></h3>
<?php
echo $this->loadTemplate('block_details');
if(!empty($this->fields['order']) &&
hikamarket::acl('order/show/customfields')) {
echo $this->loadTemplate('block_fields');
}
?>
<!-- CUSTOMER -->
<?php if(hikamarket::acl('order/show/customer')) { ?>
<h3 style="display:inline-block"><?php echo
JText::_('CUSTOMER')?></h3>
<?php
if($this->editable_order &&
hikamarket::acl('order/edit/customer')) {
echo $this->loadTemplate('block_edit_customer');
}
echo $this->loadTemplate('block_customer');
}
?>
<!-- ADDRESSES -->
<?php
if(hikamarket::acl('order/show/billingaddress') ||
hikamarket::acl('order/show/shippingaddress')) {
$acl_billing = hikamarket::acl('order/show/billingaddress');
$acl_shipping = hikamarket::acl('order/show/shippingaddress');
$cell_class = ($acl_billing && $acl_shipping) ?
'hkc-md-6' : 'hkc-md-12';
?>
<div class="hk-row-fluid hikamarket_order_addresses">
<?php
if($acl_billing) {
?>
<div class="<?php echo $cell_class; ?>
hikamarket_order_billing_address">
<h3 style="display:inline-block;"><?php echo
JText::_('HIKASHOP_BILLING_ADDRESS')?></h3>
<?php
$this->block_edit_address = 'billing';
echo $this->loadTemplate('block_edit_address');
$this->block_show_address = 'billing';
echo $this->loadTemplate('block_address');
?>
</div>
<?php
}
?>
<?php
if($acl_shipping) {
$display_shipping_addr = empty($this->order->order_shipping_id) ?
'display:none;' : '';
?>
<div class="<?php echo $cell_class; ?>
hikamarket_order_shipping_address" style="<?php echo
$display_shipping_addr; ?>">
<h3 style="display:inline-block;"><?php echo
JText::_('HIKASHOP_SHIPPING_ADDRESS')?></h3>
<?php
if(empty($this->order->override_shipping_address)) {
$this->block_edit_address = 'shipping';
echo $this->loadTemplate('block_edit_address');
}
$this->block_show_address = 'shipping';
echo $this->loadTemplate('block_address');
?>
</div>
<?php
}
?>
</div>
<?php } ?>
<!-- PRODUCTS -->
<h3 style="display:inline-block"><?php echo
JText::_('PRODUCT_LIST')?></h3>
<?php
echo $this->loadTemplate('block_products');
?>
<?php
if(hikamarket::level(1) && $this->order->order_type ==
'sale' &&
hikamarket::acl('order/show/vendors')) {
echo $this->loadTemplate('block_vendors');
}
?>
<!-- OTHER COMPONENTS -->
<?php
JFactory::getApplication()->triggerEvent('onAfterOrderProductsListingDisplay',
array(&$this->order, 'order_frontmarket_show'));
?>
<!-- HISTORY -->
<?php
if(hikamarket::acl('order/show/history')) {
echo $this->loadTemplate('block_history');
}
?>
</div>
PK�[��c�)�)*views/ordermarket/tmpl/show_additional.phpnu�[���<?php
/**
* @package HikaMarket for Joomla!
* @version 3.1.1
* @author Obsidev S.A.R.L.
* @copyright (C) 2011-2020 OBSIDEV. All rights reserved.
* @license GNU/GPLv3 http://www.gnu.org/licenses/gpl-3.0.html
*/
defined('_JEXEC') or die('Restricted access');
?> <legend><?php echo JText::_('ORDER_ADD_INFO');
?></legend>
<?php if(hikamarket::acl('order/edit/additional') &&
($this->vendor->vendor_id == 0 || $this->vendor->vendor_id ==
1)) { ?>
<div class="hikam_edit"><?php
echo $this->popup->display(
'<i class="fas
fa-pencil-alt"></i><span>'.
JText::_('HIKA_EDIT') .'</span>',
'HIKAM_SET_ORDER_ADDITIONALS',
hikamarket::completeLink('order&task=edit&subtask=additional&cid='.$this->order->order_id,
true),
'hikamarket_editadditional_popup',
750, 460, 'onclick="return
window.orderMgr.setAdditionals(this);"', '',
'link'
);
?></div>
<script type="text/javascript">
<!--
window.orderMgr.setAdditionals = function(el) {
window.hikamarket.submitFct = function(data) {
var w = window, o = w.Oby;
w.hikashop.closeBox();
w.orderMgr.updateAdditionals();
};
window.hikashop.openBox(el);
return false;
}
window.orderMgr.updateAdditionals = function() {
window.Oby.xRequest('<?php echo
hikamarket::completeLink('order&task=show&subtask=additional&cid='.$this->order->order_id,
true, false, true); ?>', {update:
'hikashop_order_field_additional'});
}
//-->
</script>
<?php } ?>
<dl class="hikam_options">
<dt
class="hikamarket_order_additional_subtotal"><label><?php
echo JText::_('SUBTOTAL'); ?></label></dt>
<dd
class="hikamarket_order_additional_subtotal"><span><?php
if($this->shopConfig->get('price_with_tax'))
echo
$this->currencyHelper->format($this->order->order_subtotal,
$this->order->order_currency_id);
else
echo
$this->currencyHelper->format($this->order->order_subtotal_no_vat,
$this->order->order_currency_id);
?></span></dd>
<dt
class="hikamarket_order_additional_coupon"><label><?php
echo JText::_('HIKASHOP_COUPON'); ?></label></dt>
<dd
class="hikamarket_order_additional_coupon"><span><?php
if($this->shopConfig->get('price_with_tax'))
echo
$this->currencyHelper->format($this->order->order_discount_price
* -1.0, $this->order->order_currency_id);
else
echo
$this->currencyHelper->format(($this->order->order_discount_price
- @$this->order->order_discount_tax) * -1.0,
$this->order->order_currency_id);
?> <?php echo $this->order->order_discount_code;
?></span></dd>
<dt
class="hikamarket_order_additional_shipping"><label><?php
echo JText::_('SHIPPING'); ?></label></dt>
<dd
class="hikamarket_order_additional_shipping"><span><?php
if($this->shopConfig->get('price_with_tax'))
echo
$this->currencyHelper->format($this->order->order_shipping_price,
$this->order->order_currency_id);
else
echo
$this->currencyHelper->format($this->order->order_shipping_price
- @$this->order->order_shipping_tax,
$this->order->order_currency_id);
if(empty($this->order->order_shipping_method) &&
empty($this->order->shippings)) {
echo '-
<em>'.JText::_('NONE').'</em>';
} else if(!empty($this->order->order_shipping_method)) {
if(!is_numeric($this->order->order_shipping_id)){
$shipping_name =
$this->getShippingName($this->order->order_shipping_method,
$this->order->order_shipping_id);
echo ' - ' . $shipping_name;
} else {
$shipping =
$this->shippingClass->get($this->order->order_shipping_id);
echo ' - ' . $shipping->shipping_name;
}
} else {
$shippings_data = array();
$shipping_ids = explode(';',
$this->order->order_shipping_id);
foreach($shipping_ids as $key) {
$shipping_data = '';
list($k, $w) = explode('@', $key);
$shipping_id = $k;
if(isset($this->order->shippings[$shipping_id])) {
$shipping = $this->order->shippings[$shipping_id];
$shipping_data = $shipping->shipping_name;
} else {
foreach($this->order->products as $order_product) {
if($order_product->order_product_shipping_id == $key) {
if(!is_numeric($order_product->order_product_shipping_id)) {
$shipping_name =
$this->getShippingName($order_product->order_product_shipping_method,
$shipping_id);
$shipping_data = $shipping_name;
} else {
$shipping_method_data =
$this->shippingClass->get($shipping_id);
$shipping_data = $shipping_method_data->shipping_name;
}
break;
}
}
if(empty($shipping_data))
$shipping_data = '[ ' . $key . ' ]';
}
if(isset($this->order->order_shipping_params->prices[$key]))
{
$price_params =
$this->order->order_shipping_params->prices[$key];
if($this->shopConfig->get('price_with_tax'))
$shipping_data .= ' (' .
$this->currencyHelper->format($price_params->price_with_tax,
$this->order->order_currency_id) . ')';
else
$shipping_data .= ' (' .
$this->currencyHelper->format($price_params->price_with_tax -
@$price_params->tax, $this->order->order_currency_id) .
')';
}
$shippings_data[] = $shipping_data;
}
if(!empty($shippings_data))
echo
'<ul><li>'.implode('</li><li>',
$shippings_data).'</li></ul>';
}
?></span></dd>
<dt
class="hikamarket_order_additional_payment_fee"><label><?php
echo JText::_('HIKASHOP_PAYMENT');
?></label></dt>
<dd
class="hikamarket_order_additional_payment_fee"><span><?php
echo
$this->currencyHelper->format($this->order->order_payment_price,
$this->order->order_currency_id); ?> - <?php
if(empty($this->order->order_payment_method) ||
$this->order->order_payment_method == 'market-')
echo
'<em>'.JText::_('NONE').'</em>';
else {
if(!is_numeric($this->order->order_payment_id)){
echo $this->order->order_payment_method.'
'.$this->order->order_payment_id;
} else if((int)$this->order->order_payment_id > 0) {
$payment =
$this->paymentClass->get($this->order->order_payment_id);
echo @$payment->payment_name;
}
}
?></span></dd>
<?php
if(!empty($this->order->additional)) {
foreach($this->order->additional as $additional) {
?>
<dt
class="hikamarket_order_additional_additional"><label><?php
echo JText::_($additional->order_product_name);
?></label></dt>
<dd
class="hikamarket_order_additional_additional"><span><?php
if(!empty($additional->order_product_price)) {
$additional->order_product_price =
(float)$additional->order_product_price;
}
if(!empty($additional->order_product_price) ||
empty($additional->order_product_options)) {
echo
$this->currencyHelper->format($additional->order_product_price,
$this->order->order_currency_id);
} else {
echo $additional->order_product_options;
}
?></span></dd>
<?php
}
}
if($this->shopConfig->get('detailed_tax_display')
&& !empty($this->order->order_tax_info)) {
foreach($this->order->order_tax_info as $tax){
?>
<dt
class="hikamarket_order_additional_tax"><label><?php
echo $tax->tax_namekey; ?></label></dt>
<dd
class="hikamarket_order_additional_tax"><span><?php
echo
$this->currencyHelper->format($tax->tax_amount,$this->order->order_currency_id);
?></span></dd>
<?php
}
}
?>
<dt
class="hikamarket_order_additional_total"><label><?php
if((int)$this->order->order_vendor_id <= 1)
echo JText::_('HIKASHOP_TOTAL');
else
echo JText::_('HIKAM_USER_TOTAL');
?></label></dt>
<dd
class="hikamarket_order_additional_total"><span><?php
echo
$this->currencyHelper->format($this->order->order_full_price,$this->order->order_currency_id);
?></span></dd>
<?php
if((int)$this->order->order_vendor_id > 1) {
$fixed_fees = 0.0;
if(!empty($this->order->order_vendor_params->fees->fixed)) {
foreach($this->order->order_vendor_params->fees->fixed as
$fixed_fee) {
$fixed_fees += $fixed_fee;
}
}
if(bccomp($fixed_fees, 0, 5) !== 0) {
?>
<!-- Vendor fixed fees -->
<dt
class="hikamarket_order_vendor_fixed_fees"><label><?php
echo JText::_('HIKAM_VENDOR_FIXED_FEES');
?></label></dt>
<dd
class="hikamarket_order_vendor_fixed_fees"><span><?php
echo $this->currencyHelper->format($fixed_fees,
$this->order->order_currency_id);
?></span></dd>
<?php
}
if(!empty($this->order->order_vendor_params->fees->shipping))
{
?>
<!-- Vendor shipping fees -->
<dt
class="hikamarket_order_vendor_shipping_fees"><label><?php
echo JText::_('HIKAM_VENDOR_SHIPPING_FEES');
?></label></dt>
<dd
class="hikamarket_order_vendor_shipping_fees"><span><?php
echo
$this->currencyHelper->format($this->order->order_vendor_params->fees->shipping,
$this->order->order_currency_id);
?></span></dd>
<?php
}
if($this->order->order_vendor_paid > 0) {
$total = $this->order->order_vendor_price;
$paid = $this->order->order_vendor_price;
if(!empty($this->order->refunds)) {
foreach($this->order->refunds as $refund) {
$total += (float)hikamarket::toFloat($refund->order_vendor_price);
if($refund->order_vendor_paid > 0)
$paid += (float)hikamarket::toFloat($refund->order_vendor_price);
}
}
?>
<!-- Vendor shipping fees -->
<dt
class="hikamarket_order_vendor_paid"><label><?php
echo JText::_('VENDOR_TOTAL'); ?></label></dt>
<dd
class="hikamarket_order_vendor_paid"><span><?php
echo $this->currencyHelper->format($total,
$this->order->order_currency_id);
if($total == $paid)
echo ' ' .
hikamarket::tooltip(JText::_('HIKAM_ORDER_IS_PAID'),
'', '', '<img
src="'.HIKAMARKET_IMAGES.'icon-16/save2.png"
style="vertical-align:top;"
alt="('.JText::_('PAID').')" />',
'', 0);
?></span></dd>
<?php
} else {
?>
<!-- Vendor total -->
<dt
class="hikamarket_order_vendor_total"><label><?php
echo JText::_('VENDOR_TOTAL'); ?></label></dt>
<dd
class="hikamarket_order_vendor_total"><span><?php
echo
$this->currencyHelper->format($this->order->order_vendor_price,
$this->order->order_currency_id);
?></span></dd>
<?php
}
}
if(!empty($this->fields['order'])) {
foreach($this->fields['order'] as $fieldName =>
$oneExtraField) {
?>
<dt class="hikamarket_order_additional_customfield
hikamarket_order_additional_customfield_<?php echo $fieldName;
?>"><?php echo
$this->fieldsClass->getFieldName($oneExtraField);?></dt>
<dd class="hikamarket_order_additional_customfield
hikamarket_order_additional_customfield_<?php echo $fieldName;
?>"><span><?php
echo $this->fieldsClass->show($oneExtraField,
@$this->order->$fieldName);
?></span></dd>
<?php
}
}
?>
</dl>
PK�[���FF'views/ordermarket/tmpl/show_address.phpnu�[���<?php
/**
* @package HikaMarket for Joomla!
* @version 3.1.1
* @author Obsidev S.A.R.L.
* @copyright (C) 2011-2020 OBSIDEV. All rights reserved.
* @license GNU/GPLv3 http://www.gnu.org/licenses/gpl-3.0.html
*/
defined('_JEXEC') or die('Restricted access');
?><legend><?php echo
JText::_('HIKASHOP_'.strtoupper($this->type).'_ADDRESS');
?></legend>
<?php
$name = $this->type.'_address';
$fields_type = $this->type.'_fields';
if(!isset($this->order->$fields_type))
$fields_type = 'fields';
$show_url =
'order&task=show&subtask='.$name.'&cid='.$this->order->order_id;
$save_url =
'order&task=save&subtask='.$name.'&cid='.$this->order->order_id;
$update_url =
'order&task=edit&subtask='.$name.'&cid='.$this->order->order_id;
if(hikamarket::acl('order/edit/'.$name) &&
($this->vendor->vendor_id == 0 || $this->vendor->vendor_id ==
1)) {
if(!isset($this->edit) || $this->edit !== true ) {
?> <div class="hikam_edit"><a href="<?php
echo hikamarket::completeLink($update_url, true);?>"
onclick="return
window.hikamarket.get(this,'hikamarket_order_field_<?php echo
$name; ?>');"><i class="fas
fa-pencil-alt"></i><span><?php echo
JText::_('HIKA_EDIT'); ?></span></a></div>
<?php
} else {
?> <div class="hikam_edit">
<a href="<?php echo hikamarket::completeLink($save_url,
true);?>" onclick="return
window.hikamarket.form(this,'hikamarket_order_field_<?php echo
$name; ?>');"><i class="far
fa-times-circle"></i><span><?php echo
JText::_('HIKA_SAVE'); ?></span></a>
<a href="<?php echo hikamarket::completeLink($show_url,
true);?>" onclick="return
window.hikamarket.get(this,'hikamarket_order_field_<?php echo
$name; ?>');"><i class="fas
fa-check"></i><span><?php echo
JText::_('HIKA_CANCEL'); ?></span></a>
</div>
<?php
}
}
$address =& $this->order->$name;
$display = 'field_backend';
if(isset($this->edit) && $this->edit === true ) {
if(hikamarket::acl('order/edit/'.$name)) {
foreach($this->order->$fields_type as $field) {
if(!$field->$display)
continue;
$fieldname = $field->field_namekey;
?>
<dl id="hikashop_<?php echo
$this->type;?>order_address_<?php echo $fieldname;?>"
class="hikam_options">
<dt class="hikamarket_<?php echo
$this->type;?>order_address_<?php echo
$fieldname;?>"><label><?php echo
$this->fieldsClass->trans($field->field_realname);?></label></dt>
<dd class="hikamarket_<?php echo
$this->type;?>order_address_<?php echo
$fieldname;?>"><?php
$onWhat = 'onchange';
if($field->field_type == 'radio')
$onWhat = 'onclick';
$field->table_name = 'order';
echo $this->fieldsClass->display(
$field,
@$address->$fieldname,
'data['.$name.']['.$fieldname.']',
false,
' ' . $onWhat .
'="hikashopToggleFields(this.value,\''.$fieldname.'\',\''.$name.'\',0);"',
false,
$this->order->$fields_type,
$address
);
?></dd>
</dl>
<?php
}
}
if(hikamarket::acl('order/edit/history')) {
?>
<dl class="hikam_options">
<dt class="hikamarket_<?php echo
$this->type;?>_history"><label><?php echo
JText::_('HISTORY'); ?></label></dt>
<dd class="hikamarket_<?php echo
$this->type;?>_history">
<span><input onchange="window.orderMgr.<?php echo
$this->type;?>_history_changed(this);" type="checkbox"
id="hikamarket_history_<?php echo $this->type;?>_store"
name="data[history][store_data]"
value="1"/><label for="hikamarket_history_<?php
echo $this->type;?>_store"
style="display:inline-block"><?php echo
JText::_('SET_HISTORY_MESSAGE');?></label></span><br/>
<textarea id="hikamarket_history_<?php echo
$this->type;?>_msg" name="data[history][msg]"
style="display:none;"></textarea>
</dd>
</dl>
<script type="text/javascript">
window.orderMgr.<?php echo $this->type;?>_history_changed =
function(el) {
var fields = ['hikamarket_history_<?php echo
$this->type;?>_msg'], displayValue = '';
if(!el.checked) displayValue = 'none';
window.hikamarket.setArrayDisplay(fields, displayValue);
}
</script>
<?php
}
echo JHTML::_( 'form.token' );
} else {
foreach($this->order->$fields_type as $field){
if($field->$display){
$fieldname = $field->field_namekey;
?>
<dl class="hikam_options">
<dt class="hikamarket_<?php echo
$this->type;?>order_address_<?php echo
$fieldname;?>"><label><?php echo
$this->fieldsClass->trans($field->field_realname);?></label></dt>
<dd class="hikamarket_<?php echo
$this->type;?>order_address_<?php echo
$fieldname;?>"><span><?php echo
$this->fieldsClass->show($field,
@$address->$fieldname);?></span></dd>
</dl>
<?php
}
}
}
?>
<script type="text/javascript">
window.orderMgr.update<?php echo ucfirst($this->type);?> =
function() {
window.Oby.xRequest('<?php echo
hikamarket::completeLink('order&task=show&subtask='.$this->type.'_address&cid='.$this->order->order_id,true,false,true);
?>',{update:'hikashop_order_field_<?php echo
$this->type; ?>_address'});
}
</script>
PK�[2@n/xx-views/ordermarket/tmpl/show_block_address.phpnu�[���<?php
/**
* @package HikaMarket for Joomla!
* @version 3.1.1
* @author Obsidev S.A.R.L.
* @copyright (C) 2011-2020 OBSIDEV. All rights reserved.
* @license GNU/GPLv3 http://www.gnu.org/licenses/gpl-3.0.html
*/
defined('_JEXEC') or die('Restricted access');
?><?php
$type = @$this->block_show_address;
if(!in_array($type, array('shipping', 'billing')))
return;
if(!hikamarket::acl('order/show/'.$type.'address'))
return;
if(empty($this->ajax)) { ?>
<div id="hikamarket_order_block_<?php echo $type;
?>address">
<?php } ?>
<div class="hikamarket_ajax_loading_elem"></div>
<div class="hikamarket_ajax_loading_spinner"></div>
<?php
if($type == 'billing' ||
empty($this->order->override_shipping_address)) {
$address = ($type == 'billing') ?
@$this->addresses[(int)$this->order->order_billing_address_id] :
@$this->addresses[(int)$this->order->order_shipping_address_id];
if($this->address_mode == 0) {
echo $this->addressClass->maxiFormat($address,
$this->address_fields, true);
} else {
?>
<dl class="hikam_options dl_glue">
<?php
$fields = (isset($this->order->{$type.'_fields'}) ?
$this->order->{$type.'_fields'} :
$this->order->fields);
foreach($fields as $field) {
if(empty($field->field_frontcomp) &&
strpos($field->field_display, ';vendor_order_show=1;') ===
false)
continue;
$fieldname = $field->field_namekey;
?>
<dt class="hikamarket_<?php echo $type;
?>order_address_<?php echo
$fieldname;?>"><label><?php echo
$this->fieldsClass->trans($field->field_realname);?></label></dt>
<dd class="hikamarket_<?php echo $type;
?>order_address_<?php echo
$fieldname;?>"><span><?php echo
$this->fieldsClass->show($field,
@$address->$fieldname);?></span></dd>
<?php
}
?>
</dl>
<?php
}
} else {
echo $this->order->override_shipping_address;
}
if(!empty($this->ajax))
return;
?>
</div>
<script type="text/javascript">
window.Oby.registerAjax('orderMgr.<?php echo $type;
?>address',function(params){
if(params && params.src && params.src == '<?php
echo $type; ?>address') return;
window.orderMgr.refreshBlock('<?php echo $type;
?>address');
});
</script>
PK�[�+����.views/ordermarket/tmpl/show_block_customer.phpnu�[���<?php
/**
* @package HikaMarket for Joomla!
* @version 3.1.1
* @author Obsidev S.A.R.L.
* @copyright (C) 2011-2020 OBSIDEV. All rights reserved.
* @license GNU/GPLv3 http://www.gnu.org/licenses/gpl-3.0.html
*/
defined('_JEXEC') or die('Restricted access');
?><?php
if(!hikamarket::acl('order/show/customer'))
return;
if(empty($this->ajax)) { ?>
<div id="hikamarket_order_block_customer">
<?php } ?>
<div class="hikamarket_ajax_loading_elem"></div>
<div class="hikamarket_ajax_loading_spinner"></div>
<dl class="hikam_options large">
<dt
class="hikamarket_order_customer_name"><label><?php
echo JText::_('HIKA_NAME');?></label></dt>
<dd class="hikamarket_order_customer_name"><span
id="hikamarket_order_customer_name"><?php
$customer_name = @$this->order->customer->name;
if(empty($customer_name))
$customer_name = '<em>' .
JText::_('HIKA_NONE') . '</em>';
if($this->order->order_user_id > 0 &&
hikamarket::acl('user/show')) {
?><a onclick="return
window.orderMgr.showCustomer(this);" data-popup-href="<?php
echo
hikamarket::completeLink('user&task=show&cid='.$this->order->order_user_id,
true); ?>" href="<?php echo
hikamarket::completeLink('user&task=show&cid='.$this->order->order_user_id);
?>"><?php
echo $customer_name;
?></a><?php
} else
echo $customer_name;
?></span></dd>
<dt
class="hikamarket_order_customer_email"><label><?php
echo JText::_('HIKA_EMAIL');?></label></dt>
<dd class="hikamarket_order_customer_email"><span
id="hikamarket_order_customer_email"><?php echo
@$this->order->customer->user_email;
?></span></dd>
</dl>
<?php
if(!empty($this->ajax))
return;
?>
</div>
<?php
if(hikamarket::acl('user/show')) {
echo $this->popup->display(
'',
'HIKAM_CUSTOMER_DETAILS',
hikamarket::completeLink('user&task=show&cid=0',
true),
'hikamarket_showcustomer_popup',
750, 460, 'style="display:none;"', '',
'link'
);
}
?>
<script type="text/javascript">
window.Oby.registerAjax('orderMgr.customer',function(params){
if(params && params.src && params.src ==
'customer') return;
window.orderMgr.refreshBlock('customer');
});
window.orderMgr.showCustomer = function(el) { return this.showEl(el,
'hikamarket_showcustomer_popup'); };
</script>
PK�[�N�x-x--views/ordermarket/tmpl/show_block_details.phpnu�[���<?php
/**
* @package HikaMarket for Joomla!
* @version 3.1.1
* @author Obsidev S.A.R.L.
* @copyright (C) 2011-2020 OBSIDEV. All rights reserved.
* @license GNU/GPLv3 http://www.gnu.org/licenses/gpl-3.0.html
*/
defined('_JEXEC') or die('Restricted access');
?><?php
if(empty($this->order))
return;
if(empty($this->ajax)) {
if(hikamarket::acl('order/edit')) {
$dropData = array();
if($this->editable_order &&
hikamarket::acl('order/edit/coupon')) {
$dropData['coupon'] = array(
'name' => '<i class="fas
fa-percentage"></i> ' .
JText::_('HIKAM_EDIT_COUPON'),
'link' => '#coupon',
'click' => 'return
window.orderMgr.showEditDetails(this, \'coupon\', true);'
);
}
if($this->editable_order &&
hikamarket::acl('order/edit/shipping')) {
$dropData['shipping'] = array(
'name' => '<i class="fas
fa-shipping-fast"></i> ' .
JText::_('HIKAM_EDIT_SHIPPING'),
'link' => '#shipping',
'click' => 'return
window.orderMgr.showEditDetails(this, \'shipping\', true);'
);
}
if($this->editable_order &&
hikamarket::acl('order/edit/payment')) {
$dropData['payment'] = array(
'name' => '<i class="far
fa-credit-card"></i> ' .
JText::_('HIKAM_EDIT_PAYMENT'),
'link' => '#payment',
'click' => 'return
window.orderMgr.showEditDetails(this, \'payment\', true);'
);
}
if(!empty($this->fields['order']) &&
$this->editable_order &&
hikamarket::acl('order/show/customfields') &&
hikamarket::acl('order/edit/customfields')) {
$dropData[] = array(
'name' => '<i class="fas
fa-clipboard-list"></i> ' .
JText::_('HIKAM_EDIT_CUSTOM_FIELDS'),
'link' => '#fields',
'click' => 'return
window.orderMgr.refreshBlock(\'fields\', true);'
);
}
if(!empty($dropData)) {
echo
$this->dropdownHelper->display(JText::_('HIKAM_EDIT'),
$dropData, array('type' => '', 'mini'
=> true, 'class' => 'hikabtn-primary',
'right' => false, 'up' => false));
?>
<script type="text/javascript">
window.orderMgr.showEditDetails = function(el, type, show) {
if(type != 'coupon' && type != 'payment'
&& type != 'shipping')
return false;
var d = document,
block = d.getElementById('hikamarket_order_edit_' + type),
marker = false,
showing = ((show === undefined && block.style.display ==
'none') || show == true);
if(!block)
return false;
block.style.display = showing ? '' : 'none';
if(!marker && showing)
this.refreshBlock(type, true);
return false;
};
window.orderMgr.submitDetails = function(el, type) {
var d = document, w = window, o = w.Oby,
block = document.getElementById('hikamarket_order_edit_' +
type);
if(block)
o.addClass(el, "hikamarket_ajax_loading");
this.submitBlock(type, {data:false, update:false}, function(x,p){
if(block) {
o.removeClass(el, "hikamarket_ajax_loading");
if(x.responseText.length > 1)
return window.Oby.updateElem(block, x.responseText);
}
window.Oby.fireAjax('orderMgr.details', null);
});
return this.showEditDetails(el, type, false);
};
</script>
<?php
}
if($this->editable_order &&
hikamarket::acl('order/edit/coupon')) {
?>
<div class="hikamarket_order_edit_block"
id="hikamarket_order_edit_coupon"
style="display:none;">
<div class="hikamarket_ajax_loading_elem"></div>
<div class="hikamarket_ajax_loading_spinner"></div>
</div>
<?php
}
if($this->editable_order &&
hikamarket::acl('order/edit/shipping')) {
?>
<div class="hikamarket_order_edit_block"
id="hikamarket_order_edit_shipping"
style="display:none;">
<div class="hikamarket_ajax_loading_elem"></div>
<div class="hikamarket_ajax_loading_spinner"></div>
</div>
<?php
}
if($this->editable_order &&
hikamarket::acl('order/edit/payment')) {
?>
<div class="hikamarket_order_edit_block"
id="hikamarket_order_edit_payment"
style="display:none;">
<div class="hikamarket_ajax_loading_elem"></div>
<div class="hikamarket_ajax_loading_spinner"></div>
</div>
<?php
}
}
?>
<div id="hikamarket_order_block_details">
<?php } ?>
<div class="hikamarket_ajax_loading_elem"></div>
<div class="hikamarket_ajax_loading_spinner"></div>
<dl class="hikam_options large">
<dt
class="hikamarket_order_additional_subtotal"><label><?php
echo JText::_('SUBTOTAL'); ?></label></dt>
<dd
class="hikamarket_order_additional_subtotal"><span><?php
if($this->shopConfig->get('price_with_tax'))
echo
$this->currencyHelper->format($this->order->order_subtotal,
$this->order->order_currency_id);
else
echo
$this->currencyHelper->format($this->order->order_subtotal_no_vat,
$this->order->order_currency_id);
?></span></dd>
<?php if(!empty($this->order->order_discount_code) ||
bccomp($this->order->order_discount_price, 0, 5) !== 0) { ?>
<dt
class="hikamarket_order_additional_coupon"><label><?php
echo JText::_('HIKASHOP_COUPON'); ?></label></dt>
<dd
class="hikamarket_order_additional_coupon"><span><?php
if($this->shopConfig->get('price_with_tax'))
echo
$this->currencyHelper->format($this->order->order_discount_price
* -1.0, $this->order->order_currency_id);
else
echo
$this->currencyHelper->format(($this->order->order_discount_price
- @$this->order->order_discount_tax) * -1.0,
$this->order->order_currency_id);
?> <span class="label label-default"><?php echo
$this->order->order_discount_code;
?></span></span></dd>
<?php } ?>
<!-- Shipping -->
<?php if(!empty($this->order->order_shipping_id) ||
bccomp($this->order->order_shipping_price, 0, 5) !== 0) { ?>
<dt
class="hikamarket_order_additional_shipping"><label><?php
echo JText::_('SHIPPING'); ?></label></dt>
<dd
class="hikamarket_order_additional_shipping"><span><?php
if($this->shopConfig->get('price_with_tax'))
echo
$this->currencyHelper->format($this->order->order_shipping_price,
$this->order->order_currency_id);
else
echo
$this->currencyHelper->format($this->order->order_shipping_price
- @$this->order->order_shipping_tax,
$this->order->order_currency_id);
?> <span class="hk-label hk-label-blue"><?php
if(empty($this->order->shipping_name))
echo
'<em>'.JText::_('HIKA_NONE').'</em>';
else if(is_string($this->order->shipping_name))
echo $this->order->shipping_name;
else if(!empty($this->order->shipping_data))
echo implode('</span> <span class="hk-label
hk-label-blue">', $this->order->shipping_data);
else
echo implode('</span> <span class="hk-label
hk-label-blue">', $this->order->shipping_name);
?></span></dd>
<?php
}
?>
<!-- Payment -->
<?php if(!empty($this->order->order_payment_id) ||
bccomp($this->order->order_payment_price, 0, 5) !== 0) { ?>
<dt
class="hikamarket_order_additional_payment"><label><?php
echo JText::_('HIKASHOP_PAYMENT');
?></label></dt>
<dd
class="hikamarket_order_additional_payment"><span><?php
echo
$this->currencyHelper->format($this->order->order_payment_price,
$this->order->order_currency_id);
?> <span class="hk-label hk-label-blue"><?php echo
@$this->order->payment_name; ?></span></dd>
<?php
}
?>
<!-- Additional -->
<?php
if(!empty($this->order->additional)) {
foreach($this->order->additional as $additional) {
?>
<dt
class="hikamarket_order_additional_additional"><label><?php
echo JText::_($additional->order_product_name);
?></label></dt>
<dd
class="hikamarket_order_additional_additional"><span><?php
if(!empty($additional->order_product_price))
$additional->order_product_price =
(float)$additional->order_product_price;
if(!empty($additional->order_product_price) ||
empty($additional->order_product_options))
echo
$this->currencyHelper->format($additional->order_product_price,
$this->order->order_currency_id);
else
echo $additional->order_product_options;
?></span></dd>
<?php
}
}
?>
<!-- Taxes -->
<?php
if($this->shopConfig->get('detailed_tax_display')
&& !empty($this->order->order_tax_info)) {
foreach($this->order->order_tax_info as $tax) {
?>
<dt
class="hikamarket_order_additional_tax"><label><?php
echo $tax->tax_namekey;
?></label></dt>
<dd
class="hikamarket_order_additional_tax"><span><?php
echo
$this->currencyHelper->format($tax->tax_amount,$this->order->order_currency_id);
?></span></dd>
<?php
}
}
?>
<!-- Total -->
<dt
class="hikamarket_order_additional_total"><label><?php
if((int)$this->order->order_vendor_id <= 1)
echo JText::_('HIKASHOP_TOTAL');
else
echo JText::_('HIKAM_USER_TOTAL');
?></label></dt>
<dd
class="hikamarket_order_additional_total"><span><?php
echo
$this->currencyHelper->format($this->order->order_full_price,
$this->order->order_currency_id); ?></span></dd>
<?php
if((int)$this->order->order_vendor_id > 1) {
$fixed_fees = 0.0;
if(!empty($this->order->order_vendor_params->fees->fixed)) {
foreach($this->order->order_vendor_params->fees->fixed as
$fixed_fee) {
$fixed_fees += $fixed_fee;
}
}
if(bccomp($fixed_fees, 0, 5) !== 0) {
?>
<!-- Vendor fixed fees -->
<dt
class="hikamarket_order_vendor_fixed_fees"><label><?php
echo JText::_('HIKAM_VENDOR_FIXED_FEES');
?></label></dt>
<dd
class="hikamarket_order_vendor_fixed_fees"><span><?php
echo $this->currencyHelper->format($fixed_fees,
$this->order->order_currency_id);
?></span></dd>
<?php
}
if(!empty($this->order->order_vendor_params->fees->shipping))
{
?>
<!-- Vendor shipping fees -->
<dt
class="hikamarket_order_vendor_shipping_fees"><label><?php
echo JText::_('HIKAM_VENDOR_SHIPPING_FEES');
?></label></dt>
<dd
class="hikamarket_order_vendor_shipping_fees"><span><?php
echo
$this->currencyHelper->format($this->order->order_vendor_params->fees->shipping,
$this->order->order_currency_id);
?></span></dd>
<?php
}
if($this->order->order_vendor_paid > 0) {
$total = $this->order->order_vendor_price;
$paid = $this->order->order_vendor_price;
if(!empty($this->order->refunds)) {
foreach($this->order->refunds as $refund) {
$total += (float)hikamarket::toFloat($refund->order_vendor_price);
if($refund->order_vendor_paid > 0)
$paid += (float)hikamarket::toFloat($refund->order_vendor_price);
}
}
?>
<!-- Vendor total -->
<dt
class="hikamarket_order_vendor_paid"><label><?php
echo JText::_('VENDOR_TOTAL'); ?></label></dt>
<dd
class="hikamarket_order_vendor_paid"><span><?php
echo $this->currencyHelper->format($total,
$this->order->order_currency_id);
if($total == $paid) {
echo ' ' .
hikamarket::tooltip(JText::_('HIKAM_ORDER_IS_PAID'),
'', '', '<img
src="'.HIKAMARKET_IMAGES.'icon-16/save2.png"
style="vertical-align:top;"
alt="('.JText::_('PAID').')" />',
'', 0);
} elseif($total > $paid) {
echo ' ' .
JText::sprintf('HIKAM_ORDER_PARTIAL_PAID',
$this->currencyHelper->format($total - $paid,
$this->order->order_currency_id));
} else {
echo ' ' .
JText::sprintf('HIKAM_ORDER_PARTIAL_REFUND',
$this->currencyHelper->format($paid - $total,
$this->order->order_currency_id));
}
?></span></dd>
<?php
} else {
?>
<!-- Vendor total -->
<dt
class="hikamarket_order_vendor_total"><label><?php
echo JText::_('VENDOR_TOTAL'); ?></label></dt>
<dd
class="hikamarket_order_vendor_total"><span><?php
echo
$this->currencyHelper->format($this->order->order_vendor_price,
$this->order->order_currency_id);
?></span></dd>
<?php
}
?>
<?php } ?>
</dl>
<?php
if(!empty($this->ajax))
return;
?>
</div>
<script type="text/javascript">
window.Oby.registerAjax('orderMgr.details',function(params){
window.orderMgr.refreshBlock('details'); });
</script>
PK�[L"{N�%�%2views/ordermarket/tmpl/show_block_edit_address.phpnu�[���<?php
/**
* @package HikaMarket for Joomla!
* @version 3.1.1
* @author Obsidev S.A.R.L.
* @copyright (C) 2011-2020 OBSIDEV. All rights reserved.
* @license GNU/GPLv3 http://www.gnu.org/licenses/gpl-3.0.html
*/
defined('_JEXEC') or die('Restricted access');
?><?php
$type = @$this->block_edit_address;
if(!in_array($type, array('shipping', 'billing')))
return;
if(!empty($this->ajax) && ( empty($this->edit_address_mode)
|| !in_array($this->edit_address_mode, array('select',
'edit'))) )
return;
$address_edit = $this->editable_order &&
hikamarket::acl('order/edit/'.$type.'address');
if(empty($this->ajax)) {
$data = array(
array(
'name' => '<i class="fas
fa-map-marked-alt"></i> ' .
JText::_('HIKAM_SHOW_DEFAULT'),
'link' => '#select_'.$type.'_address',
'click' => 'return
window.orderMgr.refreshAddressBlock(\''.$type.'\',
0);'
),
array(
'name' => '<i class="fas
fa-address-card"></i> ' .
JText::_('HIKAM_SHOW_DETAILS'),
'link' => '#select_'.$type.'_address',
'click' => 'return
window.orderMgr.refreshAddressBlock(\''.$type.'\',
1);'
)
);
if($address_edit) {
$data = array_merge($data, array(
'-',
array(
'name' => '<i class="fas
fa-pencil-alt"></i> ' .
JText::_('HIKAM_EDIT_ADDRESS'),
'link' => '#edit_'.$type.'_address',
'click' => 'return
window.orderMgr.refreshAddressEditBlock(\''.$type.'\',
\'edit\');'
),
));
if(hikamarket::acl('user/show/address')) {
$data[] = array(
'name' => '<i class="fas
fa-location-arrow"></i> ' .
JText::_('HIKAM_SELECT_ADDRESS'),
'link' =>
'#select_'.$type.'_address',
'click' => 'return
window.orderMgr.refreshAddressEditBlock(\''.$type.'\',
\'select\');'
);
}
}
echo $this->dropdownHelper->display(
JText::_('HIKAM_MORE'),
$data,
array('type' => '', 'mini' => true,
'class' => 'hikabtn-primary', 'right'
=> true, 'up' => false)
);
?>
<script type="text/javascript">
window.orderMgr.refreshAddressBlock = function(type, mode) {
if(type != 'billing' && type != 'shipping')
return false;
var d = document, w = window, o = w.Oby,
el = d.getElementById("hikamarket_order_block_" + type +
"address");
if(!el) return false;
mode = parseInt(mode);
if(mode == NaN) mode = 0;
o.addClass(el, "hikamarket_ajax_loading");
var url = '<?php echo
hikamarket::completeLink('order&task=showblock&block=HIKATYPE&address_mode=HIKAADDRMODE&cid='.(int)$this->order->order_id.'&tmpl=ajax',
false, false, true); ?>'.replace("HIKATYPE", type +
'address').replace("HIKAADDRMODE", mode);
o.xRequest(url, {update: el}, function(x,p) {
o.removeClass(el, "hikamarket_ajax_loading");
});
return false;
};
</script>
<?php
if(!$address_edit)
return;
?>
<div class="hikamarket_order_edit_block"
id="hikamarket_order_edit_<?php echo $type; ?>address"
style="display:none;">
<div class="hikamarket_ajax_loading_elem"></div>
<div
class="hikamarket_ajax_loading_spinner"></div>
<?php
hikamarket::loadJslib('otree');
?>
</div>
<script type="text/javascript">
window.orderMgr.refreshAddressEditBlock = function(type, mode) {
if(type != 'billing' && type != 'shipping')
return false;
if(mode != 'select' && mode != 'edit')
return false;
var d = document, w = window, o = w.Oby, el = null,
url = '<?php echo
hikamarket::completeLink('order&task=showblock&block=HIKATYPE&address_mode=HIKAADDRMODE&cid='.(int)$this->order->order_id.'&tmpl=ajax',
false, false, true); ?>'.replace("HIKATYPE",
'edit_' + type +
'address').replace("HIKAADDRMODE", mode)
box = window.oNameboxes['hikamarket_order_edit_' + type +
'_address_namebox'];
if(mode == 'select')
el = d.getElementById('hikamarket_order_edit_' + type +
'address');
if(mode == 'edit')
el = d.getElementById('hikamarket_order_block_' + type +
'address');
if(!el)
return false;
if(box)
box.clear();
if(mode == 'select')
el.style.display = '';
o.addClass(el, "hikamarket_ajax_loading");
o.xRequest(url, {update: el}, function(x,p) {
o.removeClass(el, "hikamarket_ajax_loading");
});
return false;
};
window.orderMgr.selectAddress = function(type) {
if(type != 'billing' && type != 'shipping')
return false;
var d = document, addr =
d.getElementById('hikamarket_order_block_' + type +
'address');
window.orderMgr.submitBlock(type + 'address', {update: addr},
function(x,p){
window.orderMgr.hideSelectAddress(type);
});
return false;
};
window.orderMgr.submitAddress = function(type) {
if(type != 'billing' && type != 'shipping')
return false;
window.orderMgr.submitBlock(type + 'address', {update:true},
null, 'block');
return false;
};
window.orderMgr.hideSelectAddress = function(type) {
if(type != 'billing' && type != 'shipping')
return false;
var d = document,
block = d.getElementById('hikamarket_order_edit_' + type +
'address'),
box = window.oNameboxes['hikamarket_order_edit_' + type +
'_address_namebox'];
if(box) box.clear();
if(block) block.style.display = 'none';
return false;
};
</script>
<?php
return;
}
if($address_edit && $this->edit_address_mode ==
'select') {
?>
<div class="hikamarket_ajax_loading_elem"></div>
<div class="hikamarket_ajax_loading_spinner"></div>
<div>
<?php
echo $this->nameboxType->display(
'order['.$type.'address][address_id]',
'',
hikamarketNameboxType::NAMEBOX_SINGLE,
'address',
array(
'url_params' => array(
'USER_ID' => (int)@$this->order->order_user_id,
'ADDR_TYPE' => $type,
),
'delete' => true,
'default_text' =>
'<em>'.JText::_('HIKA_NONE').'</em>',
'id' =>
'hikamarket_order_edit_'.$type.'_address_namebox'
)
);
?>
<input type="hidden" name="order[<?php echo $type;
?>address][addrselect]" value="1"/>
<div>
<label for="hikamarket_order_select_<?php echo $type;
?>_address_addrlink"><input type="checkbox"
value="1" id="hikamarket_order_select_<?php echo $type;
?>_address_addrlink" name="order[<?php echo $type;
?>address][addrlink]" /><span><?php
$key = ($type == 'billing') ?
'SET_SHIPPING_ADDRESS_TOO' :
'SET_BILLING_ADDRESS_TOO';
echo JText::_($key);
?></span></label>
</div>
<div style="clear:both;margin-top:4px;"></div>
<div style="float:right">
<button onclick="return
window.orderMgr.selectAddress('<?php echo $type;
?>');" class="hikabtn hikabtn-success"><i
class="fas fa-check"></i> <?php echo
JText::_('HIKAM_SELECT_ADDRESS'); ;?></button>
</div>
<button onclick="return
window.orderMgr.hideSelectAddress('<?php echo $type;
?>');" class="hikabtn hikabtn-danger"><i
class="far fa-times-circle"></i> <?php echo
JText::_('HIKA_CANCEL'); ;?></button>
<div style="clear:both"></div>
</div>
<script type="text/javascript">
window.Oby.registerAjax('orderMgr.customer',function(params){
if(!params || !params.id) return;
var u = '<?php echo
hikamarket::completeLink('user&task=getAddressList&address_type='.$type.'&user_id=HIKA_USER_ID',
true, false, true); ?>';
window.oNameboxes['hikamarket_order_edit_<?php echo $type;
?>_address_namebox'].changeUrl(u.replace('HIKA_USER_ID',
params.id));
});
</script>
<?php
return;
}
if($address_edit && $this->edit_address_mode ==
'edit') {
?>
<div class="hikamarket_ajax_loading_elem"></div>
<div class="hikamarket_ajax_loading_spinner"></div>
<div class="hikamarket_order_edit_block">
<dl>
<?php
$address = (($type == 'billing') ?
$this->order->billing_address :
$this->order->shipping_address);
$fields = (isset($this->order->{$type.'_fields'}) ?
$this->order->{$type.'_fields'} :
$this->order->fields);
foreach($fields as $field) {
if(empty($field->field_frontcomp) &&
strpos($field->field_display, ';vendor_order_show=1;') ===
false)
continue;
$fieldname = $field->field_namekey;
?>
<dt class="hikamarket_<?php echo $type;
?>order_address_<?php echo
$fieldname;?>"><label><?php
echo $this->fieldsClass->trans($field->field_realname);
if(!empty($field->field_required))
echo ' *';
?></label></dt>
<dd class="hikamarket_<?php echo $type;
?>order_address_<?php echo $fieldname;?>"><?php
echo $this->fieldsClass->display(
$field,
@$address->$fieldname,
'order['.$type.'address]['.$fieldname.']',
false,
'',
false,
$fields,
$address,
false
);
?></dd>
<?php
}
?>
</dl>
<input type="hidden" name="order[<?php echo $type;
?>address][address_id]" value="<?php echo
(int)$this->order->{'order_'.$type.'_address_id'};
?>"/>
<?php if($this->order->order_billing_address_id ==
$this->order->order_shipping_address_id) { ?>
<div>
<label for="hikamarket_order_select_<?php echo $type;
?>_address_addrlink"><input type="checkbox"
value="1" id="hikamarket_order_select_<?php echo $type;
?>_address_addrlink" name="order[<?php echo $type;
?>address][addrlink]" /><span><?php
$key = ($type == 'billing') ?
'SET_SHIPPING_ADDRESS_TOO' :
'SET_BILLING_ADDRESS_TOO';
echo JText::_($key);
?></span></label>
</div>
<?php } ?>
<div style="clear:both;margin-top:4px;"></div>
<div style="float:right">
<button onclick="return
window.orderMgr.submitAddress('<?php echo $type;
?>');" class="hikabtn hikabtn-success"><i
class="fas fa-check"></i> <?php echo
JText::_('HIKA_OK'); ;?></button>
</div>
<button onclick="return
window.orderMgr.refreshAddressBlock('<?php echo $type; ?>',
0);" class="hikabtn hikabtn-danger"><i class="far
fa-times-circle"></i> <?php echo
JText::_('HIKA_CANCEL'); ;?></button>
<div style="clear:both"></div>
</div>
<?php
}
PK�[xd���1views/ordermarket/tmpl/show_block_edit_coupon.phpnu�[���<?php
/**
* @package HikaMarket for Joomla!
* @version 3.1.1
* @author Obsidev S.A.R.L.
* @copyright (C) 2011-2020 OBSIDEV. All rights reserved.
* @license GNU/GPLv3 http://www.gnu.org/licenses/gpl-3.0.html
*/
defined('_JEXEC') or die('Restricted access');
?><?php
if(!$this->editable_order ||
!hikamarket::acl('order/edit/coupon'))
return;
?>
<div class="hikamarket_ajax_loading_elem"></div>
<div class="hikamarket_ajax_loading_spinner"></div>
<dl class="hikam_options">
<dt><label><?php echo JText::_('COUPON_CODE');
?></label></dt>
<dd><input type="text"
name="order[coupon][code]" value="<?php echo
$this->escape(@$this->order->order_discount_code);
?>"/></dd>
<dt><label><?php echo JText::_('COUPON_TAX');
?></label></dt>
<dd><?php
echo
$this->ratesType->display('order[coupon][tax_namekey]',
@$this->order->order_discount_tax_namekey,
@$this->order->order_discount_tax_rate,
'onchange="window.orderMgr.updateTaxValueFields(\'ordercoupon\');"');
?></dd>
<dt><label><?php echo JText::_('COUPON_VALUE');
?></label></dt>
<dd>
<input type="text" id="ordercoupon_value"
name="order[coupon][value]"
onchange="window.orderMgr.updateTaxValueFields('ordercoupon');"
value="<?php echo $this->order->order_discount_price;
?>"/> <?php echo
$this->order->currency->currency_symbol . ' (' .
$this->order->currency->currency_code . ')';
?><br/>
<div>
<span id="ordercoupon_value_price"><?php echo
($this->order->order_discount_price -
$this->order->order_discount_tax); ?></span>
+
<span id="ordercoupon_value_tax"><?php echo
$this->order->order_discount_tax; ?></span>
</div>
<input type="hidden" id="ordercoupon_tax"
name="order[coupon][tax]" value="<?php echo
(float)$this->order->order_discount_tax; ?>"/>
</dd>
</dl>
<div style="clear:both;margin-top:4px;"></div>
<div style="float:right">
<button onclick="return window.orderMgr.submitDetails(this,
'coupon');" class="hikabtn
hikabtn-success"><i class="fas fa-check"></i>
<?php echo JText::_('HIKA_OK'); ;?></button>
</div>
<button onclick="return window.orderMgr.showEditDetails(this,
'coupon', false);" class="hikabtn
hikabtn-danger"><i class="far
fa-times-circle"></i> <?php echo
JText::_('HIKA_CANCEL'); ;?></button>
<div style="clear:both"></div>
PK�[C�g,��3views/ordermarket/tmpl/show_block_edit_customer.phpnu�[���<?php
/**
* @package HikaMarket for Joomla!
* @version 3.1.1
* @author Obsidev S.A.R.L.
* @copyright (C) 2011-2020 OBSIDEV. All rights reserved.
* @license GNU/GPLv3 http://www.gnu.org/licenses/gpl-3.0.html
*/
defined('_JEXEC') or die('Restricted access');
?><?php
if(!$this->editable_order ||
!hikamarket::acl('order/edit/customer'))
return;
if(empty($this->ajax)) {
echo $this->dropdownHelper->display(
JText::_('HIKAM_EDIT'),
array(
'customer' => array(
'name' => '<i class="fas
fa-user"></i> ' .
JText::_('HIKAM_CHANGE_CUSTOMER'),
'link' => '#customer',
'click' => 'return
window.orderMgr.showSelectCustomer(this, true);'
)
),
array('type' => '', 'mini' => true,
'class' => 'hikabtn-primary', 'right'
=> false, 'up' => false)
);
?>
<div class="hikamarket_order_edit_block"
id="hikamarket_order_edit_customer"
style="display:none;">
<div class="hikamarket_ajax_loading_elem"></div>
<div
class="hikamarket_ajax_loading_spinner"></div>
<?php
hikamarket::loadJslib('otree');
?>
</div>
<script type="text/javascript">
window.orderMgr.showSelectCustomer = function(el, show) {
var d = document,
block = d.getElementById('hikamarket_order_edit_customer'),
box =
window.oNameboxes['hikamarket_order_edit_customer_namebox'];
if(!block)
return false;
block.style.display = ((show === undefined && block.style.display
== 'none') || show == true) ? '' : 'none';
if(box) {
box.clear();
} else {
this.refreshBlock('customer', true);
}
return false;
};
window.orderMgr.selectCustomer = function(el) {
var d = document, w = window, o = w.Oby,
block =
document.getElementById('hikamarket_order_block_customer');
if(block) o.addClass(el, "hikamarket_ajax_loading");
this.submitBlock("customer", {data:false, update:false},
function(x,p){
if(el) {
o.removeClass(block, "hikamarket_ajax_loading");
if(x.responseText.length > 1)
return window.Oby.updateElem(block, x.responseText);
}
window.Oby.fireAjax('orderMgr.customer', null);
});
return this.showSelectCustomer(el, false);
};
</script>
<?php
return;
}
echo $this->nameboxType->display(
'order[customer][user_id]',
'',
hikamarketNameboxType::NAMEBOX_SINGLE,
'user',
array(
'customer' => true,
'delete' => true,
'default_text' =>
'<em>'.JText::_('HIKA_NONE').'</em>',
'id' => 'hikamarket_order_edit_customer_namebox'
)
);
?>
<div>
<label
for="hikamarket_order_edit_customer_addrlink"><input
type="checkbox" value="1"
name="order[customer][addrlink]"
id="hikamarket_order_edit_customer_addrlink"
/><span><?php echo JText::_('SET_USER_ADDRESS');
?></span></label>
</div>
<div style="clear:both;margin-top:4px;"></div>
<div style="float:right">
<button onclick="return
window.orderMgr.selectCustomer(this);" class="hikabtn
hikabtn-success"><i class="fas fa-check"></i>
<?php echo JText::_('HIKAM_SELECT_CUSTOMER');
;?></button>
</div>
<button onclick="return window.orderMgr.showSelectCustomer(this,
false);" class="hikabtn hikabtn-danger"><i
class="far fa-times-circle"></i> <?php echo
JText::_('HIKA_CANCEL'); ;?></button>
<div style="clear:both"></div>
PK�[=���1views/ordermarket/tmpl/show_block_edit_fields.phpnu�[���<?php
/**
* @package HikaMarket for Joomla!
* @version 3.1.1
* @author Obsidev S.A.R.L.
* @copyright (C) 2011-2020 OBSIDEV. All rights reserved.
* @license GNU/GPLv3 http://www.gnu.org/licenses/gpl-3.0.html
*/
defined('_JEXEC') or die('Restricted access');
?><?php
if(empty($this->fields['order']) || !$this->editable_order
|| !hikamarket::acl('order/show/customfields') ||
!hikamarket::acl('order/edit/customfields'))
return;
if(empty($this->ajax)) { ?>
<div id="hikamarket_order_block_fields">
<?php } ?>
<div class="hikamarket_order_edit_block">
<div class="hikamarket_ajax_loading_elem"></div>
<div class="hikamarket_ajax_loading_spinner"></div>
<dl class="hikam_options large dl_glue">
<?php
foreach($this->fields['order'] as $fieldName =>
$oneExtraField) {
?>
<dt class="hikamarket_order_additional_customfield
hikamarket_order_additional_customfield_<?php echo $fieldName;
?>"><?php
echo $this->fieldsClass->getFieldName($oneExtraField, true);
?></dt>
<dd class="hikamarket_order_additional_customfield
hikamarket_order_additional_customfield_<?php echo $fieldName;
?>"><span><?php
echo $this->fieldsClass->display($oneExtraField,
@$this->order->$fieldName,
'order[field]['.$fieldName.']', false, '',
false, $this->fields['order'], $this->order, false);
?></span></dd>
<?php
}
?>
</dl>
<div style="clear:both;margin-top:4px;"></div>
<div style="float:right">
<button onclick="return
window.orderMgr.submitBlock('fields', {update:true});"
class="hikabtn hikabtn-success"><i class="fas
fa-check"></i> <?php echo JText::_('HIKA_OK');
;?></button>
</div>
<button onclick="return
window.orderMgr.refreshBlock('fields', false);"
class="hikabtn hikabtn-danger"><i class="far
fa-times-circle"></i> <?php echo
JText::_('HIKA_CANCEL'); ;?></button>
<div style="clear:both">
</div>
<?php
if(!empty($this->ajax))
return;
?>
</div>
PK�[��X�7
7
2views/ordermarket/tmpl/show_block_edit_payment.phpnu�[���<?php
/**
* @package HikaMarket for Joomla!
* @version 3.1.1
* @author Obsidev S.A.R.L.
* @copyright (C) 2011-2020 OBSIDEV. All rights reserved.
* @license GNU/GPLv3 http://www.gnu.org/licenses/gpl-3.0.html
*/
defined('_JEXEC') or die('Restricted access');
?><?php
if(!$this->editable_order ||
!hikamarket::acl('order/edit/payment'))
return;
?>
<div class="hikamarket_ajax_loading_elem"></div>
<div class="hikamarket_ajax_loading_spinner"></div>
<dl class="hikam_options">
<dt><label><?php echo JText::_('PAYMENT_METHOD');
?></label></dt>
<dd><?php
$payment_namekey = '';
if(!empty($this->order->order_payment_method))
$payment_namekey = $this->order->order_payment_method .
'_' . $this->order->order_payment_id;
echo $this->nameboxType->display(
'order[payment][namekey]',
$payment_namekey,
hikamarketNameboxType::NAMEBOX_SINGLE,
'payment_methods',
array(
'default_text' =>
'<em>'.JText::_('HIKA_NONE').'</em>'
)
);
?></dd>
<dt><label><?php echo JText::_('PAYMENT_TAX');
?></label></dt>
<dd><?php
echo
$this->ratesType->display('order[payment][tax_namekey]',
@$this->order->order_payment_tax_namekey,
@$this->order->order_payment_tax_rate,
'onchange="window.orderMgr.updateTaxValueFields(\'orderpayment\');"');
?></dd>
<dt><label><?php echo
JText::_('HIKASHOP_PAYMENT'); ?></label></dt>
<dd>
<input type="text" id="orderpayment_value"
name="order[payment][value]"
onchange="window.orderMgr.updateTaxValueFields('orderpayment');"
value="<?php echo $this->order->order_payment_price;
?>"/> <?php echo
$this->order->currency->currency_symbol . ' (' .
$this->order->currency->currency_code . ')';
?><br/>
<div>
<span id="orderpayment_value_price"><?php echo
($this->order->order_payment_price -
$this->order->order_payment_tax); ?></span>
+
<span id="orderpayment_value_tax"><?php echo
$this->order->order_payment_tax; ?></span>
</div>
<input type="hidden" id="orderpayment_tax"
name="order[payment][tax]" value="<?php echo
(float)$this->order->order_payment_tax; ?>"/>
</dd>
</dl>
<div style="clear:both;margin-top:4px;"></div>
<div style="float:right">
<button onclick="return window.orderMgr.submitDetails(this,
'payment');" class="hikabtn
hikabtn-success"><i class="fas fa-check"></i>
<?php echo JText::_('HIKA_OK'); ;?></button>
</div>
<button onclick="return window.orderMgr.showEditDetails(this,
'payment', false);" class="hikabtn
hikabtn-danger"><i class="far
fa-times-circle"></i> <?php echo
JText::_('HIKA_CANCEL'); ;?></button>
<div style="clear:both"></div>
PK�[��gJ2views/ordermarket/tmpl/show_block_edit_product.phpnu�[���<?php
/**
* @package HikaMarket for Joomla!
* @version 3.1.1
* @author Obsidev S.A.R.L.
* @copyright (C) 2011-2020 OBSIDEV. All rights reserved.
* @license GNU/GPLv3 http://www.gnu.org/licenses/gpl-3.0.html
*/
defined('_JEXEC') or die('Restricted access');
?><?php
if(!$this->editable_order ||
!hikamarket::acl('order/edit/products'))
return false;
$orderProduct = $this->product;
$pid = isset($this->pid) ? $this->pid :
(int)$product->order_product_id;
$showVendor = (hikamarket::level(1) &&
$this->order->order_type == 'sale' &&
$this->vendor->vendor_id <= 1);
$colspan = 4;
if($showVendor) $colspan++;
?>
<td colspan="<?php echo $colspan; ?>"
data-order-product-id="<?php $pid; ?>">
<dl class="hikam_options">
<dt
class="hikamarket_order_product_id"><label><?php echo
JText::_('PRODUCT'); ?></label></dt>
<dd class="hikamarket_order_product_id">
<?php
echo $this->nameboxType->display(
'order[products]['.$pid.'][id]',
(int)@$orderProduct->product_id,
hikamarketNameboxType::NAMEBOX_SINGLE,
'product',
array(
'default_text' => '<em>' .
JText::_('HIKA_NONE') . '</em>',
'root' => $this->rootCategory,
'variants' => true,
'delete' => true,
)
);
?>
<?php if($pid == 0) { ?>
<script type="text/javascript">
(function() {
var n = window.oNameboxes['order_products_0_id'];
if(!n) return;
n.register('set', function(p){
window.orderMgr.loadProductData(<?php echo (int)$pid; ?>, p.value);
});
})();
</script>
<?php } else { ?>
<a href="#load" onclick="return
window.orderMgr.loadProductData(<?php echo (int)$pid; ?>,
null);"><?php echo
JText::_('HIKAM_LOAD_PRODUCT_DATA'); ?></a>
<?php } ?>
</dd>
<dt
class="hikamarket_order_product_name"><label><?php
echo JText::_('HIKA_NAME'); ?></label></dt>
<dd class="hikamarket_order_product_name">
<input type="text" name="order[products][<?php echo
$pid; ?>][name]" id="hikamarket_order_<?php echo
$this->order->order_id; ?>_orderproduct_<?php echo $pid;
?>_name" value="<?php echo
$this->escape(@$orderProduct->order_product_name); ?>" />
</dd>
<dt
class="hikamarket_order_product_code"><label><?php
echo JText::_('PRODUCT_CODE'); ?></label></dt>
<dd class="hikamarket_order_product_code">
<input type="text" name="order[products][<?php echo
$pid; ?>][code]" id="hikamarket_order_<?php echo
$this->order->order_id; ?>_orderproduct_<?php echo $pid;
?>_code" value="<?php echo
$this->escape(@$orderProduct->order_product_code); ?>" />
</dd>
<dt
class="hikamarket_order_product_tax"><label><?php
echo JText::_('VAT'); ?></label></dt>
<dd class="hikamarket_order_product_tax"><?php
echo
$this->ratesType->display('order[products]['.$pid.'][tax_namekey]',
@$orderProduct->order_product_tax_info[0]->tax_namekey,
@$orderProduct->tax_rate,
'onchange="window.orderMgr.updateTaxValueFields(\'hikamarket_order_'.$this->order->order_id.'_orderproduct_'.$pid.'\');"',
'hikamarket_order_'.$this->order->order_id.'_orderproduct_'.$pid.'_tax_namekey');
?></dd>
<dt
class="hikamarket_order_product_price"><label><?php
echo JText::_('UNIT_PRICE'); ?></label></dt>
<dd class="hikamarket_order_product_price">
<input type="text" name="order[products][<?php echo
$pid; ?>][value]" id="hikamarket_order_<?php echo
$this->order->order_id; ?>_orderproduct_<?php echo $pid;
?>_value"
onchange="window.orderMgr.updateTaxValueFields('hikamarket_order_<?php
echo $this->order->order_id; ?>_orderproduct_<?php echo $pid;
?>');" value="<?php echo
@$orderProduct->order_product_price +
@$orderProduct->order_product_tax; ?>"/> <?php echo
$this->order->currency->currency_symbol . ' (' .
$this->order->currency->currency_code . ')';
?><br/>
<div>
<span id="hikamarket_order_<?php echo
$this->order->order_id; ?>_orderproduct_<?php echo $pid;
?>_value_price"><?php echo
round((float)hikamarket::toFloat(@$orderProduct->order_product_price));
?></span>
+
<span id="hikamarket_order_<?php echo
$this->order->order_id; ?>_orderproduct_<?php echo $pid;
?>_value_tax"><?php echo
round((float)hikamarket::toFloat(@$orderProduct->order_product_tax));
?></span>
</div>
<input type="hidden" id="hikamarket_order_<?php
echo $this->order->order_id; ?>_orderproduct_<?php echo $pid;
?>_tax" name="order[products][<?php echo $pid;
?>][tax]" value="<?php echo
(float)@$orderProduct->order_product_tax; ?>"/>
</dd>
<dt
class="hikamarket_order_product_quantity"><label><?php
echo JText::_('PRODUCT_QUANTITY');
?></label></dt>
<dd class="hikamarket_order_product_quantity">
<input type="text" name="order[products][<?php echo
$pid; ?>][qty]" id="hikamarket_order_<?php echo
$this->order->order_id; ?>_orderproduct_<?php echo $pid;
?>_qty" value="<?php
if(empty($pid)) {
echo 1;
} elseif(isset($orderProduct->order_product_quantity)) {
echo (int)$orderProduct->order_product_quantity;
}
?>" />
</dd>
<?php
if(!empty($this->fields['item'])) {
$editCustomFields = false;
if(hikamarket::acl('order/edit/customfields'))
$editCustomFields = true;
foreach($this->fields['item'] as $fieldName =>
$oneExtraField) {
?>
<dt class="hikamarket_order_product_customfield
hikamarket_order_product_customfield_<?php echo $fieldName;
?>"><?php echo
$this->fieldsClass->getFieldName($oneExtraField);?></dt>
<dd class="hikamarket_order_product_customfield
hikamarket_order_product_customfield_<?php echo $fieldName;
?>"><span><?php
if($editCustomFields) {
echo $this->fieldsClass->display($oneExtraField,
@$orderProduct->$fieldName,
'order[products]['.$pid.'][field]['.$fieldName.']',false,'',true,$this->fields['item'],
$orderProduct);
} else {
echo $this->fieldsClass->show($oneExtraField,
@$orderProduct->$fieldName);
}
?></span></dd>
<?php
}
}
if(hikamarket::level(1) && $this->vendor->vendor_id <= 1
&& hikamarket::acl('order/edit/vendor') &&
(!empty($orderProduct->vendor_data) || $pid == 0)) {
$vendor_data = new stdClass();
if(!empty($orderProduct))
$vendor_data = is_array($orderProduct->vendor_data) ?
reset($orderProduct->vendor_data) : $orderProduct->vendor_data;
?>
<dt
class="hikamarket_orderproduct_vendor"><label><?php
echo JText::_('HIKA_VENDOR'); ?></label></dt>
<dd class="hikamarket_orderproduct_vendor"><?php
echo $this->nameboxType->display(
'order[products]['.$pid.'][vendor_id]',
(int) @$vendor_data->order_vendor_id,
hikamarketNameboxType::NAMEBOX_SINGLE,
'vendor',
array(
'id' =>
'hikamarket_order_'.$this->order->order_id.'_orderproduct_'.$pid.'_vendor',
'default_text' => '<em>' .
JText::_('HIKA_NONE') . '</em>',
'delete' => true,
)
);
?></dd>
<dt
class="hikamarket_orderproduct_vendorprice"><label><?php
echo JText::_('HIKAM_VENDOR_UNIT_PRICE');
?></label></dt>
<dd class="hikamarket_orderproduct_vendorprice">
<input type="text" name="order[products][<?php echo
$pid; ?>][vendor_price]" id="hikamarket_order_<?php echo
$this->order->order_id; ?>_orderproduct_<?php echo $pid;
?>_vendorprice" value="<?php echo
@$vendor_data->order_product_vendor_price; ?>"/>
</dd>
<?php
}
?>
</dl>
<div style="clear:both;margin-top:4px;"></div>
<div style="float:right">
<button onclick="return window.orderMgr.submitProduct(this,
<?php echo $pid; ?>);" class="hikabtn
hikabtn-success"><i class="fas fa-check"></i>
<?php echo JText::_('HIKA_OK'); ;?></button>
</div>
<button onclick="return window.orderMgr.refreshProduct(this,
<?php echo $pid; ?>);" class="hikabtn
hikabtn-danger"><i class="far
fa-times-circle"></i> <?php echo
JText::_('HIKA_CANCEL'); ;?></button>
<div style="clear:both"></div>
</td>
PK�[YrD�xx3views/ordermarket/tmpl/show_block_edit_shipping.phpnu�[���<?php
/**
* @package HikaMarket for Joomla!
* @version 3.1.1
* @author Obsidev S.A.R.L.
* @copyright (C) 2011-2020 OBSIDEV. All rights reserved.
* @license GNU/GPLv3 http://www.gnu.org/licenses/gpl-3.0.html
*/
defined('_JEXEC') or die('Restricted access');
?><?php
if(!$this->editable_order ||
!hikamarket::acl('order/edit/shipping'))
return;
?>
<div class="hikamarket_ajax_loading_elem"></div>
<div class="hikamarket_ajax_loading_spinner"></div>
<?php
if(empty($this->order->warehouses) ||
count($this->order->warehouses) == 1) {
?>
<dl class="hikam_options">
<dt><label><?php echo
JText::_('HIKASHOP_SHIPPING_METHOD');
?></label></dt>
<dd><?php
$shipping_namekey = '';
if(!empty($this->order->order_shipping_method))
$shipping_namekey = $this->order->order_shipping_method .
'_' . $this->order->order_shipping_id;
echo $this->nameboxType->display(
'order[shipping][namekey]',
$shipping_namekey,
hikamarketNameboxType::NAMEBOX_SINGLE,
'shipping_methods',
array(
'default_text' =>
'<em>'.JText::_('HIKA_NONE').'</em>'
)
);
?></dd>
<dt><label><?php echo JText::_('SHIPPING_TAX');
?></label></dt>
<dd><?php
echo
$this->ratesType->display('order[shipping][tax_namekey]',
@$this->order->order_shipping_tax_namekey,
@$this->order->order_shipping_tax_rate,
'onchange="window.orderMgr.updateTaxValueFields(\'ordershipping\');"');
?></dd>
<dt><label><?php echo
JText::_('HIKASHOP_SHIPPING'); ?></label></dt>
<dd>
<input type="text" id="ordershipping_value"
name="order[shipping][value]"
onchange="window.orderMgr.updateTaxValueFields('ordershipping');"
value="<?php echo $this->order->order_shipping_price;
?>"/> <?php echo
$this->order->currency->currency_symbol . ' (' .
$this->order->currency->currency_code . ')';
?><br/>
<div>
<span id="ordershipping_value_price"><?php echo
($this->order->order_shipping_price -
$this->order->order_shipping_tax); ?></span>
+
<span id="ordershipping_value_tax"><?php echo
$this->order->order_shipping_tax; ?></span>
</div>
<input type="hidden" id="ordershipping_tax"
name="order[shipping][tax]" value="<?php echo
(float)$this->order->order_shipping_tax; ?>"/>
</dd>
</dl>
<?php
} else {
foreach($this->order->warehouses as $key => $warehouse) {
$price = $this->order->order_shipping_params->prices[$key];
list($shipping_id, $key) = explode('@', $key, 2);
$tax_namekey = array_keys($price->taxes);
$tax_namekey = reset($tax_namekey);
if(empty($tax_namekey))
$tax_namekey = @$this->order->order_shipping_tax_namekey;
$tax_rate = @$this->order->order_shipping_tax_rate;
if(!empty($price->tax) && ($price->price_with_tax -
$price->tax) != 0)
$tax_rate = $price->tax / ($price->price_with_tax -
$price->tax);
?>
<div class="order_shipping_warehouse">
<h4><?php
if(!empty($warehouse->name))
echo $warehouse->name;
else
echo $warehouse->warehouse_name;
?></h4>
<dl class="hikam_options">
<dt><label><?php echo
JText::_('HIKASHOP_SHIPPING_METHOD');
?></label></dt>
<dd><?php
$shipping_namekey = '';
if(isset($this->order->shippings[(int)$shipping_id]))
$shipping_namekey =
$this->order->shippings[(int)$shipping_id]->shipping_type .
'_' . $shipping_id;
echo $this->nameboxType->display(
'order[shippings]['.$key.'][namekey]',
$shipping_namekey,
hikamarketNameboxType::NAMEBOX_SINGLE,
'shipping_methods',
array(
'default_text' =>
'<em>'.JText::_('HIKA_NONE').'</em>'
)
);
?></dd>
<dt><label><?php echo JText::_('SHIPPING_TAX');
?></label></dt>
<dd><?php
echo
$this->ratesType->display('order[shippings]['.$key.'][tax_namekey]',
$tax_namekey, $tax_rate,
'onchange="window.orderMgr.updateTaxValueFields(\'ordershippings'.$key.'\');"');
?></dd>
<dt><label><?php echo
JText::_('HIKASHOP_SHIPPING'); ?></label></dt>
<dd>
<input type="text" id="ordershippings<?php echo
$key; ?>_value" name="order[shippings][<?php echo $key;
?>][value]"
onchange="window.orderMgr.updateTaxValueFields('ordershippings<?php
echo $key; ?>');" value="<?php echo
$price->price_with_tax; ?>"/> <?php echo
$this->order->currency->currency_symbol . ' (' .
$this->order->currency->currency_code . ')';
?><br/>
<div>
<span id="ordershippings<?php echo $key;
?>_value_price"><?php echo ($price->price_with_tax -
$price->tax); ?></span>
+
<span id="ordershippings<?php echo $key;
?>_value_tax"><?php echo $price->tax; ?></span>
</div>
<input type="hidden" id="ordershippings<?php echo
$key; ?>_tax" name="order[shippings][<?php echo $key;
?>][tax]" value="<?php echo (float)$price->tax;
?>"/>
</dd>
</dl>
</div>
<?php
}
}
?>
<div style="clear:both;margin-top:4px;"></div>
<div style="float:right">
<button onclick="return window.orderMgr.submitDetails(this,
'shipping');" class="hikabtn
hikabtn-success"><i class="fas fa-check"></i>
<?php echo JText::_('HIKA_OK'); ;?></button>
</div>
<button onclick="return window.orderMgr.showEditDetails(this,
'shipping', false);" class="hikabtn
hikabtn-danger"><i class="far
fa-times-circle"></i> <?php echo
JText::_('HIKA_CANCEL'); ;?></button>
<div style="clear:both"></div>
PK�[�es==,views/ordermarket/tmpl/show_block_fields.phpnu�[���<?php
/**
* @package HikaMarket for Joomla!
* @version 3.1.1
* @author Obsidev S.A.R.L.
* @copyright (C) 2011-2020 OBSIDEV. All rights reserved.
* @license GNU/GPLv3 http://www.gnu.org/licenses/gpl-3.0.html
*/
defined('_JEXEC') or die('Restricted access');
?><?php
if(empty($this->fields['order']) ||
!hikamarket::acl('order/show/customfields'))
return;
if(empty($this->ajax)) { ?>
<div id="hikamarket_order_block_fields">
<?php } ?>
<div class="hikamarket_ajax_loading_elem"></div>
<div class="hikamarket_ajax_loading_spinner"></div>
<dl class="hikam_options large">
<?php
foreach($this->fields['order'] as $fieldName =>
$oneExtraField) {
?>
<dt class="hikamarket_order_additional_customfield
hikamarket_order_additional_customfield_<?php echo $fieldName;
?>"><?php echo
$this->fieldsClass->getFieldName($oneExtraField);?></dt>
<dd class="hikamarket_order_additional_customfield
hikamarket_order_additional_customfield_<?php echo $fieldName;
?>"><span><?php
echo $this->fieldsClass->show($oneExtraField,
@$this->order->$fieldName);
?></span></dd>
<?php
}
?>
</dl>
<?php
if(!empty($this->ajax))
return;
?>
</div>
<script type="text/javascript">
window.Oby.registerAjax('orderMgr.fields',function(params){
window.orderMgr.refreshBlock('fields'); });
</script>
PK�[�x�
-views/ordermarket/tmpl/show_block_general.phpnu�[���<?php
/**
* @package HikaMarket for Joomla!
* @version 3.1.1
* @author Obsidev S.A.R.L.
* @copyright (C) 2011-2020 OBSIDEV. All rights reserved.
* @license GNU/GPLv3 http://www.gnu.org/licenses/gpl-3.0.html
*/
defined('_JEXEC') or die('Restricted access');
?><?php
if(empty($this->order))
return;
if(empty($this->ajax)) { ?>
<div id="hikamarket_order_block_general">
<?php } ?>
<div class="hikamarket_ajax_loading_elem"></div>
<div class="hikamarket_ajax_loading_spinner"></div>
<dl class="hikam_options large">
<?php if(empty($this->order->order_invoice_created) ||
$this->order->order_invoice_created !=
$this->order->order_created) { ?>
<dt
class="hikamarket_order_created"><label><?php echo
JText::_('DATE_ORDER_CREATED');?></label></dt>
<dd class="hikamarket_order_created"><?php echo
hikamarket::getDate($this->order->order_created, '%Y-%m-%d
%H:%M'); ?></dd>
<?php } ?>
<dt
class="hikamarket_order_invoicenumber"><label><?php
echo JText::_('INVOICE_NUMBER'); ?></label></dt>
<dd
class="hikamarket_order_invoicenumber"><span><?php
echo @$this->order->order_invoice_number;
?></span></dd>
<?php if(!empty($this->order->order_invoice_created)) { ?>
<dt
class="hikamarket_order_created"><label><?php echo
JText::_('DATE_ORDER_PAID');?></label></dt>
<dd class="hikamarket_order_created"><?php echo
hikamarket::getDate($this->order->order_invoice_created,
'%Y-%m-%d %H:%M');?></dd>
<?php } ?>
<?php if((int)$this->order->order_vendor_id > 1 &&
(int)$this->vendor->vendor_id <= 1 &&
!empty($this->order->hikamarket->vendor)) { ?>
<dt class="hikamarket_order_vendor"><label><?php
echo JText::_('HIKA_VENDOR');?></label></dt>
<dd class="hikamarket_order_vendor"><?php echo
$this->escape($this->order->hikamarket->vendor->vendor_name);
?></dd>
<?php } ?>
<?php if((int)$this->vendor->vendor_id <= 1 &&
$this->order->order_parent_id > 0 &&
isset($this->order->hikamarket->parent)) { ?>
<dt class="hikamarket_order_parent"><label><?php
echo
JText::_('HIKAM_PARENT_ORDER');?></label></dt>
<dd class="hikamarket_order_parent"><a
href="<?php echo
hikamarket::completeLink('order&task=show&cid='.(int)$this->order->order_parent_id);
?>"><?php
echo
$this->escape($this->order->hikamarket->parent->order_number);
?></a></dd>
<?php } ?>
</dl>
<?php
if(!empty($this->ajax))
return;
?>
</div>
<script type="text/javascript">
window.Oby.registerAjax(['orderMgr.general','orderMgr.order_status'],function(params){
window.orderMgr.refreshBlock('general'); });
</script>
PK�[����%
%
-views/ordermarket/tmpl/show_block_history.phpnu�[���<?php
/**
* @package HikaMarket for Joomla!
* @version 3.1.1
* @author Obsidev S.A.R.L.
* @copyright (C) 2011-2020 OBSIDEV. All rights reserved.
* @license GNU/GPLv3 http://www.gnu.org/licenses/gpl-3.0.html
*/
defined('_JEXEC') or die('Restricted access');
?><?php
if(!hikamarket::acl('order/show/history'))
return;
$acl_history_data = hikamarket::acl('order/show/historydata');
if(empty($this->ajax)) { ?>
<div id="hikamarket_order_block_history">
<?php
}
if(!empty($this->order->history)) {
?>
<div class="hikamarket_ajax_loading_elem"></div>
<div class="hikamarket_ajax_loading_spinner"></div>
<h3 style="display:inline-block"><?php echo
JText::_('HISTORY')?></h3>
<div class="hikamarket_history_container">
<table id="hikamarket_order_history_listing"
class="hikam_listing <?php echo (HIKASHOP_RESPONSIVE)?'table
table-striped table-hover table-bordered':'hikam_table';
?>">
<thead>
<tr>
<th class="title"><?php
echo JText::_('HIKA_TYPE');
?></th>
<th class="title"><?php
echo JText::_('ORDER_STATUS');
?></th>
<th class="title"><?php
echo JText::_('REASON');
?></th>
<th class="title"><?php
echo JText::_('DATE');
?></th>
<?php if($acl_history_data) { ?>
<th class="title"
style="width:2%;min-width:20px;"></th>
<?php } ?>
</tr>
</thead>
<tbody>
<?php
$k = 0;
foreach($this->order->history as $i => $history) {
?>
<tr class="row<?php echo $k; ?>">
<td><?php
if(!empty($history->history_type)) {
$val =
preg_replace('#[^a-z0-9]#i','_',strtoupper($history->history_type));
$trans = JText::_($val);
if($val != $trans)
$history->history_type = $trans;
} else {
$history->history_type =
'<em>'.JText::_('HIKA_NONE').'</em>';
}
echo $history->history_type;
?></td>
<td>
<span class="order-label order-label-<?php echo
preg_replace('#[^a-z_0-9]#i', '_', str_replace('
','_',$history->history_new_status));
?>"><?php echo
hikamarket::orderStatus($history->history_new_status);
?></span>
</td>
<td><?php
if(!empty($history->history_reason))
echo $history->history_reason;
else
echo
'<em>'.JText::_('HIKA_NONE').'</em>';
?></td>
<td><?php
echo hikamarket::getDate($history->history_created,'%Y-%m-%d
%H:%M');
?></td>
<?php if($acl_history_data) { ?>
<td>
<a onclick="return window.orderMgr.showHistory(this);"
data-popup-href="<?php echo
hikamarket::completeLink('order&task=history&order_id='.$this->order->order_id.'&cid='.$history->history_id,
true); ?>" href="#"><i class="fas
fa-info-circle"></i></a>
</td>
<?php } ?>
</tr>
<?php
$k = 1 - $k;
}
?>
</tbody>
</table>
</div>
<?php
}
if(!empty($this->ajax))
return;
?>
</div>
<?php
if($acl_history_data) {
echo $this->popup->display(
'',
'HIKAM_HISTORY_DETAILS',
hikamarket::completeLink('order&task=history&order_id='.$this->order->order_id.'&cid=0',
true),
'hikamarket_showhistory_popup',
750, 460, 'style="display:none;"', '',
'link'
);
?>
<script type="text/javascript">
window.Oby.registerAjax('orderMgr.history',function(params){
window.orderMgr.refreshBlock('history'); });
window.orderMgr.showHistory = function(el) { return this.showEl(el,
'hikamarket_showhistory_popup'); };
</script>
<?php
}
PK�[J��CC-views/ordermarket/tmpl/show_block_product.phpnu�[���<?php
/**
* @package HikaMarket for Joomla!
* @version 3.1.1
* @author Obsidev S.A.R.L.
* @copyright (C) 2011-2020 OBSIDEV. All rights reserved.
* @license GNU/GPLv3 http://www.gnu.org/licenses/gpl-3.0.html
*/
defined('_JEXEC') or die('Restricted access');
?><?php
$product = $this->product;
$pid = isset($this->pid) ? $this->pid :
(int)$product->order_product_id;
$showVendor = (hikamarket::level(1) &&
$this->order->order_type == 'sale' &&
$this->vendor->vendor_id <= 1);
$td_class = !empty($product->order_product_option_parent_id) ? '
hikamarket_order_item_option' : '';
?>
<td class="hikamarket_order_item_name_value<?php echo $td_class;
?>" data-order-product-id="<?php echo $pid;
?>">
<?php
if( $this->editable_order &&
hikamarket::acl('order/edit/products') ) {
$product_hash = md5((int)$product->order_product_id . '#' .
(int)$product->order_id . '#' .
(int)$this->order->order_modified);
$dropData = array(
array(
'name' => '<i class="fas
fa-pencil-alt"></i> ' .
JText::_('HIKAM_EDIT_PRODUCT'),
'link' => '#edit-product',
'click' => 'return
window.orderMgr.refreshProduct(this, ' .
(int)$product->order_product_id . ', true);'
),
'-',
array(
'name' => '<i class="far
fa-trash-alt"></i> ' .
JText::_('HIKAM_DELETE_PRODUCT'),
'link' => '#delete-product',
'click' => 'return window.orderMgr.deleteProduct(this,
' . (int)$product->order_product_id . ', \'' .
$product_hash . '\');'
)
);
echo '<div style="float:right">' .
$this->dropdownHelper->display(JText::_('HIKAM_EDIT'),
$dropData, array('type' => '', 'mini'
=> true, 'class' => 'hikabtn-primary',
'right' => false, 'up' => false)) .
'</div>';
}
if(!empty($product->product_id)) {
?>
<a onclick="return window.orderMgr.showProduct(this);"
data-popup-href="<?php echo
hikamarket::completeLink('shop.product&task=show&cid='.$product->product_id,
true); ?>" href="<?php echo
hikamarket::completeLink('shop.product&task=show&cid='.$product->product_id);
?>"><?php
if(!empty($product->images)) {
$img = reset($product->images);
$thumb = $this->imageHelper->getThumbnail(@$img->file_path,
array(50,50), array('default' => 1, 'forcesize'
=> 1));
if(!empty($thumb->path) && empty($thumb->external))
echo '<img src="'.
$this->imageHelper->uploadFolder_url . str_replace('\\',
'/', $thumb->path).'" alt=""
class="hikam_imglist"/>';
else if(!empty($thumb->path) && !empty($thumb->url))
echo '<img src="'. $thumb->url.'"
alt="" width="50" height="50"
class="hikam_imglist"/>';
}
echo $product->order_product_name;
?></a>
<?php
} else {
echo $product->order_product_name;
}
?>
<br/>
<?php
echo $product->order_product_code;
if(hikashop_level(2) && !empty($this->fields['item']))
{
?>
<p class="hikamarket_order_product_custom_item_fields">
<?php
foreach($this->fields['item'] as $field) {
$namekey = $field->field_namekey;
if(empty($product->$namekey) &&
!strlen($product->$namekey))
continue;
echo '<p
class="hikamarket_order_item_'.$namekey.'">' .
$this->fieldsClass->trans($field->field_realname) . ':
' . $this->fieldsClass->show($field,$product->$namekey) .
'</p>';
}
?>
</p>
<?php
}
if(!empty($product->files) &&
hikamarket::acl('order/show/files')) {
?>
<div class="hikamarket_order_product_files"
style="clear:left;">
<a href="#files"
data-toggle-display="hikamarket_order_product_files_<?php echo
(int)$product->order_product_id; ?>" onclick="return
window.orderMgr.toggleDisplay(this);"><?php
echo JText::_('HIKAM_SHOW_FILES');
?></a>
<ul id="hikamarket_order_product_files_<?php echo
(int)$product->order_product_id;?>"
style="display:none;">
<?php
foreach($product->files as $file) {
echo '<li
class="hikamarket_order_product_file">';
if(empty($file->file_name))
$file->file_name = $file->file_path;
echo $file->file_name;
if(!empty($this->order_status_for_download) &&
!in_array($this->order->order_status,
explode(',',$this->order_status_for_download)))
echo $fileHtml .= ' /
<b>'.JText::_('BECAUSE_STATUS_NO_DOWNLOAD').'</b>';
if(!empty($this->download_time_limit)) {
$time_limit = ($this->download_time_limit +
(!empty($this->order->order_invoice_created) ?
$this->order->order_invoice_created :
$this->order->order_created));
if($time_limit < time()) {
echo ' / <b>' .
JText::_('TOO_LATE_NO_DOWNLOAD') . '</b>';
} else {
echo ' / ' . JText::sprintf('UNTIL_THE_DATE',
hikashop_getDate($time_limit));
}
}
if(!empty($file->file_limit) && (int)$file->file_limit !=
0) {
$download_number_limit = $file->file_limit;
if($download_number_limit < 0)
$download_number_limit = 0;
} else {
$download_number_limit = $this->download_number_limit;
}
if(!empty($download_number_limit)) {
if($download_number_limit <= $file->download_number) {
echo ' /
<b>'.JText::_('MAX_REACHED_NO_DOWNLOAD').'</b>';
} else {
echo ' / '.JText::sprintf('X_DOWNLOADS_LEFT',
$download_number_limit - $file->download_number);
}
} else {
echo ' / ' . JText::sprintf('X_DOWNLOADS_MADE',
$file->download_number);
}
echo '</li>';
}
?>
</ul>
</div>
<?php
}
if(hikashop_level(1) && !empty($product->bundle)) {
?>
<div style="clear:both"></div>
<?php
foreach($product->bundle as $bundle) {
$desc = '<strong>'.$bundle->order_product_name .
'</strong><br/>'.
JText::_('CART_PRODUCT_QUANTITY').'
'.(int)$bundle->order_product_options['related_quantity'];
$img = new stdClass();
if(!empty($bundle->images))
$img = reset($bundle->images);
$thumb = $this->imageHelper->getThumbnail(@$img->file_path,
array(35,35), array('default' => 0, 'forcesize'
=> 1));
if(!empty($thumb->success)) {
echo '<img src="'. $thumb->url.'"
alt="" class="hikam_bundlelist"
alt="'.$this->escape($bundle->order_product_name).'"
data-toggle="hk-tooltip" data-title="' .
htmlspecialchars($desc, ENT_COMPAT, 'UTF-8') . '"/>
';
} else {
echo hikamarket::tooltip($desc, '', '',
$bundle->order_product_name). ' ';
}
}
}
if(!empty($product->extraData)) {
if(!is_array($product->extraData))
$product->extraData = array($product->extraData);
echo implode("\r\n", $product->extraData);
}
?>
</td>
<td class="hikamarket_order_item_price_value"><?php
echo $this->currencyHelper->format($product->order_product_price,
$this->order->order_currency_id);
if(bccomp($product->order_product_tax, 0, 5))
echo '<br/>'.JText::sprintf('PLUS_X_OF_VAT',
$this->currencyHelper->format($product->order_product_tax,
$this->order->order_currency_id));
?></td>
<?php if($showVendor) { ?>
<td class="hikamarket_order_item_vendor_value"><?php
$vendor_display = false;
if(!empty($product->vendor_data) &&
is_array($product->vendor_data)) {
foreach($product->vendor_data as $vendor_data) {
if((int)$vendor_data->vendor_id <= 1)
continue;
$vendor_display = true;
echo
'<p>'.$vendor_data->vendor_name.'<br/>'.
$this->currencyHelper->format($vendor_data->order_product_vendor_price,
$this->order->order_currency_id).'</p>';
}
}
if(!$vendor_display)
echo '-';
?></td>
<?php } ?>
<td class="hikamarket_order_item_quantity_value"><?php
echo (int)$product->order_product_quantity;
?></td>
<td
class="hikamarket_order_item_total_price_value"><?php
echo
$this->currencyHelper->format($product->order_product_total_price,
$this->order->order_currency_id);
?></td>
PK�[��y1+"+".views/ordermarket/tmpl/show_block_products.phpnu�[���<?php
/**
* @package HikaMarket for Joomla!
* @version 3.1.1
* @author Obsidev S.A.R.L.
* @copyright (C) 2011-2020 OBSIDEV. All rights reserved.
* @license GNU/GPLv3 http://www.gnu.org/licenses/gpl-3.0.html
*/
defined('_JEXEC') or die('Restricted access');
?><?php
if(empty($this->ajax)) {
if($this->editable_order &&
hikamarket::acl('order/edit/products')) {
$dropData = array(
array(
'name' => '<i class="fas
fa-plus"></i> ' .
JText::_('HIKAM_ADD_NEW_PRODUCT'),
'link' => '#new-product',
'click' => 'return
window.orderMgr.addProduct(this);'
)
);
echo
$this->dropdownHelper->display(JText::_('HIKAM_EDIT'),
$dropData, array('type' => '', 'mini'
=> true, 'class' => 'hikabtn-primary',
'right' => false, 'up' => false));
hikamarket::loadJslib('otree');
}
?>
<div id="hikamarket_order_block_products">
<?php
}
$showVendor = (hikamarket::level(1) &&
$this->order->order_type == 'sale' &&
$this->vendor->vendor_id <= 1);
?>
<div class="hikamarket_ajax_loading_elem"></div>
<div class="hikamarket_ajax_loading_spinner"></div>
<table class="hikam_listing <?php echo
(HIKASHOP_RESPONSIVE)?'table table-striped table-hover
table-bordered':'hikam_table'; ?>"
id="hikamarket_order_product_listing"
style="width:100%">
<thead>
<tr>
<th class="hikamarket_order_item_name_title
title"><?php echo JText::_('PRODUCT');
?></th>
<th class="hikamarket_order_item_price_title
title"><?php echo JText::_('UNIT_PRICE');
?></th>
<?php if($showVendor){ ?>
<th class="hikamarket_order_item_vendor_title
title"><?php echo JText::_('HIKA_VENDOR');
?></th>
<?php } ?>
<th class="hikamarket_order_item_quantity_title
title"><?php echo
hikamarket::tooltip(JText::_('PRODUCT_QUANTITY'), '',
'', JText::_('CART_PRODUCT_QUANTITY'), '',
0); ?></th>
<th class="hikamarket_order_item_total_price_title
title"><?php echo JText::_('PRICE'); ?></th>
</tr>
</thead>
<tbody id="hikamarket_order_product_listing_content">
<?php
foreach($this->order->products as $k => $product) {
?>
<tr id="hikamarket_order_product_<?php echo
(int)$product->order_product_id; ?>"><?php
$this->product = $product;
echo $this->loadTemplate('block_product');
?></tr>
<?php
}
?>
</tbody>
</table>
<?php
if(!empty($this->ajax))
return;
?>
</div>
<?php
echo $this->popup->display(
'',
'HIKAM_SHOW_ORDER_PRODUCT',
hikamarket::completeLink('shop.product&task=show&cid=0',
true),
'hikamarket_showproduct_popup',
750, 460, 'style="display:none;"', '',
'link'
);
?>
<script type="text/javascript">
window.Oby.registerAjax('orderMgr.products',function(params){
window.orderMgr.refreshBlock('products'); });
window.orderMgr.showProduct = function(el) { return this.showEl(el,
'hikamarket_showproduct_popup'); };
<?php if(hikamarket::acl('order/edit/products')) { ?>
window.orderMgr.updateProductLine = function(e, data) {
var tr = document.createElement('tr'), cell = null;
tr.innerHTML = data;
e.innerHTML = '';
for(var i = tr.cells.length - 1; i >= 0; i--) {
cell = tr.cells[0];
tr.removeChild(cell);
e.appendChild(cell);
cell = null;
}
window.Oby.updateElem(tr, data);
tr = null;
};
window.orderMgr.refreshProduct = function(el, id, edit) {
var d = document, o = window.Oby,
c = null, e = d.getElementById('hikamarket_order_product_' +
id);
if(!e) return false;
if(id == 0) {
e.parentNode.removeChild(e);
return false;
}
c = d.getElementById('hikamarket_order_block_products');
if(c) o.addClass(c, "hikamarket_ajax_loading");
var url = '<?php echo
hikamarket::completeLink('order&task=showblock&cid='.(int)$this->order->order_id.'&tmpl=ajax',
false, false, true); ?>',
params = { mode: "POST", data:
o.encodeFormData({'block': edit ? 'edit_product' :
'product', 'pid': id}) };
o.xRequest(url, params, function(x,p) {
window.orderMgr.updateProductLine(e, x.responseText);
if(c) o.removeClass(c, "hikamarket_ajax_loading");
});
return false;
};
window.orderMgr.submitProduct = function(el, id) {
var d = document, o = window.Oby,
c = null, e = d.getElementById('hikamarket_order_product_' +
id);
if(!e) return false;
c = d.getElementById('hikamarket_order_block_products');
if(c) o.addClass(c, "hikamarket_ajax_loading");
var url = '<?php echo
hikamarket::completeLink('order&task=submitblock&block=product&cid='.(int)$this->order->order_id.'&pid=HIKAPID&'.hikamarket::getFormToken().'=1&tmpl=ajax',
false, false, true); ?>'.replace("HIKAPID", id),
formData = o.getFormData(e);
o.xRequest(url, {mode:"POST", data: formData}, function(x,p) {
if(x.responseText != "0") {
window.orderMgr.updateProductLine(e, x.responseText);
if(id == 0) {
var cell = e.firstChild, pid = 0;
if(cell) pid =
parseInt(cell.getAttribute('data-order-product-id'));
if(pid !== null && pid !== NaN)
e.id = "hikamarket_order_product_" + pid;
}
}
if(c) o.removeClass(c, "hikamarket_ajax_loading");
});
return false;
};
window.orderMgr.addProduct = function(el) {
var d = document, o = window.Oby,
c = null, e = d.getElementById('hikamarket_order_product_0');
if(e) return false;
e =
d.getElementById('hikamarket_order_product_listing_content');
if(!e) return false;
c = d.getElementById('hikamarket_order_block_products');
if(c) o.addClass(c, "hikamarket_ajax_loading");
var url = '<?php echo
hikamarket::completeLink('order&task=showblock&block=edit_product&cid='.(int)$this->order->order_id.'&pid=0&tmpl=ajax',
false, false, true); ?>';
o.xRequest(url, null, function(x,p) {
var tr = document.createElement('tr');
tr.id = 'hikamarket_order_product_0';
e.appendChild(tr);
e = d.getElementById('hikamarket_order_product_0');
window.orderMgr.updateProductLine(e, x.responseText);
if(c) o.removeClass(c, "hikamarket_ajax_loading");
});
return false;
};
window.orderMgr.deleteProduct = function(el, id, hash) {
var d = document, o = window.Oby,
c = null, e = d.getElementById('hikamarket_order_product_' +
id);
if(!e) return false;
if(!confirm('<?php echo
JText::_('HIKAM_CONFIRM_DELETE_ORDER_PRODUCT', true);
?>'))
return false;
c = d.getElementById('hikamarket_order_block_products');
if(c) o.addClass(c, "hikamarket_ajax_loading");
var url = '<?php echo
hikamarket::completeLink('order&task=submitblock&block=delete_product&cid='.(int)$this->order->order_id.'&'.hikamarket::getFormToken().'=1&tmpl=ajax',
false, false, true); ?>',
params = { mode: "POST", data:
o.encodeFormData({'pid': id, 'product_hash': hash}) };
o.xRequest(url, params, function(x,p) {
if(x.responseText == '1') {
e.parentNode.removeChild(e);
o.fireAjax('orderMgr.details');
o.fireAjax('orderMgr.history');
} else {
console.log(['product delete error', x.responseText]);
}
if(c) o.removeClass(c, "hikamarket_ajax_loading");
});
return false;
};
window.orderMgr.loadProductData = function(id, product) {
var d = document, o = window.Oby,
c = null, e = d.getElementById('hikamarket_order_product_' +
id);
if(!e) return false;
if(product === undefined || product === null) {
var n = window.oNameboxes['order_products_' + id +
'_id'];
if(!n)
return false;
var data = n.get();
if(data && data.value)
product = data.value
}
if(!product || product <= 0)
return false;
var url = '<?php echo
hikamarket::completeLink('order&task=product_data&cid='.(int)$this->order->order_id.'&'.hikamarket::getFormToken().'=1&tmpl=ajax',
false, false, true); ?>',
field_name = 'hikamarket_order_<?php echo
$this->order->order_id; ?>_orderproduct_' + id +
'_',
params = { mode: "POST", data:
o.encodeFormData({'order_product': id, 'product':
product}) },
field = d.getElementById(field_name + 'qty'), qty = 0,
setField = function(k, v) {
var el = d.getElementById(field_name + k);
if(!el) return;
el.value = v;
if(k == 'value') o.fireEvent(el, 'change');
};
if(field && field.value)
qty = parseInt(field.value);
if(qty !== NaN && qty > 0)
params.data = o.encodeFormData({'order_product': id,
'product': product, 'qty': qty});
o.xRequest(url, params, function(x,p) {
var ret = o.evalJSON( x.responseText );
if(!ret) return;
if(ret.name) setField('name', ret.name);
if(ret.code) setField('code', ret.code);
if(ret.tax) setField('tax_namekey', ret.tax);
if(ret.price) setField('value', ret.price);
if(ret.vendor) {
var n = window.oNameboxes[field_name + 'vendor'];
if(n) n.set(ret.vendor.name, ret.vendor.id);
}
if(ret.vendorprice) setField('vendorprice', ret.vendorprice);
});
return false;
};
<?php } ?>
</script>
PK�[�0�
-views/ordermarket/tmpl/show_block_vendors.phpnu�[���<?php
/**
* @package HikaMarket for Joomla!
* @version 3.1.1
* @author Obsidev S.A.R.L.
* @copyright (C) 2011-2020 OBSIDEV. All rights reserved.
* @license GNU/GPLv3 http://www.gnu.org/licenses/gpl-3.0.html
*/
defined('_JEXEC') or die('Restricted access');
?><?php
if(empty($this->ajax)) {
$display = '';
if(empty($this->order->hikamarket->children))
$display = 'display:none;';
?>
<!-- VENDORS -->
<div id="hikamarket_order_block_vendors" style="<?php
echo $display; ?>">
<?php
}
?>
<div class="hikamarket_ajax_loading_elem"></div>
<div class="hikamarket_ajax_loading_spinner"></div>
<h3 style="display:inline-block"><?php echo
JText::_('HIKAM_VENDOR_ORDERS')?></h3>
<table class="hikam_listing <?php echo
(HIKASHOP_RESPONSIVE)?'table table-striped table-hover
table-bordered':'hikam_table'; ?>"
id="hikamarket_order_subsales" style="width:100%">
<thead>
<tr>
<th class="hikamarket_order_item_name_title
title"><?php echo
JText::_('ORDER_NUMBER');?></th>
<th class="hikamarket_order_item_name_title
title"><?php echo
JText::_('HIKA_VENDOR');?></th>
<th class="hikamarket_order_item_name_title
title"><?php echo
JText::_('ORDER_STATUS');?></th>
<th class="hikamarket_order_item_name_title
title"><?php echo
JText::_('HIKASHOP_TOTAL');?></th>
<th class="hikamarket_order_item_name_title
title"><?php echo
JText::_('VENDOR_TOTAL');?></th>
</tr>
</thead>
<tbody id="hikamarket_order_product_listing_content">
<?php
if(!empty($this->order->hikamarket->children)) {
foreach($this->order->hikamarket->children as $subOrder) {
?>
<tr>
<td>
<?php
if($subOrder->order_type == 'subsale') {
?>
<a href="<?php echo
hikamarket::completeLink('order&task=show&cid='.(int)$subOrder->order_id);?>"><?php
echo $subOrder->order_number; ?></a>
<?php
} else {
echo
'<em>'.JText::_('HIKAM_ORDER_ADJUSTMENT').'</em>';
}
?>
</td>
<td><?php
echo $this->escape($subOrder->vendor_name);
?></td>
<td><?php echo
hikamarket::orderStatus($subOrder->order_status); ?></td>
<td><?php
echo
$this->currencyHelper->format($subOrder->order_full_price,
$subOrder->order_currency_id);
?></td>
<td><?php
echo
$this->currencyHelper->format($subOrder->order_vendor_price,
$subOrder->order_currency_id);
if(isset($subOrder->order_vendor_price_with_refunds) &&
$subOrder->order_vendor_price_with_refunds !== null) {
echo ' (' .
$this->currencyHelper->format($subOrder->order_vendor_price_with_refunds,
$subOrder->order_currency_id) . ')';
}
if(!empty($subOrder->order_vendor_paid))
echo ' ' .
hikamarket::tooltip(JText::_('HIKAM_ORDER_IS_PAID'),
'', '', '<img
src="'.HIKAMARKET_IMAGES.'icon-16/save2.png"
style="vertical-align:top;"
alt="('.JText::_('PAID').')" />',
'', 0);
?></td>
</tr>
<?php
}
}
?>
</tbody>
</table>
<?php if(empty($this->ajax)) { ?>
</div>
<script type="text/javascript">
window.Oby.registerAjax('orderMgr.details',function(params){
window.orderMgr.refreshBlock('vendors'); });
</script>
<?php } elseif(!empty($this->order->hikamarket->children)) {
?>
<script type="text/javascript">
(function(){
var el =
document.getElementById('hikamarket_order_block_vendors');
if(el) el.style.display = '';
})();
</script>
<?php }
PK�[5I�WW'views/ordermarket/tmpl/show_general.phpnu�[���<?php
/**
* @package HikaMarket for Joomla!
* @version 3.1.1
* @author Obsidev S.A.R.L.
* @copyright (C) 2011-2020 OBSIDEV. All rights reserved.
* @license GNU/GPLv3 http://www.gnu.org/licenses/gpl-3.0.html
*/
defined('_JEXEC') or die('Restricted access');
?> <legend><?php echo JText::_('MAIN_INFORMATION');
?></legend>
<?php
$show_url =
'order&task=show&subtask=general&cid='.$this->order->order_id;
$save_url =
'order&task=save&subtask=general&cid='.$this->order->order_id;
$update_url =
'order&task=edit&subtask=general&cid='.$this->order->order_id;
if(!isset($this->edit) || $this->edit !== true ) {
if(hikamarket::acl('order/edit/general')) {
?> <div class="hikam_edit"><a href="<?php
echo hikamarket::completeLink($update_url, true);?>"
onclick="return
window.hikamarket.get(this,'hikamarket_order_field_general');"><i
class="fas fa-pencil-alt"></i><span><?php echo
JText::_('HIKA_EDIT'); ?></span></a></div>
<?php
}
} else {
?> <div class="hikam_edit">
<a href="<?php echo hikamarket::completeLink($save_url,
true);?>" onclick="return
window.hikamarket.form(this,'hikamarket_order_field_general');"><i
class="fas fa-check"></i><span><?php echo
JText::_('HIKA_SAVE'); ?></span></a>
<a href="<?php echo hikamarket::completeLink($show_url,
true);?>" onclick="return
window.hikamarket.get(this,'hikamarket_order_field_general');"><i
class="far fa-times-circle"></i><span><?php
echo JText::_('HIKA_CANCEL'); ?></span></a>
</div>
<?php
}
?>
<dl class="hikam_options">
<dt class="hikamarket_order_number"><label><?php
echo JText::_('ORDER_NUMBER'); ?></label></dt>
<dd class="hikamarket_order_number"><span><?php
echo $this->order->order_number; ?></span></dd>
<dt
class="hikamarket_order_invoicenumber"><label><?php
echo JText::_('INVOICE_NUMBER'); ?></label></dt>
<dd
class="hikamarket_order_invoicenumber"><span><?php
echo @$this->order->order_invoice_number;
?></span></dd>
<dt class="hikamarket_order_status"><label
for="data[order][order_status]"><?php echo
JText::_('ORDER_STATUS'); ?></label></dt>
<dd class="hikamarket_order_status"><?php
if(!isset($this->edit) || $this->edit !== true ) {
?><span><?php echo
hikamarket::orderStatus($this->order->order_status);
?></span><?php
} else {
$extra =
'onchange="window.orderMgr.status_changed(this);"';
echo
$this->order_status->display('data[order][order_status]',
$this->order->order_status, $extra);
}
?></dd>
<?php
if(isset($this->edit) && $this->edit === true &&
($this->vendor->vendor_id == 0 || $this->vendor->vendor_id ==
1) && hikamarket::acl('order/edit/notify')) {
?>
<dt id="hikamarket_order_notify_lbl"
style="display:none;"
class="hikamarket_order_notify"><label
for="data[notify]"><?php echo
JText::_('NOTIFICATION'); ?></label></dt>
<dd id="hikamarket_order_notify_val"
style="display:none;"
class="hikamarket_order_notify"><input
type="checkbox" id="data[notify]"
name="data[notify]"/><label
style="display:inline-block"
for="data[notify]"><?php echo
JText::_('NOTIFY_CUSTOMER'); ?></label></dd>
<?php
}
?>
<dt
class="hikamarket_order_created"><label><?php echo
JText::_('DATE'); ?></label></dt>
<dd class="hikamarket_order_created"><span><?php
echo hikamarket::getDate($this->order->order_created,'%Y-%m-%d
%H:%M');?></span></dd>
<dt class="hikamarket_order_id"><label><?php
echo JText::_('ID'); ?></label></dt>
<dd class="hikamarket_order_id"><span><?php echo
$this->order->order_id; ?></span></dd>
<?php
if(isset($this->edit) && $this->edit === true ) {
?>
<dt
class="hikamarket_order_history"><label><?php echo
JText::_('HISTORY'); ?></label></dt>
<dd class="hikamarket_order_history">
<span><input
onchange="window.orderMgr.general_history_changed(this);"
type="checkbox" id="hikamarket_history_general_store"
name="data[history][store_data]"
value="1"/><label
for="hikamarket_history_general_store"
style="display:inline-block"><?php echo
JText::_('SET_HISTORY_MESSAGE');?></label></span><br/>
<textarea id="hikamarket_history_general_msg"
name="data[history][msg]"
style="display:none;"></textarea>
</dd>
<?php
}
?>
</dl>
<?php
if(isset($this->edit) && $this->edit === true ) {
?>
<script type="text/javascript">
if(!window.orderMgr)
window.orderMgr = {};
window.orderMgr.status_changed = function(el) {
var fields = ['hikamarket_order_notify_lbl',
'hikamarket_order_notify_val'], displayValue = '';
if(el.value == '<?php echo $this->order->order_status;
?>')
displayValue = 'none';
window.hikamarket.setArrayDisplay(fields, displayValue);
};
window.orderMgr.general_history_changed = function(el) {
var fields = ['hikamarket_history_general_msg'], displayValue =
'';
if(!el.checked) displayValue = 'none';
window.hikamarket.setArrayDisplay(fields, displayValue);
};
</script>
<input type="hidden" name="data[general]"
value="1"/>
<?php echo JHTML::_('form.token')."\r\n";
}
PK�[B"Z~��'views/ordermarket/tmpl/show_history.phpnu�[���<?php
/**
* @package HikaMarket for Joomla!
* @version 3.1.1
* @author Obsidev S.A.R.L.
* @copyright (C) 2011-2020 OBSIDEV. All rights reserved.
* @license GNU/GPLv3 http://www.gnu.org/licenses/gpl-3.0.html
*/
defined('_JEXEC') or die('Restricted access');
?><legend><?php echo JText::_('HISTORY');
?></legend>
<div class="hikamarket_history_container">
<table id="hikamarket_order_history_listing"
class="hikam_listing hikam_table table table-striped
table-hover">
<thead>
<tr>
<th class="title"><?php
echo JText::_('HIKA_TYPE');
?></th>
<th class="title"><?php
echo JText::_('ORDER_STATUS');
?></th>
<th class="title"><?php
echo JText::_('REASON');
?></th>
<th class="title"><?php
echo JText::_('HIKA_USER').' /
'.JText::_('IP');
?></th>
<th class="title"><?php
echo JText::_('DATE');
?></th>
<th class="title"><?php
echo JText::_('INFORMATION');
?></th>
</tr>
</thead>
<tbody>
<?php
$userClass = hikamarket::get('shop.class.user');
foreach($this->order->history as $k => $history) {
?>
<tr>
<td><?php
$val =
preg_replace('#[^a-z0-9]#i','_',strtoupper($history->history_type));
$trans = JText::_($val);
if($val != $trans)
$history->history_type = $trans;
echo $history->history_type;
?></td>
<td><?php
echo hikamarket::orderStatus($history->history_new_status);
?></td>
<td><?php
echo $history->history_reason;
?></td>
<td><?php
if(!empty($history->history_user_id)){
$user = $userClass->get($history->history_user_id);
echo $user->username.' / ';
}
echo $history->history_ip;
?></td>
<td><?php
echo hikamarket::getDate($history->history_created,'%Y-%m-%d
%H:%M');
?></td>
<td><?php
echo $history->history_data;
?></td>
</tr>
<?php
}
?>
</tbody>
</table>
</div>
PK�[���
&views/ordermarket/tmpl/show_legacy.phpnu�[���<?php
/**
* @package HikaMarket for Joomla!
* @version 3.1.1
* @author Obsidev S.A.R.L.
* @copyright (C) 2011-2020 OBSIDEV. All rights reserved.
* @license GNU/GPLv3 http://www.gnu.org/licenses/gpl-3.0.html
*/
defined('_JEXEC') or die('Restricted access');
?><script type="text/javascript">
<!--
window.orderMgr = {
updateAdditionnals: function(){},
updateHistory: function(){},
updateShipping: function(){},
updateBilling: function(){}
};
//-->
</script>
<table class="hikam_blocks">
<tr>
<td style="width:50%" class="hikam_block_l">
<fieldset class="hikam_field"
id="hikamarket_order_field_general">
<?php
echo $this->loadTemplate('general');
?>
</fieldset>
<fieldset class="hikam_field">
<legend><?php echo
JText::_('CUSTOMER')?></legend>
<?php if(hikamarket::acl('order/edit/customer') &&
($this->vendor->vendor_id == 0 || $this->vendor->vendor_id ==
1)) { ?>
<div class="hikam_edit">
<?php
echo $this->popup->display(
'<img src="'. HIKAMARKET_IMAGES
.'icon-16/edit.png" alt=""/><span>'.
JText::_('HIKA_EDIT') .'</span>',
'HIKAM_SET_ORDER_CUSTOMER',
hikamarket::completeLink('user&task=selection&single=1&confirm=0&after=order|customer_set&afterParams=order_id|'.$this->order->order_id,
true),
'hikamarket_setcustomer_popup',
750, 460, 'onclick="return
window.orderMgr.setCustomer(this);"', '',
'link'
);
?>
</div>
<script type="text/javascript">
<!--
window.orderMgr.setCustomer = function(el) {
var w = window;
w.hikamarket.submitFct = function(data) {
var d = document, input = null, inputs =
{id:'hikamarket_order_customer_id',name:'hikamarket_order_customer_name',email:'hikamarket_order_customer_email'};
for(var i in inputs) {
input = d.getElementById(inputs[i]);
if(input)
input.innerHTML = data[i];
}
if(data['updates']) {
for(var i = 0; i < data['updates'].length; i++) {
var up = data['updates'][i];
if(up == 'history') window.orderMgr.updateHistory();
if(up == 'billing') window.orderMgr.updateBilling();
}
}
};
w.hikashop.openBox(el);
return false;
}
//-->
</script>
<?php } ?>
<dl class="hikam_options">
<dt
class="hikamarket_order_customer_name"><label><?php
echo JText::_('HIKA_NAME');?></label></dt>
<dd class="hikamarket_order_customer_name"><span
id="hikamarket_order_customer_name"><?php echo
@$this->order->customer->name; ?></span></dd>
</dl>
<dl class="hikam_options">
<dt
class="hikamarket_order_customer_email"><label><?php
echo JText::_('HIKA_EMAIL');?></label></dt>
<dd class="hikamarket_order_customer_email"><span
id="hikamarket_order_customer_email"><?php echo
@$this->order->customer->user_email;
?></span></dd>
</dl>
<dl class="hikam_options">
<dt
class="hikamarket_order_customer_id"><label><?php
echo JText::_('ID');?></label></dt>
<dd class="hikamarket_order_customer_id"><span
id="hikamarket_order_customer_id"><?php echo
@$this->order->customer->user_id; ?></span></dd>
</dl>
</fieldset>
</td>
<td style="width:50%;" class="hikam_block_r">
<fieldset class="hikam_field"
id="hikamarket_order_field_additional">
<?php
echo $this->loadTemplate('additional');
?>
</fieldset>
</td>
</tr>
<tr>
<td class="hikam_block_l">
<fieldset class="hikam_field"
id="hikamarket_order_field_billing_address">
<?php
$this->type = 'billing';
echo $this->loadTemplate('address');
?>
</fieldset>
</td>
<td class="hikam_block_r">
<fieldset class="hikam_field"
id="hikamarket_order_field_shipping_address">
<?php
if(empty($this->order->override_shipping_address)) {
$this->type = 'shipping';
echo $this->loadTemplate('address');
} else {
echo $this->order->override_shipping_address;
}
?>
</fieldset>
</td>
</tr>
<tr>
<td colspan="2">
<fieldset class="hikam_field"
id="hikamarket_order_products">
<?php
echo $this->loadTemplate('products');
?>
</fieldset>
</td>
</tr>
<tr>
<td colspan="2">
<?php
JPluginHelper::importPlugin('hikashop');
JPluginHelper::importPlugin('hikamarket');
JFactory::getApplication()->triggerEvent('onAfterOrderProductsListingDisplay',
array(&$this->order, 'order_frontvendor_show'));
?>
</td>
</tr>
<?php if(hikamarket::acl('order/edit/history') &&
!empty($this->order->history)) { ?>
<tr>
<td colspan="2">
<fieldset class="hikam_field"
id="hikamarket_order_field_history">
<?php
echo $this->loadTemplate('history');
?>
</fieldset>
</td>
</tr>
<?php }?>
</table>
PK�[7j�AL"L"(views/ordermarket/tmpl/show_products.phpnu�[���<?php
/**
* @package HikaMarket for Joomla!
* @version 3.1.1
* @author Obsidev S.A.R.L.
* @copyright (C) 2011-2020 OBSIDEV. All rights reserved.
* @license GNU/GPLv3 http://www.gnu.org/licenses/gpl-3.0.html
*/
defined('_JEXEC') or die('Restricted access');
?><legend><?php echo JText::_('PRODUCT_LIST');
?></legend>
<?php
$editProduct = false;
$showVendor = (hikamarket::level(1) &&
$this->order->order_type == 'sale' &&
$this->vendor->vendor_id <= 1);
if(hikamarket::acl('order/edit/products') &&
$this->vendor->vendor_id <= 1) {
$editProduct = true;
$url =
hikamarket::completeLink('product&task=selection&single=1&confirm=0&after=order|product_add&afterParams=order_id|'.$this->order->order_id,
true);
?>
<div class="hikam_edit"><?php
echo $this->popup->display(
'<img src="'. HIKAMARKET_IMAGES
.'icon-16/plus.png" alt=""/><span>'.
JText::_('HIKA_EDIT') .'</span>',
'HIKAM_ADD_ORDER_PRODUCT',
hikamarket::completeLink('order&task=product_add&order_id='.$this->order->order_id,
true),
'hikamarket_addproduct_popup',
750, 460, 'onclick="return
window.orderMgr.addProduct(this);"', '',
'link'
);
echo ' ';
echo $this->popup->display(
'<img src="'. HIKAMARKET_IMAGES
.'icon-16/product.png" alt=""/><span>'.
JText::_('HIKA_EDIT') .'</span>',
'HIKAM_ADD_ORDER_PRODUCT',
hikamarket::completeLink('product&task=selection&single=1&confirm=0&after=order|product_add&afterParams=order_id|'.$this->order->order_id,
true),
'hikamarket_selectproduct_popup',
750, 460, 'onclick="return
window.orderMgr.selectProduct(this);"', '',
'link'
);
?></div>
<script type="text/javascript">
<!--
window.orderMgr.addProduct = function(el) {
window.hikamarket.submitFct = function(data) {
var d = document, o = window.Oby;
o.xRequest('<?php echo
hikamarket::completeLink('order&task=show&subtask=products&cid='.$this->order->order_id,
true); ?>', {update: 'hikamarket_order_products'});
window.orderMgr.updateAdditionals();
window.orderMgr.updateHistory();
window.hikashop.closeBox();
};
window.hikashop.openBox(el);
return false;
}
window.orderMgr.selectProduct = function(el) {
window.hikamarket.submitFct = function(data) {
var d = document, o = window.Oby;
o.xRequest('<?php echo
hikamarket::completeLink('order&task=show&subtask=products&cid='.$this->order->order_id,
true); ?>', {update: 'hikamarket_order_products'});
window.orderMgr.updateAdditionals();
window.orderMgr.updateHistory();
window.hikashop.closeBox();
};
window.hikashop.openBox(el);
return false;
}
//-->
</script>
<?php
}
?>
<table class="hikam_listing <?php echo
(HIKASHOP_RESPONSIVE)?'table table-striped
table-hover':'hikam_table'; ?>"
id="hikamarket_order_product_listing"
style="width:100%">
<thead>
<tr>
<th class="hikamarket_order_item_name_title
title"><?php echo JText::_('PRODUCT');
?></th>
<th class="hikamarket_order_item_price_title
title"><?php echo JText::_('UNIT_PRICE');
?></th>
<th class="hikamarket_order_item_quantity_title
title"><?php echo JText::_('PRODUCT_QUANTITY');
?></th>
<th class="hikamarket_order_item_total_price_title
title"><?php echo JText::_('PRICE'); ?></th>
<?php if($showVendor){ ?>
<th class="hikamarket_order_item_vendor_title
title"><?php echo JText::_('HIKA_VENDOR');
?></th>
<?php } ?>
<?php if($editProduct){ ?>
<th colspan="2"
class="hikamarket_order_item_remove_title title"><?php echo
JText::_('ACTIONS'); ?></th>
<?php } ?>
</tr>
</thead>
<tbody>
<?php
foreach($this->order->products as $k => $product) {
$td_class = '';
if(!empty($product->order_product_option_parent_id))
$td_class = ' hikamarket_order_item_option';
?>
<tr>
<td class="hikamarket_order_item_name_value<?php echo
$td_class; ?>">
<?php
if(!empty($product->product_id)) {
?>
<a onclick="return window.orderMgr.showProduct(this);"
href="<?php echo
hikamarket::completeLink('shop.product&task=show&cid='.$product->product_id,
true); ?>"><?php
echo $product->order_product_name;
?></a>
<?php
} else {
echo $product->order_product_name;
}
?>
<br/><?php
echo $product->order_product_code;
if(hikashop_level(2) &&
!empty($this->fields['item'])) {
?> <p
class="hikamarket_order_product_custom_item_fields">
<?php
foreach($this->fields['item'] as $field) {
$namekey = $field->field_namekey;
if(empty($product->$namekey) &&
!strlen($product->$namekey))
continue;
echo '<p
class="hikamarket_order_item_'.$namekey.'">' .
$this->fieldsClass->trans($field->field_realname) . ':
' . $this->fieldsClass->show($field,$product->$namekey) .
'</p>';
}
?>
</p>
<?php
}
?>
</td>
<td class="hikamarket_order_item_price_value"><?php
echo
$this->currencyHelper->format($product->order_product_price,
$this->order->order_currency_id);
if(bccomp($product->order_product_tax,0,5)) {
echo '<br/>'.JText::sprintf('PLUS_X_OF_VAT',
$this->currencyHelper->format($product->order_product_tax,
$this->order->order_currency_id));
}
?></td>
<td
class="hikamarket_order_item_quantity_value"><?php echo
$product->order_product_quantity;?></td>
<td
class="hikamarket_order_item_total_price_value"><?php echo
$this->currencyHelper->format($product->order_product_total_price,
$this->order->order_currency_id);?></td>
<?php if($showVendor) { ?>
<td class="hikamarket_order_item_vendor_value"><?php
if(!empty($product->vendor_data) &&
(int)$product->vendor_data->vendor_id > 1) {
echo
$product->vendor_data->vendor_name.'<br/>'.
$this->currencyHelper->format($product->vendor_data->order_product_vendor_price,
$this->order->order_currency_id);
} else
echo '-';
?></td>
<?php } ?>
<?php if($editProduct){ ?>
<td class="hikamarket_order_item_edit_value"
style="text-align:center">
<a onclick="return window.orderMgr.setProduct(this);"
href="<?php
echo
hikamarket::completeLink('order&task=edit&subtask=products&order_id='.$this->order->order_id.'&order_product_id='.$product->order_product_id,
true);
?>"><img src="<?php echo
HIKAMARKET_IMAGES?>icon-16/edit.png" alt="<?php echo
JText::_('HIKA_EDIT'); ?>"/></a>
</td>
<td class="hikamarket_order_item_remove_value"
style="text-align:center">
<a onclick="return window.orderMgr.delProduct(this, <?php
echo $product->order_product_id; ?>);" href="<?php echo
hikamarket::completeLink('order&task=product_delete&order_id='.$this->order->order_id.'&order_product_id='.$product->order_product_id);
?>"><img src="<?php echo
HIKAMARKET_IMAGES?>icon-16/delete.png" alt="<?php echo
JText::_('HIKA_DELETE'); ?>"/></a>
</td>
<?php } ?>
</tr>
<?php
}
?>
</tbody>
</table>
<?php
echo $this->popup->display(
'',
'HIKAM_SHOW_ORDER_PRODUCT',
hikamarket::completeLink('shop.product&task=show&cid=0',
true),
'hikamarket_showproduct_popup',
750, 460, 'style="display:none;"', '',
'link'
);
?>
<script type="text/javascript">
<!--
window.orderMgr.showProduct = function(el) {
window.hikamarket.submitFct = function(data) { window.hikashop.closeBox();
};
window.hikashop.openBox('hikamarket_showproduct_popup',
el.getAttribute('href'));
return false;
}
</script>
<?php
if($editProduct) {
echo $this->popup->display(
'',
'HIKAM_MODIFY_ORDER_PRODUCT',
hikamarket::completeLink('order&task=edit&subtask=products&order_id='.$this->order->order_id.'&order_product_id=0',
true),
'hikamarket_editproduct_popup',
550, 350, 'style="display:none;"', '',
'link'
);
?>
<script type="text/javascript">
<!--
window.orderMgr.setProduct = function(el) {
window.hikamarket.submitFct = function(data) {
var w = window, o = w.Oby;
w.hikashop.closeBox();
o.xRequest('<?php echo
hikamarket::completeLink('order&task=show&subtask=products&cid='.$this->order->order_id,
true); ?>', {update: 'hikamarket_order_products'},
function() {
window.orderMgr.updateAdditionals();
window.orderMgr.updateHistory();
});
};
window.hikashop.openBox('hikamarket_editproduct_popup',
el.getAttribute('href'));
return false;
}
window.orderMgr.delProduct = function(el, id) {
if(confirm("<?php echo
JText::_('HIKAM_CONFIRM_DELETE_ORDER_PRODUCT'); ?>")) {
var w = window, o = w.Oby;
el.parentNode.innerHTML = '<img src="<?php echo
HIKAMARKET_IMAGES?>icon-16/loading.gif"
alt="loading..."/>';
o.xRequest('<?php echo
hikamarket::completeLink('order&task=product_delete&order_id='.$this->order->order_id.'&order_product_id=HKMPRODID',
true, false, true); ?>'.replace('HKMPRODID',id), {update:
'hikamarket_order_products'}, function() {
window.orderMgr.updateAdditionals();
window.orderMgr.updateHistory();
});
}
return false;
}
//-->
</script>
<?php
}
PK�[��L��@�@&views/ordermarket/tmpl/show_vendor.phpnu�[���<?php
/**
* @package HikaMarket for Joomla!
* @version 3.1.1
* @author Obsidev S.A.R.L.
* @copyright (C) 2011-2020 OBSIDEV. All rights reserved.
* @license GNU/GPLv3 http://www.gnu.org/licenses/gpl-3.0.html
*/
defined('_JEXEC') or die('Restricted access');
?><div class="hikamarket_order">
<h2 style="display:inline-block"><?php
echo JText::sprintf('HIKAM_ORDER',
$this->order->order_number);
?></h2>
<span id="hikamarket_order_status"
style="margin-left:7px;font-size:1.2em;line-height:1.3em;"
class="order-label order-label-<?php echo
preg_replace('#[^a-z_0-9]#i', '_', str_replace('
','_',$this->order->order_status));
?>"><?php echo
hikamarket::orderStatus($this->order->order_status);
?></span>
<!-- GENERAL -->
<dl class="hikam_options large">
<?php if(empty($this->order->order_invoice_created) ||
$this->order->order_invoice_created !=
$this->order->order_created) { ?>
<dt
class="hikamarket_order_created"><label><?php echo
JText::_('DATE_ORDER_CREATED');?></label></dt>
<dd class="hikamarket_order_created"><?php echo
hikamarket::getDate($this->order->order_created, '%Y-%m-%d
%H:%M'); ?></dd>
<?php } ?>
<dt
class="hikamarket_order_invoicenumber"><label><?php
echo JText::_('INVOICE_NUMBER'); ?></label></dt>
<dd
class="hikamarket_order_invoicenumber"><span><?php
echo @$this->order->order_invoice_number;
?></span></dd>
<?php if(!empty($this->order->order_invoice_created)) { ?>
<dt
class="hikamarket_order_created"><label><?php echo
JText::_('DATE_ORDER_PAID');?></label></dt>
<dd class="hikamarket_order_created"><?php echo
hikamarket::getDate($this->order->order_invoice_created,
'%Y-%m-%d %H:%M');?></dd>
<?php } ?>
</dl>
<!-- ADDITIONAL -->
<h3><?php echo
JText::_('ORDER_DETAILS')?></h3>
<dl class="hikam_options large">
<dt
class="hikamarket_order_additional_subtotal"><label><?php
echo JText::_('SUBTOTAL'); ?></label></dt>
<dd
class="hikamarket_order_additional_subtotal"><span><?php
if($this->shopConfig->get('price_with_tax'))
echo
$this->currencyHelper->format($this->order->order_subtotal,
$this->order->order_currency_id);
else
echo
$this->currencyHelper->format($this->order->order_subtotal_no_vat,
$this->order->order_currency_id);
?></span></dd>
<?php if(!empty($this->order->order_discount_code) ||
bccomp($this->order->order_discount_price, 0, 5) !== 0) { ?>
<dt
class="hikamarket_order_additional_coupon"><label><?php
echo JText::_('HIKASHOP_COUPON'); ?></label></dt>
<dd
class="hikamarket_order_additional_coupon"><span><?php
if($this->shopConfig->get('price_with_tax'))
echo
$this->currencyHelper->format($this->order->order_discount_price
* -1.0, $this->order->order_currency_id);
else
echo
$this->currencyHelper->format(($this->order->order_discount_price
- @$this->order->order_discount_tax) * -1.0,
$this->order->order_currency_id);
?> <span class="label label-default"><?php echo
$this->order->order_discount_code;
?></span></span></dd>
<?php } ?>
<!-- Shipping -->
<?php if(!empty($this->order->order_shipping_id) ||
bccomp($this->order->order_shipping_price, 0, 5) !== 0) { ?>
<dt
class="hikamarket_order_additional_shipping"><label><?php
echo JText::_('SHIPPING'); ?></label></dt>
<dd
class="hikamarket_order_additional_shipping"><span><?php
if($this->shopConfig->get('price_with_tax'))
echo
$this->currencyHelper->format($this->order->order_shipping_price,
$this->order->order_currency_id);
else
echo
$this->currencyHelper->format($this->order->order_shipping_price
- @$this->order->order_shipping_tax,
$this->order->order_currency_id);
?> <span class="hk-label hk-label-blue"><?php
if(empty($this->order->shipping_name))
echo
'<em>'.JText::_('HIKA_NONE').'</em>';
else if(is_string($this->order->shipping_name))
echo $this->order->shipping_name;
else
echo implode('</span> <span class="hk-label
hk-label-blue">', $this->order->shipping_name);
?></span></dd>
<?php
}
?>
<!-- Payment -->
<?php if(!empty($this->order->order_payment_id) ||
bccomp($this->order->order_payment_price, 0, 5) !== 0) { ?>
<dt
class="hikamarket_order_additional_payment"><label><?php
echo JText::_('HIKASHOP_PAYMENT');
?></label></dt>
<dd
class="hikamarket_order_additional_payment"><span><?php
echo
$this->currencyHelper->format($this->order->order_payment_price,
$this->order->order_currency_id);
?> <span class="hk-label hk-label-blue"><?php echo
@$this->order->payment_name; ?></span></dd>
<?php
}
?>
<!-- Additional -->
<?php
if(!empty($this->order->additional)) {
foreach($this->order->additional as $additional) {
?>
<dt
class="hikamarket_order_additional_additional"><label><?php
echo JText::_($additional->order_product_name);
?></label></dt>
<dd
class="hikamarket_order_additional_additional"><span><?php
if(!empty($additional->order_product_price))
$additional->order_product_price =
(float)$additional->order_product_price;
if(!empty($additional->order_product_price) ||
empty($additional->order_product_options))
echo
$this->currencyHelper->format($additional->order_product_price,
$this->order->order_currency_id);
else
echo $additional->order_product_options;
?></span></dd>
<?php
}
}
?>
<!-- Taxes -->
<?php
if($this->shopConfig->get('detailed_tax_display')
&& !empty($this->order->order_tax_info)) {
foreach($this->order->order_tax_info as $tax){
?>
<dt
class="hikamarket_order_additional_tax"><label><?php
echo $tax->tax_namekey; ?></label></dt>
<dd
class="hikamarket_order_additional_tax"><span><?php
echo
$this->currencyHelper->format($tax->tax_amount,$this->order->order_currency_id);
?></span></dd>
<?php
}
}
?>
<!-- Total -->
<dt
class="hikamarket_order_additional_total"><label><?php
if((int)$this->order->order_vendor_id <= 1)
echo JText::_('HIKASHOP_TOTAL');
else
echo JText::_('HIKAM_USER_TOTAL');
?></label></dt>
<dd
class="hikamarket_order_additional_total"><span><?php
echo
$this->currencyHelper->format($this->order->order_full_price,
$this->order->order_currency_id); ?></span></dd>
<?php
if((int)$this->order->order_vendor_id > 1) {
$fixed_fees = 0.0;
if(!empty($this->order->order_vendor_params->fees->fixed)) {
foreach($this->order->order_vendor_params->fees->fixed as
$fixed_fee) {
$fixed_fees += $fixed_fee;
}
}
if(bccomp($fixed_fees, 0, 5) !== 0) {
?>
<!-- Vendor fixed fees -->
<dt
class="hikamarket_order_vendor_fixed_fees"><label><?php
echo JText::_('HIKAM_VENDOR_FIXED_FEES');
?></label></dt>
<dd
class="hikamarket_order_vendor_fixed_fees"><span><?php
echo $this->currencyHelper->format($fixed_fees,
$this->order->order_currency_id);
?></span></dd>
<?php
}
if(!empty($this->order->order_vendor_params->fees->shipping))
{
?>
<!-- Vendor shipping fees -->
<dt
class="hikamarket_order_vendor_shipping_fees"><label><?php
echo JText::_('HIKAM_VENDOR_SHIPPING_FEES');
?></label></dt>
<dd
class="hikamarket_order_vendor_shipping_fees"><span><?php
echo
$this->currencyHelper->format($this->order->order_vendor_params->fees->shipping,
$this->order->order_currency_id);
?></span></dd>
<?php
}
if($this->order->order_vendor_paid > 0) {
$total = $this->order->order_vendor_price;
$paid = $this->order->order_vendor_price;
if(!empty($this->order->refunds)) {
foreach($this->order->refunds as $refund) {
$total += (float)hikamarket::toFloat($refund->order_vendor_price);
if($refund->order_vendor_paid > 0)
$paid += (float)hikamarket::toFloat($refund->order_vendor_price);
}
}
?>
<!-- Vendor total -->
<dt
class="hikamarket_order_vendor_paid"><label><?php
echo JText::_('VENDOR_TOTAL'); ?></label></dt>
<dd
class="hikamarket_order_vendor_paid"><span><?php
echo $this->currencyHelper->format($total,
$this->order->order_currency_id);
if($total == $paid)
echo ' ' .
hikamarket::tooltip(JText::_('HIKAM_ORDER_IS_PAID'),
'', '', '<img
src="'.HIKAMARKET_IMAGES.'icon-16/save2.png"
style="vertical-align:top;"
alt="('.JText::_('PAID').')" />',
'', 0);
?></span></dd>
<?php
} else {
?>
<!-- Vendor total -->
<dt
class="hikamarket_order_vendor_total"><label><?php
echo JText::_('VENDOR_TOTAL'); ?></label></dt>
<dd
class="hikamarket_order_vendor_total"><span><?php
echo
$this->currencyHelper->format($this->order->order_vendor_price,
$this->order->order_currency_id);
?></span></dd>
<?php
}
?>
<?php } ?>
</dl>
<?php
if(!empty($this->fields['order']) &&
hikamarket::acl('order/show/customfields')) {
?>
<dl class="hikam_options large">
<?php
foreach($this->fields['order'] as $fieldName =>
$oneExtraField) {
?>
<dt class="hikamarket_order_additional_customfield
hikamarket_order_additional_customfield_<?php echo $fieldName;
?>"><?php echo
$this->fieldsClass->getFieldName($oneExtraField);?></dt>
<dd class="hikamarket_order_additional_customfield
hikamarket_order_additional_customfield_<?php echo $fieldName;
?>"><span><?php
echo $this->fieldsClass->show($oneExtraField,
@$this->order->$fieldName);
?></span></dd>
<?php
}
?>
</dl>
<?php
}
?>
<!-- CUSTOMER -->
<?php if(hikamarket::acl('order/show/customer')){ ?>
<h3><?php echo JText::_('CUSTOMER')?></h3>
<dl class="hikam_options large">
<dt
class="hikamarket_order_customer_name"><label><?php
echo JText::_('HIKA_NAME');?></label></dt>
<dd class="hikamarket_order_customer_name"><span
id="hikamarket_order_customer_name"><?php echo
@$this->order->customer->name; ?></span></dd>
<dt
class="hikamarket_order_customer_email"><label><?php
echo JText::_('HIKA_EMAIL');?></label></dt>
<dd class="hikamarket_order_customer_email"><span
id="hikamarket_order_customer_email"><?php echo
@$this->order->customer->user_email;
?></span></dd>
</dl>
<?php } ?>
<!-- ADDRESSES -->
<?php
if(hikamarket::acl('order/show/billingaddress') ||
hikamarket::acl('order/show/shippingaddress')) {
$acl_billing = hikamarket::acl('order/show/billingaddress');
$acl_shipping = hikamarket::acl('order/show/shippingaddress');
$row_class = '';
$cell_class = '';
if($acl_billing && $acl_shipping) {
$row_class = 'hk-row-fluid';
$cell_class = 'hkc-md-6';
}
?>
<div class="<?php echo $row_class; ?>
hikamarket_order_addresses">
<?php if($acl_billing) { ?>
<div class="<?php echo $cell_class; ?>
hikamarket_order_billing_address">
<h3><?php echo
JText::_('HIKASHOP_BILLING_ADDRESS')?></h3>
<?php
echo
$this->addressClass->maxiFormat($this->addresses[(int)$this->order->order_billing_address_id],
$this->address_fields, true);
?>
</div>
<?php } ?>
<?php if($acl_shipping) { ?>
<div class="<?php echo $cell_class; ?>
hikamarket_order_shipping_address">
<h3><?php echo
JText::_('HIKASHOP_SHIPPING_ADDRESS')?></h3>
<?php
if(empty($this->order->override_shipping_address))
echo
$this->addressClass->maxiFormat($this->addresses[(int)$this->order->order_shipping_address_id],
$this->address_fields, true);
else
echo $this->order->override_shipping_address;
?>
</div>
<?php } ?>
</div>
<?php } ?>
<!-- PRODUCTS -->
<h3><?php echo
JText::_('PRODUCT_LIST')?></h3>
<table class="hikam_listing <?php echo
(HIKASHOP_RESPONSIVE)?'table table-striped table-hover
table-bordered':'hikam_table'; ?>"
id="hikamarket_order_product_listing"
style="width:100%">
<thead>
<tr>
<th class="hikamarket_order_item_name_title
title"><?php echo JText::_('PRODUCT');
?></th>
<th class="hikamarket_order_item_price_title
title"><?php echo JText::_('UNIT_PRICE');
?></th>
<th class="hikamarket_order_item_quantity_title
title"><?php echo JText::_('PRODUCT_QUANTITY');
?></th>
<th class="hikamarket_order_item_total_price_title
title"><?php echo JText::_('PRICE'); ?></th>
</tr>
</thead>
<tbody>
<?php
foreach($this->order->products as $k => $product) {
$td_class = '';
if(!empty($product->order_product_option_parent_id))
$td_class = ' hikamarket_order_item_option';
?>
<tr>
<td class="hikamarket_order_item_name_value<?php echo
$td_class; ?>"><?php
if(!empty($product->product_id)) {
?>
<a onclick="return window.orderMgr.showProduct(this);"
data-popup-href="<?php echo
hikamarket::completeLink('shop.product&task=show&cid='.$product->product_id,
true); ?>" href="<?php echo
hikamarket::completeLink('shop.product&task=show&cid='.$product->product_id);
?>"><?php
if(!empty($product->images)) {
$img = reset($product->images);
$thumb = $this->imageHelper->getThumbnail(@$img->file_path,
array(50,50), array('default' => 1, 'forcesize'
=> 1));
if(!empty($thumb->path))
echo '<img src="'.
$this->imageHelper->uploadFolder_url . str_replace('\\',
'/', $thumb->path).'" alt=""
class="hikam_imglist" />';
}
echo $product->order_product_name;
?></a>
<?php
} else {
echo $product->order_product_name;
}
?></td>
<td class="hikamarket_order_item_price_value"><?php
echo
$this->currencyHelper->format($product->order_product_price,
$this->order->order_currency_id);
if(bccomp($product->order_product_tax, 0, 5))
echo '<br/>'.JText::sprintf('PLUS_X_OF_VAT',
$this->currencyHelper->format($product->order_product_tax,
$this->order->order_currency_id));
?></td>
<td
class="hikamarket_order_item_quantity_value"><?php
echo (int)$product->order_product_quantity;
?></td>
<td
class="hikamarket_order_item_total_price_value"><?php
echo
$this->currencyHelper->format($product->order_product_total_price,
$this->order->order_currency_id);
?></td>
</tr>
<?php
}
?>
</tbody>
</table>
<?php
echo $this->popup->display(
'',
'HIKAM_SHOW_ORDER_PRODUCT',
hikamarket::completeLink('shop.product&task=show&cid=0',
true),
'hikamarket_showproduct_popup',
750, 460, 'style="display:none;"', '',
'link'
);
?>
<!-- OTHER COMPONENTS -->
<?php
JPluginHelper::importPlugin('hikashop');
JPluginHelper::importPlugin('hikamarket');
JFactory::getApplication()->triggerEvent('onAfterOrderProductsListingDisplay',
array(&$this->order, 'order_frontvendor_vendor_show'));
?>
<!-- HISTORY -->
<?php if(hikamarket::acl('order/show/history') &&
!empty($this->order->history)) { ?>
<h3><?php echo JText::_('HISTORY')?></h3>
<div class="hikamarket_history_container">
<table id="hikamarket_order_history_listing"
class="hikam_listing hikam_table table table-striped
table-hover">
<thead>
<tr>
<th class="title"><?php echo
JText::_('HIKA_TYPE'); ?></th>
<th class="title"><?php echo
JText::_('ORDER_STATUS'); ?></th>
<th class="title"><?php echo
JText::_('REASON'); ?></th>
<th class="title"><?php echo
JText::_('DATE'); ?></th>
</tr>
</thead>
<tbody>
<?php
$userClass = hikamarket::get('shop.class.user');
foreach($this->order->history as $k => $history) {
?>
<tr>
<td><?php
$val =
preg_replace('#[^a-z0-9]#i','_',strtoupper($history->history_type));
$trans = JText::_($val);
if($val != $trans)
$history->history_type = $trans;
echo $history->history_type;
?></td>
<td><?php
echo hikamarket::orderStatus($history->history_new_status);
?></td>
<td><?php
echo $history->history_reason;
?></td>
<td><?php
echo hikamarket::getDate($history->history_created,'%Y-%m-%d
%H:%M');
?></td>
</tr>
<?php
}
?>
</tbody>
</table>
</div>
<?php } ?>
</div>
<script type="text/javascript">
<!--
if(!window.orderMgr)
window.orderMgr = {};
window.orderMgr.showProduct = function(el) {
window.hikashop.submitFct = function(data) { window.hikashop.closeBox();
};
var href = el.getAttribute('data-popup-href');
if(!href)
href = el.getAttribute('href');
window.hikashop.openBox('hikamarket_showproduct_popup', href);
return false;
};
window.orderMgr.editOrderStatus = function(el) {
window.hikamarket.submitFct = function(data) {
var orderstatus =
document.getElementById('hikamarket_order_status');
if(orderstatus) {
orderstatus.innerHTML = data.name;
orderstatus.className = 'order-label order-label-' +
data.order_status.replace(/[^a-z_0-9]/i, '_');
}
window.hikamarket.closeBox();
};
var href = el.getAttribute('href');
if(href == '' || href == null || href == '#')
href = null;
window.hikamarket.openBox('hikamarket_order_status_popup',
href);
return false;
};
// -->
</script>
PK�[B��
�
!views/ordermarket/tmpl/status.phpnu�[���<?php
/**
* @package HikaMarket for Joomla!
* @version 3.1.1
* @author Obsidev S.A.R.L.
* @copyright (C) 2011-2020 OBSIDEV. All rights reserved.
* @license GNU/GPLv3 http://www.gnu.org/licenses/gpl-3.0.html
*/
defined('_JEXEC') or die('Restricted access');
?><form action="<?php echo
hikamarket::completeLink('order&task=save&cid='.$this->order->order_id);
?>" method="post" name="adminForm"
id="adminForm">
<dl class="hikam_options">
<dt><?php echo JText::_('ORDER_STATUS');
?></dt>
<dd><span class="order-label order-label-<?php echo
preg_replace('#[^a-z_0-9]#i', '_', str_replace('
','_',$this->order->order_status));
?>"><?php
echo hikamarket::orderStatus($this->order->order_status);
?></span></dd>
<dt><?php echo JText::_('ORDER_NEW_STATUS');
?></dt>
<dd><?php
echo
$this->order_status->display('order[general][order_status]',
$this->order->order_status,
'onchange="window.orderMgr.status_changed(this);"',
false, @$this->order_status_filters);
?></dd>
<?php
if(($this->vendor->vendor_id == 0 || $this->vendor->vendor_id
== 1) && hikamarket::acl('order/edit/notify')) {
?>
<dt id="hikamarket_order_notify_lbl"
style="display:none;"
class="hikamarket_order_notify"><label
for="order[notify]"><?php echo
JText::_('NOTIFICATION'); ?></label></dt>
<dd id="hikamarket_order_notify_val"
style="display:none;"
class="hikamarket_order_notify"><input
type="checkbox" id="order[notify]" value="1"
name="order[notify]"/><label
style="display:inline-block"
for="order[notify]"><?php echo
JText::_('NOTIFY_CUSTOMER'); ?></label></dd>
<?php
}
?>
</dl>
<script type="text/javascript">
if(!window.orderMgr)
window.orderMgr = {};
window.orderMgr.status_changed = function(el) {
var fields = ['hikamarket_order_notify_lbl',
'hikamarket_order_notify_val'], displayValue = '';
if(el.value == '<?php echo $this->order->order_status;
?>')
displayValue = 'none';
window.hikamarket.setArrayDisplay(fields, displayValue);
};
window.orderMgr.general_history_changed = function(el) {
var fields = ['hikamarket_history_general_msg'], displayValue =
'';
if(!el.checked) displayValue = 'none';
window.hikamarket.setArrayDisplay(fields, displayValue);
};
</script>
<input type="hidden" name="closepopup"
value="1"/>
<input type="hidden" name="cid"
value="<?php echo (int)$this->order->order_id; ?>"
/>
<input type="hidden" name="option"
value="<?php echo HIKAMARKET_COMPONENT; ?>" />
<input type="hidden" name="task"
value="save" />
<input type="hidden" name="ctrl"
value="order" />
<?php if(hikaInput::get()->getCmd('tmpl', '') !=
'') { ?>
<input type="hidden" name="tmpl"
value="<?php echo
$this->escape(hikaInput::get()->getCmd('tmpl'));
?>" />
<?php } ?>
<?php echo JHTML::_('form.token'); ?>
</form>
PK�[HL�,��views/ordermarket/view.html.phpnu�[���<?php
/**
* @package HikaMarket for Joomla!
* @version 3.1.1
* @author Obsidev S.A.R.L.
* @copyright (C) 2011-2020 OBSIDEV. All rights reserved.
* @license GNU/GPLv3 http://www.gnu.org/licenses/gpl-3.0.html
*/
defined('_JEXEC') or die('Restricted access');
?><?php
class ordermarketViewordermarket extends HikamarketView {
protected $ctrl = 'order';
protected $icon = 'order';
protected $triggerView = true;
public function display($tpl = null, $params = array()) {
$this->params =& $params;
$fct = $this->getLayout();
if(method_exists($this, $fct) && $this->$fct($tpl) === false)
return false;
parent::display($tpl);
}
public function listing($tpl = null) {
$app = JFactory::getApplication();
$db = JFactory::getDBO();
$ctrl = '';
$this->paramBase =
HIKAMARKET_COMPONENT.'.'.$this->getName().'.listing';
global $Itemid;
$url_itemid = '';
if(!empty($Itemid))
$url_itemid='&Itemid='.$Itemid;
$this->assignRef('Itemid', $Itemid);
$vendor = hikamarket::loadVendor(true, false);
$this->assignRef('vendor', $vendor);
$config = hikamarket::config();
$this->assignRef('config', $config);
$shopConfig = hikamarket::config(false);
$this->assignRef('shopConfig', $shopConfig);
$this->loadRef(array(
'toggleClass' => 'helper.toggle',
'paymentType' => 'type.paymentmethods',
'orderStatusType' => 'type.order_status',
'addressClass' => 'class.address',
'currencyHelper' => 'shop.class.currency',
'shopAddressClass' => 'shop.class.address',
'fieldClass' => 'shop.class.field',
'searchType' => 'type.search',
));
$filterType =
$app->getUserStateFromRequest($this->paramBase.'.filter_type',
'filter_type', 0, 'int');
$cfg = array(
'table' => 'shop.order',
'main_key' => 'order_id',
'order_sql_value' => 'hkorder.order_id'
);
$pageInfo = $this->getPageInfo($cfg['order_sql_value'],
'desc');
$pageInfo->filter->filter_status =
$app->getUserStateFromRequest($this->paramBase.'.filter_status',
'filter_status', '', 'string');
$pageInfo->filter->filter_payment =
$app->getUserStateFromRequest($this->paramBase.'.filter_payment',
'filter_payment', '', 'string');
$pageInfo->filter->filter_user =
$app->getUserStateFromRequest($this->paramBase.'.filter_user',
'filter_user', '', 'string');
$filters = array();
$searchMap = array(
'hkorder.order_id',
'hkorder.order_number',
'hkuser.user_email'
);
$orderingAccept = array('hkorder.','hkuser.');
$order = '';
$fields = array();
if(hikashop_level(2)) {
$null = null;
$fields =
$this->fieldClass->getFields('display:vendor_order_listing=1',
$null, 'order');
foreach($fields as $field) {
if($field->field_type == 'customtext')
continue;
$searchMap[] = 'hkorder.'.$field->field_namekey;
}
}
$this->assignRef('fields', $fields);
if(!empty($pageInfo->filter->filter_status))
$filters['order_status'] = 'hkorder.order_status = '
. $db->Quote($pageInfo->filter->filter_status);
if(!empty($pageInfo->filter->filter_payment))
$filters['order_payment_id'] = 'hkorder.order_payment_id
= ' . (int)$pageInfo->filter->filter_payment;
if(!empty($pageInfo->filter->filter_user) &&
(int)$pageInfo->filter->filter_user > 0)
$filters['order_user_id'] = 'hkorder.order_user_id =
' . (int)$pageInfo->filter->filter_user;
if($vendor->vendor_id > 1) {
$filters['order_vendor_id'] = 'hkorder.order_vendor_id =
' . $vendor->vendor_id;
$filters['order_type'] = 'hkorder.order_type IN (' .
$db->Quote('subsale') . ',' .
$db->Quote('sale') . ')';
} else {
$filters['order_vendor_id'] = '(hkorder.order_vendor_id =
0 OR hkorder.order_vendor_id = 1)';
$filters['order_type'] = 'hkorder.order_type = ' .
$db->Quote('sale');
}
$extrafilters = array();
$joins = array();
JPluginHelper::importPlugin('hikashop');
JPluginHelper::importPlugin('hikamarket');
$app->triggerEvent('onBeforeOrderListing',
array($this->paramBase, &$extrafilters, &$pageInfo,
&$filters, &$joins, &$searchMap));
$this->assignRef('extrafilters', $extrafilters);
$this->processFilters($filters, $order, $searchMap, $orderingAccept);
$query = 'FROM
'.hikamarket::table($cfg['table']).' AS hkorder
'.
' LEFT JOIN '.hikamarket::table('shop.user').'
AS hkuser ON hkorder.order_user_id = hkuser.user_id '.
implode(' ', $joins).' '.$filters.$order;
$db->setQuery('SELECT hkorder.*, hkuser.* '.$query,
(int)$pageInfo->limit->start, (int)$pageInfo->limit->value);
if(empty($pageInfo->search)) {
$query = 'FROM
'.hikamarket::table($cfg['table']).' AS hkorder
'.$filters;
}
$orders = $db->loadObjectList('order_id');
$db->setQuery('SELECT COUNT(*) '.$query);
$pageInfo->elements = new stdClass();
$pageInfo->elements->total = $db->loadResult();
$pageInfo->elements->page = count($orders);
$this->assignRef('orders', $orders);
if(hikashop_level(2)) {
$this->fieldClass->handleZoneListing($fields, $orders);
}
$this->display_shipping =
(bool)$shopConfig->get('force_shipping', 1);
$addresses = null;
$address_fields = null;
$payments = array();
if(!empty($orders)) {
$query = 'SELECT DISTINCT a.* '.
' FROM ' . hikamarket::table('shop.address') .
' AS a '.
' INNER JOIN ' . hikamarket::table('shop.order') .
' AS o ON (a.address_id = o.order_billing_address_id OR a.address_id =
o.order_shipping_address_id) ' .
' WHERE o.order_id IN (' . implode(',',
array_keys($orders)) . ')';
$db->setQuery($query);
$addresses = $db->loadObjectList('address_id');
$this->shopAddressClass->loadZone($addresses);
$shopPluginClass = hikamarket::get('shop.class.plugins');
$paymentMethods = $shopPluginClass->getMethods('payment');
foreach($paymentMethods as $payment) {
$payments[$payment->payment_id] = $payment;
}
foreach($orders as &$order) {
$order->shipping_name = null;
if(empty($order->order_shipping_method) &&
empty($order->order_shipping_id))
continue;
$this->display_shipping = true;
if(!empty($order->order_shipping_method)) {
if(!is_numeric($order->order_shipping_id))
$order->shipping_name =
$this->getShippingName($order->order_shipping_method,
$order->order_shipping_id);
else
$order->shipping_name = $this->getShippingName(null,
$order->order_shipping_id);
} else {
$order->shipping_name = array();
$shipping_ids = explode(';', $order->order_shipping_id);
foreach($shipping_ids as $shipping_id) {
$order->shipping_name[] = $this->getShippingName(null,
$shipping_id);
}
if(count($order->shipping_name) == 1)
$order->shipping_name = reset($order->shipping_name);
}
}
unset($order);
}
$this->assignRef('addresses', $addresses);
$this->assignRef('address_fields', $address_fields);
$this->assignRef('payments', $payments);
$this->order_stats = null;
if($config->get('display_order_statistics', 0)) {
if($vendor->vendor_id > 1) {
$query = 'SELECT o.order_status, COUNT(o.order_id) as `total` FROM
'.hikamarket::table('shop.order').' AS o WHERE
o.order_type = \'subsale\' AND o.order_vendor_id =
'.(int)$vendor->vendor_id.' GROUP BY o.order_status';
} else {
$query = 'SELECT o.order_status, COUNT(o.order_id) as `total` FROM
'.hikamarket::table('shop.order').' AS o WHERE
o.order_type = \'sale\' GROUP BY o.order_status';
}
$db->setQuery($query);
$this->order_stats =
$db->loadObjectList('order_status');
ksort($this->order_stats);
}
$text_asc = JText::_('ASCENDING');
$text_desc = JText::_('DESCENDING');
$ordering_values = array(
'hkorder.order_id' => JText::_('SORT_ID'),
'hkorder.order_invoice_id' =>
JText::_('SORT_INVOICE'),
'hkorder.order_user_id' =>
JText::_('SORT_USER'),
'hkorder.order_created' =>
JText::_('SORT_CREATION'),
'hkorder.order_modified' =>
JText::_('SORT_MODIFICATION'),
'hkorder.order_full_price' =>
JText::_('SORT_PRICE'),
);
$this->ordering_values = array();
foreach($ordering_values as $k => $v) {
$this->ordering_values[$k.' asc'] = $v . ' '
.$text_asc;
$this->ordering_values[$k.' desc'] = $v . ' '
.$text_desc;
}
$this->full_ordering =
$this->pageInfo->filter->order->value . ' ' .
strtolower($this->pageInfo->filter->order->dir);
$this->toolbar = array(
'back' => array(
'icon' => 'back',
'fa' => 'fa-arrow-circle-left',
'name' => JText::_('HIKA_BACK'),
'url' => hikamarket::completeLink('vendor')
),
'report' => array(
'icon' => 'report',
'fa' => 'fa-bar-chart fa-chart-bar',
'name' => JText::_('HIKA_EXPORT'),
'url' =>
hikamarket::completeLink('order&task=export'),
'pos' => 'right',
'acl' => hikamarket::acl('order/export')
),
'new' => array(
'icon' => 'new',
'fa' => 'fa-plus-circle',
'name' => JText::_('HIKA_NEW'),
'url' =>
hikamarket::completeLink('order&task=create'),
'pos' => 'right',
'display' => ($vendor->vendor_id <= 1) ||
$config->get('vendor_edit_order', 0),
'acl' => hikamarket::acl('order/add')
),
'request' => array(
'icon' => 'pay',
'fa' => 'fa-money fa-money-bill-alt',
'name' => JText::_('HIKAM_PAYMENT_REQUEST'),
'url' =>
hikamarket::completeLink('order&task=request'),
'pos' => 'right',
'display' => ($vendor->vendor_id > 1),
'acl' => hikamarket::acl('order/request')
),
'payments' => array(
'icon' => 'pay',
'fa' => 'fa-list-alt',
'name' => JText::_('HIKAM_PAYMENT_LISTING'),
'url' =>
hikamarket::completeLink('order&task=payments'),
'pos' => 'right',
'display' => ($vendor->vendor_id > 1),
'acl' => hikamarket::acl('order/payments')
)
);
$this->getPagination();
$this->getOrdering('hkorder.ordering', !$filterType);
}
public function show($tpl = null, $toolbar = true) {
$app = JFactory::getApplication();
$db = JFactory::getDBO();
$ctrl = '';
$order_id = hikamarket::getCID('order_id', true);
$vendor = hikamarket::loadVendor(true, false);
$this->assignRef('vendor', $vendor);
$config = hikamarket::config();
$this->assignRef('config', $config);
$shopConfig = hikamarket::config(false);
$this->assignRef('shopConfig', $shopConfig);
$edit = hikaInput::get()->getCmd('task','') ==
'edit';
$this->assignRef('edit', $edit);
$address_mode = hikaInput::get()->getInt('address_mode',
0);
$this->assignRef('address_mode', $address_mode);
hikamarket::loadJslib('tooltip');
global $Itemid;
$url_itemid = '';
if(!empty($Itemid))
$url_itemid='&Itemid='.$Itemid;
$this->assignRef('Itemid', $Itemid);
$orderClass = hikamarket::get('shop.class.order');
$order = $orderClass->loadFullOrder($order_id, true, false);
if(!isset($order->hikamarket))
$order->hikamarket = new stdClass();
if(!empty($order) && $order->order_vendor_id !=
$vendor->vendor_id && ($vendor->vendor_id > 1 ||
($order->order_vendor_id > 1 &&
!hikamarket::acl('order/show/vendors')))) {
$order = null;
$app->enqueueMessage(JText::_('ORDER_ACCESS_FORBIDDEN'));
$app->redirect(hikamarket::completeLink('order'));
return false;
}
$editable_order = ($order->order_type === 'sale') &&
($vendor->vendor_id <= 1);
if($order->order_type === 'sale' &&
$vendor->vendor_id > 1 && (int)$order->order_vendor_id ==
$vendor->vendor_id &&
(int)$config->get('vendor_edit_order', 0) == 1) {
$editable_order = hikamarket::isEditableOrder($order_id,
$vendor->vendor_id);
}
$this->assignRef('editable_order', $editable_order);
if(empty($order->customer)) {
$userClass = hikamarket::get('shop.class.user');
$order->customer = $userClass->get($order->order_user_id);
}
if($order->order_type == 'sale') {
$filters = array(
'type' => 'o.order_type IN (' .
$db->Quote('subsale') . ', ' .
$db->Quote('vendorrefund') . ')',
'parent' => 'order_parent_id = ' .
(int)$order->order_id
);
$query = 'SELECT o.*, v.* FROM ' .
hikamarket::table('shop.order') . ' AS o ' .
' LEFT JOIN ' . hikamarket::table('vendor') .
' AS v ON o.order_vendor_id = v.vendor_id '.
' WHERE (' . implode(') AND (', $filters) . ')
' .
' ORDER BY v.vendor_id ASC, o.order_id ASC';
$db->setQuery($query);
$order->hikamarket->children =
$db->loadObjectList('order_id');
$refunds = false;
foreach($order->hikamarket->children as $d) {
if($d->order_type !== 'vendorrefund') {
$refunds = true;
break;
}
}
if($refunds) {
foreach($order->hikamarket->children as &$d) {
if($d->order_type !== 'subsale')
continue;
$m = false;
$total = (float)hikamarket::toFloat($d->order_vendor_price);
foreach($order->hikamarket->children as $o) {
if($o->order_type == 'vendorrefund' &&
$o->order_vendor_id == $d->order_vendor_id) {
$total += (float)hikamarket::toFloat($o->order_vendor_price);
$m = true;
}
}
if($m)
$d->order_vendor_price_with_refunds = $total;
}
unset($d);
}
}
if($order->order_type == 'subsale' &&
(int)$vendor->vendor_id <= 1) {
$vendorClass = hikamarket::get('class.vendor');
$order->hikamarket->vendor = $vendorClass->get(
(int)$order->order_vendor_id );
$query = 'SELECT order_number, order_invoice_number FROM ' .
hikamarket::table('shop.order') . ' WHERE order_id = '
. (int)$order->order_parent_id;
$db->setQuery($query);
$order->hikamarket->parent = $db->loadObject();
}
if(!empty($order->products)) {
$product_ids = array();
foreach($order->products as &$product) {
$product_ids[(int)$product->product_id] =
(int)$product->product_id;
$product->order_product_price =
(float)hikamarket::toFloat($product->order_product_price);
$product->order_product_tax =
(float)hikamarket::toFloat($product->order_product_tax);
$product->tax_rate = 0;
if($product->order_product_tax > 0 &&
$product->order_product_price != 0)
$product->tax_rate = $product->order_product_tax /
$product->order_product_price;
}
unset($product);
if($order->order_type == 'sale') {
$query = 'SELECT hkop.*, hko.order_vendor_id, hmv.vendor_name,
hmv.vendor_id '.
' FROM ' . hikamarket::table('shop.order_product')
. ' as hkop '.
' INNER JOIN ' . hikamarket::table('shop.order').
' AS hko ON hkop.order_id = hko.order_id '.
' LEFT JOIN ' . hikamarket::table('vendor').
' AS hmv ON hmv.vendor_id = hko.order_vendor_id '.
' WHERE hko.order_type = \'subsale\' AND
hko.order_parent_id = '. (int)$order->order_id .
' ORDER BY hko.order_id DESC';
$db->setQuery($query);
$vendorProducts = $db->loadObjectList();
foreach($order->products as &$product) {
$product->vendor_data = array();
foreach($vendorProducts as $vendorProduct) {
if((int)$vendorProduct->order_product_parent_id ==
$product->order_product_id) {
$product->vendor_data[] = $vendorProduct;
}
}
}
unset($product);
} elseif($order->order_type == 'subsale') {
$filters = array(
'f.file_ref_id IN ('.implode(',',
$product_ids).')',
'f.file_type = '.$db->quote('file')
);
$query = 'SELECT d.*, f.* '.
' FROM '.hikamarket::table('shop.file').' AS
f '.
' INNER JOIN
'.hikamarket::table('shop.download').' AS d ON
d.order_id = ' . (int)$order->order_parent_id . ' AND
f.file_id = d.file_id '.
' WHERE (' . implode(') AND
(',$filters).')'.
' ORDER BY f.file_ref_id ASC, f.file_ordering ASC, d.file_pos
ASC';
$db->setQuery($query);
$files = $db->loadObjectList();
foreach($files as $file) {
foreach($order->products as &$product) {
if(empty($product->files))
continue;
foreach($product->files as &$f) {
if((int)$f->file_id != (int)$file->file_id)
continue;
$f->download_number = $file->download_number;
$file->done = true;
break;
}
if($file->done)
break;
}
unset($product);
}
}
}
$this->assignRef('order', $order);
$rootCategory = 0;
$vendorCategories = 0;
$vendorClass = hikamarket::get('class.vendor');
$rootCategory = $vendorClass->getRootCategory($vendor);
$extra_categories = $vendorClass->getExtraCategories($vendor);
if(!empty($extra_categories))
$vendorCategories = array_merge(array($rootCategory),
$extra_categories);
if(empty($rootCategory))
$rootCategory = 1;
if(empty($vendorCategories))
$vendorCategories = $rootCategory;
$this->assignRef('rootCategory', $rootCategory);
$this->assignRef('vendorCategories', $vendorCategories);
$this->loadRef(array(
'toggleClass' => 'helper.toogle',
'currencyHelper' => 'shop.class.currency',
'payment' => 'shop.type.plugins',
'shipping' => 'shop.type.plugins',
'shippingClass' => 'shop.class.shipping',
'paymentClass' => 'shop.class.payment',
'fieldsClass' => 'shop.class.field',
'addressClass' => 'class.address',
'shopAddressClass' => 'shop.class.address',
'popup' => 'shop.helper.popup',
'order_status' => 'type.order_status',
'imageHelper' => 'shop.helper.image',
'dropdownHelper' => 'shop.helper.dropdown',
'nameboxType' => 'type.namebox',
'ratesType' => 'type.rates',
));
$this->payment->type = 'payment';
$this->shipping->type = 'shipping';
$fields = array();
if(!empty($order_id)) {
$order->order_discount_price =
(float)hikamarket::toFloat(@$order->order_discount_price);
$order->order_discount_tax =
(float)hikamarket::toFloat(@$order->order_discount_tax);
$order->order_discount_tax_rate = 0;
if(empty($order->order_discount_tax_namekey))
$order->order_discount_tax_namekey = '';
$order->order_payment_price =
(float)hikamarket::toFloat(@$order->order_payment_price);
$order->order_payment_tax =
(float)hikamarket::toFloat(@$order->order_payment_tax);
$order->order_payment_tax_rate = 0;
if(empty($order->order_payment_tax_namekey))
$order->order_payment_tax_namekey = '';
$order->order_shipping_price =
(float)hikamarket::toFloat(@$order->order_shipping_price);
$order->order_shipping_tax =
(float)hikamarket::toFloat(@$order->order_shipping_tax);
$order->order_shipping_tax_rate = 0;
if(empty($order->order_shipping_tax_namekey))
$order->order_shipping_tax_namekey = '';
$order->currency = $this->currencyHelper->get(
(int)$order->order_currency_id );
$order->fields =
$this->fieldsClass->getData('backend','address');
if(hikashop_level(2)) {
$fields['order'] =
$this->fieldsClass->getFields('display:vendor_order_show=1',
$order, 'order');
$null = null;
$fields['entry'] =
$this->fieldsClass->getFields('display:vendor_order_show=1',
$null, 'entry');
$fields['item'] =
$this->fieldsClass->getFields('display:vendor_order_show=1',
$null, 'item');
}
$query = 'SELECT * FROM
'.hikamarket::table('shop.history').' WHERE
history_order_id = '.(int)$order_id.' ORDER BY history_created
DESC';
$db->setQuery($query);
$order->history = $db->loadObjectList();
if(!empty($order->order_tax_info)) {
foreach($order->order_tax_info as $k => $v) {
if(isset($v->tax_amount_for_coupon) &&
empty($order->order_discount_tax_namekey)) {
$order->order_discount_tax_namekey = $k;
}
if(isset($v->tax_amount_for_payment) &&
empty($order->order_payment_tax_namekey)) {
$order->order_payment_tax_namekey = $k;
}
if(isset($v->tax_amount_for_shipping) &&
empty($order->order_shipping_tax_namekey)) {
$order->order_shipping_tax_namekey = $k;
}
}
}
if(!empty($order->order_discount_tax) &&
($order->order_discount_price - $order->order_discount_tax) != 0)
$order->order_discount_tax_rate = $order->order_discount_tax /
($order->order_discount_price - $order->order_discount_tax);
if(!empty($order->order_payment_tax) &&
($order->order_payment_price - $order->order_payment_tax) != 0)
$order->order_payment_tax_rate = $order->order_payment_tax /
($order->order_payment_price - $order->order_payment_tax);
if(!empty($order->order_shipping_tax) &&
($order->order_shipping_price - $order->order_shipping_tax) != 0)
$order->order_shipping_tax_rate = $order->order_shipping_tax /
($order->order_shipping_price - $order->order_shipping_tax);
if(!empty($order->order_payment_id)) {
if($order->order_type == 'subsale' &&
substr($order->order_payment_method, 0, 7) == 'market-')
$order->order_payment_method =
substr($order->order_payment_method, 7);
$order->payment_name = $order->order_payment_method . ' -
' . $order->order_payment_id;
$paymentMethod = $this->paymentClass->get(
(int)$order->order_payment_id );
if(!empty($paymentMethod->payment_name))
$order->payment_name = $paymentMethod->payment_name;
}
$order->shipping_name = null;
if(!empty($order->order_shipping_method)) {
if($order->order_type == 'subsale' &&
substr($order->order_shipping_method, 0, 7) == 'market-')
$order->order_shipping_method =
substr($order->order_shipping_method, 7);
if(!is_numeric($order->order_shipping_id))
$order->shipping_name =
$this->getShippingName($order->order_shipping_method,
$order->order_shipping_id);
else
$order->shipping_name = $this->getShippingName(null,
$order->order_shipping_id);
} else if(!empty($order->order_shipping_id)) {
$order->shipping_name = array();
$shipping_ids = explode(';', $order->order_shipping_id);
foreach($shipping_ids as $shipping_id) {
$order->shipping_name[] = $this->getShippingName(null,
$shipping_id);
}
if(count($order->shipping_name) == 1)
$order->shipping_name = reset($order->shipping_name);
}
if(!empty($order->order_vendor_params) &&
is_string($order->order_vendor_params))
$order->order_vendor_params =
hikamarket::unserialize($order->order_vendor_params);
if((int)$order->order_vendor_paid > 0) {
$query = 'SELECT * '.
' FROM ' . hikamarket::table('shop.order') .
' WHERE order_parent_id = ' . $order->order_parent_id .
' AND order_type = ' . $db->Quote('vendorrefund');
$db->setQuery($query);
$order->refunds = $db->loadObjectList();
foreach($order->refunds as $refund) {
if($refund->order_vendor_paid == 0)
$order->current_order_status = $refund->order_status;
}
}
$query = 'SELECT DISTINCT a.* '.
' FROM ' . hikamarket::table('shop.address') .
' AS a '.
' INNER JOIN ' . hikamarket::table('shop.order') .
' AS o ON (a.address_id = o.order_billing_address_id OR a.address_id =
o.order_shipping_address_id) ' .
' WHERE o.order_id = '.(int)$order->order_id;
$db->setQuery($query);
$addresses = $db->loadObjectList('address_id');
$this->assignRef('addresses', $addresses);
$address_fields = null;
$this->assignRef('address_fields', $address_fields);
$this->shopAddressClass->loadZone($addresses);
$bundles = array();
foreach($order->products as $p) {
if(empty($p->bundle))
continue;
foreach($p->bundle as $b) {
$bundles[(int)$b->product_id] = (int)$b->product_id;
}
}
if(!empty($bundles)) {
$filters = array(
'a.file_ref_id IN ('.implode(',',
$bundles).')',
'a.file_type = \'product\''
);
$query = 'SELECT a.* FROM
'.hikamarket::table('shop.file').' AS a WHERE
'.implode(' AND ',$filters).' ORDER BY file_ref_id ASC,
file_ordering ASC';
$db->setQuery($query);
$images = $db->loadObjectList();
if(!empty($images)) {
foreach($order->products as &$p) {
if(empty($p->bundle))
continue;
foreach($p->bundle as &$b) {
foreach($images as $image) {
if($b->product_id != $image->file_ref_id)
continue;
if(empty($b->images))
$b->images = array();
$b->images[] = $image;
}
}
unset($b);
}
unset($p);
}
}
}
$this->assignRef('fields',$fields);
if(empty($order->order_shipping_method) &&
!empty($order->shippings)) {
$this->loadRef(array(
'warehouseClass' => 'class.warehouse'
));
$order->shipping_data = array();
$shipping_ids = explode(';', $order->order_shipping_id);
$order->warehouses = array();
foreach($shipping_ids as $key) {
$shipping_data = '';
list($k, $w) = explode('@', $key);
$shipping_id = $k;
if(isset($order->shippings[$shipping_id])) {
$shipping = $order->shippings[$shipping_id];
$shipping_data = $shipping->shipping_name;
}
if(empty($shipping_data))
$shipping_data = $this->getShippingName(null, $shipping_id,
false);
if(empty($shipping_data)) {
foreach($order->products as $order_product) {
if($order_product->order_product_shipping_id != $key)
continue;
if(!is_numeric($order_product->order_product_shipping_id)) {
$shipping_data =
$this->getShippingName($order_product->order_product_shipping_method,
$shipping_id);
} else {
$shipping_method_data =
$this->shippingClass->get($shipping_id);
$shipping_data = $shipping_method_data->shipping_name;
}
break;
}
}
if(empty($shipping_data))
$shipping_data = '[ ' . $key . ' ]';
if(isset($order->order_shipping_params->prices[$key])) {
$price_params = $order->order_shipping_params->prices[$key];
if($this->shopConfig->get('price_with_tax'))
$shipping_data .= ' (' .
$this->currencyHelper->format($price_params->price_with_tax,
$order->order_currency_id) . ')';
else
$shipping_data .= ' (' .
$this->currencyHelper->format($price_params->price_with_tax -
@$price_params->tax, $order->order_currency_id) . ')';
}
$order->shipping_data[] = $shipping_data;
$order->warehouses[$key] = $this->warehouseClass->get($key);
}
}
JPluginHelper::importPlugin('hikashop');
JPluginHelper::importPlugin('hikamarket');
JPluginHelper::importPlugin('hikashoppayment');
JPluginHelper::importPlugin('hikashopshipping');
$app->triggerEvent('onMarketOrderEditionLoading',
array(&$order) );
$app->triggerEvent('onHistoryDisplay',
array(&$order->history) );
if(class_exists('JDispatcher'))
$this->dispatcher = JDispatcher::getInstance();
if($toolbar) {
hikamarket::setPageTitle(JText::sprintf('HIKAM_ORDER',
$order->order_number));
$this->toolbar = array(
'back' => array(
'icon' => 'back',
'fa' => 'fa-arrow-circle-left',
'name' => JText::_('HIKA_BACK'),
'url' => hikamarket::completeLink('order')
),
'order-status' => array(
'icon' => 'order-status',
'fa' => 'fa-tasks',
'name' => JText::_('HIKAM_EDIT_ORDER_STATUS'),
'url' =>
hikamarket::completeLink('order&task=status&cid='.(int)$order->order_id,
true),
'popup' => array('id' =>
'hikamarket_order_status_popup', 'width' => 640,
'height' => 300),
'linkattribs' => '
onclick="if(window.orderMgr.editOrderStatus) return
window.orderMgr.editOrderStatus(this); window.hikashop.openBox(this);
return false;"',
'pos' => 'right',
'acl' => hikamarket::acl('order/edit/general')
),
'email' => array(
'icon' => 'email',
'fa' => 'fa-envelope',
'name' => JText::_('HIKA_EMAIL'),
'url' =>
hikamarket::completeLink('order&task=mail&cid='.(int)$order->order_id,
true),
'popup' => array('id' =>
'hikamarket_order_mail_popup', 'width' => 800,
'height' => 600),
'pos' => 'right',
'acl' => hikamarket::acl('order/edit/mail')
),
'invoice' => array(
'icon' => 'invoice',
'fa' => 'fa-book',
'name' => JText::_('INVOICE'),
'url' =>
hikamarket::completeLink('order&task=invoice&type=full&cid='.(int)$order->order_id,
true),
'popup' => array('id' =>
'hikamarket_order_invoice_popup', 'width' => 640,
'height' => 480),
'pos' => 'right',
'acl' => hikamarket::acl('order/show/invoice')
),
'shipping-invoice' => array(
'icon' => 'shipping-invoice',
'fa' => 'fa-truck fa-shipping-fast',
'name' => JText::_('SHIPPING_INVOICE'),
'url' =>
hikamarket::completeLink('order&task=invoice&type=shipping&cid='.(int)$order->order_id,
true),
'popup' => array('id' =>
'hikamarket_order_shippinginvoice_popup', 'width' =>
640, 'height' => 480),
'pos' => 'right',
'acl' =>
hikamarket::acl('order/show/shippinginvoice')
)
);
}
}
public function show_vendor($tpl = null) {
$this->show($tpl, true);
}
public function invoice() {
$app = JFactory::getApplication();
$vendor = hikamarket::loadVendor(true, false);
$this->assignRef('vendor', $vendor);
$config = hikamarket::config();
$this->assignRef('config', $config);
$shopConfig = hikamarket::config(false);
$this->assignRef('shopConfig', $shopConfig);
$order_id = hikamarket::getCID('order_id');
$type = hikaInput::get()->getWord('type');
$this->assignRef('invoice_type', $type);
$nobutton = true;
$this->assignRef('nobutton', $nobutton);
$display_type = 'frontcomp';
$this->assignRef('display_type', $display_type);
$currencyClass = hikamarket::get('shop.class.currency');
$this->assignRef('currencyHelper', $currencyClass);
$orderClass = hikamarket::get('shop.class.order');
$order = $orderClass->loadFullOrder($order_id, true, false);
if(!empty($order) && $order->order_vendor_id !=
$vendor->vendor_id && ($vendor->vendor_id > 1 ||
($order->order_vendor_id > 1 &&
!hikamarket::acl('order/show/vendors')))) {
$order = null;
$app->enqueueMessage(JText::_('ORDER_ACCESS_FORBIDDEN'));
$app->redirect(hikamarket::completeLink('order'));
return false;
}
$fieldsClass = hikamarket::get('shop.class.field');
$this->assignRef('fieldsClass', $fieldsClass);
$fields = array();
if(hikashop_level(2)) {
$null = null;
if($this->invoice_type == 'shipping') {
$fields['item'] =
$fieldsClass->getFields('display:vendor_order_shipping_invoice=1',
$null, 'item');
$fields['order'] =
$fieldsClass->getFields('display:vendor_order_shipping_invoice=1',
$null, 'order');
} else {
$fields['item'] =
$fieldsClass->getFields('display:vendor_order_invoice=1',
$null, 'item');
$fields['order'] =
$fieldsClass->getFields('display:vendor_order_invoice=1',
$null, 'order');
}
}
$vendorFields = $vendor;
$extraFields = array(
'vendor' =>
$fieldsClass->getFields('frontcomp', $vendorFields,
'plg.hikamarket.vendor')
);
$this->assignRef('extraFields', $extraFields);
$this->assignRef('vendorFields', $vendorFields);
$store = str_replace(
array("\r\n","\n","\r"),
array('<br/>','<br/>','<br/>'),
$shopConfig->get('store_address','')
);
$this->assignRef('store_address', $store);
$this->assignRef('element', $order);
$this->assignRef('order', $order);
$this->assignRef('fields', $fields);
if(substr($order->order_shipping_method, 0, 7) ==
'market-')
$order->order_shipping_method =
substr($order->order_shipping_method, 7);
if(substr($order->order_payment_method, 0, 7) == 'market-')
$order->order_payment_method =
substr($order->order_payment_method, 7);
if(!empty($order->order_payment_id)) {
$pluginsPayment = hikamarket::get('shop.type.plugins');
$pluginsPayment->type = 'payment';
$this->assignRef('payment', $pluginsPayment);
}
if(!empty($order->order_shipping_id)) {
$pluginsShipping = hikamarket::get('shop.type.plugins');
$pluginsShipping->type = 'shipping';
$this->assignRef('shipping', $pluginsShipping);
if(empty($order->order_shipping_method)) {
$shippingClass = hikamarket::get('shop.class.shipping');
$this->assignRef('shippingClass', $shippingClass);
$shippings_data = array();
$shipping_ids = explode(';', $order->order_shipping_id);
foreach($shipping_ids as $key) {
$shipping_data = '';
list($k, $w) = explode('@', $key);
$shipping_id = $k;
if(isset($order->shippings[$shipping_id])) {
$shipping = $order->shippings[$shipping_id];
$shipping_data = $shipping->shipping_name;
} else {
foreach($order->products as $order_product) {
if($order_product->order_product_shipping_id == $key) {
if(!is_numeric($order_product->order_product_shipping_id)) {
$shipping_name =
$this->getShippingName($order_product->order_product_shipping_method,
$shipping_id);
$shipping_data = $shipping_name;
} else {
$shipping_method_data =
$this->shippingClass->get($shipping_id);
$shipping_data = $shipping_method_data->shipping_name;
}
break;
}
}
if(empty($shipping_data))
$shipping_data = '[ ' . $key . ' ]';
}
$shippings_data[] = $shipping_data;
}
$order->order_shipping_method = $shippings_data;
}
}
}
public function status() {
$vendor = hikamarket::loadVendor(true, false);
$this->assignRef('vendor', $vendor);
$config = hikamarket::config();
$this->assignRef('config', $config);
$shopConfig = hikamarket::config(false);
$this->assignRef('shopConfig', $shopConfig);
$this->loadRef(array(
'orderClass' => 'shop.class.order',
'order_status' => 'type.order_status',
));
$order_id = hikamarket::getCID('order_id');
$order = $this->orderClass->loadFullOrder($order_id, true, false);
$this->assignRef('order', $order);
$order_status_filters = array();
if($order->order_type == 'subsale' &&
(int)$order->order_vendor_paid > 0 &&
$config->get('filter_orderstatus_paid_order', 1)) {
$valid_order_statuses = explode(',',
$config->get('valid_order_statuses',
'confirmed,shipped'));
if(in_array($order->order_status, $valid_order_statuses)) {
$order_status_filters = $valid_order_statuses;
} else {
$order_status_filters = array($order->order_status);
}
}
$this->assignRef('order_status_filters',
$order_status_filters);
$this->toolbar = array(
'back' => array(
'icon' => 'back',
'fa' => 'fa-arrow-circle-left',
'name' => JText::_('HIKA_CANCEL'),
'url' => '#cancel',
'linkattribs' => 'onclick="return
window.parent.hikamarket.closeBox();"',
),
'save' => array(
'icon' => 'apply',
'fa' => 'fa-check-circle',
'url' => '#apply',
'linkattribs' => 'onclick="return
window.hikamarket.submitform(\'save\',\'adminForm\');"',
'name' => JText::_('HIKA_OK'), 'pos'
=> 'right'
)
);
}
public function showblock($tpl = null) {
$block = hikaInput::get()->getString('block', null);
$blocks = array(
'customer', 'edit_customer', 'details',
'general', 'history', 'products',
'coupon', 'edit_coupon', 'payment',
'edit_payment', 'shipping', 'edit_shipping',
'fields', 'edit_fields',
'product', 'edit_product',
'billingaddress', 'edit_billingaddress',
'shippingaddress', 'edit_shippingaddress',
'vendors',
);
if(!in_array($block, $blocks))
return false;
$translate_edit = array('coupon' => 'edit_coupon',
'payment' => 'edit_payment', 'shipping'
=> 'edit_shipping');
if(isset($translate_edit[$block]) &&
hikaInput::get()->getInt('blocksubmitted', 0) === 1)
$block = $translate_edit[$block];
$addresses_blocks = array(
'show' => array('billingaddress' =>
'billing', 'shippingaddress' =>
'shipping'),
'edit' => array('edit_billingaddress' =>
'billing', 'edit_shippingaddress' =>
'shipping'),
);
if(isset($addresses_blocks['show'][ $block ])) {
$this->block_show_address = $addresses_blocks['show'][
$block ];
$block = 'address';
}
if(isset($addresses_blocks['edit'][ $block ])) {
$this->block_edit_address = $addresses_blocks['edit'][
$block ];
$block = 'edit_address';
$this->edit_address_mode =
hikaInput::get()->getCmd('address_mode', '');
}
$this->show($tpl, false);
$this->ajax = true;
if(in_array($block, array('edit_product',
'product'))) {
$this->product = null;
$this->pid = hikaInput::get()->getInt('pid', 0);
if($this->pid == 0 &&
!hikamarket::acl('order/edit/products'))
return false;
foreach($this->order->products as $k => $v) {
if((int)$v->order_product_id == $this->pid)
$this->product = $v;
}
if($this->pid > 0 && empty($this->product))
return false;
}
if($block == 'edit_address') {
if($this->block_edit_address == 'billing') {
if(!empty($this->order->order_billing_address_id))
$this->order->billing_address =
$this->shopAddressClass->get($this->order->order_billing_address_id);
$f = (isset($this->order->billing_fields) ?
$this->order->billing_fields : $this->order->fields);
$this->fieldsClass->prepareFields($f,
$this->order->billing_address, 'address',
'checkout&task=state');
}
if($this->block_edit_address == 'shipping') {
if(!empty($this->order->order_shipping_address_id))
$this->order->shipping_address =
$this->shopAddressClass->get($this->order->order_shipping_address_id);
$f = (isset($this->order->shipping_fields) ?
$this->order->shipping_fields : $this->order->fields);
$this->fieldsClass->prepareFields($f,
$this->order->shipping_address, 'address',
'checkout&task=state');
}
}
$this->setLayout('show_block_' . $block);
echo $this->loadTemplate();
$orderClass = hikamarket::get('class.order');
$events = $orderClass->getEvents();
if(!empty($events)) {
echo "\r\n".'<script
type="text/javascript">'."\r\n";
foreach($events as $k => $v) {
echo 'window.Oby.fireAjax("'.$k.'",
'.json_encode($v).');' . "\r\n";
}
echo '</script>';
}
return false;
}
public function history() {
$app = JFactory::getApplication();
$db = JFactory::getDBO();
$order_id = hikaInput::get()->getInt('order_id', 0);
$cid = hikamarket::getCID('cid');
$query = 'SELECT * FROM ' .
hikamarket::table('shop.history') . ' WHERE history_id =
' . (int)$cid . ' AND history_order_id = ' .
(int)$order_id;
$db->setQuery($query, 0, 1);
$history = $db->loadObject();
$this->assignRef('history', $history);
if(empty($history))
return;
$histories = array( &$history );
JPluginHelper::importPlugin('hikashop');
JPluginHelper::importPlugin('hikamarket');
JPluginHelper::importPlugin('hikashoppayment');
JPluginHelper::importPlugin('hikashopshipping');
$app->triggerEvent('onHistoryDisplay', array(
&$histories ));
$history->user = null;
if(!empty($history->history_user_id) &&
(int)$history->history_user_id > 0) {
$userClass = hikamarket::get('shop.class.user');
$history->user = $userClass->get(
(int)$history->history_user_id );
unset($history->user->password);
}
if(!empty($history->history_data) &&
substr($history->history_data, 0, 1) == '{') {
$d = json_decode($history->history_data, true);
if(!empty($d))
$history->history_data = $d;
}
}
public function export_show() {
$app = JFactory::getApplication();
$db = JFactory::getDBO();
$ctrl = '';
$this->paramBase =
HIKAMARKET_COMPONENT.'.'.$this->getName().'.listing';
global $Itemid;
$url_itemid = '';
if(!empty($Itemid))
$url_itemid='&Itemid='.$Itemid;
$this->assignRef('Itemid', $Itemid);
$vendor = hikamarket::loadVendor(true, false);
$this->assignRef('vendor', $vendor);
$config = hikamarket::config();
$this->assignRef('config', $config);
$this->loadRef(array(
'toggleClass' => 'helper.toggle',
'currencyHelper' => 'shop.class.currency',
'paymentType' => 'shop.type.payment',
'orderStatusType' => 'type.order_status'
));
$pageInfo = new stdClass();
$pageInfo->search =
HikaStringHelper::strtolower($app->getUserStateFromRequest($this->paramBase.'.search',
'search', '', 'string'));
$pageInfo->filter = new stdClass();
$pageInfo->filter->filter_status =
$app->getUserStateFromRequest($this->paramBase.'.filter_status',
'filter_status', '', 'string');
$pageInfo->filter->filter_payment =
$app->getUserStateFromRequest($this->paramBase.'.filter_payment',
'filter_payment', '', 'string');
$pageInfo->filter->filter_startdate =
$app->getUserStateFromRequest($this->paramBase.'.filter_startdate',
'filter_startdate', '', 'string');
$pageInfo->filter->filter_enddate =
$app->getUserStateFromRequest($this->paramBase.'.filter_enddate',
'filter_enddate', '', 'string');
$this->assignRef('pageInfo', $pageInfo);
$this->toolbar = array(
array(
'icon' => 'back',
'fa' => 'fa-arrow-circle-left',
'name' => JText::_('HIKA_BACK'),
'url' => hikamarket::completeLink('order')
),
array(
'url' => '#export',
'fa' => 'fa-file-export',
'linkattribs' => 'onclick="return
window.hikamarket.submitform(\'export\',\'hikamarket_order_export_form\');"',
'icon' => 'report',
'name' => JText::_('HIKA_EXPORT'),
'pos' => 'right'
)
);
}
public function export() {
$app = JFactory::getApplication();
$db = JFactory::getDBO();
$ctrl = '';
$this->paramBase =
HIKAMARKET_COMPONENT.'.'.$this->getName().'.listing';
$config = hikamarket::config();
$this->assignRef('config', $config);
$shopConfig = hikamarket::config(false);
$this->assignRef('shopConfig', $shopConfig);
$vendor = hikamarket::loadVendor(true, false);
$this->assignRef('vendor', $vendor);
global $Itemid;
$url_itemid = '';
if(!empty($Itemid))
$url_itemid='&Itemid='.$Itemid;
$this->assignRef('Itemid', $Itemid);
$this->loadRef(array(
'export' => 'shop.helper.spreadsheet'
));
$pageInfo = new stdClass();
$pageInfo->search =
HikaStringHelper::strtolower($app->getUserStateFromRequest($this->paramBase.'.search',
'search', '', 'string'));
$pageInfo->filter = new stdClass();
$pageInfo->filter->filter_status =
$app->getUserStateFromRequest($this->paramBase.'.filter_status',
'filter_status', '', 'string');
$pageInfo->filter->filter_payment =
$app->getUserStateFromRequest($this->paramBase.'.filter_payment',
'filter_payment', '', 'string');
$pageInfo->filter->filter_startdate =
$app->getUserStateFromRequest($this->paramBase.'.filter_startdate',
'filter_startdate', '', 'string');
$pageInfo->filter->filter_enddate =
$app->getUserStateFromRequest($this->paramBase.'.filter_enddate',
'filter_enddate', '', 'string');
$this->assignRef('pageInfo', $pageInfo);
$formData = hikaInput::get()->get('data', array(),
'array');
$export_format =
strtolower(@$formData['export']['format']);
if(empty($export_format) || !in_array($export_format,
array('csv', 'xls'))) {
$export_format = 'csv';
}
$this->assignRef('export_format', $export_format);
$cfg = array(
'table' => 'shop.order',
'main_key' => 'order_id',
'order_sql_value' => 'hkorder.order_id'
);
$filters = array();
$searchMap = array(
'hkorder.order_id',
'hkorder.order_user_id',
'hkorder.order_full_price',
'hkorder.order_number',
'hkuser.user_email',
'juser.username',
'juser.name'
);
$orderingAccept = array('hkorder.','hkuser.');
$order = ' ORDER BY hkorder.order_id';
if(!empty($pageInfo->filter->filter_status))
$filters['order_status'] = 'hkorder.order_status = '
. $db->Quote($pageInfo->filter->filter_status);
if(!empty($pageInfo->filter->filter_payment))
$filters['order_payment_method'] =
'hkorder.order_payment_id = ' .
$db->Quote($pageInfo->filter->filter_payment);
if($vendor->vendor_id > 1) {
$filters['vendor_id'] = 'hkorder.order_vendor_id = '
. $vendor->vendor_id;
$filters['order_type'] = 'hkorder.order_type = ' .
$db->Quote('subsale');
} else {
$filters['vendor_id'] = '(hkorder.order_vendor_id = 0 OR
hkorder.order_vendor_id = 1)';
$filters['order_type'] = 'hkorder.order_type = ' .
$db->Quote('sale');
}
if(!empty($pageInfo->filter->filter_enddate)) {
$filter_end = explode('-',
$pageInfo->filter->filter_enddate);
$noHourDay = explode(' ', $filter_end[2]);
$filter_end[2] = $noHourDay[0];
$filter_end = mktime(23, 59, 59, $filter_end[1], $filter_end[2],
$filter_end[0]);
}
if(!empty($pageInfo->filter->filter_startdate)) {
$filter_start =
explode('-',$pageInfo->filter->filter_startdate);
$noHourDay = explode(' ',$filter_start[2]);
$filter_start[2] = $noHourDay[0];
$filter_start = mktime(0, 0, 0, $filter_start[1], $filter_start[2],
$filter_start[0]);
if(!empty($pageInfo->filter->filter_enddate)) {
$filters['order_created'] = 'hkorder.order_created >
'.$filter_start. ' AND hkorder.order_created <
'.$filter_end;
} else {
$filters['order_created'] = 'hkorder.order_created >
'.$filter_start;
}
} else if(!empty($pageInfo->filter->filter_enddate)) {
$filters['order_created'] = 'hkorder.order_created <
'.$filter_end;
}
$select = '';
$from = '';
JPluginHelper::importPlugin('hikashop');
JPluginHelper::importPlugin('hikamarket');
$app->triggerEvent('onBeforeOrderExportQuery',
array(&$select, &$from, &$filters, &$order,
&$searchMap, &$orderingAccept) );
$this->processFilters($filters, $order, $searchMap, $orderingAccept);
$query = 'FROM
'.hikamarket::table($cfg['table']).' AS hkorder
'.
'LEFT JOIN '.hikamarket::table('shop.user').'
AS hkuser ON hkorder.order_user_id = hkuser.user_id '.
'LEFT JOIN
'.hikamarket::table('joomla.users').' AS juser ON
hkuser.user_cms_id = juser.id '.
$from.' '.$filters.' '.$order;
if(!empty($select) && substr($select, 0, 1) != ',')
$select = ','.$select;
$db->setQuery('SELECT hkorder.*, hkuser.*, juser.name,
juser.username '.$select.$query);
$rows = $db->loadObjectList('order_id');
if(empty($rows)) {
$app->enqueueMessage(JText::_('HIKAM_NOTHING_TO_EXPORT'),
'error');
$app->redirect(hikamarket::completeLink('order&task=export'.$url_itemid,
false, true));
return false;
}
$addressIds = array();
foreach($rows as &$row) {
$row->products = array();
$addressIds[$row->order_shipping_address_id] =
$row->order_shipping_address_id;
$addressIds[$row->order_billing_address_id] =
$row->order_billing_address_id;
}
unset($row);
if(!empty($addressIds)) {
$db->setQuery('SELECT * FROM
'.hikamarket::table('shop.address').' WHERE address_id
IN ('.implode(',',$addressIds).')');
$addresses = $db->loadObjectList('address_id');
if(!empty($addresses)) {
$zoneNamekeys = array();
foreach($addresses as $address) {
$zoneNamekeys[$address->address_country] =
$db->Quote($address->address_country);
$zoneNamekeys[$address->address_state] =
$db->Quote($address->address_state);
}
if(!empty($zoneNamekeys)) {
$db->setQuery('SELECT zone_namekey,zone_name FROM
'.hikamarket::table('shop.zone').' WHERE zone_namekey
IN ('.implode(',',$zoneNamekeys).')');
$zones = $db->loadObjectList('zone_namekey');
if(!empty($zones)) {
foreach($addresses as &$address) {
if(!empty($zones[$address->address_country]))
$address->address_country =
$zones[$address->address_country]->zone_name;
if(!empty($zones[$address->address_state]))
$address->address_state =
$zones[$address->address_state]->zone_name;
}
unset($address);
}
}
$fields = array_keys(get_object_vars(reset($addresses)));
foreach($rows as $k => $row) {
if(!empty($addresses[$row->order_shipping_address_id])) {
foreach($addresses[$row->order_shipping_address_id] as $key =>
$val) {
$key = 'shipping_'.$key;
$rows[$k]->$key = $val;
}
} else {
foreach($fields as $field){
$key = 'shipping_'.$field;
$rows[$k]->$key = '';
}
}
if(!empty($addresses[$row->order_billing_address_id])) {
foreach($addresses[$row->order_billing_address_id] as $key =>
$val) {
$key = 'billing_'.$key;
$rows[$k]->$key = $val;
}
} else {
foreach($fields as $field) {
$key = 'billing_'.$field;
$rows[$k]->$key = '';
}
}
}
}
}
$orderIds = array_keys($rows);
$db->setQuery('SELECT * FROM
'.hikamarket::table('shop.order_product').' WHERE
order_id IN ('.implode(',', $orderIds).')');
$products = $db->loadObjectList();
foreach($products as $product) {
$order =& $rows[$product->order_id];
$order->products[] = $product;
if(!isset($order->order_full_tax)) {
$order->order_full_tax = 0;
}
$order->order_full_tax += round($product->order_product_quantity *
$product->order_product_tax, 2);
}
foreach($rows as $k => $row) {
$rows[$k]->order_full_tax += $row->order_shipping_tax -
$row->order_discount_tax;
}
$view =& $this;
$app->triggerEvent('onBeforeOrderExport', array(&$rows,
&$view) );
$this->assignRef('orders', $rows);
}
public function create() {
$app = JFactory::getApplication();
$db = JFactory::getDBO();
$ctrl = '';
$this->paramBase =
HIKAMARKET_COMPONENT.'.'.$this->getName().'.create';
global $Itemid;
$url_itemid = '';
if(!empty($Itemid))
$url_itemid = '&Itemid='.$Itemid;
$this->assignRef('Itemid', $Itemid);
$vendor = hikamarket::loadVendor(true, false);
$this->assignRef('vendor', $vendor);
$config = hikamarket::config();
$this->assignRef('config', $config);
$shopConfig = hikamarket::config(false);
$this->assignRef('shopConfig', $shopConfig);
$this->loadRef(array(
'currencyHelper' => 'shop.class.currency',
'nameboxType' => 'type.namebox',
'currencyType' => 'shop.type.currency',
));
$this->main_currency =
$shopConfig->get('main_currency');
hikamarket::setPageTitle(JText::_('HIKAM_ORDER_CREATION'));
$this->toolbar = array(
'back' => array(
'icon' => 'back',
'fa' => 'fa-arrow-circle-left',
'name' => JText::_('HIKA_BACK'),
'url' => hikamarket::completeLink('order')
),
'create' => array(
'icon' => 'new',
'fa' => 'fa-plus-circle',
'url' => '#create',
'linkattribs' => 'onclick="return
window.hikamarket.submitform(\'add\',\'hikamarket_order_create_form\');"',
'name' => JText::_('HIKAM_CREATE_ORDER'),
'pos' => 'right'
)
);
}
public function request() {
$app = JFactory::getApplication();
$db = JFactory::getDBO();
$ctrl = '';
$this->paramBase =
HIKAMARKET_COMPONENT.'.'.$this->getName().'.request';
global $Itemid;
$url_itemid = '';
if(!empty($Itemid))
$url_itemid = '&Itemid='.$Itemid;
$this->assignRef('Itemid', $Itemid);
$vendor = hikamarket::loadVendor(true, false);
$this->assignRef('vendor', $vendor);
$config = hikamarket::config();
$this->assignRef('config', $config);
$shopConfig = hikamarket::config(false);
$this->assignRef('shopConfig', $shopConfig);
$this->loadRef(array(
'vendorClass' => 'class.vendor',
'currencyHelper' => 'shop.class.currency'
));
$data = $this->vendorClass->getUnpaidOrders($vendor);
$this->assignRef('data', $data);
$total = new stdClass();
$total->count = 0;
$total->value = 0;
$total->currency = (int)$vendor->vendor_currency_id;
if(empty($total->currency))
$total->currency = hikashop_getCurrency();
foreach($data as $d) {
$total->count += (int)$d->count;
if($total->currency == $d->currency)
$total->value += hikamarket::toFloat( (int)$d->value );
else
$total->value +=
$this->currencyClass->convertUniquePrice((float)hikamarket::toFloat($d->value),
(int)$d->currency, (int)$total->currency);
}
$this->assignRef('total', $total);
$min_value =
hikamarket::toFloat($config->get('min_value_payment_request',
0.0));
if($min_value > 0.0) {
$main_currency = (int)$shopConfig->get('main_currency',
1);
if($total->currency != $main_currency) {
$min_value = $this->currencyClass->convertUniquePrice($min_value,
$main_currency, $total->currency);
}
}
$this->assignRef('min_value', $min_value);
hikamarket::setPageTitle(JText::_('HIKAM_PAYMENT_REQUEST'));
$this->toolbar = array(
array(
'icon' => 'back',
'fa' => 'fa-arrow-circle-left',
'name' => JText::_('HIKA_BACK'),
'url' => hikamarket::completeLink('order')
),
array(
'url' => '#request',
'fa' => 'fa-money fa-money-bill-alt',
'linkattribs' => 'onclick="return
window.hikamarket.submitform(\'request\',\'hikamarket_order_request_form\');"',
'icon' => 'pay',
'name' => JText::_('HIKAM_DO_PAYMENT_REQUEST'),
'pos' => 'right',
'display' => ($this->total->value != 0) &&
($this->total->value > $min_value)
)
);
}
public function mail() {
$order_id = hikashop_getCID('order_id');
$config = hikamarket::config();
$this->assignRef('config', $config);
$orderClass = hikamarket::get('shop.class.order');
$this->loadRef(array(
'radioType' => 'shop.type.radio',
));
$formData = hikaInput::get()->get('data', array(),
'array');
$params = array();
if(!empty($formData['mail']['params'])) {
foreach($formData['mail']['params'] as $k => $v)
{
if(is_numeric($v))
$v = (int)$v;
if(is_string($v))
$v = strip_tags($v);
$params[$k] = $v;
}
}
$order = $orderClass->get($order_id);
$order->url_itemid = '';
$orderClass->loadOrderNotification($order,
'market.user_order_notification', $params);
$this->assignRef('element', $order);
$order->mail->dst_email = $order->customer->user_email;
$order->mail->dst_name = (!empty($order->customer->name)) ?
$order->customer->name : '';
$this->toolbar = array(
'send' => array(
'icon' => 'email',
'fa' => 'fa-envelope',
'url' => '#send',
'linkattribs' => 'onclick="return
window.hikamarket.submitform(\'sendmail\',\'hikamarket_mail_form\');"',
'name' => JText::_('SEND_EMAIL'),
'pos' => 'right'
)
);
}
public function previewmail() {
$this->mail();
}
public function payments($tpl = null) {
$app = JFactory::getApplication();
$db = JFactory::getDBO();
$ctrl = '';
$this->paramBase =
HIKAMARKET_COMPONENT.'.'.$this->getName().'.payments';
global $Itemid;
$url_itemid = '';
if(!empty($Itemid))
$url_itemid='&Itemid='.$Itemid;
$this->assignRef('Itemid', $Itemid);
$vendor = hikamarket::loadVendor(true, false);
$this->assignRef('vendor', $vendor);
$config = hikamarket::config();
$this->assignRef('config', $config);
$shopConfig = hikamarket::config(false);
$this->assignRef('shopConfig', $shopConfig);
$this->loadRef(array(
'orderStatusType' => 'type.order_status',
'addressClass' => 'class.address',
'currencyHelper' => 'shop.class.currency',
'shopAddressClass' => 'shop.class.address',
));
$filterType =
$app->getUserStateFromRequest($this->paramBase.'.filter_type',
'filter_type', 0, 'int');
$cfg = array(
'table' => 'shop.order',
'main_key' => 'order_id',
'order_sql_value' => 'hkorder.order_id'
);
$pageInfo = $this->getPageInfo($cfg['order_sql_value'],
'desc');
$pageInfo->filter->filter_status =
$app->getUserStateFromRequest($this->paramBase.'.filter_status',
'filter_status', '', 'string');
$pageInfo->filter->filter_payment =
$app->getUserStateFromRequest($this->paramBase.'.filter_payment',
'filter_payment', '', 'string');
$pageInfo->filter->filter_user =
$app->getUserStateFromRequest($this->paramBase.'.filter_user',
'filter_user', '', 'string');
$filters = array();
$searchMap = array(
'hkorder.order_id',
'hkorder.order_number',
);
$orderingAccept = array('hkorder.');
$order = '';
$fields = array();
if(hikashop_level(2)) {
}
$this->assignRef('fields', $fields);
if(!empty($pageInfo->filter->filter_status))
$filters['order_status'] = 'hkorder.order_status = '
. $db->Quote($pageInfo->filter->filter_status);
if($vendor->vendor_id > 1) {
$filters['order_vendor_id'] = 'hkorder.order_vendor_id =
' . $vendor->vendor_id;
$filters['order_type'] = 'hkorder.order_type = ' .
$db->Quote('vendorpayment');
} else {
$filters['order_vendor_id'] = '(hkorder.order_vendor_id =
0 OR hkorder.order_vendor_id = 1)';
$filters['order_type'] = 'hkorder.order_type = ' .
$db->Quote('vendorpayment');
}
$extrafilters = array();
$joins = array();
JPluginHelper::importPlugin('hikashop');
JPluginHelper::importPlugin('hikamarket');
$app->triggerEvent('onBeforeVendorPaymentListing',
array($this->paramBase, &$extrafilters, &$pageInfo,
&$filters, &$joins, &$searchMap));
$this->assignRef('extrafilters', $extrafilters);
$this->processFilters($filters, $order, $searchMap, $orderingAccept);
$query = 'FROM
'.hikamarket::table($cfg['table']).' AS hkorder
'.
implode(' ', $joins).' '.$filters.$order;
$db->setQuery('SELECT hkorder.* '.$query,
(int)$pageInfo->limit->start, (int)$pageInfo->limit->value);
if(empty($pageInfo->search)) {
$query = 'FROM
'.hikamarket::table($cfg['table']).' AS hkorder
'.$filters;
}
$orders = $db->loadObjectList('order_id');
$db->setQuery('SELECT COUNT(*) '.$query);
$pageInfo->elements = new stdClass();
$pageInfo->elements->total = $db->loadResult();
$pageInfo->elements->page = count($orders);
$order_ids = array_keys($orders);
$transaction_stats = array();
$transaction_old_stats = array();
if(!empty($order_ids)) {
$query = 'SELECT hkot.order_transaction_paid AS order_id,
COUNT(hkot.order_transaction_id) AS counter FROM
'.hikamarket::table('order_transaction').' AS hkot
'.
'WHERE hkot.order_transaction_paid IN
('.implode(',', $order_ids).') GROUP BY
hkot.order_transaction_paid';
$db->setQuery($query);
$transaction_stats = $db->loadObjectList('order_id');
$query = 'SELECT hko.order_vendor_paid AS order_id,
COUNT(hko.order_id) AS counter FROM
'.hikamarket::table('shop.order').' AS hko '.
'WHERE hko.order_type =
'.$db->quote('subsale').' AND hko.order_vendor_paid
IN ('.implode(',', $order_ids).') GROUP BY
hko.order_vendor_paid';
$db->setQuery($query);
$transaction_old_stats = $db->loadObjectList('order_id');
}
foreach($orders as &$o) {
$o->counter = 0;
if(isset($transaction_stats[(int)$o->order_id]))
$o->counter +=
(int)$transaction_stats[(int)$o->order_id]->counter;
if(isset($transaction_old_stats[(int)$o->order_id]))
$o->counter +=
(int)$transaction_old_stats[(int)$o->order_id]->counter;
}
unset($o);
unset($transaction_stats);
unset($transaction_old_stats);
$this->assignRef('orders', $orders);
$text_asc = JText::_('ASCENDING');
$text_desc = JText::_('DESCENDING');
$ordering_values = array(
'hkorder.order_id' => JText::_('SORT_ID'),
'hkorder.order_created' =>
JText::_('SORT_CREATION'),
'hkorder.order_modified' =>
JText::_('SORT_MODIFICATION'),
'hkorder.order_full_price' =>
JText::_('SORT_PRICE'),
);
$this->ordering_values = array();
foreach($ordering_values as $k => $v) {
$this->ordering_values[$k.' asc'] = $v . ' '
.$text_asc;
$this->ordering_values[$k.' desc'] = $v . ' '
.$text_desc;
}
$this->full_ordering =
$this->pageInfo->filter->order->value . ' ' .
strtolower($this->pageInfo->filter->order->dir);
$this->toolbar = array(
'back' => array(
'icon' => 'back',
'fa' => 'fa-arrow-circle-left',
'name' => JText::_('HIKA_BACK'),
'url' => hikamarket::completeLink('vendor')
),
);
$this->getPagination();
$this->getOrdering('hkorder.ordering', !$filterType);
}
protected function getShippingName($shipping_method, $shipping_id,
$default_return = true) {
static $cache = array();
if(strpos($shipping_id, '@') !== false)
list($shipping_id, $warehouse) = explode('@', $shipping_id,
2);
$key = md5($shipping_method . '##' . $shipping_id);
if(isset($cache[$key]))
return $cache[$key];
$shipping_name = false;
if($default_return)
$shipping_name = $shipping_method . ' ' . $shipping_id;
if(strpos($shipping_id, '-') !== false) {
if(empty($this->shippingClass))
$this->shippingClass =
hikamarket::get('shop.class.shipping');
$shipping_ids = explode('-', $shipping_id, 2);
$shipping = $this->shippingClass->get($shipping_ids[0]);
if(!empty($shipping->shipping_params) &&
is_string($shipping->shipping_params))
$shipping->shipping_params =
hikamarket::unserialize($shipping->shipping_params);
if(empty($shipping_method) && !empty($shipping))
$shipping_method = $shipping->shipping_type;
$shippingMethod = hikamarket::import('hikashopshipping',
$shipping_method);
$methods = array();
if(!empty($shippingMethod))
$methods = $shippingMethod->shippingMethods($shipping);
if(isset($methods[$shipping_id]))
$shipping_name = $shipping->shipping_name.' -
'.$methods[$shipping_id];
$cache[$key] = $shipping_name;
} else if($shipping_method === null && !empty($shipping_id)) {
if(empty($this->shippingClass))
$this->shippingClass =
hikamarket::get('shop.class.shipping');
$shipping = $this->shippingClass->get($shipping_id);
$shipping_name = $shipping->shipping_name;
$cache[$key] = $shipping_name;
}
return $shipping_name;
}
public function show_general() {
$this->show($tpl, false);
}
public function show_history() {
$this->show($tpl, false);
}
public function edit_additional() {
$vendor = hikamarket::loadVendor(true, false);
if($vendor->vendor_id != 0 && $vendor->vendor_id != 1) {
return hikamarket::deny('order',
JText::sprintf('HIKAM_ACTION_DENY',
JText::_('HIKAM_ACT_ORDER_EDIT')));
}
$this->show($tpl, false);
if(hikashop_level(2)) {
$this->fields['order'] =
$this->fieldsClass->getFields('display:vendor_order_edit=1',
$order, 'order');
$null = null;
$this->fields['entry'] =
$this->fieldsClass->getFields('display:vendor_order_edit=1',
$null, 'entry');
$this->fields['item'] =
$this->fieldsClass->getFields('display:vendor_order_edit=1',
$null, 'item');
}
$this->toolbar = array(
array(
'url' => '#save',
'fa' => 'fa-save',
'linkattribs' => 'onclick="return
window.hikamarket.submitform(\'save\',\'hikamarket_order_additional_form\');"',
'icon' => 'save',
'name' => JText::_('HIKA_SAVE'), 'pos'
=> 'right'
)
);
$ratesType = hikamarket::get('type.rates');
$this->assignRef('ratesType',$ratesType);
$pluginsPayment = hikamarket::get('shop.type.plugins');
$pluginsPayment->type = 'payment';
$this->assignRef('paymentPlugins', $pluginsPayment);
$pluginsShipping = hikamarket::get('shop.type.plugins');
$pluginsShipping->type = 'shipping';
$this->assignRef('shippingPlugins', $pluginsShipping);
}
public function show_additional() {
$task = hikaInput::get()->getCmd('task', '');
if($task == 'save') {
$html = '<html><body><script
type="text/javascript">'."\r\n".
'window.parent.hikamarket.submitFct();'."\r\n".
'</script></body></html>';
die($html);
}
$this->show($tpl, false);
}
public function show_shipping_address() {
$address_type = 'shipping';
$this->assignRef('type', $address_type);
$this->show($tpl, false);
if($this->edit) {
if(!empty($this->order->order_shipping_address_id)) {
$addressClass = hikamarket::get('shop.class.address');
$this->order->shipping_address =
$addressClass->get($this->order->order_shipping_address_id);
}
$f = (isset($this->order->shipping_fields) ?
$this->order->shipping_fields : $this->order->fields);
$this->fieldsClass->prepareFields($f,
$this->order->shipping_address, 'address',
'checkout&task=state');
}
$this->setLayout('show_address');
}
public function show_billing_address() {
$address_type = 'billing';
$this->assignRef('type', $address_type);
$this->show($tpl, false);
if($this->edit) {
if(!empty($this->order->order_billing_address_id)) {
$addressClass = hikamarket::get('shop.class.address');
$this->order->billing_address =
$addressClass->get($this->order->order_billing_address_id);
}
$f = (isset($this->order->billing_fields) ?
$this->order->billing_fields : $this->order->fields);
$this->fieldsClass->prepareFields($f,
$this->order->billing_address, 'address',
'checkout&task=state');
}
$this->setLayout('show_address');
}
public function show_products() {
$task = hikaInput::get()->getCmd('task', '');
if($task == 'save') {
$html = '<html><body><script
type="text/javascript">'."\r\n".
'window.parent.hikamarket.submitFct();'."\r\n".
'</script></body></html>';
die($html);
}
$this->show($tpl, false);
}
public function edit_products() {
$vendor = hikamarket::loadVendor(true, false);
if($vendor->vendor_id != 0 && $vendor->vendor_id != 1) {
return hikamarket::deny('order',
JText::sprintf('HIKAM_ACTION_DENY',
JText::_('HIKAM_ACT_ORDER_EDIT')));
}
$this->assignRef('vendor', $vendor);
$config = hikamarket::config();
$this->assignRef('config', $config);
$shopConfig = hikamarket::config(false);
$this->assignRef('shopConfig', $shopConfig);
$db = JFactory::getDBO();
$productClass = hikamarket::get('shop.class.product');
$fieldsClass = hikamarket::get('shop.class.field');
$this->assignRef('fieldsClass', $fieldsClass);
$order_id = hikaInput::get()->getInt('order_id');
$order_product_id =
hikaInput::get()->getInt('order_product_id', 0);
$this->toolbar = array(
array(
'url' => '#save',
'fa' => 'fa-save',
'linkattribs' => 'onclick="return
window.hikamarket.submitform(\'save\',\'hikamarket_order_product_form\');"',
'icon' => 'save',
'name' => JText::_('HIKA_SAVE'), 'pos'
=> 'right'
)
);
$orderClass = hikamarket::get('shop.class.order');
$order = $orderClass->get($order_id);
$originalProduct = new stdClass();
if(!empty($order_product_id)) {
$orderProductClass =
hikamarket::get('shop.class.order_product');
$orderProduct = $orderProductClass->get($order_product_id);
if(empty($orderProduct) || $orderProduct->order_id != $order_id) {
$orderProduct = new stdClass();
$orderProduct->order_id = $order_id;
}
if(!empty($orderProduct->product_id)) {
$originalProduct =
$productClass->get($orderProduct->product_id);
}
} else {
$orderProduct = new stdClass();
$orderProduct->order_id = $order_id;
$product_id = hikaInput::get()->get('cid', array(),
'array');
if(!empty($product_id) &&
$productClass->getProducts($product_id)) {
$products = $productClass->products;
$product = $products[ (int)$product_id[0] ];
$product->options = array();
$originalProduct = $product;
$orderProduct->product_id = $product->product_id;
$orderProduct->order_product_name = $product->product_name;
$orderProduct->order_product_code = $product->product_code;
$orderProduct->order_product_quantity = 1;
$currencyClass = hikamarket::get('shop.class.currency');
$main_currency =
(int)$shopConfig->get('main_currency',1);
$discount_before_tax =
(int)$shopConfig->get('discount_before_tax',0);
$currency_id = $order->order_currency_id;
if($shopConfig->get('tax_zone_type', 'shipping')
== 'billing')
$zone_id = hikamarket::getZone('billing');
else
$zone_id = hikamarket::getZone('shipping');
$rows = array($product);
$currencyClass->getPrices($rows, $product_id, $currency_id,
$main_currency, $zone_id, $discount_before_tax);
$currencyClass->pricesSelection($rows[0]->prices, 0);
if(!empty($rows[0]->prices)) {
foreach($rows[0]->prices as $price) {
$orderProduct->order_product_price = $price->price_value;
$orderProduct->order_product_tax =
(@$price->price_value_with_tax - @$price->price_value);
$orderProduct->order_product_tax_info = @$price->taxes;
}
}
}
}
if(!empty($orderProduct->order_product_id) &&
(int)$orderProduct->order_product_id > 0) {
if(empty($orderProduct->order_product_parent_id)) {
$query = 'SELECT hkop.*, hko.order_vendor_id, hmv.* FROM ' .
hikamarket::table('shop.order_product') . ' as hkop '.
' INNER JOIN ' . hikamarket::table('shop.order').
' AS hko ON hkop.order_id = hko.order_id '.
' LEFT JOIN ' . hikamarket::table('vendor').
' AS hmv ON hmv.vendor_id = hko.order_vendor_id '.
' WHERE hko.order_type = \'subsale\' AND
order_product_parent_id = '. (int)$orderProduct->order_product_id
.
' ORDER BY hko.order_id DESC';
$db->setQuery($query);
$orderProduct->vendor_data = $db->loadObject();
}
} else if(!empty($orderProduct->product_id)) {
$query = 'SELECT p.product_vendor_id, pp.product_vendor_id AS
parent_vendor_id FROM
'.hikamarket::table('shop.product').' AS p '.
' LEFT JOIN
'.hikamarket::table('shop.product').' AS pp ON
p.product_parent_id = pp.product_id '.
' WHERE p.product_id = '. (int)$orderProduct->product_id;
$db->setQuery($query);
$productVendor = $db->loadObject();
$orderProduct->vendor_data = $productVendor;
$vendor_id = 0;
if(!empty($productVendor->product_vendor_id))
$vendor_id = (int)$productVendor->product_vendor_id;
else if(!empty($productVendor->parent_vendor_id))
$vendor_id = (int)$productVendor->parent_vendor_id;
$vendorObj = null;
if(!empty($vendor_id)) {
$vendorClass = hikamarket::get('class.vendor');
$vendorObj = $vendorClass->get($vendor_id);
}
$orderProduct->vendor = $vendorObj;
}
$this->assignRef('orderProduct', $orderProduct);
$this->assignRef('originalProduct', $originalProduct);
$ratesType = hikamarket::get('type.rates');
$this->assignRef('ratesType',$ratesType);
if(hikashop_level(2)) {
$null = null;
$this->fields['item'] =
$this->fieldsClass->getFields('display:vendor_order_edit=1',
$null, 'item','checkout&task=state');
}
}
public function customer_set() {
$users = hikaInput::get()->get('cid', array(),
'array');
$closePopup = hikaInput::get()->getInt('finalstep', 0);
if($closePopup) {
$formData = hikaInput::get()->get('data', array(),
'array');
$users = array(
(int)$formData['order']['order_user_id'] );
}
$rows = array();
$data = '';
$singleSelection = true;
//hikaInput::get()->getBool('single', false);
$order_id = hikaInput::get()->getInt('order_id', 0);
$elemStruct = array(
'user_email',
'user_cms_id',
'name',
'username',
'email'
);
$set_address = hikaInput::get()->getInt('set_user_address',
0);
if(!empty($users)) {
hikamarket::toInteger($users);
$db = JFactory::getDBO();
$query = 'SELECT a.*, b.* FROM
'.hikamarket::table('user','shop').' AS a
INNER JOIN '.hikamarket::table('users', false).' AS b
ON a.user_cms_id = b.id WHERE a.user_id IN
('.implode(',',$users).')';
$db->setQuery($query);
$rows = $db->loadObjectList();
if(!empty($rows)) {
$data = array();
foreach($rows as $v) {
$d = '{id:'.$v->user_id;
foreach($elemStruct as $s) {
if($s == 'id')
continue;
$d .= ','.$s.':\''.
str_replace('"','\'',$v->$s).'\'';
}
if($set_address && $singleSelection)
$d .=
',updates:[\'billing\',\'history\']';
$data[] = $d.'}';
}
if(!$singleSelection)
$data = '['.implode(',',$data).']';
else {
$data = $data[0];
$rows = $rows[0];
}
}
}
$this->assignRef('rows', $rows);
$this->assignRef('data', $data);
$this->assignRef('confirm', $confirm);
$this->assignRef('singleSelection', $singleSelection);
$this->assignRef('order_id', $order_id);
if($closePopup) {
$js =
'window.hikashop.ready(function(){window.top.hikamarket.submitBox('.$data.');});';
$doc = JFactory::getDocument();
$doc->addScriptDeclaration($js);
}
}
}
PK�[wtW�views/pluginmarket/index.htmlnu�[���<html><body></body></html>PK�[X�aܷ
�
views/pluginmarket/tmpl/add.phpnu�[���<?php
/**
* @package HikaMarket for Joomla!
* @version 3.1.1
* @author Obsidev S.A.R.L.
* @copyright (C) 2011-2020 OBSIDEV. All rights reserved.
* @license GNU/GPLv3 http://www.gnu.org/licenses/gpl-3.0.html
*/
defined('_JEXEC') or die('Restricted access');
?><form action="<?php echo
hikamarket::completeLink('plugin&task=add&plugin_type='.$this->plugin_type);
?>" method="post" name="hikamarket_form"
id="hikamarket_form">
<div class="hk-row-fluid">
<div class="hkc-md-7 hikam_search_zone">
<?php
echo $this->loadHkLayout('search', array(
'id' => 'hikamarket_plugins_listing_search',
));
?>
</div>
<div class="hkc-md-5">
<div class="expand-filters"
style="width:auto;float:right">
<?php
if($this->plugin_type == 'payment') {
$values = array(
JHTML::_('select.option', 0, JText::_('HIKA_ALL'))
);
foreach($this->currencies as $currency) {
$values[] = JHTML::_('select.option',
(int)$currency->currency_id, $currency->currency_symbol.'
'.$currency->currency_code);
}
echo JHTML::_('select.genericlist', $values,
'filter_currency',
'onchange="this.form.submit();"', 'value',
'text', @$this->pageInfo->filter->currency);
}
if($this->vendor->vendor_id <= 1) {
$values = array(
JHTML::_('select.option', -1,
JText::_('HIKA_ALL')),
JHTML::_('select.option', 1,
JText::_('HIKA_PUBLISHED')),
JHTML::_('select.option', 0,
JText::_('HIKA_UNPUBLISHED'))
);
if(!isset($this->pageInfo->filter->publish))
$this->pageInfo->filter->publish = -1;
echo JHTML::_('select.genericlist', $values,
'filter_publish',
'onchange="this.form.submit();"', 'value',
'text', $this->pageInfo->filter->publish);
}
?>
</div>
<div style="clear:both"></div>
</div>
</div>
</form>
<table class="adminlist table table-striped table-hover"
cellpadding="1">
<thead>
<tr>
<th class="title titlenum"><?php
echo JText::_('HIKA_NUM');
?></th>
<th class="title"><?php
echo JText::_('HIKA_NAME');
?></th>
<?php
if(!empty($this->currencies)) {
foreach($this->currencies as $currency) {
?> <th class="title"><?php
echo @$currency->currency_code;
?></th>
<?php
}
}
if($this->vendor->vendor_id <= 1) {
?>
<th class="title titletoggle"><?php
echo JText::_('HIKA_ENABLED');
?></th>
<?php } ?>
</tr>
</thead>
<tbody>
<?php
$k = 0;
foreach($this->plugins as $i => &$row) {
?>
<tr class="row<?php echo $k; ?>">
<td align="center"><?php
echo $i+1
?></td>
<td>
<a href="<?php echo
hikamarket::completeLink('plugin&task=edit&name='.$row->element.'&plugin_type='.$this->plugin_type.'&subtask=edit');?>"><?php
$translation_key =
'PLG_HIKASHOP'.strtoupper($this->plugin_type).'_'.strtoupper($row->element);
if($translation_key != JText::_($translation_key))
echo JText::_($translation_key);
else
echo $row->name;
?></a>
</td>
<?php
if(!empty($this->currencies)) {
foreach($this->currencies as $currency) {
?> <td align="center"><?php
if(empty($row->accepted_currencies) ||
in_array($currency->currency_code, $row->accepted_currencies))
echo $this->toggleClass->display(null, 1);
else
echo $this->toggleClass->display(null, 0);
?></td>
<?php
}
}
if($this->vendor->vendor_id <= 1) {
?>
<td align="center"><?php
echo $this->toggleClass->display('',
$row->published);
?></td>
</tr>
<?php
}
$k = 1-$k;
}
?>
</tbody>
</table>
PK�[(�����
views/pluginmarket/tmpl/form.phpnu�[���<?php
/**
* @package HikaMarket for Joomla!
* @version 3.1.1
* @author Obsidev S.A.R.L.
* @copyright (C) 2011-2020 OBSIDEV. All rights reserved.
* @license GNU/GPLv3 http://www.gnu.org/licenses/gpl-3.0.html
*/
defined('_JEXEC') or die('Restricted access');
?><script type="text/javascript">
window.pluginMgr = {};
window.pluginMgr.cpt = {};
</script>
<form action="<?php echo
hikamarket::completeLink('plugin&plugin_type='.$this->type);?>"
method="post" name="hikamarket_form"
id="hikamarket_plugin_form">
<h1><?php
echo JText::_('HIKA_PLUGIN');
$key =
'PLG_HIKASHOP'.strtoupper($this->type).'_'.strtoupper($this->name);
if(JText::_($key) != $key)
echo JText::_($key);
else
echo $this->name;
?></h1>
<h3><?php echo JText::_('MAIN_INFORMATION');
?></h3>
<?php
if(!empty($this->main_form)) {
echo $this->processConfig($this->main_form, $this->type,
'', @$this->element, '', true);
}
if(!empty($this->content) &&
hikamarket::acl($this->type.'plugin/edit/specific')) {
?>
<h3><?php echo
JText::_('PLUGIN_SPECIFIC_CONFIGURATION'); ?></h3>
<?php if(!empty($this->pluginTemplateMode) &&
$this->pluginTemplateMode == 'html') { ?>
<table class="hikam_listing table"><?php
echo $this->content;
?></table>
<?php } else
echo $this->content;
}
if(!empty($this->extra_blocks)) {
foreach($this->extra_blocks as $extra_block) {
if(is_string($extra_block))
echo $extra_block."\r\n";
else
echo $this->processConfig($extra_block, $this->type,
'', @$this->element, '', true);
}
}
if(!empty($this->restriction_form)) {
$values = array();
foreach($this->restriction_form as $key => $r) {
if(empty($r['category']))
continue;
$c = $r['category'];
if(empty($values[$c]))
$values[$c] = JHTML::_('select.option', $c,
JText::_('HIKA_RESTRICTION_'.strtoupper($c)));
if($values[$c]->disable == false &&
(!isset($r['category_check']) ||
!empty($r['category_check']))) {
$l = '';
$data = $this->getParamsData(@$this->element, $key,
$this->type, '', $l);
if(!empty($data) && (empty($r['empty_value']) ||
$r['empty_value'] != $data))
$values[$c]->disable = true;
}
}
foreach($this->restriction_form as &$r) {
if(empty($r['category']))
continue;
$c = $r['category'];
if(isset($values[$c]) && $values[$c]->disable == false)
$r['hidden'] = true;
}
unset($r);
?>
<h3><?php echo JText::_('HIKA_RESTRICTIONS');
?></h3>
<?php
if(!empty($values)) {
?>
<div id="plugin_add_restriction_zone"
style="display:none;"><?php
echo JHTML::_('select.genericlist', $values, '',
'id="plugin_add_restriction_value"', 'value',
'text', '');
?><button class="hikabtn hikabtn-danger"
onclick="return window.pluginMgr.cancelRestriction();"><i
class="far fa-times-circle"></i> <?php echo
JText::_('HIKA_CANCEL'); ?></button></div>
<button class="hikabtn hikabtn-default" onclick="return
window.pluginMgr.addRestriction();"><i class="fas
fa-plus"></i> <?php echo
JText::_('HIKA_ADD_RESTRICTION'); ?></button>
<?php
}
echo $this->processConfig($this->restriction_form, $this->type,
'', @$this->element,
'hikamarket_'.$this->type.'_restrictions', true);
}
?>
<input type="hidden" name="cid"
value="<?php echo
@$this->element->{$this->type.'_id'}; ?>"/>
<input type="hidden" name="name"
value="<?php echo $this->escape($this->plugin_name);
?>"/>
<input type="hidden" name="plugin_type"
value="<?php echo $this->escape($this->type);
?>"/>
<input type="hidden" name="option"
value="<?php echo HIKAMARKET_COMPONENT; ?>"/>
<input type="hidden" name="task"
value="show"/>
<input type="hidden" name="ctrl"
value="plugin"/>
<?php echo JHTML::_('form.token'); ?>
</form>
<script type="text/javascript">
window.hikashop.ready(function(){
window.hikamarket.dlTitle('hikamarket_plugin_form'); });
window.pluginMgr.addRestriction = function() {
var d = document, el =
d.getElementById('plugin_add_restriction_zone');
if(!el) return false;
if(el.style.display == 'none') {
el.style.display = 'inline';
return false;
}
var sel = d.getElementById('plugin_add_restriction_value');
if(!sel) return false;
var v = sel.value, i = sel.selectedIndex, key = 'hikamarket_<?php
echo $this->type; ?>_cat_' + v, e = null,
container = d.getElementById('hikamarket_<?php echo
$this->type; ?>_restrictions');
container.querySelectorAll('[data-hkm-key="'+key+'"]').forEach(function(el){
el.style.display = '';
});
sel.options[i].disabled = 'disabled';
if(typeof(jQuery) != 'undefined' &&
typeof(jQuery().chosen) == 'function')
jQuery(sel).trigger('liszt:updated');
el.style.display = 'none';
return false;
};
window.pluginMgr.cancelRestriction = function() {
var d = document, el =
d.getElementById('plugin_add_restriction_zone');
if(el) el.style.display = 'none';
return false;
};
window.pluginMgr.links = <?php if(!empty($this->displayTriggers)) {
echo json_encode($this->displayTriggers); } else { echo '{}';
} ?>;
window.Oby.registerAjax('field_changed', function(params) {
if(!!window.pluginMgr.links || !window.pluginMgr.links[params.key])
return;
var d = document, value = null;
if(params.obj && params.obj.value)
value = params.obj.value;
if(value === null)
return;
var tTitle = null, tValue = null,
items = window.pluginMgr.links[params.key];
for(var k in items) {
if(!items.hasOwnProperty(k))
continue;
tTitle = d.getElementById(items[k][0].replace('{TYPE}',
'title'));
tValue = d.getElementById(items[k][0].replace('{TYPE}',
'value'));
if(items[k][1].indexOf(value) < 0) {
tTitle.style.display = 'none';
tValue.style.display = 'none';
} else {
tTitle.style.display = '';
tValue.style.display = '';
}
}
});
<?php if(!empty($this->hiddenElements)) { ?>
window.hikashop.ready(function(){
var d = document, el = null,
hide = <?php echo json_encode($this->hiddenElements); ?>;
for(var i = hide.length - 1; i >= 0; i--) {
el = d.getElementById(hide[i]);
if(el) el.style.display = 'none';
}
});
<?php } ?>
</script>
PK�[wtW�"views/pluginmarket/tmpl/index.htmlnu�[���<html><body></body></html>PK�[J���w&w&#views/pluginmarket/tmpl/listing.phpnu�[���<?php
/**
* @package HikaMarket for Joomla!
* @version 3.1.1
* @author Obsidev S.A.R.L.
* @copyright (C) 2011-2020 OBSIDEV. All rights reserved.
* @license GNU/GPLv3 http://www.gnu.org/licenses/gpl-3.0.html
*/
defined('_JEXEC') or die('Restricted access');
?><div id="hikamarket_plugin_listing">
<form action="<?php echo
hikamarket::completeLink('plugin&plugin_type='.$this->type.'&task=listing');
?>" method="post" id="adminForm"
name="adminForm">
<div class="hk-row-fluid">
<div class="hkc-md-12">
<?php
echo $this->loadHkLayout('search', array(
'id' => 'hikamarket_plugin_listing_search',
));
?>
<div class="hikam_sort_zone"><?php
if(!empty($this->ordering_values))
echo JHTML::_('select.genericlist',
$this->ordering_values, 'filter_fullorder',
'onchange="this.form.submit();"', 'value',
'text', $this->full_ordering);
?></div>
</div>
<div class="hkc-md-12">
<div class="expand-filters">
<?php
$status_types = array(
-1 => JText::_('HIKA_ALL_STATUSES'),
1 => JText::_('HIKA_PUBLISHED'),
0 => JText::_('HIKA_UNPUBLISHED'),
);
echo JHTML::_('select.genericlist', $status_types,
'filter_published', 'data-search-reset="-1"
onchange="this.form.submit();"', 'value',
'text', $this->pageInfo->filter->published);
?>
</div>
<div style="clear:both"></div>
</div>
</div>
<div id="hikam_<?php echo $this->type;
?>_main_listing">
<?php
$p_id = $this->type.'_id';
$p_name = $this->type.'_name';
$p_order = $this->type.'_ordering';
$p_published = $this->type.'_published';
$p_type = $this->type.'_type';
$publish_type = 'plugin';
if(in_array($this->type, array('payment',
'shipping')))
$publish_type = $this->type;
$publish_content = '<i class="fas fa-check"></i>
' . JText::_('HIKA_PUBLISHED');
$unpublish_content = '<i class="fas
fa-times"></i> ' .
JText::_('HIKA_UNPUBLISHED');
$icon = '<i class="fas
fa-puzzle-piece"></i>';
if($this->type == 'payment')
$icon = '<i class="far
fa-credit-card"></i>';
if($this->type == 'shipping')
$icon = '<i class="fas
fa-shipping-fast"></i>';
$restriction_icons = array(
'min_volume' => '<i class="fas fa-box
hk-icon-green"></i>',
'max_volume' => '<i class="fas fa-box
hk-icon-orange"></i>',
'min_weight' => '<i class="fas fa-weight-hanging
hk-icon-green"></i>',
'max_weight' => '<i class="fas fa-weight-hanging
hk-icon-orange"></i>',
'min_price' => '<i class="far fa-money-bill-alt
hk-icon-green"></i>',
'max_price' => '<i class="far fa-money-bill-alt
hk-icon-orange"></i>',
'zone' => '<i class="fas fa-map-marker-alt
hk-icon-blue"></i>',
'vendor' => '<i class="fas fa-user-tie
hk-icon-blue"></i>',
);
foreach($this->plugins as $plugin) {
$id = 'market_plugin_' . $this->type.'_' .
$plugin->$p_id;
$published_id = $this->type.'_published-' .
$plugin->$p_id;
$url = ($this->manage) ?
hikamarket::completeLink('plugin&plugin_type='.$this->type.'&task=edit&name='.
$plugin->$p_type
.'&cid='.$plugin->$p_id.$this->url_itemid) :
'#';
$extra_classes = '';
?>
<div class="hk-card hk-card-default hk-card-plugin
hk-card-<?php echo $this->type; ?><?php echo $extra_classes;
?>" data-hkm-plugin="<?php echo (int)$plugin->$p_id;
?>">
<div class="hk-card-header">
<a class="hk-row-fluid" href="<?php echo $url;
?>">
<div class="hkc-sm-6 hkm_plugin_name"><?php
if(!empty($plugin->$p_name))
echo $plugin->$p_name;
else
echo '<em>' . JText::_('HIKA_NONE') .
'</em>';
?></div>
<div class="hkc-sm-6 hkm_plugin_type"><?php
if(!empty($currentPlugin))
echo $currentPlugin->name;
else
echo $plugin->$p_type;
?></div>
</a>
</div>
<div class="hk-card-body">
<div class="hk-row-fluid">
<div class="hkc-sm-7 hkm_plugin_details">
<?php
if(!empty($this->listing_columns)) {
foreach($this->listing_columns as $key => $column) {
if(!isset($column['col']) ||
empty($plugin->{$column['col']}))
continue;
$data = $plugin->{$column['col']};
if($key == 'price') {
?>
<div class="hkm_plugin_price">
<i class="fa fa-credit-card hk-icon-blue"></i>
<?php
if(!empty($data['fixed']))
echo $data['fixed'];
if(!empty($data['fixed']) &&
!empty($data['percent']))
echo ' + ';
if(!empty($data['percent']))
echo $data['percent'] . '%';
?></div>
<?php
continue;
}
if($key == 'restriction') {
foreach($data as $k => $v) {
?>
<div class="hkm_plugin_restriction_<?php echo $k;
?>">
<?php if(isset($restriction_icons[$k])) echo
$restriction_icons[$k]; ?>
<strong><?php echo JText::_($v['name']);
?></strong> - <?php echo $v['value']; ?>
</div>
<?php
}
continue;
}
?> <div class="hkm_plugin_detail_<?php echo $key;
?>">
<?php if(isset($restriction_icons[$key])) echo
$restriction_icons[$key]; ?>
<strong><?php echo JText::_($column['name']);
?></strong> <?php
if(is_string($data))
echo $data;
else
echo implode('<br/>', $data);
?></div>
<?php
}
}
?>
</div>
<div class="hkc-sm-3 hkm_plugin_publish">
<?php
if($this->plugin_action_publish) {
?>
<a class="hikabtn hikabtn-<?php echo
($plugin->$p_published) ? 'success' : 'danger';
?> hkm_publish_button" data-toggle-state="<?php echo
$plugin->$p_published ? 1 : 0; ?>" data-toggle-id="<?php
echo $plugin->$p_id; ?>" onclick="return
window.localPage.togglePlugin(this);"><?php
echo ($plugin->$p_published) ? $publish_content :
$unpublish_content;
?></a>
<?php
} else {
?>
<span class="hkm_publish_state hk-label hk-label-<?php echo
($plugin->$p_published) ? 'green' : 'red';
?>"><?php echo ($plugin->$p_published) ? $publish_content
: $unpublish_content; ?></span>
<?php
}
?>
</div>
<div class="hkc-sm-2 hkm_plugin_actions"><?php
$data = array(
'details' => array(
'name' => '<i class="fas
fa-search"></i> ' . JText::_('HIKA_DETAILS',
true),
'link' => $url
)
);
if($this->plugin_action_delete) {
$data['delete'] = array(
'name' => '<i class="fas
fa-trash"></i> ' . JText::_('HIKA_DELETE',
true),
'link' => '#delete',
'click' => 'return
window.localPage.deletePlugin('.(int)$plugin->$p_id.',
\''.urlencode(strip_tags($plugin->$p_name)).'\');'
);
}
if(!empty($data)) {
echo $this->dropdownHelper->display(
JText::_('HIKA_ACTIONS'),
$data,
array('type' => '', 'class' =>
'hikabtn-primary', 'right' => true, 'up'
=> false)
);
}
?></div>
</div>
</div>
</div>
<?php
}
?>
<div class="hikamarket_plugins_footer">
<div class="hikamarket_pagination">
<?php echo $this->pagination->getListFooter(); ?>
<?php echo $this->pagination->getResultsCounter(); ?>
</div>
</div>
</div>
<input type="hidden" name="option"
value="<?php echo HIKAMARKET_COMPONENT; ?>" />
<input type="hidden" name="task"
value="listing" />
<input type="hidden" name="plugin_type"
value="<?php echo $this->escape($this->type); ?>"
/>
<input type="hidden" name="ctrl"
value="<?php echo hikaInput::get()->getCmd('ctrl');
?>" />
<input type="hidden" name="Itemid"
value="<?php echo $this->Itemid; ?>" />
<?php echo JHTML::_('form.token'); ?>
</form>
</div>
<?php if($this->plugin_action_publish) { ?>
<script type="text/javascript">
if(!window.localPage) window.localPage = {};
window.localPage.togglePlugin = function(el) {
var w=window, d=document, o=w.Oby,
state = el.getAttribute('data-toggle-state'),
id = el.getAttribute('data-toggle-id');
if(!id) return false;
var url="<?php echo
hikamarket::completeLink('toggle','ajax',true);
?>",
v = (state == 0) ? 1 : 0,
data=o.encodeFormData({"task":"<?php echo
$publish_type;
?>_published-"+id,"value":v,"table":"<?php
echo $publish_type; ?>","<?php echo
hikamarket::getFormToken(); ?>":1});
el.disabled = true;
if(state == 1) el.innerHTML = "<i class=\"fas fa-spinner
fa-pulse\"></i> <?php echo
JText::_('HIKA_UNPUBLISHING', true); ?>";
else el.innerHTML = "<i class=\"fas fa-spinner
fa-pulse\"></i> <?php echo
JText::_('HIKA_PUBLISHING', true); ?>";
el.classList.remove("hikabtn-success",
"hikabtn-danger");
o.xRequest(url,{mode:"POST",data:data},function(x,p){
if(x.responseText && x.responseText == '1')
state = v;
el.disabled = false;
el.setAttribute('data-toggle-state', v);
if(state == 1) el.innerHTML = "<i class=\"fas
fa-check\"></i> <?php echo
JText::_('HIKA_PUBLISHED', true); ?>";
else el.innerHTML = "<i class=\"fas
fa-times\"></i> <?php echo
JText::_('HIKA_UNPUBLISHED', true); ?>";
el.classList.add( state ? "hikabtn-success" :
"hikabtn-danger" );
});
};
</script>
<?php } ?>
<?php if($this->plugin_action_delete) { ?>
<script type="text/javascript">
if(!window.localPage) window.localPage = {};
window.localPage.deletePlugin = function(id, name) {
var confirmMsg = "<?php echo
JText::_('CONFIRM_DELETE_PLUGIN_X'); ?>";
if(!confirm(confirmMsg.replace('{PLUGIN}', decodeURI(name))))
return false;
var f = document.forms['hikamarket_delete_plugin_form'];
if(!f) return false;
f.plugin_id.value = id;
f.submit();
return false;
};
</script>
<form action="<?php echo
hikamarket::completeLink('plugin&task=delete'); ?>"
method="post" name="hikamarket_delete_plugin_form"
id="hikamarket_delete_plugin_form">
<input type="hidden" name="option"
value="<?php echo HIKAMARKET_COMPONENT; ?>" />
<input type="hidden" name="task"
value="delete" />
<input type="hidden" name="ctrl"
value="<?php echo hikaInput::get()->getCmd('ctrl');
?>" />
<input type="hidden" name="Itemid"
value="<?php echo $this->Itemid; ?>" />
<input type="hidden" name="plugin_type"
value="<?php echo $this->escape($this->type); ?>"
/>
<input type="hidden" name="plugin_id"
value="0" />
<?php echo JHTML::_('form.token'); ?>
</form>
<?php }
PK�[�&����#views/pluginmarket/tmpl/listing.xmlnu�[���<?xml
version="1.0" encoding="utf-8"?>
<metadata>
<state>
<name>Vendors Plugin listing</name>
<params addpath="/components/com_hikamarket/params">
<param name="plugin_type" type="radio"
default="payment" label="Select a plugin type"
description="Select here the plugin type you want to list for the
current link">
<option value="payment">Payment</option>
<option value="shipping">Shipping</option>
</param>
<param name="options" type="selectoptions"
default="module" label="options"
description="HikaMarket options" />
</params>
</state>
<layout
title="COM_HIKAMARKET_VENDORMARKET_VIEW_DEFAULT_TITLE">
<message></message>
</layout>
<fields name="params"
addfieldpath="/components/com_hikamarket/fields">
<fieldset name="basic" label="HikaMarket
Options">
<field id="plugin_type" name="plugin_type"
type="radio" default="payment" label="Select a
plugin type" description="Select here the plugin type you want to
list for the current link">
<option value="payment">Payment</option>
<option value="shipping">Shipping</option>
</field>
<field id="options" name="options"
type="selectoptions" label="options"
description="HikaMarket options" />
</fieldset>
</fields>
</metadata>PK�[�`�
�� views/pluginmarket/view.html.phpnu�[���<?php
/**
* @package HikaMarket for Joomla!
* @version 3.1.1
* @author Obsidev S.A.R.L.
* @copyright (C) 2011-2020 OBSIDEV. All rights reserved.
* @license GNU/GPLv3 http://www.gnu.org/licenses/gpl-3.0.html
*/
defined('_JEXEC') or die('Restricted access');
?><?php
class pluginmarketViewpluginmarket extends hikamarketView {
protected $ctrl = 'plugin';
protected $icon = 'plugin';
protected $triggerView = true;
public function display($tpl = null, $params = array()) {
$this->params =& $params;
$fct = $this->getLayout();
if(method_exists($this, $fct)) {
if($this->$fct() === false)
return;
}
parent::display($tpl);
}
public function listing($tpl = null) {
$app = JFactory::getApplication();
$db = JFactory::getDBO();
$ctrl = '';
$type = hikaInput::get()->getCmd('plugin_type',
'payment');
if(!in_array($type, array('payment', 'shipping',
'generic')))
return false;
$this->assignRef('type', $type);
$this->paramBase =
HIKAMARKET_COMPONENT.'.'.$this->getName().'.'.$type.'.listing';
$vendor = hikamarket::loadVendor(true, false);
$this->assignRef('vendor', $vendor);
$config = hikamarket::config();
$this->assignRef('config', $config);
$this->loadRef(array(
'toggleClass' => 'helper.toggle',
'currencyClass' => 'shop.class.currency',
'zoneClass' => 'shop.class.zone',
'dropdownHelper' => 'shop.helper.dropdown',
));
$manage = hikamarket::acl($type.'plugin/edit');
$this->assignRef('manage', $manage);
$plugin_action_publish =
hikamarket::acl($type.'plugin/edit/published');
$plugin_action_delete =
hikamarket::acl($type.'plugin/delete');
$plugin_actions = $plugin_action_publish || $plugin_action_delete;
$this->assignRef('plugin_action_publish',
$plugin_action_publish);
$this->assignRef('plugin_action_delete',
$plugin_action_delete);
$this->assignRef('plugin_actions', $plugin_actions);
global $Itemid;
$url_itemid = '';
if(!empty($Itemid))
$url_itemid = '&Itemid='.$Itemid;
$this->Itemid = $Itemid;
$this->assignRef('url_itemid', $url_itemid);
$plugin_configs = array(
'payment' => array(
'table' => 'shop.payment',
'main_key' => 'payment_id',
'order_sql_value' => 'plugin.payment_id'
),
'shipping' => array(
'table' => 'shop.shipping',
'main_key' => 'shipping_id',
'order_sql_value' => 'plugin.shipping_id'
),
'generic' => array(
'table' => 'shop.plugin',
'main_key' => 'plugin_id',
'order_sql_value' => 'plugin.plugin_id'
),
);
$cfg = $plugin_configs[$type];
$default_sort_dir = 'asc';
$listing_filters = array(
'vendors' => -1,
'published' => -1,
);
$pageInfo = $this->getPageInfo($cfg['order_sql_value'],
$default_sort_dir, $listing_filters);
$filters = array();
$plugin_searchMaps = array(
'payment' => array(
'plugin.payment_type',
'plugin.payment_name',
'plugin.payment_id'
),
'shipping' => array(
'plugin.shipping_type',
'plugin.shipping_name',
'plugin.shipping_id'
),
'generic' => array(
'plugin.plugin_type',
'plugin.plugin_name',
'plugin.plugin_id'
),
);
$searchMap = $plugin_searchMaps[$type];
$order = '';
$filter_type = ($type == 'generic') ? 'plugin' :
$type;
if($vendor->vendor_id > 1) {
$filters['vendor'] =
'plugin.'.$filter_type.'_vendor_id = ' .
(int)$vendor->vendor_id;
} else {
$vendorType = hikamarket::get('type.filter_vendor');
$this->assignRef('vendorType', $vendorType);
if($pageInfo->filter->vendors >= 0) {
if($pageInfo->filter->vendors > 1)
$filters['vendor'] =
'plugin.'.$filter_type.'_vendor_id =
'.(int)$pageInfo->filter->vendors;
else
$filters['vendor'] =
'plugin.'.$filter_type.'_vendor_id <= 1';
}
}
if($pageInfo->filter->published >= 0) {
$filters['published'] =
'plugin.'.$filter_type.'_published = ' .
($pageInfo->filter->published ? '1' : '0');
}
$this->processFilters($filters, $order, $searchMap);
$extrafilters = null;
JPluginHelper::importPlugin('hikashop');
if(in_array($type, array('shipping', 'payment')))
JPluginHelper::importPlugin('hikashop'.$type);
$view =& $this;
$app->triggerEvent('onBeforeHikaPluginConfigurationListing',
array($type, &$filters, &$order, &$searchMap,
&$extrafilters, &$view));
$query = 'FROM
'.hikamarket::table($cfg['table']).' AS plugin
'.$filters.$order;
$db->setQuery('SELECT * '.$query,
(int)$pageInfo->limit->start, (int)$pageInfo->limit->value);
$rows = $db->loadObjectList();
$this->assignRef('plugins', $rows);
$db->setQuery('SELECT COUNT(*) '.$query);
$pageInfo->elements = new stdClass();
$pageInfo->elements->total = $db->loadResult();
$pageInfo->elements->page = count($rows);
if($pageInfo->elements->page) {
}
$listing_columns = array();
$pluginInterfaceClass = hikamarket::get('shop.class.plugin');
$pluginInterfaceClass->fillListingColumns($rows, $listing_columns,
$this, $type);
$app->triggerEvent('onAfterHikaPluginConfigurationListing',
array($type, &$rows, &$listing_columns, &$view));
$this->assignRef('listing_columns', $listing_columns);
$this->toolbar = array(
array(
'icon' => 'back',
'fa' => 'fa-arrow-circle-left',
'name' => JText::_('HIKA_BACK'), 'url'
=> hikamarket::completeLink('vendor')
),
array(
'icon' => 'new',
'fa' => 'fa-plus-circle',
'name' => JText::_('HIKA_NEW'),
'url' =>
hikamarket::completeLink('plugin&plugin_type='.$type.'&task=add'),
'pos' => 'right',
'display' =>
hikamarket::acl($type.'plugin/add')
)
);
$this->getPagination();
}
public function form($tpl = null) {
$app = JFactory::getApplication();
$db = JFactory::getDBO();
$ctrl = '';
$task = hikaInput::get()->getCmd('task', 'edit');
$type = hikaInput::get()->getCmd('plugin_type',
'payment');
if(!in_array($type, array('payment', 'shipping',
'generic')))
return false;
$this->assignRef('type', $type);
$this->content = '';
$this->plugin_name = hikaInput::get()->getCmd('name',
'');
if($type == 'plugin') {
$plugin = hikamarket::import('hikashop',
$this->plugin_name);
if(!is_subclass_of($plugin, 'hikashopPlugin'))
return false;
} else
$plugin = hikamarket::import('hikashop' . $type,
$this->plugin_name);
if(!$plugin)
return false;
$multiple_plugin = false;
$multiple_interface = false;
if(method_exists($plugin, 'isMultiple')) {
$multiple_interface = true;
$multiple_plugin = $plugin->isMultiple();
}
$subtask = hikaInput::get()->getCmd('subtask',
'edit');
if($multiple_plugin && empty($subtask)) {
$querySelect = array();
$queryFrom = array();
$queryWhere = array();
$filters = array();
JPluginHelper::importPlugin('hikashop');
$app->triggerEvent('onHikaPluginListing', array($type,
&$querySelect, &$queryFrom, &$queryWhere, &$filters));
if(!empty($querySelect)) $querySelect = ', ' .
implode(',', $querySelect);
else $querySelect = '';
if(!empty($queryFrom)) $queryFrom = ', ' .
implode(',', $queryFrom);
else $queryFrom = '';
if(!empty($queryWhere)) $queryWhere = ' AND (' .
implode(') AND (', $queryWhere) . ') ';
else $queryWhere = '';
$this->assignRef('filters', $filters);
} else {
$querySelect = '';
$queryFrom = '';
$queryWhere = '';
}
$query = 'SELECT plugin.* ' . $querySelect .
' FROM ' . hikashop_table($type) . ' as plugin ' .
$queryFrom .
' WHERE (plugin.' . $type . '_type = ' .
$db->Quote($this->plugin_name) . ') ' . $queryWhere .
' ORDER BY plugin.' . $type . '_ordering ASC';
$db->setQuery($query);
$elements = $db->loadObjectList($type.'_id');
if(!empty($elements)) {
$params_name = $type.'_params';
foreach($elements as $k => $el) {
if(!empty($el->$params_name)) {
$elements[$k]->$params_name =
hikamarket::unserialize($el->$params_name);
}
}
}
$function = 'pluginConfiguration';
$ctrl =
'&plugin_type='.$type.'&task='.$task.'&name='.$this->plugin_name;
if($multiple_plugin === true) {
$ctrl .= '&subtask='.$subtask;
if(empty($subtask)) {
$function = 'pluginMultipleConfiguration';
} else {
$typeFunction = 'on' . ucfirst($type) .
'Configuration';
if(method_exists($plugin, $typeFunction)) {
$function = $typeFunction;
}
}
$cid = hikashop_getCID($type.'_id');
if(isset($elements[$cid])) {
$this->assignRef('element', $elements[$cid]);
$configParam =& $elements[$cid];
$ctrl .= '&' . $type . '_id=' . $cid;
} else {
$configParam = new stdClass;
$this->assignRef('element', $configParam);
}
} else {
$configParam =& $elements;
$element = null;
if(!empty($elements)) {
$element = reset($elements);
}
$this->assignRef('element', $element);
$typeFunction = 'on' . ucfirst($type) .
'Configuration';
if(method_exists($plugin, $typeFunction)) {
$function = $typeFunction;
}
}
$this->assignRef('elements', $elements);
if($multiple_interface && !isset($subtask) || !empty($subtask))
{
$extra_config = array();
$extra_blocks = array();
JPluginHelper::importPlugin('hikashop');
$app->triggerEvent('onHikaPluginConfiguration',
array($type, &$plugin, &$this->element, &$extra_config,
&$extra_blocks));
$this->assignRef('extra_config', $extra_config);
$this->assignRef('extra_blocks', $extra_blocks);
}
if(method_exists($plugin, $function)) {
if(empty($plugin->title))
$plugin->title = JText::_('HIKA_PLUGIN').'
'.$this->plugin_name;
ob_start();
$plugin->$function($configParam);
$this->content = ob_get_clean();
$this->data = $plugin->getProperties();
$setTitle = false;
}
$this->assignRef('name', $this->plugin_name);
$this->assignRef('plugin', $plugin);
$this->assignRef('multiple_plugin', $multiple_plugin);
$this->assignRef('multiple_interface',
$multiple_interface);
$this->main_form = array(
$type.'_name' => array(
'name' => 'HIKA_NAME',
'type' => 'input'
),
$type.'_description' => array(
'name' => 'HIKA_DESCRIPTION',
'type' => 'wysiwyg'
)
);
$this->restriction_form = array();
if($multiple_plugin)
$this->main_form[$type.'_published'] =
array('HIKA_PUBLISHED', 'boolean', '0');
$pluginInterfaceClass = null;
switch($type) {
case 'payment':
$pluginInterfaceClass = hikamarket::get('class.payment');
break;
case 'shipping':
$pluginInterfaceClass = hikamarket::get('class.shipping');
break;
case 'generic':
default:
$pluginInterfaceClass = hikamarket::get('class.plugin');
break;
}
$fields = array();
if(!empty($pluginInterfaceClass) &&
method_exists($pluginInterfaceClass, 'loadConfigurationFields'))
$fields = $pluginInterfaceClass->loadConfigurationFields();
if(!empty($fields['main']))
$this->main_form = array_merge($this->main_form,
$fields['main']);
foreach($this->main_form as $k => $v) {
$key = str_replace(array('params.'.$type.'_',
$type.'_', '_'), array('', '',
'-'), $k);
if(!hikamarket::acl($type . 'plugin/edit/' . $key))
unset($this->main_form[$k]);
}
if(!empty($fields['restriction']))
$this->restriction_form = array_merge($this->restriction_form,
$fields['restriction']);
foreach($this->restriction_form as $k => $v) {
$key = str_replace(array('params.'.$type.'_',
$type.'_', '_'), array('', '',
'-'), $k);
if(!hikamarket::acl($type . 'plugin/edit/restriction/' .
$key))
unset($this->restriction_form[$k]);
}
if(empty($plugin->pluginView))
$this->content .= $this->loadPluginTemplate(@$plugin->view,
$type);
$this->toolbar = array(
'back' => array(
'icon' => 'back',
'fa' => 'fa-arrow-circle-left',
'name' => JText::_('HIKA_BACK'),
'url' =>
hikamarket::completeLink('plugin&plugin_type='.$type)
),
'apply' => array(
'url' => '#apply',
'fa' => 'fa-check-circle',
'linkattribs' => 'onclick="return
window.hikamarket.submitform(\'apply\',\'hikamarket_plugin_form\');"',
'icon' => 'apply',
'name' => JText::_('HIKA_APPLY'),
'pos' => 'right',
'display' =>
hikamarket::acl($type.'plugin/edit')
),
'save' => array(
'url' => '#save',
'fa' => 'fa-save',
'linkattribs' => 'onclick="return
window.hikamarket.submitform(\'save\',\'hikamarket_plugin_form\');"',
'icon' => 'save',
'name' => JText::_('HIKA_SAVE'), 'pos'
=> 'right',
'display' =>
hikamarket::acl($type.'plugin/edit')
)
);
}
public function add($tpl = null) {
$app = JFactory::getApplication();
$db = JFactory::getDBO();
$config = hikamarket::config();
$shopConfig = hikamarket::config(false);
$vendor = hikamarket::loadVendor(true);
$this->assignRef('config', $config);
$this->assignRef('vendor', $vendor);
$this->loadRef(array(
'toggleClass' => 'helper.toggle',
'radioType' => 'shop.type.radio',
));
$type = hikaInput::get()->getCmd('plugin_type',
'payment');
if(!in_array($type, array('payment', 'shipping',
'generic')))
return false;
if(!hikamarket::acl($type.'plugin/add') )
return false;
if($type == 'generic') {
$plugin_group = 'hikashop';
$plugin_table = 'plugin';
} else {
$plugin_group = 'hikashop' . $type;
$plugin_table = $type;
}
$filters = array();
if($vendor->vendor_id <= 1)
$filters['publish'] = -1;
if($type == 'payment')
$filters['currency'] = 0;
$this->paramBase = 'plugins_'.$type;
$pageInfo = $this->getPageInfo('', 'asc',
$filters);
if($vendor->vendor_id > 1)
$pageInfo->filter->publish = 1;
$query_select = array('extension_id as id', 'enabled as
published', 'name', 'element');
$query_table = 'extensions';
$query_filters = array(
'`folder` = '.$db->Quote($plugin_group),
'type = \'plugin\''
);
if((int)$pageInfo->filter->publish >= 0)
$query_filters[] = 'enabled = ' .
(int)$pageInfo->filter->publish;
if(!empty($pageInfo->search)) {
$query_filters[] = 'name LIKE \'%' .
$db->escape(HikaStringHelper::strtolower($pageInfo->search)) .
'%\'';
}
$query_order = 'enabled DESC, name ASC, ordering ASC';
$query = 'SELECT ' . implode(', ', $query_select) .
' FROM ' . hikamarket::table($query_table, false) .
' WHERE (' . implode(') AND (', $query_filters) .
')'.
' ORDER BY ' . $query_order;
$db->setQuery($query);
$plugins = $db->loadObjectList();
JPluginHelper::importPlugin($plugin_group);
$view =& $this;
$app->triggerEvent('onAfterHikaPluginConfigurationSelectionListing',
array($type, &$plugins, &$view));
$query = 'SELECT * FROM
'.hikamarket::table('shop.'.$plugin_table);
$db->setQuery($query);
$obj = $db->loadObject();
if(empty($obj))
$app->enqueueMessage(JText::_('EDIT_PLUGINS_BEFORE_DISPLAY'));
$currencies = null;
if($type == 'payment') {
$currencyClass = hikamarket::get('shop.class.currency');
$mainCurrency = $shopConfig->get('main_currency',1);
$currencyIds = $currencyClass->publishedCurrencies();
if(!in_array($mainCurrency, $currencyIds))
$currencyIds = array_merge(array($mainCurrency), $currencyIds);
$null = null;
$currencies = $currencyClass->getCurrencies($currencyIds, $null);
$filter_currency = null;
if(!empty($pageInfo->filter->currency) &&
!in_array((int)$pageInfo->filter->currency, $currencyIds))
$pageInfo->filter->currency = 0;
if(!empty($pageInfo->filter->currency))
$filter_currency = $currencies[ (int)$pageInfo->filter->currency
]->currency_code;
foreach($plugins as $key => &$plugin) {
try{
$p = hikamarket::import($plugin_group, $plugin->element);
} catch(Exception $e) { $p = null; }
if($vendor->vendor_id > 1 && (!method_exists($p,
'isMultiple') || !$p->isMultiple() ||
!empty($p->market_support))) {
unset($plugins[$key]);
unset($p);
continue;
}
$plugin->accepted_currencies = array();
if(isset($p->accepted_currencies)) {
$plugin->accepted_currencies = $p->accepted_currencies;
if(!empty($filter_currency) &&
!empty($p->accepted_currencies) && !in_array($filter_currency,
$p->accepted_currencies))
unset($plugins[$key]);
}
unset($p);
}
unset($plugin);
} else if($vendor->vendor_id > 1) {
foreach($plugins as $key => &$plugin) {
try{
$p = hikamarket::import($plugin_group, $plugin->element);
} catch(Exception $e) { $p = null; }
if(!method_exists($p, 'isMultiple') || !$p->isMultiple()
|| !empty($p->market_support))
unset($plugins[$key]);
unset($p);
}
unset($plugin);
}
$this->assignRef('plugins', $plugins);
$this->assignRef('plugin_type', $type);
$this->assignRef('currencies', $currencies);
$this->toolbar = array(
'back' => array(
'icon' => 'back',
'fa' => 'fa-arrow-circle-left',
'name' => JText::_('HIKA_BACK'),
'url' =>
hikamarket::completeLink('plugin&plugin_type='.$type)
)
);
}
protected function loadPluginTemplate($view = '', $type =
'') {
static $previousType = '';
if(empty($type))
$type = $previousType;
else
$previousType = $type;
$app = JFactory::getApplication();
$this->subview = '';
if(!empty($view))
$this->subview = '_' . $view;
if(!isset($this->data['pluginConfig'])) {
if($type == 'plugin')
$type = '';
$name =
$this->name.'_configuration'.$this->subview.'.php';
$path =
JPATH_THEMES.DS.$app->getTemplate().DS.'hikashop'.$type.DS.$name;
if(!file_exists($path)) {
$path =
JPATH_PLUGINS.DS.'hikashop'.$type.DS.$this->name.DS.$name;
if(!file_exists($path))
return '';
}
$this->pluginTemplateMode = 'html';
ob_start();
require($path);
return ob_get_clean();
}
$paramsType = $type.'_params';
$html = $this->processConfig($this->data['pluginConfig'],
$type, $paramsType, @$this->element->$paramsType);
return $html;
}
protected function getParamsData($configData, &$key, $type,
$paramsType, &$localType) {
$data = '';
if(is_array($configData))
$data = @$configData[$key];
else if(!empty($configData))
$data = @$configData->$key;
if(empty($paramsType) && substr($key, 0, 7) ==
'params.') {
$localType = $type . '_params';
$key = substr($key, 7);
if(is_array($configData))
$params = @$configData[$localType];
else if(!empty($configData))
$params = @$configData->$localType;
if(is_array($params))
$data = @$params[$key];
else if(!empty($params))
$data = @$params->$key;
}
return $data;
}
protected function processConfig($configs, $type, $paramsType,
$configData, $id = '', $checkDisplay = false) {
$html = '';
if(empty($configs))
return $html;
$cache = array();
if(!empty($id))
$id = 'id="'.$id.'"';
$html .= '<dl '.$id.' class="hikam_options
large">'."\r\n";
foreach($configs as $key => $config) {
if(!isset($config['name'])) {
$tmp = array(
'name' => $config[0],
'type' => $config[1],
'data' => @$config[2]
);
$config = $tmp;
}
if(is_array($config['name'])) {
$a = array_shift($config['name']);
$label = vsprintf(JText::_($a), $config['name']);
} else
$label = JText::_($config['name']);
$paramsTypeKey = '';
$paramsTypeForm = '';
$params = null;
$fullKey = '' . $key;
$jsEvent =
"window.Oby.fireAjax('field_changed',{'key':'".$key."','obj':this});";
$localType = $paramsType;
$data = $this->getParamsData($configData, $key, $type, $paramsType,
$localType);
if(!empty($localType)) {
$paramsTypeKey = $localType.'_';
$paramsTypeForm = '['.$localType.']';
}
$data_key = empty($config['category']) ? '' :
'hikamarket_'.$type.'_cat_'.$config['category'];
$classname = $data_key.'
hikamarket_field_'.$paramsTypeKey.$key;
$style = empty($config['hidden']) ? '' : '
style="display:none;"';
if(!empty($config['display']))
$style .= '
id="hikamarket_field_{TYPE}_'.$paramsTypeKey.$key.'"';
$html .= '<dt data-hkm-key="'.$data_key.'"
class="'.$classname.'"'.str_replace('{TYPE}',
'title', $style).'><label
for="data_'.$type.'_'.$paramsTypeKey.$key.'">'.$label.'</label></dt>'."\r\n".
'<dd data-hkm-key="'.$data_key.'"
class="'.$classname.'"'.str_replace('{TYPE}',
'value', $style).'>';
switch($config['type']) {
case 'input':
$html .= '<input type="text"
onchange="'.$jsEvent.'"
id="data_'.$type.'_'.$paramsTypeKey.$key.'"
name="data['.$type.']'.$paramsTypeForm.'['.$key.']"
value="'.$this->escape($data).'"/>';
break;
case 'textarea':
$html .= '<textarea
onchange="'.$jsEvent.'"
id="data_'.$type.'_'.$paramsTypeKey.$key.'"
name="data['.$type.']'.$paramsTypeForm.'['.$key.']"
rows="3">'.$this->escape($data).'</textarea>';
break;
case 'big-textarea':
$html .= '<textarea
onchange="'.$jsEvent.'"
id="data_'.$type.'_'.$paramsTypeKey.$key.'"
name="data['.$type.']'.$paramsTypeForm.'['.$key.']"
rows="9" width="100%"
style="width:100%;">'.$this->escape($data).'</textarea>';
break;
case 'wysiwyg':
if(empty($this->editorHelper)) {
$this->editorHelper =
hikamarket::get('shop.helper.editor');
$marketConfig = hikamarket::config();
$this->editorHelper->setEditor($marketConfig->get('editor',
''));
if($marketConfig->get('editor_disable_buttons', 0))
$this->editorHelper->options = false;
}
$this->editorHelper->name = $paramsTypeKey.$key;
$this->editorHelper->content = $data;
$html .= $this->editorHelper->display() . '<div
style="clear:both"></div>';
break;
case 'boolean':
if(empty($this->radioType))
$this->radioType = hikamarket::get('shop.type.radio');
if($data === null) {
$default = null;
if(isset($config['data'])) // retro-compat
$default = $config['data'];
if(isset($config['default']))
$default = $config['default'];
if($default === null)
$default = 1;
if($params === null) {
if(!isset($configData->$key))
$configData->$key = $default;
$data = $configData->$key;
} else {
if(is_array($params)) {
if(!isset($params[$key]))
$params[$key] = $default;
$data = @$params[$key];
} else if(!empty($params)) {
if(!isset($params->$key))
$params->$key = $default;
$data = @$params->$key;
}
}
}
$html .=
$this->radioType->booleanlist('data['.$type.']'.$paramsTypeForm.'['.$key.']'
, 'onchange="'.$jsEvent.'"', $data);
break;
case 'checkbox':
$i = 0;
foreach($config['data'] as $listKey => $listData) {
$checked = '';
if(!empty($data)) {
if(in_array($listKey, $data))
$checked = 'checked="checked"';
}
$html .= '<input onchange="'.$jsEvent.'"
id="data_'.$type.'_'.$paramsTypeKey.$key.'_'.$i.'"
name="data['.$type.']'.$paramsTypeForm.'['.$key.'][]"
type="checkbox" value="'.$listKey.'"
'.$checked.' /><label
for="data_'.$type.'_'.$paramsType.'_'.$key.'_'.$i.'">'.$listData.'</label><br/>';
$i++;
}
break;
case 'radio':
$values = array();
foreach($config['data'] as $listKey => $listData) {
$values[] = JHTML::_('select.option', $listKey,
JText::_($listData));
}
$html .= $this->radioType->radiolist($values,
'data['.$type.']'.$paramsTypeForm.'['.$key.']'
, 'onchange="'.$jsEvent.'"
class="inputbox" size="1"', 'value',
'text', $data);
break;
case 'list':
$values = array();
foreach($config['data'] as $listKey => $listData) {
$values[] = JHTML::_('select.option',
$listKey,JText::_($listData));
}
$html .= JHTML::_('select.genericlist', $values,
'data['.$type.']'.$paramsTypeForm.'['.$key.']'
, 'onchange="'.$jsEvent.'"
class="inputbox" size="1"', 'value',
'text', $data);
break;
case 'price':
if(empty($this->currenciesType))
$this->currenciesType =
hikamarket::get('shop.type.currency');
if(!empty($config['data']))
$key2 = $config['data'];
else
$key2 = str_replace('price', 'currency', $key);
$link_params = false;
if(!empty($config['link']))
$link_params = (substr($config['link'], 0, 7) ==
'params.');
$data2 = '';
if(is_array($configData) && isset($configData[$key2])
&& !$link_params)
$data2 = $configData[$key2];
else if(is_object($configData) && isset($configData->$key2)
&& !$link_params)
$data2 = $configData->$key2;
else if(is_object($configData) &&
is_object($configData->{$type.'_params'}) &&
isset($configData->{$type.'_params'}->$key2))
$data2 = @$configData->{$type.'_params'}->$key2;
$html .= '<input type="text"
onchange="'.$jsEvent.'"
id="data_'.$type.'_'.$paramsTypeKey.$key.'"
name="data['.$type.']'.$paramsTypeForm.'['.$key.']"
value="'.$this->escape($data).'"/>';
if($link_params && empty($paramsTypeForm))
$paramsTypeForm = '['.$type . '_params]';
$html .=
$this->currenciesType->display('data['.$type.']'.$paramsTypeForm.'['.$key2.']',
$data2);
break;
case 'tax':
if(empty($this->categoryType))
$this->categoryType =
hikamarket::get('type.shop_category');
$html .=
$this->categoryType->display('data['.$type.']'.$paramsTypeForm.'['.$key.']',
$data, 'tax');
break;
case 'weight':
if(empty($this->weightType))
$this->weightType =
hikamarket::get('shop.type.weight');
if(!empty($config['link'])) {
$html .= '<input type="text"
id="data_'.$type.'_'.$paramsTypeKey.$key.'"
name="data['.$type.']'.$paramsTypeForm.'['.$key.']"
value="'.$this->escape($data).'"/>';
$key = $config['link'];
if(is_array($configData) && isset($configData[$key]))
$data = $configData[$key];
else if(is_object($configData) &&
isset($configData->$key))
$data = $configData->$key;
else if(is_object($configData) &&
is_object($configData->{$type.'_params'}) &&
isset($configData->{$type.'_params'}->$key))
$data = $configData->{$type.'_params'}->$key;
}
if(empty($config['link']) ||
empty($cache[$type.'_'.$paramsTypeForm.'_'.$key]))
$html .=
$this->weightType->display('data['.$type.']'.$paramsTypeForm.'['.$key.']',
$data);
if(!empty($config['link']))
$cache[$type.'_'.$paramsTypeForm.'_'.$key] =
true;
break;
case 'volume':
if(empty($this->volumeType))
$this->volumeType =
hikamarket::get('shop.type.volume');
if(!empty($config['link'])) {
$html .= '<input type="text"
id="data_'.$type.'_'.$paramsTypeKey.$key.'"
name="data['.$type.']'.$paramsTypeForm.'['.$key.']"
value="'.$this->escape($data).'"/>';
$key = $config['link'];
if(is_array($configData) && isset($configData[$key]))
$data = $configData[$key];
else if(is_object($configData) &&
isset($configData->$key))
$data = $configData->$key;
else if(is_object($configData) &&
is_object($configData->{$type.'_params'}) &&
isset($configData->{$type.'_params'}->$key))
$data = $configData->{$type.'_params'}->$key;
}
if(empty($config['link']) ||
empty($cache[$type.'_'.$paramsTypeForm.'_'.$key]))
$html .=
$this->volumeType->display('data['.$type.']'.$paramsTypeForm.'['.$key.']',
$data);
if(!empty($config['link']))
$cache[$type.'_'.$paramsTypeForm.'_'.$key] =
true;
break;
case 'orderstatus':
case 'orderstatuses':
if(empty($this->nameboxType))
$this->nameboxType = hikamarket::get('type.namebox');
$html .= $this->nameboxType->display(
'data['.$type.']'.$paramsTypeForm.'['.$key.']',
$data,
($config['type'] == 'orderstatus') ?
hikamarketNameboxType::NAMEBOX_SINGLE :
hikamarketNameboxType::NAMEBOX_MULTIPLE,
'order_status',
array(
'delete' => ($config['type'] ==
'orderstatus') ? false : true,
'default_text' =>
'<em>'.JText::_('HIKA_NONE').'</em>',
'type' => $type
)
);
break;
case 'address':
if(empty($this->addressType))
$this->addressType =
hikamarket::get('shop.type.address');
$html .=
$this->addressType->display('data['.$type.']'.$paramsTypeForm.'['.$key.']',
$data);
break;
case 'acl':
if(empty($this->joomlaAclType))
$this->joomlaAclType =
hikamarket::get('type.joomla_acl');
if($data === null)
$data = 'all';
$html .=
$this->joomlaAclType->display('data['.$type.']'.$paramsTypeForm.'['.$key.']',
$data, true, true);
break;
case 'currency':
if(empty($this->currenciesType))
$this->currenciesType =
hikamarket::get('shop.type.currency');
$html .=
$this->currenciesType->display('data['.$type.']'.$paramsTypeForm.'['.$key.']',
$data);
break;
case 'currencies':
if(empty($this->currenciesType))
$this->currenciesType =
hikamarket::get('shop.type.currency');
if(is_string($data))
$data = explode(',', trim($data, ','));
$html .=
$this->currenciesType->display('data['.$type.']'.$paramsTypeForm.'['.$key.'][]',
$data, 'multiple="multiple" class="no-chzn"
size="3"');
break;
case 'zone':
if(empty($this->nameboxType))
$this->nameboxType = hikamarket::get('type.namebox');
$html .= $this->nameboxType->display(
'data['.$type.']'.$paramsTypeForm.'['.$key.']',
$data,
hikamarketNameboxType::NAMEBOX_SINGLE,
'zone',
array(
'delete' => true,
'default_text' =>
'<em>'.JText::_('HIKA_NONE').'</em>',
'type' => $type
)
);
break;
case 'warehouse':
if(empty($this->nameboxType))
$this->nameboxType = hikamarket::get('type.namebox');
$html .= $this->nameboxType->display(
'data['.$type.']'.$paramsTypeForm.'['.$key.']',
$data,
hikamarketNameboxType::NAMEBOX_SINGLE,
'warehouse',
array(
'delete' => true,
'default_text' =>
'<em>'.JText::_('HIKA_NONE').'</em>',
'type' => $type
)
);
break;
case 'plugin_images':
if(empty($this->nameboxType))
$this->nameboxType = hikamarket::get('type.namebox');
$html .= $this->nameboxType->display(
'data['.$type.']'.$paramsTypeForm.'['.$key.']',
$data,
hikamarketNameboxType::NAMEBOX_MULTIPLE,
'plugin_images',
array(
'delete' => true,
'default_text' =>
'<em>'.JText::_('HIKA_NONE').'</em>',
'type' => $type
)
);
break;
case 'shipping_method':
if(empty($this->nameboxType))
$this->nameboxType = hikamarket::get('type.namebox');
if(is_string($data))
$data = explode("\n", $data);
$html .= $this->nameboxType->display(
'data['.$type.']'.$paramsTypeForm.'['.$key.']',
$data,
hikamarketNameboxType::NAMEBOX_MULTIPLE,
'shipping_methods',
array(
'delete' => true,
'default_text' =>
'<em>'.JText::_('HIKA_NONE').'</em>',
'type' => $type
)
);
break;
case 'html':
$html .= $config['data'];
break;
default:
$ret = false;
if(!empty($this->plugin) && method_exists($this->plugin,
'pluginConfigDisplay'))
$ret =
$this->plugin->pluginConfigDisplay($config['type'],
$config['data'], $type, $paramsTypeKey, $key, $configData);
if($ret === false || empty($ret) && !empty($this->plugin)
&& method_exists($this->plugin,
'displayConfigField'))
$ret = $this->plugin->displayConfigField($config, $type,
$paramsTypeKey, $key, $data, $configData);
if($ret === false || empty($ret)) {
if(empty($this->dispatcher)) {
JPluginHelper::importPlugin('hikamarket');
JPluginHelper::importPlugin('hikashop');
if(defined('HIKASHOP_J40') && HIKASHOP_J40)
$this->dispatcher =
JFactory::getContainer()->get('dispatcher');
else
$this->dispatcher = JDispatcher::getInstance();
}
$ret = '';
$this->dispatcher->trigger('onHikaDisplayConfigField',
array(&$ret, $config, $type, $paramsTypeKey, $key, $data,
$configData));
}
$html .= $ret;
break;
}
if(!empty($config['append']))
$html .= $config['append'];
$html .= '</dd>'."\r\n";
if($checkDisplay && !empty($config['display'])) {
if(!isset($this->hiddenElements))
$this->hiddenElements = array();
foreach($config['display'] as $k => $values) {
$displayKey = ''.$k;
$localType = $paramsType;
$otherData = $this->getParamsData($configData, $displayKey, $type,
$paramsType, $localType);
$html_keys =
'hikamarket_field_{TYPE}_'.$paramsTypeKey.$key.''; //
title, value
if(!is_array($values))
$values = array($values);
$hidden = true;
foreach($values as &$v) {
if($otherData === $v || ((''.$otherData) ===
(''.$v))) {
$hidden = false;
break;
}
$v = ''.$v;
}
unset($v);
if($hidden) {
$this->hiddenElements[] =
'hikamarket_field_title_'.$paramsTypeKey.$key;
$this->hiddenElements[] =
'hikamarket_field_value_'.$paramsTypeKey.$key;
}
if(!isset($this->displayTriggers))
$this->displayTriggers = array($k => array());
if(!isset($this->displayTriggers[$k]))
$this->displayTriggers[$k] = array();
$this->displayTriggers[$k][$fullKey] = array($html_keys, $values);
}
}
}
$html .= '</dl>';
return $html;
}
}
PK�[wtW�views/productmarket/index.htmlnu�[���<html><body></body></html>PK�[k^�٥�
views/productmarket/tmpl/add.xmlnu�[���<?xml
version="1.0" encoding="utf-8"?>
<metadata>
<state>
<name>Vendor product creation</name>
<params addpath="/components/com_hikamarket/params">
<param name="options" type="selectoptions"
default="module" label="options"
description="HikaMarket options" />
</params>
</state>
<layout
title="COM_HIKAMARKET_PRODUCTMARKET_ADD_DEFAULT_TITLE">
<message></message>
</layout>
<fields name="params"
addfieldpath="/components/com_hikamarket/fields">
<fieldset name="basic" label="HikaMarket
Options">
<field id="options" name="options"
type="selectoptions" label="options"
description="HikaMarket options" />
</fieldset>
</fields>
</metadata>PK�[PPs>((-views/productmarket/tmpl/edit_translation.phpnu�[���<?php
/**
* @package HikaMarket for Joomla!
* @version 3.1.1
* @author Obsidev S.A.R.L.
* @copyright (C) 2011-2020 OBSIDEV. All rights reserved.
* @license GNU/GPLv3 http://www.gnu.org/licenses/gpl-3.0.html
*/
defined('_JEXEC') or die('Restricted access');
?><form action="<?php echo
hikamarket::completeLink('product'); ?>"
name="hikamarket_translation_form"
id="hikamarket_translation_form" method="post"
enctype="multipart/form-data">
<?php
if(!empty($this->product->translations)) {
foreach($this->product->translations as $language_id =>
$translation) {
?>
<table class="hikam_blocks">
<tr>
<td class="hikam_block_r">
<dl class="hikam_options">
<?php if(hikamarket::acl('product/edit/name')) { ?>
<dt
class="hikamarket_product_name"><label><?php echo
JText::_('HIKA_NAME'); ?></label></dt>
<dd class="hikamarket_product_name"><input
type="text" name="translation[product_name][<?php echo
$language_id; ?>]" value="<?php echo
@$translation->product_name->value; ?>"/></dd>
<?php } else { ?>
<dt
class="hikamarket_product_name"><label><?php echo
JText::_('HIKA_NAME'); ?></label></dt>
<dd class="hikamarket_product_name"><?php echo
@$this->product->product_name; ?></dd>
<?php }
if(hikamarket::acl('product/edit/pagetitle')) { ?>
<dt
class="hikamarket_product_pagetitle"><label><?php
echo JText::_('PAGE_TITLE'); ?></label></dt>
<dd class="hikamarket_product_pagetitle"><input
type="text" size="45"
name="translation[product_page_title][<?php echo $language_id;
?>]" value="<?php echo
$this->escape(@$translation->product_page_title->value);
?>" /></dd>
<?php
}
if(hikamarket::acl('product/edit/url')) { ?>
<dt
class="hikamarket_product_url"><label><?php echo
JText::_('URL'); ?></label></dt>
<dd class="hikamarket_product_url"><input
type="text" size="45"
name="translation[product_url][<?php echo $language_id;
?>]" value="<?php echo
$this->escape(@$translation->product_url->value); ?>"
/></dd>
<?php
}
if(hikamarket::acl('product/edit/alias')) { ?>
<dt
class="hikamarket_product_alias"><label><?php echo
JText::_('HIKA_ALIAS'); ?></label></dt>
<dd class="hikamarket_product_alias"><input
type="text" size="45"
name="translation[product_alias][<?php echo $language_id;
?>]" value="<?php echo
$this->escape(@$translation->product_alias->value); ?>"
/></dd>
<?php
}
if(hikamarket::acl('product/edit/canonical')) { ?>
<dt
class="hikamarket_product_canonical"><label><?php
echo JText::_('PRODUCT_CANONICAL');
?></label></dt>
<dd class="hikamarket_product_canonical"><input
type="text" size="45"
name="translation[product_canonical][<?php echo $language_id;
?>]" value="<?php echo
$this->escape(@$translation->product_canonical->value);
?>" /></dd>
<?php
}
if(hikamarket::acl('product/edit/metadescription')) { ?>
<dt
class="hikamarket_product_metadescription"><label><?php
echo JText::_('PRODUCT_META_DESCRIPTION');
?></label></dt>
<dd
class="hikamarket_product_metadescription"><textarea
id="product_meta_description" cols="35"
rows="2"
name="translation[product_meta_description][<?php echo
$language_id; ?>]"><?php echo
$this->escape(@$translation->product_meta_description->value);
?></textarea></dd>
<?php
}
if(hikamarket::acl('product/edit/keywords')) { ?>
<dt
class="hikamarket_product_keywords"><label><?php echo
JText::_('PRODUCT_KEYWORDS'); ?></label></dt>
<dd class="hikamarket_product_keywords"><textarea
id="product_keywords" cols="35" rows="2"
name="translation[product_keywords][<?php echo $language_id;
?>]"><?php echo
$this->escape(@$translation->product_keywords->value);
?></textarea></dd>
<?php
}
if(!empty($this->fields) &&
hikamarket::acl('product/edit/customfields')) {
foreach($this->fields as $fieldName => $oneExtraField) {
if($this->fields[$fieldName]->field_type == 'textarea'
&&
@$this->fields[$fieldName]->field_options['translatable']
== 1) { ?>
<dt class="hikamarket_product_field_<?php echo $fieldName;
?>"><label><?php echo
$this->fieldsClass->getFieldName($oneExtraField);
?></label></dt>
<dd class="hikamarket_product_field_<?php echo $fieldName;
?>"><textarea id="product_<?php echo $fieldName;
?>" cols="35" rows="2"
name="translation[<?php echo $fieldName; ?>][<?php echo
$language_id; ?>]"><?php echo
$this->escape(@$translation->$fieldName->value);
?></textarea></dd>
<?php
}
if($this->fields[$fieldName]->field_type == 'text'
&&
@$this->fields[$fieldName]->field_options['translatable']
== 1) { ?>
<dt class="hikamarket_product_field_<?php echo $fieldName;
?>"><label><?php echo
$this->fieldsClass->getFieldName($oneExtraField);
?></label></dt>
<dd class="hikamarket_product_field_<?php echo $fieldName;
?>"><input type="text" size="45"
name="translation[<?php echo $fieldName; ?>][<?php echo
$language_id; ?>]" value="<?php echo
$this->escape(@$translation->$fieldName->value); ?>"
/></dd>
<?php
}
if($this->fields[$fieldName]->field_type == 'wysiwyg'
&&
@$this->fields[$fieldName]->field_options['translatable']
== 1) { ?>
<div class="hikamarket_product_field_wysiwyg_<?php echo
$fieldName; ?>_title"><?php echo
$this->fieldsClass->getFieldName($oneExtraField); ?></div>
<div class="hikamarket_product_field_wysiwyg_<?php echo
$fieldName; ?>"><?php
$this->editor->name = 'translation_' . $fieldName .
'_' . $language_id;
$this->editor->content =
@$translation->$fieldName->value;
echo $this->editor->display();
?><div style="clear:both"></div>
</div>
<?php
}
}
}
if(hikamarket::acl('product/edit/description') &&
$this->config->get('front_small_editor')) { ?>
<dt
class="hikamarket_product_description"><label><?php
echo JText::_('PRODUCT_DESCRIPTION');
?></label></dt>
<dd class="hikamarket_product_description"><div
class="hikam_options_nl"></div><?php
$this->editor->name =
'translation_product_description_' . $language_id;
$this->editor->content =
@$translation->product_description->value;
echo $this->editor->display();
?><div style="clear:both"></div></dd>
<?php } ?>
</dl>
</td>
</tr>
<?php if(hikamarket::acl('product/edit/description')
&& !$this->config->get('front_small_editor')) {
?>
<tr>
<td><?php
$this->editor->name =
'translation_product_description_' . $language_id;
$this->editor->content =
@$translation->product_description->value;
echo $this->editor->display();
?><div style="clear:both"></div></td>
</tr>
<?php } ?>
</table>
<?php
}
}
?>
<input type="hidden" name="cid[]"
value="<?php echo @$this->product->product_id; ?>"
/>
<input type="hidden" name="option"
value="<?php echo HIKAMARKET_COMPONENT; ?>" />
<input type="hidden" name="task" value=""
/>
<input type="hidden" name="ctrl"
value="product" />
<?php echo JHTML::_( 'form.token' ); ?>
</form>
PK�[���!views/productmarket/tmpl/file.phpnu�[���<?php
/**
* @package HikaMarket for Joomla!
* @version 3.1.1
* @author Obsidev S.A.R.L.
* @copyright (C) 2011-2020 OBSIDEV. All rights reserved.
* @license GNU/GPLv3 http://www.gnu.org/licenses/gpl-3.0.html
*/
defined('_JEXEC') or die('Restricted access');
?><fieldset>
<div class="toolbar" id="toolbar"
style="float: right;">
<button class="hikabtn" type="button"
onclick="hikamarket.submitform('addfile','hikamarket_form');">
<img style="vertical-align:middle" src="<?php echo
HIKASHOP_IMAGES; ?>save.png"/> <?php echo
JText::_('OK'); ?>
</button>
</div>
</fieldset>
<form action="<?php echo
hikamarket::completeLink('product&task=file'); ?>"
method="post" name="hikamarket_form"
id="hikamarket_form" enctype="multipart/form-data">
<dl class="hikam_options">
<dt>
<label for="data_file_file_name"><?php echo
JText::_('HIKA_NAME'); ?></label>
</dt>
<dd>
<input type="text" name="data[file][file_name]"
id="data_file_file_name" value="<?php echo
$this->escape(@$this->element->file_name); ?>"/>
</dd>
<?php
if(empty($this->element->file_path)) {
if(hikamarket::acl('product/edit/files/upload')) {
?>
<dt>
<label for="datafilemode"><?php echo
JText::_('HIKA_FILE_MODE'); ?></label>
</dt>
<dd><?php
$values = array(
JHTML::_('select.option', 'upload',
JText::_('HIKA_FILE_MODE_UPLOAD')),
JHTML::_('select.option', 'path',
JText::_('HIKA_FILE_MODE_PATH'))
);
echo JHTML::_('hikaselect.genericlist', $values,
"data[filemode]", 'class="inputbox"
size="1"
onchange="hikamarket_filemode_switch(this);"',
'value', 'text', 'upload');
?></dd>
<script type="text/javascript">
function hikamarket_filemode_switch(el) {
var d = document, m = null,
blocks =
d.querySelectorAll('[data-section="filemode"]');
blocks.forEach(function(b){
m = b.getAttribute('data-filemode');
b.style.display = (m == el.value) ? '' : 'none';
});
}
window.hikashop.ready(function(){
var el = document.getElementById('datafilemode');
if(el) hikamarket_filemode_switch(el);
});
</script>
<dt data-section="filemode"
data-filemode="path">
<label for="data_file_file_path"><?php echo
JText::_('HIKA_PATH'); ?></label>
</dt>
<dd data-section="filemode"
data-filemode="path">
<input type="text" name="data[file][file_path]"
id="data_file_file_path" size="60"
style="width:100%" value=""/>
</dd>
<dt data-section="filemode"
data-filemode="upload">
<label for=""><?php echo
JText::_('HIKA_FILE'); ?></label>
</dt>
<dd data-section="filemode"
data-filemode="upload">
<input type="file" name="files[]"
size="30" /><br/>
<?php echo
JText::sprintf('MAX_UPLOAD',(hikashop_bytes(ini_get('upload_max_filesize'))
> hikashop_bytes(ini_get('post_max_size'))) ?
ini_get('post_max_size') :
ini_get('upload_max_filesize')); ?>
</dd>
<?php
}
} else {
?>
<dt>
<label for="data_file_file_path"><?php echo
JText::_('FILENAME'); ?></label>
</dt>
<dd>
<?php
if(hikamarket::acl('product/edit/files/upload')) {
?>
<input type="text" name="data[file][file_path]"
id="data_file_file_path" size="60"
style="width:100%" value="<?php echo
$this->escape($this->element->file_path); ?>"/>
<?php
} else {
echo '<span
class="hikam_raw_filename">'.$this->escape($this->element->file_path).'</span>';
}
?>
</dd>
<?php
}
?>
<?php if(hikamarket::acl('product/edit/files/limit')) { ?>
<dt>
<label for="data_file_file_limit"><?php echo
JText::_('DOWNLOAD_NUMBER_LIMIT'); ?></label>
</dt>
<dd>
<?php
$file_limit = (isset($this->element->file_limit) ?
($this->element->file_limit < 0 ? JText::_('UNLIMITED')
: (int)$this->element->file_limit) : '');
?>
<input type="text" name="data[file][file_limit]"
id="data_file_file_limit" value="<?php echo $file_limit;
?>"/>
<p>
0: <?php echo JText::_('DEFAULT_PARAMS_FOR_PRODUCTS');?>
(<?php echo
$this->shopConfig->get('download_number_limit');?>)<br/>
-1: <?php echo JText::_('UNLIMITED');?><br/>
</p>
</dd>
<?php } ?>
<?php if(hikamarket::acl('product/edit/files/free')) { ?>
<dt>
<label for="data_file_file_free_download"><?php echo
JText::_('FREE_DOWNLOAD'); ?></label>
</dt>
<dd><?php
if(empty($this->element))
$this->element = new stdClass();
if(!isset($this->element->file_free_download))
$this->element->file_free_download =
$this->config->get('upload_file_free_download', 0);
echo
$this->radioType->booleanlist('data[file][file_free_download]',
'', $this->element->file_free_download);
?></dd>
<?php } ?>
<?php if(hikamarket::acl('product/edit/files/description')) {
?>
<dt>
<label for="data_file_file_description"><?php echo
JText::_('HIKA_DESCRIPTION'); ?></label>
</dt>
<dd>
<textarea name="data[file][file_description]"
id="data_file_file_description"><?php echo
$this->escape(@$this->element->file_description);
?></textarea>
</dd>
<?php } ?>
</table>
<div class="clr"></div>
<input type="hidden" name="data[file][file_type]"
value="file" />
<input type="hidden" name="data[file][file_ref_id]"
value="<?php echo $this->product_id; ?>" />
<input type="hidden" name="cid"
value="<?php echo @$this->cid; ?>" />
<input type="hidden" name="pid"
value="<?php echo (int)$this->product_id; ?>" />
<input type="hidden" name="id" value="<?php
echo hikaInput::get()->getInt('id');?>" />
<input type="hidden" name="option"
value="<?php echo HIKAMARKET_COMPONENT; ?>" />
<input type="hidden" name="tmpl"
value="component" />
<input type="hidden" name="task"
value="file" />
<input type="hidden" name="ctrl"
value="product" />
<?php echo JHTML::_( 'form.token' ); ?>
</form>
PK�[Q+�X_V_V!views/productmarket/tmpl/form.phpnu�[���<?php
/**
* @package HikaMarket for Joomla!
* @version 3.1.1
* @author Obsidev S.A.R.L.
* @copyright (C) 2011-2020 OBSIDEV. All rights reserved.
* @license GNU/GPLv3 http://www.gnu.org/licenses/gpl-3.0.html
*/
defined('_JEXEC') or die('Restricted access');
?><script type="text/javascript">
window.productMgr = { cpt:{} };
window.hikashop.ready(function(){
window.hikamarket.dlTitle('hikamarket_products_form');
window.hikamarket.collapseTitles();
});
</script>
<form action="<?php echo
hikamarket::completeLink('product');?>"
method="post" name="hikamarket_form"
id="hikamarket_products_form"
enctype="multipart/form-data">
<?php if($this->aclEdit('variants')) { ?>
<div id="hikamarket_product_edition_header"
style="<?php if(empty($this->product->characteristics) ||
empty($this->product->product_id)) echo 'display:none;';
?>">
<?php
if(!empty($this->product)) {
$image =
$this->imageHelper->getThumbnail(@$this->product->images[0]->file_path,
array(50,50), array('default' => true));
if($image->success)
$image_url = $image->url;
else
$image_url = $image->path;
unset($image);
?>
<h3><img src="<?php echo $image_url; ?>"
alt=""
style="vertical-align:middle;margin-right:5px;"/><?php echo
$this->product->product_name; ?></h3>
<ul class="hikam_tabs"
rel="tabs:hikamarket_product_edition_tab_">
<li class="active"><a href="#product"
rel="tab:1" onclick="return
window.hikamarket.switchTab(this);"><?php echo
JText::_('PRODUCT'); ?></a></li>
<li><a href="#variants" rel="tab:2"
onclick="return window.hikamarket.switchTab(this);"><?php
echo JText::_('VARIANTS'); ?><span
id="hikamarket_product_variant_label"></span></a></li>
</ul>
<div style="clear:both"></div>
<?php
}
?>
</div>
<div id="hikamarket_product_edition_tab_1">
<?php } ?>
<div class="hk-row-fluid">
<?php if($this->aclEdit('images')) { ?>
<div class="hkc-md-4"><?php
echo $this->loadTemplate('image');
?></div>
<div class="hkc-md-8">
<?php } else { ?>
<div class="hkc-md-12">
<?php } ?>
<dl class="hikam_options">
<?php if($this->aclEdit('name')) { ?>
<dt
class="hikamarket_product_name"><label><?php echo
JText::_('HIKA_NAME'); ?></label></dt>
<dd class="hikamarket_product_name"><input
type="text" name="data[product][product_name]"
value="<?php echo
$this->escape(@$this->product->product_name);
?>"/></dd>
<?php } else { ?>
<dt
class="hikamarket_product_name"><label><?php echo
JText::_('HIKA_NAME'); ?></label></dt>
<dd class="hikamarket_product_name"><?php
if(!empty($this->product->product_name))
echo $this->product->product_name;
else
echo
'<em>'.JText::_('PRODUCT_NO_NAME').'</em>';
?></dd>
<?php }
if($this->aclEdit('code')) { ?>
<dt
class="hikamarket_product_code"><label><?php echo
JText::_('PRODUCT_CODE'); ?></label></dt>
<dd class="hikamarket_product_code"><input
type="text" name="data[product][product_code]"
value="<?php echo
$this->escape(@$this->product->product_code);
?>"/></dd>
<?php }
if($this->aclEdit('quantity')) { ?>
<dt
class="hikamarket_product_quantity"><label><?php echo
JText::_('PRODUCT_QUANTITY'); ?></label></dt>
<dd class="hikamarket_product_quantity"><?php
echo
$this->quantityType->display('data[product][product_quantity]',
@$this->product->product_quantity);
?></dd>
<?php }
if(@$this->product->product_type != 'variant' &&
$this->aclEdit('category')) { ?>
<dt
class="hikamarket_product_category"><label><?php echo
JText::_('PRODUCT_CATEGORIES'); ?></label></dt>
<dd class="hikamarket_product_category"><?php
$categories = null;
if(!empty($this->product->categories))
$categories = array_keys($this->product->categories);
echo $this->nameboxType->display(
'data[product][categories]',
$categories,
hikamarketNameboxType::NAMEBOX_MULTIPLE,
'category',
array(
'delete' => true,
'sort' => true,
'root' => $this->vendorCategories,
'default_text' =>
'<em>'.JText::_('HIKA_NONE').'</em>',
)
);
?></dd>
<?php }
if(@$this->product->product_type != 'variant' &&
$this->aclEdit('manufacturer')) {?>
<dt
class="hikamarket_product_manufacturer"><label><?php
echo JText::_('MANUFACTURER'); ?></label></dt>
<dd class="hikamarket_product_manufacturer"><?php
echo $this->nameboxType->display(
'data[product][product_manufacturer_id]',
(int)@$this->product->product_manufacturer_id,
hikamarketNameboxType::NAMEBOX_SINGLE,
'brand',
array(
'delete' => true,
'default_text' =>
'<em>'.JText::_('HIKA_NONE').'</em>',
)
);
?></dd>
<?php }
if($this->aclEdit('published')) { ?>
<dt
class="hikamarket_product_published"><label><?php
echo JText::_('HIKA_PUBLISHED'); ?></label></dt>
<dd class="hikamarket_product_published"><?php
echo
$this->radioType->booleanlist('data[product][product_published]',
'', @$this->product->product_published);
?></dd>
<?php }
if($this->aclEdit('translations')) {
if(!empty($this->product->translations) &&
!empty($this->product->product_id)) { ?>
<dt
class="hikamarket_product_translations"><label><?php
echo JText::_('HIKA_TRANSLATIONS');
?></label></dt>
<dd class="hikamarket_product_translations"><?php
foreach($this->product->translations as $language_id =>
$translation){
$lngName = $this->translationHelper->getFlag($language_id);
echo '<div
class="hikamarket_multilang_button">' .
$this->popup->display(
$lngName, strip_tags($lngName),
hikamarket::completeLink('product&task=edit_translation&product_id='
.
@$this->product->product_id.'&language_id='.$language_id,
true),
'hikamarket_product_translation_'.$language_id,
760, 480, '', '', 'link'
).
'</div>';
}
?></dd>
<?php
}
}
if(hikamarket::level(1) && $this->vendor->vendor_id == 1
&& hikamarket::acl('product/subvendor') &&
hikamarket::acl('product/edit/vendor')) {
?>
<dt
class="hikamarket_product_vendor"><label><?php echo
JText::_('HIKA_VENDOR'); ?></label></dt>
<dd class="hikamarket_product_vendor"><?php
echo $this->nameboxType->display(
'data[product][product_vendor_id]',
(int)@$this->product->product_vendor_id,
hikamarketNameboxType::NAMEBOX_SINGLE,
'vendor',
array(
'delete' => true,
'default_text' =>
'<em>'.JText::_('HIKA_NONE').'</em>'
)
);
?></dd>
<?php }
?>
</dl>
</div>
<div class="hkc-md-12">
<?php
if($this->aclEdit('description')) {
?>
<div class="hikamarket_section_container
hikamarket_section_product_description">
<h3 data-section-toggle="product_description"
class="hikamarket_section_toggle"><?php echo
JText::_('HIKA_DESCRIPTION'); ?></h3>
<div id="hikamarket_section_product_description">
<?php echo $this->editor->display(); ?>
<div style="clear:both"></div>
</div>
</div>
<?php
}
if($this->aclEdit('price') ||
(@$this->product->product_type != 'variant' &&
($this->aclEdit('tax') ||
$this->aclEdit('msrp')))) {
?>
<div class="hikamarket_section_container
hikamarket_section_product_prices">
<h3 data-section-toggle="product_prices"
class="hikamarket_section_toggle"><?php echo
JText::_('PRICES_AND_TAXES'); ?></h3>
<div id="hikamarket_section_product_prices">
<?php
if($this->aclEdit('price')) {
echo $this->loadTemplate('price');
}
if(@$this->product->product_type != 'variant' &&
($this->aclEdit('tax') ||
$this->aclEdit('msrp'))) {
?>
<dl class="hikam_options">
<?php
if(@$this->product->product_type != 'variant' &&
$this->aclEdit('tax')) { ?>
<dt
class="hikamarket_product_tax"><label><?php echo
JText::_('TAXATION_CATEGORY'); ?></label></dt>
<dd class="hikamarket_product_tax"><?php
echo
$this->categoryType->display('data[product][product_tax_id]',
@$this->product->product_tax_id, 'tax');
?></dd>
<?php
}
if(@$this->product->product_type != 'variant' &&
$this->aclEdit('msrp')) {
$curr = '';
$mainCurr =
$this->currencyClass->getCurrencies($this->main_currency_id,
$curr);
?>
<dt
class="hikamarket_product_msrp"><label><?php echo
JText::_('PRODUCT_MSRP'); ?></label></dt>
<dd class="hikamarket_product_msrp">
<input type="text"
name="data[product][product_msrp]" value="<?php echo
$this->escape(@$this->product->product_msrp); ?>"/>
<?php echo
$mainCurr[$this->main_currency_id]->currency_symbol.'
'.$mainCurr[$this->main_currency_id]->currency_code;?>
</dd>
<?php
}
?>
</dl>
<?php
}
?>
</div>
</div>
<?php
}
if(!$this->is_variant_product &&
($this->aclEdit('characteristics') ||
$this->aclEdit('related') || (hikashop_level(1) &&
($this->aclEdit('options') ||
$this->aclEdit('bundles'))))) {
?>
<div class="hikamarket_section_container
hikamarket_section_product_specifications">
<h3 data-section-toggle="product_specifications"
class="hikamarket_section_toggle"><?php echo
JText::_('SPECIFICATIONS'); ?></h3>
<div id="hikamarket_section_product_specifications">
<dl class="hikam_options">
<?php
if($this->aclEdit('characteristics')) { ?>
<dt
class="hikamarket_product_characteristics"><label><?php
echo JText::_('CHARACTERISTICS'); ?></label></dt>
<dd
class="hikamarket_product_characteristics"><?php
echo $this->loadTemplate('characteristic');
?></dd>
<?php
}
if($this->aclEdit('related')) { ?>
<dt
class="hikamarket_product_related"><label><?php echo
JText::_('RELATED_PRODUCTS'); ?></label></dt>
<dd class="hikamarket_product_related"><?php
echo $this->nameboxType->display(
'data[product][related]',
@$this->product->related,
hikamarketNameboxType::NAMEBOX_MULTIPLE,
'product',
array(
'delete' => true,
'sort' => true,
'root' => $this->rootCategory,
'allvendors' =>
(int)$this->config->get('related_all_vendors', 1),
'default_text' =>
'<em>'.JText::_('HIKA_NONE').'</em>',
)
);
?></dd>
<?php
}
if(hikashop_level(1) && $this->aclEdit('options')) {
?>
<dt
class="hikamarket_product_options"><label><?php echo
JText::_('OPTIONS'); ?></label></dt>
<dd class="hikamarket_product_options"><?php
echo $this->nameboxType->display(
'data[product][options]',
@$this->product->options,
hikamarketNameboxType::NAMEBOX_MULTIPLE,
'product',
array(
'delete' => true,
'sort' => true,
'root' => $this->rootCategory,
'allvendors' =>
(int)$this->config->get('options_all_vendors', 0),
'default_text' =>
'<em>'.JText::_('HIKA_NONE').'</em>',
)
);
?></dd>
<?php
}
if(hikashop_level(1) && $this->aclEdit('bundles')) {
?>
<dt
class="hikamarket_product_bundles"><label><?php echo
JText::_('BUNDLED_PRODUCTS'); ?></label></dt>
<dd class="hikamarket_product_bundles"><?php
echo $this->loadTemplate('bundle');
?></dd>
<?php
}
?>
</dl>
</div>
</div>
<?php
}
if(!$this->is_variant_product &&
($this->aclEdit('pagetitle') ||
$this->aclEdit('url') ||
$this->aclEdit('metadescription') ||
$this->aclEdit('keywords') ||
$this->aclEdit('alias') ||
$this->aclEdit('canonical') ||
$this->aclEdit('tags'))) {
?>
<div class="hikamarket_section_container
hikamarket_section_product_seo">
<h3 data-section-toggle="product_seo"
class="hikamarket_section_toggle"><?php echo
JText::_('SEO'); ?></h3>
<div id="hikamarket_section_product_seo">
<dl class="hikam_options">
<?php
if($this->aclEdit('pagetitle')) { ?>
<dt
class="hikamarket_product_pagetitle"><label><?php
echo JText::_('PAGE_TITLE'); ?></label></dt>
<dd class="hikamarket_product_pagetitle"><input
type="text" class="fullrow" size="45"
name="data[product][product_page_title]" value="<?php
echo $this->escape(@$this->product->product_page_title);
?>" /></dd>
<?php
}
if($this->aclEdit('url')) { ?>
<dt
class="hikamarket_product_url"><label><?php echo
JText::_('URL'); ?></label></dt>
<dd class="hikamarket_product_url"><input
type="text" class="fullrow" size="45"
name="data[product][product_url]" value="<?php echo
$this->escape(@$this->product->product_url); ?>"
/></dd>
<?php
}
if($this->aclEdit('metadescription')) { ?>
<dt
class="hikamarket_product_metadescription"><label><?php
echo JText::_('PRODUCT_META_DESCRIPTION');
?></label></dt>
<dd
class="hikamarket_product_metadescription"><textarea
id="product_meta_description" class="fullrow"
cols="35" rows="2"
name="data[product][product_meta_description]"><?php echo
$this->escape(@$this->product->product_meta_description);
?></textarea></dd>
<?php
}
if($this->aclEdit('keywords')) { ?>
<dt
class="hikamarket_product_keywords"><label><?php echo
JText::_('PRODUCT_KEYWORDS'); ?></label></dt>
<dd class="hikamarket_product_keywords"><textarea
id="product_keywords" class="fullrow"
cols="35" rows="2"
name="data[product][product_keywords]"><?php echo
$this->escape(@$this->product->product_keywords);
?></textarea></dd>
<?php
}
if($this->aclEdit('alias')) { ?>
<dt
class="hikamarket_product_alias"><label><?php echo
JText::_('HIKA_ALIAS'); ?></label></dt>
<dd class="hikamarket_product_alias"><input
type="text" class="fullrow" size="45"
name="data[product][product_alias]" value="<?php echo
$this->escape(@$this->product->product_alias); ?>"
/></dd>
<?php
}
if($this->aclEdit('canonical')) { ?>
<dt
class="hikamarket_product_canonical"><label><?php
echo JText::_('PRODUCT_CANONICAL');
?></label></dt>
<dd class="hikamarket_product_canonical"><input
type="text" class="fullrow" size="45"
name="data[product][product_canonical]" value="<?php echo
$this->escape(@$this->product->product_canonical);
?>"/></dd>
<?php
}
if($this->aclEdit('tags')) {
$tagsHelper = hikamarket::get('shop.helper.tags');
if(!empty($tagsHelper) && $tagsHelper->isCompatible()) {
?>
<dt
class="hikamarket_product_tags"><label><?php echo
JText::_('JTAG'); ?></label></dt>
<dd class="hikamarket_product_tags"><?php
$tags = $tagsHelper->loadTags('product',
$this->product);
echo $tagsHelper->renderInput($tags, array('name' =>
'data[tags]', 'class' => 'inputbox'));
?></dd>
<?php
}
}
?>
</dl>
</div>
</div>
<?php
}
if($this->aclEdit('qtyperorder') ||
$this->aclEdit('saledates') ||
$this->aclEdit('warehouse') ||
$this->aclEdit('weight') ||
$this->aclEdit('volume') ||
($this->aclEdit('acl') && hikashop_level(2))) {
?>
<div class="hikamarket_section_container
hikamarket_section_product_restrictions">
<h3 data-section-toggle="product_restrictions"
class="hikamarket_section_toggle"><?php echo
JText::_('RESTRICTIONS_AND_DIMENSIONS'); ?></h3>
<div id="hikamarket_section_product_restrictions">
<dl class="hikam_options">
<?php
if($this->aclEdit('qtyperorder')) {?>
<dt
class="hikamarket_product_qtyperorder"><label><?php
echo JText::_('QUANTITY_PER_ORDER');
?></label></dt>
<dd class="hikamarket_product_qtyperorder">
<input type="text"
name="data[product][product_min_per_order]" value="<?php
echo (int)@$this->product->product_min_per_order; ?>"
/><?php
echo ' ' . JText::_('HIKA_QTY_RANGE_TO'). '
';
echo
$this->quantityType->display('data[product][product_max_per_order]',
@$this->product->product_max_per_order);
?></dd>
<?php }
if($this->aclEdit('saledates')) {?>
<dt
class="hikamarket_product_salestart"><label><?php
echo JText::_('PRODUCT_SALE_DATES');
?></label></dt>
<dd class="hikamarket_product_salestart"><?php
echo JHTML::_('calendar',
hikamarket::getDate((@$this->product->product_sale_start?@$this->product->product_sale_start:''),'%Y-%m-%d
%H:%M'),
'data[product][product_sale_start]','product_sale_start','%Y-%m-%d
%H:%M',array('size' => '20'));
echo ' <span class="calendar-separator">' .
JText::_('HIKA_RANGE_TO') . '</span> ';
echo JHTML::_('calendar',
hikamarket::getDate((@$this->product->product_sale_end?@$this->product->product_sale_end:''),'%Y-%m-%d
%H:%M'),
'data[product][product_sale_end]','product_sale_end','%Y-%m-%d
%H:%M',array('size' => '20'));
?></dd>
<?php }
if($this->aclEdit('warehouse')) { ?>
<dt
class="hikamarket_product_warehouse"><label><?php
echo JText::_('WAREHOUSE'); ?></label></dt>
<dd class="hikamarket_product_warehouse"><?php
echo $this->nameboxType->display(
'data[product][product_warehouse_id]',
(int)@$this->product->product_warehouse_id,
hikamarketNameboxType::NAMEBOX_SINGLE,
'warehouse',
array(
'delete' => true,
'default_text' =>
'<em>'.JText::_('HIKA_NONE').'</em>',
)
);
?></dd>
<?php }
if($this->aclEdit('weight')) { ?>
<dt
class="hikamarket_product_weight"><label><?php echo
JText::_('PRODUCT_WEIGHT'); ?></label></dt>
<dd class="hikamarket_product_weight"><input
type="text" name="data[product][product_weight]"
value="<?php echo
$this->escape(@$this->product->product_weight);
?>"/><?php echo
$this->weight->display('data[product][product_weight_unit]',
@$this->product->product_weight_unit); ?></dd>
<?php }
if($this->aclEdit('volume')) { ?>
<dt
class="hikamarket_product_volume"><label><?php echo
JText::_('PRODUCT_VOLUME'); ?></label></dt>
<dd class="hikamarket_product_volume">
<div class="hkinput-group">
<span class="hkinput-group-addon"><?php
echo hikamarket::tooltip(JText::_('PRODUCT_LENGTH'),
'', '', '<i class="hk-icon-14
iconM-14-length"></i>', '', 0)
?></span><input size="10"
class="hk-control" style="width:50px"
type="text" name="data[product][product_length]"
value="<?php echo
$this->escape(@$this->product->product_length); ?>"/>
</div>
<div class="hkinput-group">
<span class="hkinput-group-addon"><?php
echo hikamarket::tooltip(JText::_('PRODUCT_WIDTH'),
'', '', '<i class="hk-icon-14
iconM-14-width"></i>', '', 0);
?></span><input size="10"
class="hk-control" style="width:50px"
type="text" name="data[product][product_width]"
value="<?php echo
$this->escape(@$this->product->product_width); ?>"/>
</div>
<div class="hkinput-group">
<span class="hkinput-group-addon"><?php
echo hikamarket::tooltip(JText::_('PRODUCT_HEIGHT'),
'', '', '<i class="hk-icon-14
iconM-14-height"></i>', '', 0);
?></span><input size="10"
class="hk-control" style="width:50px"
type="text" name="data[product][product_height]"
value="<?php echo
$this->escape(@$this->product->product_height); ?>"/>
</div>
<?php echo
$this->volume->display('data[product][product_dimension_unit]',
@$this->product->product_dimension_unit);?>
</dd>
<?php }
if(hikashop_level(2) && $this->aclEdit('acl')) {
?>
<dt class="hikamarket_product_acl"><label><?php
echo JText::_('ACCESS_LEVEL'); ?></label></dt>
<dd class="hikamarket_product_acl"><?php
$product_access = 'all';
if(isset($this->product->product_access))
$product_access = $this->product->product_access;
echo
$this->joomlaAcl->display('data[product][product_access]',
$product_access, true, true);
?></dd>
<?php }
?>
</dl>
</div>
</div>
<?php } ?>
<?php
if($this->aclEdit('files')) {
?>
<div class="hikamarket_section_container
hikamarket_section_product_files">
<h3 data-section-toggle="product_files"
class="hikamarket_section_toggle"><?php echo
JText::_('FILES'); ?></h3>
<div id="hikamarket_section_product_files">
<?php
echo $this->loadTemplate('file');
?>
</div>
</div>
<?php
}
?>
<?php
if($this->aclEdit('customfields')) {
if(!empty($this->fields)) {
?>
<div class="hikamarket_section_container
hikamarket_section_product_fields">
<h3 data-section-toggle="product_fields"
class="hikamarket_section_toggle"><?php echo
JText::_('FIELDS'); ?></h3>
<div id="hikamarket_section_product_fields">
<?php
foreach($this->fields as $fieldName => $oneExtraField) {
?>
<dl id="hikashop_product_<?php echo $fieldName; ?>"
class="hikam_options">
<dt class="hikamarket_product_<?php echo $fieldName;
?>"><?php echo
$this->fieldsClass->getFieldName($oneExtraField); ?></dt>
<dd class="hikamarket_product_<?php echo $fieldName;
?>"><?php
$onWhat = 'onchange';
if($oneExtraField->field_type == 'radio')
$onWhat = 'onclick';
echo $this->fieldsClass->display($oneExtraField,
@$this->product->$fieldName,
'data[product]['.$fieldName.']', false, '
'.$onWhat.'="hikashopToggleFields(this.value,\''.$fieldName.'\',\'product\',0);"');
?></dd>
</dl>
<?php
}
?>
</div>
</div>
<?php
}
}
if($this->aclEdit('plugin')) {
$html = array();
JPluginHelper::importPlugin('hikashop');
JPluginHelper::importPlugin('hikamarket');
JFactory::getApplication()->triggerEvent('onMarketProductBlocksDisplay',
array(&$this->product, &$html));
foreach($html as $h) {
echo $h;
}
}
?>
</div>
</div>
<?php if($this->aclEdit('variants')) { ?>
</div>
<div id="hikamarket_product_edition_tab_2"
style="display:none;">
<div id="hikamarket_product_variant_list"><?php
echo $this->loadTemplate('variants');
?></div>
<div id="hikamarket_product_variant_edition">
</div>
</div>
<?php } ?>
<?php if(!empty($this->product->product_type) &&
$this->product->product_type == 'variant' &&
!empty($this->product->product_parent_id)) { ?>
<input type="hidden"
name="data[product][product_type]" value="<?php echo
$this->product->product_type; ?>"/>
<input type="hidden"
name="data[product][product_parent_id]" value="<?php echo
(int)$this->product->product_parent_id; ?>"/>
<?php } ?>
<input type="hidden" name="cancel_action"
value="<?php echo @$this->cancel_action; ?>"/>
<input type="hidden" name="cancel_url"
value="<?php echo @$this->cancel_url; ?>"/>
<input type="hidden" name="cid[]"
value="<?php echo @$this->product->product_id;
?>"/>
<input type="hidden" name="option"
value="<?php echo HIKAMARKET_COMPONENT; ?>"/>
<input type="hidden" name="task"
value=""/>
<input type="hidden" name="ctrl"
value="product"/>
<?php echo JHTML::_('form.token'); ?>
</form>
PK�[a"��&&(views/productmarket/tmpl/form_bundle.phpnu�[���<?php
/**
* @package HikaMarket for Joomla!
* @version 3.1.1
* @author Obsidev S.A.R.L.
* @copyright (C) 2011-2020 OBSIDEV. All rights reserved.
* @license GNU/GPLv3 http://www.gnu.org/licenses/gpl-3.0.html
*/
defined('_JEXEC') or die('Restricted access');
?><table id="hikamarket_product_characteristics_table"
class="adminlist table table-striped table-bordered
table-condensed" style="width:100%">
<thead>
<tr>
<th class="title"><?php
echo JText::_('HIKA_NAME');
?></th>
<th class="title"><?php
echo JText::_('PRODUCT_QUANTITY');
?></th>
<th style="width:40px;text-align:center">
<a class="hikabtn hikabtn-success hikabtn-mini"
href="#" onclick="return
window.productMgr.newBundle();"><i class="fas
fa-plus"></i></a>
</th>
</tr>
</thead>
<tfoot>
<tr id="hikamarket_bundle_add_zone"
style="display:none;">
<td colspan="3">
<dl>
<dt><?php echo JText::_('PRODUCT_NAME');
?></dt>
<dd><?php
echo $this->nameboxType->display(
null,
null,
hikamarketNameboxType::NAMEBOX_SINGLE,
'product',
array(
'id' => 'hikamarket_bundle_nb_add',
'root' => $this->rootCategory,
'allvendors' => 0,
'variants' => true,
'default_text' => 'PLEASE_SELECT',
)
);
?></dd>
<dt><?php echo JText::_('PRODUCT_QUANTITY');
?></dt>
<dd>
<input type="text" size="5"
style="width:70px;" id="hikamarket_bundle_qty_add"
name="" value="1"/>
</dd>
</dl>
<div style="float:right">
<button onclick="return window.productMgr.addBundle();"
class="hikabtn hikabtn-success"><i class="fas
fa-check"></i> <?php echo JText::_('HIKA_SAVE');
;?></button>
</div>
<button onclick="return window.productMgr.cancelNewBundle();"
class="hikabtn hikabtn-danger"><i class="far
fa-times-circle"></i> <?php echo
JText::_('HIKA_CANCEL'); ;?></button>
<div style="clear:both"></div>
</td>
</tr>
</tfoot>
<tbody>
<?php
$k = 0;
if(!empty($this->product->bundle)) {
foreach($this->product->bundle as $bundle) {
$pid = (int)$bundle->product_related_id;
?>
<tr class="row<?php echo $k ?>">
<td><?php
$desc = JText::_('PRODUCT_ID') . ': ' . $pid;
echo hikamarket::tooltip($desc, $bundle->product_name, '',
$bundle->product_name);
?></td>
<td>
<input type="text" size="5"
style="width:70px;" name="data[product][bundle][<?php
echo $pid; ?>]" value="<?php echo
max((int)$bundle->product_related_quantity, 1); ?>"/>
</td>
<td style="text-align:center">
<a href="#delete"
onclick="window.hikashop.deleteRow(this); return false;"><i
class="fas fa-trash-alt"></i></a>
</td>
</tr>
<?php
$k = 1 - $k;
}
}
?>
<tr id="hikamarket_bundle_row_template"
class="row<?php echo $k ?>"
style="display:none;">
<td>{NAME}</td>
<td>
<input type="text" size="5"
style="width:70px;" name="{INPUT_NAME}"
value="{VALUE}"/>
</td>
<td style="text-align:center">
<a href="#delete"
onclick="window.hikashop.deleteRow(this); return false;"><i
class="fas fa-trash-alt"></i></a>
</td>
</tr>
</tbody>
</table>
<script type="text/javascript">
window.productMgr.newBundle = function() {
var w = window, d = document, el = null;
w.oNameboxes['hikamarket_bundle_nb_add'].clear();
el = d.getElementById('hikamarket_bundle_qty_add');
if(el) el.value = '1';
el = d.getElementById('hikamarket_bundle_add_zone');
if(el) el.style.display = '';
return false;
};
window.productMgr.cancelNewBundle = function() {
var w = window, d = document, o = w.Oby;
var el = d.getElementById('hikamarket_bundle_add_zone');
if(el) el.style.display = 'none';
return false;
};
window.productMgr.addBundle = function() {
var w = window, d = document, o = w.Oby, c = null, cv = null, ct = null,
el = d.getElementById('hikamarket_bundle_nb_add_valuehidden');
if(el) {
c = parseInt(el.value);
el = d.getElementById('hikamarket_bundle_nb_add_valuetext');
if(el) ct = el.innerHTML;
}
el = d.getElementById('hikamarket_bundle_qty_add');
if(el) cv = parseInt(el.value);
if(c === null || isNaN(c) || c === 0 || isNaN(cv) || cv === 0)
return false;
var htmlblocks = { NAME: ct, ID: c, INPUT_NAME:
'data[product][bundle][' + c + ']', VALUE: cv };
w.hikashop.dupRow('hikamarket_bundle_row_template',
htmlblocks);
w.productMgr.cancelNewBundle();
return false;
};
</script>
PK�[�~>��%�%0views/productmarket/tmpl/form_characteristic.phpnu�[���<?php
/**
* @package HikaMarket for Joomla!
* @version 3.1.1
* @author Obsidev S.A.R.L.
* @copyright (C) 2011-2020 OBSIDEV. All rights reserved.
* @license GNU/GPLv3 http://www.gnu.org/licenses/gpl-3.0.html
*/
defined('_JEXEC') or die('Restricted access');
?><table id="hikamarket_product_characteristics_table"
class="adminlist table table-striped table-bordered"
style="width:100%">
<thead>
<tr>
<th style="width:1%"></th>
<th class="title"><?php
echo JText::_('HIKA_NAME');
?></th>
<th style="width:40px;text-align:center">
<a class="hikabtn hikabtn-success hikabtn-mini"
href="#" onclick="return
window.productMgr.newCharacteristic();"><i class="fas
fa-plus"></i></a>
</th>
</tr>
</thead>
<tfoot>
<tr id="hikamarket_characteristic_add_zone"
style="display:none;">
<td colspan="3">
<dl>
<dt><?php echo JText::_('HIKAM_CHARACTERISTIC');
?></dt>
<dd><?php
echo $this->nameboxVariantType->display(
null,
null,
hikamarketNameboxType::NAMEBOX_SINGLE,
'characteristic',
array(
'id' => 'hikamarket_characteristic_nb_add',
'add' => true,
'displayFormat' => '{characteristic_value} -
{characteristic_alias}',
'vendor' => @$this->vendor->vendor_id,
'default_text' => 'PLEASE_SELECT'
)
);
?></dd>
<dt><?php echo
JText::_('HIKAM_CHARACTERISTIC_DEFAULT_VALUE'); ?></dt>
<dd><?php
echo $this->nameboxVariantType->display(
null,
null,
hikamarketNameboxType::NAMEBOX_SINGLE,
'characteristic_value',
array(
'id' => 'hikamarket_characteristic_nb_def',
'add' => true,
'vendor' => @$this->vendor->vendor_id,
'url_params' => array('ID' => -1),
'default_text' => 'PLEASE_SELECT'
)
);
?></dd>
</dl>
<div style="float:right">
<button onclick="return
window.productMgr.addCharacteristic();" class="hikabtn
hikabtn-success"><i class="fas fa-check"></i>
<?php echo JText::_('HIKA_SAVE'); ;?></button>
</div>
<button onclick="return
window.productMgr.cancelNewCharacteristic();" class="hikabtn
hikabtn-danger"><i class="far
fa-times-circle"></i> <?php echo
JText::_('HIKA_CANCEL'); ;?></button>
<div style="clear:both"></div>
</td>
</tr>
</tfoot>
<tbody>
<?php
$k = 0;
$current_characteristics = array();
if(empty($this->product->characteristics))
$this->product->characteristics = array();
foreach($this->product->characteristics as $characteristic) {
if((int)$characteristic->characteristic_parent_id > 0)
continue;
$current_characteristics[] = (int)$characteristic->characteristic_id;
?>
<tr class="row<?php echo $k ?>">
<td class="hikam_column_move"><i class="fas
fa-arrows-alt-v"></i></td>
<td><?php
echo $characteristic->characteristic_value;
if(!empty($characteristic->characteristic_alias))
echo ' - ' . $characteristic->characteristic_alias;
?></td>
<td style="text-align:center">
<a href="#delete" onclick="return
window.productMgr.deleteCharacteristic(this, <?php echo
(int)$characteristic->characteristic_id; ?>); return
false;"><i class="fas
fa-trash-alt"></i></a>
<input type="hidden"
name="data[characteristics][]" value="<?php echo
(int)$characteristic->characteristic_id; ?>"/>
<?php
if(empty($this->product->product_id)) {
foreach($this->product->characteristics as $c) {
if((int)$c->characteristic_parent_id !=
(int)$characteristic->characteristic_id)
continue;
?> <input type="hidden"
name="data[characteristics][]" value="<?php echo
(int)$c->characteristic_id; ?>"/>
<?php
}
}
?>
</td>
</tr>
<?php
$k = 1 - $k;
}
?>
<tr id="hikamarket_characteristic_row_template"
class="row<?php echo $k ?>"
style="display:none;">
<td class="hikam_column_move"><i class="fas
fa-arrows-alt-v"></i></td>
<td>{NAME}</td>
<td style="text-align:center">
<a href="#delete" onclick="return
window.productMgr.deleteCharacteristic(this, {ID}); return
false;"><i class="fas
fa-trash-alt"></i></a>
<input type="hidden" name="{INPUT_NAME}"
value="{ID}"/>
<input type="hidden" name="{INPUT_NAME_2}"
value="{ID_2}"/>
</td>
</tr>
</tbody>
</table>
<script type="text/javascript">
window.productMgr.current_characteristics = [<?php echo
implode(',', $current_characteristics); ?>];
window.productMgr.addCharacteristic = function() {
var w = window, d = document, o = w.Oby, c = null, cv = null, ct = null,
el =
d.getElementById('hikamarket_characteristic_nb_add_valuehidden');
if(el) {
c = parseInt(el.value);
el =
d.getElementById('hikamarket_characteristic_nb_add_valuetext');
if(el)
ct = el.innerHTML;
}
if(isNaN(c) || c === 0) c = null;
el =
d.getElementById('hikamarket_characteristic_nb_def_valuehidden')
if(el) cv = parseInt(el.value);
if(isNaN(cv) || cv === 0) cv = null;
if(c <= 0 || c === null || cv <= 0 || cv === null)
return false;
var htmlblocks = {
NAME: ct, ID: c, INPUT_NAME: 'data[characteristics][]',
INPUT_NAME_2: 'data[characteristics][]', ID_2: cv
};
<?php
if((int)$this->product->product_id > 0) {
?>
var url = '<?php echo
hikamarket::completeLink('product&task=characteristic&subtask=add&product_id='.(int)$this->product->product_id,true,false,true);
?>',
formData = encodeURI('characteristic_id') + '=' +
encodeURIComponent(c) + '&' +
encodeURI('characteristic_value_id') + '=' +
encodeURIComponent(cv) + '&' + encodeURI('<?php echo
hikamarket::getFormToken(); ?>') + '=1';
o.xRequest(url, {mode:'POST',data:formData}, function(x,p) {
var ret = parseInt(x.responseText);
if(ret === NaN || ret <= 0)
return;
htmlblocks.INPUT_NAME_2 = '';
htmlblocks.ID_2 = '';
w.hikamarket.dupRow('hikamarket_characteristic_row_template',
htmlblocks);
var el =
d.getElementById('hikamarket_product_edition_header');
if(el && el.style.display == 'none')
el.style.display = '';
if(window.productMgr.refreshVariantList)
window.productMgr.refreshVariantList();
});
<?php } else { ?>
w.hikamarket.dupRow('hikamarket_characteristic_row_template',
htmlblocks);
<?php } ?>
w.productMgr.cancelNewCharacteristic();
w.productMgr.current_characteristics[w.productMgr.current_characteristics.length]
= c;
return false;
};
window.productMgr.deleteCharacteristic = function(el, id) {
var w = window, d = document, o = w.Oby;
if(!confirm('<?php echo str_replace('\'',
'\\\'', JText::_('PLEASE_CONFIRM_DELETION'));
?>'))
return false;
<?php
if((int)$this->product->product_id > 0) {
?>
var url = '<?php echo
hikamarket::completeLink('product&task=characteristic&subtask=remove&product_id='.(int)$this->product->product_id,true,false,true);
?>',
formData = encodeURI('characteristic_id') + '=' +
encodeURIComponent(id) + '&' + encodeURI('<?php echo
hikamarket::getFormToken(); ?>') + '=1';
o.xRequest(url, {mode:'POST',data:formData}, function(x,p) {
if(x.responseText == '0') {
var el =
d.getElementById('hikamarket_product_edition_header');
if(el && el.style.display == '')
el.style.display = 'none';
}
if(w.productMgr.refreshVariantList)
w.productMgr.refreshVariantList();
});
<?php } ?>
if(w.oNameboxes['hikamarket_characteristic_nb_add'] &&
w.oNameboxes['hikamarket_characteristic_nb_add'].content)
w.oNameboxes['hikamarket_characteristic_nb_add'].content.unblock(id);
for(var i = w.productMgr.current_characteristics.length - 1; i >= 0;
i--) {
if(w.productMgr.current_characteristics[i] &&
w.productMgr.current_characteristics[i] == id) {
delete w.productMgr.current_characteristics[i];
break;
}
}
w.hikamarket.deleteRow(el);
return false;
};
window.productMgr.newCharacteristic = function() {
var w = window, d = document;
w.oNameboxes['hikamarket_characteristic_nb_add'].clear();
w.oNameboxes['hikamarket_characteristic_nb_add'].content.config.hideBlocked
= true;
w.oNameboxes['hikamarket_characteristic_nb_add'].content.block(w.productMgr.current_characteristics);
var el =
d.getElementById('hikamarket_characteristic_add_zone');
if(el) el.style.display = '';
return false;
};
window.productMgr.cancelNewCharacteristic = function() {
var w = window, d = document, o = w.Oby;
var el =
d.getElementById('hikamarket_characteristic_add_zone');
if(el) el.style.display = 'none';
el = d.getElementById('hikamarket_characteristic_add_list');
if(el) setTimeout(function() { el.innerHTML = ''; }, 10);
return false;
};
window.Oby.ready(function() {
var w = window, ona = 'hikamarket_characteristic_nb_add', onv =
'hikamarket_characteristic_nb_def',
u = '<?php echo
hikamarket::completeLink('characteristic&task=findList&characteristic_type=value&characteristic_parent_id={ID}&search=SEARCH',
true, false, true); ?>',
a = '<?php echo
hikamarket::completeLink('characteristic&task=addCharacteristic&characteristic_type=value&characteristic_parent_id={ID}&tmpl=json&'.hikamarket::getFormToken().'=1',
false, false, true); ?>';
if(!w.oNameboxes[ona] || !w.oNameboxes[onv])
return;
w.oNameboxes[ona].register('set', function(e) {
if(e.value) {
w.oNameboxes[onv].changeUrl(u.replace('{ID}', e.value), {add:
a.replace('{ID}', e.value)});
} else {
w.oNameboxes[onv].loadData(null);
w.oNameboxes[onv].clear();
}
});
hkjQuery("#hikamarket_product_characteristics_table
tbody").sortable({
axis: "y", cursor: "move", opacity: 0.8,
helper: function(e, ui) {
ui.children().each(function() {
hkjQuery(this).width(hkjQuery(this).width());
});
return ui;
},
stop: function(event, ui) {
window.hikamarket.cleanTableRows('hikamarket_product_characteristics_table');
}
});
});
</script>
PK�[�V�@��&views/productmarket/tmpl/form_file.phpnu�[���<?php
/**
* @package HikaMarket for Joomla!
* @version 3.1.1
* @author Obsidev S.A.R.L.
* @copyright (C) 2011-2020 OBSIDEV. All rights reserved.
* @license GNU/GPLv3 http://www.gnu.org/licenses/gpl-3.0.html
*/
defined('_JEXEC') or die('Restricted access');
?><?php
$ajax = false;
if(!empty($this->upload_ajax))
$ajax = true;
$product_type = ((!empty($this->params->product_type) &&
$this->params->product_type == 'variant') ||
!empty($this->editing_variant)) ? 'variant' :
'product';
$upload = $this->aclEdit('files/upload');
$options = array(
'classes' => array(
'mainDiv' => 'hikamarket_main_file_div',
'contentClass' => 'hikamarket_product_files',
'btn_add' => 'fas fa-plus',
'btn_upload' => 'fas fa-upload'
),
'upload' => $upload,
'upload_base_url' =>
'index.php?option=com_hikamarket&ctrl=upload',
'toolbar' => array(
$this->popup->display(
'<span class="fas fa-plus"></span>',
'MARKET_ADD_FILE',
hikamarket::completeLink('product&task=file&pid='.$this->product->product_id,true),
'hikamarket_file_add',
750, 460, 'class="hikabtn hikabtn-primary"
onclick="return window.productMgr.addFile(this,
'.(int)$this->product->product_id.',\''.$product_type.'\');"',
'', 'link'
)
),
'tooltip' => true,
'text' => ($upload ?
JText::_('HIKAM_PRODUCT_FILES_EMPTY_UPLOAD') :
JText::_('HIKAM_PRODUCT_FILES_EMPTY')),
'uploader' => array('product',
'product_file'),
'vars' => array(
'product_id' => $this->product->product_id,
'product_type' => $product_type,
'file_type' => 'file'
),
'ajax' => $ajax
);
$content = array();
if(!empty($this->product->files)) {
foreach($this->product->files as $k => $file) {
$file->product_id = $this->product->product_id;
$file->product_type = $product_type;
$this->params = $file;
$content[] = $this->loadTemplate('file_entry');
}
}
if(empty($this->editing_variant))
echo
$this->uploaderType->displayFileMultiple('hikamarket_product_file',
$content, $options);
else
echo
$this->uploaderType->displayFileMultiple('hikamarket_product_variant_file',
$content, $options);
if(empty($this->editing_variant))
echo
$this->popup->display('','MARKET_FILE','','hikamarket_product_file_edit',750,
460,'', '', 'link');
else
echo
$this->popup->display('','MARKET_FILE','','hikamarket_product_variant_file_edit',750,
460,'', '', 'link');
?>
<script type="text/javascript">
window.productMgr.addFile = function(el, pid, type) {
var t = window.hikamarket;
if(type === undefined || type == '') type =
'product';
if(type == 'variant') type = 'product_variant';
t.submitFct = function(data) {
var o = window.Oby, d = document, c =
d.getElementById('hikamarket_'+type+'_file_content');
if(data.cid) {
var url = "<?php echo
hikamarket::completeLink('product&task=file_entry&pid=HIKAPID&cid=HIKACID',true);
?>";
o.xRequest(
url.replace('HIKAPID',pid).replace('HIKACID',data.cid),
null,
function(xhr,params){
var myData = document.createElement('div');
hkjQuery(myData).html(xhr.responseText);
c.appendChild(myData);
hkjQuery('#hikamarket_'+type+'_file_empty').hide();
}
);
}
};
t.openBox(el);
return false;
};
window.productMgr.editFile = function(el, id, pid, type) {
var t = window.hikamarket, href = null, n = el;
if(type === undefined || type == '') type =
'product';
if(type == 'variant') type = 'product_variant';
t.submitFct = function(data) {
var o = window.Oby, c = el;
while(c && !o.hasClass(c,
'hikamarket_'+type+'_file'))
c = c.parentNode;
if(c && data.cid) {
var url = "<?php echo
hikamarket::completeLink('product&task=file_entry&pid=HIKAPID&cid=HIKACID',true);
?>";
o.xRequest(
url.replace('HIKAPID',
pid).replace('HIKACID',data.cid),
null,
function(xhr,params){
var myData = document.createElement('div');
hkjQuery(myData).html(xhr.responseText);
c.parentNode.replaceChild(myData, c);
}
);
}
};
if(el.getAttribute('rel') == null) {
href = el.href;
n = 'hikamarket_'+type+'_file_edit';
}
t.openBox(n,href,(el.getAttribute('rel') == null));
return false;
};
window.productMgr.delFile = function(el, type) {
if(!confirm('<?php echo
$this->escape(JText::_('PLEASE_CONFIRM_DELETION'));
?>')) return false;
if(type === undefined || type == '') type =
'product';
if(type == 'variant') type = 'product_variant';
return
window.hkUploaderList['hikamarket_'+type+'_file'].delBlock(el);
};
window.hikashop.ready(function() {
hkjQuery('#hikamarket_product<?php
if(!empty($this->editing_variant)) { echo '_variant'; }
?>_file_content').sortable({
cursor: "move",
placeholder: "ui-state-highlight",
forcePlaceholderSize: true
});
});
</script>
PK�[z���4
4
,views/productmarket/tmpl/form_file_entry.phpnu�[���<?php
/**
* @package HikaMarket for Joomla!
* @version 3.1.1
* @author Obsidev S.A.R.L.
* @copyright (C) 2011-2020 OBSIDEV. All rights reserved.
* @license GNU/GPLv3 http://www.gnu.org/licenses/gpl-3.0.html
*/
defined('_JEXEC') or die('Restricted access');
?><?php
$type = (!empty($this->params->product_type) &&
$this->params->product_type == 'variant') ?
'variant' : 'product';
?><div class="hikamarket_product_file">
<a href="#delete" class="deleteFile"
onclick="return window.productMgr.delFile(this, '<?php echo
$type; ?>');"><i class="fas
fa-trash-alt"></i></a>
<?php
if(!empty($this->params->file_free_download)) {
echo '';
} else {
echo '';
}
?>
<span class="file_name"
style="white-space:nowrap"><?php
if(empty($this->params->file_id))
$this->params->file_id = 0;
if(empty($this->params->file_name))
$this->params->file_name = '<em>' .
JText::_('HIKA_NONE') . '</em>';
echo $this->popup->display(
$this->params->file_name,
'MARKET_FILE',
hikamarket::completeLink('product&task=file&cid='.$this->params->file_id.'&pid='.$this->params->product_id,true),
'',
750, 460, 'onclick="return window.productMgr.editFile(this,
'.$this->params->file_id.',
'.$this->params->product_id.',
\''.$type.'\');"', '',
'link'
);
?></span><br/>
<span class="file_path_text"><?php echo
JText::_('FILENAME');?>: </span><span
class="file_path"><?php
if($this->vendor->vendor_id > 1) {
$start = 'vendor' . $this->vendor->vendor_id;
if(substr($this->params->file_path, 0, strlen($start)) == $start)
$this->params->file_path = substr($this->params->file_path,
strlen($start)+1);
}
echo hikamarket::limitString($this->params->file_path, 24,
'...', true);
?></span><br/>
<span class="file_limit_text"><?php echo
JText::_('DOWNLOADS');?>: </span><span
class="file_limit"><?php
if($this->vendor->vendor_id <= 1)
echo (int)@$this->params->download_number . ' / ';
if(!isset($this->params->file_limit) ||
(int)$this->params->file_limit == 0)
echo
'<em>'.$this->shopConfig->get('download_number_limit').'</em>';
else if((int)$this->params->file_limit > 0)
echo $this->params->file_limit;
else
echo JText::_('UNLIMITED');
?></span><br/>
<span class="file_free_text"><?php echo
JText::_('FREE_DOWNLOAD');?>: </span><span
class="file_free"><?php
echo ( !empty($this->params->file_free_download) ?
JText::_('JYES') : JText::_('JNO') );
?></span>
<input type="hidden" name="data[<?php echo $type;
?>][product_files][]" value="<?php echo
$this->params->file_id; ?>"/>
</div>
PK�[WK�(
(
'views/productmarket/tmpl/form_image.phpnu�[���<?php
/**
* @package HikaMarket for Joomla!
* @version 3.1.1
* @author Obsidev S.A.R.L.
* @copyright (C) 2011-2020 OBSIDEV. All rights reserved.
* @license GNU/GPLv3 http://www.gnu.org/licenses/gpl-3.0.html
*/
defined('_JEXEC') or die('Restricted access');
?><?php
$ajax = false;
if(!empty($this->upload_ajax))
$ajax = true;
$product_type = (@$this->params->product_type == 'variant'
|| @$this->product->product_type == 'variant') ?
'variant' : 'product';
$uploader_id = empty($this->editing_variant) ?
'hikamarket_product_image' :
'hikamarket_product_variant_image';
$upload = $this->aclEdit('images/upload');
$options = array(
'classes' => array(
'mainDiv' => 'hikamarket_main_image_div',
'contentClass' => 'hikamarket_product_images',
'firstImg' =>
'hikamarket_product_main_image_thumb',
'otherImg' => 'hikamarket_small_image_div',
'btn_add' => 'fas fa-plus',
'btn_upload' => 'fas fa-upload'
),
'upload' => $upload,
'upload_base_url' =>
'index.php?option=com_hikamarket&ctrl=upload',
'gallery' => $upload,
'tooltip' => true,
'text' => ($upload ?
JText::_('HIKAM_PRODUCT_IMAGES_EMPTY_UPLOAD') :
JText::_('HIKAM_PRODUCT_IMAGES_EMPTY')),
'uploader' => array('product',
'product_image'),
'vars' => array(
'product_id' => $this->product->product_id,
'product_type' => $product_type,
'file_type' => 'product'
),
'buttons' => array(),
'ajax' => $ajax
);
if($this->aclEdit('images/link')) {
$options['buttons']['image_link' ] = array(
'tooltip' => JText::_('HIKA_ENTER_IMAGE_PATH'),
'class' => 'fas fa-link',
'text' => 'HIKA_ENTER_IMAGE_PATH',
'id' => $uploader_id.'_urlpopup',
'url' =>
hikamarket::completeLink('product&task=image&image_link=1&pathonly=1&pid='.(int)$this->product->product_id,
true),
'onclick' => 'return
window.hkUploaderList[\''.$uploader_id.'\'].genericButtonClick(this);',
);
}
$content = array();
if(!empty($this->product->images)) {
foreach($this->product->images as $k => $image) {
$image->product_id = $this->product->product_id;
$image->product_type = $product_type;
$this->params = $image;
$content[] = $this->loadTemplate('image_entry');
}
}
echo $this->uploaderType->displayImageMultiple($uploader_id,
$content, $options);
echo
$this->popup->display('','MARKET_EDIT_IMAGE','','hikamarket_product_image_edit',750,
460,'', '', 'link');
?>
<script type="text/javascript">
window.productMgr.editImage = function(el, id, type) {
var w = window, t = w.hikamarket, href = null, n = el;
if(type === undefined || type == '') type =
'product';
if(type == 'variant') type = 'product_variant';
if(!w.hkUploaderList['hikamarket_'+type+'_image'])
return false;
if(w.hkUploaderList['hikamarket_'+type+'_image'].imageClickBlocked)
return false; // Firefox trick
t.submitFct = function(data) {};
if(el.getAttribute('rel') == null) {
href = el.href;
n = 'hikamarket_product_image_edit';
}
t.openBox(n,href,(el.getAttribute('rel') == null));
return false;
};
window.productMgr.delImage = function(el, type) {
if(type === undefined || type == '') type =
'product';
if(type == 'variant') type = 'product_variant';
if(!window.hkUploaderList['hikamarket_'+type+'_image'])
return false;
window.hkUploaderList['hikamarket_'+type+'_image'].delImage(el);
return false;
};
</script>
PK�[�m1���-views/productmarket/tmpl/form_image_entry.phpnu�[���<?php
/**
* @package HikaMarket for Joomla!
* @version 3.1.1
* @author Obsidev S.A.R.L.
* @copyright (C) 2011-2020 OBSIDEV. All rights reserved.
* @license GNU/GPLv3 http://www.gnu.org/licenses/gpl-3.0.html
*/
defined('_JEXEC') or die('Restricted access');
?><?php
$type = (!empty($this->params->product_type) &&
$this->params->product_type == 'variant') ?
'variant' : 'product';
?><a href="#delete" class="deleteImg"
onclick="return window.productMgr.delImage(this, '<?php echo
$type; ?>');"><i class="fas
fa-trash-alt"></i></a>
<div class="hikamarket_image">
<?php
$size_x =
(int)$this->config->get('product_edition_image_x', 100);
if($size_x <= 20) $size_x = 100;
$size_y =
(int)$this->config->get('product_edition_image_y', 100);
if($size_y <= 20) $size_y = 100;
if(empty($this->params->file_id))
$this->params->file_id = 0;
$image =
$this->imageHelper->getThumbnail(@$this->params->file_path,
array($size_x, $size_y), array('default' => true));
if(!empty($image) && $image->success) {
$extra_data = '';
if(!empty($image->external))
$extra_data .= 'width="100"
height="100;"';
$content = '<img src="'.$image->url.'"
alt="'.$image->filename.'"
'.$extra_data.'/>';
} else {
$content = '<img src=""
alt="'.@$this->params->file_name.'" />';
}
echo $this->popup->display(
$content,
'MARKET_IMAGE',
hikamarket::completeLink('product&task=image&cid='.@$this->params->file_id.'&pid='.@$this->params->product_id,true),
'',
750, 460, 'onclick="return window.productMgr.editImage(this,
'.$this->params->file_id.',
\''.$type.'\');"', '',
'link'
);
?>
</div><input type="hidden" name="data[<?php echo
$type; ?>][product_images][]" value="<?php echo
@$this->params->file_id;?>"/>
PK�[���%%%%'views/productmarket/tmpl/form_price.phpnu�[���<?php
/**
* @package HikaMarket for Joomla!
* @version 3.1.1
* @author Obsidev S.A.R.L.
* @copyright (C) 2011-2020 OBSIDEV. All rights reserved.
* @license GNU/GPLv3 http://www.gnu.org/licenses/gpl-3.0.html
*/
defined('_JEXEC') or die('Restricted access');
?><?php
$this->price_acls = array(
'value' => $this->aclEdit('price/value'),
'tax' => $this->aclEdit('price/tax') &&
!$this->shopConfig->get('floating_tax_prices', 0),
'currency' => $this->aclEdit('price/currency')
&& (count($this->currencies) > 1),
'quantity' => $this->aclEdit('price/quantity'),
'acl' => hikashop_level(2) &&
$this->aclEdit('price/acl'),
'user' => hikashop_level(2) &&
$this->aclEdit('price/user'),
'date' => hikashop_level(2) &&
$this->aclEdit('price/date'),
);
if(!$this->price_acls['value'] &&
!$this->price_acls['tax'] &&
$this->aclEdit('price/tax') &&
$this->shopConfig->get('floating_tax_prices', 0))
$this->price_acls['value'] = true;
if(!$this->price_acls['value'] &&
!$this->price_acls['tax'])
return;
$show_minimal = (!$this->price_acls['currency'] &&
!$this->price_acls['quantity'] &&
!$this->price_acls['acl'] &&
!$this->price_acls['user']);
$form_key = empty($this->editing_variant) ? 'price' :
'variantprice';
if($show_minimal) {
echo $this->loadTemplate('price_mini');
return;
}
if(hikashop_level(2) && ($this->price_acls['acl'] ||
$this->price_acls['user'] ||
$this->price_acls['date'])) {
echo $this->loadTemplate('price_advanced');
return;
}
?>
<table class="table table-bordered table-condensed"
style="width:100%">
<thead>
<tr>
<th class="title"><?php
echo JText::_('PRICE');
?></th>
<?php if($this->price_acls['tax'] &&
$this->price_acls['value']) { ?>
<th class="title"><?php
echo JText::_('PRICE_WITH_TAX');
?></th>
<?php }
if($this->price_acls['currency']) { ?>
<th class="title"><?php
echo JText::_('CURRENCY');
?></th>
<?php }
if($this->price_acls['quantity']) { ?>
<th class="title"><?php
echo hikamarket::tooltip(JText::_('MINIMUM_QUANTITY'),
'', '', JText::_('MIN_QTY'), '',
0);
?></th>
<?php } ?>
<th style="text-align:center">
<a href="#" class="hikabtn hikabtn-success
hikabtn-mini" onclick="return
window.productMgr.newPrice('<?php echo $form_key;
?>');"><i class="fas
fa-plus"></i></a>
</th>
</tr>
</thead>
<tbody>
<?php
$k = 0;
if(!empty($this->product->prices)) {
foreach($this->product->prices as $i => $price) {
if(empty($price->price_min_quantity))
$price->price_min_quantity = 1;
$pre_price = '';
$post_price = '';
if(!$this->price_acls['currency']) {
$currency = empty($price->price_currency_id) ?
$this->default_currency :
$this->currencies[$price->price_currency_id];
if(is_string($currency->currency_locale))
$currency->currency_locale =
hikamarket::unserialize($currency->currency_locale);
if($currency->currency_locale['p_cs_precedes']) {
$pre_price .= $currency->currency_symbol;
if($currency->currency_locale['p_sep_by_space'])
$pre_price .= ' ';
} else {
if($currency->currency_locale['p_sep_by_space'])
$post_price .= ' ';
$post_price .= $currency->currency_symbol;
}
}
if(empty($price->price_currency_id))
$price->price_currency_id = $this->default_currency;
?> <tr class="row<?php echo $k;?>"
id="hikamarket_<?php echo $form_key; ?>_<?php echo
$i;?>">
<td class="hikam_price">
<input type="hidden" name="<?php echo $form_key;
?>[<?php echo $i;?>][price_id]" value="<?php echo
@$price->price_id;?>" />
<?php if($this->price_acls['value']) { ?>
<?php echo $pre_price; ?><input size="10"
type="text" id="hikamarket_<?php echo $form_key;
?>_<?php echo $i;?>_price" name="<?php echo
$form_key; ?>[<?php echo $i;?>][price_value]"
value="<?php echo @$price->price_value; ?>"
onchange="window.productMgr.updatePriceValue(<?php echo $i; ?>,
false, '<?php echo $form_key; ?>')" /><?php echo
$post_price; ?>
<?php } else { ?>
<input size="10" type="hidden"
id="hikamarket_<?php echo $form_key; ?>_<?php echo
$i;?>_price" name="<?php echo $form_key; ?>[<?php
echo $i;?>][price_value]" value="<?php echo
@$price->price_value; ?>"/>
<?php echo $pre_price; ?><input size="10"
type="text" id="hikamarket_<?php echo $form_key;
?>_<?php echo $i;?>_with_tax" name="<?php echo
$form_key; ?>_with_tax_<?php echo $i;?>" value="<?php
echo @$price->price_value_with_tax; ?>"
onchange="window.productMgr.updatePriceValue(<?php echo $i; ?>,
true, '<?php echo $form_key; ?>')"/><?php echo
$post_price; ?>
<?php } ?>
</td>
<?php if($this->price_acls['tax'] &&
$this->price_acls['value']) { ?>
<td class="hikam_price">
<?php echo $pre_price; ?><input size="10"
type="text" id="hikamarket_<?php echo $form_key;
?>_<?php echo $i;?>_with_tax" name="<?php echo
$form_key; ?>_with_tax_<?php echo $i;?>" value="<?php
echo @$price->price_value_with_tax; ?>"
onchange="window.productMgr.updatePriceValue(<?php echo $i; ?>,
true, '<?php echo $form_key; ?>')"/><?php echo
$post_price; ?>
</td>
<?php }
if($this->price_acls['currency']) { ?>
<td class="hikam_currency"><?php
echo
$this->currencyType->display($form_key.'['.$i.'][price_currency_id]',
@$price->price_currency_id,'class="no-chzn"');
?></td>
<?php }
if($this->price_acls['quantity']) { ?>
<td class="hikam_qty">
<input size="3" type="text" name="<?php
echo $form_key; ?>[<?php echo $i;?>][price_min_quantity]"
value="<?php echo @$price->price_min_quantity; ?>"
/>
</td>
<?php } ?>
<td style="text-align:center">
<a href="#"
onclick="window.hikamarket.deleteRow(this); return
false;"><i class="fas
fa-trash-alt"></i></a>
</td>
</tr>
<?php
$k = 1 - $k;
}
}
?> <tr class="row<?php echo $k;?>"
id="hikamarket_<?php echo $form_key; ?>_tpl"
style="display:none;">
<td class="hikam_price">
<input type="hidden" name="<?php echo $form_key;
?>[{id}][price_id]" value="" />
<?php if($this->price_acls['value']) { ?>
<?php echo $pre_price; ?><input size="10"
type="text" id="hikamarket_<?php echo $form_key;
?>_{id}_price" name="<?php echo $form_key;
?>[{id}][price_value]" value=""
onchange="window.productMgr.updatePriceValue({id}, false,
'<?php echo $form_key; ?>')" /><?php echo
$post_price; ?>
<?php } else { ?>
<input size="10" type="hidden"
id="hikamarket_<?php echo $form_key; ?>_{id}_price"
name="<?php echo $form_key; ?>[{id}][price_value]"
value=""/>
<?php echo $pre_price; ?><input size="10"
type="text" id="hikamarket_<?php echo $form_key;
?>_{id}_with_tax" value=""
onchange="window.productMgr.updatePriceValue({id}, true,
'<?php echo $form_key; ?>')"/><?php echo
$post_price; ?>
<?php } ?>
</td>
<?php if($this->price_acls['tax'] &&
$this->price_acls['value']) { ?>
<td class="hikam_price">
<?php echo $pre_price; ?><input size="10"
type="text" id="hikamarket_<?php echo $form_key;
?>_{id}_with_tax" value=""
onchange="window.productMgr.updatePriceValue({id}, true,
'<?php echo $form_key; ?>')"/><?php echo
$post_price; ?>
</td>
<?php }
if($this->price_acls['currency']) { ?>
<td class="hikam_currency"><?php echo
$this->currencyType->display($form_key.'[{id}][price_currency_id]',
$this->main_currency_id, 'class="no-chzn"');
?></td>
<?php }
if($this->price_acls['quantity']) { ?>
<td class="hikam_qty"><input size="3"
type="text" name="<?php echo $form_key;
?>[{id}][price_min_quantity]" value="" /></td>
<?php } ?>
<td style="text-align:center">
<a href="#" onclick="hikamarket.deleteRow(this);
return false;"><i class="fas
fa-trash-alt"></i></a>
</td>
</tr>
</tbody>
</table>
<script type="text/javascript">
if(!window.productMgr)
window.productMgr = {};
if(!window.productMgr.updatePriceValue) {
window.productMgr.updatePriceValue = function(id, taxed, key) {
<?php if($this->price_acls['tax'] ||
!$this->price_acls['value']) { ?>
var d = document, o = window.Oby, conversion = '', elName =
'hikamarket_'+key+'_'+id, destName = elName;
if(taxed) {
elName += '_with_tax'; destName += '_price';
conversion = 1;
} else {
elName += '_price'; destName += '_with_tax';
conversion = 0;
}
var price = d.getElementById(elName).value,
dest = d.getElementById(destName),
taxElem = d.getElementById('dataproductproduct_tax_id'),
tax_id = -1;
if(taxElem)
tax_id = taxElem.value;
<?php if(!empty($this->product->product_tax_id)) { ?>
else
tax_id = <?php echo (int)$this->product->product_tax_id; ?>;
<?php } ?>
var url = '<?php echo str_replace('\'',
'\\\'',
hikamarket::completeLink('product&task=getprice&price={PRICE}&product_id='.$this->product->product_id.'&tax_id={TAXID}&conversion={CONVERSION}',
true, false, true)); ?>';
url = url.replace('{PRICE}', price).replace('{TAXID}',
tax_id).replace('{CONVERSION}', conversion);
o.xRequest(url, null, function(xhr, params) {
dest.value = xhr.responseText;
});
<?php } ?>
};
}
if(!window.productMgr.newPrice) {
window.productMgr.newPrice = function(key) {
var t = window.hikamarket,
cpt = window.productMgr.cpt[key],
htmlBlocks = {id: cpt};
t.dupRow('hikamarket_'+key+'_tpl', htmlBlocks,
'hikamarket_'+key+'_'+cpt);
window.productMgr.cpt[key]++;
return false;
};
}
if(!window.productMgr.cpt)
window.productMgr.cpt = {};
window.productMgr.cpt['<?php echo $form_key; ?>'] =
<?php echo count(@$this->product->prices); ?>;
window.hikashop.ready(function(){ hikamarket.noChzn(); });
</script>
PK�[^�4amm0views/productmarket/tmpl/form_price_advanced.phpnu�[���<?php
/**
* @package HikaMarket for Joomla!
* @version 3.1.1
* @author Obsidev S.A.R.L.
* @copyright (C) 2011-2020 OBSIDEV. All rights reserved.
* @license GNU/GPLv3 http://www.gnu.org/licenses/gpl-3.0.html
*/
defined('_JEXEC') or die('Restricted access');
?><?php
$form_key = empty($this->editing_variant) ? 'price' :
'variantprice';
?>
<div id="hikamarket_product_edit_<?php echo $form_key;
?>">
<div class="hikamarket_ajax_loading_elem"></div>
<div class="hikamarket_ajax_loading_spinner"></div>
<table class="hikamarket_product_prices table table-bordered
table-striped" style="width:100%">
<thead>
<tr>
<th class="title"><?php
echo JText::_('PRICE');
?></th>
<?php if($this->price_acls['quantity'] ||
$this->price_acls['acl'] ||
$this->price_acls['user']) { ?>
<th class="title"><?php
echo JText::_('RESTRICTIONS');
?></th>
<?php } ?>
<th style="text-align:center">
<a class="hikabtn hikabtn-success hikabtn-mini"
href="#" onclick="return
window.productMgr.newPrice('<?php echo $form_key;
?>');"><i class="fas
fa-plus"></i></a>
</th>
</tr>
</thead>
<tbody id="hikamarket_<?php echo $form_key;
?>_list">
<?php
$k = 0;
if(!empty($this->product->prices)) {
foreach($this->product->prices as $i => $price) {
if(empty($price->price_min_quantity))
$price->price_min_quantity = 1;
if(empty($price->price_id))
continue;
$this->price_num = $i;
$this->price = $price;
?>
<tr class="row<?php echo $k;?>"
id="hikamarket_<?php echo $form_key; ?>_<?php echo $i;
?>" data-hkm-price="<?php echo (int)@$price->price_id;
?>"><?php
echo $this->loadTemplate('price_entry');
?></tr>
<?php
$k = 1 - $k;
}
}
?>
</tbody>
</table>
</div>
<script type="text/javascript">
if(!window.productMgr)
window.productMgr = {};
if(!window.productMgr.priceEdit)
window.productMgr.priceEdit = {};
window.productMgr.priceEdit['<?php echo $form_key; ?>'] =
<?php echo count($this->product->prices); ?>
if(!window.productMgr.updatePriceValue) {
window.productMgr.updatePriceValue = function(id, taxed, key) {
<?php if($this->price_acls['tax']){ ?>
var d = document, o = window.Oby, conversion = '', elName =
'hikamarket_'+key+'_'+id, destName = elName;
if(taxed) {
elName += '_with_tax_edit'; destName += '_edit';
conversion = 1;
} else {
elName += '_edit'; destName += '_with_tax_edit';
conversion = 0;
}
var price = d.getElementById(elName).value,
dest = d.getElementById(destName),
taxElem = d.getElementById('dataproductproduct_tax_id'),
tax_id = -1;
if(taxElem)
tax_id = taxElem.value;
<?php if(!empty($this->product->product_tax_id)) { ?>
else
tax_id = <?php echo (int)$this->product->product_tax_id; ?>;
<?php } ?>
var url = '<?php echo str_replace('\'',
'\\\'',
hikamarket::completeLink('product&task=getprice&price={PRICE}&product_id='.$this->product->product_id.'&tax_id={TAXID}&conversion={CONVERSION}',
true, false, true)); ?>';
url = url.replace('{PRICE}', price).replace('{TAXID}',
tax_id).replace('{CONVERSION}', conversion);
o.xRequest(url, null, function(xhr, params) {
dest.value = xhr.responseText;
});
<?php } ?>
};
}
if(!window.productMgr.newPrice) {
window.productMgr.newPrice = function(key) {
var d = document, w = window, o = w.Oby,
idx = (w.productMgr.priceEdit[key]++),
el = d.getElementById('hikamarket_' + key + '_' +
idx);
if(el)
return window.productMgr.editPrice(null, key, idx, 0);
var el = d.getElementById('hikamarket_' + key +
'_list');
tr = d.createElement('tr');
tr.className = 'row0';
tr.id = 'hikamarket_'+key+'_'+idx;
tr.setAttribute('data-hkm-price', 0);
el.appendChild(tr);
return window.productMgr.editPrice(null, key, idx, 0);
};
}
if(!window.productMgr.editPrice) {
window.productMgr.editPrice = function(el, key, num, id, state) {
var d = document, w = window, o = w.Oby,
container = d.getElementById('hikamarket_product_edit_'+key),
priceLine = d.getElementById('hikamarket_' + key +
'_' + num);
if(!priceLine) return false;
if(container) o.addClass(container, 'hikamarket_ajax_loading');
if(state === undefined || state === true) state = 1;
if(state === false) state = 0;
var url = '<?php echo
hikamarket::completeLink('product&task=editprice&product_id='.$this->product->product_id,
true, false, true); ?>',
data = o.getFormData(priceLine) + '&' +
o.encodeFormData({price_id:id,price_num:num,edition_state:state,formkey:key});
if(key == 'variantprice' && w.productMgr.variantEdition
&& w.productMgr.variantEdition.current)
data += '&variant_product_id=' +
encodeURIComponent(w.productMgr.variantEdition.current);
o.xRequest(url, {mode:'POST',data:data},function(xhr,params){
var tr = document.createElement('tr'), cell = null;
tr.innerHTML = xhr.responseText;
priceLine.innerHTML = '';
for(var i = tr.cells.length - 1; i >= 0; i--) {
cell = tr.cells[0];
tr.removeChild(cell);
priceLine.appendChild(cell);
cell = null;
}
window.Oby.updateElem(tr, xhr.responseText);
tr = null;
if(container) o.removeClass(container,
'hikamarket_ajax_loading');
});
return false;
};
}
if(!window.productMgr.updatePrice) {
window.productMgr.updatePrice = function(el, key, num, id) {
};
}
if(!window.productMgr.cpt)
window.productMgr.cpt = {};
window.productMgr.cpt['<?php echo $form_key; ?>'] =
<?php echo count(@$this->product->prices); ?>;
</script>
PK�[4�b�?,?,-views/productmarket/tmpl/form_price_entry.phpnu�[���<?php
/**
* @package HikaMarket for Joomla!
* @version 3.1.1
* @author Obsidev S.A.R.L.
* @copyright (C) 2011-2020 OBSIDEV. All rights reserved.
* @license GNU/GPLv3 http://www.gnu.org/licenses/gpl-3.0.html
*/
defined('_JEXEC') or die('Restricted access');
?><?php
$form_key = empty($this->editing_variant) ? 'price' :
'variantprice';
if(empty($this->price->edit)) {
?>
<td style="white-space: nowrap; cursor:pointer;"
onclick="window.productMgr.editPrice(this, '<?php echo
$form_key; ?>', <?php echo (int)$this->price_num;
?>,<?php echo (int)@$this->price->price_id; ?>, true);
return false;"><?php
if(!$this->shopConfig->get('floating_tax_prices', 0)) {
echo $this->currencyClass->format($this->price->price_value,
$this->price->price_currency_id). ' / ';
}
echo
$this->currencyClass->format($this->price->price_value_with_tax,
$this->price->price_currency_id);
?></td>
<td style="cursor:pointer;"
onclick="window.productMgr.editPrice(this, '<?php echo
$form_key; ?>', <?php echo (int)$this->price_num;
?>,<?php echo (int)$this->price->price_id; ?>, true); return
false;">
<?php
$restrictions = array();
$qty = max((int)$this->price->price_min_quantity, 1);
if($qty > 1 && $this->price_acls['quantity'])
$restrictions[] =
'<strong>'.JText::_('MINIMUM_QUANTITY').'</strong>:
'.$qty;
if($this->price_acls['user'] &&
!empty($this->price->price_users) && hikashop_level(2)) {
$users = explode(',',trim($this->price->price_users,
','));
$text = array();
foreach($users as $user) {
if(empty($user))
continue;
$data = $this->userClass->get($user);
if($data)
$text[] = $data->name;
}
$restrictions[] =
'<strong>'.JText::_('USERS').'</strong>:
'.implode(', ', $text);
}
if($this->price_acls['acl'] &&
isset($this->price->price_access) &&
$this->price->price_access != 'all' &&
hikashop_level(2)) {
$groups = $this->joomlaAcl->getList();
$access = explode(',', $this->price->price_access);
$text = array();
foreach($access as $a) {
if(empty($a))
continue;
foreach($groups as $group) {
if($group->id == $a) {
$text[] = $group->text;
break;
}
}
}
$restrictions[] =
'<strong>'.JText::_('ACCESS_LEVEL').'</strong>:
'.implode(', ', $text);
}
if($this->price_acls['date'] &&
(!empty($this->price->price_start_date) ||
!empty($this->price->price_end_date))) {
if(!empty($this->price->price_start_date)) {
$this->price->price_start_date =
hikamarket::getDate($this->price->price_start_date, '%d %B %Y
%H:%M');
$restrictions[] =
'<strong>'.JText::_('START_DATE').'</strong>:
'. $this->price->price_start_date;
}
if(!empty($this->price->price_end_date)) {
$this->price->price_start_date =
hikamarket::getDate($this->price->price_end_date, '%d %B %Y
%H:%M');
$restrictions[] =
'<strong>'.JText::_('END_DATE').'</strong>:
'. $this->price->price_start_date;
}
}
if(!empty($this->price->price_site_id))
$restrictions[] =
'<strong>'.JText::_('SITE_ID').'</strong>:
'.$this->price->price_site_id;
echo implode('<br/>', $restrictions);
$price_value =
$this->shopConfig->get('floating_tax_prices', 0) ?
@$this->price->price_value_with_tax :
@$this->price->price_value;
?>
<input type="hidden" name="<?php echo
$form_key.'['.$this->price_num.'][price_id]';
?>" value="<?php echo $this->price->price_id;
?>" />
<input type="hidden" name="<?php echo
$form_key.'['.$this->price_num.'][price_value]';
?>" value="<?php echo $price_value; ?>" />
<?php if($this->price_acls['currency']) { ?>
<input type="hidden" name="<?php echo
$form_key.'['.$this->price_num.'][price_currency_id]';
?>" value="<?php echo
$this->price->price_currency_id; ?>"/>
<?php } ?>
<?php if($this->price_acls['quantity']) { ?>
<input type="hidden" name="<?php echo
$form_key.'['.$this->price_num.'][price_min_quantity]';
?>" value="<?php echo $qty; ?>"/>
<?php } ?>
<?php if(hikashop_level(2) &&
$this->price_acls['acl']) { ?>
<input type="hidden" name="<?php echo
$form_key.'['.$this->price_num.'][price_access]';
?>" value="<?php echo $this->price->price_access;
?>"/>
<?php } ?>
<?php if(hikashop_level(2) &&
$this->price_acls['user']) { ?>
<input type="hidden" name="<?php echo
$form_key.'['.$this->price_num.'][price_users]';
?>" value="<?php echo $this->price->price_users;
?>"/>
<?php } ?>
<?php if(hikashop_level(2) &&
$this->price_acls['date']) { ?>
<input type="hidden" name="<?php echo
$form_key.'['.$this->price_num.'][price_start_date]';
?>" value="<?php echo
@$this->price->price_start_date; ?>"/>
<input type="hidden" name="<?php echo
$form_key.'['.$this->price_num.'][price_end_date]';
?>" value="<?php echo @$this->price->price_end_date;
?>"/>
<?php } ?>
<?php if(!empty($this->jms_integration)) { ?>
<input type="hidden" name="<?php echo
$form_key.'['.$this->price_num.'][price_site_id]';
?>" value="<?php echo $this->price->price_site_id;
?>"/>
<?php } ?>
</td>
<td style="text-align:center">
<a href="#delete"
onclick="window.hikamarket.deleteRow(this); return
false;"><i class="fas
fa-trash-alt"></i></a>
</td>
<?php
return;
}
?>
<td colspan="3">
<dl class="hika_options" id="<?php echo
'hikamarket_price_edit_block_'.$form_key.'_'.$this->price_num;
?>">
<dt><?php echo JText::_('PRICE'); ?></dt>
<dd>
<input type="hidden" name="<?php echo
$form_key.'['.$this->price_num.']';
?>[price_id]" value="<?php echo
@$this->price->price_id; ?>"/>
<input type="text"
onchange="window.productMgr.updatePriceValue(<?php echo
$this->price_num; ?>, false, '<?php echo $form_key;
?>')" id="hikamarket_<?php echo $form_key;
?>_<?php echo $this->price_num; ?>_edit"
name="<?php echo
$form_key.'['.$this->price_num.']';
?>[price_value]" value="<?php
if($this->shopConfig->get('floating_tax_prices',0)){ echo
@$this->price->price_value_with_tax; }else{ echo
@$this->price->price_value; } ?>"/>
<input type="hidden" name="<?php echo
$form_key.'_old['.$this->price_num.']';
?>[price_value]" value="<?php
if($this->shopConfig->get('floating_tax_prices',0)){ echo
@$this->price->price_value_with_tax; }else{ echo
@$this->price->price_value; } ?>"/>
</dd>
<?php if(!$this->shopConfig->get('floating_tax_prices',
0)) { ?>
<dt><?php echo JText::_('PRICE_WITH_TAX');
?></dt>
<dd>
<input type="text"
onchange="window.productMgr.updatePriceValue(<?php echo
$this->price_num; ?>, true, '<?php echo $form_key;
?>')" id="hikamarket_<?php echo $form_key;
?>_<?php echo $this->price_num; ?>_with_tax_edit"
name="" value="<?php echo
@$this->price->price_value_with_tax; ?>"/>
</dd>
<?php } ?>
<?php if($this->price_acls['currency']) { ?>
<dt><?php echo JText::_('CURRENCY'); ?></dt>
<dd><?php
if(empty($this->price->price_currency_id))
$this->price->price_currency_id =
$this->default_currency->currency_id;
echo
$this->currencyType->display($form_key.'['.$this->price_num.'][price_currency_id]',
@$this->price->price_currency_id,
'','hikamarket_' . $form_key .
'_currency_edit');
?><input type="hidden" name="<?php echo
$form_key.'_old['.$this->price_num.']';
?>[price_currency_id]" value="<?php echo
@$this->price->price_currency_id; ?>"/></dd>
<?php } ?>
<?php if($this->price_acls['quantity']) { ?>
<dt><?php echo JText::_('PRODUCT_QUANTITY');
?></dt>
<dd>
<input type="text" id="hikamarket_<?php echo
$form_key; ?>_qty_edit" name="<?php echo
$form_key.'['.$this->price_num.']';
?>[price_min_quantity]" value="<?php echo
$this->price->price_min_quantity; ?>"/>
<input type="hidden" name="<?php echo
$form_key.'_old['.$this->price_num.']';
?>[price_min_quantity]" value="<?php echo
@$this->price->price_min_quantity; ?>"/>
</dd>
<?php } ?>
<?php if(hikashop_level(2) &&
$this->price_acls['acl']) { ?>
<dt><?php echo JText::_('ACCESS_LEVEL');
?></dt>
<dd><?php
echo
$this->joomlaAcl->display($form_key.'['.$this->price_num.'][price_access]',
@$this->price->price_access, true, true, 'hikamarket_' .
$form_key . '_acl_edit');
?><input type="hidden" name="<?php echo
$form_key.'_old['.$this->price_num.']';
?>[price_access]" value="<?php echo
@$this->price->price_access; ?>"/></dd>
<?php } ?>
<?php if(hikashop_level(2) &&
$this->price_acls['user']) { ?>
<dt><?php echo JText::_('USERS'); ?></dt>
<dd><?php
echo $this->nameboxType->display(
$form_key.'['.$this->price_num.'][price_users]',
explode(',',trim(@$this->price->price_users,',')),
hikamarketNameboxType::NAMEBOX_MULTIPLE,
'user',
array(
'id' => 'hikamarket_' . $form_key . '_'
. $this->price_num . '_user_edit',
'force_data' => true,
'default_text' => 'PLEASE_SELECT'
)
);
?><input type="hidden" name="<?php echo
$form_key.'_old['.$this->price_num.']';
?>[price_users]" value="<?php echo
@$this->price->price_users; ?>"/></dd>
<?php } ?>
<?php if(hikashop_level(2) &&
$this->price_acls['date']) { ?>
<dt><?php echo JText::_('START_DATE');
?></dt>
<dd><?php
echo JHTML::_('calendar',
hikamarket::getDate((@$this->price->price_start_date?@$this->price->price_start_date:''),'%Y-%m-%d
%H:%M'),
$form_key.'['.$this->price_num.'][price_start_date]',
'hikamarket_' . $form_key .'_'.$this->price_num .
'_start_date_edit', '%Y-%m-%d %H:%M',
array('size' => '20', 'showTime' =>
true));
?><input type="hidden" name="<?php echo
$form_key.'_old['.$this->price_num.']';
?>[price_start_date]" value="<?php echo
@$this->price->price_start_date; ?>"/></dd>
<dt><?php echo JText::_('END_DATE'); ?></dt>
<dd><?php
echo JHTML::_('calendar',
hikamarket::getDate((@$this->price->price_end_date?@$this->price->price_end_date:''),'%Y-%m-%d
%H:%M'),
$form_key.'['.$this->price_num.'][price_end_date]',
'hikamarket_' . $form_key .'_'.$this->price_num .
'_end_date_edit', '%Y-%m-%d %H:%M',
array('size' => '20', 'showTime' =>
true));
?><input type="hidden" name="<?php echo
$form_key.'_old['.$this->price_num.']';
?>[price_end_date]" value="<?php echo
@$this->price->price_end_date; ?>"/></dd>
<script type="text/javascript">
window.hikashop.ready(function() {
var d = document, els = document.querySelectorAll("#<?php echo
'hikamarket_price_edit_block_'.$form_key.'_'.$this->price_num;
?> .field-calendar");
if(!els || typeof(JoomlaCalendar) == "undefined") return;
for(i = els.length - 1; i >= 0; i--) {
JoomlaCalendar.init(els[i]);
}
});
</script>
<?php } ?>
<?php if(!empty($this->jms_integration)) { ?>
<dt><?php echo JText::_('SITE_ID'); ?></dt>
<dd><?php
echo
str_replace('class="inputbox"','class="inputbox
no-chzn" style="width:90px;"',
MultisitesHelperUtils::getComboSiteIDs(@$this->price->price_site_id,
'hikamarket_' . $form_key . '_site_edit',
JText::_('SELECT_A_SITE')));
?></dd>
<?php } ?>
</dl>
<div style="float:right">
<button class="hikabtn hikabtn-success" onclick="return
window.productMgr.editPrice(this, '<?php echo $form_key;
?>', <?php echo (int)$this->price_num;?>,<?php echo
(int)$this->price->price_id; ?>, false);">
<i class="fas fa-check"></i> <?php echo
JText::_('HIKA_OK'); ;?>
</button>
</div>
<button class="hikabtn hikabtn-danger" onclick="return
window.productMgr.editPrice(this, '<?php echo $form_key;
?>', <?php echo (int)$this->price_num; ?>,<?php echo
(int)$this->price->price_id; ?>, -1);">
<i class="far fa-times-circle"></i> <?php echo
JText::_('HIKA_CANCEL'); ;?>
</button>
</td>
PK�[X�M�33,views/productmarket/tmpl/form_price_mini.phpnu�[���<?php
/**
* @package HikaMarket for Joomla!
* @version 3.1.1
* @author Obsidev S.A.R.L.
* @copyright (C) 2011-2020 OBSIDEV. All rights reserved.
* @license GNU/GPLv3 http://www.gnu.org/licenses/gpl-3.0.html
*/
defined('_JEXEC') or die('Restricted access');
?><dl class="hikam_options">
<dt class="hikamarket_product_price"><label><?php
echo JText::_('PRICES'); ?></label></dt>
<dd class="hikamarket_product_price"><?php
$price = reset($this->product->prices);
$form_key = empty($this->editing_variant) ? 'price' :
'variantprice';
$pre_price = ''; $post_price = '';
$currency = empty($price->price_currency_id) ?
$this->default_currency :
$this->currencies[$price->price_currency_id];
if(is_string($currency->currency_locale))
$currency->currency_locale =
hikamarket::unserialize($currency->currency_locale);
if($currency->currency_locale['p_cs_precedes']) {
$pre_price .= $currency->currency_symbol;
if($currency->currency_locale['p_sep_by_space'])
$pre_price .= ' ';
} else {
if($currency->currency_locale['p_sep_by_space'])
$post_price .= ' ';
$post_price .= $currency->currency_symbol;
}
if($this->price_acls['tax'] &&
empty($this->product->product_tax_id)) {
echo $pre_price;
?><input size="10" type="text"
id="hikamarket_<?php echo $form_key; ?>_0_price"
name="<?php echo $form_key; ?>[0][price_value]"
value="<?php echo @$price->price_value;
?>"/><?php
echo $post_price;
} else {
if($this->price_acls['value']) {
echo $pre_price;
?><input size="10" type="text"
id="hikamarket_<?php echo $form_key; ?>_0_price"
name="<?php echo $form_key; ?>[0][price_value]"
value="<?php echo @$price->price_value; ?>"
onchange="window.productMgr.updatePriceMini(false, '<?php echo
$form_key; ?>')" /><?php
echo $post_price;
echo '<br/>';
if($this->price_acls['tax']) {
echo $pre_price;
?><input size="10" type="text"
id="hikamarket_<?php echo $form_key; ?>_0_with_tax"
name="<?php echo $form_key; ?>_with_tax_0"
value="<?php echo @$price->price_value_with_tax; ?>"
onchange="window.productMgr.updatePriceMini(true, '<?php echo
$form_key; ?>')" /><?php
echo $post_price;
} else {
echo $pre_price;
?><span id="hikamarket_<?php echo $form_key;
?>_0_with_tax_span"><?php echo
@$price->price_value_with_tax;?></span><?php
echo $post_price;
}
} else {
echo $pre_price;
?>
<input size="10" type="text"
id="hikamarket_<?php echo $form_key; ?>_0_with_tax"
name="<?php echo $form_key; ?>_with_tax_0"
value="<?php echo @$price->price_value_with_tax; ?>"
onchange="window.productMgr.updatePriceMini(true, '<?php echo
$form_key; ?>')" />
<input type="hidden" id="hikamarket_<?php echo
$form_key; ?>_0_price" name="<?php echo $form_key;
?>[0][price_value]" value="<?php echo
@$price->price_value; ?>" />
<?php
echo $post_price;
}
}
?></dd>
</dl>
<input type="hidden" name="<?php echo $form_key;
?>[0][price_id]" value="<?php echo
@$price->price_id;?>" />
<script type="text/javascript">
if(!window.productMgr)
window.productMgr = {};
if(!window.productMgr.updatePriceMini) {
window.productMgr.updatePriceMini = function(taxed, key) {
var d = document, o = window.Oby, conversion = '', elName =
'hikamarket_'+key+'_0', destName = elName;
if(taxed) {
elName += '_with_tax'; destName += '_price';
conversion = 1;
} else {
elName += '_price'; destName += '_with_tax';
conversion = 0;
}
var price = d.getElementById(elName).value,
dest = d.getElementById(destName),
taxElem = d.getElementById('dataproductproduct_tax_id'),
tax_id = -1, valueMode = true;
if(!dest) {
dest = d.getElementById(destName + '_span');
valueMode = false;
}
if(taxElem)
tax_id = taxElem.value;
<?php if(!empty($this->product->product_tax_id)) { ?>
else
tax_id = <?php echo (int)$this->product->product_tax_id; ?>;
<?php } ?>
var url = '<?php echo str_replace('\'',
'\\\'',
hikamarket::completeLink('product&task=getprice&price={PRICE}&product_id='.$this->product->product_id.'&tax_id={TAXID}&conversion={CONVERSION}',
true, false, true)); ?>';
url = url.replace('{PRICE}', price).replace('{TAXID}',
tax_id).replace('{CONVERSION}', conversion);
o.xRequest(url, null, function(xhr, params) {
if(valueMode)
dest.value = xhr.responseText;
else
dest.innerHTML = xhr.responseText;
});
};
}
</script>
PK�[��J�7�7*views/productmarket/tmpl/form_variants.phpnu�[���<?php
/**
* @package HikaMarket for Joomla!
* @version 3.1.1
* @author Obsidev S.A.R.L.
* @copyright (C) 2011-2020 OBSIDEV. All rights reserved.
* @license GNU/GPLv3 http://www.gnu.org/licenses/gpl-3.0.html
*/
defined('_JEXEC') or die('Restricted access');
?><?php
if(!hikamarket::acl('product/edit/variants') ||
empty($this->product->product_id))
return;
?>
<div>
<div style="float:right">
<button class="hikabtn hikabtn-success" onclick="return
window.productMgr.addVariants(this, <?php echo
(int)$this->product->product_id; ?>);"><i
class="fas fa-plus"></i> <?php echo
JText::_('HIKAM_ADD_VARIANTS'); ?></button>
</div>
<div id="hikamarket_variant_bundle_toolbar"
style="display:none;">
<button class="hikabtn hikabtn-danger" onclick="return
window.productMgr.deleteVariants(this, <?php echo
(int)$this->product->product_id; ?>);"><i
class="far fa-times-circle"></i> <?php echo
JText::_('HIKA_DELETE'); ?></button>
<button class="hikabtn hikabtn-info" onclick="return
window.productMgr.duplicateVariants(this, <?php echo
(int)$this->product->product_id; ?>);"><i
class="fas fa-copy"></i> <?php echo
JText::_('HIKAM_DUPLICATE'); ?></button>
</div>
<div style="clear:both"></div>
</div>
<div
id="hikamarket_product_variant_creation_container"></div>
<table class="<?php if(!HIKASHOP_RESPONSIVE) echo
'hikam_table '; ?>table table-striped table-hover"
style="width:100%">
<thead>
<tr>
<th style="width:25px; text-align:center">
<input onchange="window.hikamarket.checkAll(this,
'hikamarket_product_variant_checkbox_');"
type="checkbox"
id="hikamarket_product_variant_checkbox_general"
value=""/>
</th>
<th style="width:25px"></th>
<?php
$default_variants = array();
$characteristics = array();
foreach($this->product->characteristics as $characteristic) {
if((int)$characteristic->characteristic_parent_id > 0) {
$default_variants[(int)$characteristic->characteristic_id] =
(int)$characteristic->characteristic_id;
continue;
}
$characteristics[(int)$characteristic->characteristic_id] =
(int)$characteristic->characteristic_id;
?> <th><?php echo $characteristic->characteristic_value;
?></th>
<?php
}
?>
<th><?php echo JText::_('PRICE'); ?></th>
<th><?php echo JText::_('PRODUCT_QUANTITY');
?></th>
<th style="width:1%"><?php echo
JText::_('HIKA_PUBLISHED'); ?></th>
<th style="width:1%"><?php echo
JText::_('HIKA_DEFAULT'); ?></th>
</tr>
</thead>
<tbody>
<?php
$tab_notice_msg = '';
$tab_variant_counter_color = (count($this->product->variants) >
1) ? 'green' : (count($this->product->variants) == 0 ?
'red' : 'orange');
$default_found = false;
$k = 0;
foreach($this->product->variants as $variant) {
?> <tr class="row<?php echo $k; ?>"
id="hikamarket_product_variant_line_<?php echo
$variant->product_id; ?>">
<!--style="cursor:pointer" onclick="return
window.productMgr.editVariant(<?php echo $variant->product_id;
?>);">-->
<td style="text-align:center">
<input onchange="window.productMgr.checkVariant(this, <?php
echo $variant->product_id; ?>);" type="checkbox"
id="hikamarket_product_variant_checkbox_<?php echo
$variant->product_id; ?>" value="<?php echo
$variant->product_id; ?>"/>
</td>
<td style="text-align:center"><a
href="#edit:<?php echo $variant->product_id; ?>"
onclick="return window.productMgr.editVariant(<?php echo
$variant->product_id; ?>);"><i class="fas
fa-pencil-alt"></i></a></td>
<?php
$cpt = 0;
foreach($this->product->characteristics as $characteristic) {
if((int)$characteristic->characteristic_parent_id > 0)
continue;
$o =
@$variant->characteristics[$characteristic->characteristic_id];
if(!empty($o) && isset($default_variants[ (int)$o->id ]))
$cpt++;
?> <td style="cursor:pointer" onclick="return
window.productMgr.editVariant(<?php echo $variant->product_id;
?>);"><?php echo @$o->value; ?></td>
<?php
}
$variant_default = ($cpt == count($default_variants)) ?
'publish' : 'unpublish';
if($variant_default == 'publish')
$default_found = true;
?> <td style="cursor:pointer" onclick="return
window.productMgr.editVariant(<?php echo $variant->product_id;
?>);"><?php echo
$this->currencyClass->displayPrices(@$variant->prices);?></td>
<td style="cursor:pointer" onclick="return
window.productMgr.editVariant(<?php echo $variant->product_id;
?>);"><?php echo (($variant->product_quantity == -1) ?
JText::_('UNLIMITED') : $variant->product_quantity);
?></td>
<td style="text-align:center"><?php echo
$this->toggleClass->display('product_published',
$variant->product_published); ?></td>
<td style="text-align:center">
<div class="toggle_loading"><a class="<?php
echo $variant_default; ?>" href="#" onclick="return
window.productMgr.setDefaultVariant(event, <?php echo
$variant->product_id; ?>);"></a></div>
</td>
</tr>
<?php
$k = 1 - $k;
}
if(count($this->product->variants) > 0 &&
!$default_found) {
$tab_variant_counter_color = 'red';
$tab_notice_msg = ' - ' .
JText::_('HIKAM_NOT_DEFAULT_VARIANT');
}
?>
</tbody>
</table>
<?php if(hikaInput::get()->getCmd('tmpl', '') !=
'component') { ?>
<script type="text/javascript">
window.hikashop.ready(function(){
var el =
document.getElementById('hikamarket_product_variant_label');
if(el)
el.innerHTML = '<span class="hk-label hk-label-<?php echo
$tab_variant_counter_color; ?>"><?php echo
count($this->product->variants) . $tab_notice_msg;
?></span>';
});
window.productMgr.variantEdition = {
current: null,
loading: false,
checked: null
};
window.productMgr.refreshVariantList = function() {
var w = window, o = w.Oby, t = this,
url_list = '<?php echo
hikamarket::completeLink('product&task=variants&product_id='.$this->product->product_id.'&'.hikamarket::getFormToken().'=1',true,false,true);
?>';
o.xRequest(url_list, {update:'hikamarket_product_variant_list'},
function(x,p) {
if(!t.variantEdition.current)
return;
setTimeout(function(){
var l =
document.getElementById('hikamarket_product_variant_line_' +
t.variantEdition.current);
if(l) window.Oby.addClass(l, 'selectedVariant');
},10);
});
};
window.productMgr.editVariant = function(id) {
var w = window, o = w.Oby, d = document, t = this, l = null,
el = d.getElementById('hikamarket_product_variant_edition'),
url = '<?php echo
hikamarket::completeLink('product&task=variant&product_id='.$this->product->product_id.'&cid={CID}',true,false,true);
?>';
id = parseInt(id);
if(isNaN(id) || id === 0)
return false;
if(w.productMgr.variantEdition.loading == true)
return false;
if(t.variantEdition.current) {
l = d.getElementById('hikamarket_product_variant_line_' +
t.variantEdition.current);
if(l) o.removeClass(l, 'selectedVariant');
}
if(t.variantEdition.current &&
window.productMgr.closeVariantEditor) {
try { window.productMgr.closeVariantEditor(); } catch(err){}
}
l = d.getElementById('hikamarket_product_variant_line_' + id);
if(l) o.addClass(l, 'selectedVariant');
w.productMgr.variantEdition.current = id;
var url = url.replace('{CID}',id);
o.addClass(el, 'ajax_loading');
o.xRequest(url,{update:el},function(x,p){
o.removeClass(el, 'ajax_loading');
w.productMgr.variantEdition.loading = false;
setTimeout(function(){window.hikamarket.dlTitle(el);},50);
});
return false;
};
window.productMgr.closeVariant = function() {
var t = this, d = document,
el = d.getElementById('hikamarket_product_variant_edition');
if(el) {
setTimeout(function() {
el.innerHTML = '';
}, 10);
}
if(t.variantEdition.current) {
l = d.getElementById('hikamarket_product_variant_line_' +
t.variantEdition.current);
if(l) window.Oby.removeClass(l, 'selectedVariant');
}
t.variantEdition.current = null;
t.variantEdition.loading = false;
return false;
};
window.productMgr.cancelVariantEdition = function() {
var t = this;
if(t.variantEdition.current === null)
return true;
if(t.variantEdition.loading)
return false;
if(confirm('<?php echo str_replace('\'',
'\\\'',
JText::_('CONFIRM_CLOSiNG_VARIANT_IN_EDITION')); ?>')) {
t.closeVariant();
return true;
}
return false;
};
window.productMgr.saveVariant = function(id) {
var w = window, o = w.Oby, d = document,
el = d.getElementById('hikamarket_product_variant_edition'),
form = d.getElementById('hikamarket_products_form');
url = '<?php echo
hikamarket::completeLink('product&task=save&subtask=variant&product_id='.$this->product->product_id.'&variant_id={CID}&'.hikamarket::getFormToken().'=1',true,false,true);
?>';
if(!el)
return false;
url = url.replace('{CID}', id);
o.addClass(el, 'ajax_loading');
w.productMgr.variantEdition.loading = true;
if(window.productMgr.saveVariantEditor) {
try { window.productMgr.saveVariantEditor(); } catch(err){}
}
o.fireAjax("syncWysiwygEditors", null);
var formData = o.getFormData(el);
o.xRequest(url, {update:el, mode: 'POST', data:formData},
function(x,p) {
o.removeClass(el, 'ajax_loading');
w.productMgr.variantEdition.loading = false;
w.productMgr.refreshVariantList();
});
return false;
};
window.productMgr.setDefaultVariant = function(ev, id) {
var event = ev || window.event;
event.stopPropagation();
event.preventDefault();
var w = window, o = w.Oby, d = document,
url = '<?php echo
hikamarket::completeLink('product&task=variants&subtask=setdefault&product_id='.$this->product->product_id.'&variant_id={CID}&'.hikamarket::getFormToken().'=1',true,false,true);
?>';
url = url.replace('{CID}', id);
o.xRequest(url, {update:'hikamarket_product_variant_list'});
return false;
};
window.productMgr.checkVariant = function(el, id) {
var ve = window.productMgr.variantEdition, d = document,
tool = d.getElementById('hikamarket_variant_bundle_toolbar');
if(!tool)
return;
if(el.checked) {
if(ve.checked === null)
ve.checked = [];
if(ve.checked.indexOf(id) < 0)
ve.checked.push(id);
} else {
if(ve.checked === null)
ve.checked = [];
var p = ve.checked.indexOf(id);
if(p >= 0)
ve.checked.splice(p, 1);
if(ve.checked.length == 0) {
ve.checked = null;
var e =
d.getElementById('hikamarket_product_variant_checkbox_general');
if(e)
e.checked = false;
}
}
tool.style.display = (ve.checked && ve.checked.length > 0) ?
'' : 'none';
};
window.productMgr.addVariants = function(el, id) {
if(this.cancelVariantEdition && !this.cancelVariantEdition())
return false;
window.Oby.xRequest('<?php echo
hikamarket::completeLink('product&task=variants&subtask=add&product_id='.$this->product->product_id.'&'.hikamarket::getFormToken().'=1',true,false,true);
?>',
{update:'hikamarket_product_variant_creation_container'});
return false;
};
window.productMgr.populateVariants = function(mode) {
var d = document, w = window, o = w.Oby, data = null,
ve = window.productMgr.variantEdition,
el =
d.getElementById('hikamarket_product_variant_creation_container');
if(!el)
return false;
data = o.getFormData(el);
if(mode && mode == 'duplicate') {
if(ve.length == 0) {
alert('<?php echo str_replace("'",
"\\'", JText::_('PLEASE_SELECT_SOMETHING'));
?>');
return false;
}
for(var i = ve.checked.length - 1; i >= 0; i--) {
data += '&cid[]=' + ve.checked[i];
}
} else if(mode && mode == 'add') {
var characteristics = [<?php echo implode(',',
$characteristics); ?>],
rawData = data;
if(rawData.indexOf('data[variant_add]') < 0)
rawData = decodeURI(rawData);
if(rawData.indexOf('data[variant_add]') >= 0) {
for(var i = characteristics.length - 1; i >= 0; i--) {
if(rawData.indexOf('data[variant_add][' + characteristics[i]
+ '][]') >= 0)
continue;
alert('<?php echo str_replace("'",
"\\'",
JText::_('PLEASE_SELECT_A_VALUE_FOR_EACH_CHARACTERISTIC'));
?>');
return false;
}
}
}
o.xRequest('<?php echo
hikamarket::completeLink('product&task=variants&subtask=populate&product_id='.$this->product->product_id.'&'.hikamarket::getFormToken().'=1',true,false,true);
?>',
{mode: 'POST', data: data},
function(x,p) {
o.updateElem(el, x.responseText);
window.productMgr.refreshVariantList();
}
);
return false;
};
window.productMgr.cancelPopulateVariants = function() {
var d = document, el =
d.getElementById('hikamarket_product_variant_creation_container');
if(el)
setTimeout(function() { el.innerHTML = ''; }, 10);
return false;
};
window.productMgr.duplicateVariants = function(el, id) {
var ve = window.productMgr.variantEdition, d = document;
if(ve.checked.length > 0) {
window.Oby.xRequest('<?php echo
hikamarket::completeLink('product&task=variants&subtask=duplicate&product_id='.$this->product->product_id.'&'.hikamarket::getFormToken().'=1',true,false,true);
?>',
{update:'hikamarket_product_variant_creation_container'});
} else {
var el =
d.getElementById('hikamarket_product_variant_creation_container');
if(el) el.innerHTML = '';
}
return false;
};
window.productMgr.deleteVariants = function(el, id) {
var w = window, d = document, o = w.Oby, ve =
window.productMgr.variantEdition, data = '';
if(ve.checked.length == 0)
return false;
var msg = '<?php echo str_replace('\'',
'\\\'',
JText::_('PLEASE_CONFIRM_DELETION_X_VARIANTS')); ?>';
if(!confirm(msg.replace('{NUM}', ve.checked.length)))
return false;
for(var i = ve.checked.length - 1; i >= 0; i--) {
if(data.length > 0) data += '&';
data += 'cid[]=' + ve.checked[i];
}
o.xRequest('<?php echo
hikamarket::completeLink('product&task=variants&subtask=delete&product_id='.$this->product->product_id.'&'.hikamarket::getFormToken().'=1',true,false,true);
?>',
{mode: 'POST', data: data},
function(x,p) {
window.productMgr.refreshVariantList();
}
);
return false;
};
</script>
<?php } else { ?>
<script type="text/javascript">
if(window.productMgr.variantEdition)
window.productMgr.variantEdition.checked = null;
var el =
document.getElementById('hikamarket_product_variant_label');
if(el)
el.innerHTML = '<span class="hk-label hk-label-<?php echo
$tab_variant_counter_color; ?>"><?php echo
count($this->product->variants) . $tab_notice_msg;
?></span>';
</script>
<?php }
PK�[�P����.views/productmarket/tmpl/form_variants_add.phpnu�[���<?php
/**
* @package HikaMarket for Joomla!
* @version 3.1.1
* @author Obsidev S.A.R.L.
* @copyright (C) 2011-2020 OBSIDEV. All rights reserved.
* @license GNU/GPLv3 http://www.gnu.org/licenses/gpl-3.0.html
*/
defined('_JEXEC') or die('Restricted access');
?><?php
if($this->subtask != 'duplicate') {
$populateMode = 'add';
?>
<dl>
<?php foreach($this->characteristics as $characteristic) { ?>
<dt><?php echo $characteristic->characteristic_value;
?></dt>
<dd><?php
echo $this->nameboxVariantType->display(
'data[variant_add][' . $characteristic->characteristic_id .
'][]',
null,
hikamarketNameboxType::NAMEBOX_MULTIPLE,
'characteristic_value',
array(
'add' => true,
'vendor' => $this->vendor->vendor_id,
'url_params' => array('ID' =>
$characteristic->characteristic_id)
)
);
?></dd>
<?php } ?>
</dl>
<?php
} else {
$populateMode = 'duplicate';
?>
<div>
<select style="width:30%"
name="data[variant_duplicate][characteristic]"
onchange="window.productMgr.duplicateChangeCharacteristic(this);">
<?php foreach($this->characteristics as $characteristic) { ?>
<option value="<?php echo
$characteristic->characteristic_id; ?>"><?php echo
$characteristic->characteristic_value; ?></option>
<?php } ?>
</select>
<div style="display:inline-block;width:68%;">
<?php
if(empty($this->productClass))
$this->productClass = hikamarket::get('class.product');
$c = reset($this->characteristics);
echo $this->nameboxVariantType->display(
'data[variant_duplicate][variants][]',
null,
hikamarketNameboxType::NAMEBOX_MULTIPLE,
'characteristic_value',
array(
'add' => true,
'vendor' => $this->vendor->vendor_id,
'url_params' => array('ID' =>
$c->characteristic_id)
)
);
?>
</div>
</div>
<script type="text/javascript">
window.productMgr.duplicateChangeCharacteristic = function(el) {
var w = window, d = document,
u = '<?php echo
hikamarket::completeLink('characteristic&task=findList&characteristic_type=value&characteristic_parent_id={ID}',
true, false, true); ?>',
a = '<?php echo
hikamarket::completeLink('characteristic&task=add&characteristic_type=value&characteristic_parent_id={ID}&tmpl=json',
true, false, true); ?>';
var n = w.oNameboxes['data_variant_duplicate_variants'];
if(!n) return true;
n.changeUrl(u.replace('{ID}', el.value), {add:
a.replace('{ID}', el.value)});
return true;
};
</script>
<?php } ?>
<div style="clear:both"></div>
<div style="float:right">
<button onclick="return
window.productMgr.populateVariants('<?php echo $populateMode;
?>');" class="hikabtn hikabtn-success"><i
class="fas fa-check"></i> <?php echo
JText::_('HIKA_SAVE'); ;?></button>
</div>
<button onclick="return
window.productMgr.cancelPopulateVariants();" class="hikabtn
hikabtn-danger"><i class="far
fa-times-circle"></i> <?php echo
JText::_('HIKA_CANCEL'); ;?></button>
<div style="clear:both"></div>
PK���[��+��)views/productmarket/tmpl/galleryimage.phpnu�[���<?php
/**
* @package HikaMarket for Joomla!
* @version 3.1.1
* @author Obsidev S.A.R.L.
* @copyright (C) 2011-2020 OBSIDEV. All rights reserved.
* @license GNU/GPLv3 http://www.gnu.org/licenses/gpl-3.0.html
*/
defined('_JEXEC') or die('Restricted access');
?><fieldset>
<div class="toolbar" id="toolbar"
style="float: right;">
<button class="hikabtn" type="button"
onclick="window.hikamarket.submitform('galleryselect','adminForm');"><img
style="vertical-align: middle" src="<?php echo
HIKASHOP_IMAGES; ?>save.png"/><?php echo
JText::_('OK'); ?></button>
</div>
</fieldset>
<form action="<?php echo
hikamarket::completeLink('product&task=galleryimage', true);
?>" method="post" name="adminForm"
id="adminForm" enctype="multipart/form-data">
<table width="100%" height="100%"
class="adminlist" style="width:100%;height:100%;">
<thead>
<tr>
<th></th>
<th>
<?php echo JText::_('FILTER');?>:
<input type="text" name="search"
value="<?php echo
$this->escape($this->pageInfo->search);?>"
class="text_area"
onchange="document.adminForm.submit();" />
<button class="hikabtn"
onclick="document.adminForm.limitstart.value=0;this.form.submit();"><i
class="fas fa-search"></i></button>
<button class="hikabtn"
onclick="document.adminForm.limitstart.value=0;document.getElementById('search').value='';this.form.submit();"><i
class="fas fa-times"></i></button>
</th>
</tr>
</thead>
<tfoot>
<tr>
<td></td>
<td>
<?php echo $this->pagination->getListFooter(); ?>
<?php echo $this->pagination->getResultsCounter(); ?>
</td>
</tr>
</tfoot>
<tr>
<td width="130px" height="100%"
style="width:130px;vertical-align:top;">
<div style="width:130px;height:100%;overflow:auto;">
<?php
echo $this->treeContent;
?>
<script type="text/javascript">
hikashopGallery.callbackSelection = function(tree,id) {
var d = document, node = tree.get(id);
if( node.value && node.name ) {
var url = "<?php echo
hikamarket::completeLink('product&task=galleryimage&id='.hikaInput::get()->getInt('id').'&cid='.@$this->cid.'&product_id='.hikaInput::get()->getInt('product_id').'&folder={FOLDER}',
true, true) ;?>";
document.location = url.replace('{FOLDER}',
node.value.replace('/', '|'));
}
}
</script>
</div>
</td>
<td>
<ul id="hikaGallery">
<?php
if(!empty($this->dirContent)) {
foreach($this->dirContent as $k => $content) {
$chk_uid = 'hikaGalleryChk_' . $k . '_' . uniqid();
?>
<li class="hikaGalleryItem">
<a class="hikaGalleryPhoto" href="#"
onclick="return window.hikagallery.select(this, '<?php echo
$chk_uid; ?>');">
<img src="<?php echo $content->thumbnail->url;
?>" alt="<?php echo $content->filename;
?>"/>
<span style="display:none;"
class="hikaGalleryChk"><input type="checkbox"
id="<?php echo $chk_uid ;?>" name="files[]"
value="<?php echo $content->path; ?>"/></span>
<div class="hikaGalleryCommand">
<span class="photo_name"><?php echo
$content->filename; ?></span>
<span><?php echo $content->width . 'x' .
$content->height; ?></span>
<span style="float:right"><?php echo
$content->size; ?></span>
</div>
</a>
</li>
<?php
}
}
?>
</ul>
</td>
</tr>
</table>
<script type="text/javascript">
window.hikagallery = {};
window.hikagallery.select = function(el, id) {
var d = document, w = window, o = w.Oby, chk = d.getElementById(id);
if(chk) {
if(chk.checked) {
o.removeClass(el.parentNode, 'selected');
} else {
o.addClass(el.parentNode, 'selected');
}
chk.checked = !chk.checked;
}
return false;
}
</script>
<div class="clr"></div>
<input type="hidden" name="product_id"
value="<?php echo
hikaInput::get()->getInt('product_id'); ?>" />
<input type="hidden" name="pid"
value="<?php echo hikaInput::get()->getInt('pid');
?>" />
<input type="hidden" name="option"
value="<?php echo HIKAMARKET_COMPONENT; ?>" />
<input type="hidden" name="tmpl"
value="component" />
<input type="hidden" name="task"
value="galleryimage" />
<input type="hidden" name="ctrl"
value="<?php echo hikaInput::get()->getCmd('ctrl',
'product'); ?>" />
<?php echo JHTML::_('form.token'); ?>
</form>
PK���[��xHH"views/productmarket/tmpl/image.phpnu�[���<?php
/**
* @package HikaMarket for Joomla!
* @version 3.1.1
* @author Obsidev S.A.R.L.
* @copyright (C) 2011-2020 OBSIDEV. All rights reserved.
* @license GNU/GPLv3 http://www.gnu.org/licenses/gpl-3.0.html
*/
defined('_JEXEC') or die('Restricted access');
?><fieldset>
<div class="toolbar" id="toolbar"
style="float: right;">
<button class="hikabtn" type="button"
onclick="hikamarket.submitform('addimage','hikamarket_form');">
<img style="vertical-align:middle" src="<?php echo
HIKASHOP_IMAGES; ?>save.png" alt=""/> <?php echo
JText::_('OK'); ?>
</button>
</div>
</fieldset>
<form action="<?php echo
hikamarket::completeLink('product&task=image'); ?>"
method="post" name="hikamarket_form"
id="hikamarket_form" enctype="multipart/form-data">
<dl class="hikam_options">
<dt>
<label for="data_file_file_name"><?php echo
JText::_('HIKA_NAME'); ?></label>
</dt>
<dd>
<input type="text" name="data[file][file_name]"
id="data_file_file_name" value="<?php echo
$this->escape(@$this->element->file_name); ?>"/>
</dd>
<?php if(hikamarket::acl('product/edit/images/title')) {
?>
<dt>
<label for="data_file__file_description"><?php echo
JText::_('HIKA_TITLE'); ?></label>
</dt>
<dd>
<input type="text"
name="data[file][file_description]"
id="data_file__file_description" value="<?php echo
$this->escape(@$this->element->file_description);
?>"/>
</dd>
<?php } ?>
<?php
if(empty($this->element->file_path)) {
if(!empty($this->image_link) &&
hikamarket::acl('product/edit/images/link')) {
?>
<dt>
<label for="data_files"><?php echo
JText::_('HIKA_PATH'); ?></label>
</dt>
<dd>
<input type="text" name="data[filepath]"
size="60" style="width:100%" value=""/>
</dd>
<?php
} else if(empty($this->image_link) &&
hikamarket::acl('product/edit/images/upload')) {
?>
<dt>
<label for="data_files"><?php echo
JText::_('HIKA_IMAGE'); ?></label>
</dt>
<dd>
<input id="data_files" type="file"
name="files[]" size="30" /><br/>
<?php echo JText::sprintf('MAX_UPLOAD',
(hikashop_bytes(ini_get('upload_max_filesize')) >
hikashop_bytes(ini_get('post_max_size'))) ?
ini_get('post_max_size') :
ini_get('upload_max_filesize')); ?>
</dd>
<?php
}
} else {
?>
<dt>
<label for="files"><?php echo JText::_(
'HIKA_IMAGE' ); ?></label>
</dt>
<dd>
<?php $image =
$this->imageHelper->getThumbnail($this->element->file_path,
array(100, 100), array('default' => true)); ?>
<img src="<?php echo $image->url; ?>"
alt="<?php echo $image->filename; ?>"/>
</dd>
<?php
}
?>
</dl>
<div class="clr"></div>
<input type="hidden" name="data[file][file_type]"
value="product" />
<input type="hidden" name="data[file][file_ref_id]"
value="<?php echo $this->product_id; ?>" />
<input type="hidden" name="cid[]"
value="<?php echo @$this->cid; ?>" />
<input type="hidden" name="option"
value="<?php echo HIKAMARKET_COMPONENT; ?>" />
<input type="hidden" name="tmpl"
value="component" />
<input type="hidden" name="task"
value="addimage" />
<input type="hidden" name="ctrl"
value="product" />
<?php echo JHTML::_('form.token'); ?>
</form>
PK���[|:�y#views/productmarket/tmpl/import.phpnu�[���<?php
/**
* @package HikaMarket for Joomla!
* @version 3.1.1
* @author Obsidev S.A.R.L.
* @copyright (C) 2011-2020 OBSIDEV. All rights reserved.
* @license GNU/GPLv3 http://www.gnu.org/licenses/gpl-3.0.html
*/
defined('_JEXEC') or die('Restricted access');
?><?php
if(empty($this->import)) {
?>
<div id="hikamarket_import_zone">
<?php
$options = array(
'upload' => true,
'upload_base_url' =>
'index.php?option=com_hikamarket&ctrl=upload',
'toolbar' => null,
'text' => JText::_('HIKAM_IMPORT_UPLOAD_ZONE'),
'uploader' => array('product',
'import_file'),
'vars' => array(
),
'ajax' => true
);
echo
$this->uploaderType->displayFileSingle('hikamarket_import_file',
'', $options);
?>
</div>
<?php
}
PK���[wtW�#views/productmarket/tmpl/index.htmlnu�[���<html><body></body></html>PK���[Y�C�A�A$views/productmarket/tmpl/listing.phpnu�[���<?php
/**
* @package HikaMarket for Joomla!
* @version 3.1.1
* @author Obsidev S.A.R.L.
* @copyright (C) 2011-2020 OBSIDEV. All rights reserved.
* @license GNU/GPLv3 http://www.gnu.org/licenses/gpl-3.0.html
*/
defined('_JEXEC') or die('Restricted access');
?><div id="hikamarket_product_listing">
<form action="<?php echo
hikamarket::completeLink('product&task=listing'); ?>"
method="post" name="adminForm"
id="adminForm">
<div class="hk-row-fluid">
<div class="hkc-md-12 hikam_search_zone">
<?php
echo $this->loadHkLayout('search', array(
'id' => 'hikamarket_products_listing_search',
));
?>
<div class="hikam_sort_zone"><?php
echo JHTML::_('select.genericlist', $this->ordering_values,
'filter_fullorder',
'onchange="this.form.submit();"', 'value',
'text', $this->full_ordering);
?></div>
</div>
<div class="hkc-md-12">
<div id="hikam_product_filters"
class="expand-filters">
<?php
if(!empty($this->vendorType))
echo $this->vendorType->display('filter_vendors',
@$this->pageInfo->filter->vendors);
if($this->config->get('show_category_explorer', 1))
echo $this->childdisplayType->display('filter_type',
$this->pageInfo->selectedType, false, false);
?>
</div>
</div>
</div>
<?php
if(!empty($this->breadcrumb)) {
?>
<div class="hikam_breadcrumb_explorer">
<div class="hikam_breadcrumb"
onclick="window.Oby.toggleClass(this.parentNode,
'explorer_open');">
<?php
foreach($this->breadcrumb as $i => $breadcrumb) {
if($i > 0)
echo '<span
class="breadcrumb_sep">/</span>';
echo '<span class="breadcrumb_el">';
if($breadcrumb->category_id != $this->cid) {
echo '<a
href="'.hikamarket::completeLink('product&task=listing&cid='.$breadcrumb->category_id).'">'.JText::_($breadcrumb->category_name).'</a>';
} else {
echo JText::_($breadcrumb->category_name);
}
echo '</span>';
}
?>
<span class="breadcrumb_expand_icon"><i
class="fas fa-folder-open"></i></span>
</div>
<div class="hikam_category_explorer"><?php
echo
$this->shopCategoryType->displayTree('hikam_categories',
$this->rootCategory, null, true, true, $this->cid,
hikamarket::completeLink('category&task=getTree', false,
true));
?></div>
<script type="text/javascript">
window.hikashop.ready(function(){
var otreeCategories = window.oTrees['hikam_categories'];
otreeCategories.sel(otreeCategories.find(<?php echo $this->cid;
?>));
otreeCategories.callbackSelection = function(tree,id) {
var d = document, node = tree.get(id);
if(node.value && node.name) {
var u = "<?php echo
hikamarket::completeLink('product&task=listing&cid=HIKACID',
false, false, true);?>";
window.location = u.replace('HIKACID', node.value);
}
};
});
</script>
</div>
<?php
}
$acl_product_code = hikamarket::acl('product/edit/code');
$acl_product_quantity =
hikamarket::acl('product/edit/quantity');
$publish_content = '<i class="fas
fa-check"></i> ' .
JText::_('HIKA_PUBLISHED');
$unpublish_content = '<i class="fas
fa-times"></i> ' .
JText::_('HIKA_UNPUBLISHED');
?>
<div id="hikam_product_main_listing">
<?php
if(!empty($this->products)) {
foreach($this->products as $product) {
$url = ($this->manage) ?
hikamarket::completeLink('product&task=edit&cid='.(int)$product->product_id)
:
hikamarket::completeLink('shop.product&task=show&cid='.(int)$product->product_id);
if(empty($product->product_name) &&
!empty($product->parent_product_name))
$product_name =
'<em>'.$this->escape($product->parent_product_name,
true).'</em>';
else if(empty($product->product_name))
$product_name =
'<em>'.JText::sprintf('HIKAM_PRODUCT_NO_NAME',
$product->product_code).'</em>';
else
$product_name = $this->escape($product->product_name, true);
$stock_color = 'green';
$extra_classes = '';
if($product->product_type == 'waiting_approval')
$extra_classes .= ' hkm_product_approval';
if($product->product_quantity < 0) {
$stock_color = 'blue';
} else if($product->product_quantity == 0) {
$stock_color = 'red';
$extra_classes .= ' hkm_product_no_stock';
} else if($product->product_quantity <
$this->config->get('stock_warning_level', 10)) {
$stock_color = 'orange';
$extra_classes .= ' hkm_product_low_stock';
}
?>
<div class="hk-card hk-card-default hk-card-product<?php echo
$extra_classes; ?>" data-hkm-product="<?php echo
(int)$product->product_id; ?>">
<div class="hk-card-header">
<a class="hk-row-fluid" href="<?php echo $url;
?>">
<div class="hkc-sm-6 hkm_product_name"><?php
echo $product_name;
?></div>
<div class="hkc-sm-6 hkm_product_price">
<i class="fa fa-credit-card"></i> <?php
if(empty($product->prices))
echo JText::_('FREE_PRICE');
else
echo
$this->currencyHelper->displayPrices($product->prices);
?>
</div>
</a>
</div>
<div class="hk-card-body">
<div class="hk-row-fluid">
<div class="hkc-sm-2 hkm_product_image">
<a href="<?php echo $url; ?>"><?php
$thumb =
$this->imageHelper->getThumbnail(@$product->file_path,
array(50,50), array('default' => 1, 'forcesize'
=> 1));
if(!empty($thumb->path) && empty($thumb->external))
echo '<img src="'.
$this->imageHelper->uploadFolder_url . str_replace('\\',
'/', $thumb->path).'" class=""
alt=""/>';
else if(!empty($thumb->path) && !empty($thumb->url))
echo '<img src="'. $thumb->url.'"
class="" alt="" width="50"
height="50"/>';
?></a>
</div>
<div class="hkc-sm-5 hkm_product_details">
<?php if($acl_product_code) { ?>
<div class="hkm_product_code">
<i class="fas fa-tag"></i> <span><?php
echo $this->escape($product->product_code); ?></span>
</div>
<?php } ?>
<div class="hkm_product_stock">
<i class="fas fa-cubes"></i> <span
class="hk-label hk-label-<?php echo $stock_color;
?>"><?php
echo ($product->product_quantity == 0) ?
JText::_('HIKA_OUT_OF_STOCK') : (($product->product_quantity
>= 0) ? $product->product_quantity :
JText::_('UNLIMITED'));
?></span>
<?php
if($this->product_action_sort) {
if($this->product_action_publish) {
?>
<a class="hikabtn hikabtn-mini hikabtn-<?php echo
($product->product_published) ? 'success' :
'danger'; ?> hkm_publish_button"
data-toggle-state="<?php echo $product->product_published ? 1 :
0; ?>" data-toggle-id="<?php echo $product->product_id;
?>" onclick="return
window.localPage.toggleProduct(this);"><?php
echo ($product->product_published) ? $publish_content :
$unpublish_content;
?></a>
<?php
} else {
?>
<span class="hkm_publish_state hk-label hk-label-<?php
echo ($product->product_published) ? 'green' :
'red'; ?>"><?php echo
($product->product_published) ? $publish_content : $unpublish_content;
?></span>
<?php
}
}
?>
</div>
<?php if(!empty($product->vendor_name)) { ?>
<div class="hkm_product_vendor">
<i class="fas fa-user-tie"></i> <?php echo
$product->vendor_name; ?>
</div>
<?php } ?>
<?php if($product->product_type == 'waiting_approval') {
?>
<div class="hkm_product_approval">
<i class="far fa-thumbs-up"></i> <span
class="hk-label hk-label-orange"><?php echo
JText::_('HIKAM_PRODUCT_NOT_APPROVED') ?></span>
</div>
<?php } else { ?>
<div class="hkm_product_stats">
<span class="hkm_product_hit"
data-toggle="hk-tooltip" data-title="<?php echo
JText::sprintf('HIKAM_X_VIEWS', (int)$product->product_hit);
?>"><i class="far fa-eye"></i>
<span><?php echo
$this->niceNumber((int)$product->product_hit);
?></span></span>
/
<span class="hkm_product_sales"
data-toggle="hk-tooltip" data-title="<?php echo
JText::sprintf('HIKAM_X_SALES', (int)$product->product_sales);
?>"><i class="fas fa-shopping-cart"></i>
<span><?php echo
$this->niceNumber((int)$product->product_sales);
?></span></span>
</div>
<?php } ?>
<?php
if(!empty($this->fields)) {
$fields = array();
foreach($this->fields as $fieldName => $oneExtraField) {
$r = $this->fieldsClass->show($oneExtraField,
$product->$fieldName);
if(empty($r))
continue;
$fields[] = '<dt
class="hkm_product_field_'.$fieldName.'">'.$this->fieldsClass->trans($oneExtraField->field_realname).'</dt><dd
class="hkm_product_field_'.$fieldName.'">'.$r.'</dd>';
}
if(!empty($fields)) {
?>
<dl class="hikam_options hkm_product_fields"><?php
echo implode("\r\n", $fields);
unset($fields);
?></dl>
<?php
}
}
?>
</div>
<?php
if($this->product_action_sort) {
?>
<div class="hkc-sm-3 hkm_product_order">
<div class="hk-input-group">
<div class="hk-input-group-prepend">
<a class="hikabtn" href="#up"
data-ordering="-1" data-ordering-id="<?php echo
(int)$product->product_id; ?>" onclick="return
window.localPage.orderingProduct(this);"><i class="fas
fa-arrow-up"></i></a>
</div>
<input type="text" class="hk-form-control
hkm_order_value" size="3" name="order[<?php echo
$product->product_id; ?>]" value="<?php echo
(int)@$product->ordering; ?>" />
<div class="hk-input-group-append">
<a class="hikabtn" href="#down"
data-ordering="1" data-ordering-id="<?php echo
(int)$product->product_id; ?>" onclick="return
window.localPage.orderingProduct(this);"><i class="fas
fa-arrow-down"></i></a>
</div>
</div>
</div>
<?php
} else {
?>
<div class="hkc-sm-3 hkm_product_publish">
<?php
if($this->product_action_publish) {
?>
<a class="hikabtn hikabtn-<?php echo
($product->product_published) ? 'success' :
'danger'; ?> hkm_publish_button"
data-toggle-state="<?php echo $product->product_published ? 1 :
0; ?>" data-toggle-id="<?php echo $product->product_id;
?>" onclick="return
window.localPage.toggleProduct(this);"><?php
echo ($product->product_published) ? $publish_content :
$unpublish_content;
?></a>
<?php
} else {
?>
<span class="hkm_publish_state hk-label hk-label-<?php echo
($product->product_published) ? 'green' : 'red';
?>"><?php echo ($product->product_published) ?
$publish_content : $unpublish_content; ?></span>
<?php
}
?>
</div>
<?php
}
?>
<div class="hkc-sm-2 hkm_product_actions"><?php
$data = array(
'details' => array(
'name' => '<i class="fas
fa-search"></i> ' . JText::_('HIKA_DETAILS',
true),
'link' => $url
)
);
if($this->product_action_copy)
$data['copy'] = array(
'name' => '<i class="fas
fa-copy"></i> ' . JText::_('HIKA_COPY',
true),
'link' => '#copy',
'click' => 'return
window.localPage.copyProduct('.(int)$product->product_id.',
\''.urlencode(strip_tags($product->product_name)).'\');'
);
if($this->product_action_delete)
$data['delete'] = array(
'name' => '<i class="fas
fa-trash"></i> ' . JText::_('HIKA_DELETE',
true),
'link' => '#delete',
'click' => 'return
window.localPage.deleteProduct('.(int)$product->product_id.',
\''.urlencode(strip_tags($product->product_name)).'\');'
);
if(!empty($data)) {
echo $this->dropdownHelper->display(
JText::_('HIKA_ACTIONS'),
$data,
array('type' => '', 'class' =>
'hikabtn-primary', 'right' => true, 'up'
=> false)
);
}
?></div>
</div>
</div>
</div>
<?php
}
?>
<div class="hikamarket_pagination">
<?php echo $this->pagination->getListFooter(); ?>
<?php echo $this->pagination->getResultsCounter(); ?>
</div>
<?php
} else {
?>
<div class="hk-well hikam_no_products">
</p><?php echo
JText::_('HIKAM_EMPTY_PRODUCT_LISTING'); ?></p>
</div>
<?php
}
?>
</div>
<input type="hidden" name="option"
value="<?php echo HIKAMARKET_COMPONENT; ?>" />
<input type="hidden" name="task"
value="listing" />
<input type="hidden" name="ctrl"
value="<?php echo hikaInput::get()->getCmd('ctrl');
?>" />
<input type="hidden" name="Itemid"
value="<?php echo $this->Itemid; ?>" />
<input type="hidden" name="cid"
value="<?php echo $this->cid; ?>" />
<?php echo JHTML::_('form.token'); ?>
</form>
<?php if($this->product_action_publish) { ?>
<script type="text/javascript">
if(!window.localPage) window.localPage = {};
window.localPage.toggleProduct = function(el) {
var w=window, d=document, o=w.Oby,
state = el.getAttribute('data-toggle-state'),
id = el.getAttribute('data-toggle-id');
if(!id) return false;
var url="<?php echo
hikamarket::completeLink('toggle','ajax',true);?>",
v = (state == 0) ? 1 : 0,
data=o.encodeFormData({"task":"product_published-"+id,"value":v,"table":"product","<?php
echo hikamarket::getFormToken(); ?>":1});
el.disabled = true;
if(state == 1) el.innerHTML = "<i class=\"fas fa-spinner
fa-pulse\"></i> <?php echo
JText::_('HIKA_UNPUBLISHING', true); ?>";
else el.innerHTML = "<i class=\"fas fa-spinner
fa-pulse\"></i> <?php echo
JText::_('HIKA_PUBLISHING', true); ?>";
el.classList.remove("hikabtn-success",
"hikabtn-danger");
o.xRequest(url,{mode:"POST",data:data},function(x,p){
if(x.responseText && x.responseText == '1')
state = v;
el.disabled = false;
el.setAttribute('data-toggle-state', v);
if(state == 1) el.innerHTML = "<i class=\"fas
fa-check\"></i> <?php echo
JText::_('HIKA_PUBLISHED', true); ?>";
else el.innerHTML = "<i class=\"fas
fa-times\"></i> <?php echo
JText::_('HIKA_UNPUBLISHED', true); ?>";
el.classList.add( state ? "hikabtn-success" :
"hikabtn-danger" );
});
};
</script>
<?php } ?>
<?php if($this->product_action_sort) { ?>
<script type="text/javascript">
if(!window.localPage) window.localPage = {};
window.localPage.orderingProduct = function(el) {
var id = el.getAttribute('data-ordering-id'),
direction = el.getAttribute('data-ordering') ==
'-1';
if(!id) return false;
var block =
document.querySelector('[data-hkm-product="'+id+'"]');
if(!block) return false;
var input =
block.querySelector('input[name="order['+id+']"]');
if(!input) return false;
<?php if($this->pageInfo->filter->order->value ==
'product_category.ordering') { ?>
var switchBlock = (direction) ? block.previousElementSibling :
block.nextElementSibling;
if(!switchBlock) return false;
var switchId = switchBlock.getAttribute('data-hkm-product'),
switchInput =
switchBlock.querySelector('input[name="order['+switchId+']"]');
if(direction)
block.parentNode.insertBefore(block, switchBlock);
else
switchBlock.parentNode.insertBefore(switchBlock, block);
var i = input.value;
input.value = switchInput.value;
switchInput.value = i;
<?php } else { ?>
var value = parseInt(input.value);
if(isNaN(value)) value = 1;
value += (direction ? -1 : 1);
if(value < 1) value = 1;
input.value = value;
<?php } ?>
return false;
};
</script>
<?php } ?>
<?php if($this->product_action_delete) { ?>
<script type="text/javascript">
if(!window.localPage) window.localPage = {};
window.localPage.deleteProduct = function(id, name) {
var confirmMsg = "<?php echo
JText::_('CONFIRM_DELETE_PRODUCT_X'); ?>";
if(!confirm(confirmMsg.replace('{PRODUCT}', decodeURI(name))))
return false;
var f = document.forms['hikamarket_delete_product_form'];
if(!f) return false;
f.product_id.value = id;
f.submit();
return false;
};
</script>
<form action="<?php echo
hikamarket::completeLink('product&task=delete'); ?>"
method="post" name="hikamarket_delete_product_form"
id="hikamarket_delete_product_form">
<input type="hidden" name="option"
value="<?php echo HIKAMARKET_COMPONENT; ?>" />
<input type="hidden" name="task"
value="delete" />
<input type="hidden" name="ctrl"
value="<?php echo hikaInput::get()->getCmd('ctrl');
?>" />
<input type="hidden" name="Itemid"
value="<?php echo $this->Itemid; ?>" />
<input type="hidden" name="product_id"
value="0" />
<?php echo JHTML::_('form.token'); ?>
</form>
<?php } ?>
<?php if($this->product_action_copy) { ?>
<script type="text/javascript">
if(!window.localPage) window.localPage = {};
window.localPage.copyProduct = function(id, name) {
var confirmMsg = "<?php echo
JText::_('CONFIRM_COPY_PRODUCT_X'); ?>";
if(!confirm(confirmMsg.replace('{PRODUCT}', decodeURI(name))))
return false;
var f = document.forms['hikamarket_copy_product_form'];
if(!f) return false;
f.product_id.value = id;
f.submit();
return false;
};
</script>
<form action="<?php echo
hikamarket::completeLink('product&task=copy'); ?>"
method="post" name="hikamarket_copy_product_form"
id="hikamarket_copy_product_form">
<input type="hidden" name="option"
value="<?php echo HIKAMARKET_COMPONENT; ?>" />
<input type="hidden" name="task"
value="copy" />
<input type="hidden" name="ctrl"
value="<?php echo hikaInput::get()->getCmd('ctrl');
?>" />
<input type="hidden" name="Itemid"
value="<?php echo $this->Itemid; ?>" />
<input type="hidden" name="product_id"
value="0" />
<?php echo JHTML::_('form.token'); ?>
</form>
<?php } ?>
</div>
PK���[vb&::$views/productmarket/tmpl/listing.xmlnu�[���<?xml
version="1.0" encoding="utf-8"?>
<metadata>
<state>
<name>Vendor product listing</name>
</state>
<layout
title="COM_HIKAMARKET_PRODUCTMARKET_LISTING_DEFAULT_TITLE">
<message></message>
</layout>
<fields name="params"
addfieldpath="/components/com_hikamarket/fields">
</fields>
</metadata>PK���[ǹ��1-1-$views/productmarket/tmpl/variant.phpnu�[���<?php
/**
* @package HikaMarket for Joomla!
* @version 3.1.1
* @author Obsidev S.A.R.L.
* @copyright (C) 2011-2020 OBSIDEV. All rights reserved.
* @license GNU/GPLv3 http://www.gnu.org/licenses/gpl-3.0.html
*/
defined('_JEXEC') or die('Restricted access');
?><div class="hikamarket_variant_toolbar">
<div style="float:left;">
<button onclick="if(window.productMgr.closeVariant) { return
window.productMgr.closeVariant(); } else return false;"
class="hikabtn hikabtn-danger"><i class="far
fa-times-circle"></i> <?php echo
JText::_('HIKA_CANCEL'); ;?></button>
</div>
<div style="float:right;">
<?php
if($this->config->get('product_cart_link', 0) &&
$this->product->product_id > 0) {
}
?>
<button onclick="if(window.productMgr.saveVariant) { return
window.productMgr.saveVariant(<?php echo
$this->product->product_id; ?>); } else return false;"
class="hikabtn hikabtn-success"><i class="far
fa-times-circle"></i> <?php echo
JText::_('HIKA_SAVE'); ;?></button>
</div>
<div style="clear:both"></div>
</div>
<div id="hikamarket_product_variant_edition_<?php echo
$this->product->product_id; ?>">
<table class="hikam_blocks">
<tr>
<td class="hikam_block_l hikam_block_d30">
<?php
if(hikamarket::acl('product/variant/images')) {
$this->setLayout('form');
$this->upload_ajax = true;
echo $this->loadTemplate('image');
}
?>
</td>
<td class="hikam_block_r">
<dl class="hikam_options">
<?php if(hikamarket::acl('product/variant/name')) { ?>
<dt
class="hikamarket_product_name"><label><?php echo
JText::_('HIKA_NAME'); ?></label></dt>
<dd class="hikamarket_product_name"><input
type="text" name="data[variant][product_name]"
value="<?php echo @$this->product->product_name;
?>"/></dd>
<?php } else { ?>
<dt
class="hikamarket_product_name"><label><?php echo
JText::_('HIKA_NAME'); ?></label></dt>
<dd class="hikamarket_product_name"><?php echo
@$this->product->product_name; ?></dd>
<?php }
if(hikamarket::acl('product/variant/code')) { ?>
<dt
class="hikamarket_product_code"><label><?php echo
JText::_('PRODUCT_CODE'); ?></label></dt>
<dd class="hikamarket_product_code"><input
type="text" name="data[variant][product_code]"
value="<?php echo @$this->product->product_code;
?>"/></dd>
<?php }
$edit_variant =
hikamarket::acl('product/variant/characteristics');
foreach($this->product->characteristics as $characteristic){ ?>
<dt
class="hikamarket_product_characteristic"><label><?php
echo $characteristic->characteristic_value;
?></label></dt>
<dd
class="hikamarket_product_characteristic"><?php
if($edit_variant)
echo
$this->characteristicType->display('data[variant][characteristic]['.$characteristic->characteristic_id.']',
(int)@$characteristic->default_id, @$characteristic->values);
else
echo $characteristic->values[$characteristic->default_id];
?></dd>
<?php
}
if(hikamarket::acl('product/variant/quantity')) { ?>
<dt
class="hikamarket_product_quantity"><label><?php echo
JText::_('PRODUCT_QUANTITY'); ?></label></dt>
<dd class="hikamarket_product_quantity">
<?php echo
$this->quantityType->display('data[variant][product_quantity]',
@$this->product->product_quantity);?>
</dd>
<?php }
if(hikamarket::acl('product/variant/published')) { ?>
<dt
class="hikamarket_product_published"><label><?php
echo JText::_('HIKA_PUBLISHED'); ?></label></dt>
<dd class="hikamarket_product_published"><?php
echo
$this->radioType->booleanlist('data[variant][product_published]',
'', @$this->product->product_published);
?></dd>
<?php } ?>
</dl>
</td>
</tr>
<?php
if(hikamarket::acl('product/variant/description')) {
if(!$this->config->get('front_small_editor')) { ?>
<tr class="hikamarket_product_description">
<td colspan="2">
<label
class="hikamarket_product_description_label"><?php echo
JText::_('HIKA_DESCRIPTION'); ?></label>
<?php echo $this->editor->display();?>
<div style="clear:both"></div>
<script type="text/javascript">
window.productMgr.saveVariantEditor = function() { <?php echo
$this->editor->jsCode(); ?> };
</script>
</td>
</tr>
<?php } else { ?>
<tr>
<td colspan="2">
<dl class="hikam_options">
<dt
class="hikamarket_product_description"><label><?php
echo JText::_('HIKA_DESCRIPTION');
?></label></dt>
<dd class="hikamarket_product_description"><?php
echo $this->editor->display();?><div
style="clear:both"></div></dd>
</dl>
<script type="text/javascript">
window.productMgr.saveVariantEditor = function() { <?php echo
$this->editor->jsCode(); ?> };
</script>
</td>
</tr>
<?php }
}
?>
<tr>
<td colspan="2">
<dl class="hikam_options">
<?php
if(hikamarket::acl('product/variant/price')) { ?>
<dt
class="hikamarket_product_price"><label><?php echo
JText::_('PRICES'); ?></label></dt>
<dd class="hikamarket_product_price"><?php
$this->setLayout('form');
$this->price_form_key = 'variantprice';
echo $this->loadTemplate('price');
?></dd>
<?php }
if(hikamarket::acl('product/variant/priceoverride')) {?>
<dt
class="hikamarket_product_price_override"><label><?php
echo JText::_('MAIN_PRICE_OVERRIDE');
?></label></dt>
<dd class="hikamarket_product_price_override">
<input type="text"
name="data[variant][product_price_percentage]"
value="<?php echo
$this->escape(@$this->product->product_price_percentage);
?>" />%
</dd>
<?php }
if(hikamarket::acl('product/variant/qtyperorder')) {?>
<dt
class="hikamarket_product_qtyperorder"><label><?php
echo JText::_('QUANTITY_PER_ORDER');
?></label></dt>
<dd class="hikamarket_product_qtyperorder">
<input type="text"
name="data[variant][product_min_per_order]" value="<?php
echo (int)@$this->product->product_min_per_order; ?>"
/><?php
echo ' ' . JText::_('HIKA_RANGE_TO'). '
';
echo
$this->quantityType->display('data[variant][product_max_per_order]',
@$this->product->product_max_per_order);
?></dd>
<?php }
if(hikamarket::acl('product/variant/saledates')) {?>
<dt
class="hikamarket_product_salestart"><label><?php
echo JText::_('PRODUCT_SALE_DATES');
?></label></dt>
<dd class="hikamarket_product_salestart"><?php
echo JHTML::_('calendar',
hikamarket::getDate((@$this->product->product_sale_start?@$this->product->product_sale_start:''),'%Y-%m-%d
%H:%M'),
'data[variant][product_sale_start]','product_variant_sale_start','%Y-%m-%d
%H:%M',array('size' => '20'));
echo ' <span class="calendar-separator">' .
JText::_('HIKA_RANGE_TO') . '</span> ';
echo JHTML::_('calendar',
hikamarket::getDate((@$this->product->product_sale_end?@$this->product->product_sale_end:''),'%Y-%m-%d
%H:%M'),
'data[variant][product_sale_end]','product_variant_sale_end','%Y-%m-%d
%H:%M',array('size' => '20'));
?></dd>
<?php }
if(hikamarket::acl('product/variant/weight')) { ?>
<dt
class="hikamarket_product_weight"><label><?php echo
JText::_('PRODUCT_WEIGHT'); ?></label></dt>
<dd class="hikamarket_product_weight"><input
type="text" name="data[variant][product_weight]"
value="<?php echo @$this->product->product_weight;
?>"/><?php echo
$this->weight->display('data[variant][product_weight_unit]',
@$this->product->product_weight_unit); ?></dd>
<?php }
if(hikamarket::acl('product/variant/volume')) { ?>
<dt
class="hikamarket_product_volume"><label><?php echo
JText::_('PRODUCT_VOLUME'); ?></label></dt>
<dd class="hikamarket_product_volume">
<label><?php echo JText::_('PRODUCT_LENGTH');
?></label>
<input size="10" type="text"
name="data[variant][product_length]" value="<?php echo
@$this->product->product_length; ?>"/><br/>
<label><?php echo JText::_('PRODUCT_WIDTH');
?></label>
<input size="10" type="text"
name="data[variant][product_width]" value="<?php echo
@$this->product->product_width;?>"/><?php echo
$this->volume->display('data[variant][product_dimension_unit]',
@$this->product->product_dimension_unit);?><br/>
<label><?php echo JText::_('PRODUCT_HEIGHT');
?></label>
<input size="10" type="text"
name="data[variant][product_height]" value="<?php echo
@$this->product->product_height; ?>"/>
</dd>
<?php }
if(hikamarket::acl('product/variant/customfields')) {
if(!empty($this->fields)) {
?>
</dl>
<div style="clear:both"></div>
<?php
foreach($this->fields as $fieldName => $oneExtraField) {
?>
<dl id="<?php echo $this->fieldsClass->prefix .
'product_' . $fieldName; ?>"
class="hikam_options">
<dt class="hikamarket_product_<?php echo $fieldName;
?>"><?php echo
$this->fieldsClass->getFieldName($oneExtraField); ?></dt>
<dd class="hikamarket_product_<?php echo $fieldName;
?>"><?php
$onWhat = 'onchange';
if($oneExtraField->field_type == 'radio')
$onWhat = 'onclick';
echo $this->fieldsClass->display($oneExtraField,
$this->product->$fieldName,
'data[variant]['.$fieldName.']', false, '
'.$onWhat.'="hikashopToggleFields(this.value,\''.$fieldName.'\',\'product\',0,\''.$this->fieldsClass->prefix.'\');"');
?></dd>
</dl>
<?php
}
?>
<dl class="hikam_options">
<?php
}
}
if(hikamarket::acl('product/variant/acl') &&
hikashop_level(2)) { ?>
<dt
class="hikamarket_product_acl"><label><?php echo
JText::_('ACCESS_LEVEL'); ?></label></dt>
<dd class="hikamarket_product_acl"><?php
$product_access = 'all';
if(isset($this->product->product_access))
$product_access = $this->product->product_access;
echo
$this->joomlaAcl->display('data[variant][product_access]',
$product_access, true, true);
?></dd>
<?php }
if(hikamarket::acl('product/variant/plugin')) {
$html = array();
JPluginHelper::importPlugin('hikashop');
JPluginHelper::importPlugin('hikamarket');
JFactory::getApplication()->triggerEvent('onMarketProductBlocksDisplay',
array(&$this->product, &$html));
foreach($html as $h) {
echo $h;
}
}
?>
</dl>
<div style="clear:both"></div>
<?php
if(hikamarket::acl('product/variant/files')) {
$this->setLayout('form');
$this->upload_ajax = true;
echo $this->loadTemplate('file');
}
?>
</td>
</tr>
</table>
</div>
<input type="hidden"
name="data[variant][product_id]" value="<?php echo
$this->product->product_id; ?>" />
<script type="text/javascript">
if(JoomlaCalendar && JoomlaCalendar.init){
setTimeout(function(){
var section =
document.getElementById('hikamarket_product_variant_edition_<?php
echo $this->product->product_id; ?>');
if(!section) return;
elements = section.querySelectorAll(".field-calendar");
for(i = 0; i < elements.length; i++){
JoomlaCalendar.init(elements[i]);
}
}, 500);
}
</script>
<?php
$doc = JFactory::getDocument();
foreach($doc->_custom as $custom) {
$custom = preg_replace('#<script
.*(type="text/javascript")?
src=".*"></script>#iU', '', $custom);
$custom = preg_replace('#<script
.*type=[\'"]text/javascript[\'"]>#iU',
'<script type="text/javascript">', $custom);
if(strpos($custom,'<script
type="text/javascript">') !== false) {
$custom = str_replace(
array('<script type="text/javascript">',
'</script>'),
array('<script
type="text/javascript">setTimeout(function(){',
'},20);</script>'),
$custom);
}
echo $custom;
}
foreach($doc->_script as $script) {
echo '<script
type="text/javascript">'."\r\n".$script."\r\n".'</script>';
}
PK���[�,o��"�",views/productmarket/tmpl/waitingapproval.phpnu�[���<?php
/**
* @package HikaMarket for Joomla!
* @version 3.1.1
* @author Obsidev S.A.R.L.
* @copyright (C) 2011-2020 OBSIDEV. All rights reserved.
* @license GNU/GPLv3 http://www.gnu.org/licenses/gpl-3.0.html
*/
defined('_JEXEC') or die('Restricted access');
?><div id="hikamarket_product_listing">
<form action="<?php echo
hikamarket::completeLink('product&task=waitingapproval');
?>" method="post" name="adminForm"
id="adminForm">
<div class="hk-row-fluid">
<div class="hkc-md-12 hikam_search_zone">
<?php
echo $this->loadHkLayout('search', array(
'id' => 'hikamarket_products_listing_search',
));
?>
<div class="hikam_sort_zone"><?php
echo JHTML::_('select.genericlist', $this->ordering_values,
'filter_fullorder',
'onchange="this.form.submit();"', 'value',
'text', $this->full_ordering);
?></div>
</div>
<div class="hkc-md-12">
<div id="hikam_product_filters"
class="expand-filters">
<?php
if(!empty($this->vendorType))
echo $this->vendorType->display('filter_vendors',
@$this->pageInfo->filter->vendors);
?>
</div>
</div>
</div>
<?php
$show_product_image =
$this->config->get('front_show_product_image', 1);
$acl_product_code = hikamarket::acl('product/edit/code');
?>
<div id="hikam_product_main_listing">
<?php
foreach($this->products as $product) {
$url = ($this->manage) ?
hikamarket::completeLink('product&task=edit&cid='.(int)$product->product_id)
:
hikamarket::completeLink('shop.product&task=show&cid='.(int)$product->product_id);
if(empty($product->product_name) &&
!empty($product->parent_product_name))
$product_name =
'<em>'.$this->escape($product->parent_product_name,
true).'</em>';
else if(empty($product->product_name))
$product_name =
'<em>'.JText::sprintf('HIKAM_PRODUCT_NO_NAME',
$product->product_code).'</em>';
else
$product_name = $this->escape($product->product_name, true);
$stock_color = 'green';
$extra_classes = '';
if($product->product_type == 'waiting_approval')
$extra_classes .= ' hkm_product_approval';
if($product->product_quantity < 0) {
$stock_color = 'blue';
} else if($product->product_quantity == 0) {
$stock_color = 'red';
$extra_classes .= ' hkm_product_no_stock';
} else if($product->product_quantity <
$this->config->get('stock_warning_level', 10)) {
$stock_color = 'orange';
$extra_classes .= ' hkm_product_low_stock';
}
?>
<div class="hk-card hk-card-default hk-card-product<?php echo
$extra_classes; ?>" data-hkm-product="<?php echo
(int)$product->product_id; ?>">
<div class="hk-card-header">
<a class="hk-row-fluid" href="<?php echo $url;
?>">
<div class="hkc-sm-6 hkm_product_name"><?php
echo $product_name;
?></div>
<div class="hkc-sm-6 hkm_product_price">
<i class="fa fa-credit-card"></i> <?php
if(empty($product->prices))
echo JText::_('FREE_PRICE');
else
echo
$this->currencyHelper->displayPrices($product->prices);
?>
</div>
</a>
</div>
<div class="hk-card-body">
<div class="hk-row-fluid">
<div class="hkc-sm-2 hkm_product_image">
<a href="<?php echo $url; ?>"><?php
$thumb =
$this->imageHelper->getThumbnail(@$product->file_path,
array(50,50), array('default' => 1, 'forcesize'
=> 1));
if(!empty($thumb->path) && empty($thumb->external))
echo '<img src="'.
$this->imageHelper->uploadFolder_url . str_replace('\\',
'/', $thumb->path).'" class=""
alt=""/>';
else if(!empty($thumb->path) && !empty($thumb->url))
echo '<img src="'. $thumb->url.'"
class="" alt="" width="50"
height="50"/>';
?></a>
</div>
<div class="hkc-sm-5 hkm_product_details">
<?php if($acl_product_code) { ?>
<div class="hkm_product_code">
<i class="fas fa-tag"></i> <span><?php
echo $this->escape($product->product_code); ?></span>
</div>
<?php } ?>
<div class="hkm_product_stock">
<i class="fas fa-cubes"></i> <span
class="hk-label hk-label-<?php echo $stock_color;
?>"><?php
echo ($product->product_quantity == 0) ?
JText::_('HIKA_OUT_OF_STOCK') : (($product->product_quantity
>= 0) ? $product->product_quantity :
JText::_('UNLIMITED'));
?></span>
</div>
<?php if(!empty($product->vendor_name)) { ?>
<div class="hkm_product_vendor">
<i class="fas fa-user-tie"></i> <?php echo
$product->vendor_name; ?>
</div>
<?php } ?>
<?php if($product->product_type == 'waiting_approval') {
?>
<div class="hkm_product_approval">
<i class="far fa-thumbs-up"></i> <span
class="hk-label hk-label-orange"><?php echo
JText::_('HIKAM_PRODUCT_NOT_APPROVED') ?></span>
</div>
<?php } else { ?>
<div class="hkm_product_stats">
<span class="hkm_product_hit"
data-toggle="hk-tooltip" data-title="<?php echo
JText::sprintf('HIKAM_X_VIEWS', (int)$product->product_hit);
?>"><i class="far fa-eye"></i>
<span><?php echo
$this->niceNumber((int)$product->product_hit);
?></span></span>
/
<span class="hkm_product_sales"
data-toggle="hk-tooltip" data-title="<?php echo
JText::sprintf('HIKAM_X_SALES', (int)$product->product_sales);
?>"><i class="fas fa-shopping-cart"></i>
<span><?php echo
$this->niceNumber((int)$product->product_sales);
?></span></span>
</div>
<?php } ?>
<?php
if(!empty($this->fields)) {
$fields = array();
foreach($this->fields as $fieldName => $oneExtraField) {
$r = $this->fieldsClass->show($oneExtraField,
$product->$fieldName);
if(empty($r))
continue;
$fields[] = '<dt
class="hkm_product_field_'.$fieldName.'">'.$this->fieldsClass->trans($oneExtraField->field_realname).'</dt><dd
class="hkm_product_field_'.$fieldName.'">'.$r.'</dd>';
}
if(!empty($fields)) {
?>
<dl class="hikam_options hkm_product_fields"><?php
echo implode("\r\n", $fields);
unset($fields);
?></dl>
<?php
}
}
?>
</div>
<div class="hkc-sm-3 hkm_product_publish">
<?php
if($product->product_published) {
?>
<span class="hk-label hk-label-green"><i
class="fas fa-check"></i> <?php echo
JText::_('HIKA_PUBLISHED'); ?></span>
<?php
} else {
?>
<span class="hk-label hk-label-red"><i
class="fas fa-times"></i> <?php echo
JText::_('HIKA_UNPUBLISHED'); ?></span>
<?php
}
?>
</div>
<div class="hkc-sm-2 hkm_product_actions"><?php
$data = array(
'details' => array(
'name' => '<i class="fas
fa-search"></i> ' . JText::_('HIKA_DETAILS',
true),
'link' => $url
)
);
if($this->product_action_delete)
$data['delete'] = array(
'name' => '<i class="fas
fa-trash"></i> ' . JText::_('HIKA_DELETE',
true),
'link' => '#delete',
'click' => 'return
window.localPage.deleteProduct('.(int)$product->product_id.',
\''.urlencode(strip_tags($product->product_name)).'\');'
);
if(!empty($data)) {
echo $this->dropdownHelper->display(
JText::_('HIKA_ACTIONS'),
$data,
array('type' => '', 'class' =>
'hikabtn-primary', 'right' => true, 'up'
=> false)
);
}
?></div>
</div>
</div>
</div>
<?php
}
?>
<div class="hikamarket_pagination">
<?php echo $this->pagination->getListFooter(); ?>
<?php echo $this->pagination->getResultsCounter(); ?>
</div>
</div>
<input type="hidden" name="option"
value="<?php echo HIKAMARKET_COMPONENT; ?>" />
<input type="hidden" name="task"
value="waitingapproval" />
<input type="hidden" name="ctrl"
value="<?php echo hikaInput::get()->getCmd('ctrl');
?>" />
<input type="hidden" name="Itemid"
value="<?php echo $this->Itemid; ?>" />
<input type="hidden" name="filter_order"
value="<?php echo
$this->pageInfo->filter->order->value; ?>" />
<input type="hidden" name="filter_order_Dir"
value="<?php echo $this->pageInfo->filter->order->dir;
?>" />
<?php echo JHTML::_( 'form.token' ); ?>
</form>
</div>
<?php if($this->product_action_delete) { ?>
<script type="text/javascript">
if(!window.localPage) window.localPage = {};
window.localPage.deleteProduct = function(id, name) {
var confirmMsg = "<?php echo
JText::_('CONFIRM_DELETE_PRODUCT_X'); ?>";
if(!confirm(confirmMsg.replace('{PRODUCT}', decodeURI(name))))
return false;
var f = document.forms['hikamarket_delete_product_form'];
if(!f) return false;
f.product_id.value = id;
f.submit();
return false;
};
</script>
<form action="<?php echo
hikamarket::completeLink('product&task=delete'); ?>"
method="post" name="hikamarket_delete_product_form"
id="hikamarket_delete_product_form">
<input type="hidden" name="option"
value="<?php echo HIKAMARKET_COMPONENT; ?>" />
<input type="hidden" name="task"
value="delete" />
<input type="hidden" name="ctrl"
value="<?php echo hikaInput::get()->getCmd('ctrl');
?>" />
<input type="hidden" name="Itemid"
value="<?php echo $this->Itemid; ?>" />
<input type="hidden" name="product_id"
value="0" />
<?php echo JHTML::_('form.token'); ?>
</form>
<?php } ?>
PK���[�ѓcG"G"!views/productmarket/view.html.phpnu�[���<?php
/**
* @package HikaMarket for Joomla!
* @version 3.1.1
* @author Obsidev S.A.R.L.
* @copyright (C) 2011-2020 OBSIDEV. All rights reserved.
* @license GNU/GPLv3 http://www.gnu.org/licenses/gpl-3.0.html
*/
defined('_JEXEC') or die('Restricted access');
?><?php
class productmarketViewproductmarket extends hikamarketView {
protected $ctrl = 'product';
protected $icon = 'product';
protected $triggerView = true;
public function display($tpl = null, $params = array()) {
$this->params =& $params;
$fct = $this->getLayout();
if(method_exists($this, $fct)) {
if($this->$fct() === false)
return;
}
parent::display($tpl);
}
public function listing($tpl = null) {
$app = JFactory::getApplication();
$db = JFactory::getDBO();
$ctrl = '';
$this->paramBase =
HIKAMARKET_COMPONENT.'.'.$this->getName().'.listing';
hikamarket::loadJslib('tooltip');
$vendor = hikamarket::loadVendor(true, false);
$this->assignRef('vendor', $vendor);
$config = hikamarket::config();
$this->assignRef('config', $config);
$this->loadRef(array(
'toggleClass' => 'helper.toggle',
'imageHelper' => 'shop.helper.image',
'currencyHelper' => 'shop.class.currency',
'childdisplayType' => 'shop.type.childdisplay',
'shopCategoryType' => 'type.shop_category',
'nameboxType' => 'type.namebox',
'dropdownHelper' => 'shop.helper.dropdown',
));
$type = hikaInput::get()->getString('type',
'product,vendor,manufacturer');
$getRoot = true;
$cid = hikamarket::getCID();
if(empty($cid))
$cid = 1;
$this->assignRef('cid', $cid);
$manage = hikamarket::acl('product/edit');
$this->assignRef('manage', $manage);
global $Itemid;
$url_itemid = '';
if(!empty($Itemid))
$url_itemid = '&Itemid='.$Itemid;
$this->assignRef('Itemid', $Itemid);
$cfg = array(
'table' => 'shop.product',
'main_key' => 'product_id',
'order_sql_value' => 'product.product_id'
);
$rootCategory = 0;
$vendorCategories = 0;
$vendorClass = hikamarket::get('class.vendor');
$rootCategory = $vendorClass->getRootCategory($vendor);
$extra_categories = $vendorClass->getExtraCategories($vendor);
if(!empty($extra_categories))
$vendorCategories = array_merge(array($rootCategory),
$extra_categories);
if($vendor->vendor_id == 1) {
$vendorType = hikamarket::get('type.filter_vendor');
$this->assignRef('vendorType', $vendorType);
}
if(empty($rootCategory))
$rootCategory = 1;
if(empty($vendorCategories))
$vendorCategories = $rootCategory;
$this->assignRef('rootCategory', $rootCategory);
$this->assignRef('vendorCategories', $vendorCategories);
$category_id = $rootCategory;
$this->assignRef('category_id', $category_id);
$category_explorer = $config->get('show_category_explorer',
1);
if(isset($this->category_explorer))
$category_explorer = $this->category_explorer;
if($category_explorer && (empty($cid) || $cid == 1)) {
$cid =
(int)$app->getUserState(HIKAMARKET_COMPONENT.'.product.listing_cid');
if(empty($cid))
$cid = 1;
}
$default_sort_value =
trim($config->get('product_listing_default_sort_value',
$cfg['order_sql_value']));
if(empty($default_sort_value))
$default_sort_value = $cfg['order_sql_value'];
$default_sort_dir =
trim($config->get('product_listing_default_sort_dir',
'asc'));
if(empty($default_sort_dir) || !in_array($default_sort_dir,
array('asc', 'desc')))
$default_sort_dir = 'asc';
$pageInfo = $this->getPageInfo($default_sort_value,
$default_sort_dir);
$pageInfo->selectedType =
$app->getUserStateFromRequest($this->paramBase.'.filter_type',
'filter_type',
(int)$config->get('default_filter_type_product_listing', 0),
'int');
$pageInfo->filter->vendors =
$app->getUserStateFromRequest($this->paramBase.'.filter_vendors',
'filter_vendors', 0, 'int');
$pageInfo->filter->filter_product_type = false;
$filters = array(
'main' => 'product.product_parent_id = 0',
'product_type' => 'product.product_type IN
(\'main\',\'variant\'' .
($config->get('product_approval', 0) ?
',\'waiting_approval\'' : '') .
')'
);
$searchMap = array(
'product.product_name',
'product.product_description',
'product.product_id',
'product.product_code'
);
$select = array();
$join = '';
if($category_explorer) {
$query = 'SELECT category_id, category_left, category_right,
category_depth, category_parent_id FROM
'.hikamarket::table('shop.category').' WHERE
category_id IN
('.(int)$cid.','.(int)$rootCategory.')';
$db->setQuery($query);
$categories = $db->loadObjectList('category_id');
if(!isset($categories[$rootCategory]))
return hikamarket::deny('vendor',
JText::sprintf('HIKAM_ACTION_DENY',
JText::_('HIKAM_ERR_ROOTCATEGORY_NOT_EXIST')));
if(!isset($categories[$cid]) || $categories[$cid]->category_left <
$categories[$rootCategory]->category_left ||
$categories[$cid]->category_left >
$categories[$rootCategory]->category_right)
$cid = $rootCategory;
$app->setUserState(HIKAMARKET_COMPONENT.'.product.listing_cid',
$cid);
$query = 'SELECT cats.category_id, cats.category_depth,
cats.category_name, cats.category_parent_id '.
' FROM '.hikamarket::table('shop.category').'
AS cats INNER JOIN
'.hikamarket::table('shop.category').' AS basecat ON
cats.category_left <= basecat.category_left AND cats.category_right
>= basecat.category_right '.
' WHERE basecat.category_id = '.(int)$cid.' AND
cats.category_depth >=
'.$categories[$rootCategory]->category_depth.' ORDER BY
category_depth';
$db->setQuery($query);
$breadcrumb = $db->loadObjectList();
$this->assignRef('breadcrumb', $breadcrumb);
}
if($category_explorer)
$join = ' INNER JOIN
'.hikamarket::table('shop.product_category').' AS
product_category ON (product.product_id = product_category.product_id OR
product.product_parent_id = product_category.product_id) ';
if($category_explorer && !$pageInfo->selectedType)
$select['product_ordering'] =
'product_category.ordering';
if($pageInfo->filter->vendors > 0 || $vendor->vendor_id >
1) {
$select['parent_product_name'] =
'parent_product.product_name as parent_product_name';
$join = ' LEFT JOIN
'.hikamarket::table('shop.product').' AS parent_product
ON (product.product_parent_id = parent_product.product_id AND
parent_product.product_vendor_id != product.product_vendor_id AND
product.product_vendor_id > 0) ';
if($category_explorer)
$join .= ' INNER JOIN
'.hikamarket::table('shop.product_category').' AS
product_category ON (product.product_id = product_category.product_id OR
parent_product.product_id = product_category.product_id) ';
}
if((!hikamarket::level(2) || $vendor->vendor_id == 1) &&
!empty($pageInfo->filter->filter_product_type) &&
in_array($pageInfo->filter->filter_product_type,
array('all', 'variant'))) {
$select['parent_product_name'] =
'parent_product.product_name as parent_product_name';
$join = ' LEFT JOIN
'.hikamarket::table('shop.product').' AS parent_product
ON product.product_parent_id = parent_product.product_id ';
if($category_explorer)
$join .= ' INNER JOIN
'.hikamarket::table('shop.product_category').' AS
product_category ON (product.product_id = product_category.product_id OR
parent_product.product_id = product_category.product_id) ';
}
if($category_explorer) {
if($pageInfo->selectedType) {
$join .= ' INNER JOIN
'.hikamarket::table('shop.category').' AS category ON
(category.category_id = product_category.category_id) ';
$filter = '(category.category_left >=
'.$categories[$cid]->category_left.' AND
category.category_right <= '.$categories[$cid]->category_right
.')';
} else
$filter = 'product_category.category_id = '.$cid;
$filters[] = $filter;
}
$fieldsClass = hikamarket::get('shop.class.field');
$cats = array();
if($category_explorer) {
$parent_cat_ids = array();
foreach($breadcrumb as $catElem) {
$parent_cat_ids[] = $catElem->category_id;
}
$cats = array('originals' => array($cid),
'parents' => $parent_cat_ids);
}
$fields =
$fieldsClass->getData('display:vendor_product_listing=1',
'product', false, $cats);
$this->assignRef('fields', $fields);
$this->assignRef('fieldsClass', $fieldsClass);
foreach($fields as $fieldName => $oneExtraField) {
$searchMap[] = 'product.' . $fieldName;
}
if(!empty($pageInfo->filter->filter_product_type) &&
in_array($pageInfo->filter->filter_product_type,
array('all', 'variant'))) {
if($pageInfo->filter->filter_product_type == 'all')
$filters['main'] = 'product.product_parent_id >=
0';
if($pageInfo->filter->filter_product_type == 'variant')
$filters['main'] = 'product.product_parent_id >
0';
}
if($pageInfo->filter->vendors == 1 || $vendor->vendor_id > 1)
{
$filters['main'] .= ' OR parent_product.product_id != 0 )
AND (product.product_vendor_id = '.(int)$vendor->vendor_id;
if($vendor->vendor_id == 1)
$filters['main'] .= ' OR product.product_vendor_id =
0';
} elseif( $pageInfo->filter->vendors > 1) {
$filters['main'] .= ' OR parent_product.product_id != 0 )
AND (product.product_vendor_id =
'.(int)$pageInfo->filter->vendors;
}
$order = '';
$accept_ordering = array('product.');
if($category_explorer && !$pageInfo->selectedType)
$accept_ordering[] = 'product_category.ordering';
$this->processFilters($filters, $order, $searchMap,
$accept_ordering);
$query = 'FROM
'.hikamarket::table($cfg['table']).' AS product
'.$join.$filters.$order;
$db->setQuery('SELECT DISTINCT(product.product_id),
product.*' . (empty($select)?'':',') .
implode(',', $select) . ' ' . $query,
(int)$pageInfo->limit->start, (int)$pageInfo->limit->value);
$rows = $db->loadObjectList('product_id');
$vendors = array();
$products = array();
foreach($rows as &$product) {
$product->prices = array();
$product->vendor_name = '';
$product->file_name = $product->product_name;
if(!isset($products[$product->product_id])) {
$products[$product->product_id] =& $product;
} else if(!is_array($products[$product->product_id])) {
$old =& $products[$product->product_id];
unset($products[$product->product_id]);
$products[$product->product_id] = array(&$old, &$product);
} else {
$products[$product->product_id][] =& $product;
}
if($vendor->vendor_id == 1)
$vendors[(int)$product->product_vendor_id] =
(int)$product->product_vendor_id;
}
unset($product);
$this->assignRef('products', $rows);
$db->setQuery('SELECT COUNT(DISTINCT(product.product_id))
'.$query);
$pageInfo->elements = new stdClass();
$pageInfo->elements->total = $db->loadResult();
$pageInfo->elements->page = count($rows);
$this->loadPricesImages($products, $vendors);
$fieldsClass->handleZoneListing($fields, $rows);
$this->assignRef('vendor_id', $vendor_id);
$this->assignRef('cancelUrl', $cancelUrl);
$using_approval = ($config->get('product_approval', 0)
&& hikamarket::acl('product/approve'));
$sorting_possible = false;
if($app->getUserStateFromRequest($this->paramBase.'.filter_type',
'filter_type',
(int)$config->get('default_filter_type_product_listing', 0),
'int') == 0) {
$sorting_possible = true;
} else if($category_explorer && isset($categories[$cid])) {
$sorting_possible = (((int)$categories[$cid]->category_right -
(int)$categories[$cid]->category_left) == 1);
}
$product_action_publish =
hikamarket::acl('product/edit/published');
$product_action_delete = hikamarket::acl('product/delete');
$product_action_copy = ($vendor->vendor_id == 0 ||
$vendor->vendor_id == 1) &&
hikamarket::acl('product/copy');
$product_action_sort = ($vendor->vendor_id == 0 ||
$vendor->vendor_id == 1) &&
hikamarket::acl('product/sort') && $category_explorer
&& $sorting_possible;
$product_actions = $product_action_publish || $product_action_delete ||
$product_action_copy || $product_action_sort;
$this->assignRef('product_action_publish',
$product_action_publish);
$this->assignRef('product_action_delete',
$product_action_delete);
$this->assignRef('product_action_copy',
$product_action_copy);
$this->assignRef('product_action_sort',
$product_action_sort);
$this->assignRef('product_actions', $product_actions);
$text_asc = JText::_('ASCENDING');
$text_desc = JText::_('DESCENDING');
$ordering_values = array(
'product_category.ordering' =>
JText::_('SORT_ORDERING'),
'product.product_id' => JText::_('SORT_ID'),
'product.product_name' => JText::_('SORT_NAME'),
'product.product_quantity' =>
JText::_('SORT_QUANTITY'),
);
$this->ordering_values = array();
foreach($ordering_values as $k => $v) {
if($k == 'product_category.ordering' &&
!$product_action_sort)
continue;
$this->ordering_values[$k.' asc'] = $v . ' '
.$text_asc;
$this->ordering_values[$k.' desc'] = $v . ' '
.$text_desc;
}
$this->full_ordering =
$this->pageInfo->filter->order->value . ' ' .
strtolower($this->pageInfo->filter->order->dir);
$this->toolbar = array(
'back' => array(
'icon' => 'back',
'fa' => 'fa-arrow-circle-left',
'name' => JText::_('HIKA_BACK'),
'url' => hikamarket::completeLink('vendor')
),
'ordering' => array(
'icon' => 'ordering',
'fa' => 'fa-sort-amount-down',
'name' => JText::_('HIKA_SAVE_ORDER'),
'url' => '#',
'linkattribs' => 'onclick="return
hikamarket.submitform(\'saveorder\',\'adminForm\')"',
'pos' => 'right',
'display' => $product_action_sort
),
'approve' => array(
'icon' => 'approve',
'fa' => 'fa-thumbs-up',
'name' => JText::_('WAITING_APPROVAL_LIST'),
'url' =>
hikamarket::completeLink('product&task=waitingapproval'),
'display' => $using_approval,
'pos' => 'right'
),
'new' => array(
'icon' => 'new',
'fa' => 'fa-plus-circle',
'name' => JText::_('HIKA_NEW'),
'url' =>
hikamarket::completeLink('product&task=add'),
'acl' => hikamarket::acl('product/add'),
'pos' => 'right'
)
);
$this->getPagination();
$this->getOrdering('a.ordering',
!$pageInfo->selectedType);
return true;
}
private function loadPricesImages(&$products, $vendors = null) {
if(empty($products))
return;
$db = JFactory::getDBO();
$db->setQuery('SELECT * FROM
'.hikamarket::table('shop.price').' WHERE
price_product_id IN ('.implode(',',
array_keys($products)).')');
$prices = $db->loadObjectList();
if(!empty($prices)) {
foreach($prices as $price) {
if(!isset($products[$price->price_product_id]) )
continue;
if(!is_array($products[$price->price_product_id])) {
$products[$price->price_product_id]->prices[] = $price;
} else {
foreach($products[$price->price_product_id] as $p) {
$p->prices[] = $price;
}
}
}
}
unset($prices);
$db->setQuery('SELECT * FROM
'.hikamarket::table('shop.file').' WHERE file_ref_id IN
('.implode(',', array_keys($products)).') AND
file_type=\'product\' ORDER BY file_ref_id ASC, file_ordering
ASC, file_id ASC');
$images = $db->loadObjectList();
if(!empty($images)) {
foreach($images as $image) {
if(!isset($products[(int)$image->file_ref_id]))
continue;
if(!is_array($products[(int)$image->file_ref_id])) {
if(isset($products[(int)$image->file_ref_id]->file_ref_id))
continue;
foreach(get_object_vars($image) as $key => $name) {
$products[(int)$image->file_ref_id]->$key = $name;
}
} else {
$p = reset($products[(int)$image->file_ref_id]);
if(isset($p->file_ref_id))
continue;
foreach($products[(int)$image->file_ref_id] as $p) {
foreach(get_object_vars($image) as $key => $name) {
$p->$key = $name;
}
}
}
}
}
if(empty($vendors))
return;
hikamarket::toInteger($vendors);
$db->setQuery('SELECT vendor_id, vendor_name FROM
'.hikamarket::table('vendor').' WHERE vendor_id IN
('.implode(',', $vendors).')');
$db_vendors = $db->loadObjectList('vendor_id');
foreach($products as &$product) {
if(!isset($db_vendors[(int)$product->product_vendor_id]))
continue;
$product->vendor_name =
$db_vendors[(int)$product->product_vendor_id]->vendor_name;
}
unset($product);
unset($db_vendors);
}
public function form() {
$app = JFactory::getApplication();
$db = JFactory::getDBO();
$ctrl = '';
$this->paramBase =
HIKAMARKET_COMPONENT.'.'.$this->getName().'.edit';
JHTML::_('behavior.tooltip');
hikamarket::loadJslib('tooltip');
$vendor = hikamarket::loadVendor(true, false);
$this->assignRef('vendor', $vendor);
$config = hikamarket::config();
$this->assignRef('config', $config);
$shopConfig = hikamarket::config(false);
$this->assignRef('shopConfig', $shopConfig);
$product_id = hikamarket::getCID('product_id');
$productClass = hikamarket::get('class.product');
$vendorClass = hikamarket::get('class.vendor');
$main_currency = $shopConfig->get('main_currency',1);
$this->assignRef('main_currency_id', $main_currency);
$this->loadRef(array(
'toggleClass' => 'helper.toggle',
'currencyClass' => 'shop.class.currency',
'userClass' => 'shop.class.user',
'popup' => 'shop.helper.popup',
'categoryType' => 'type.shop_category',
'quantityType' => 'type.quantity',
'productsType' => 'type.products',
'nameboxType' => 'type.namebox',
'nameboxVariantType' => 'type.namebox',
'uploaderType' => 'shop.type.uploader',
'imageHelper' => 'shop.helper.image',
'currencyType' => 'shop.type.currency',
'weight' => 'shop.type.weight',
'volume' => 'shop.type.volume',
'radioType' => 'shop.type.radio',
));
hikamarket::loadJslib('jquery');
$product = new stdClass();
$product->product_description = '';
$product->product_id = $product_id;
$template_id = 0;
$variant_id = 0;
if(empty($product_id) && !empty($vendor->vendor_template_id)
&& (int)$vendor->vendor_template_id > 0) {
$template_id = (int)$vendor->vendor_template_id;
$product_id = $template_id;
}
if(empty($product_id) &&
(int)$config->get('default_template_id', 0) > 0) {
$template_id = (int)$config->get('default_template_id',
0);
$product_id = $template_id;
}
if(!empty($template_id)) {
$query = 'SELECT COUNT(*) FROM
'.hikamarket::table('shop.product').' AS p WHERE
p.product_id = ' . (int)$template_id . ' AND product_type =
' . $db->Quote('template');
$db->setQuery($query);
$isTemplate = (int)$db->loadResult();
if($isTemplate == 0) {
$template_id = 0;
$product_id = 0;
}
}
if(!empty($product_id))
$product = $productClass->getRaw($product_id, true);
$editing_variant = !empty($product->product_type) &&
($product->product_type == 'variant');
$this->assignRef('editing_variant', $editing_variant);
if(empty($template_id) && isset($product->product_vendor_id)
&& $vendor->vendor_id > 1 &&
(int)$product->product_vendor_id != $vendor->vendor_id) {
$product_duplication =
hikaInput::get()->getVar('product_duplication', null);
if(empty($product_duplication) ||
empty($product_duplication->product_id) ||
$product_duplication->product_id != $product_id ||
empty($product_duplication->characteristic_id))
return hikamarket::deny('product',
JText::_('HIKAM_PAGE_DENY'));
$mainProduct = clone($product);
$product = new stdClass();
$product->product_id = 0;
$product->product_parent_id = $mainProduct->product_id;
$product->product_name = $mainProduct->product_name;
$product->product_description = '';
$product->product_type = 'variant';
$product_id = 0;
}
$fail_product = hikaInput::get()->getVar('fail', null);
if(!empty($fail_product) && (isset($fail_product->product_id)
&& ($product->product_id == $fail_product->product_id) ||
(empty($fail_product->product_id) && (empty($product_id) ||
$product_id == $template_id)))) {
foreach($fail_product as $k => $v) {
$product->$k = $v;
}
$product_id = (int)@$fail_product->product_id;
$template_id = 0;
if(!empty($product->related)) {
$tmp_ids = array();
foreach($product->related as $v) {
$tmp_ids[(int)$v->product_related_id] =
(int)$v->product_related_ordering;
}
$query = 'SELECT p.* FROM
'.hikashop_table('product').' AS p WHERE p.product_id
IN (' . implode(',', array_keys($tmp_ids)) . ')';
$db->setQuery($query);
$product->related = $db->loadObjectList();
foreach($product->related as $k => $v) {
$product->related[$k]->product_related_id = $v->product_id;
$product->related[$k]->product_related_ordering =
$tmp_ids[$v->product_id];
}
}
if(!empty($element->options)) {
$tmp_ids = array();
foreach($product->options as $v) {
$rel_ids[(int)$v->product_related_id] =
(int)$v->product_related_ordering;
}
$query = 'SELECT p.* FROM
'.hikashop_table('product').' AS p WHERE p.product_id
IN (' . implode(',', array_keys($tmp_ids)) . ')';
$db->setQuery($query);
$product->options = $db->loadObjectList();
foreach($product->options as $k => $v) {
$product->options[$k]->product_related_id = $v->product_id;
$product->options[$k]->product_related_ordering =
$tmp_ids[$v->product_id];
}
}
if(!empty($element->bundle)) {
$tmp_ids = array();
foreach($product->bundle as $v) {
$rel_ids[(int)$v->product_related_id] =
(int)$v->product_related_ordering;
}
$query = 'SELECT p.* FROM
'.hikashop_table('product').' AS p WHERE p.product_id
IN (' . implode(',', array_keys($tmp_ids)) . ')';
$db->setQuery($query);
$product->bundle = $db->loadObjectList();
foreach($product->bundle as $k => $v) {
$product->bundle[$k]->product_related_id = $v->product_id;
$product->bundle[$k]->product_related_ordering =
$tmp_ids[$v->product_id];
}
}
if(!empty($product->characteristics)) {
$tmp_ids = array();
foreach($product->characteristics as $k => $v) {
$tmp_ids[ (int)$v->characteristic_id ] = $k;
}
$query = 'SELECT c.* FROM
'.hikashop_table('characteristic').' AS c WHERE
c.characteristic_id IN (' . implode(',',
array_keys($tmp_ids)) . ')';
$db->setQuery($query);
$characteristics = $db->loadObjectList();
foreach($characteristics as $char) {
$product->characteristics[ $tmp_ids[$char->characteristic_id]
]->characteristic_value = $char->characteristic_value;
$product->characteristics[ $tmp_ids[$char->characteristic_id]
]->characteristic_parent_id = (int)$char->characteristic_parent_id;
}
unset($characteristics);
}
if(!empty($product->categories)) {
hikamarket::toInteger($product->categories);
$query = 'SELECT c.* FROM
'.hikashop_table('category').' AS c WHERE c.category_id
IN ('.implode(',', $product->categories).')';
$db->setQuery($query);
$product->categories =
$db->loadObjectList('category_id');
}
}
if(empty($product_id) && !isset($product->product_tax_id)) {
$mainTaxCategory = 'tax';
$categoryClass = hikamarket::get('shop.class.category');
$categoryClass->getMainElement($mainTaxCategory);
$query = 'SELECT category_id FROM '.
hikamarket::table('shop.category'). ' WHERE category_type =
\'tax\' && category_parent_id =
'.(int)$mainTaxCategory.' ORDER BY category_ordering DESC';
$db->setQuery($query);
$product->product_tax_id = (int)$db->loadResult();
}
if(!empty($product_id)) {
if((int)$product->product_parent_id > 0 &&
empty($template_id)) {
$parentProduct =
$productClass->getRaw((int)$product->product_parent_id, true);
if(!empty($parentProduct) && ($vendor->vendor_id == 0 ||
$vendor->vendor_id == 1 || $parentProduct->product_vendor_id ==
$vendor->vendor_id)) {
$variant_id = $product_id;
$product_id = (int)$product->product_parent_id;
unset($product);
$product = $parentProduct;
} else {
unset($parentProduct);
}
}
$query = 'SELECT b.* FROM
'.hikamarket::table('shop.product_category').' AS a
LEFT JOIN '.hikamarket::table('shop.category').' AS b
ON a.category_id = b.category_id WHERE a.product_id =
'.(int)$product_id.' ORDER BY a.product_category_id';
$db->setQuery($query);
$product->categories =
$db->loadObjectList('category_id');
$query = 'SELECT * FROM
'.hikamarket::table('shop.file').' WHERE file_ref_id =
'.(int)$product_id.' AND file_type=\'product\' ORDER BY
file_ordering, file_id';
$db->setQuery($query);
$product->images = $db->loadObjectList();
$query = 'SELECT file.*, SUM(download.download_number) AS
download_number FROM '.hikamarket::table('shop.file').'
AS file '.
' LEFT JOIN
'.hikamarket::table('shop.download').' AS download ON
file.file_id = download.file_id '.
' WHERE file_ref_id = '.(int)$product_id.' AND
file.file_type='.$db->Quote('file').' '.
' GROUP BY file.file_id '.
' ORDER BY file.file_ordering, file.file_id';
$db->setQuery($query);
$product->files = $db->loadObjectList('file_id');
$query = 'SELECT a.*,b.* FROM
'.hikamarket::table('shop.product_related').' AS a LEFT
JOIN '.hikamarket::table('shop.product').' AS b ON
a.product_related_id=b.product_id WHERE
a.product_related_type=\'related\' AND a.product_id =
'.(int)$product_id.' ORDER BY product_related_ordering';
$db->setQuery($query);
$product->related = $db->loadObjectList();
$query = 'SELECT a.*,b.* FROM
'.hikamarket::table('shop.product_related').' AS a LEFT
JOIN '.hikamarket::table('shop.product').' AS b ON
a.product_related_id=b.product_id WHERE
a.product_related_type=\'options\' AND a.product_id =
'.(int)$product_id.' ORDER BY product_related_ordering';
$db->setQuery($query);
$product->options = $db->loadObjectList();
if(hikashop_level(1)) {
$query = 'SELECT a.*,b.* FROM
'.hikamarket::table('shop.product_related').' AS a LEFT
JOIN '.hikamarket::table('shop.product').' AS b ON
a.product_related_id=b.product_id WHERE
a.product_related_type=\'bundle\' AND a.product_id =
'.(int)$product_id.' ORDER BY product_related_ordering';
$db->setQuery($query);
$product->bundle = $db->loadObjectList();
}
$query = 'SELECT variant.*, characteristic.* FROM
'.hikamarket::table('shop.variant').' as variant LEFT
JOIN '.hikamarket::table('shop.characteristic').' as
characteristic ON variant.variant_characteristic_id =
characteristic.characteristic_id WHERE variant.variant_product_id =
'.$product_id . ' ORDER BY ordering ASC';
$db->setQuery($query);
$product->characteristics =
$db->loadObjectList('characteristic_id');
$query = 'SELECT p.* FROM
'.hikamarket::table('shop.product').' as p WHERE
p.product_type = '.$db->Quote('variant').' AND
p.product_parent_id = '.(int)$product_id;
$db->setQuery($query);
$product->variants = $db->loadObjectList('product_id');
if(!empty($product->variants)) {
$variant_ids = array_keys($product->variants);
$query = 'SELECT * FROM
'.hikamarket::table('shop.price').' WHERE
price_product_id IN (' . (int)$product_id . ',' .
implode(',', $variant_ids).')';
$db->setQuery($query);
$prices = $db->loadObjectList();
$product->prices = array();
foreach($prices as $price) {
$ppid = (int)$price->price_product_id;
if($ppid == $product_id) {
$product->prices[] = $price;
} elseif(isset($product->variants[$ppid])) {
if(empty($product->variants[$ppid]->prices))
$product->variants[$ppid]->prices = array();
$product->variants[$ppid]->prices[] = $price;
}
}
unset($prices);
$query = 'SELECT v.*, c.* FROM
'.hikamarket::table('shop.variant').' AS v '.
' INNER JOIN
'.hikamarket::table('shop.characteristic').' AS c ON
c.characteristic_id = v.variant_characteristic_id '.
' WHERE v.variant_product_id IN
('.implode(',',$variant_ids).') '.
' ORDER BY v.variant_product_id ASC, v.variant_characteristic_id
ASC, v.ordering ASC';
$db->setQuery($query);
$variant_data = $db->loadObjectList();
foreach($variant_data as $d) {
$ppid = (int)$d->variant_product_id;
if(!isset($product->characteristics[$d->characteristic_parent_id]))
continue;
if(!isset($product->variants[$ppid]))
continue;
if(empty($product->variants[$ppid]->characteristics))
$product->variants[$ppid]->characteristics = array();
$pcid =
$product->characteristics[$d->characteristic_parent_id]->characteristic_id;
$value = new stdClass();
$value->id = $d->characteristic_id;
$value->value = $d->characteristic_value;
$product->variants[$ppid]->characteristics[$pcid] = $value;
}
} else {
$query = 'SELECT * FROM
'.hikamarket::table('shop.price').' WHERE
price_product_id = ' . (int)$product_id;
$db->setQuery($query);
$product->prices = $db->loadObjectList();
}
if($vendor->vendor_id > 1) {
foreach($product->files as &$file) {
if(strpos($file->file_path, '/') !== false) {
$file->file_path = substr($file->file_path,
strrpos($file->file_path, '/') + 1);
}
}
}
}
if(empty($product_id) || !empty($template_id)) {
$rootCategory = 0;
$categoryClass = hikamarket::get('shop.class.category');
$category_explorer = $config->get('show_category_explorer',
1);
if($category_explorer)
$rootCategory =
(int)$app->getUserState(HIKAMARKET_COMPONENT.'.product.listing_cid');
if(empty($rootCategory) || $rootCategory == 1){
$rootCategory =
$vendorClass->getRootCategory($vendor->vendor_id);
if(empty($rootCategory)) {
$rootCategory = 'product';
$categoryClass->getMainElement($rootCategory);
}
}
if(!empty($rootCategory)) {
if(empty($product->categories))
$product->categories = array( $rootCategory =>
$categoryClass->get($rootCategory) );
else
$product->categories[$rootCategory] =
$categoryClass->get($rootCategory);
}
}
if(!empty($template_id)) {
$product->product_id = 0;
unset($product->product_type);
unset($product->product_code);
}
if(!empty($product->product_tax_id)) {
$main_tax_zone = explode(',',
$shopConfig->get('main_tax_zone', ''));
if(count($main_tax_zone)) {
$main_tax_zone = array_shift($main_tax_zone);
}
}
if(!empty($product->prices)) {
foreach($product->prices as $key => $price) {
if(empty($price->price_value)){
unset($product->prices[$key]);
}
}
if(!empty($product->product_tax_id)) {
foreach($product->prices as &$price) {
$price->price_value_with_tax =
$this->currencyClass->getTaxedPrice($price->price_value,
$main_tax_zone, $product->product_tax_id);
}
}else{
foreach($product->prices as $key => $price) {
$price->price_value_with_tax = $price->price_value;
}
}
}
if(empty($product->prices)) {
$obj = new stdClass();
$obj->price_value = 0;
$obj->price_value_with_tax = 0;
$obj->price_currency_id = $main_currency;
$product->prices = array($obj);
}
$default_description_type =
$config->get('default_description_type', null);
if($default_description_type === null)
$default_description_type =
$shopConfig->get('default_description_type', '');
if(empty($product_id) && !empty($default_description_type))
$product->product_description_type = $default_description_type;
if($product->product_description_type == 'html')
$product->product_description_type = null;
if(!empty($product->product_description) &&
empty($product->product_description_raw))
$product->product_description_type = null;
if(!empty($product->product_description_type)) {
$contentparserType =
hikamarket::get('shop.type.contentparser');
$description_types = $contentparserType->load();
if(!isset($description_types[ $product->product_description_type ]))
$product->product_description_type = null;
}
$editor = hikamarket::get('shop.helper.editor');
if(!empty($product->product_description_type)) {
$editor->setEditor('none');
$editor->name = 'product_description_raw';
$editor->content = $product->product_description_raw;
} else {
$editor->setEditor($config->get('editor',
''));
$editor->name = 'product_description';
$editor->content = $product->product_description;
}
$editor->height = 200;
if($config->get('editor_disable_buttons', 0))
$editor->options = false;
$this->assignRef('editor', $editor);
if(!isset($product->product_quantity) || $product->product_quantity
< 0)
$product->product_quantity = JText::_('UNLIMITED');
if(!isset($product->product_max_per_order) ||
$product->product_max_per_order <= 0)
$product->product_max_per_order = JText::_('UNLIMITED');
$this->assignRef('product', $product);
if(hikashop_level(2)) {
hikamarket::loadJslib('otree');
$joomlaAcl = hikamarket::get('type.joomla_acl');
$this->assignRef('joomlaAcl', $joomlaAcl);
}
$translationHelper =
hikamarket::get('shop.helper.translation');
if($translationHelper && $translationHelper->isMulti()) {
$translationHelper->load('hikashop_product',
@$product->product_id, $product);
$this->assignRef('translationHelper', $translationHelper);
}
$manufacturerType = hikamarket::get('shop.type.categorysub');
$manufacturerType->type = 'manufacturer';
$manufacturerType->field = 'category_id';
$this->assignRef('manufacturerType', $manufacturerType);
$rootCategory = $vendorClass->getRootCategory($vendor);
$this->assignRef('rootCategory', $rootCategory);
$vendorCategories = $rootCategory;
$extra_categories = $vendorClass->getExtraCategories($vendor);
if(!empty($extra_categories))
$vendorCategories = array_merge(array($rootCategory),
$extra_categories);
$this->assignRef('vendorCategories', $vendorCategories);
$main_currency = (int)$shopConfig->get('main_currency');
$this->currencyType->load($main_currency);
$currencies = $this->currencyType->currencies;
$this->assignRef('currencies', $currencies);
$default_currency =
$this->currencyType->currencies[$main_currency];
$this->assignRef('default_currency', $default_currency);
$fieldsClass = hikamarket::get('shop.class.field');
$fields =
$fieldsClass->getFields('display:vendor_product_edit=1',
$product, 'product', 'field&task=state');
$null = array();
$fieldsClass->addJS($null, $null, $null);
$fieldsClass->jsToggle($fields, $product, 0);
$this->assignRef('fieldsClass', $fieldsClass);
$this->assignRef('fields', $fields);
$using_approval = ($vendor->vendor_id <= 1 &&
$config->get('product_approval', 0) &&
!empty($product->product_type) && $product->product_type ==
'waiting_approval' &&
hikamarket::acl('product/approve'));
$this->is_variant_product = (isset($this->product->product_type)
&& !in_array($this->product->product_type,
array('main', 'waiting_approval')));
$this->toolbar = array(
'cancel' => array(
'url' => hikamarket::completeLink('product'),
'icon' => 'back',
'fa' => 'fa-arrow-circle-left',
'name' => JText::_('HIKA_BACK')
),
'back' => array(
'url' => hikamarket::completeLink('product'),
'icon' => 'category',
'fa' => 'fa-arrow-circle-left',
'name' => JText::_('HIKAM_PRODUCT_LISTING'),
'display' => false
),
'cartlink' => array(
'url' =>
hikamarket::completeLink('product&task=cartlink&pid=' .
$product->product_id, true),
'icon' => 'cart',
'fa' => 'fa-cart-arrow-down',
'popup' => array('name' =>
JText::_('HIKAM_CART_LINK'), 'id' =>
'cartlink', 'width' => 450, 'height' =>
250),
'name' => JText::_('HIKAM_CART_LINK'),
'pos' => 'right',
'display' =>
($config->get('product_cart_link', 0) &&
$product->product_id > 0)
),
'sep01' => array(
'sep' => true, 'pos' => 'right',
'display' =>
($config->get('product_cart_link', 0) &&
$product->product_id > 0)
),
'approve' => array(
'url' => '#approve',
'linkattribs' => 'onclick="return
window.hikamarket.submitform(\'approve\',\'hikamarket_products_form\');"',
'icon' => 'apply',
'fa' => 'fa-thumbs-up',
'name' => JText::_('HIKAM_APPROVE'),
'pos' => 'right',
'display' => $using_approval,
),
'sep02' => array(
'sep' => true, 'pos' => 'right',
'display' => $using_approval,
),
'apply' => array(
'url' => '#apply',
'linkattribs' => 'onclick="return
window.hikamarket.submitform(\'apply\',\'hikamarket_products_form\');"',
'icon' => 'apply',
'fa' => 'fa-check-circle',
'name' => JText::_('HIKA_APPLY'),
'pos' => 'right'
),
'save' => array(
'url' => '#save',
'linkattribs' => 'onclick="return
window.hikamarket.submitform(\'save\',\'hikamarket_products_form\');"',
'icon' => 'save',
'fa' => 'fa-save',
'name' => JText::_('HIKA_SAVE'), 'pos'
=> 'right'
)
);
$cancel_action = hikaInput::get()->getCmd('cancel_action',
'');
$this->assignRef('cancel_action', $cancel_action);
$cancel_url =
urldecode(hikaInput::get()->getCmd('cancel_url',
''));
$this->assignRef('cancel_url', $cancel_url);
if(!empty($cancel_action)) {
switch($cancel_action) {
case 'product':
if(!empty($product->product_id)) {
$shopProductClass = hikamarket::get('shop.class.product');
$shopProductClass->addAlias($product);
$this->toolbar['cancel']['url'] =
hikashop_contentLink('product&task=show&cid=' .
(int)$product->product_id . '&name=' . $product->alias,
$product);
$this->toolbar['back']['display'] = true;
}
break;
case 'url':
if(!empty($cancel_url)) {
$cancel_url = base64_decode($cancel_url);
if($cancel_url !== false && substr($cancel_url, 0, 4) ==
'http') {
$this->toolbar['cancel']['url'] =
$cancel_url;
$this->toolbar['back']['display'] = true;
}
}
break;
}
}
}
protected function aclEdit($action) {
static $useNewACL = null;
$vendor_id = hikamarket::loadVendor(false);
if($vendor_id <= 1)
$useNewACL = false;
if(!empty($this->editing_variant))
return hikamarket::acl('product/variant/' . trim($action,
'/') );
if($useNewACL !== null)
return hikamarket::acl( (!empty($useNewACL) ? 'product/new/' :
'product/edit/') . trim($action, '/') );
$isNew = empty($this->product->product_id) ||
$this->product->product_type == 'waiting_approval';
$useNewACL = $isNew && hikamarket::acl('product/new');
return hikamarket::acl( (!empty($useNewACL) ? 'product/new/' :
'product/edit/') . trim($action, '/') );
}
public function form_variants() {
$app = JFactory::getApplication();
$db = JFactory::getDBO();
$ctrl = '';
$this->paramBase =
HIKAMARKET_COMPONENT.'.'.$this->getName().'.edit';
$vendor = hikamarket::loadVendor(true, false);
$this->assignRef('vendor', $vendor);
$config = hikamarket::config();
$this->assignRef('config', $config);
$shopConfig = hikamarket::config(false);
$this->assignRef('shopConfig', $shopConfig);
$product_id = hikamarket::getCID('product_id');
$productClass = hikamarket::get('class.product');
$vendorClass = hikamarket::get('class.vendor');
$main_currency = $shopConfig->get('main_currency',1);
$this->assignRef('main_currency_id', $main_currency);
$this->loadRef(array(
'toggleClass' => 'helper.toggle',
'currencyClass' => 'shop.class.currency',
));
$product = new stdClass();
$product->product_description = '';
$product->product_id = $product_id;
$template_id = 0;
$variant_id = 0;
if(empty($product_id) && !empty($vendor->vendor_template_id))
{
$template_id = $vendor->vendor_template_id;
$product_id = $template_id;
}
if(empty($product_id) &&
(int)$config->get('default_template_id', 0) > 0) {
$template_id = (int)$config->get('default_template_id',
0);
$product_id = $template_id;
}
if(!empty($product_id)) {
$product = $productClass->getRaw($product_id, true);
if((int)$product->product_parent_id > 0 &&
empty($template_id)) {
$parentProduct =
$productClass->getRaw((int)$product->product_parent_id, true);
if(!empty($parentProduct) && ($vendor->vendor_id == 0 ||
$vendor->vendor_id == 1 || $parentProduct->product_vendor_id ==
$vendor->vendor_id)) {
$variant_id = $product_id;
$product_id = (int)$product->product_parent_id;
unset($product);
$product = $parentProduct;
} else {
unset($parentProduct);
}
}
$query = 'SELECT variant.*, characteristic.* FROM
'.hikamarket::table('shop.variant').' as variant LEFT
JOIN '.hikamarket::table('shop.characteristic').' as
characteristic ON variant.variant_characteristic_id =
characteristic.characteristic_id WHERE variant.variant_product_id =
'.$product_id . ' ORDER BY ordering ASC';
$db->setQuery($query);
$product->characteristics =
$db->loadObjectList('characteristic_id');
$query = 'SELECT p.* FROM
'.hikamarket::table('shop.product').' as p WHERE
p.product_type = '.$db->Quote('variant').' AND
p.product_parent_id = '.(int)$product_id;
$db->setQuery($query);
$product->variants = $db->loadObjectList('product_id');
if(!empty($product->variants)) {
$variant_ids = array_keys($product->variants);
$query = 'SELECT * FROM
'.hikamarket::table('shop.price').' WHERE
price_product_id IN (' . (int)$product_id . ',' .
implode(',', $variant_ids).')';
$db->setQuery($query);
$prices = $db->loadObjectList();
foreach($prices as $price) {
$ppid = (int)$price->price_product_id;
if(isset($product->variants[$ppid])) {
if(empty($product->variants[$ppid]->prices))
$product->variants[$ppid]->prices = array();
$product->variants[$ppid]->prices[] = $price;
}
}
unset($prices);
$query = 'SELECT v.*, c.* FROM
'.hikamarket::table('shop.variant').' AS v '.
' INNER JOIN
'.hikamarket::table('shop.characteristic').' AS c ON
c.characteristic_id = v.variant_characteristic_id '.
' WHERE v.variant_product_id IN
('.implode(',',$variant_ids).') '.
' ORDER BY v.variant_product_id ASC, v.variant_characteristic_id
ASC, v.ordering ASC';
$db->setQuery($query);
$variant_data = $db->loadObjectList();
foreach($variant_data as $d) {
$ppid = (int)$d->variant_product_id;
if(isset($product->variants[$ppid])) {
if(empty($product->variants[$ppid]->characteristics))
$product->variants[$ppid]->characteristics = array();
$pcid =
(int)$product->characteristics[$d->characteristic_parent_id]->characteristic_id;
$value = new stdClass();
$value->id = $d->characteristic_id;
$value->value = $d->characteristic_value;
$product->variants[$ppid]->characteristics[$pcid] = $value;
}
}
}
}
$this->assignRef('product', $product);
}
public function variant() {
$app = JFactory::getApplication();
$db = JFactory::getDBO();
$ctrl = '';
$this->paramBase =
HIKAMARKET_COMPONENT.'.'.$this->getName().'.edit';
JHTML::_('behavior.tooltip');
$vendor = hikamarket::loadVendor(true, false);
$this->assignRef('vendor', $vendor);
$config = hikamarket::config();
$this->assignRef('config', $config);
$shopConfig = hikamarket::config(false);
$this->assignRef('shopConfig', $shopConfig);
$product_id = hikamarket::getCID('variant_id');
$product_parent_id =
hikaInput::get()->getInt('product_id');
$productClass = hikamarket::get('class.product');
$vendorClass = hikamarket::get('class.vendor');
$editing_variant = true;
$this->assignRef('editing_variant', $editing_variant);
$main_currency = $shopConfig->get('main_currency',1);
$this->assignRef('main_currency_id', $main_currency);
$this->loadRef(array(
'toggleClass' => 'helper.toggle',
'currencyClass' => 'shop.class.currency',
'popup' => 'shop.helper.popup',
'quantityType' => 'type.quantity',
'uploaderType' => 'shop.type.uploader',
'imageHelper' => 'shop.helper.image',
'currencyType' => 'shop.type.currency',
'weight' => 'shop.type.weight',
'volume' => 'shop.type.volume',
'characteristicType' =>
'shop.type.characteristic',
'radioType' => 'shop.type.radio',
));
$product = new stdClass();
if(!empty($product_id)) {
$product = $productClass->getRaw($product_id, true);
if((int)$product->product_parent_id != (int)$product_parent_id)
return false;
$query = 'SELECT * FROM
'.hikamarket::table('shop.file').' WHERE file_ref_id =
'.(int)$product_id.' AND file_type=\'product\' ORDER BY
file_ordering, file_id';
$db->setQuery($query);
$product->images = $db->loadObjectList();
$query = 'SELECT * FROM
'.hikamarket::table('shop.file').' WHERE file_ref_id =
'.(int)$product_id.' AND file_type=\'file\' ORDER BY
file_ordering, file_id';
$db->setQuery($query);
$product->files = $db->loadObjectList('file_id');
$query = 'SELECT * FROM
'.hikamarket::table('shop.price').' WHERE
price_product_id = ' . (int)$product_id;
$db->setQuery($query);
$product->prices = $db->loadObjectList();
$query = 'SELECT v.*, c.* FROM
'.hikamarket::table('shop.variant').' AS v '.
' INNER JOIN
'.hikamarket::table('shop.characteristic').' as c ON
v.variant_characteristic_id = c.characteristic_id '.
' WHERE characteristic_parent_id > 0 AND variant_product_id =
' . (int)$product_id;
$db->setQuery($query);
$characteristic_values =
$db->loadObjectList('characteristic_parent_id');
$query = 'SELECT * FROM
'.hikamarket::table('shop.characteristic').
' WHERE characteristic_id IN
('.implode(',',array_keys($characteristic_values)).')
OR characteristic_parent_id IN
('.implode(',',array_keys($characteristic_values)).')
'.
' ORDER BY characteristic_parent_id ASC';
$db->setQuery($query);
$characteristics = $db->loadObjectList();
$product->characteristics = array();
foreach($characteristics as $c) {
$charac_pid = ((int)$c->characteristic_parent_id == 0) ?
(int)$c->characteristic_id : (int)$c->characteristic_parent_id;
if(!isset($product->characteristics[$charac_pid])) {
$product->characteristics[$charac_pid] = new stdClass();
$product->characteristics[$charac_pid]->values = array();
}
if(((int)$c->characteristic_parent_id == 0)) {
foreach($c as $k => $v)
$product->characteristics[$charac_pid]->$k = $v;
} else {
$product->characteristics[$charac_pid]->values[
(int)$c->characteristic_id ] = $c->characteristic_value;
}
}
foreach($characteristic_values as $k => $v) {
$product->characteristics[$k]->default_id =
(int)$v->characteristic_id;
}
if($vendor->vendor_id > 1) {
foreach($product->files as &$file) {
if(strpos($file->file_path, '/') !== false) {
$file->file_path = substr($file->file_path,
strrpos($file->file_path, '/')+1);
}
}
}
}
$product->parent = $productClass->getRaw((int)$product_parent_id,
true);
if(!empty($product->parent) &&
!empty($product->parent->product_tax_id))
$product->product_tax_id =
(int)$product->parent->product_tax_id;
if(!empty($product->product_tax_id)) {
$main_tax_zone = explode(',',
$shopConfig->get('main_tax_zone', ''));
if(count($main_tax_zone)) {
$main_tax_zone = array_shift($main_tax_zone);
}
}
if(!empty($product->prices)) {
foreach($product->prices as $key => $price) {
if(empty($price->price_value)){
unset($product->prices[$key]);
}
}
if(!empty($product->product_tax_id)) {
foreach($product->prices as &$price) {
$price->price_value_with_tax =
$this->currencyClass->getTaxedPrice($price->price_value,
$main_tax_zone, $product->product_tax_id);
}
} else {
foreach($product->prices as $key => $price) {
$price->price_value_with_tax = $price->price_value;
}
}
}
if(empty($product->prices)) {
$obj = new stdClass();
$obj->price_value = 0;
$obj->price_value_with_tax = 0;
$obj->price_currency_id = $main_currency;
$product->prices = array($obj);
}
$default_description_type =
$shopConfig->get('default_description_type', '');
if(empty($product_id) && !empty($default_description_type))
$product->product_description_type = $default_description_type;
if($product->product_description_type == 'html')
$product->product_description_type = null;
if(!empty($product->product_description) &&
empty($product->product_description_raw))
$product->product_description_type = null;
if(!empty($product->product_description_type)) {
$contentparserType =
hikamarket::get('shop.type.contentparser');
$description_types = $contentparserType->load();
if(!isset($description_types[ $product->product_description_type ]))
$product->product_description_type = null;
}
$editor = hikamarket::get('shop.helper.editor');
$editorType = $shopConfig->get('editor', '');
if(preg_match('/Edge/i',
$_SERVER['HTTP_USER_AGENT']))
$editorType = 'none';
if(!empty($product->product_description_type)) {
$editorType = 'none';
$editor->name = 'product_variant_description_raw';
$editor->content = $product->product_description_raw;
} else {
$editor->name = 'product_variant_description';
$editor->content = $product->product_description;
}
$editor->id = 'product_variant_editors_'.time();
$editor->setEditor($editorType);
$editor->id = 'product_variant_editors_'.time();
$editor->height = 200;
if($config->get('editor_disable_buttons', 0))
$editor->options = false;
$this->assignRef('editor', $editor);
if(!isset($product->product_quantity) || $product->product_quantity
< 0)
$product->product_quantity = JText::_('UNLIMITED');
if(!isset($product->product_max_per_order) ||
$product->product_max_per_order <= 0)
$product->product_max_per_order = JText::_('UNLIMITED');
$this->assignRef('product', $product);
if(hikashop_level(2)) {
hikamarket::loadJslib('otree');
$joomlaAcl = hikamarket::get('type.joomla_acl');
$this->assignRef('joomlaAcl', $joomlaAcl);
}
$translationHelper =
hikamarket::get('shop.helper.translation');
if($translationHelper && $translationHelper->isMulti()) {
$translationHelper->load('hikashop_product',
@$product->product_id, $product);
$this->assignRef('translationHelper', $translationHelper);
}
$main_currency = (int)$shopConfig->get('main_currency');
$this->currencyType->load($main_currency);
$currencies = $this->currencyType->currencies;
$this->assignRef('currencies', $currencies);
$default_currency =
$this->currencyType->currencies[$main_currency];
$this->assignRef('default_currency', $default_currency);
$fieldsClass = hikamarket::get('shop.class.field');
$fieldsClass->prefix = 'variant_'.time().'_';
$fields =
$fieldsClass->getFields('display:vendor_product_edit=1',
$product, 'product', 'field&task=state');
$null = array();
$fieldsClass->addJS($null, $null, $null);
$fieldsClass->jsToggle($fields, $product, 0);
$this->assignRef('fieldsClass', $fieldsClass);
$this->assignRef('fields', $fields);
return true;
}
public function form_variants_add() {
$app = JFactory::getApplication();
$db = JFactory::getDBO();
$ctrl = '';
$this->paramBase =
HIKAMARKET_COMPONENT.'.'.$this->getName().'.edit';
$vendor = hikamarket::loadVendor(true, false);
$this->assignRef('vendor', $vendor);
$config = hikamarket::config();
$this->assignRef('config', $config);
$shopConfig = hikamarket::config(false);
$this->assignRef('shopConfig', $shopConfig);
$this->loadRef(array(
'nameboxVariantType' => 'type.namebox',
));
$this->nameboxVariantType->setType('characteristic_value',
array());
$product_id = hikamarket::getCID('product_id');
$this->assignRef('product_id', $product_id);
$subtask = hikaInput::get()->getCmd('subtask',
'');
if($subtask == 'duplicate') {
}
$this->assignRef('subtask', $subtask);
$characteristics = array();
if(!empty($product_id)) {
$query = 'SELECT v.*, c.* FROM
'.hikamarket::table('shop.variant').' AS v '.
' INNER JOIN
'.hikamarket::table('shop.characteristic').' as c ON
v.variant_characteristic_id = c.characteristic_id '.
' WHERE characteristic_parent_id = 0 AND variant_product_id =
' . (int)$product_id . ' ORDER BY ordering';
$db->setQuery($query);
$characteristics =
$db->loadObjectList('characteristic_id');
}
$this->assignRef('characteristics', $characteristics);
}
public function waitingapproval($tpl = null) {
$app = JFactory::getApplication();
$db = JFactory::getDBO();
$ctrl = '';
$this->paramBase =
HIKAMARKET_COMPONENT.'.'.$this->getName().'.waitingapproval';
$vendor = hikamarket::loadVendor(true, false);
$this->assignRef('vendor', $vendor);
$config = hikamarket::config();
$this->assignRef('config', $config);
$this->loadRef(array(
'toggleClass' => 'helper.toggle',
'imageHelper' => 'shop.helper.image',
'currencyHelper' => 'shop.class.currency',
'childdisplayType' => 'shop.type.childdisplay',
'shopCategoryType' => 'type.shop_category',
'dropdownHelper' => 'shop.helper.dropdown',
));
$manage = hikamarket::acl('product/edit');
$this->assignRef('manage', $manage);
$product_action_delete = hikamarket::acl('product/delete');
$this->assignRef('product_action_delete',
$product_action_delete);
global $Itemid;
$url_itemid = '';
if(!empty($Itemid))
$url_itemid = '&Itemid='.$Itemid;
$this->assignRef('Itemid', $Itemid);
$cfg = array(
'table' => 'shop.product',
'main_key' => 'product_id',
'order_sql_value' => 'product.product_id'
);
if($vendor->vendor_id == 1) {
$vendorType = hikamarket::get('type.filter_vendor');
$this->assignRef('vendorType', $vendorType);
}
$default_sort_value =
trim($config->get('product_listing_default_sort_value',
$cfg['order_sql_value']));
if(empty($default_sort_value))
$default_sort_value = $cfg['order_sql_value'];
$default_sort_dir =
trim($config->get('product_listing_default_sort_dir',
'asc'));
if(empty($default_sort_dir) || !in_array($default_sort_dir,
array('asc', 'desc')))
$default_sort_dir = 'asc';
$pageInfo = $this->getPageInfo($default_sort_value,
$default_sort_dir);
$pageInfo->filter->vendors =
$app->getUserStateFromRequest($this->paramBase.'.filter_vendors',
'filter_vendors', -1, 'int');
$filters = array(
'main' => 'product.product_parent_id = 0',
'product_type' => 'product.product_type =
\'waiting_approval\''
);
$searchMap = array(
'product.product_name',
'product.product_description',
'product.product_id',
'product.product_code'
);
$select = array();
$join = '';
if($pageInfo->filter->vendors >= 0 || $vendor->vendor_id >
1) {
$select['parent_product_name'] =
'parent_product.product_name as parent_product_name';
$join = ' LEFT JOIN
'.hikamarket::table('shop.product').' AS parent_product
ON product.product_parent_id = parent_product.product_id AND
parent_product.product_vendor_id != product.product_vendor_id AND
product.product_vendor_id > 0 ';
}
$fieldsClass = hikamarket::get('shop.class.field');
$categories = array();
$fields =
$fieldsClass->getData('display:vendor_product_listing=1',
'product', false, $categories);
$this->assignRef('fields', $fields);
$this->assignRef('fieldsClass', $fieldsClass);
foreach($fields as $fieldName => $oneExtraField) {
$searchMap[] = 'product.' . $fieldName;
}
if($pageInfo->filter->vendors == 0 || $vendor->vendor_id > 1)
{
$filters['main'] .= ' OR parent_product.product_id != 0 )
AND (product.product_vendor_id = '.(int)$vendor->vendor_id;
if($vendor->vendor_id == 1)
$filters['main'] .= ' OR product.product_vendor_id =
0';
} elseif( $pageInfo->filter->vendors > 1) {
$filters['main'] .= ' OR parent_product.product_id != 0 )
AND (product.product_vendor_id =
'.(int)$pageInfo->filter->vendors;
}
$order = '';
$this->processFilters($filters, $order, $searchMap,
array('product.'));
$query = 'FROM
'.hikamarket::table($cfg['table']).' AS product
'.$join.$filters.$order;
$db->setQuery('SELECT DISTINCT product.*' .
(empty($select)?'':',') . implode(',',
$select) . ' ' . $query, (int)$pageInfo->limit->start,
(int)$pageInfo->limit->value);
$rows = $db->loadObjectList();
$vendors = array();
$products = array();
foreach($rows as &$product) {
$product->prices = array();
$product->vendor_name = '';
$product->file_name = $product->product_name;
if(!isset($products[$product->product_id])) {
$products[$product->product_id] =& $product;
} else if(!is_array($products[$product->product_id])) {
$old =& $products[$product->product_id];
unset($products[$product->product_id]);
$products[$product->product_id] = array(&$old, &$product);
} else {
$products[$product->product_id][] =& $product;
}
if($vendor->vendor_id == 1)
$vendors[(int)$product->product_vendor_id] =
(int)$product->product_vendor_id;
}
unset($product);
$this->assignRef('products', $rows);
$this->loadPricesImages($products, $vendors);
$db->setQuery('SELECT COUNT(DISTINCT(product.product_id))
'.$query);
$pageInfo->elements = new stdClass();
$pageInfo->elements->total = $db->loadResult();
$pageInfo->elements->page = count($rows);
$text_asc = JText::_('ASCENDING');
$text_desc = JText::_('DESCENDING');
$ordering_values = array(
'product.product_id' => JText::_('SORT_ID'),
'product.product_name' => JText::_('SORT_NAME'),
'product.product_quantity' =>
JText::_('SORT_QUANTITY'),
);
$this->ordering_values = array();
foreach($ordering_values as $k => $v) {
$this->ordering_values[$k.' asc'] = $v . ' '
.$text_asc;
$this->ordering_values[$k.' desc'] = $v . ' '
.$text_desc;
}
$this->full_ordering =
$this->pageInfo->filter->order->value . ' ' .
strtolower($this->pageInfo->filter->order->dir);
$this->toolbar = array(
'back' => array(
'icon' => 'back',
'fa' => 'fa-arrow-circle-left',
'name' => JText::_('HIKA_BACK'),
'url' =>
hikamarket::completeLink('product&task=listing')
),
);
$this->getPagination();
$this->getOrdering('a.ordering', true);
if(!empty($this->ordering->ordering)) {
$this->toolbar['ordering']['display'] = true;
}
return true;
}
public function edit_translation() {
$language_id = hikaInput::get()->getInt('language_id', 0);
$this->assignRef('language_id', $language_id);
$product_id = hikamarket::getCID('product_id');
$config = hikamarket::config();
$this->assignRef('config', $config);
$shopConfig = hikamarket::config(false);
$this->assignRef('shopConfig', $shopConfig);
$productClass = hikamarket::get('class.product');
$product = $productClass->getRaw($product_id);
$translationHelper =
hikamarket::get('shop.helper.translation');
if($translationHelper && $translationHelper->isMulti()) {
$translationHelper->load('hikashop_product',
@$product->product_id, $product, $language_id);
$this->assignRef('translationHelper', $translationHelper);
}
$editor = hikamarket::get('shop.helper.editor');
$editor->setEditor($config->get('editor',
''));
$editor->content = @$product->product_description;
$editor->height = 300;
if($config->get('editor_disable_buttons', 0))
$editor->options = false;
$this->assignRef('editor', $editor);
$toggle = hikamarket::get('helper.toggle');
$this->assignRef('toggle', $toggle);
$fieldsClass = hikamarket::get('shop.class.field');
$this->assignRef('fieldsClass', $fieldsClass);
$fields =
$fieldsClass->getFields('display:vendor_product_edit=1',
$product, 'product', 'field&task=state');
$this->assignRef('fields', $fields);
$this->assignRef('product', $product);
$this->toolbar = array(
array(
'url' => '#save',
'linkattribs' => 'onclick="return
window.hikamarket.submitform(\'save_translation\',\'hikamarket_translation_form\');"',
'icon' => 'save',
'fa' => 'fa-save',
'name' => JText::_('HIKA_SAVE'), 'pos'
=> 'right'
)
);
}
public function image() {
$file_id = (int)hikamarket::getCID();
$this->assignRef('cid', $file_id);
$config = hikamarket::config(false);
$this->assignRef('config', $config);
$element = null;
if(!empty($file_id)){
$fileClass = hikamarket::get('shop.class.file');
$element = $fileClass->get($file_id);
}
$this->assignRef('element', $element);
$product_id = hikaInput::get()->getInt('pid', 0);
$this->assignRef('product_id', $product_id);
$this->loadRef(array(
'imageHelper' => 'shop.helper.image',
'radioType' => 'shop.type.radio',
));
$this->image_link =
hikaInput::get()->getInt('image_link', 0);
$editor = hikamarket::get('shop.helper.editor');
$editor->setEditor($config->get('editor',
''));
$editor->name = 'file_description';
$editor->content = @$element->file_description;
$editor->height = 200;
if($config->get('editor_disable_buttons', 0))
$editor->options = false;
$this->assignRef('editor', $editor);
}
public function file() {
$file_id = (int)hikamarket::getCID();
$this->assignRef('cid', $file_id);
$config = hikamarket::config(false);
$this->assignRef('config', $config);
$shopConfig = hikamarket::config(false);
$this->assignRef('shopConfig', $shopConfig);
$vendor = hikamarket::loadVendor(true);
$this->assignRef('vendor', $vendor);
$this->loadRef(array(
'radioType' => 'shop.type.radio',
));
$element = null;
if(!empty($file_id)){
$fileClass = hikamarket::get('shop.class.file');
$element = $fileClass->get($file_id);
}
if(!empty($element)) {
$firstChar = substr($element->file_path, 0, 1);
$element->isVirtual = in_array($firstChar, array('#',
'@'));
$element->isLink = (substr($element->file_path, 0, 7) ==
'http://' || substr($element->file_path, 0, 8) ==
'https://');
}
$this->assignRef('element', $element);
$product_id = hikaInput::get()->getInt('pid', 0);
$this->assignRef('product_id', $product_id);
$editor = hikamarket::get('shop.helper.editor');
$editor->setEditor($config->get('editor',
''));
$editor->name = 'file_description';
$editor->content = @$element->file_description;
$editor->height = 200;
if($config->get('editor_disable_buttons', 0))
$editor->options = false;
$this->assignRef('editor', $editor);
}
public function addimage() {
$files_id = hikaInput::get()->get('cid', array(),
'array');
$product_id = hikaInput::get()->getInt('product_id', 0);
$output = '[]';
if(!empty($files_id)) {
hikamarket::toInteger($files_id);
$query = 'SELECT * FROM
'.hikamarket::table('shop.file').' WHERE file_id IN
('.implode(',',$files_id).')';
$db = JFactory::getDBO();
$db->setQuery($query);
$files = $db->loadObjectList();
$helperImage = hikamarket::get('shop.helper.image');
$ret = array();
foreach($files as $file) {
$params = new stdClass();
$params->product_id = $product_id;
$params->file_id = $file->file_id;
$params->file_path = $file->file_path;
$params->file_name = $file->file_name;
$ret[] = hikamarket::getLayout('productmarket',
'form_image_entry', $params, $js);
}
if(!empty($ret)) {
$output = json_encode($ret);
}
}
$js =
'window.hikashop.ready(function(){window.top.hikamarket.submitBox({images:'.$output.'});});';
$doc = JFactory::getDocument();
$doc->addScriptDeclaration($js);
return false;
}
public function galleryimage() {
hikamarket::loadJslib('otree');
$app = JFactory::getApplication();
$config = hikamarket::config();
$this->assignRef('config', $config);
$shopConfig = hikamarket::config(false);
$this->assignRef('shopConfig', $shopConfig);
$this->paramBase =
HIKAMARKET_COMPONENT.'.'.$this->getName().'.gallery';
$vendor = hikamarket::loadVendor(true);
$uploadFolder =
ltrim(JPath::clean(html_entity_decode($shopConfig->get('uploadfolder'))),DS);
$uploadFolder = rtrim($uploadFolder,DS).DS;
$basePath = JPATH_ROOT.DS.$uploadFolder.DS;
if($vendor->vendor_id > 1) {
$basePath .= 'vendor' . $vendor->vendor_id . DS;
}
$pageInfo = new stdClass();
$pageInfo->limit = new stdClass();
$pageInfo->limit->value = $app->getUserStateFromRequest(
$this->paramBase.'.list_limit', 'limit', 20,
'int' );
$pageInfo->limit->start = $app->getUserStateFromRequest(
$this->paramBase.'.limitstart', 'limitstart', 0,
'int' );
$pageInfo->search = $app->getUserStateFromRequest(
$this->paramBase.'.search', 'search', '',
'string');
$this->assignRef('pageInfo', $pageInfo);
jimport('joomla.filesystem.folder');
if(!JFolder::exists($basePath))
JFolder::create($basePath);
$galleryHelper = hikamarket::get('shop.helper.gallery');
$galleryHelper->setRoot($basePath);
$this->assignRef('galleryHelper', $galleryHelper);
$folder = str_replace('|', '/',
hikaInput::get()->getString('folder', ''));
$destFolder = rtrim($folder, '/\\');
if(!$galleryHelper->validatePath($destFolder))
$destFolder = '';
if(!empty($destFolder)) $destFolder .= '/';
$this->assignRef('destFolder', $destFolder);
$galleryOptions = array(
'filter' => '.*' .
str_replace(array('.','?','*','$','^'),
array('\.','\?','\*','$','\^'),
$pageInfo->search) . '.*',
'offset' => $pageInfo->limit->start,
'length' => $pageInfo->limit->value
);
$this->assignRef('galleryOptions', $galleryOptions);
$treeContent = $galleryHelper->getTreeList(null, $destFolder);
$this->assignRef('treeContent', $treeContent);
$dirContent = $galleryHelper->getDirContent($destFolder,
$galleryOptions);
$this->assignRef('dirContent', $dirContent);
jimport('joomla.html.pagination');
$pagination = new JPagination( $galleryHelper->filecount,
$pageInfo->limit->start, $pageInfo->limit->value );
$this->assignRef('pagination', $pagination);
}
public function addfile() {
$file_id = (int)hikamarket::getCID();
$js =
'window.hikashop.ready(function(){window.parent.hikamarket.submitBox({cid:'.$file_id.'});});';
$doc = JFactory::getDocument();
$doc->addScriptDeclaration($js);
return false;
}
public function form_image_entry() {
if(empty($this->popup)) {
$popup = hikamarket::get('shop.helper.popup');
$this->assignRef('popup', $popup);
}
$config = hikamarket::config(false);
$this->assignRef('config', $config);
$imageHelper = hikamarket::get('shop.helper.image');
$this->assignRef('imageHelper', $imageHelper);
}
public function form_file_entry() {
$file_id = (int)hikamarket::getCID();
$this->assignRef('cid', $file_id);
$product_id = hikaInput::get()->getInt('pid', 0);
$this->assignRef('product_id', $product_id);
$config = hikamarket::config(false);
$this->assignRef('config', $config);
$shopConfig = hikamarket::config(false);
$this->assignRef('shopConfig', $shopConfig);
$vendor = hikamarket::loadVendor(true);
$this->assignRef('vendor', $vendor);
if(empty($this->popup)) {
$popup = hikamarket::get('shop.helper.popup');
$this->assignRef('popup', $popup);
}
if(empty($this->params) &&
empty($this->params->file_id)) {
$element = new stdClass();
if(!empty($file_id)){
$fileClass = hikamarket::get('shop.class.file');
$element = $fileClass->get($file_id);
}
$element->product_id = $product_id;
if(!empty($element->product_id)) {
$productClass = hikamarket::get('shop.class.product');
$product = $productClass->get((int)$element->product_id);
$element->product_type = $product->product_type;
}
$this->assignRef('params', $element);
}
if($vendor->vendor_id > 1) {
if(!empty($this->params->file_path) &&
strpos($this->params->file_path, '/') !== false) {
$this->params->file_path = substr($this->params->file_path,
strrpos($this->params->file_path, '/')+1);
}
}
}
public function form_price_entry() {
$db = JFactory::getDBO();
$config = hikamarket::config();
$shopConfig = hikamarket::config(false);
$this->assignRef('config', $config);
$this->assignRef('shopConfig', $shopConfig);
$main_currency = $shopConfig->get('main_currency', 1);
$product_id = hikaInput::get()->getInt('product_id', 0);
$price_id = hikaInput::get()->getInt('price_id', 0);
$edition_state = hikaInput::get()->getInt('edition_state',
0);
$formKeyParam = hikaInput::get()->getString('formkey',
'');
$variant_product_id =
hikaInput::get()->getInt('variant_product_id', 0);
if(!empty($variant_product_id) && !empty($formKeyParam)
&& $formKeyParam == 'variantprice') {
$product_id = $variant_product_id;
}
$this->price_num = hikaInput::get()->getInt('price_num',
0);
if(!empty($price_id)) {
$query = 'SELECT * FROM
'.hikamarket::table('shop.price').
' WHERE price_product_id = '.(int)$product_id.' AND
price_id = '.(int)$price_id;
$db->setQuery($query);
$this->price = $db->loadObject();
if(empty($this->price))
exit;
} else {
$this->price = new stdClass;
$this->price->price_id = 0;
$this->price->price_value = 0;
$this->price->price_access = 'all';
$this->price->price_min_quantity = 1;
$this->price->price_currency_id = $main_currency;
}
if(!empty($this->price))
$this->price->edit = ($edition_state == 1);
$productClass = hikamarket::get('shop.class.product');
$product = $productClass->get($product_id);
$this->editing_variant = !empty($product->product_type) &&
($product->product_type == 'variant');
if($this->editing_variant &&
!empty($product->product_parent_id)) {
$parentProduct = $productClass->get($product->product_parent_id);
$product->product_tax_id = (int)$parentProduct->product_tax_id;
unset($parentParent);
}
$this->loadRef(array(
'currencyClass' => 'shop.class.currency',
'currencyType' => 'shop.type.currency',
'nameboxType' => 'type.namebox',
'currencyType' => 'shop.type.currency',
'userClass' => 'shop.class.user',
));
if(hikashop_level(2)) {
hikamarket::loadJslib('otree');
$joomlaAcl = hikamarket::get('type.joomla_acl');
$this->assignRef('joomlaAcl', $joomlaAcl);
}
$main_currency = $shopConfig->get('main_currency',1);
$this->currencyType->load($main_currency);
$default_currency =
$this->currencyType->currencies[$main_currency];
$this->assignRef('default_currency', $default_currency);
$currencies = $this->currencyType->currencies;
$this->assignRef('product', $product);
$this->price_acls = array(
'value' => $this->aclEdit('price/value'),
'tax' => $this->aclEdit('price/tax')
&& !$shopConfig->get('floating_tax_prices', 0),
'currency' => $this->aclEdit('price/currency')
&& (count($currencies) > 1),
'quantity' =>
$this->aclEdit('price/quantity'),
'acl' => hikashop_level(2) &&
$this->aclEdit('price/acl'),
'user' => hikashop_level(2) &&
$this->aclEdit('price/user'),
'date' => hikashop_level(2) &&
$this->aclEdit('price/date')
);
$formKey = empty($this->editing_variant) ? 'price' :
'variantprice';
if($edition_state == -1)
$formKey .= '_old';
$formData = hikaInput::get()->get($formKey, array(),
'array');
$priceData = (isset($formData[$this->price_num])) ?
$formData[$this->price_num] : reset($formData);
if($this->price_acls['value'] &&
isset($priceData['price_value']))
$this->price->price_value =
hikamarket::toFloat($priceData['price_value']);
if($this->price_acls['currency'] &&
isset($priceData['price_currency_id']))
$this->price->price_currency_id =
(int)$priceData['price_currency_id'];
if($this->price_acls['quantity'] &&
isset($priceData['price_min_quantity']))
$this->price->price_min_quantity =
(int)$priceData['price_min_quantity'];
if($this->price_acls['acl'] &&
isset($priceData['price_access']))
$this->price->price_access =
(string)$priceData['price_access'];
if($this->price_acls['user'] &&
isset($priceData['price_users']))
$this->price->price_users =
is_array($priceData['price_users']) ? implode(',',
$priceData['price_users']) :
(string)$priceData['price_users'];
if($this->price_acls['date'] &&
isset($priceData['price_start_date']))
$this->price->price_start_date =
(string)$priceData['price_start_date'];
if($this->price_acls['date'] &&
isset($priceData['price_end_date']))
$this->price->price_end_date =
(string)$priceData['price_end_date'];
$main_tax_zone = explode(',',
$shopConfig->get('main_tax_zone', ''));
if(count($main_tax_zone) && !empty($product->product_tax_id)
&& !empty($this->price->price_value) &&
!empty($main_tax_zone)) {
$this->price->price_value_with_tax =
$this->currencyClass->getTaxedPrice($this->price->price_value,
array_shift($main_tax_zone), $product->product_tax_id, 5);
} else {
$this->price->price_value_with_tax =
$this->price->price_value;
}
}
protected function niceNumber($value) {
if($value < 1000) return $value;
if($value < 1000000) return floor($value/1000).'K';
return floor($value/1000000).'M';
}
public function import() {
$this->loadRef(array(
'importHelper' => 'helper.import',
'uploaderType' => 'shop.type.uploader', // TODO
use "type.upload" and a new display function
));
$this->toolbar = array(
'back' => array(
'icon' => 'back',
'fa' => 'fa-arrow-circle-left',
'name' => JText::_('HIKA_BACK'),
'url' => hikamarket::completeLink('product')
),
);
}
}
PK���[wtW�views/toolbar/index.htmlnu�[���<html><body></body></html>PK���[��B��views/toolbar/tmpl/default.phpnu�[���<?php
/**
* @package HikaMarket for Joomla!
* @version 3.1.1
* @author Obsidev S.A.R.L.
* @copyright (C) 2011-2020 OBSIDEV. All rights reserved.
* @license GNU/GPLv3 http://www.gnu.org/licenses/gpl-3.0.html
*/
defined('_JEXEC') or die('Restricted access');
?><?php
$toolbar_classname =
$this->config->get('front_toolbar_btn_classname',
'hikabtn');
if(empty($toolbar_classname))
$toolbar_classname = 'hikabtn';
$toolbar_mode =
$this->config->get('front_toolbar_icon_mode',
'fa');
if(!in_array($toolbar_mode, array('css', 'fa')))
$toolbar_mode = 'css';
$data = $this->left;
if(!empty($this->right)) {
$data[] = '#RIGHT#';
$data = array_merge($data, $this->right);
}
?>
<div class="hikam_toolbar">
<div class="hikam_toolbar_btn hikam_btn_32">
<?php
foreach($data as $key => $tool) {
if($tool === '#RIGHT#') {
echo '<div class="hikam_toolbar_right">';
continue;
}
if(empty($tool['url']) &&
!empty($tool['sep'])) {
echo '<div class="sep"></div>';
continue;
}
$content = '';
if(!empty($tool['fa']) && $toolbar_mode ==
'fa') {
$content .= '<i class="fa
'.$tool['fa'].'"></i>';
$tool['icon'] = null;
}
if(!empty($tool['icon'])) {
$content .= '<span class="btnIcon
iconM-32-'.$tool['icon'].'"></span>';
}
if(!empty($tool['name'])) { $content .= '<span
class="btnName">' . $tool['name'] .
'</span>'; }
if(!empty($tool['url'])) {
if(empty($tool['popup'])) {
if(empty($tool['linkattribs']))
echo '<a class="'.$toolbar_classname.'"
href="'.$tool['url'].'">';
else
echo '<a class="'.$toolbar_classname.'"
href="'.$tool['url'].'"
'.$tool['linkattribs'].'>';
echo $content . '</a>';
} else {
$attr = $this->popup->getAttr(@$tool['linkattribs'],
'hikabtn');
echo $this->popup->display(
$content,
@$tool['name'],
$tool['url'],
$tool['popup']['id'],
$tool['popup']['width'],
$tool['popup']['height'],
$attr, '', 'link'
);
}
} else {
echo '<div
class="'.$toolbar_classname.'">'.$content.'</div>';
}
unset($content);
}
if(!empty($this->right))
echo '</div>';
?>
<div style="clear:both"></div>
</div>
</div>
PK���[wtW�views/toolbar/tmpl/index.htmlnu�[���<html><body></body></html>PK���[��k���views/toolbar/view.html.phpnu�[���<?php
/**
* @package HikaMarket for Joomla!
* @version 3.1.1
* @author Obsidev S.A.R.L.
* @copyright (C) 2011-2020 OBSIDEV. All rights reserved.
* @license GNU/GPLv3 http://www.gnu.org/licenses/gpl-3.0.html
*/
defined('_JEXEC') or die('Restricted access');
?><?php
class toolbarViewtoolbar extends hikamarketView {
protected $ctrl = 'toolbar';
protected $icon = '';
protected $triggerView = false;
public function display($tpl = null, $params = array()) {
$this->params =& $params;
$fct = $this->getLayout();
if($fct == 'default')
$fct = 'show';
if(method_exists($this, $fct)) {
if($this->$fct() === false)
return;
}
if(isset($this->toolbar))
unset($this->toolbar);
parent::display($tpl);
}
public function show() {
$toolbar = $this->params->get('toolbar', null);
if(empty($toolbar))
return false;
$config = hikamarket::config();
$this->assignRef('config', $config);
$this->loadRef(array(
'popup' => 'shop.helper.popup'
));
$toolbarLeft = array();
$toolbarRight = array();
foreach($toolbar as $tool) {
if(isset($tool['acl']) && !$tool['acl'])
continue;
if(isset($tool['display']) &&
!$tool['display'])
continue;
if(!empty($tool['pos']) && $tool['pos'] ===
'right')
$toolbarRight[] = $tool;
else
$toolbarLeft[] = $tool;
}
$this->assignRef('rawdata', $toolbar);
$this->assignRef('left', $toolbarLeft);
$this->assignRef('right', $toolbarRight);
}
}
PK���[wtW�views/uploadmarket/index.htmlnu�[���<html><body></body></html>PK���[3j3��(views/uploadmarket/tmpl/galleryimage.phpnu�[���<?php
/**
* @package HikaMarket for Joomla!
* @version 3.1.1
* @author Obsidev S.A.R.L.
* @copyright (C) 2011-2020 OBSIDEV. All rights reserved.
* @license GNU/GPLv3 http://www.gnu.org/licenses/gpl-3.0.html
*/
defined('_JEXEC') or die('Restricted access');
?><fieldset>
<div class="toolbar" id="toolbar"
style="float: right;">
<button class="hikabtn" type="button"
onclick="window.hikamarket.submitform('galleryselect','adminForm');">
<img style="vertical-align: middle" src="<?php echo
HIKASHOP_IMAGES; ?>save.png"/> <?php echo
JText::_('OK'); ?>
</button>
</div>
</fieldset>
<form action="<?php echo
hikamarket::completeLink('upload&task=galleryimage', true);
?>" method="post" name="adminForm"
id="adminForm">
<table width="100%" height="100%"
class="adminlist" style="width:100%;height:100%;">
<thead>
<tr>
<th></th>
<th>
<?php echo JText::_('FILTER');?>:
<input type="text" name="search"
id="galleryimage_search" value="<?php echo
$this->escape($this->pageInfo->search);?>"
class="text_area"
onchange="document.adminForm.submit();" />
<button class="hikabtn"
onclick="document.adminForm.limitstart.value=0;this.form.submit();"><i
class="fas fa-search"></i></button>
<button class="hikabtn"
onclick="document.adminForm.limitstart.value=0;document.getElementById('galleryimage_search').value='';this.form.submit();"><i
class="fas fa-times"></i></button>
</th>
</tr>
</thead>
<tfoot>
<tr>
<td></td>
<td>
<?php echo $this->pagination->getListFooter(); ?>
<?php echo $this->pagination->getResultsCounter(); ?>
</td>
</tr>
</tfoot>
<tr>
<td width="130px" height="100%"
style="width:130px;vertical-align:top;">
<div style="width:130px;height:100%;overflow:auto;">
<?php
echo $this->treeContent;
?>
<script type="text/javascript">
hikashopGallery.callbackSelection = function(tree,id) {
var d = document, node = tree.get(id);
if( node.value && node.name ) {
var url = "<?php
$params = '';
if(!empty($this->uploadConfig['extra'])) {
foreach($this->uploadConfig['extra'] as $uploadField =>
$uploadFieldValue) {
$params .= '&' . urlencode($uploadField) . '='
. urlencode($uploadFieldValue);
}
}
echo
hikamarket::completeLink('upload&task=galleryimage&folder={FOLDER}&uploader='.$this->uploader.'&field='.$this->field.$params,
true, true) ;
?>";
document.location = url.replace('{FOLDER}',
node.value.replace('/', '|'));
}
}
</script>
</div>
</td>
<td>
<ul id="hikaGallery">
<?php
if(!empty($this->dirContent)) {
foreach($this->dirContent as $k => $content) {
$chk_uid = 'hikaGalleryChk_' . $k . '_' . uniqid();
if(!empty($this->vendorPath))
$content->path = str_replace($this->vendorPath, '',
$content->path);
?>
<li class="hikaGalleryItem">
<a class="hikaGalleryPhoto" href="#"
onclick="return window.hikagallery.select(this, '<?php echo
$chk_uid; ?>');">
<img src="<?php echo str_replace('//',
'/', $content->thumbnail->url); ?>"
alt="<?php echo $content->filename; ?>"/>
<span style="display:none;"
class="hikaGalleryChk"><input type="checkbox"
id="<?php echo $chk_uid ;?>" name="files[]"
value="<?php echo $content->path; ?>"/></span>
<div class="hikaGalleryCommand">
<span class="photo_name"><?php echo
$content->filename; ?></span>
<span><?php echo $content->width . 'x' .
$content->height; ?></span>
<span style="float:right"><?php echo
$content->size; ?></span>
</div>
</a>
</li>
<?php
}
}
?>
</ul>
</td>
</tr>
</table>
<script type="text/javascript">
window.hikagallery = {};
window.hikagallery.select = function(el, id) {
var d = document, w = window, o = w.Oby, chk = d.getElementById(id);
if(chk) {
if(chk.checked) {
o.removeClass(el.parentNode, 'selected');
} else {
o.addClass(el.parentNode, 'selected');
}
chk.checked = !chk.checked;
}
return false;
}
</script>
<div class="clr"></div>
<input type="hidden" name="option"
value="<?php echo HIKAMARKET_COMPONENT; ?>" />
<input type="hidden" name="tmpl"
value="component" />
<input type="hidden" name="task"
value="galleryimage" />
<input type="hidden" name="ctrl"
value="upload" />
<input type="hidden" name="folder"
value="<?php echo $this->destFolder; ?>" />
<input type="hidden" name="uploader"
value="<?php echo $this->uploader; ?>" />
<input type="hidden" name="field"
value="<?php echo $this->field; ?>" />
<?php
if(!empty($this->uploadConfig['extra'])) {
foreach($this->uploadConfig['extra'] as $uploadField =>
$uploadFieldValue) {
?>
<input type="hidden" name="<?php echo $uploadField;
?>" value="<?php echo $uploadFieldValue; ?>" />
<?php
}
}
?>
<?php echo JHTML::_('form.token'); ?>
</form>
PK���[�'��'views/uploadmarket/tmpl/image_entry.phpnu�[���<?php
/**
* @package HikaMarket for Joomla!
* @version 3.1.1
* @author Obsidev S.A.R.L.
* @copyright (C) 2011-2020 OBSIDEV. All rights reserved.
* @license GNU/GPLv3 http://www.gnu.org/licenses/gpl-3.0.html
*/
defined('_JEXEC') or die('Restricted access');
?><div>
<?php if(!empty($this->params->delete) &&
!empty($this->params->uploader_id)) { ?>
<a href="#delete" class="deleteImg"
onclick="return window.hkUploaderList['<?php echo
$this->params->uploader_id;
?>'].delImage(this);"><i class="fas
fa-trash-alt"></i></a>
<?php } ?>
<div class="hikamarket_image"><?php
$img =
$this->imageHelper->getThumbnail(@$this->params->file_path,
array(100, 100), array('default' => true));
if($img->success) {
$extra_data = '';
if(!empty($img->external))
$extra_data .= 'width="100"
height="100;"';
$content = '<img src="'.$img->url.'"
alt="'.$img->filename.'"
'.$extra_data.'/>';
echo $this->popup->image($content, $img->origin_url);
}
if(!empty($this->params->field_name))
echo '<input type="hidden"
name="'.$this->params->field_name.'"
value="'.$this->escape(@$this->params->file_path).'"/>';
?></div>
</div>
PK���[wtW�"views/uploadmarket/tmpl/index.htmlnu�[���<html><body></body></html>PK���[|n[��$views/uploadmarket/tmpl/sendfile.phpnu�[���<?php
/**
* @package HikaMarket for Joomla!
* @version 3.1.1
* @author Obsidev S.A.R.L.
* @copyright (C) 2011-2020 OBSIDEV. All rights reserved.
* @license GNU/GPLv3 http://www.gnu.org/licenses/gpl-3.0.html
*/
defined('_JEXEC') or die('Restricted access');
?><fieldset>
<div class="toolbar" id="toolbar"
style="float: right;">
<button class="hikabtn" type="button"
onclick="hikamarket.submitform('addimage','hikamarket_form');"<i
class="fas fa-check"></i> <?php echo
JText::_('OK'); ?></button>
</div>
</fieldset>
<form action="<?php echo
hikamarket::completeLink('upload&task=image'); ?>"
method="post" name="hikamarket_form"
id="hikamarket_form" enctype="multipart/form-data">
<table width="100%">
<tr>
<?php
if(empty($this->element->file_path)) {
?>
<td class="key">
<label for="files"><?php echo
JText::_('HIKA_IMAGE'); ?></label>
</td>
<td>
<input type="file" name="files[]"
size="30" />
<?php echo
JText::sprintf('MAX_UPLOAD',(hikashop_bytes(ini_get('upload_max_filesize'))
> hikashop_bytes(ini_get('post_max_size'))) ?
ini_get('post_max_size') :
ini_get('upload_max_filesize')); ?>
</td>
<?php
} else {
?>
<td class="key">
<label for="files"><?php echo JText::_(
'HIKA_IMAGE' ); ?></label>
</td>
<td><?php
$image =
$this->imageHelper->getThumbnail($this->element->file_path,
array(100, 100), array('default' => true));
?><img src="<?php echo $image->url ;?>"
alt="<?php echo $image->filename ;?>" /></td>
<?php
}
?>
</tr>
</table>
<div class="clr"></div>
<input type="hidden" name="option"
value="<?php echo HIKAMARKET_COMPONENT; ?>" />
<input type="hidden" name="tmpl"
value="component" />
<input type="hidden" name="ctrl"
value="upload" />
<input type="hidden" name="task"
value="addimage" />
<input type="hidden" name="uploader"
value="<?php echo $this->uploader; ?>" />
<input type="hidden" name="field"
value="<?php echo $this->field; ?>" />
<?php
if(!empty($this->uploadConfig['extra'])) {
foreach($this->uploadConfig['extra'] as $uploadField =>
$uploadFieldValue) {
?>
<input type="hidden" name="<?php echo $uploadField;
?>" value="<?php echo $uploadFieldValue; ?>" />
<?php
}
}
?>
<?php echo JHTML::_( 'form.token' ); ?>
</form>
PK���[U*31
views/uploadmarket/view.html.phpnu�[���<?php
/**
* @package HikaMarket for Joomla!
* @version 3.1.1
* @author Obsidev S.A.R.L.
* @copyright (C) 2011-2020 OBSIDEV. All rights reserved.
* @license GNU/GPLv3 http://www.gnu.org/licenses/gpl-3.0.html
*/
defined('_JEXEC') or die('Restricted access');
?><?php
class uploadmarketViewuploadmarket extends hikamarketView {
const ctrl = 'upload';
const name = 'HIKA_UPLOAD';
const icon = 'upload';
public function display($tpl = null, $params = array()) {
$this->params =& $params;
$fct = $this->getLayout();
if(method_exists($this, $fct)) {
if($this->$fct() === false)
return;
}
parent::display($tpl);
}
public function sendfile() {
$uploadConfig = hikaInput::get()->getVar('uploadConfig',
null);
if(empty($uploadConfig) || !is_array($uploadConfig))
return false;
$this->assignRef('uploadConfig', $uploadConfig);
$uploader = hikaInput::get()->getCmd('uploader',
'');
if(substr($uploader, 0, 11) == 'plg.market.')
$uploader = substr($uploader, 11);
$this->assignRef('uploader', $uploader);
$field = hikaInput::get()->getCmd('field', '');
$this->assignRef('field', $field);
}
public function galleryimage() {
hikamarket::loadJslib('otree');
$app = JFactory::getApplication();
$config = hikamarket::config();
$this->assignRef('config', $config);
$shopConfig = hikamarket::config(false);
$this->assignRef('shopConfig', $shopConfig);
$this->paramBase =
HIKAMARKET_COMPONENT.'.'.$this->getName().'.gallery';
$uploadConfig = hikaInput::get()->getVar('uploadConfig',
null);
if(empty($uploadConfig) || !is_array($uploadConfig))
return false;
$this->assignRef('uploadConfig', $uploadConfig);
$uploader = hikaInput::get()->getCmd('uploader',
'');
if(substr($uploader, 0, 11) == 'plg.market.')
$uploader = substr($uploader, 11);
$this->assignRef('uploader', $uploader);
$field = hikaInput::get()->getCmd('field', '');
$this->assignRef('field', $field);
$uploadFolder =
ltrim(JPath::clean(html_entity_decode($shopConfig->get('uploadfolder'))),DS);
$uploadFolder = rtrim($uploadFolder,DS).DS;
$basePath = JPATH_ROOT.DS.$uploadFolder.DS;
if(!empty($uploadConfig['options']['upload_dir']))
$basePath =
rtrim(JPATH_ROOT,DS).DS.str_replace(array('\\','/'),
DS, $uploadConfig['options']['upload_dir']);
$pageInfo = new stdClass();
$pageInfo->limit = new stdClass();
$pageInfo->limit->value = $app->getUserStateFromRequest(
$this->paramBase.'.list_limit', 'limit', 20,
'int' );
$pageInfo->limit->start = $app->getUserStateFromRequest(
$this->paramBase.'.limitstart', 'limitstart', 0,
'int' );
$pageInfo->search = $app->getUserStateFromRequest(
$this->paramBase.'.search', 'search', '',
'string');
$this->assignRef('pageInfo', $pageInfo);
jimport('joomla.filesystem.folder');
if(!JFolder::exists($basePath))
JFolder::create($basePath);
$vendorBase = $basePath;
if(!empty($uploadConfig['options']['sub_folder']))
$vendorBase .= rtrim(str_replace(array('\\','/'),
DS, $uploadConfig['options']['sub_folder']), DS).DS;
if(!JFolder::exists($vendorBase)) {
JFolder::create($vendorBase);
if(!JFolder::exists($vendorBase))
return false;
}
$galleryHelper = hikamarket::get('shop.helper.gallery');
$galleryHelper->setRoot($vendorBase);
$this->assignRef('galleryHelper', $galleryHelper);
$folder = str_replace(array('|', '\/'), array(DS,
DS), hikaInput::get()->getString('folder', ''));
if(!empty($uploadConfig['options']['sub_folder'])
&& substr($folder, 0,
strlen($uploadConfig['options']['sub_folder'])) ==
$uploadConfig['options']['sub_folder']) {
$folder = substr($folder,
strlen($uploadConfig['options']['sub_folder']));
if($folder === false)
$folder = '';
}
$destFolder = rtrim($folder, '/\\');
if(!$galleryHelper->validatePath($destFolder))
$destFolder = '';
if(!empty($destFolder)) $destFolder .= '/';
$treeContent = $galleryHelper->getTreeList(null, $destFolder);
$this->assignRef('treeContent', $treeContent);
$galleryHelper->setRoot($basePath);
$destFolder = '';
if(!empty($uploadConfig['options']['sub_folder']))
$destFolder .=
rtrim(str_replace(array('\\','/'),DS,$uploadConfig['options']['sub_folder']),
DS).DS;
$destFolder .= rtrim($folder, '/\\');
if(!$galleryHelper->validatePath($destFolder))
$destFolder = '';
if(!empty($destFolder)) $destFolder .= '/';
$this->assignRef('destFolder', $destFolder);
$galleryOptions = array(
'filter' => '.*' .
str_replace(array('.','?','*','$','^'),
array('\.','\?','\*','$','\^'),
$pageInfo->search) . '.*',
'offset' => $pageInfo->limit->start,
'length' => $pageInfo->limit->value
);
$this->assignRef('galleryOptions', $galleryOptions);
$dirContent = $galleryHelper->getDirContent($destFolder,
$galleryOptions);
$this->assignRef('dirContent', $dirContent);
$vendorPath = '';
if(!empty($uploadConfig['options']['sub_folder']))
$vendorPath =
rtrim(str_replace(array('\\','/'),DS,$uploadConfig['options']['sub_folder']),
DS).DS;
$this->assignRef('vendorPath', $vendorPath);
jimport('joomla.html.pagination');
$pagination = new JPagination( $galleryHelper->filecount,
$pageInfo->limit->start, $pageInfo->limit->value );
$this->assignRef('pagination', $pagination);
}
public function image_entry() {
$imageHelper = hikamarket::get('shop.helper.image');
$this->assignRef('imageHelper', $imageHelper);
$popup = hikamarket::get('shop.helper.popup');
$this->assignRef('popup', $popup);
}
}
PK���[wtW�views/usermarket/index.htmlnu�[���<html><body></body></html>PK���[�R9Ӽ�!views/usermarket/tmpl/address.phpnu�[���<?php
/**
* @package HikaMarket for Joomla!
* @version 3.1.1
* @author Obsidev S.A.R.L.
* @copyright (C) 2011-2020 OBSIDEV. All rights reserved.
* @license GNU/GPLv3 http://www.gnu.org/licenses/gpl-3.0.html
*/
defined('_JEXEC') or die('Restricted access');
?><?php
if(!empty($this->ajax) && !empty($this->edit)) {
?>
<div class="hikamarket_ajax_loading_elem"></div>
<div class="hikamarket_ajax_loading_spinner"></div>
<?php
}
$show_url =
'user&task=address&subtask=listing&user_id='.$this->user_id;
$save_url =
'user&task=address&subtask=save&cid='.$this->address->address_id.'&user_id='.$this->user_id;
$update_url =
'user&task=address&subtask=edit&cid='.$this->address->address_id.'&user_id='.$this->user_id;
$delete_url =
'user&task=address&subtask=delete&cid='.$this->address->address_id.'&user_id='.$this->user_id;
if(hikamarket::acl('user/edit/address') &&
($this->vendor->vendor_id == 0 || $this->vendor->vendor_id ==
1)) {
if(!isset($this->edit) || $this->edit !== true ) {
?> <div class="hikam_edit">
<a class="hikabtn" href="<?php echo
hikamarket::completeLink($update_url, 'ajax');?>"
onclick="return
window.addressMgr.get(this,'hikamarket_user_addresses_show');"><i
class="fas fa-pencil-alt"></i> <span><?php echo
JText::_('HIKA_EDIT'); ?></span></a>
<a class="hikabtn" href="<?php echo
hikamarket::completeLink($delete_url, 'ajax');?>"
onclick="return window.addressMgr.delete(this,<?php echo
$this->address->address_id; ?>);"><i class="far
fa-trash-alt"></i> <span><?php echo
JText::_('HIKA_DELETE'); ?></span></a>
</div>
<?php
} else {
if(empty($this->address->address_id)) {
$title = $this->type == 'billing' ?
'HIKASHOP_NEW_BILLING_ADDRESS':
'HIKASHOP_NEW_SHIPPING_ADDRESS';
} else {
$title = in_array($this->address->address_type,
array('billing', 'shipping')) ?
'HIKASHOP_EDIT_'.strtoupper($this->address->address_type).'_ADDRESS'
: 'HIKASHOP_EDIT_ADDRESS';
}
?>
<div class="hikashop_address_edition">
<h3><?php echo JText::_($title); ?></h3>
<?php
}
}
if(isset($this->edit) && $this->edit === true) {
$error_messages = hikaRegistry::get('address.error');
if(!empty($error_messages)) {
foreach($error_messages as $msg) {
hikashop_display($msg[0], $msg[1]);
}
}
foreach($this->fields['address'] as $fieldname => $field)
{
?>
<dl id="hikamarket_user_address_<?php echo
$this->address->address_id; ?>_<?php echo
$fieldname;?>" class="hikam_options">
<dt class="hikamarket_user_address_<?php echo
$fieldname;?>"><label><?php
echo $this->fieldsClass->trans($field->field_realname);
if($field->field_required && !empty($field->vendor_edit))
echo ' <span
class="field_required">*</span>';
?></label></dt>
<dd class="hikamarket_user_address_<?php echo
$fieldname;?>"><?php
if(!empty($field->vendor_edit)) {
$onWhat = 'onchange';
if($field->field_type == 'radio')
$onWhat = 'onclick';
$field->field_required = false;
echo $this->fieldsClass->display(
$field,
@$this->address->$fieldname,
'data[user_address]['.$fieldname.']',
false,
' ' . $onWhat .
'="hikashopToggleFields(this.value,\''.$fieldname.'\',\'user_address\',0);"',
false,
$this->fields['address'],
$this->address
);
} else {
echo $this->fieldsClass->show($field,
@$this->address->$fieldname);
}
?></dd>
</dl>
<?php
}
?>
<div style="float:right">
<a class="hikabtn hikabtn-success" href="<?php echo
hikamarket::completeLink($save_url, 'ajax');?>"
onclick="return
window.addressMgr.form(this,'hikamarket_user_addresses_show');"><i
class="fas fa-check"></i> <span><?php echo
JText::_('HIKA_SAVE'); ?></span></a>
</div>
<a class="hikabtn hikabtn-danger" href="<?php echo
hikamarket::completeLink($show_url, 'ajax');?>"
onclick="return
window.addressMgr.get(this,'hikamarket_user_addresses_show');"><i
class="fas fa-times-circle"></i> <span><?php
echo JText::_('HIKA_CANCEL'); ?></span></a>
<input type="hidden"
name="data[user_address][address_id]" value="<?php echo
@$this->address->address_id; ?>"/>
<input type="hidden"
name="data[user_address][address_user_id]" value="<?php
echo @$this->address->address_user_id; ?>"/>
<?php echo JHTML::_( 'form.token' ); ?>
</div>
<?php
} else {
if($this->config->get('address_show_details', 0)) {
foreach($this->fields['address'] as $fieldname => $field)
{
?>
<dl class="hikam_options">
<dt class="hikamarket_user_address_<?php echo
$fieldname;?>"><label><?php echo
$this->fieldsClass->trans($field->field_realname);?></label></dt>
<dd class="hikamarket_user_address_<?php echo
$fieldname;?>"><span><?php echo
$this->fieldsClass->show($field,
@$this->address->$fieldname);?></span></dd>
</dl>
<?php
}
} else {
echo $this->addressClass->maxiFormat($this->address,
$this->fields['address'], true);
}
if(!empty($this->display_badge)) {
?>
<div class="" style="float:right"><?php
if(in_array($this->address->address_type,
array('billing', '', 'both')))
echo '<span class="hk-label
hk-label-blue">'.JText::_('HIKASHOP_BILLING_ADDRESS').'</span>';
if(in_array($this->address->address_type,
array('shipping', '', 'both')))
echo '<span class="hk-label
hk-label-orange">'.JText::_('HIKASHOP_SHIPPING_ADDRESS').'</span>';
?></div>
<?php
}
}
if(!empty($this->ajax)) {
$miniFormat = $this->addressClass->miniFormat($this->address,
$this->fields['address']);
?>
<script type="text/javascript">
window.Oby.fireAjax('hikamarket_address_changed',{'edit':<?php
echo $this->edit?'1':'0';
?>,'cid':<?php echo $this->address->address_id;
?>,'miniFormat':'<?php echo
str_replace('\'','\\\'', $miniFormat);
?>'<?php
$previous_id = hikaInput::get()->getVar('previous_cid',
null);
if((!empty($previous_id) || $previous_id === 0) &&
is_int($previous_id))
echo ',\'previous_cid\':' . $previous_id;
?>});
</script>
<?php
}
if(!empty($this->init_js)) {
?>
<script type="text/javascript">
<?php echo $this->init_js; ?>
</script>
<?php
}
PK���[wtW�
views/usermarket/tmpl/index.htmlnu�[���<html><body></body></html>PK���[���!��!views/usermarket/tmpl/listing.phpnu�[���<?php
/**
* @package HikaMarket for Joomla!
* @version 3.1.1
* @author Obsidev S.A.R.L.
* @copyright (C) 2011-2020 OBSIDEV. All rights reserved.
* @license GNU/GPLv3 http://www.gnu.org/licenses/gpl-3.0.html
*/
defined('_JEXEC') or die('Restricted access');
?><div>
<form action="<?php echo
hikamarket::completeLink('user&task=listing'); ?>"
method="post" name="adminForm"
id="adminForm">
<div class="hk-row-fluid">
<div class="hkc-md-12"><?php
echo $this->loadHkLayout('search', array(
'id' => 'hikamarket_user_listing_search',
));
?></div>
</div>
<div class="hk-row-fluid">
<div class="hkc-md-12">
<div class="expand-filters"
style="width:auto;">
<?php
?>
</div>
<div style="clear:both"></div>
</div>
</div>
<table class="hikam_listing hikam_table"
style="width:100%">
<thead>
<tr>
<th class="hikamarket_user_name_title title"><?php
echo JHTML::_('grid.sort',
JText::_('HIKA_USER_NAME'), 'juser.name',
$this->pageInfo->filter->order->dir,
$this->pageInfo->filter->order->value);
?></th>
<th class="hikamarket_user_login_title title"><?php
echo JHTML::_('grid.sort',
JText::_('HIKA_USERNAME'), 'juser.username',
$this->pageInfo->filter->order->dir,
$this->pageInfo->filter->order->value);
?></th>
<th class="hikamarket_user_email_title title"><?php
echo JHTML::_('grid.sort', JText::_('HIKA_EMAIL'),
'hkuser.user_email',
$this->pageInfo->filter->order->dir,
$this->pageInfo->filter->order->value);
?></th>
<?php
if(!empty($this->fields)) {
foreach($this->fields as $field) {
?>
<th class="hikamarket_user_<?php echo
$field->field_namekey; ?>_title title"><?php
echo JHTML::_('grid.sort',
$this->fieldsClass->trans($field->field_realname),
'hkuser.'.$field->field_namekey,
$this->pageInfo->filter->order->dir,
$this->pageInfo->filter->order->value );
?></th>
<?php
}
}
if($this->vendor->vendor_id == 1) {
?>
<th class="hikamarket_user_id_title title">
<?php echo JHTML::_('grid.sort', JText::_( 'ID'
), 'hkuser.user_id',
$this->pageInfo->filter->order->dir,
$this->pageInfo->filter->order->value ); ?>
</th>
<?php
}
?>
</tr>
</thead>
<?php if(!isset($this->embbed)) {
$columns = 3 + count($this->fields);
if($this->vendor->vendor_id == 1) $columns++;
?>
<tfoot>
<tr>
<td colspan="<?php echo $columns; ?>">
<?php echo $this->pagination->getListFooter(); ?>
<?php echo $this->pagination->getResultsCounter(); ?>
</td>
</tr>
</tfoot>
<?php } ?>
<tbody>
<?php
$k = 0;
$i = 0;
foreach($this->rows as $user) {
$rowId = 'market_user_'.$user->user_id;
if($this->manage)
$url =
hikamarket::completeLink('user&task=show&cid='.$user->user_id);
?>
<tr class="row<?php echo $k; ?>" id="<?php
echo $rowId; ?>">
<td class="hikamarket_user_name_value"><?php
if(!empty($url))
echo '<a href="'.$url.'"><i
class="fas fa-pencil-alt"
style="margin-right:6px;"></i>';
if(!empty($user->name))
echo $user->name;
else
echo
'<em>'.JText::_('HIKAM_GUEST_USER').'</em>';
if(!empty($url))
echo '</a>';
?></td>
<td class="hikamarket_user_login_value"><?php
if(!empty($user->username))
echo $user->username;
else
echo '-';
?></td>
<td class="hikamarket_user_email_value"><?php echo
@$user->user_email; ?></td>
<?php
if(!empty($this->fields)) {
foreach($this->fields as $field) {
$namekey = $field->field_namekey;
?>
<td class="hikamarket_user_<?php echo $namekey;
?>_value"><?php
echo $this->fieldsClass->show($field, $user->$namekey);
?></td>
<?php
}
}
if($this->vendor->vendor_id == 1) {
?>
<td class="hikamarket_user_id_value"><?php echo
$user->user_id; ?></td>
<?php
}
?>
</tr>
<?php
$i++;
$k = 1 - $k;
}
?>
</tbody>
</table>
<input type="hidden" name="Itemid"
value="<?php echo $this->Itemid; ?>" />
<input type="hidden" name="option"
value="<?php echo HIKAMARKET_COMPONENT; ?>" />
<input type="hidden" name="task"
value="listing" />
<input type="hidden" name="ctrl"
value="<?php echo hikaInput::get()->getCmd('ctrl');
?>" />
<input type="hidden" name="boxchecked"
value="0" />
<input type="hidden" name="filter_order"
value="<?php echo
$this->pageInfo->filter->order->value; ?>" />
<input type="hidden" name="filter_order_Dir"
value="<?php echo $this->pageInfo->filter->order->dir;
?>" />
<?php echo JHTML::_( 'form.token' ); ?>
</form>
</div>
PK���[�����!views/usermarket/tmpl/listing.xmlnu�[���<?xml
version="1.0" encoding="utf-8"?>
<metadata>
<state>
<name>Vendor User listing</name>
<params addpath="/components/com_hikamarket/params">
<param name="options" type="selectoptions"
default="module" label="options"
description="HikaMarket options" />
</params>
</state>
<layout
title="COM_HIKAMARKET_USERMARKET_LISTING_DEFAULT_TITLE">
<message></message>
</layout>
<fields name="params"
addfieldpath="/components/com_hikamarket/fields">
<fieldset name="basic" label="HikaMarket
Options">
<field id="options" name="options"
type="selectoptions" label="options"
description="HikaMarket options" />
</fieldset>
</fields>
</metadata>PK���[շ>�<<views/usermarket/tmpl/show.phpnu�[���<?php
/**
* @package HikaMarket for Joomla!
* @version 3.1.1
* @author Obsidev S.A.R.L.
* @copyright (C) 2011-2020 OBSIDEV. All rights reserved.
* @license GNU/GPLv3 http://www.gnu.org/licenses/gpl-3.0.html
*/
defined('_JEXEC') or die('Restricted access');
?><form action="<?php echo
hikamarket::completeLink('user');?>"
method="post" name="hikamarket_form"
id="hikamarket_user_form">
<h2><?php echo JText::_('CUSTOMER'); ?></h2>
<dl class="hikam_options">
<dt class="hikamarket_user_name"><label><?php
echo JText::_('HIKA_USER_NAME');?></label></dt>
<dd class="hikamarket_user_name"><span
id="hikamarket_user_name"><?php echo
@$this->user->name; ?></span></dd>
</dl>
<dl class="hikam_options">
<dt
class="hikamarket_user_username"><label><?php echo
JText::_('HIKA_USERNAME');?></label></dt>
<dd class="hikamarket_user_username"><span
id="hikamarket_user_username"><?php echo
@$this->user->username; ?></span></dd>
</dl>
<?php if(hikamarket::acl('user/edit/email')) { ?>
<dl class="hikam_options">
<dt class="hikamarket_user_email"><label><?php
echo JText::_('HIKA_EMAIL');?></label></dt>
<dd class="hikamarket_user_email"><span
id="hikamarket_user_email">
<?php if($this->vendor->vendor_id > 1) {
echo $this->escape(@$this->user->user_email);
} else { ?>
<input type="text" name="data[user][user_email]"
value="<?php echo $this->escape(@$this->user->user_email);
?>" />
<?php } ?>
</span></dd>
</dl>
<?php } ?>
<?php
$edit_custom_fields = hikamarket::acl('user/edit/customfields');
foreach($this->fields['user'] as $fieldName =>
$oneExtraField) { ?>
<dl class="hikam_options">
<dt class="hikamarket_user_<?php echo $fieldName;
?>"><label><?php echo
$this->fieldsClass->getFieldName($oneExtraField);
?></label></dt>
<dd class="hikamarket_user_<?php echo $fieldName;
?>"><?php
if($edit_custom_fields && !empty($oneExtraField->vendor_edit)
&& $this->vendor->vendor_id <= 1)
echo $this->fieldsClass->display($oneExtraField,
@$this->user->$fieldName,
'data[user]['.$fieldName.']');
else
echo $this->fieldsClass->show($oneExtraField,
@$this->user->$fieldName);
?></dd>
</dl>
<?php } ?>
<?php if(hikamarket::acl('user/show/address')) { ?>
<h2><?php echo JText::_('ADDRESSES'); ?></h2>
<?php
$this->setLayout('show');
echo $this->loadTemplate('address');
?>
<?php } ?>
<?php if(hikamarket::acl('order/listing')) { ?>
<h2><?php echo JText::_('ORDERS'); ?></h2>
<table class="hikam_listing hikam_table hikam_bordered"
style="width:100%">
<thead>
<tr>
<th class="hikamarket_order_num_title title
titlenum"><?php
echo JText::_('HIKA_NUM');
?></th>
<th class="hikamarket_order_id_title title"><?php
echo JText::_('ORDER_NUMBER');
?></th>
<th class="hikamarket_order_status_title
title"><?php
echo JText::_('ORDER_STATUS');
?></th>
<th class="hikamarket_order_date_title title"><?php
echo JText::_('DATE')
?></th>
<th class="hikamarket_order_total_title
title"><?php
echo JText::_('HIKASHOP_TOTAL');
?></th>
</tr>
</thead>
<tfoot>
<tr>
<th colspan="5"><?php
echo JText::sprintf('HIKAM_DISPLAY_X_ORDERS_OF_Y',
count($this->orders), (int)$this->order_count);
?> <a href="<?php echo
hikamarket::completeLink('order&task=listing&filter_user='.$this->user->user_id);
?>"><?php echo JText::_('HIKAM_SEE_MORE');
?></a></th>
</tr>
</tfoot>
<?php
$k = 0;
$i = 1;
$order_show = hikamarket::acl('order/show');
if(!empty($this->orders)) {
foreach($this->orders as $order) {
?>
<tr class="row<?php echo $k; ?>">
<td class="hikamarket_order_num_value"
style="text-align:center"><?php
echo $i;
?></td>
<td class="hikamarket_order_id_value"
align="center">
<?php if($order_show) { ?>
<a href="<?php echo
hikamarket::completeLink('order&task=show&cid='.$order->order_id);
?>"><?php
}
echo $order->order_number;
if($order_show) {
?></a>
<?php
}
?>
</td>
<td class="hikamarket_order_status_value">
<span class="order-label order-label-<?php echo
preg_replace('#[^a-z_0-9]#i', '_', str_replace('
','_',$order->order_status)); ?>"><?php
echo hikamarket::orderStatus($order->order_status);
?></span>
</td>
<td class="hikamarket_order_date_value"><?php echo
hikamarket::getDate($order->order_created,'%Y-%m-%d
%H:%M');?></td>
<td class="hikamarket_order_total_value"><?php
echo $this->currencyHelper->format($order->order_full_price,
$order->order_currency_id);
?></td>
</tr>
<?php
$i++;
$k = 1 - $k;
}
} else {
?>
<tr class="row<?php echo $k; ?>">
<td class="hikamarket_no_order"
colspan="6"><?php
echo JText::_('NO_ORDERS_FOUND');
?></td>
</tr>
<?php
}
?>
</tbody>
</table>
<?php } ?>
<input type="hidden" name="cid"
value="<?php echo @$this->user->user_id; ?>"/>
<input type="hidden" name="option"
value="<?php echo HIKAMARKET_COMPONENT; ?>"/>
<input type="hidden" name="task"
value="show"/>
<input type="hidden" name="ctrl"
value="user"/>
<?php echo JHTML::_('form.token'); ?>
</form>
PK���[��^((&views/usermarket/tmpl/show_address.phpnu�[���<?php
/**
* @package HikaMarket for Joomla!
* @version 3.1.1
* @author Obsidev S.A.R.L.
* @copyright (C) 2011-2020 OBSIDEV. All rights reserved.
* @license GNU/GPLv3 http://www.gnu.org/licenses/gpl-3.0.html
*/
defined('_JEXEC') or die('Restricted access');
?><?php
if(hikamarket::acl('user/edit/address') &&
($this->vendor->vendor_id <= 1)) {
if(empty($this->ajax)) {
?>
<div id="hikamarket_user_addresses_default">
<div class="hikamarket_ajax_loading_elem"></div>
<div class="hikamarket_ajax_loading_spinner"></div>
<dl class="hikam_options large">
<dt><label
for="hikamarket_default_billing_address_selector"><?php
echo JText::_('HIKASHOP_SELECT_DEFAULT_BILLING_ADDRESS');
?></label></dt>
<dd><?php
$current = 0;
$values = array();
if(!empty($this->addresses)) {
foreach($this->addresses as $k => $address) {
if(!in_array($address->address_type, array('billing',
'both', '')))
continue;
$addr = $this->addressClass->miniFormat($address,
$this->fields['address']);
$values[] = JHTML::_('select.option', $k, $addr);
if(!empty($address->address_default))
$current = $address->address_id;
}
}
if(empty($values))
$values = array(JHTML::_('select.option', '',
JText::_('HIKAM_NO_ADDRESS')));
echo JHTML::_('select.genericlist', $values,
'data[user][default_billing]',
'class="hikamarket_default_address_dropdown"',
'value', 'text', $current,
'hikamarket_default_billing_address_selector');
?></dd>
</dl>
<dl class="hikam_options large">
<dt><label
for="hikamarket_default_shipping_address_selector"><?php
echo JText::_('HIKASHOP_SELECT_DEFAULT_SHIPPING_ADDRESS');
?></label></dt>
<dd><?php
$current = 0;
$values = array();
if(!empty($this->addresses)) {
foreach($this->addresses as $k => $address) {
if(!in_array($address->address_type, array('shipping',
'both', '')))
continue;
$addr = $this->addressClass->miniFormat($address,
$this->fields['address']);
$values[] = JHTML::_('select.option', $k, $addr);
if(!empty($address->address_default))
$current = $address->address_id;
}
}
if(empty($values))
$values = array(JHTML::_('select.option', '',
JText::_('HIKAM_NO_ADDRESS')));
echo JHTML::_('select.genericlist', $values,
'data[user][default_shipping]',
'class="hikamarket_default_address_dropdown"',
'value', 'text', $current,
'hikamarket_default_shipping_address_selector');
?></dd>
</dl>
</div>
<div id="hikamarket_user_addresses_show">
<?php
}
?>
<div class="hikamarket_ajax_loading_elem"></div>
<div class="hikamarket_ajax_loading_spinner"></div>
<?php
if(!empty($this->two_columns)) {
?>
<div class="hk-row-fluid">
<div class="hkc-md-6">
<h3><?php echo JText::_('HIKASHOP_BILLING_ADDRESSES');
?></h3>
<?php
}
foreach($this->addresses as $address) {
if(!empty($this->two_columns) && $address->address_type !=
'billing')
continue;
?>
<div class="hikamarket_user_address address_selection"
id="hikamarket_user_address_<?php echo $address->address_id;
?>">
<?php
$this->address_id = (int)$address->address_id;
$this->address = $address;
$this->setLayout('address');
echo $this->loadTemplate();
?>
</div>
<?php
}
if(!empty($this->two_columns)) {
?>
<div class="" style="margin-top:6px;">
<a class="hikabtn hikabtn-success"
href="#newAddress" onclick="return
window.addressMgr.new('billing');"><i class="fa
fa-plus"></i> <?php echo
JText::_('HIKASHOP_NEW_BILLING_ADDRESS'); ?></a>
</div>
</div>
<div class="hkc-md-6">
<h3><?php echo
JText::_('HIKASHOP_SHIPPING_ADDRESSES'); ?></h3>
<?php
foreach($this->addresses as $address) {
if($address->address_type != 'shipping')
continue;
?>
<div class="hikamarket_user_address address_selection"
id="hikamarket_user_address_<?php echo $address->address_id;
?>">
<?php
$this->address_id = (int)$address->address_id;
$this->address = $address;
$this->setLayout('address');
echo $this->loadTemplate();
?>
</div>
<?php
}
?>
<div class="" style="margin-top:6px;">
<a class="hikabtn hikabtn-success"
href="#newAddress" onclick="return
window.addressMgr.new('shipping');"><i class="fa
fa-plus"></i> <?php echo
JText::_('HIKASHOP_NEW_SHIPPING_ADDRESS'); ?></a>
</div>
</div>
</div>
<?php
} else {
?>
<div class="" style="margin-top:6px;">
<a class="hikabtn hikabtn-success"
href="#newAddress" onclick="return
window.addressMgr.new('billing');"><i class="fa
fa-plus"></i> <?php echo
JText::_('HIKASHOP_NEW_BILLING_ADDRESS'); ?></a>
<a class="hikabtn hikabtn-success"
href="#newAddress" onclick="return
window.addressMgr.new('shipping');"><i class="fa
fa-plus"></i> <?php echo
JText::_('HIKASHOP_NEW_SHIPPING_ADDRESS'); ?></a>
</div>
<?php
}
$new_cid = hikaRegistry::get('new_cid');
if(!empty($new_cid) && $this->ajax) {
$data = array(
'cid' => $new_cid,
'type' => $this->addresses[$new_cid]->address_type,
'miniFormat' =>
$this->addressClass->miniFormat($this->addresses[$new_cid]),
);
$previous_id = hikaRegistry::get('previous_cid');
if($previous_id !== null)
$data['previous_cid'] = $previous_id;
?>
<script type="text/javascript">
if(window.addressMgr.modifyAddr)
window.addressMgr.modifyAddr(<?php echo json_encode($data); ?>);
</script>
<?php
}
$delete_cid = hikaRegistry::get('address_deleted_id');
if(!empty($delete_cid) && $delete_cid > 0 &&
$this->ajax) {
?>
<script type="text/javascript">
if(window.addressMgr.deleteAddr)
window.addressMgr.deleteAddr(<?php echo (int)$delete_cid; ?>);
</script>
<?php
}
if(empty($this->ajax)) {
?>
</div>
<script type="text/javascript">
if(!window.addressMgr) window.addressMgr = {};
window.addressMgr.loading = function(load, el) {
var d = document, w = window, o = w.Oby;
if(!el)
el = 'hikamarket_user_addresses_show';
el = d.getElementById(el);
if(!el)
return false;
if(load || load === undefined)
o.addClass(el, "hikamarket_ajax_loading");
else
o.removeClass(el, "hikamarket_ajax_loading");
};
window.addressMgr.get = function(elem, target) {
var t = this;
t.loading();
window.Oby.xRequest(elem.getAttribute('href'), {update: target},
function(){
t.loading(false);
});
return false;
};
window.addressMgr.form = function(elem, target) {
var t = this;
t.loading();
var data = window.Oby.getFormData(target);
window.Oby.xRequest(elem.getAttribute('href'), {update: target,
mode: 'POST', data: data}, function(){
t.loading(false);
});
return false;
};
window.addressMgr.new = function(type) {
var t = this, w = window, o = w.Oby;
t.loading();
var data = o.encodeFormData({'address_type': type});
o.xRequest('<?php echo
hikamarket::completeLink('user&task=address&subtask=edit&cid=0&user_id='.$this->user_id,
'ajax', true); ?>', {update:
'hikamarket_user_addresses_show', mode: 'POST', data:
data}, function(){
t.loading(false);
});
return false;
};
window.addressMgr.delete = function(el, cid) {
if(!confirm('<?php echo
JText::_('HIKASHOP_CONFIRM_DELETE_ADDRESS', true); ?>'))
return false;
var t = this, w = window, o = w.Oby, d = document;
t.loading();
var data = o.encodeFormData({'<?php echo
hikamarket::getFormToken(); ?>': 1});
o.xRequest(el.href, {update: 'hikamarket_user_addresses_show',
mode: 'POST', data: data}, function(xhr) {
t.loading(false);
});
return false;
};
window.addressMgr.deleteAddr = function(cid) {
var t = this, d = document;
['billing','shipping'].forEach(function(atype){
var el_sel = d.getElementById('hikamarket_default_' + atype +
'_address_selector');
if(!el_sel) return;
for(var k in el_sel.options) {
if(!el_sel.options.hasOwnProperty(k))
continue;
if(el_sel.options[k].value != cid)
continue;
el_sel.remove(k);
}
});
};
window.addressMgr.modifyAddr = function(params) {
var t = this, d = document, f = false;
['billing','shipping'].forEach(function(atype){
var el_sel = d.getElementById('hikamarket_default_' + atype +
'_address_selector');
if(!el_sel) return;
for(var k in el_sel.options) {
if(!el_sel.options.hasOwnProperty(k))
continue;
if(params.previous_cid && el_sel.options[k].value ==
params.previous_cid && params.previous_cid != 0 &&
params.previous_cid != params.cid)
el_sel.options[k].value = params.cid;
if(el_sel.options[k].value == params.cid) {
el_sel.options[k].text = params.miniFormat;
f = true;
}
}
});
if(f) return;
if(params.type && (params.type == 'billing' ||
params.type == 'shipping')) {
window.addressMgr.addEntry(params.type, params.cid, params.miniFormat);
} else if(!params.type || params.type == '' || params.type ==
'both') {
window.addressMgr.addEntry('billing', params.cid,
params.miniFormat);
window.addressMgr.addEntry('shipping', params.cid,
params.miniFormat);
}
};
window.addressMgr.addEntry = function(type, cid, text) {
var d = document,
el_sel = d.getElementById('hikamarket_default_' + type +
'_address_selector');
if(!el_sel) return;
var o = d.createElement('option');
o.text = text;
o.value = cid;
el_sel.add(o);
};
</script>
<div class="clear_both"></div>
<?php
}
} else {
?>
<div class="hk-row-fluid">
<?php
foreach(array('billing','shipping') as $type) {
?>
<div class="hkc-md-6" id="hikamarket_user_<?php echo
$type; ?>_addresses_show">
<span class="hikamarket_address_title"><?php echo
JText::_('HIKASHOP_'.strtoupper($type).'_ADDRESS');
?></span>
<?php
$show_only_current =
(int)$this->config->get('show_only_current_address', 1);
foreach($this->addresses as $address) {
if($show_only_current && empty($address->address_default))
continue;
$address_css = '';
if(!empty($address->address_default))
$address_css = ' address_default';
?>
<div class="hikamarket_user_address address_selection<?php echo
$address_css; ?>" id="hikamarket_user_address_<?php echo
$address->address_id; ?>">
<?php
$this->address = $address;
$this->setLayout('address');
echo $this->loadTemplate();
?>
</div>
<?php
}
?>
</div>
<?php
}
?>
</div>
<?php
}
PK���[�}y�/�/views/usermarket/view.html.phpnu�[���<?php
/**
* @package HikaMarket for Joomla!
* @version 3.1.1
* @author Obsidev S.A.R.L.
* @copyright (C) 2011-2020 OBSIDEV. All rights reserved.
* @license GNU/GPLv3 http://www.gnu.org/licenses/gpl-3.0.html
*/
defined('_JEXEC') or die('Restricted access');
?><?php
class usermarketViewusermarket extends HikamarketView {
const ctrl = 'user';
const name = 'HIKA_USERS';
const icon = 'generic';
public function display($tpl = null) {
$this->paramBase =
HIKAMARKET_COMPONENT.'.'.$this->getName();
$function = $this->getLayout();
if(method_exists($this,$function))
$this->$function();
parent::display($tpl);
}
public function show() {
$app = JFactory::getApplication();
$db = JFactory::getDBO();
$ctrl = '';
$this->paramBase =
HIKAMARKET_COMPONENT.'.'.$this->getName().'.edit';
$vendor = hikamarket::loadVendor(true, false);
$this->assignRef('vendor', $vendor);
$config = hikamarket::config();
$this->assignRef('config', $config);
$shopConfig = hikamarket::config(false);
$this->assignRef('shopConfig', $shopConfig);
$user_id = hikamarket::getCID('user_id');
$this->assignRef('user_id', $user_id);
$this->loadRef(array(
'userClass' => 'shop.class.user',
'fieldsClass' => 'shop.class.field',
'addressShopClass' => 'shop.class.address',
'addressClass' => 'class.address',
'currencyHelper' => 'shop.class.currency'
));
$user = $this->userClass->get($user_id);
$this->assignRef('user', $user);
$this->fieldsClass->addJS($null, $null, $null);
$fields = array();
$null = null;
if($this->config->get('address_show_details', 0)) {
$fields['address'] =
$this->fieldsClass->getFields('display:vendor_user_show=1',
$null, 'address');
} else {
$fields['address'] =
$this->fieldsClass->getFields('field_frontcomp', $null,
'address');
}
if(hikashop_level(1)) {
$fields['user'] =
$this->fieldsClass->getFields('display:vendor_user_show=1',
$user, 'user');
$this->fieldsClass->jsToggle($fields['user'], $user,
0);
foreach($fields['user'] as &$field) {
$field_display = explode(';', trim($field->field_display,
';'));
$field->vendor_edit = in_array('vendor_user_edit=1',
$field_display);
}
unset($field);
}
$this->fieldsClass->jsToggle($fields['address'], $null,
0);
$this->assignRef('fields', $fields);
$all_addresses = $this->addressShopClass->getByUser($user_id);
if(!empty($all_addresses))
$this->addressShopClass->loadZone($all_addresses);
$this->assignRef('addresses', $all_addresses);
$this->two_columns = true;
$this->display_badge = false;
foreach($all_addresses as $addr) {
if(in_array($addr->address_type, array('',
'both'))) {
$this->two_columns = false;
$this->display_badge = true;
break;
}
}
$order_list_limit =
$this->config->get('customer_order_list_limit', 15);
$filters = array(
'order_user_id = '.(int)$user_id
);
$order_type = 'sale';
if($vendor->vendor_id > 1) {
$order_type = 'subsale';
$filters[] = 'order_vendor_id = ' .
(int)$vendor->vendor_id;
}
$query = 'SELECT * FROM ' .
hikamarket::table('shop.order') . ' WHERE order_type =
'.$db->Quote($order_type).' AND ('.implode(') AND
(', $filters).') ORDER BY order_id DESC';
$db->setQuery($query, 0, $order_list_limit);
$orders = $db->loadObjectList();
$this->assignRef('orders', $orders);
$query = 'SELECT COUNT(order_id) FROM ' .
hikamarket::table('shop.order') . ' WHERE
order_type='.$db->Quote($order_type).' AND
('.implode(' OR ', $filters).')';
$db->setQuery($query);
$order_count = $db->loadResult();
$this->assignRef('order_count', $order_count);
$this->toolbar = array(
'back' => array(
'icon' => 'back',
'fa' => 'fa-arrow-circle-left',
'name' => JText::_('HIKA_BACK'),
'url' => hikamarket::completeLink('user')
),
'apply' => array(
'url' => '#apply',
'linkattribs' => 'onclick="return
window.hikamarket.submitform(\'apply\',\'hikamarket_user_form\');"',
'icon' => 'apply',
'fa' => 'fa-check-circle',
'name' => JText::_('HIKA_APPLY'),
'pos' => 'right',
'display' => hikamarket::acl('user/edit')
&& ($vendor->vendor_id <= 1)
),
'save' => array(
'url' => '#save',
'linkattribs' => 'onclick="return
window.hikamarket.submitform(\'save\',\'hikamarket_user_form\');"',
'icon' => 'save',
'fa' => 'fa-save',
'name' => JText::_('HIKA_SAVE'), 'pos'
=> 'right',
'display' => hikamarket::acl('user/edit')
&& ($vendor->vendor_id <= 1)
)
);
}
public function listing() {
$app = JFactory::getApplication();
$db = JFactory::getDBO();
$vendor = hikamarket::loadVendor(true, false);
$this->assignRef('vendor', $vendor);
$fieldsClass = hikamarket::get('shop.class.field');
$fields =
$fieldsClass->getData('display:vendor_user_listing=1',
'user', false);
$this->assignRef('fields', $fields);
$singleSelection = hikaInput::get()->getInt('single', 0);
$confirm = hikaInput::get()->getInt('confirm', 1);
$manage = hikamarket::acl('user/edit') ||
hikamarket::acl('user/show');
$this->assignRef('manage', $manage);
$elemStruct = array(
'user_email',
'user_cms_id',
'name',
'username',
'email'
);
global $Itemid;
$url_itemid = '';
if(!empty($Itemid))
$url_itemid = '&Itemid='.$Itemid;
$this->assignRef('Itemid', $Itemid);
$cfg = array(
'table' => 'shop.user',
'main_key' => 'user_id',
'order_sql_value' => 'hkuser.user_id'
);
$pageInfo = $this->getPageInfo($cfg['order_sql_value']);
$filters = array();
$oder = '';
$searchMap = array(
'hkuser.user_id',
'hkuser.user_email',
'juser.username',
'juser.email',
'juser.name'
);
foreach($fields as $field) {
$searchMap[] = 'hkuser.'.$field->field_namekey;
}
$this->processFilters($filters, $order, $searchMap,
array('juser.', 'hkuser.'));
$customerVendorJoin = '';
if($vendor->vendor_id > 1)
$customerVendorJoin = ' INNER JOIN
'.hikamarket::table('customer_vendor').' AS cv ON
hkuser.user_id = cv.customer_id AND cv.vendor_id =
'.$vendor->vendor_id . ' ';
$query = ' FROM
'.hikamarket::table('user','shop').' AS
hkuser ' . $customerVendorJoin .
' LEFT JOIN
'.hikamarket::table('users',false).' AS juser ON
hkuser.user_cms_id = juser.id '.$filters.$order;
$db->setQuery('SELECT hkuser.*,juser.* '.$query,
(int)$pageInfo->limit->start, (int)$pageInfo->limit->value);
$rows = $db->loadObjectList();
$fieldsClass->handleZoneListing($fields, $rows);
foreach($rows as $k => $row) {
if(!empty($row->user_params)) {
$rows[$k]->user_params =
hikamarket::unserialize($row->user_params);
}
}
$db->setQuery('SELECT COUNT(*) '.$query);
$pageInfo->elements = new stdClass();
$pageInfo->elements->total = $db->loadResult();
$pageInfo->elements->page = count($rows);
$this->getPagination();
$this->assignRef('rows', $rows);
$this->assignRef('singleSelection', $singleSelection);
$this->assignRef('confirm', $confirm);
$this->assignRef('elemStruct', $elemStruct);
$this->assignRef('pageInfo', $pageInfo);
$this->assignRef('fieldsClass', $fieldsClass);
$this->assignRef('fields', $fields);
$this->toolbar = array(
array('icon' => 'back', 'fa' =>
'fa-arrow-circle-left', 'name' =>
JText::_('HIKA_BACK'), 'url' =>
hikamarket::completeLink('vendor'))
);
}
public function state() {
$namekey =
hikaInput::get()->getCmd('namekey','');
if(!headers_sent()){
header('Content-Type:text/html; charset=utf-8');
}
if(!empty($namekey)){
$field_namekey =
hikaInput::get()->getString('field_namekey', '');
if(empty($field_namekey))
$field_namekey = 'address_state';
$field_id = hikaInput::get()->getString('field_id',
'');
if(empty($field_id))
$field_id = 'address_state';
$field_type = hikaInput::get()->getString('field_type',
'');
if(empty($field_type))
$field_type = 'address';
$class = hikamarket::get('shop.type.country');
echo $class->displayStateDropDown($namekey, $field_id,
$field_namekey, $field_type);
}
exit;
}
public function show_address() {
$this->ajax = true;
$this->address();
}
public function address() {
$app = JFactory::getApplication();
$db = JFactory::getDBO();
$ctrl = '';
$this->paramBase =
HIKAMARKET_COMPONENT.'.'.$this->getName().'.edit';
$vendor = hikamarket::loadVendor(true, false);
$this->assignRef('vendor', $vendor);
$config = hikamarket::config();
$this->assignRef('config', $config);
$shopConfig = hikamarket::config(false);
$this->assignRef('shopConfig', $shopConfig);
$tmpl = hikaInput::get()->getCmd('tmpl', '');
$this->ajax = in_array($tmpl, array('component',
'ajax', 'raw'));
$address_id = hikamarket::getCID('address_id');
$this->loadRef(array(
'fieldsClass' => 'shop.class.field',
'addressShopClass' => 'shop.class.address',
'addressClass' => 'class.address'
));
$user_id = hikaInput::get()->getInt('user_id');
$this->assignRef('user_id', $user_id);
$edit = false;
if(hikaInput::get()->getVar('edition', false) === true
&& hikamarket::acl('user/edit/address'))
$edit = true;
$this->assignRef('edit', $edit);
$address = $this->addressClass->get($address_id);
$this->assignRef('address', $address);
if(@$address->address_user_id != $user_id) {
$address = new stdClass();
$address->address_user_id = $user_id;
$address->address_id = $address_id;
}
if(!empty($address) && !empty($address->address_type)) {
$type = $address->address_type;
} else if(!empty($this->params->type)) {
$type = $this->params->type;
} else {
$type = hikaInput::get()->getCmd('address_type',
'');
if(empty($type))
$type = hikaInput::get()->getCmd('subtask',
'billing');
if(substr($type, -8) == '_address')
$type = substr($type, 0, -8);
}
if(!in_array($type, array('billing','shipping')))
$type = 'billing';
$this->assignRef('type', $type);
$field_type = 'address';
$shopVersion = $shopConfig->get('version',
'1.0.0');
if(version_compare($shopVersion, '4.2.0', '>='))
$field_type = $type.'_address';
$null = null;
if(!$edit) {
$fieldMode = 'field_frontcomp';
if($this->config->get('address_show_details', 0)) {
$fieldMode = 'display:vendor_user_show=1';
}
$fields = array(
'address' =>
$this->fieldsClass->getFields($fieldMode, $null, $field_type)
);
} else {
$extra_fields_show =
$this->fieldsClass->getFields('display:vendor_user_show=1',
$null, $field_type);
$extra_fields_edit =
$this->fieldsClass->getFields('display:vendor_user_edit=1',
$null, $field_type);
$all_fields = array();
foreach($extra_fields_show as $fieldname => $field) {
$all_fields[$field->field_ordering] = $field;
$all_fields[$field->field_ordering]->fieldname = $fieldname;
}
unset($extra_fields_show);
foreach($extra_fields_edit as $fieldname => $field) {
if(!isset($all_fields[$field->field_ordering])) {
$all_fields[$field->field_ordering] = $field;
$all_fields[$field->field_ordering]->fieldname = $fieldname;
}
$all_fields[$field->field_ordering]->vendor_edit = true;
}
unset($extra_fields_edit);
ksort($all_fields);
$fields = array('address' => array());
foreach($all_fields as $field) {
$fieldname = $field->fieldname;
$fields['address'][$fieldname] = $field;
}
unset($all_fields);
}
$this->assignRef('fields', $fields);
$this->fieldsClass->jsToggle($fields['address'], $null,
0);
$all_addresses = $this->addressShopClass->getByUser($user_id);
if(!empty($all_addresses))
$this->addressShopClass->loadZone($all_addresses);
$this->assignRef('addresses', $all_addresses);
$this->two_columns = true;
$this->display_badge = false;
foreach($all_addresses as $addr) {
if(in_array($addr->address_type, array('',
'both'))) {
$this->two_columns = false;
$this->display_badge = true;
break;
}
}
}
}
PK���[wtW�views/vendormarket/index.htmlnu�[���<html><body></body></html>PK���[6+u�
*views/vendormarket/tmpl/after_register.phpnu�[���<?php
/**
* @package HikaMarket for Joomla!
* @version 3.1.1
* @author Obsidev S.A.R.L.
* @copyright (C) 2011-2020 OBSIDEV. All rights reserved.
* @license GNU/GPLv3 http://www.gnu.org/licenses/gpl-3.0.html
*/
defined('_JEXEC') or die('Restricted access');
?>PK���[M��*ZZ*views/vendormarket/tmpl/after_register.xmlnu�[���<?xml
version="1.0" encoding="utf-8"?>
<metadata>
<layout hidden="true" />
</metadata>PK���[�ج��"views/vendormarket/tmpl/cpanel.phpnu�[���<?php
/**
* @package HikaMarket for Joomla!
* @version 3.1.1
* @author Obsidev S.A.R.L.
* @copyright (C) 2011-2020 OBSIDEV. All rights reserved.
* @license GNU/GPLv3 http://www.gnu.org/licenses/gpl-3.0.html
*/
defined('_JEXEC') or die('Restricted access');
?><div class="hikamarket_cpanel_main"
id="hikamarket_cpanel_main">
<div class="hikamarket_cpanel_title header"
id="hikamarket_cpanel_title">
<h1><?php echo
JText::_('VENDOR_ACCOUNT');?></h1>
</div>
<div class="hikamarketcpanel"
id="hikamarketcpanel">
<?php
if(!empty($this->multiple_vendor)) {
?>
<div style="float:right">
<form id="hikamarket_vendor_switcher"
name="hikamarket_vendor_switcher" method="post"
action="<?php echo
hikamarket::completeLink('vendor&task=switchvendor'.$this->url_itemid);
?>" style="margin:0">
<?php
echo JHTML::_('select.genericlist', $this->multiple_vendor,
'vendor_id', ' style="margin:0"
onchange="this.form.submit();"', 'value',
'text', $this->vendor->vendor_id);
?>
<?php echo JHTML::_('form.token'); ?>
</form>
</div>
<?php
}
?>
<h2><?php echo $this->vendor->vendor_name;
?></h2>
<div style="clear:right"></div>
<?php
$legacy = (int)$this->shopConfig->get('cpanel_legacy',
false);
if($legacy) {
?>
<div class="hikamarket_cpanel">
<?php
foreach($this->buttons as $btn) {
?>
<div class="icon-wrapper">
<div class="icon">
<a href="<?php echo $btn['url'];?>">
<span class="<?php echo $btn['icon'];?>"
style="background-repeat:no-repeat;background-position:center;height:48px;padding:10px
0;"></span>
<span><?php echo $btn['name'];?></span>
</a>
</div>
</div>
<?php
}
?>
</div>
<div style="clear:both;"></div>
<?php
} else {
?>
<div class="hk-row-fluid hikashop_dashboard"
id="hikashop_dashboard">
<div class="hika_cpanel_side_bar hkc-md-3">
<?php if(!empty($this->extraData->topLeft)) { echo
implode("\r\n", $this->extraData->topLeft); } ?>
<div class="hika_cpanel_icons">
<?php
foreach($this->buttons as $btnName => $btn) {
if(empty($btn))
continue;
?>
<a class="hika_cpanel_icon" href="<?php echo
$btn['url']; ?>">
<?php
if (!empty($btn['fa'])) {
if(substr($btn['icon'], 0, 9) == 'iconM-48-')
$btn['icon'] = substr($btn['icon'], 9);
if(is_string($btn['fa'])) {
?>
<span class="hk-icon fa-stack fa-2x hk-icon-<?php echo
$btn['icon']; ?>">
<i class="<?php echo $btn['fa'];?>
fa-stack-2x"></i>
</span>
<?php
} else {
?>
<span class="hk-icon fa-stack fa-2x hk-icon-<?php echo
$btn['icon']; ?>"><?php
echo implode('', $btn['fa']);
?></span>
<?php
}
} else {
?>
<span class="hkicon-48 <?php echo $btn['icon'];
?>"
style="background-repeat:no-repeat;background-position:center;height:48px;padding:0;"></span>
<?php
}
?>
<span class="hikashop_cpanel_button_text"><?php echo
$btn['name'];?></span>
</a>
<?php
}
?>
</div>
<?php if(!empty($this->extraData->bottomLeft)) { echo
implode("\r\n", $this->extraData->bottomLeft); } ?>
</div>
<div class="hika_cpanel_main_data hkc-md-9">
<?php
}
if(!empty($this->statistics)) {
?>
<div class="hikamarket_cpanel_statistics_top
hk-row-fluid">
<?php
$s = 0;
foreach($this->statistics as $stat) {
if(empty($stat['published']))
continue;
$key = $stat['key'];
if(empty($stat['container']) ||
!in_array($stat['container'], array(3,4,6,8,9,12)))
$stat['container'] = 12;
if($s < 12 && ($s + (int)$stat['container']) >
12)
echo '<div class="clearfix"></div>';
?>
<div class="hkc-md-<?php echo $stat['container'];
?>">
<div class="hikamarket_panel hikamarket_panel_stats">
<div class="hikamarket_panel_heading"><?php echo
$stat['label']; ?></div>
<div id="hikamarket_dashboard_stat_<?php echo $key;
?>" class="hikamarket_panel_body"><?php
echo $this->statisticsClass->display($stat);
?></div>
</div>
</div>
<?php
if($stat['container'] == 12) {
$s = 0;
continue;
}
if(($s + (int)$stat['container']) == 12)
echo '<div class="clearfix"></div>';
$s += (int)$stat['container'];
if($s >= 12) $s = 0;
}
?>
</div>
<?php
}
if(!$legacy) {
?>
</div>
</div>
<?php
}
?>
</div>
</div>
<div class="clear_both"></div>
PK���[��"views/vendormarket/tmpl/cpanel.xmlnu�[���<?xml
version="1.0" encoding="utf-8"?>
<metadata>
<state>
<name>Vendor control panel</name>
<description>Vendor control panel</description>
</state>
<layout
title="COM_HIKAMARKET_VENDORMARKET_CPANEL_VIEW_DEFAULT_TITLE">
<message></message>
</layout>
</metadata>PK���[M�?��
views/vendormarket/tmpl/form.phpnu�[���<?php
/**
* @package HikaMarket for Joomla!
* @version 3.1.1
* @author Obsidev S.A.R.L.
* @copyright (C) 2011-2020 OBSIDEV. All rights reserved.
* @license GNU/GPLv3 http://www.gnu.org/licenses/gpl-3.0.html
*/
defined('_JEXEC') or die('Restricted access');
?><?php
if(empty($this->form_type))
$this->form_type = 'vendor';
if($this->form_type == 'vendorregister') {
?>
<form id="hikamarket_registration_form"
name="hikamarket_registration_form" method="post"
action="<?php echo
hikamarket::completeLink('vendor&task=register'.$this->url_itemid);
?>" enctype="multipart/form-data"
onsubmit="if(window.localPage && window.localPage.checkForm){
return window.localPage.checkForm(this); }">
<div class="hikamarket_vendor_registration_page">
<h1><?php echo
JText::_('HIKA_VENDOR_REGISTRATION');?></h1>
<?php
$this->setLayout('registration');
echo $this->loadTemplate();
?>
<input type="hidden" name="task"
value="register"/>
<input type="hidden" name="ctrl"
value="vendor"/>
<input type="hidden" name="option"
value="<?php echo HIKAMARKET_COMPONENT; ?>"/>
</div>
</form>
<?php
} else {
?>
<form id="hikamarket_vendor_form"
name="hikamarket_vendor_form" method="post"
action="<?php echo
hikamarket::completeLink('vendor&task=form'.$this->url_itemid);
?>" enctype="multipart/form-data">
<div class="hikamarket_vendor_edit_page">
<h1><?php echo
JText::_('HIKAM_VENDOR_EDIT');?></h1>
<?php
if(hikamarket::acl('vendor/edit')) {
$this->setLayout('registration');
echo $this->loadTemplate();
}
if(!empty($this->element->extraData->middle))
echo implode("\r\n",
$this->element->extraData->middle);
if(hikamarket::acl('vendor/edit/users')) {
$this->setLayout('users');
echo $this->loadTemplate();
}
if(!empty($this->element->extraData->bottom))
echo implode("\r\n",
$this->element->extraData->bottom);
?>
<input type="hidden" name="vendor_id"
value="<?php echo $this->element->vendor_id;
?>"/>
<input type="hidden" name="task"
value="save"/>
<input type="hidden" name="ctrl"
value="vendor"/>
<input type="hidden" name="option"
value="<?php echo HIKAMARKET_COMPONENT; ?>"/>
</div>
</form>
<?php
}
?>
PK���[����
views/vendormarket/tmpl/form.xmlnu�[���<?xml
version="1.0" encoding="utf-8"?>
<metadata>
<state>
<name>Vendor registration form</name>
</state>
<layout
title="COM_HIKAMARKET_VENDORMARKET_FORM_VIEW_DEFAULT_TITLE">
<message></message>
</layout>
</metadata>PK���[wtW�"views/vendormarket/tmpl/index.htmlnu�[���<html><body></body></html>PK���[6[���#views/vendormarket/tmpl/listing.phpnu�[���<?php
/**
* @package HikaMarket for Joomla!
* @version 3.1.1
* @author Obsidev S.A.R.L.
* @copyright (C) 2011-2020 OBSIDEV. All rights reserved.
* @license GNU/GPLv3 http://www.gnu.org/licenses/gpl-3.0.html
*/
defined('_JEXEC') or die('Restricted access');
?><?php
ob_start();
$title = 'show_page_heading';
$titleType = 'h1';
if($this->module) {
$title = 'showtitle';
$titleType = 'h2';
}
if($this->params->get($title) &&
hikaInput::get()->getInt('hikamarket_front_end_main', 0)) {
if($this->module) {
$heading = $this->params->get('title');
} else {
$heading = $this->params->get('page_title');
if($this->params->get('page_heading')) {
$heading = $this->params->get('page_heading');
}
}
echo '<' . $titleType . '>' . $heading .
'</' . $titleType . '>';
}
$layout_type = $this->params->get('layout_type');
if(empty($layout_type))
$layout_type = 'div';
$this->setLayout('listingcontainer_' . $layout_type);
$html = $this->loadTemplate();
if(!empty($html))
echo '<div
class="hikamarket_vendor_listing">'.$html.'</div>';
if(!$this->module) {
if(!empty($this->modules)) {
$html = '';
jimport('joomla.application.module.helper');
foreach($this->modules as $module) {
$html .= JModuleHelper::renderModule($module);
}
if(!empty($html))
echo '<div class="hikamarket_submodules"
style="clear:both">'.$html.'</div>';
}
}
$html = ob_get_clean();
if(!empty($html)) {
?>
<div id="<?php echo
$this->params->get('main_div_name');?>"
class="hikamarket_vendors_listing_main"><?php
$pagination =
$this->config->get('pagination','bottom');
if(in_array($pagination, array('top', 'both'))
&& $this->params->get('show_limit') &&
$this->pageInfo->elements->total) {
$this->pagination->form = '_top';
?>
<form action="<?php echo hikamarket::currentURL(); ?>"
method="post" name="adminForm_<?php echo
$this->params->get('main_div_name').$this->category_selected;?>_top">
<div class="hikamarket_listing_pagination
hikamarket_listing_pagination_top hikamarket_vendors_pagination
hikamarket_vendors_pagination_top">
<?php echo
$this->pagination->getListFooter($this->params->get('limit'));
?>
<span class="hikamarket_results_counter"><?php echo
$this->pagination->getResultsCounter(); ?></span>
</div>
<input type="hidden" name="filter_order_<?php echo
$this->params->get('main_div_name'); ?>"
value="<?php echo
$this->pageInfo->filter->order->value; ?>" />
<input type="hidden" name="filter_order_Dir_<?php
echo $this->params->get('main_div_name'); ?>"
value="<?php echo $this->pageInfo->filter->order->dir;
?>" />
<?php echo JHTML::_('form.token'); ?>
</form>
<?php
}
echo $html;
if(in_array($pagination, array('bottom', 'both'))
&& $this->params->get('show_limit') &&
$this->pageInfo->elements->total) {
$this->pagination->form = '_bottom';
?>
<form action="<?php echo hikamarket::currentURL(); ?>"
method="post" name="adminForm_<?php echo
$this->params->get('main_div_name');
?>_bottom">
<div class="hikamarket_listing_pagination
hikamarket_listing_pagination_botton hikamarket_vendors_pagination
hikamarket_vendors_pagination_bottom">
<?php echo
$this->pagination->getListFooter($this->params->get('limit'));
?>
<span class="hikamarket_results_counter"><?php echo
$this->pagination->getResultsCounter(); ?></span>
</div>
<input type="hidden" name="filter_order_<?php echo
$this->params->get('main_div_name'); ?>"
value="<?php echo
$this->pageInfo->filter->order->value; ?>" />
<input type="hidden" name="filter_order_Dir_<?php
echo $this->params->get('main_div_name'); ?>"
value="<?php echo $this->pageInfo->filter->order->dir;
?>" />
<?php echo JHTML::_('form.token'); ?>
</form>
<?php
}
?></div>
<?php }
PK���[����#views/vendormarket/tmpl/listing.xmlnu�[���<?xml
version="1.0" encoding="utf-8"?>
<metadata>
<state>
<name>Vendors listing</name>
<params addpath="/components/com_hikamarket/params">
<param name="options" type="selectoptions"
default="module" label="options"
description="HikaMarket options" />
</params>
</state>
<layout
title="COM_HIKAMARKET_VENDORMARKET_VIEW_DEFAULT_TITLE">
<message></message>
</layout>
<fields name="params"
addfieldpath="/components/com_hikamarket/fields">
<fieldset name="hikamarket" label="Vendor
listing">
<field id="hikamarketmenu" name="market"
multiple="true" type="hikamarketmenu"
label="HikaMarket options"/>
</fieldset>
</fields>
</metadata>PK���[8"�a�
�
0views/vendormarket/tmpl/listingcontainer_div.phpnu�[���<?php
/**
* @package HikaMarket for Joomla!
* @version 3.1.1
* @author Obsidev S.A.R.L.
* @copyright (C) 2011-2020 OBSIDEV. All rights reserved.
* @license GNU/GPLv3 http://www.gnu.org/licenses/gpl-3.0.html
*/
defined('_JEXEC') or die('Restricted access');
?><?php
if(empty($this->rows))
return;
$this->align = 'left';
if($this->params->get('text_center', 1))
$this->align = 'center';
$borderClass = '';
if($this->params->get('border_visible', 1) == 1)
$borderClass = 'hikamarket_subcontainer_border';
if($this->params->get('border_visible', 1) == 2)
$borderClass = 'thumbnail';
?><div class="hikamarket_vendors"><?php
if($this->params->get('enable_carousel', 0)) {
$this->setLayout('carousel');
echo $this->loadTemplate();
} else {
$columns = (int)$this->params->get('columns');
if(empty($columns) || $columns < 1)
$columns = 1;
$width = (int)(100 / $columns) - 1;
$current_column = 1;
$current_row = 1;
if($this->params->get('only_if_products','-1')
== '-1') {
$defaultParams =
$this->shopConfig->get('default_params');
$this->params->set('only_if_products',
@$defaultParams['only_if_products']);
}
$only_if_products =
$this->params->get('only_if_products', 0);
if(HIKASHOP_RESPONSIVE) {
switch($columns) {
case 12:
case 6:
case 4:
case 3:
case 2:
case 1:
$row_fluid = 12;
$span = $row_fluid / $columns;
break;
case 10:
case 8:
case 7:
$row_fluid = $columns;
$span = 1;
break;
case 5:
$row_fluid = 10;
$span = 2;
break;
case 9: // special case
$row_fluid = 10;
$span = 1;
break;
}
if($row_fluid == 12)
echo '<div class="row-fluid"><ul
class="thumbnails">';
else
echo '<div
class="row-fluid-'.$row_fluid.'"><ul
class="thumbnails">';
} else {
echo '<div class="hikamarket_listing">';
}
foreach($this->rows as $row) {
if(!HIKASHOP_RESPONSIVE) {
?>
<div class="hikamarket_vendor hikamarket_listing_elem
hikamarket_listing_column_<?php echo $current_column; ?>
hikamarket_listing_row_<?php echo $current_row; ?>
hikamarket_vendor_column_<?php echo $current_column; ?>
hikamarket_vendor_row_<?php echo $current_row; ?>"
style="width:<?php echo $width;?>%;">
<div class="hikamarket_container">
<div class="hikamarket_subcontainer <?php echo
$borderClass; ?>">
<?php
} else {
?>
<li class="span<?php echo $span; ?> hikamarket_vendor
hikamarket_listing_column_<?php echo $current_column; ?>
hikamarket_listing_row_<?php echo $current_row; ?>
hikamarket_vendor_column_<?php echo $current_column; ?>
hikamarket_vendor_row_<?php echo $current_row; ?>">
<div class="hikamarket_container">
<div class="hikamarket_subcontainer <?php echo
$borderClass; ?>">
<?php
}
$this->row =& $row;
$this->setLayout('listingcontent_' .
$this->params->get('div_item_layout_type'));
echo $this->loadTemplate();
if(!HIKASHOP_RESPONSIVE) {
?>
</div>
</div>
</div>
<?php
} else {
?>
</div>
</div>
</li>
<?php
}
if($current_column >= $columns) {
$current_row++;
if(!HIKASHOP_RESPONSIVE) {
?>
<div style="clear:both"></div>
<?php
}
$current_column = 0;
}
$current_column++;
}
if(HIKASHOP_RESPONSIVE) {
echo '</ul></div>';
} else {
echo '</div>';
}
}
?>
<div style="clear:both"></div>
</div>
PK���[�}�:��1views/vendormarket/tmpl/listingcontainer_list.phpnu�[���<?php
/**
* @package HikaMarket for Joomla!
* @version 3.1.1
* @author Obsidev S.A.R.L.
* @copyright (C) 2011-2020 OBSIDEV. All rights reserved.
* @license GNU/GPLv3 http://www.gnu.org/licenses/gpl-3.0.html
*/
defined('_JEXEC') or die('Restricted access');
?><?php
if(empty($this->rows))
return;
$only_if_products = $this->params->get('only_if_products',
0);
?><div class="hikamarket_vendors">
<ul class="hikamarket_vendor_list<?php echo
$this->params->get('ul_class_name'); ?>">
<?php
$width = (int)(100 / $this->params->get('columns'));
if(empty($width))
$width = '';
else
$width = 'style="width:' . $width .
'%;"';
foreach($this->rows as $row) {
if($only_if_products && $row->number_of_products < 1)
continue;
$link =
hikamarket::completeLink('vendor&task=show&cid=' .
$row->vendor_id . '&name=' . $row->vendor_name .
$this->menu_id);
$class = '';
?>
<li class="hikamarket_vendor_list_item<?php echo $class;
?>" <?php echo $width; ?>>
<a href="<?php echo $link; ?>" ><?php echo
$row->vendor_name;
if($this->params->get('number_of_products', 0))
echo ' (' . $row->number_of_products . ')';
?></a>
</li>
<?php
}
?>
</ul>
</div>
PK���[�m;�mm2views/vendormarket/tmpl/listingcontainer_table.phpnu�[���<?php
/**
* @package HikaMarket for Joomla!
* @version 3.1.1
* @author Obsidev S.A.R.L.
* @copyright (C) 2011-2020 OBSIDEV. All rights reserved.
* @license GNU/GPLv3 http://www.gnu.org/licenses/gpl-3.0.html
*/
defined('_JEXEC') or die('Restricted access');
?><?php
if(empty($this->rows))
return;
?><div class="hikamarket_vendors">
<table class="hikamarket_vendors_table adminlist table
table-striped table-hover">
<thead>
<tr>
<?php if($this->shopConfig->get('thumbnail')){ ?>
<th class="hikamarket_vendor_image title"
align="center"><?php echo
JText::_('HIKA_IMAGE');?></th>
<?php } ?>
<th class="hikamarket_vendor_name title"
align="center"><?php echo
JText::_('HIKA_VENDOR_NAME');?></th>
<?php if($this->params->get('show_vote')){ ?>
<th class="hikamarket_vendor_vote title"
align="center"><?php echo JText::_('VOTE');
?></th>
<?php }
if(!empty($this->displayFields['vendor'])) {
foreach($this->displayFields['vendor'] as $fieldName =>
$oneExtraField) {
?>
<th class="hikamarket_vendor_custom_<?php echo
$oneExtraField->field_namekey;?> title"
align="center"><?php
echo $this->fieldsClass->getFieldName($oneExtraField);
?></th>
<?php
}
}
?>
</tr>
</thead>
<tbody>
<?php
foreach($this->rows as $row) {
$this->row =& $row;
$link =
hikamarket::completeLink('vendor&task=show&cid=' .
$this->row->vendor_id . '&name=' .
$this->row->alias . $this->menu_id);
?>
<tr>
<?php
if($this->shopConfig->get('thumbnail')) {
$image = null;
if(!empty($this->row->vendor_image))
$image =
$this->imageHelper->getThumbnail($this->row->vendor_image,
$this->image_size, $this->image_options);
if(empty($image) || !$image->success)
$image = $this->default_vendor_image;
?>
<td class="hikamarket_vendor_image_row">
<div style="height:<?php echo $image->height;
?>px;text-align:center;clear:both;"
class="hikamarket_vendor_image">
<div
style="position:relative;text-align:center;clear:both;width:<?php
echo $image->width; ?>px;margin: auto;"
class="hikamarket_vendor_image_subdiv">
<?php
if($this->params->get('link_to_vendor_page', 1)) {
?>
<a href="<?php echo $link; ?>"
title="<?php echo $this->escape($this->row->vendor_name);
?>">
<?php
}
?>
<img src="<?php echo $image->url; ?>"
alt="<?php echo $this->escape($this->row->vendor_name);
?>" />
<?php
if($this->params->get('link_to_vendor_page', 1)) {
?>
</a>
<?php
}
?>
</div>
</div>
</td>
<?php
}
?>
<td class="hikamerket_vendor_name_row">
<span class="hikamerket_vendor_name">
<?php
if($this->params->get('link_to_vendor_page', 1)) {
?>
<a href="<?php echo $link;?>"><?php
}
echo $this->row->vendor_name;
if($this->params->get('link_to_vendor_page', 1)) {
?></a>
<?php
}
?>
</span>
</td>
<?php
if($this->params->get('show_vote')) {
?>
<td class="hikamarket_vendor_vote_row"><?php
$voteParams = new HikaParameter();
$voteParams->set('vote_type','vendor');
$voteParams->set('vote_ref_id',$this->row->vendor_id);
$js = '';
echo hikamarket::getLayout('shop.vote', 'mini',
$voteParams, $js);
?></td>
<?php
}
if(!empty($this->displayFields['vendor'])) {
foreach($this->displayFields['vendor'] as $fieldName =>
$oneExtraField) {
?>
<td class="hikamarket_vendor_custom_<?php echo
$oneExtraField->field_namekey;?>_row"><?php
echo $this->fieldsClass->show($oneExtraField,
$this->row->$fieldName);
?></td>
<?php
}
}
?>
</tr>
<?php
unset($this->row);
}
?>
</tbody>
</table>
</div>
PK���[��R�ss.views/vendormarket/tmpl/listingcontent_img.phpnu�[���<?php
/**
* @package HikaMarket for Joomla!
* @version 3.1.1
* @author Obsidev S.A.R.L.
* @copyright (C) 2011-2020 OBSIDEV. All rights reserved.
* @license GNU/GPLv3 http://www.gnu.org/licenses/gpl-3.0.html
*/
defined('_JEXEC') or die('Restricted access');
?><?php
$link =
hikamarket::completeLink('vendor&task=show&cid='.$this->row->vendor_id.'&name='.$this->row->alias
. $this->menu_id);
$image = null;
if(!empty($this->row->vendor_image))
$image =
$this->imageHelper->getThumbnail($this->row->vendor_image,
$this->image_size, $this->image_options);
if(empty($image) || !$image->success)
$image = $this->default_vendor_image;
?>
<div style="height:<?php echo $image->height;
?>px;text-align:center;clear:both;"
class="hikamarket_vendor_image">
<?php if($this->params->get('link_to_vendor_page')) {
?>
<a href="<?php echo $link;?>" title="<?php echo
$this->escape($this->row->vendor_name); ?>">
<?php } ?>
<img src="<?php echo $image->url; ?>"
alt="<?php echo $this->escape($this->row->vendor_name);
?>"/>
<?php if($this->params->get('link_to_vendor_page')) {
?>
</a>
<?php } ?>
</div>
PK���[��<�==3views/vendormarket/tmpl/listingcontent_img_desc.phpnu�[���<?php
/**
* @package HikaMarket for Joomla!
* @version 3.1.1
* @author Obsidev S.A.R.L.
* @copyright (C) 2011-2020 OBSIDEV. All rights reserved.
* @license GNU/GPLv3 http://www.gnu.org/licenses/gpl-3.0.html
*/
defined('_JEXEC') or die('Restricted access');
?><?php
$link =
hikamarket::completeLink('vendor&task=show&cid='.$this->row->vendor_id.'&name='.$this->row->alias
. $this->menu_id);
if($this->shopConfig->get('thumbnail',1)) {
$image = null;
if(!empty($this->row->vendor_image))
$image =
$this->imageHelper->getThumbnail($this->row->vendor_image,
$this->image_size, $this->image_options);
if(empty($image) || !$image->success)
$image = $this->default_vendor_image;
}
?>
<table>
<tr>
<?php if($this->shopConfig->get('thumbnail',1)) { ?>
<td>
<div style="height:<?php echo $image->height;
?>px;width:<?php echo $image->width;
?>px;text-align:center;clear:both;"
class="hikamarket_vendor_image">
<?php
if($this->params->get('link_to_vendor_page')) {
?>
<a href="<?php echo $link;?>" title="<?php
echo $this->escape($this->row->vendor_name); ?>">
<?php
}
?>
<img src="<?php echo $image->url; ?>"
alt="<?php echo $this->escape($this->row->vendor_name);
?>"/>
<?php
if($this->params->get('link_to_vendor_page')) {
?>
</a>
<?php
}
?>
</div>
</td>
<?php } ?>
<td valign="top">
<div>
<h2>
<span class="hikamarket_vendor_name">
<?php
if($this->params->get('link_to_vendor_page')) {
?>
<a href="<?php echo $link;?>" title="<?php
echo $this->escape($this->row->vendor_name); ?>">
<?php
}
echo $this->row->vendor_name;
if($this->params->get('number_of_products', 0)) {
echo ' ('.$this->row->number_of_products.')';
}
if($this->params->get('link_to_vendor_page')) {
?>
</a>
<?php
}
?>
</span>
</h2>
<span class="hikamarket_vendor_desc"
style="text-align:<?php echo @$this->align;
?>;"><?php
echo preg_replace('#<hr *id="system-readmore"
*/>.*#is','',$this->row->vendor_description);
?></span>
</div>
</td>
</tr>
</table>
PK���[�Tl$4views/vendormarket/tmpl/listingcontent_img_title.phpnu�[���<?php
/**
* @package HikaMarket for Joomla!
* @version 3.1.1
* @author Obsidev S.A.R.L.
* @copyright (C) 2011-2020 OBSIDEV. All rights reserved.
* @license GNU/GPLv3 http://www.gnu.org/licenses/gpl-3.0.html
*/
defined('_JEXEC') or die('Restricted access');
?><?php
$link =
hikamarket::completeLink('vendor&task=show&cid='.$this->row->vendor_id.'&name='.$this->row->alias
. $this->menu_id);
if($this->shopConfig->get('thumbnail',1)) {
$image = null;
if(!empty($this->row->vendor_image))
$image =
$this->imageHelper->getThumbnail($this->row->vendor_image,
$this->image_size, $this->image_options);
if(empty($image) || !$image->success)
$image = $this->default_vendor_image;
?><div class="hikamarket_vendor">
<div style="height:<?php echo $image->height;
?>px;text-align:center;clear:both;"
class="hikamarket_vendor_image">
<?php
if($this->params->get('link_to_vendor_page')) {
?>
<a href="<?php echo $link;?>" title="<?php
echo $this->escape($this->row->vendor_name); ?>">
<?php
}
?>
<img src="<?php echo $image->url; ?>"
alt="<?php echo $this->escape($this->row->vendor_name);
?>"/>
<?php
if($this->params->get('link_to_vendor_page')) {
?>
</a>
<?php
}
?>
</div>
<?php
}
?>
<span class="hikamarket_vendor_name">
<?php
if($this->params->get('link_to_vendor_page')) {
?>
<a href="<?php echo $link;?>">
<?php
}
echo $this->row->vendor_name;
if($this->params->get('number_of_products', 0) &&
isset($this->row->number_of_products)) {
echo ' ('.$this->row->number_of_products.')';
}
if($this->params->get('link_to_vendor_page')) {
?>
</a>
<?php
}
?>
</span>
<?php
if($this->params->get('show_vote', 0)) {
$this->setLayout('listingmodule_vote');
echo $this->loadTemplate();
}
?>
</div>
PK���[W(L��0views/vendormarket/tmpl/listingcontent_title.phpnu�[���<?php
/**
* @package HikaMarket for Joomla!
* @version 3.1.1
* @author Obsidev S.A.R.L.
* @copyright (C) 2011-2020 OBSIDEV. All rights reserved.
* @license GNU/GPLv3 http://www.gnu.org/licenses/gpl-3.0.html
*/
defined('_JEXEC') or die('Restricted access');
?><span class="hikamarket_vendor_name">
<?php
if($this->params->get('link_to_vendor_page')) {
?>
<a href="<?php echo
hikamarket::completeLink('vendor&task=show&cid='.$this->row->vendor_id.'&name='.$this->row->alias
. $this->menu_id); ?>"><?php
}
echo $this->row->vendor_name;
if($this->params->get('number_of_products', 0))
echo ' (' . $this->row->number_of_products .
')';
if($this->params->get('link_to_vendor_page')) {
?></a>
<?php
}
?>
</span>
PK���[]p�tRR.views/vendormarket/tmpl/listingmodule_vote.phpnu�[���<?php
/**
* @package HikaMarket for Joomla!
* @version 3.1.1
* @author Obsidev S.A.R.L.
* @copyright (C) 2011-2020 OBSIDEV. All rights reserved.
* @license GNU/GPLv3 http://www.gnu.org/licenses/gpl-3.0.html
*/
defined('_JEXEC') or die('Restricted access');
?> <div id="hikamarket_vendor_vote"
class="hikamarket_vendor_vote">
<?php
$voteParams = new HikaParameter();
$voteParams->set('vote_type', 'vendor');
$voteParams->set('vote_ref_id',
$this->row->vendor_id);
$js = '';
echo hikamarket::getLayout('shop.vote', 'mini',
$voteParams, $js);
?>
</div>
PK���[�R�U�?�?(views/vendormarket/tmpl/registration.phpnu�[���<?php
/**
* @package HikaMarket for Joomla!
* @version 3.1.1
* @author Obsidev S.A.R.L.
* @copyright (C) 2011-2020 OBSIDEV. All rights reserved.
* @license GNU/GPLv3 http://www.gnu.org/licenses/gpl-3.0.html
*/
defined('_JEXEC') or die('Restricted access');
?><dl class="hikam_options">
<?php
if($this->form_type == 'register')
$this->form_type == 'vendorregister';
if((empty($this->user) || empty($this->user->user_id)) &&
$this->form_type == 'vendorregister') {
$user_name = $this->mainUser->get('name');
$user_username = $this->mainUser->get('username');
$user_email = $this->mainUser->get('email');
if(!empty($this->user->name))
$user_name = $this->user->name;
if(!empty($this->user->username))
$user_username = $this->user->username;
if(!empty($this->user->email))
$user_email = $this->user->email;
?>
<dt class="hikamarket_registration_name_line">
<label for="register_name"><?php echo
JText::_('HIKA_USER_NAME'); ?></label>
</dt>
<dd class="hikamarket_registration_name_line">
<input type="text" id="register_name"
name="data[register][name]" value="<?php echo
$this->escape($user_name); ?>" class="inputbox
required" maxlength="50"/>
</dd>
<?php
if($this->config->get('registration_email_is_username', 0)
== 0) { ?>
<dt class="hikamarket_registration_username_line">
<label for="register_username"><?php echo
JText::_('HIKA_USERNAME'); ?></label>
</dt>
<dd class="hikamarket_registration_username_line">
<input type="text" id="register_username"
name="data[register][username]" value="<?php echo
$this->escape($user_username); ?>" class="inputbox required
validate-username" maxlength="25"/>
</dd>
<?php } ?>
<dt class="hikamarket_registration_email_line">
<label for="register_email"><?php echo
JText::_('HIKA_EMAIL'); ?></label>
</dt>
<dd class="hikamarket_registration_email_line">
<input type="text" id="register_email"
name="data[register][email]" value="<?php echo
$this->escape($user_email); ?>" class="inputbox required
validate-email" maxlength="100"/>
</dd>
<?php if(!empty($this->extraData) &&
!empty($this->extraData->top)) { echo implode("\r\n",
$this->extraData->top); } ?>
<?php if($this->config->get('registration_ask_password',
1) == 1) { ?>
<dt class="hikamarket_registration_password_line">
<label for="register_password"><?php echo
JText::_('HIKA_PASSWORD'); ?></label>
</dt>
<dd class="hikamarket_registration_password_line">
<input type="password" id="register_password"
name="data[register][password]" value=""
class="inputbox required validate-password"/>
</dd>
<dt class="hikamarket_registration_password2_line">
<label for="register_password2"><?php echo
JText::_('HIKA_VERIFY_PASSWORD'); ?></label>
</dt>
<dd class="hikamarket_registration_password2_line">
<input type="password" id="register_password2"
name="data[register][password2]" value=""
class="inputbox required validate-passverify"/>
</dd>
<?php } ?>
<?php if(!empty($this->extraData) &&
!empty($this->extraData->middle)) { echo implode("\r\n",
$this->extraData->middle); } ?>
</dl>
<?php
foreach($this->extraFields['user'] as $fieldName =>
$oneExtraField) {
?>
<dl id="hikamarket_<?php echo
'user_'.$oneExtraField->field_namekey; ?>"
class="hikam_options hikamarket_registration_user_<?php echo
$fieldName;?>_line">
<dt><?php
echo $this->fieldsClass->getFieldName($oneExtraField);
?></dt>
<dd><?php
$onWhat='onchange';
if($oneExtraField->field_type == 'radio')
$onWhat='onclick';
echo $this->fieldsClass->display(
$oneExtraField,
@$this->user->$fieldName,
'data[user]['.$fieldName.']',
false,
'
'.$onWhat.'="hikashopToggleFields(this.value,\''.$fieldName.'\',\'user\',0,\'hikamarket_registration_\');"',
false,
$this->extraFields['user'],
$this->user
);
?></dd>
</dl>
<?php
}
if(!empty($this->options['privacy'])) {
?>
<dl class="hikam_options">
<dt class="hikamarket_registration_privacy_line">
<label for="register_privacy"><?php echo
JText::_('PLG_SYSTEM_PRIVACYCONSENT_LABEL'); ?></label>
</dt>
<dd>
<?php
if(!empty($this->options['privacy_text']))
hikamarket::display($this->options['privacy_text'],
'info');
if(!empty($this->options['privacy_id'])) {
$popupHelper = hikamarket::get('shop.helper.popup');
echo $popupHelper->display(
JText::_('PLG_SYSTEM_PRIVACYCONSENT_FIELD_LABEL'),
'PLG_SYSTEM_PRIVACYCONSENT_FIELD_LABEL',
JRoute::_('index.php?option=com_hikashop&ctrl=checkout&task=privacyconsent&tmpl=component'),
'shop_privacyconsent',
800, 500, '', '', 'link'
);
}
echo
$this->radioType->booleanlist('data[register][privacy]',
'', 0,
JText::_('PLG_SYSTEM_PRIVACYCONSENT_OPTION_AGREE'),
JText::_('JNO'));
?>
</dd>
</dl>
<?php
}
if($this->shopConfig->get('address_on_registration', 1))
{
?>
<h3
class="hikashop_registration_address_info_title"><?php
echo JText::_('ADDRESS_INFORMATION');
?></h3>
<?php
foreach($this->extraFields['address'] as $fieldName =>
$oneExtraField) {
?>
<dl id="hikamarket_<?php echo
'address_'.$oneExtraField->field_namekey; ?>"
class="hikam_options hikamarket_registration_address_<?php echo
$fieldName;?>_line">
<dt><?php
echo $this->fieldsClass->getFieldName($oneExtraField);
?></dt>
<dd><?php
$onWhat='onchange';
if($oneExtraField->field_type == 'radio')
$onWhat='onclick';
echo $this->fieldsClass->display(
$oneExtraField,
@$this->address->$fieldName,
'data[address]['.$fieldName.']',
false,
'
'.$onWhat.'="hikashopToggleFields(this.value,\''.$fieldName.'\',\'address\',0,\'hikamarket_registration_\');"',
false,
$this->extraFields['address'],
$this->address
);
?></dd>
</dl>
<?php
}
}
?>
<h3
class="hikashop_registration_vendor_info_title"><?php
echo JText::_('VENDOR_INFORMATION');
?></h3>
<dl class="hikam_options">
<?php
}
?>
<dt class="hikamarket_<?php echo $this->form_type;
?>_vendorname_line">
<label for="<?php echo $this->form_type;
?>_vendorname"><?php echo
JText::_('HIKA_VENDOR_NAME'); ?> *</label>
</dt>
<dd class="hikamarket_<?php echo $this->form_type;
?>_vendorname_line">
<input type="text" id="<?php echo
$this->form_type; ?>_vendorname" name="data[<?php echo
$this->form_type; ?>][vendor_name]" value="<?php echo
$this->escape($this->element->vendor_name); ?>"
class="inputbox required" maxlength="50"/>
</dd>
<?php if(!empty($this->user->user_id) || $this->form_type !=
'vendorregister') { ?>
<dt class="hikamarket_<?php echo $this->form_type;
?>_email_line">
<label for="<?php echo $this->form_type;
?>_vendoremail"><?php echo
JText::_('HIKA_CONTACT_EMAIL'); ?> *</label>
</dt>
<dd class="hikamarket_<?php echo $this->form_type;
?>_email_line">
<input type="text" id="<?php echo
$this->form_type; ?>_vendoremail" name="data[<?php echo
$this->form_type; ?>][vendor_email]" value="<?php echo
$this->escape($this->element->vendor_email); ?>"
class="inputbox required validate-email"
maxlength="50"/>
</dd>
<?php }
if((!empty($this->element->vendor_id) &&
hikamarket::acl('vendor/edit/image')) ||
$this->config->get('register_ask_image', 0)) {
?>
<dt class="hikamarket_<?php echo $this->form_type;
?>_vendorimage_line">
<label><?php echo JText::_('HIKAM_VENDOR_IMAGE');
?></label>
</dt>
<dd class="hikamarket_<?php echo $this->form_type;
?>_vendorimage_line"><?php
$options = array(
'upload' => true,
'gallery' => true,
'text' =>
JText::_('HIKAM_VENDOR_IMAGE_EMPTY_UPLOAD'),
'uploader' => array('plg.market.vendor',
'vendor_image'),
'vars' => array('vendor_id' =>
@$this->vendor->vendor_id)
);
$content = '';
if(!empty($this->vendor->vendor_image)) {
$params = new stdClass();
$params->file_path = @$this->vendor->vendor_image;
$params->field_name = 'data[vendor][vendor_image]';
$params->uploader_id = 'hikamarket_vendor_image';
$params->delete = true;
$js = '';
$content = hikamarket::getLayout('uploadmarket',
'image_entry', $params, $js);
}
echo
$this->uploaderType->displayImageSingle('hikamarket_vendor_image',
$content, $options);
?></dd>
<?php
}
if( (!isset($this->element->vendor_id) ||
$this->element->vendor_id > 1) &&
$this->options['ask_paypal'] ) {
$r = ($this->config->get('register_paypal_required', 0)
!= 0);
?>
<dt class="hikamarket_<?php echo $this->form_type;
?>_paypal_line">
<label for="<?php echo $this->form_type;
?>_paypal_email"><?php echo
JText::_('PAYPAL_EMAIL'); ?></label>
</dt>
<dd class="hikamarket_<?php echo $this->form_type;
?>_paypal_line">
<input type="text" id="<?php echo
$this->form_type; ?>_paypal_email" name="data[<?php echo
$this->form_type; ?>][vendor_params][paypal_email]"
value="<?php echo
$this->escape(@$this->element->vendor_params->paypal_email);
?>" class="inputbox <?php echo
$r?'required':'';?> validate-email"
maxlength="50"/><?php echo $r?'
*':'';?>
</dd>
<?php
}
if( (!isset($this->element->vendor_id) ||
$this->element->vendor_id > 1) &&
$this->options['ask_currency']) {
?>
<dt class="hikamarket_<?php echo $this->form_type;
?>_currency_line">
<label for="data<?php echo $this->form_type;
?>vendor_currency_id"><?php echo
JText::_('CURRENCY'); ?></label>
</dt>
<dd class="hikamarket_<?php echo $this->form_type;
?>_currency_line"><?php
echo
$this->currencyType->display('data['.$this->form_type.'][vendor_currency_id]',
$this->element->vendor_currency_id);
?></dd>
<?php
}
if(!empty($this->extraFields['vendor'])) {
?>
</dl>
<?php
foreach($this->extraFields['vendor'] as $fieldName =>
$oneExtraField) {
?>
<dl id="hikamarket_vendor_<?php echo
$oneExtraField->field_namekey; ?>" class="hikam_options
hikamarket_<?php echo $this->form_type; ?>_<?php echo
$fieldName;?>_line">
<dt><?php
echo $this->fieldsClass->getFieldName($oneExtraField, true);
?></dt>
<dd><?php
$onWhat = 'onchange';
if($oneExtraField->field_type == 'radio')
$onWhat = 'onclick';
$oneExtraField->table_name = 'vendor';
//$this->form_type; //'register';
if(isset($this->element->$fieldName))
$value = $this->element->$fieldName;
else
$value = $this->vendorFields->$fieldName;
echo $this->fieldsClass->display(
$oneExtraField,
$value,
'data['.$this->form_type.']['.$fieldName.']',
false,
' ' . $onWhat .
'="hikashopToggleFields(this.value,\''.$fieldName.'\',\'vendor\',0,\'hikamarket_\');"',
false,
$this->extraFields['vendor'],
@$this->element,
false
);
?></dd>
</dl>
<?php
}
?>
<dl class="hikam_options">
<?php
}
if( (!isset($this->element->vendor_id) ||
$this->element->vendor_id > 0) &&
$this->options['ask_description']) {
?>
<dt class="hikamarket_<?php echo $this->form_type;
?>_description_line">
<label><?php echo JText::_('HIKA_DESCRIPTION');
?></label>
</dt>
<dd class="hikamarket_<?php echo $this->form_type;
?>_description_line"><?php
$this->editor->content = $this->element->vendor_description;
echo $this->editor->display();
?>
<div style="clear:both"></div>
</dd>
<?php
}
if( (!isset($this->element->vendor_id) ||
$this->element->vendor_id > 1) &&
$this->options['ask_terms']) {
$r = ($this->config->get('register_terms_required', 0) !=
0);
?>
<dt class="hikamarket_<?php echo $this->form_type;
?>_terms_line">
<label><?php echo JText::_('HIKASHOP_CHECKOUT_TERMS');
?></label><?php echo $r?' *':'';?>
</dt>
<dd class="hikamarket_<?php echo $this->form_type;
?>_terms_line"><?php
$this->editor->content = @$this->element->vendor_terms;
$this->editor->name = 'vendor_terms';
echo $this->editor->display();
?>
<div style="clear:both"></div>
</dd>
<?php
}
if(isset($this->element->vendor_id) &&
hikamarket::acl('vendor/edit/location')) {
hikamarket::loadJslib('leaflet');
?>
<dt class="hikamarket_<?php echo $this->form_type;
?>_location_line">
<label><?php echo JText::_('HIKAMARKET_LOCATION');
?></label>
</dt>
<dd class="hikamarket_<?php echo $this->form_type;
?>_location_line">
<input type="hidden" id="vendor_location_lat"
name="data[vendor][vendor_location_lat]" value="<?php
echo hikamarket::toFloat($this->vendor->vendor_location_lat);
?>" />
<input type="hidden" id="vendor_location_lon"
name="data[vendor][vendor_location_long]" value="<?php
echo hikamarket::toFloat($this->vendor->vendor_location_long);
?>" />
<div id="vendor_map" class="map map-vendor"
style="height:200px;">
</div>
<div class="">
<a href="#search" class="hikabtn hikabtn-primary"
onclick="return window.localPage.searchLocation(this);"><i
class="fas fa-map-marked-alt"></i> <?php echo
JText::_('HIKAM_MAP_SEARCH'); ?></a>
<a href="#clear" class="hikabtn hikabtn-warning"
onclick="return window.localPage.clearLocation(this);"><i
class="fas fa-times-circle"></i> <?php echo
JText::_('HIKAM_MAP_CLEAR'); ?></a>
</div>
<script type="text/javascript">
var osmUrl =
'https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png',
osmAttrib = '© <a
href="https://www.openstreetmap.org/copyright">OpenStreetMap</a>
contributors',
osm = L.tileLayer(osmUrl, {maxZoom: 18, attribution: osmAttrib});
var map = L.map('vendor_map').setView([<?php echo
hikamarket::toFloat($this->vendor->vendor_location_lat); ?>,
<?php echo
hikamarket::toFloat($this->vendor->vendor_location_long); ?>],
15).addLayer(osm);
var marker = null;
<?php if(!empty($this->vendor->vendor_location_lat) ||
!empty($this->vendor->vendor_location_long)) { ?>
marker = L.marker([<?php echo
hikamarket::toFloat($this->vendor->vendor_location_lat); ?>,
<?php echo
hikamarket::toFloat($this->vendor->vendor_location_long); ?>])
.addTo(map);
<?php } else { ?>
map.setView([0, 0], 0);
<?php } ?>
map.on('click',function(e){
window.localPage.setMapMarket(e.latlng);
});
if(!window.localPage) window.localPage = {};
window.localPage.searchLocation = function(btn) {
var w = window, o = w.Oby, el = null, url =
'https://nominatim.openstreetmap.org/search?format=json&limit=1';
el = document.getElementById('vendor_address_street');
if(el && el.value) url += '&street=' +
encodeURIComponent(el.value);
el = document.getElementById('vendor_address_city');
if(el && el.value) url += '&city=' +
encodeURIComponent(el.value);
o.xRequest(url,null,function(xhr){
if(!xhr.responseText || xhr.status != 200) return;
var ret = o.evalJSON(xhr.responseText);
if(!ret || !ret[0]) return;
window.localPage.setMapMarket(ret[0]);
});
btn.blur();
return false;
};
window.localPage.clearLocation = function(btn) {
var d = document, input =
d.getElementById('vendor_location_lat');
if(input) input.value = '';
input = d.getElementById('vendor_location_lon');
if(input) input.value = '';
if(marker) marker.remove();
marker = null;
map.setView([0, 0], 0);
btn.blur();
return false;
};
window.localPage.setMapMarket = function(obj) {
var d = document, lon = obj.lon ? obj.lon: obj.lng;
if(!marker)
marker = L.marker([obj.lat, lon]).addTo(map);
else
marker.setLatLng([obj.lat, lon]);
var zoom = map.getZoom();
if(zoom <= 1) zoom = 15;
map.setView([obj.lat, lon], zoom);
var input = d.getElementById('vendor_location_lat');
if(input) input.value = obj.lat;
input = d.getElementById('vendor_location_lon');
if(input) input.value = lon;
};
</script>
</dd>
<?php
}
?>
</dl>
<?php
echo JHTML::_('form.token');
if((empty($this->user) || empty($this->user->user_id)) &&
$this->form_type == 'vendorregister' &&
!empty($this->extraData) &&
!empty($this->extraData->bottom)) {
?>
<dl class="hikam_options">
<?php
echo implode("\r\n", $this->extraData->bottom);
?>
</dl>
<?php
}
if(empty($this->user) && $this->form_type ==
'vendorregister') { ?>
<input type="hidden" name="data[register][id]"
value="<?php echo (int)$this->mainUser->get( 'id'
);?>" />
<input type="hidden" name="data[register][gid]"
value="<?php echo (int)$this->mainUser->get( 'gid'
);?>" />
<?php
}
if($this->form_type == 'vendorregister') {
?>
<div class="form-actions">
<input class="button hikashop_cart_input_button hikabtn
hikabtn-primary" type="submit" value="<?php echo
JText::_('HIKA_REGISTER'); ?>"/>
</div>
<?php }
PK���[M��*ZZ(views/vendormarket/tmpl/registration.xmlnu�[���<?xml
version="1.0" encoding="utf-8"?>
<metadata>
<layout hidden="true" />
</metadata>PK���[�g��jj%views/vendormarket/tmpl/selection.phpnu�[���<?php
/**
* @package HikaMarket for Joomla!
* @version 3.1.1
* @author Obsidev S.A.R.L.
* @copyright (C) 2011-2020 OBSIDEV. All rights reserved.
* @license GNU/GPLv3 http://www.gnu.org/licenses/gpl-3.0.html
*/
defined('_JEXEC') or die('Restricted access');
?><?php if( !$this->singleSelection ) { ?>
<fieldset>
<div class="toolbar" id="toolbar"
style="float: right;">
<button class="hikabtn" type="button"
onclick="if(document.adminForm.boxchecked.value==0){alert('<?php
echo JText::_('PLEASE_SELECT_SOMETHING', true);
?>');}else{submitbutton('useselection');}"><i
class="fas fa-check"></i> <?php echo
JText::_('OK'); ?></button>
</div>
</fieldset>
<?php } ?>
<form action="<?php echo
hikamarket::completeLink('vendor'); ?>"
method="post" name="adminForm"
id="adminForm">
<table class="hikam_filter" style="width:100%">
<tr>
<td width="100%">
<?php echo JText::_('FILTER'); ?>:
<input type="text" id="hikamarket_vendor_search"
name="search" value="<?php echo
$this->escape($this->pageInfo->search);?>"
class="text_area" onchange="this.form.submit();" />
<button class="hikabtn"
onclick="this.form.submit();"><i class="fas
fa-search"></i></button>
<button class="hikabtn"
onclick="document.getElementById('hikamarket_vendor_search').value='';this.form.submit();"><i
class="fas fa-times"></i></button>
</td>
</tr>
</table>
<table class="hikam_listing <?php echo
(HIKASHOP_RESPONSIVE)?'table table-striped
table-hover':'hikam_table'; ?>"
style="cell-spacing:1px">
<thead>
<tr>
<th class="title titlenum"><?php
echo JText::_('HIKA_NUM');
?></th>
<?php if( !$this->singleSelection ) { ?>
<th class="title titlebox"><input
type="checkbox" name="toggle" value=""
onclick="hikashop.checkAll(this);" /></th>
<?php } ?>
<th class="title"><?php
echo JHTML::_('grid.sort', JText::_('HIKA_NAME'),
'vendor.vendor_name',
$this->pageInfo->filter->order->dir,$this->pageInfo->filter->order->value
);
?></th>
<?php if($this->mainVendor) { ?>
<th class="title"><?php
echo JHTML::_('grid.sort', JText::_('HIKA_EMAIL'),
'vendor.vendor_email',
$this->pageInfo->filter->order->dir,$this->pageInfo->filter->order->value
);
?></th>
<?php }
if(!empty($this->extraFields['vendor'])) {
foreach($this->extraFields['vendor'] as $fieldName =>
$oneExtraField) {
?>
<th class="hikamarket_vendor_custom_<?php echo
$oneExtraField->field_namekey;?> title"
align="center"><?php
echo $this->fieldsClass->getFieldName($oneExtraField);
?></th>
<?php
}
}
?>
<th class="title"><?php
echo JHTML::_('grid.sort', JText::_('ID'),
'vendor.vendor_id',
$this->pageInfo->filter->order->dir,
$this->pageInfo->filter->order->value);
?></th>
</tr>
</thead>
<tfoot>
<tr>
<td colspan="10"><?php
echo $this->pagination->getListFooter();
echo $this->pagination->getResultsCounter();
?></td>
</tr>
</tfoot>
<tbody>
<?php
$k = 0;
$i = 0;
foreach($this->vendors as $vendor) {
$lbl1 = ''; $lbl2 = '';
$extraTr = '';
if( $this->singleSelection ) {
$data = '{id:'.$vendor->vendor_id;
foreach($this->elemStruct as $s) {
if($s == 'id')
continue;
$data .= ','.$s.':\''.
str_replace(array('\'','"'),array('\\\'','\\"'),$vendor->$s).'\'';
}
$data .= '}';
$extraTr = ' style="cursor:pointer"
onclick="window.top.hikamarket.submitBox('.$data.');"';
if(!empty($this->pageInfo->search)) {
$row = hikamarket::search($this->pageInfo->search, $vendor,
'vendor_id');
}
} else {
$lbl1 = '<label for="cb'.$i.'">';
$lbl2 = '</label>';
$extraTr = '
onclick="hikamarket.checkRow(\'cb'.$i.'\');"';
}
?>
<tr class="row<?php echo $k; ?>"<?php echo
$extraTr; ?>>
<td align="center"><?php
echo $this->pagination->getRowOffset($i);
?></td>
<?php if( !$this->singleSelection ) { ?>
<td align="center">
<input type="checkbox" onclick="this.clicked=true;
this.checked=!this.checked" value="<?php echo
$vendor->vendor_id;?>" name="cid[]"
id="cb<?php echo $i;?>"/>
</td>
<?php } ?>
<td><?php
echo $lbl1 . $vendor->vendor_name . $lbl2;
?></td>
<?php if($this->mainVendor) { ?>
<td><?php
echo $lbl1 . $vendor->vendor_email . $lbl2;
?></td>
<?php }
if(!empty($this->extraFields['vendor'])) {
foreach($this->extraFields['vendor'] as $fieldName =>
$oneExtraField) {
?>
<td class="hikamarket_vendor_custom_<?php echo
$oneExtraField->field_namekey;?>_row"><?php
echo $this->fieldsClass->show($oneExtraField,
$this->vendorFields->$fieldName);
?></td>
<?php
}
}
?>
<td width="1%" align="center"><?php
echo $vendor->vendor_id;
?></td>
</tr>
<?php
$k = 1-$k;
$i++;
}
?>
</tbody>
</table>
<?php if( $this->singleSelection ) { ?>
<input type="hidden" name="pid" value="0"
/>
<?php } ?>
<input type="hidden" name="option"
value="<?php echo HIKAMARKET_COMPONENT; ?>" />
<input type="hidden" name="task"
value="selection" />
<input type="hidden" name="tmpl"
value="component" />
<input type="hidden" name="selection"
value="vendor" />
<input type="hidden" name="confirm"
value="<?php echo $this->confirm ? '1' :
'0'; ?>" />
<input type="hidden" name="single"
value="<?php echo $this->singleSelection ? '1' :
'0'; ?>" />
<input type="hidden" name="ctrl"
value="vendor" />
<input type="hidden" name="boxchecked"
value="0" />
<input type="hidden" name="filter_order"
value="<?php echo
$this->pageInfo->filter->order->value; ?>" />
<input type="hidden" name="filter_order_Dir"
value="<?php echo $this->pageInfo->filter->order->dir;
?>" />
<?php
if(!empty($this->afterParams)) {
foreach($this->afterParams as $p) {
if(empty($p[0]) || !isset($p[1]))
continue;
echo '<input type="hidden"
name="'.$this->escape($p[0]).'"
value="'.$this->escape($p[1]).'"/>' .
"\r\n";
}
}
?>
<?php echo JHTML::_('form.token'); ?>
</form>
PK���[��{=��
views/vendormarket/tmpl/show.phpnu�[���<?php
/**
* @package HikaMarket for Joomla!
* @version 3.1.1
* @author Obsidev S.A.R.L.
* @copyright (C) 2011-2020 OBSIDEV. All rights reserved.
* @license GNU/GPLv3 http://www.gnu.org/licenses/gpl-3.0.html
*/
defined('_JEXEC') or die('Restricted access');
?><?php
if(empty($this->vendor))
return;
hikaInput::get()->set('hikashop_front_end_main', 1);
if(empty($this->vendor_layout) || (substr($this->vendor_layout, 0,
14) != 'showcontainer_' &&
substr($this->vendor_layout, 0, 7) != 'layout:'))
$this->vendor_layout = 'showcontainer_default';
if(substr($this->vendor_layout, 0, 14) == 'showcontainer_') {
$this->setLayout($this->vendor_layout);
echo $this->loadTemplate();
return;
}
PK���[�/�d��
views/vendormarket/tmpl/show.xmlnu�[���<?xml
version="1.0" encoding="utf-8"?>
<metadata>
<state>
<name>Vendor page</name>
<params addpath="/components/com_hikamarket/params">
<param name="vendor_id" type="text"
default="0" label="Select a vendor id"
description="Select here the vendor id to display for the current
link" />
</params>
</state>
<layout
title="COM_HIKAMARKET_VENDORMARKET_SHOW_VIEW_DEFAULT_TITLE">
<message></message>
</layout>
<fields name="params"
addfieldpath="/components/com_hikamarket/fields">
<fieldset name="basic" label="Select a
vendor">
<field id="vendor_id" name="vendor_id"
type="text" label="Select a vendor id"
description="Select here the vendor id to display for the current
link" />
</fieldset>
</fields>
</metadata>PK���[)
����1views/vendormarket/tmpl/showcontainer_default.phpnu�[���<?php
/**
* @package HikaMarket for Joomla!
* @version 3.1.1
* @author Obsidev S.A.R.L.
* @copyright (C) 2011-2020 OBSIDEV. All rights reserved.
* @license GNU/GPLv3 http://www.gnu.org/licenses/gpl-3.0.html
*/
defined('_JEXEC') or die('Restricted access');
?><div id="hikamarket_vendor_page"
class="hikamarket_vendor_page">
<div id="hikamarket_vendor_top"
class="hikamarket_vendor_top">
<h1><?php echo $this->vendor->vendor_name;
?></h1>
<div class="hk-row-fluid">
<?php
if(!empty($this->vendor_image->url) ||
!empty($this->vendor->extraData->afterImage)) {
?>
<div class="hkc-md-3">
<div class="hikamarket_vendor_image">
<?php
if(!empty($this->vendor_image->url)) {
?>
<img src="<?php echo $this->vendor_image->url;
?>" alt=""/>
<?php
}
?>
</div>
<?php if(!empty($this->vendor->extraData->afterImage)) { echo
implode("\r\n",$this->vendor->extraData->afterImage); }
?>
</div>
<div class="hkc-md-9">
<?php
} else {
?>
<div class="hkc-md-12">
<?php
}
?>
<div class="hikamarket_vendor_contact">
<?php
if($this->config->get('display_vendor_contact', 0)) {
echo $this->popup->display(
'<span>'.JText::_('CONTACT_VENDOR').'</span>',
'CONTACT_VENDOR',
hikamarket::completeLink('shop.product&task=contact&target=vendor&vendor_id='.$this->vendor->vendor_id,
true),
'hikamarket_contactvendor_popup',
array(
'width' => 750, 'height' => 460,
'type' => 'link',
'attr' => 'class="hikashop_cart_button hikabtn
hikabtn-primary"'
)
);
}
?>
</div>
<div class="hikamarket_vendor_vote">
<?php
if($this->config->get('display_vendor_vote',0)) {
$js = '';
echo hikamarket::getLayout('shop.vote', 'mini',
$this->voteParams, $js);
}
?>
</div>
<?php if(!empty($this->vendor->extraData->beforeFields)) { echo
implode("\r\n",$this->vendor->extraData->beforeFields);
} ?>
<div class="hikamarket_vendor_fields">
<?php
if(!empty($this->extraFields['vendor'])) {
?>
<dl class="hikam_options">
<?php
foreach($this->extraFields['vendor'] as $fieldName =>
$oneExtraField) {
?>
<dt><span id="hikamarket_vendor_custom_name_<?php echo
$oneExtraField->field_id;?>"
class="hikamarket_vendor_custom_name"><?php
echo
$this->fieldsClass->trans($oneExtraField->field_realname);
?></span></dt>
<dd><span id="hikamarket_vendor_custom_value_<?php
echo $oneExtraField->field_id;?>"
class="hikamarket_vendor_custom_value"><?php
echo $this->fieldsClass->show($oneExtraField,
$this->vendor->$fieldName);
?></span></dd>
<?php
}
?>
</dl>
<?php
}
?>
</div>
</div>
<div class="hkc-md-12">
<?php if(!empty($this->vendor->extraData->beforeDesc)) { echo
implode("\r\n",$this->vendor->extraData->beforeDesc); }
?>
<div id="hikamarket_vendor_description"
class="hikamarket_vendor_description"><?php
if($this->config->get('vendor_description_content_plugins',
0))
echo $this->secure($this->vendor->vendor_description);
else
echo JHTML::_('content.prepare',
$this->vendor->vendor_description);
?></div>
<?php if(!empty($this->vendor->extraData->afterDesc)) { echo
implode("\r\n",$this->vendor->extraData->afterDesc); }
?>
</div>
<div class="hkc-md-12">
<?php
if(!empty($this->vendor->vendor_location_lat) &&
!empty($this->vendor->vendor_location_long)) {
hikamarket::loadJslib('leaflet');
?>
<div id="vendor_map" class="hikamarket_vendor_map"
style="height:200px;"></div>
<script type="text/javascript">
var osmUrl =
'https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png', osmAttrib =
'© <a
href="https://www.openstreetmap.org/copyright">OpenStreetMap</a>
contributors', osm = L.tileLayer(osmUrl, {maxZoom: 18, attribution:
osmAttrib});
var map = L.map('vendor_map').setView([<?php echo
hikamarket::toFloat($this->vendor->vendor_location_lat); ?>,
<?php echo
hikamarket::toFloat($this->vendor->vendor_location_long); ?>],
15).addLayer(osm);
var marker = L.marker([<?php echo
hikamarket::toFloat($this->vendor->vendor_location_lat); ?>,
<?php echo
hikamarket::toFloat($this->vendor->vendor_location_long);
?>]).addTo(map);
</script>
<?php
}
?>
</div>
</div>
<?php if($this->config->get('display_vendor_vote', 0)) {
?>
<div id="hikashop_comment_form"
class="hikamarket_vendor_vote"><?php
$js = '';
echo hikamarket::getLayout('shop.vote', 'listing',
$this->voteParams, $js);
echo hikamarket::getLayout('shop.vote', 'form',
$this->voteParams, $js);
?></div>
<?php } ?>
<?php if(!empty($this->vendor->extraData->bottom)) { echo
implode("\r\n",$this->vendor->extraData->bottom); }
?>
<div style="clear:both"></div>
<div class="hikamarket_submodules"
id="hikamarket_submodules" style="clear:both">
<?php
if(!empty($this->modules)) {
hikaInput::get()->set('force_using_filters', 1);
foreach($this->modules as $module) {
echo JModuleHelper::renderModule($module);
}
}
?>
</div>
<?php if(!empty($this->vendor->extraData->afterModules)) { echo
implode("\r\n",$this->vendor->extraData->afterModules);
} ?>
</div>
PK���[B�e:00!views/vendormarket/tmpl/terms.phpnu�[���<?php
/**
* @package HikaMarket for Joomla!
* @version 3.1.1
* @author Obsidev S.A.R.L.
* @copyright (C) 2011-2020 OBSIDEV. All rights reserved.
* @license GNU/GPLv3 http://www.gnu.org/licenses/gpl-3.0.html
*/
defined('_JEXEC') or die('Restricted access');
?><?php
if(!empty($this->vendor)) {
?>
<h1><?php echo $this->vendor->vendor_name; ?></h1>
<p><?php
echo $this->vendor->vendor_terms;
?></p>
<?php
} else {
echo empty($this->article) ? JText::_('TERMS_UNDEFINED') :
JHTML::_('content.prepare', $this->article);
}
PK���[��e��!views/vendormarket/tmpl/users.phpnu�[���<?php
/**
* @package HikaMarket for Joomla!
* @version 3.1.1
* @author Obsidev S.A.R.L.
* @copyright (C) 2011-2020 OBSIDEV. All rights reserved.
* @license GNU/GPLv3 http://www.gnu.org/licenses/gpl-3.0.html
*/
defined('_JEXEC') or die('Restricted access');
?><h1><?php echo JText::_('USERS'); ?></h1>
<div class="hikamarket_add_vendoruser">
<div class="hk-input-group">
<div class="hk-input-group-prepend">
<span class="hk-input-group-text"><i class="fas
fa-info-circle" data-toggle="hk-tooltip"
data-title="<strong><?php echo
JText::_('HIKAM_INFO_ADD_USER_TITLE', true);
?></strong><br/></br§><?php echo
JText::_('HIKAM_INFO_ADD_USER', true);
?>"></i></span>
</div>
<input type="text" class="hk-form-control"
id="hikamarket_vendor_adduser" value=""/>
<div class="hk-input-group-append">
<a href="#add_vendor_user" class="hikabtn
hikabtn-primary" onclick="return
window.vendorMgr.addVendorUser(this);"><?php echo
JText::_('HIKAM_ADD_VENDOR_USER'); ?></a>
</div>
</div>
<div id="hikamarket_vendor_adduser_loading"
class="toggle_onload"
style="display:none;"></div>
</div>
<table id="hikamarket_vendor_users" class="hikam_listing
hikam_table hikam_bordered" style="width:100%">
<thead>
<tr>
<th class="hikamarket_user_name_title"><?php
echo JText::_('HIKA_NAME');
?></th>
<th class="hikamarket_user_email_title"><?php
echo JText::_('HIKA_EMAIL');
?></th>
<th class="hikamarket_user_acl_title titlenum"><?php
echo JText::_('HIKAM_ACL');
?></th>
<th class="hikamarket_user_icon_title
titlenum"><?php
echo JText::_('HIKA_DELETE');
?></th>
</tr>
</thead>
<?php
$user_id = hikamarket::loadUser(false);
echo '<input type="hidden" name="data[users][]"
value="'.$user_id.'"/>';
$k = 0;
if(!empty($this->users)) {
foreach($this->users as $user) {
if($user->user_id == $user_id)
continue;
?>
<tr class="row<?php echo $k; ?>"
id="vendor_users_<?php echo $user->id; ?>">
<td><?php echo $user->name;?></td>
<td><?php echo $user->email;?></td>
<td align="center"><?php echo
$this->marketaclType->displayButton('user['.$user->user_id.'][user_access]',
@$user->user_vendor_access); ?></td>
<td align="center">
<a href="#"
onclick="window.hikamarket.deleteRow(this); return
false;"><i class="fas
fa-times-circle"></i></a>
<input type="hidden" name="data[users][]"
value="<?php echo $user->user_id;?>"/>
</td>
</tr>
<?php
$k = 1 - $k;
}
}
?>
<!-- Template line -->
<tr id="hikamarket_users_tpl" class="row<?php echo
$k; ?>" style="display:none;">
<td>{name}</td>
<td>{user_email}</td>
<td align="center"><?php echo
$this->marketaclType->displayButton('user[{user_id}][user_access]',
'all'); ?></td>
<td align="center">
<a href="#"
onclick="window.hikamarket.deleteRow(this); return
false;"><img src="<?php echo
HIKASHOP_IMAGES;?>delete.png" alt="<?php echo
JText::_('DELETE'); ?>"/></a>
<input type="hidden" name="{input_name}"
value="{user_id}"/>
</td>
</tr>
</table>
<script type="text/javascript">
<!--
window.vendorMgr = {};
window.vendorMgr.addVendorUser = function(el) {
var d = document, w = window, o = window.Oby, loading =
d.getElementById('hikamarket_vendor_adduser_loading'), emailInput
= d.getElementById('hikamarket_vendor_adduser');
if(emailInput) {
if(loading)
loading.style.display = '';
var url = '<?php echo
hikamarket::completeLink('vendor&task=adduser&email={EMAIL}&'.hikamarket::getFormToken().'=1',
true, false, true); ?>', email = emailInput.value;
emailInput.value = '';
o.xRequest(url.replace('{EMAIL}', email), null, function(xhr){
if(xhr.responseText.substring(0,1) == '{') {
var data = o.evalJSON(xhr.responseText);
data['input_name'] = "data[users][]";
window.hikamarket.dupRow('hikamarket_users_tpl', data,
"vendor_users_" + data.user_id);
}
if(loading)
loading.style.display = 'none';
});
}
return false;
}
// -->
</script>
PK���[6+u�
(views/vendormarket/tmpl/useselection.phpnu�[���<?php
/**
* @package HikaMarket for Joomla!
* @version 3.1.1
* @author Obsidev S.A.R.L.
* @copyright (C) 2011-2020 OBSIDEV. All rights reserved.
* @license GNU/GPLv3 http://www.gnu.org/licenses/gpl-3.0.html
*/
defined('_JEXEC') or die('Restricted access');
?>PK���[J��]�]�
views/vendormarket/view.html.phpnu�[���<?php
/**
* @package HikaMarket for Joomla!
* @version 3.1.1
* @author Obsidev S.A.R.L.
* @copyright (C) 2011-2020 OBSIDEV. All rights reserved.
* @license GNU/GPLv3 http://www.gnu.org/licenses/gpl-3.0.html
*/
defined('_JEXEC') or die('Restricted access');
?><?php
class vendormarketViewvendormarket extends HikamarketView {
protected $ctrl = 'vendor';
protected $icon = 'vendor';
protected $triggerView = true;
public $extraFields = array();
public $requiredFields = array();
public $validMessages = array();
public function display($tpl = null, $params = array()) {
$this->params =& $params;
$fct = $this->getLayout();
if(method_exists($this, $fct))
$this->$fct();
parent::display($tpl);
}
public function show() {
$app = JFactory::getApplication();
$doc = JFactory::getDocument();
$pathway = $app->getPathway();
$config = hikamarket::config();
$this->assignRef('config', $config);
$shopConfig = hikamarket::config(false);
$this->assignRef('shopConfig', $shopConfig);
global $Itemid;
$url_itemid = '';
if(!empty($Itemid))
$url_itemid = '&Itemid=' . $Itemid;
$imageHelper = hikamarket::get('shop.helper.image');
$imageHelper->thumbnail = 1;
$this->assignRef('imageHelper', $imageHelper);
$this->loadRef(array(
'fieldsClass' => 'shop.class.field',
'popup' => 'shop.helper.popup',
));
$cid = hikamarket::getCID('vendor_id');
if(empty($cid)) {
$menus = $app->getMenu();
$menu = $menus->getActive();
if(empty($menu) && !empty($Itemid)) {
$menus->setActive($Itemid);
$menu = $menus->getItem($Itemid);
}
if(is_object($menu)) {
$market_params = new HikaParameter($menu->params);
$cid = $market_params->get('vendor_id');
if(is_array($cid)) {
$cid = (int)$cid[0];
} else {
$cid = (int)$cid;
}
hikaInput::get()->set('vendor_id', $cid);
}
}
$vendorClass = hikamarket::get('class.vendor');
$vendor = $vendorClass->get($cid);
if(empty($vendor) || !$vendor->vendor_published) {
$vendor = null;
$app->enqueueMessage(JText::_('VENDOR_DOES_NOT_EXIST'));
$this->assignRef('vendor', $vendor);
return;
}
$this->assignRef('vendor', $vendor);
$vendor->alias = (empty($vendor->vendor_alias)) ?
$vendor->vendor_name : $vendor->vendor_alias;
$stringSafe = (method_exists($app, 'stringURLSafe'));
if($stringSafe)
$vendor->alias =
$app->stringURLSafe(strip_tags($vendor->alias));
else
$vendor->alias =
JFilterOutput::stringURLSafe(strip_tags($vendor->alias));
$doc->setTitle( strip_tags($vendor->vendor_name) );
$pathway->addItem($vendor->vendor_name,
hikamarket::completeLink('vendor&task=show&cid='.(int)$vendor->vendor_id.'&name='.$vendor->alias.$url_itemid));
if(!empty($vendor->vendor_meta_keywords))
$doc->setMetadata('keywords',
$vendor->vendor_meta_keywords);
if(!empty($vendor->vendor_meta_description))
$doc->setMetadata('description',
$vendor->vendor_meta_description);
$vendor_layout = $config->get('default_vendor_layout',
'showcontainer_default');
$vendor_layout_params = null;
if(!empty($vendor->vendor_layout))
$vendor_layout = $vendor->vendor_layout;
if((int)$Itemid > 0) {
$menu_params = $config->get('menu_'.(int)$Itemid, null);
if(!empty($menu_params) &&
!empty($menu_params->vendor_page_layout))
$vendor_layout = $menu_params->vendor_page_layout;
}
if(empty($vendor_layout) || (substr($vendor_layout, 0, 14) !=
'showcontainer_' && substr($vendor_layout, 0, 7) !=
'layout:'))
$vendor_layout = 'showcontainer_default';
if(substr($vendor_layout, 0, 7) == 'layout:') {
if(empty($vendor_layout_params))
$vendor_layout = 'showcontainer_default';
}
$this->assignRef('vendor_layout', $vendor_layout);
$this->assignRef('vendor_layout_params',
$vendor_layout_params);
$moduleHelper = hikamarket::get('shop.helper.module');
$modules =
$moduleHelper->setModuleData($config->get('vendor_show_modules',
''));
if(!empty($modules) && is_array($modules))
jimport('joomla.application.module.helper');
else
$modules = null;
$this->assignRef('modules', $modules);
$image_size = array(
'x' => (int)$config->get('vendor_image_x',
$shopConfig->get('product_image_x', 100)),
'y' => (int)$config->get('vendor_image_y',
$shopConfig->get('product_image_y', 100)),
);
if(empty($image_size['x'])) $image_size['x'] =
(int)$shopConfig->get('product_image_x', 100);
if(empty($image_size['x'])) $image_size['x'] = 100;
if(empty($image_size['y'])) $image_size['y'] =
(int)$shopConfig->get('product_image_y', 100);
if(empty($image_size['y'])) $image_size['y'] = 100;
$this->assignRef('image_size', $image_size);
$image_options = array();
if($config->get('image_forcesize', '-1') !==
'-1')
$image_options['forcesize'] =
(int)$config->get('image_forcesize');
if($config->get('image_grayscale', '-1') !==
'-1')
$image_options['grayscale'] =
(int)$config->get('image_grayscale');
if($config->get('image_scale', '-1') !==
'-1') {
switch((int)$config->get('image_scale')) {
case 0:
$image_options['scale'] = 'outside';
break;
case 1:
$image_options['scale'] = 'inside';
break;
}
}
if($config->get('image_radius', '-1') !==
'-1')
$image_options['radius'] =
(int)$config->get('image_radius');
$this->assignRef('image_options', $image_options);
$vendor_image = null;
if(!empty($vendor->vendor_image)) {
if(isset($image_options['default']))
unset($image_options['default']);
$vendor_image = $imageHelper->getThumbnail($vendor->vendor_image,
$image_size, $image_options);
}
if(empty($vendor_image) || !$vendor_image->success) {
$image_options['default'] = true;
$vendor_image =
$imageHelper->getThumbnail($config->get('default_vendor_image',
''), $image_size, $image_options, true);
}
$this->assignRef('vendor_image', $vendor_image);
$voteParams = null;
if($this->config->get('display_vendor_vote', 0)) {
$voteParams = new HikaParameter();
$voteParams->set('vote_type', 'vendor');
$voteParams->set('vote_ref_id',
$this->vendor->vendor_id);
}
$this->assignRef('voteParams', $voteParams);
$extraFields = array(
'vendor' =>
$this->fieldsClass->getFields('display:vendor_page=1',
$vendor, 'plg.hikamarket.vendor')
);
foreach($extraFields['vendor'] as $fieldName => $extraField)
{
if(empty($extraField->field_display) ||
strpos($extraField->field_display, ';vendor_page=1;') ===
false) {
unset($extraFields['vendor'][$fieldName]);
}
}
$this->assignRef('extraFields', $extraFields);
$this->assignRef('vendorFields', $vendorFields);
}
public function listingAdmin($tpl = null, $mainVendor = false) {
$app = JFactory::getApplication();
$db = JFactory::getDBO();
$this->paramBase =
HIKAMARKET_COMPONENT.'.'.$this->getName().'.vendors';
$shopConfig = hikamarket::config(false);
$invoice_statuses = explode(',',
$shopConfig->get('invoice_order_statuses','confirmed,shipped'));
if(empty($invoice_statuses))
$invoice_statuses = array('confirmed','shipped');
$config = hikamarket::config();
$this->assignRef('config', $config);
$toggleClass = hikamarket::get('helper.toggle');
$this->assignRef('toggleClass', $toggleClass);
$currencyClass = hikamarket::get('shop.class.currency');
$this->assignRef('currencyClass', $currencyClass);
$filterType =
$app->getUserStateFromRequest($this->paramBase.'.filter_type',
'filter_type', 0, 'int');
$cfg = array(
'table' => 'vendor',
'main_key' => 'vendor_id',
'order_sql_value' => 'vendor.vendor_id'
);
$manage = true;
$this->assignRef('manage', $manage);
$pageInfo = $this->getPageInfo($cfg['order_sql_value']);
$filters = array();
$searchMap = array(
'vendor.vendor_id', 'vendor.vendor_name',
'vendor.vendor_email'
);
$orderingAccept = array('vendor.vendor_id',
'vendor.vendor_name', 'vendor.vendor_email',
'vendor.');
$order = '';
if(!$mainVendor)
$filters[] = 'vendor.vendor_id > 1';
$this->processFilters($filters, $order, $searchMap, $orderingAccept);
$query = 'FROM
'.hikamarket::table($cfg['table']).' AS vendor
'.$filters.$order;
$db->setQuery('SELECT * '.$query,
(int)$pageInfo->limit->start, (int)$pageInfo->limit->value);
$vendors = $db->loadObjectList();
$this->assignRef('vendors', $vendors);
$db->setQuery('SELECT COUNT(*) '.$query);
$pageInfo->elements = new stdClass();
$pageInfo->elements->total = $db->loadResult();
$pageInfo->elements->page = count($vendors);
$this->toolbar = array(
'back' => array('icon' => 'back',
'fa' => 'fa-arrow-circle-left', 'name'
=> JText::_('HIKA_BACK'), 'url' =>
hikamarket::completeLink('vendor')),
);
$this->getPagination();
$this->getOrdering('a.ordering', !$filterType);
if(!empty($this->ordering->ordering))
$this->toolbar['ordering']['display'] = true;
}
public function selection($tpl = null){
$singleSelection = hikaInput::get()->getInt('single', 0);
$confirm = hikaInput::get()->getInt('confirm', 1);
$this->assignRef('singleSelection', $singleSelection);
$this->assignRef('confirm', $confirm);
$vendor = hikamarket::loadVendor(false);
$mainVendor = ($vendor == 1);
$this->assignRef('mainVendor', $mainVendor);
$elemStruct = array(
'vendor_name'
);
if($mainVendor) {
$elemStruct = array(
'vendor_name',
'vendor_email'
);
}
$this->assignRef('elemStruct', $elemStruct);
$ctrl = hikaInput::get()->getCmd('ctrl');
$this->assignRef('ctrl', $ctrl);
$task = 'useselection';
$this->assignRef('task', $task);
$afterParams = array();
$after = hikaInput::get()->getString('after',
'');
if(!empty($after)) {
list($ctrl, $task) = explode('|', $after, 2);
$afterParams = hikaInput::get()->getString('afterParams',
'');
$afterParams = explode(',', $afterParams);
foreach($afterParams as &$p) {
$p = explode('|', $p, 2);
unset($p);
}
}
$this->assignRef('afterParams', $afterParams);
$fieldsClass = hikamarket::get('shop.class.field');
$this->assignRef('fieldsClass', $fieldsClass);
$vendorFields = null;
$extraFields = array(
'vendor' =>
$fieldsClass->getFields('display:vendor_select=1',
$vendorFields, 'plg.hikamarket.vendor')
);
foreach($extraFields['vendor'] as $fieldName => $extraField)
{
if(empty($extraField->field_display) ||
strpos($extraField->field_display, ';vendor_select=1;') ===
false) {
unset($extraFields['vendor'][$fieldName]);
}
}
$this->assignRef('extraFields', $extraFields);
$this->assignRef('vendorFields', $vendorFields);
$this->listingAdmin();
$this->toolbar = array();
}
public function useselection() {
$selection = hikaInput::get()->get('cid', array(),
'array');
$rows = array();
$data = '';
$vendor = hikamarket::loadVendor(false);
$mainVendor = ($vendor == 1);
$this->assignRef('mainVendor', $mainVendor);
$elemStruct = array(
'vendor_name'
);
if($mainVendor) {
$elemStruct = array(
'vendor_name',
'vendor_email'
);
}
if(!empty($selection)) {
hikamarket::toInteger($selection);
$db = JFactory::getDBO();
$query = 'SELECT a.* FROM
'.hikamarket::table('vendor').' AS a WHERE a.vendor_id
IN ('.implode(',',$selection).')';
$db->setQuery($query);
$rows = $db->loadObjectList();
if(!empty($rows)) {
$data = array();
foreach($rows as $v) {
$d = array('id' => (int)$v->vendor_id);
foreach($elemStruct as $s) {
if($s == 'id')
continue;
$d[$s] = $v->$s;
}
$data[] = $d;
}
$data = json_encode($data);
}
}
$this->assignRef('rows', $rows);
$this->assignRef('data', $data);
$confirm = hikaInput::get()->getBool('confirm', true);
$this->assignRef('confirm', $confirm);
if($confirm) {
$js =
'hikashop.ready(function(){window.top.hikamarket.submitBox('.$data.');});';
$doc = JFactory::getDocument();
$doc->addScriptDeclaration($js);
}
}
public function cpanel() {
$app = JFactory::getApplication();
$pathway = $app->getPathway();
$config = hikamarket::config();
$shopConfig = hikamarket::config(false);
$this->assignRef('config', $config);
$this->assignRef('shopConfig', $shopConfig);
global $Itemid;
$url_itemid = '';
if(!empty($Itemid))
$url_itemid='&Itemid='.$Itemid;
$this->assignRef('url_itemid', $url_itemid);
$vendor = hikamarket::loadVendor(true);
$this->assignRef('vendor', $vendor);
$this->multiple_vendor = array();
if($config->get('user_multiple_vendor', 0)) {
$vendorClass = hikamarket::get('class.vendor');
$vendors = $vendorClass->getUserVendors();
if(count($vendors) > 1) {
foreach($vendors as $i => $v) {
$this->multiple_vendor[$i] = $v->vendor_name;
}
}
unset($vendors);
}
$plugin_edition = ($vendor->vendor_id == 0 || $vendor->vendor_id ==
1) || ($vendor->vendor_id > 1 &&
(int)$config->get('plugin_vendor_config', 0) > 0);
$buttons = array(
'account' => array(
'url' =>
hikamarket::completeLink('vendor&task=form'.$url_itemid),
'level' => 0,
'icon' => 'iconM-48-account',
'fa' => 'fas fa-user-tie',
'name' => JText::_('VENDOR_ACCOUNT'),
'description' => '',
'display' => hikamarket::acl('vendor/edit')
),
'user' => array(
'url' =>
hikamarket::completeLink('user'.$url_itemid),
'level' => 0,
'icon' => 'iconM-48-user',
'fa' => 'fas fa-user-friends',
'name' => JText::_('CUSTOMERS'),
'description' => '',
'display' => hikamarket::acl('user/listing')
),
'order' => array(
'url' =>
hikamarket::completeLink('order'.$url_itemid),
'level' => 0,
'icon' => 'iconM-48-order',
'fa' => 'fas fa-file-invoice-dollar',
'name' => JText::_('ORDERS'),
'description' => '',
'display' => hikamarket::acl('order/listing')
),
'product' => array(
'url' =>
hikamarket::completeLink('product'.$url_itemid),
'level' => 0,
'icon' => 'iconM-48-products',
'fa' => 'fas fa-cubes',
'name' => JText::_('PRODUCTS'),
'description' => '',
'display' => hikamarket::acl('product/listing')
),
'category' => array(
'url' =>
hikamarket::completeLink('category'.$url_itemid),
'level' => 0,
'icon' => 'iconM-48-category',
'fa' => 'fas fa-folder',
'name' => JText::_('HIKA_CATEGORIES'),
'description' => '',
'display' =>
hikamarket::acl('category/listing')
),
'characteristic' => array(
'url' =>
hikamarket::completeLink('characteristic'.$url_itemid),
'level' => 0,
'icon' => 'iconM-48-characteristic',
'fa' => 'fas fa-adjust',
'name' => JText::_('CHARACTERISTICS'),
'description' => '',
'display' =>
hikamarket::acl('characteristic/listing')
),
'discount' => array(
'url' =>
hikamarket::completeLink('discount'.$url_itemid),
'level' => 0,
'icon' => 'iconM-48-discount',
'fa' => array('<i class="fas fa-certificate
fa-stack-2x"></i>', '<i class="fas
fa-percent fa-inverse fa-stack-1x"></i>'),
'name' => JText::_('DISCOUNTS'),
'description' => '',
'display' =>
hikamarket::acl('discount/listing')
),
'shipping' => array(
'url' =>
hikamarket::completeLink('plugin&plugin_type=shipping'.$url_itemid),
'level' => 0,
'icon' => 'iconM-48-shipping',
'fa' => 'fas fa-shipping-fast',
'name' => JText::_('HIKAM_SHIPPINGS'),
'description' => '',
'display' => ($plugin_edition &&
hikamarket::acl('shippingplugin/listing'))
),
'payment' => array(
'url' =>
hikamarket::completeLink('plugin&plugin_type=payment'.$url_itemid),
'level' => 0,
'icon' => 'iconM-48-payment',
'fa' => 'far fa-credit-card',
'name' => JText::_('HIKAM_PAYMENTS'),
'description' => '',
'display' => ($plugin_edition &&
hikamarket::acl('paymentplugin/listing'))
),
);
$statistics = array();
$statisticsClass = null;
if(hikamarket::acl('vendor/statistics')) {
$statisticsClass = hikamarket::get('class.statistics');
$statistics = $statisticsClass->getVendor($vendor);
}
JPluginHelper::importPlugin('hikamarket');
JPluginHelper::importPlugin('hikashop');
JPluginHelper::importPlugin('hikashoppayment');
JFactory::getApplication()->triggerEvent('onVendorPanelDisplay',
array(&$buttons, &$statistics));
if(hikamarket::acl('vendor/statistics')) {
$vendor_statistics = $config->get('vendor_statistics',
null);
if(!empty($vendor_statistics)) {
foreach($statistics as $key => &$stat) {
$stat['published'] = false;
}
unset($stat);
$vendor_statistics =
hikamarket::unserialize(base64_decode($vendor_statistics));
foreach($vendor_statistics as $key => $stat_conf) {
if(!isset($statistics[$key]))
continue;
if(isset($stat_conf['container']))
$statistics[$key]['container'] =
(int)$stat_conf['container'];
if(isset($stat_conf['slot']))
$statistics[$key]['slot'] =
(int)$stat_conf['slot'];
if(isset($stat_conf['order']))
$statistics[$key]['order'] =
(int)$stat_conf['order'];
else
$statistics[$key]['order'] = 0;
if(isset($stat_conf['published']))
$statistics[$key]['published'] =
$stat_conf['published'];
if(!empty($stat_conf['vars'])) {
foreach($stat_conf['vars'] as $k => $v)
$statistics[$key]['vars'][$k] = $v;
}
}
}
uasort($statistics, array($this, 'sortStats'));
}
$statistic_slots = array();
if(!empty($statistics)) {
foreach($statistics as $key => &$stat) {
if(isset($stat['published']) &&
empty($stat['published']))
continue;
$stat['key'] = $key;
if(empty($stat['slot']))
$stat['slot'] = 0;
if(!isset($statistic_slots[ (int)$stat['slot'] ]))
$statistic_slots[ (int)$stat['slot'] ] = array();
$order = @$stat['order'] * 100;
if(isset($statistic_slots[ $stat['slot'] ][ $order ])) {
for($i = 1; $i < 100; $i++) {
if(!isset($statistic_slots[ (int)$stat['slot'] ][ $order +
$i ])) {
$order += $i;
break;
}
}
}
$statistic_slots[ (int)$stat['slot'] ][$order] =& $stat;
}
unset($stat);
foreach($statistic_slots as $slot => &$stats) {
ksort($stats);
}
unset($stats);
}
foreach($buttons as &$btn) {
if(!hikamarket::level($btn['level']) ||
!$btn['display']) {
$btn = null;
unset($btn);
continue;
}
if(!isset($btn['name']))
$btn['name'] = '';
if(!isset($btn['description']))
$btn['description'] = '';
if(empty($btn['icon']))
$btn['icon'] = 'icon-48-hikamerket';
unset($btn);
}
$this->assignRef('buttons', $buttons);
$this->assignRef('statistics', $statistics);
$this->assignRef('statisticsClass', $statisticsClass);
$this->assignRef('statistic_slots', $statistic_slots);
$items = $pathway->getPathway();
if(!count($items))
$pathway->addItem(JText::_('VENDOR_ACCOUNT'),
hikamarket::completeLink('vendor'));
}
protected function sortStats($a, $b) {
if($a['order'] == $b['order'])
return 0;
return ($a['order'] < $b['order']) ? -1 : 1;
}
public function form() {
$this->vendorEdition();
$vendor = hikamarket::loadVendor(true);
if(!empty($vendor)) {
$this->toolbar = array(
'back' => array('icon' => 'back',
'fa' => 'fa-arrow-circle-left', 'name'
=> JText::_('HIKA_BACK'), 'url' =>
hikamarket::completeLink('vendor')),
'save' => array(
'url' => '#save',
'linkattribs' => 'onclick="return
window.hikamarket.submitform(\'save\',\'hikamarket_vendor_form\');"',
'icon' => 'save',
'fa' => 'fa-save',
'name' => JText::_('HIKA_SAVE'),
'pos' => 'right'
)
);
$app = JFactory::getApplication();
$menu = $app->getMenu();
$item = $menu->getActive();
$menu_view = (!empty($item->query['view']) ?
$item->query['view'] :
(!empty($item->query['ctrl']) ?
$item->query['ctrl'] : null));
$menu_layout = (!empty($item->query['layout']) ?
$item->query['layout'] :
(!empty($item->query['task']) ?
$item->query['task'] : null));
if(in_array($menu_view,
array('vendor','vendormarket')) && $menu_layout
== 'form')
unset($this->toolbar['back']);
}
$market_acl = hikamarket::get('type.market_acl');
$this->assignRef('marketaclType', $market_acl);
$users = array();
if(hikamarket::acl('vendor/edit/users')) {
$db = JFactory::getDBO();
$query = 'SELECT a.*,b.* FROM
'.hikamarket::table('user','shop').' AS a
LEFT JOIN '.hikamarket::table('users',false).' AS b ON
a.user_cms_id = b.id '.
'WHERE a.user_vendor_id = ' .
(int)$this->vendor->vendor_id . ' ORDER BY a.user_id';
$db->setQuery($query);
$users = $db->loadObjectList();
$query = 'SELECT hku.*, vu.user_access as `user_vendor_access`,
ju.* '.
' FROM
'.hikamarket::table('user','shop').' AS hku
'.
' INNER JOIN
'.hikamarket::table('vendor_user').' AS vu ON
hku.user_id = vu.user_id ' .
' LEFT JOIN
'.hikamarket::table('users',false).' AS ju ON
hku.user_cms_id = ju.id '.
' WHERE vu.vendor_id = ' .
(int)$this->vendor->vendor_id . ' ORDER BY hku.user_id';
$db->setQuery($query);
$o_users = $db->loadObjectList('user_id');
$users = array_merge($users, $o_users);
unset($o_users);
}
$this->assignRef('users', $users);
$app = JFactory::getApplication();
$pathway = $app->getPathway();
$items = $pathway->getPathway();
if(!count($items)) {
$pathway->addItem(JText::_('VENDOR_ACCOUNT'),
hikamarket::completeLink('vendor'));
$itemName = JText::_('HIKAM_VENDOR_EDIT');
if(empty($this->vendor))
$itemName = JText::_('HIKA_VENDOR_REGISTRATION');
$pathway->addItem($itemName,
hikamarket::completeLink('vendor&task=form'));
}
}
public function registration() {
$this->vendorEdition('register');
}
public function edit() {
$this->vendorEdition('vendor');
}
public function vendorEdition($type = 'auto') {
JHTML::_('behavior.formvalidation');
$config = hikamarket::config();
$this->assignRef('config', $config);
$shopConfig = hikamarket::config(false);
$this->assignRef('shopConfig', $shopConfig);
$mainUser = JFactory::getUser();
$this->assignRef('mainUser', $mainUser);
$user = hikamarket::loadUser(true);
$this->assignRef('user', $user);
if(empty($user)) {
$user = @$_SESSION['hikashop_user_data'];
$address = @$_SESSION['hikashop_address_data'];
if(empty($user))
$user = new stdClass();
$register = @$_SESSION['hikashop_register_data'];
if(!empty($register)) {
if(is_object($register))
$register = get_object_vars($register);
foreach($register as $k => $v) {
if(!isset($user->$k))
$user->$k = $v;
}
}
}
$simplified_reg = $config->get('simplified_registration',
1);
$this->assignRef('simplified_registration',
$simplified_reg);
$failVendor = hikaInput::get()->getVar('fail[vendor]',
null);
$vendor = hikamarket::loadVendor(true);
if(empty($vendor) && !empty($failVendor))
$vendor = $failVendor;
$this->assignRef('vendor', $vendor);
if($type == 'auto')
$type = ($vendor != null && !empty($vendor->vendor_id)) ?
'vendor' : 'vendorregister';
$this->assignRef('form_type', $type);
$this->loadRef(array(
'uploaderType' => 'shop.type.uploader',
'cartHelper' => 'shop.helper.cart',
'currencyType' => 'shop.type.currency',
'fieldsClass' => 'shop.class.field',
'radioType' => 'shop.type.radio',
));
$editor = hikamarket::get('shop.helper.editor');
$editor->setEditor($config->get('editor',
''));
$editor->name = 'vendor_description';
$editor->content = '';
$editor->height = 250;
if($config->get('editor_disable_buttons', 0))
$editor->options = false;
$this->assignRef('editor', $editor);
global $Itemid;
$url_itemid = '';
if(!empty($Itemid)){ $url_itemid = '&Itemid='.$Itemid; }
$this->assignRef('url_itemid',$url_itemid);
$extraFields = array();
$vendorFields = null;
$fieldMode = 'frontcomp';
if($type == 'vendorregister')
$fieldMode = 'display:vendor_registration=1';
if($type == 'vendorregister' ||
hikamarket::acl('vendor/edit/fields')) {
$extraFields = array(
'vendor' =>
$this->fieldsClass->getFields($fieldMode, $vendorFields,
'plg.hikamarket.vendor'),
'user' =>
$this->fieldsClass->getFields('frontcomp', $user,
'user')
);
}
$this->assignRef('extraFields', $extraFields);
$this->assignRef('vendorFields', $vendorFields);
$null = array();
$this->fieldsClass->addJS($null, $null, $null);
$this->fieldsClass->jsToggle($this->extraFields['vendor'],
$vendorFields, 0);
$this->fieldsClass->jsToggle($this->extraFields['user'],
$user, 0);
$values = array(
'vendor' => $vendorFields,
'user' => $user
);
if($shopConfig->get('address_on_registration', 1)) {
$extraFields['address'] =
$this->fieldsClass->getFields('frontcomp', $address,
'address');
$this->fieldsClass->jsToggle($this->extraFields['address'],
$address, 0);
$values['address'] = $address;
$this->assignRef('address', $address);
}
$this->fieldsClass->checkFieldsForJS($this->extraFields,
$this->requiredFields, $this->validMessages, $values);
$options = array(
'ask_description' => 1,
'ask_currency' => 1,
'ask_terms' => 1,
'ask_paypal' => 1,
);
$element = new stdClass();
if($type == 'vendor') {
$element = $vendor;
$options['ask_description'] =
hikamarket::acl('vendor/edit/description');
$options['ask_currency'] =
hikamarket::acl('vendor/edit/currency');
$options['ask_terms'] =
hikamarket::acl('vendor/edit/terms');
$options['ask_paypal'] =
hikamarket::acl('vendor/edit/paypalemail');
} else {
$element->vendor_params = new stdClass();
$element->vendor_name = '';
$element->vendor_description = '';
$element->vendor_email = @$user->user_email;
$element->vendor_currency_id = hikamarket::getCurrency();
$element->vendor_params->paypal_email = @$user->user_email;
if(!empty($failVendor)) {
foreach($failVendor as $k => $v) {
if(is_string($v))
$element->$k = $v;
}
$element->vendor_params->paypal_email =
@$failVendor->vendor_params->paypal_email;
if(empty($element->vendor_params->paypal_email))
$element->vendor_params->paypal_email =
$element->vendor_email;
}
$options['ask_description'] =
$config->get('register_ask_description', 1);
$options['ask_currency'] =
$config->get('register_ask_currency', 1);
$options['ask_terms'] =
$config->get('register_ask_terms', 1);
$options['ask_paypal'] =
$config->get('register_ask_paypal', 1);
$shopUserClass = hikamarket::get('shop.class.user');
$privacy = $shopUserClass->getPrivacyConsentSettings();
if(!empty($privacy)) {
$options['privacy'] = true;
$options['privacy_id'] = $privacy['id'];
$options['privacy_text'] = $privacy['text'];
}
}
$this->assignRef('element', $element);
$this->assignRef('options', $options);
}
public function terms() {
$app = JFactory::getApplication();
$db = JFactory::getDBO();
$config = hikamarket::config();
$shopConfig = hikamarket::config(false);
$step = hikaInput::get()->getInt('step', -1);
$pos = hikaInput::get()->getInt('pos', -1);
$cid = hikamarket::getCID();
if(empty($cid) && $step < 0)
$cid = 1;
if(!empty($cid)) {
$query = 'SELECT * FROM
'.hikamarket::table('vendor').' WHERE vendor_id =
' . $cid;
$db->setQuery($query);
$vendor = $db->loadObject();
$this->assignRef('vendor', $vendor);
if($cid > 1 || !empty($vendor->vendor_terms))
return;
}
$this->vendor = null;
hikashop_get('helper.checkout');
$checkoutHelper = hikashopCheckoutHelper::get();
$this->workflow = $checkoutHelper->checkout_workflow;
$block =
@$this->workflow['steps'][$step-1]['content'][$pos];
if(!empty($block) && $block['task'] ==
'plg.market.terms' &&
!empty($block['params']['article_id']))
$terms_article = $block['params']['article_id'];
if(empty($terms_article))
$terms_article = $config->get('checkout_terms', 0);
if(empty($terms_article))
return;
$sql = 'SELECT * FROM #__content WHERE id = ' .
(int)$terms_article;
$db->setQuery($sql);
$data = $db->loadObject();
$article = '';
if (is_object($data))
$article = $data->introtext . $data->fulltext;
$this->assignRef('article', $article);
}
public function listing() {
$app = JFactory::getApplication();
$db = JFactory::getDBO();
$doc = JFactory::getDocument();
$config = hikamarket::config();
$shopConfig = hikamarket::config(false);
$this->assignRef('config', $config);
$this->assignRef('shopConfig', $shopConfig);
$this->module = false;
$moduleHelper = hikamarket::get('helper.module');
$moduleHelper->initialize($this);
$this->paramBase =
HIKAMARKET_COMPONENT.'.'.$this->getName().'.vendors'
. '.' . $this->params->get('main_div_name');
$stringSafe = (method_exists($app, 'stringURLSafe'));
$filters = array();
$sql_select = array();
$sql_joins = array();
$pageInfo = new stdClass();
$pageInfo->filter = new stdClass();
$pageInfo->filter->order = new stdClass();
$pageInfo->limit = new stdClass();
$this->assignRef('pageInfo', $pageInfo);
$defaultParams = $shopConfig->get('default_params');
$marketDefaultParams = $config->get('default_params');
$marketDefaultParams['show_vote'] =
$config->get('display_vendor_vote', 0);
$inheritShop = array(
'limit' => '',
'order_dir' => 'inherit',
'margin' => '',
'border_visible' => '-1',
'div_item_layout_type' => 'inherit',
'text_center' => '-1',
'columns' => '',
'background_color' => '',
'layout_type' => 'inherit',
'random' => '-1',
'link_to_vendor_page' => '-1',
);
foreach($inheritShop as $k => $v) {
if($this->params->get($k, $v) == $v)
$this->params->set($k, @$defaultParams[$k]);
}
$inheritMarket = array(
'image_forcesize' => '-1',
'image_scale' => '-1',
'image_grayscale' => '-1',
'image_radius' => '',
'show_vote' => '-1',
);
foreach($inheritMarket as $k => $v) {
if($this->params->get($k, $v) == $v)
$this->params->set($k, @$marketDefaultParams[$k]);
}
if((int)$this->params->get('limit', 0) == 0 )
$this->params->set('limit', 1);
if($this->params->get('vendor_order',
'inherit') == 'inherit' ||
$this->params->get('vendor_order', 'inherit') ==
'')
$this->params->set('vendor_order',
'vendor_id');
if($this->params->get('order_dir', 'inherit')
== 'inherit' ||
$this->params->get('order_dir','inherit') ==
'')
$this->params->set('order_dir', 'ASC');
$pageInfo->filter->order->value =
$app->getUserStateFromRequest($this->paramBase .
'.filter_order', 'filter_order_' .
$this->params->get('main_div_name'), 'vendor.' .
$this->params->get('vendor_order', 'vendor_id'),
'cmd');
$pageInfo->filter->order->dir =
$app->getUserStateFromRequest($this->paramBase .
'.filter_order_Dir', 'filter_order_Dir_' .
$this->params->get('main_div_name'),
$this->params->get('vendor_order_dir','ASC'),
'word');
$oldValue = $app->getUserState($this->paramBase .
'.list_limit');
if($this->params->get('limit','') ==
'') {
$this->params->set('limit',
@$defaultParams['limit']);
if($this->params->get('limit', 0) <= 0)
$this->params->set('limit', 20);
}
if(empty($oldValue))
$oldValue = $this->params->get('limit');
$pageInfo->limit->value =
$app->getUserStateFromRequest($this->paramBase .
'.list_limit', 'limit_' .
$this->params->get('main_div_name'),
$this->params->get('limit'), 'int');
if($oldValue != $pageInfo->limit->value)
hikaInput::get()->set('limitstart_' .
$this->params->get('main_div_name'), 0);
$pageInfo->limit->start =
$app->getUserStateFromRequest($this->paramBase .
'.limitstart', 'limitstart_' .
$this->params->get('main_div_name'), 0, 'int');
$pageInfo->search =
HikaStringHelper::strtolower($app->getUserStateFromRequest($this->paramBase.'.search',
'search', '', 'string'));
$pageInfo->search = trim($pageInfo->search);
if(empty($this->module) &&
$shopConfig->get('hikarss_format') != 'none') {
$doc_title = $shopConfig->get('hikarss_name',
'');
if($config->get('hikarss_format') != 'both') {
$link = '&format=feed&limitstart=';
$attribs = array('type' =>
'application/rss+xml', 'title' => $doc_title.'
RSS 2.0');
$doc->addHeadLink(JRoute::_($link.'&type='.$shopConfig->get('hikarss_format')),
'alternate', 'rel', $attribs);
} else {
$link = '&format=feed&limitstart=';
$attribs = array('type' =>
'application/rss+xml', 'title' => $doc_title.'
RSS 2.0');
$doc->addHeadLink(JRoute::_($link.'&type=rss'),
'alternate', 'rel', $attribs);
$attribs = array('type' =>
'application/atom+xml', 'title' => $doc_title.'
Atom 1.0');
$doc->addHeadLink(JRoute::_($link.'&type=atom'),
'alternate', 'rel', $attribs);
}
}
$mainVendor = $config->get('listing_show_main_vendor', 0);
$filters = array(
'published' => 'vendor_published = 1'
);
$searchMap = array(
'vendor.vendor_name',
'vendor.vendor_description',
'vendor.vendor_id'
);
$orderingAccept = array(
'vendor.vendor_id',
'vendor.vendor_name',
'vendor.vendor_email',
'vendor.'
);
$order = '';
if(!$mainVendor)
$filters['no_main_vendor'] = 'vendor.vendor_id >
1';
JPluginHelper::importPlugin('hikamarket');
$trigger_params = array(
'select' => &$sql_select,
'join' => &$sql_joins,
'filter' => &$filters,
'order' => &$order,
'search_map' => &$searchMap,
'order_accept' => &$orderingAccept,
);
$view =& $this;
JFactory::getApplication()->triggerEvent('onBeforeVendorListingDisplay',
array(&$view, &$trigger_params));
unset($view);
$this->processFilters($filters, $order, $searchMap, $orderingAccept);
if($this->params->get('random'))
$order = ' ORDER BY RAND()';
if(!empty($sql_select)) {
$sql_select = ',' . implode(',', $sql_select) .
' ';
} else {
$sql_select = '';
}
if(!empty($sql_joins)) {
$sql_joins = implode(' ', $sql_joins) . ' ';
} else {
$sql_joins = '';
}
$query = 'FROM '.hikamarket::table('vendor').'
AS vendor ' . $sql_joins . $filters . $order;
$db->setQuery('SELECT vendor.* ' . $sql_select . $query,
(int)$pageInfo->limit->start, (int)$pageInfo->limit->value);
$rows = $db->loadObjectList();
foreach($rows as &$row) {
$row->alias = (empty($row->vendor_alias)) ? $row->vendor_name :
$row->vendor_alias;
if($stringSafe)
$row->alias = $app->stringURLSafe(strip_tags($row->alias));
else
$row->alias =
JFilterOutput::stringURLSafe(strip_tags($row->alias));
unset($row);
}
$this->assignRef('rows', $rows);
$db->setQuery('SELECT COUNT(vendor.vendor_id) FROM
'.hikamarket::table('vendor').' AS vendor ' .
$sql_joins . $filters);
$pageInfo->elements = new stdClass();
$pageInfo->elements->total = $db->loadResult();
$pageInfo->elements->page = count($rows);
if($pageInfo->elements->page) {
}
$this->assignRef('modules', $this->modules);
$imageHelper = hikamarket::get('shop.helper.image');
$imageHelper->thumbnail = 1;
$this->assignRef('imageHelper', $imageHelper);
if($this->params->get('image_height') == null &&
$this->params->get('image_width') == null) {
$this->params->set('image_width',
$this->imageHelper->main_thumbnail_x);
$this->params->set('image_height',
$this->imageHelper->main_thumbnail_y);
}
$image_size = array('x' =>
(int)$this->params->get('image_width'), 'y' =>
(int)$this->params->get('image_height'));
$this->assignRef('image_size', $image_size);
$image_options = array();
if($this->params->get('image_forcesize', '-1')
!== '-1')
$image_options['forcesize'] =
(int)$this->params->get('image_forcesize');
if($this->params->get('image_grayscale', '-1')
!== '-1')
$image_options['grayscale'] =
(int)$this->params->get('image_grayscale');
if($this->params->get('image_scale', '-1') !==
'-1') {
switch((int)$this->params->get('image_scale')) {
case 0:
$image_options['scale'] = 'outside';
break;
case 1:
$image_options['scale'] = 'inside';
break;
}
}
if($this->params->get('image_radius', '-1') !==
'-1')
$image_options['radius'] =
(int)$this->params->get('image_radius');
$this->assignRef('image_options', $image_options);
$opt = $image_options;
$opt['default'] = true;
$default_vendor_image =
$this->imageHelper->getThumbnail($config->get('default_vendor_image',
''), $this->image_size, $opt, true);
$this->assignRef('default_vendor_image',
$default_vendor_image);
$menu_id = '';
if(empty($this->module)) {
$title = $this->params->get('page_title');
if(empty($title))
$title = $this->params->get('title');
$page_title = $title;
if(empty($title)) {
$page_title = $app->getCfg('sitename');
} elseif ($app->getCfg('sitename_pagetitles', 0) == 1) {
$page_title = JText::sprintf('JPAGETITLE',
$app->getCfg('sitename'), $page_title);
} elseif ($app->getCfg('sitename_pagetitles', 0) == 2) {
$page_title = JText::sprintf('JPAGETITLE', $page_title,
$app->getCfg('sitename'));
}
$this->params->set('page_title', $title);
$doc->setTitle(strip_tags($page_title));
$pagination = hikamarket::get('shop.helper.pagination',
$pageInfo->elements->total, $pageInfo->limit->start,
$pageInfo->limit->value);
$pagination->hikaSuffix =
'_'.$this->params->get('main_div_name');
$this->assignRef('pagination',$pagination);
$this->params->set('show_limit', 1);
global $Itemid;
if(!empty($Itemid))
$menu_id = '&Itemid=' . $Itemid;
} else {
$menu_id = (int)$this->params->get('itemid', 0);
$menu_id = (!empty($menu_id)) ? '&Itemid=' . $menu_id :
'';
}
if(empty($menu_id)) {
$i = (int)$config->get('vendor_default_menu', 0);
if(!empty($i))
$menu_id = '&Itemid=' . $i;
}
$this->assignRef('menu_id', $menu_id);
$fieldsClass = hikamarket::get('shop.class.field');
$this->assignRef('fieldsClass', $fieldsClass);
$vendorFields = null;
$extraFields = array(
'vendor' =>
$fieldsClass->getFields('display:vendor_listing=1',
$vendorFields, 'plg.hikamarket.vendor')
);
$displayFields = array(
'vendor' => array()
);
foreach($extraFields['vendor'] as $fieldName => &$field)
{
if(empty($field->field_display))
continue;
if(strpos($field->field_display, ';vendor_listing=1;') ===
false)
continue;
$displayFields['vendor'][$fieldName] =& $field;
}
unset($field);
$fieldsClass->handleZoneListing($displayFields['vendor'],
$rows);
$this->assignRef('extraFields', $extraFields);
$this->assignRef('vendorFields', $vendorFields);
$this->assignRef('displayFields', $displayFields);
}
}
PK�{�[Sg�H�Hcss/backend_default.cssnu�[���PK�{�[�R��EE�Hcss/dropdown.cssnu�[���PK�{�[^�&~ǏǏjUcss/frontend_default.cssnu�[���PK�{�[wtW�y�css/index.htmlnu�[���PK�{�[6�i�"8"8��css/leaflet.cssnu�[���PK�{�[��9%
2css/otree.cssnu�[���PK�{�[��"A��x)css/rtl.cssnu�[���PK�{�[��>B���+css/tooltip.cssnu�[���PK�{�[z���g2images/arrow_menu.pngnu�[���PK�{�[Ә+h��x3images/category_hide.pngnu�[���PK�{�[K�eU���6images/category_show.pngnu�[���PK�{�[H���!!�:images/close.pngnu�[���PK�{�[���<images/edit.pngnu�[���PK�{�[pljY��_=images/icon-14/height.pngnu�[���PK�{�[^���v@images/icon-14/hikamarket.pngnu�[���PK�{�[wtW�mBimages/icon-14/index.htmlnu�[���PK�{�[�b���Bimages/icon-14/length.pngnu�[���PK�{�[�g(�BB�Eimages/icon-14/move.pngnu�[���PK�{�[Ƿ����|Himages/icon-14/width.pngnu�[���PK�{�[
K ���Kimages/icon-16/acl.pngnu�[���PK�{�[
=F�00dNimages/icon-16/add.pngnu�[���PK�{�[�9˼���Pimages/icon-16/cancel.pngnu�[���PK�{�[��"��Timages/icon-16/category.pngnu�[���PK�{�[����MVimages/icon-16/config.pngnu�[���PK�{�[�#�I���Yimages/icon-16/copy.pngnu�[���PK�{�[�O����Y\images/icon-16/delete.pngnu�[���PK�{�[L^�ܮ��_images/icon-16/edit.pngnu�[���PK�{�[���i���bimages/icon-16/help.pngnu�[���PK�{�[�P���eimages/icon-16/hikagreen.pngnu�[���PK�{�[/0�+himages/icon-16/hikamarket.pngnu�[���PK�{�[%���
�jimages/icon-16/import.pngnu�[���PK�{�[wtW��mimages/icon-16/index.htmlnu�[���PK�{�[�y2NNOnimages/icon-16/info.pngnu�[���PK�{�[�(.���pimages/icon-16/language.pngnu�[���PK�{�[�WnOOtimages/icon-16/layout.pngnu�[���PK�{�[��F���uimages/icon-16/link.pngnu�[���PK�{�[���!!�wimages/icon-16/loading.gifnu�[���PK�{�[.���~images/icon-16/new.pngnu�[���PK�{�[�ִ�
�images/icon-16/notice.pngnu�[���PK�{�[����Y�images/icon-16/notset.pngnu�[���PK�{�[���aa��images/icon-16/partial.pngnu�[���PK�{�[k�]��Q�images/icon-16/plugin.pngnu�[���PK�{�[-�c8���images/icon-16/plus.pngnu�[���PK�{�[!"��M�images/icon-16/product.pngnu�[���PK�{�[$Od�33S�images/icon-16/publish.pngnu�[���PK�{�[7�eJ��Вimages/icon-16/refresh.pngnu�[���PK�{�[�E�"���images/icon-16/save.pngnu�[���PK�{�[ߓ_���'�images/icon-16/save2.pngnu�[���PK�{�[�Y===D�images/icon-16/settings.pngnu�[���PK�{�[}�����̛images/icon-16/unpublish.pngnu�[���PK�{�[�����images/icon-16/update.pngnu�[���PK�{�[���&
G�images/icon-16/upload.pngnu�[���PK�{�[
�xl����images/icon-16/user.pngnu�[���PK�{�[l^�� ߩimages/icon-16/vendor.pngnu�[���PK�{�[����1�images/icon-16/views.pngnu�[���PK�{�[�&
� � :�images/icon-32/apply.pngnu�[���PK�{�[�t�images/icon-32/approve.pngnu�[���PK�{�[,�w� � ��images/icon-32/back.pngnu�[���PK�{�[IQH����images/icon-32/block.pngnu�[���PK�{�[х'�� � ��images/icon-32/cancel.pngnu�[���PK�{�[(�iqq��images/icon-32/category.pngnu�[���PK�{�[�18ft t r�images/icon-32/delete.pngnu�[���PK�{�[��>Z� � /�images/icon-32/hikamarket.pngnu�[���PK�{�[0g�SW W r�images/icon-32/import.pngnu�[���PK�{�[wtW�images/icon-32/index.htmlnu�[���PK�{�[+y�AAuimages/icon-32/invoice.pngnu�[���PK�{�[�ʹ�4 4 images/icon-32/new.pngnu�[���PK�{�[4�@��zimages/icon-32/order-status.pngnu�[���PK�{�[��,D� � "oimages/icon-32/parent-category.pngnu�[���PK�{�[�>� W(images/icon-32/pay.pngnu�[���PK�{�[�@�K\ \ �1images/icon-32/report.pngnu�[���PK�{�[$L��G;images/icon-32/save.pngnu�[���PK�{�[r
�n� � �Dimages/icon-32/savenew.pngnu�[���PK�{�[�1�$$�Nimages/icon-32/send-email.pngnu�[���PK�{�[�
,�F F #�Timages/icon-32/shipping-invoice.pngnu�[���PK�{�[6o��� � �^images/icon-32/up.pngnu�[���PK�{�[Ḡ(� � �himages/icon-32/update.pngnu�[���PK�{�[H��rimages/icon-32/vendor.pngnu�[���PK�{�[γ����images/icon-32/view.pngnu�[���PK�{�[[o++��images/icon-48/account.pngnu�[���PK�{�[�{O
O
m�images/icon-48/acl.pngnu�[���PK�{�[���W W �images/icon-48/block.pngnu�[���PK�{�[�r����images/icon-48/category.pngnu�[���PK�{�[�����!ɩimages/icon-48/characteristic.pngnu�[���PK�{�[�m
K��ݱimages/icon-48/discount.pngnu�[���PK�{�[�G�::�images/icon-48/hikamarket.pngnu�[���PK�{�[wtW���images/icon-48/index.htmlnu�[���PK�{�[_��N����images/icon-48/layout.pngnu�[���PK�{�[�ZX��images/icon-48/order.pngnu�[���PK�{�[h�T���,�images/icon-48/payment.pngnu�[���PK�{�[�-f
f
`�images/icon-48/plugin.pngnu�[���PK�{�[��
iiimages/icon-48/products.pngnu�[���PK�{�[Mi�I==�images/icon-48/shipping.pngnu�[���PK�{�[ ��� Kimages/icon-48/user.pngnu�[���PK�{�[�n�22�images/icon-48/vendor.pngnu�[���PK�{�[wtW�0images/index.htmlnu�[���PK�{�[J�m߁�n0images/infinity.pngnu�[���PK�{�[wtW�22images/leaflet/index.htmlnu�[���PK�{�[9W����2images/leaflet/layers-2x.pngnu�[���PK�{�[�����7images/leaflet/layers.pngnu�[���PK�{�[�Է�� � !�:images/leaflet/marker-icon-2x.pngnu�[���PK�{�[������Dimages/leaflet/marker-icon.pngnu�[���PK�{�[�mUjj
�Jimages/leaflet/marker-shadow.pngnu�[���PK�{�[�)U����Mimages/mail/footer.pngnu�[���PK�{�[�f�L���Oimages/mail/header.pngnu�[���PK�{�[wtW��Simages/mail/index.htmlnu�[���PK�{�[ ~vQ881Timages/otree/empty.gifnu�[���PK�{�[�Y�'tt�Timages/otree/folder.gifnu�[���PK�{�[=K�TxxjVimages/otree/folderopen.gifnu�[���PK�{�[wtW�-Ximages/otree/index.htmlnu�[���PK�{�[���EE�Ximages/otree/join.gifnu�[���PK�{�[��BBYimages/otree/joinbottom.gifnu�[���PK�{�[��BB�Yimages/otree/line.gifnu�[���PK�{�[�.Xy��,Zimages/otree/loading.gifnu�[���PK�{�[��VV$`images/otree/minus.gifnu�[���PK�{�[��UU�`images/otree/minusbottom.gifnu�[���PK�{�[+iV*]]aaimages/otree/nolines_minus.gifnu�[���PK�{�[��_ffeimages/otree/nolines_plus.gifnu�[���PK�{�[�v�2CC�himages/otree/option.gifnu�[���PK�{�[ǩ(cFFIkimages/otree/page.gifnu�[���PK�{�[ vQYY�mimages/otree/plus.gifnu�[���PK�{�[2k�XXrnimages/otree/plusbottom.gifnu�[���PK�{�[�(.��oimages/otree/world.pngnu�[���PK�{�[f]����>rimages/progress.gifnu�[���PK�{�[��=��3vimages/progress01.gifnu�[���PK�{�[���!!9wimages/spinner.gifnu�[���PK�{�[
h�����}images/spinner_02.gifnu�[���PK�{�[wtW�
o�index.htmlnu�[���PK�{�[�`�&×js/dropdown.jsnu�[���PK�{�[ױQ:F:F
�js/hikamarket.jsnu�[���PK�{�[wtW�
��js/index.htmlnu�[���PK�{�[�(V5�%�%
��js/leaflet.jsnu�[���PK�{�[�TsV�V�js/otree.jsnu�[���PK�{�[���A�
�
�js/tooltip.jsnu�[���PK�{�[wtW��&mail/index.htmlnu�[���PK�{�[]¤�b
b
'�&mail/order_status_notification.html.phpnu�[���PK�{�[]�},M,M*�Gmail/order_status_notification.preload.phpnu�[���PK�{�[��t t *
�mail/order_status_notification.preview.phpnu�[���PK�{�[�ŊVGG�mail/product_approval.html.phpnu�[���PK�{�[�$�Ĭ�!��mail/product_approval.preload.phpnu�[���PK�{�[r�;{9 9 !��mail/product_approval.preview.phpnu�[���PK�{�[��E hh
�mail/product_creation.html.phpnu�[���PK�{�[�++!��mail/product_creation.preload.phpnu�[���PK�{�[�{��!<�mail/product_creation.preview.phpnu�[���PK�{�[�a��AAi�mail/product_decline.html.phpnu�[���PK�{�[�WJ
��mail/product_decline.preload.phpnu�[���PK�{�[�"��6 6
�mail/product_decline.preview.phpnu�[���PK�{�[>��"qq"Lmail/product_modification.html.phpnu�[���PK�{�[`p�9II%mail/product_modification.preload.phpnu�[���PK�{�[�n�OO%�mail/product_modification.preview.phpnu�[���PK�{�[wtW�Q!mail/template/index.htmlnu�[���PK�{�[��
}
}
�!mail/template/vendor.html.phpnu�[���PK�{�[f���WW%},mail/user_order_notification.html.phpnu�[���PK�{�[�'U�
S
S()Bmail/user_order_notification.preload.phpnu�[���PK�{�[��||(��mail/user_order_notification.preview.phpnu�[���PK�{�[�h�>qq%_�mail/user_order_notification.text.phpnu�[���PK�{�[?1��'%�mail/vendor_admin_registration.html.phpnu�[���PK�{�[��͕��*y�mail/vendor_admin_registration.preload.phpnu�[���PK�{�[��:�44*��mail/vendor_admin_registration.preview.phpnu�[���PK�{�[c�)SMM),�mail/vendor_payment_notification.html.phpnu�[���PK�{�[J��Q5Q5,��mail/vendor_payment_notification.preload.phpnu�[���PK�{�[�a�vv$ mail/vendor_payment_request.html.phpnu�[���PK�{�[����'I- mail/vendor_payment_request.preload.phpnu�[���PK�{�[|��,,'�4 mail/vendor_payment_request.preview.phpnu�[���PK�{�[�����!*@ mail/vendor_registration.html.phpnu�[���PK�{�[����$
R mail/vendor_registration.preload.phpnu�[���PK�{�[�Ɗ�JJ$�U mail/vendor_registration.preview.phpnu�[���PK�[eXţ=/=/�a controllers/category.phpnu�[���PK�[���"�"� controllers/characteristic.phpnu�[���PK�[>��?��F� controllers/discount.phpnu�[���PK�[wtW�5� controllers/index.htmlnu�[���PK�[mbT�V�V�� controllers/order.phpnu�[���PK�[�=HNXX�
controllers/payment.phpnu�[���PK�[��� Q#Q#&%
controllers/plugin.phpnu�[���PK�[)�hq�q��H
controllers/product.phpnu�[���PK�[�'a]]u�
controllers/shipping.phpnu�[���PK�[ �C���
controllers/toggle.phpnu�[���PK�[���L8L8:�
controllers/upload.phpnu�[���PK�[�X&qq�6controllers/user.phpnu�[���PK�[�#&~�I�I�Qcontrollers/vendor.phpnu�[���PK�[^Ƭ00ěcontrollers/warehouse.phpnu�[���PK�[�P�5��=�controllers/zone.phpnu�[���PK�[n�t���fields/hikamarketmenu.phpnu�[���PK�[������fields/hikamarketmodule.phpnu�[���PK�[;ji�UU.�fields/hikamnamebox.phpnu�[���PK�[wtW�ʺfields/index.htmlnu�[���PK�[��Z���%�fields/selectoptions.phpnu�[���PK�[���ԩ�^�fields/vendorsearchfields.phpnu�[���PK�[W�U�
�
T�hikamarket.phpnu�[���PK�[���g��
I�router.phpnu�[���PK�[���IId�sef_ext.phpnu�[���PK�[wtW���views/categorymarket/index.htmlnu�[���PK�[\�'J.Q�views/categorymarket/tmpl/edit_translation.phpnu�[���PK�[PDB���"��views/categorymarket/tmpl/form.phpnu�[���PK�[(x����(�views/categorymarket/tmpl/form_image.phpnu�[���PK�[{�^...�
views/categorymarket/tmpl/form_image_entry.phpnu�[���PK�[��ɷ))*$views/categorymarket/tmpl/galleryimage.phpnu�[���PK�[�3M� � #5views/categorymarket/tmpl/image.phpnu�[���PK�[wtW�$�>views/categorymarket/tmpl/index.htmlnu�[���PK�[��`6`6%M?views/categorymarket/tmpl/listing.phpnu�[���PK�[��!k��%vviews/categorymarket/tmpl/listing.xmlnu�[���PK�[>� �`�`"xviews/categorymarket/view.html.phpnu�[���PK�[wtW�%W�views/characteristicmarket/index.htmlnu�[���PK�[wtW�*��views/characteristicmarket/tmpl/index.htmlnu�[���PK�[��w�BB+:�views/characteristicmarket/tmpl/listing.phpnu�[���PK�[�=W��+��views/characteristicmarket/tmpl/listing.xmlnu�[���PK�[IK_�>�>(��views/characteristicmarket/tmpl/show.phpnu�[���PK�[�%�M��02
views/characteristicmarket/tmpl/show_listing.phpnu�[���PK�[�(��33(N
views/characteristicmarket/view.html.phpnu�[���PK�[wtW���
views/checkoutmarket/index.htmlnu�[���PK�[wtW�$�
views/checkoutmarket/tmpl/index.htmlnu�[���PK�[��^� � #X�
views/checkoutmarket/tmpl/terms.phpnu�[���PK�[�r����"^�
views/checkoutmarket/view.html.phpnu�[���PK�[wtW���
views/discountmarket/index.htmlnu�[���PK�[���!��
views/discountmarket/tmpl/add.xmlnu�[���PK�[wtW�$�
views/discountmarket/tmpl/index.htmlnu�[���PK�[
*��/�/%`�
views/discountmarket/tmpl/listing.phpnu�[���PK�[�\�2��%��
views/discountmarket/tmpl/listing.xmlnu�[���PK�[emYl�>�>"��
views/discountmarket/tmpl/show.phpnu�[���PK�[R�%�+�+"iviews/discountmarket/view.html.phpnu�[���PK�[wtW�[7views/index.htmlnu�[���PK�[wtW��7views/layouts/index.htmlnu�[���PK�[wtW�8views/layouts/tmpl/index.htmlnu�[���PK�[�xN##~8views/layouts/tmpl/search.phpnu�[���PK�[wtW��=views/ordermarket/index.htmlnu�[���PK�['*6���!T>views/ordermarket/tmpl/create.phpnu�[���PK�[�P����'sDviews/ordermarket/tmpl/customer_set.phpnu�[���PK�[�4��t*t**�Qviews/ordermarket/tmpl/edit_additional.phpnu�[���PK�[�!!(h|views/ordermarket/tmpl/edit_products.phpnu�[���PK�[;�L]AA!�views/ordermarket/tmpl/export.phpnu�[���PK�[=�s_
_
&s�views/ordermarket/tmpl/export_show.phpnu�[���PK�[�F�zD#D#"(�views/ordermarket/tmpl/history.phpnu�[���PK�[wtW�!��views/ordermarket/tmpl/index.htmlnu�[���PK�[��&�;;")�views/ordermarket/tmpl/invoice.phpnu�[���PK�[~�㏦$�$"�views/ordermarket/tmpl/listing.phpnu�[���PK�[F� ���"�0views/ordermarket/tmpl/listing.xmlnu�[���PK�[@/а���3views/ordermarket/tmpl/mail.phpnu�[���PK�[����#U?views/ordermarket/tmpl/payments.phpnu�[���PK�[��o�))&pPviews/ordermarket/tmpl/previewmail.phpnu�[���PK�[�=����"�Rviews/ordermarket/tmpl/request.phpnu�[���PK�[[]�ZKK*[views/ordermarket/tmpl/show.phpnu�[���PK�[��c�)�)*�xviews/ordermarket/tmpl/show_additional.phpnu�[���PK�[���FF'��views/ordermarket/tmpl/show_address.phpnu�[���PK�[2@n/xx-<�views/ordermarket/tmpl/show_block_address.phpnu�[���PK�[�+����.�views/ordermarket/tmpl/show_block_customer.phpnu�[���PK�[�N�x-x--c�views/ordermarket/tmpl/show_block_details.phpnu�[���PK�[L"{N�%�%28�views/ordermarket/tmpl/show_block_edit_address.phpnu�[���PK�[xd���1@views/ordermarket/tmpl/show_block_edit_coupon.phpnu�[���PK�[C�g,��3�%views/ordermarket/tmpl/show_block_edit_customer.phpnu�[���PK�[=���1�2views/ordermarket/tmpl/show_block_edit_fields.phpnu�[���PK�[��X�7
7
2n:views/ordermarket/tmpl/show_block_edit_payment.phpnu�[���PK�[��gJ2Eviews/ordermarket/tmpl/show_block_edit_product.phpnu�[���PK�[YrD�xx3�cviews/ordermarket/tmpl/show_block_edit_shipping.phpnu�[���PK�[�es==,_xviews/ordermarket/tmpl/show_block_fields.phpnu�[���PK�[�x�
-�}views/ordermarket/tmpl/show_block_general.phpnu�[���PK�[����%
%
-X�views/ordermarket/tmpl/show_block_history.phpnu�[���PK�[J��CC-ڕviews/ordermarket/tmpl/show_block_product.phpnu�[���PK�[��y1+"+".z�views/ordermarket/tmpl/show_block_products.phpnu�[���PK�[�0�
-�views/ordermarket/tmpl/show_block_vendors.phpnu�[���PK�[5I�WW'v�views/ordermarket/tmpl/show_general.phpnu�[���PK�[B"Z~��'$�views/ordermarket/tmpl/show_history.phpnu�[���PK�[���
&��views/ordermarket/tmpl/show_legacy.phpnu�[���PK�[7j�AL"L"(bviews/ordermarket/tmpl/show_products.phpnu�[���PK�[��L��@�@&4views/ordermarket/tmpl/show_vendor.phpnu�[���PK�[B��
�
!�tviews/ordermarket/tmpl/status.phpnu�[���PK�[HL�,��(�views/ordermarket/view.html.phpnu�[���PK�[wtW�6�views/pluginmarket/index.htmlnu�[���PK�[X�aܷ
�
��views/pluginmarket/tmpl/add.phpnu�[���PK�[(�����
��views/pluginmarket/tmpl/form.phpnu�[���PK�[wtW�"�views/pluginmarket/tmpl/index.htmlnu�[���PK�[J���w&w&#R�views/pluginmarket/tmpl/listing.phpnu�[���PK�[�&����#�views/pluginmarket/tmpl/listing.xmlnu�[���PK�[�`�
��
P�views/pluginmarket/view.html.phpnu�[���PK�[wtW��sviews/productmarket/index.htmlnu�[���PK�[k^�٥�
tviews/productmarket/tmpl/add.xmlnu�[���PK�[PPs>((-wviews/productmarket/tmpl/edit_translation.phpnu�[���PK�[���!��views/productmarket/tmpl/file.phpnu�[���PK�[Q+�X_V_V!�views/productmarket/tmpl/form.phpnu�[���PK�[a"��&&(��views/productmarket/tmpl/form_bundle.phpnu�[���PK�[�~>��%�%0views/productmarket/tmpl/form_characteristic.phpnu�[���PK�[�V�@��&r7views/productmarket/tmpl/form_file.phpnu�[���PK�[z���4
4
,�Jviews/productmarket/tmpl/form_file_entry.phpnu�[���PK�[WK�(
(
'Uviews/productmarket/tmpl/form_image.phpnu�[���PK�[�m1���-�bviews/productmarket/tmpl/form_image_entry.phpnu�[���PK�[���%%%%'�iviews/productmarket/tmpl/form_price.phpnu�[���PK�[^�4amm0N�views/productmarket/tmpl/form_price_advanced.phpnu�[���PK�[4�b�?,?,-�views/productmarket/tmpl/form_price_entry.phpnu�[���PK�[X�M�33,��views/productmarket/tmpl/form_price_mini.phpnu�[���PK�[��J�7�7*F�views/productmarket/tmpl/form_variants.phpnu�[���PK�[�P����.�views/productmarket/tmpl/form_variants_add.phpnu�[���PK���[��+��)�'views/productmarket/tmpl/galleryimage.phpnu�[���PK���[��xHH"j8views/productmarket/tmpl/image.phpnu�[���PK���[|:�y#Eviews/productmarket/tmpl/import.phpnu�[���PK���[wtW�#WHviews/productmarket/tmpl/index.htmlnu�[���PK���[Y�C�A�A$�Hviews/productmarket/tmpl/listing.phpnu�[���PK���[vb&::$�views/productmarket/tmpl/listing.xmlnu�[���PK���[ǹ��1-1-$��views/productmarket/tmpl/variant.phpnu�[���PK���[�,o��"�",(�views/productmarket/tmpl/waitingapproval.phpnu�[���PK���[�ѓcG"G"!Q�views/productmarket/view.html.phpnu�[���PK���[wtW��views/toolbar/index.htmlnu�[���PK���[��B��Kviews/toolbar/tmpl/default.phpnu�[���PK���[wtW�1 views/toolbar/tmpl/index.htmlnu�[���PK���[��k���� views/toolbar/view.html.phpnu�[���PK���[wtW��views/uploadmarket/index.htmlnu�[���PK���[3j3��(Cviews/uploadmarket/tmpl/galleryimage.phpnu�[���PK���[�'��'x#views/uploadmarket/tmpl/image_entry.phpnu�[���PK���[wtW�"l(views/uploadmarket/tmpl/index.htmlnu�[���PK���[|n[��$�(views/uploadmarket/tmpl/sendfile.phpnu�[���PK���[U*31
#2views/uploadmarket/view.html.phpnu�[���PK���[wtW�tHviews/usermarket/index.htmlnu�[���PK���[�R9Ӽ�!�Hviews/usermarket/tmpl/address.phpnu�[���PK���[wtW�
�`views/usermarket/tmpl/index.htmlnu�[���PK���[���!��!Paviews/usermarket/tmpl/listing.phpnu�[���PK���[�����!gsviews/usermarket/tmpl/listing.xmlnu�[���PK���[շ>�<<Zvviews/usermarket/tmpl/show.phpnu�[���PK���[��^((&�views/usermarket/tmpl/show_address.phpnu�[���PK���[�}y�/�/@�views/usermarket/view.html.phpnu�[���PK���[wtW�[�views/vendormarket/index.htmlnu�[���PK���[6+u�
*��views/vendormarket/tmpl/after_register.phpnu�[���PK���[M��*ZZ*<�views/vendormarket/tmpl/after_register.xmlnu�[���PK���[�ج��"��views/vendormarket/tmpl/cpanel.phpnu�[���PK���[��"�views/vendormarket/tmpl/cpanel.xmlnu�[���PK���[M�?��
]�views/vendormarket/tmpl/form.phpnu�[���PK���[����
Fviews/vendormarket/tmpl/form.xmlnu�[���PK���[wtW�"}views/vendormarket/tmpl/index.htmlnu�[���PK���[6[���#�views/vendormarket/tmpl/listing.phpnu�[���PK���[����#views/vendormarket/tmpl/listing.xmlnu�[���PK���[8"�a�
�
0
views/vendormarket/tmpl/listingcontainer_div.phpnu�[���PK���[�}�:��1$#views/vendormarket/tmpl/listingcontainer_list.phpnu�[���PK���[�m;�mm2a(views/vendormarket/tmpl/listingcontainer_table.phpnu�[���PK���[��R�ss.07views/vendormarket/tmpl/listingcontent_img.phpnu�[���PK���[��<�==3<views/vendormarket/tmpl/listingcontent_img_desc.phpnu�[���PK���[�Tl$4�Dviews/vendormarket/tmpl/listingcontent_img_title.phpnu�[���PK���[W(L��0
Lviews/vendormarket/tmpl/listingcontent_title.phpnu�[���PK���[]p�tRR.fOviews/vendormarket/tmpl/listingmodule_vote.phpnu�[���PK���[�R�U�?�?(Rviews/vendormarket/tmpl/registration.phpnu�[���PK���[M��*ZZ(�views/vendormarket/tmpl/registration.xmlnu�[���PK���[�g��jj%Ȓviews/vendormarket/tmpl/selection.phpnu�[���PK���[��{=��
��views/vendormarket/tmpl/show.phpnu�[���PK���[�/�d��
��views/vendormarket/tmpl/show.xmlnu�[���PK���[)
����1�views/vendormarket/tmpl/showcontainer_default.phpnu�[���PK���[B�e:00!�views/vendormarket/tmpl/terms.phpnu�[���PK���[��e��!��views/vendormarket/tmpl/users.phpnu�[���PK���[6+u�
(��views/vendormarket/tmpl/useselection.phpnu�[���PK���[J��]�]�
�views/vendormarket/view.html.phpnu�[���PKYY��s